As the saying goes, it is always better to have a bad plan than no plan at all. A bit of a debatable statement maybe. But if you are learning how to code willing to become a professional programmer and have a long and fruitful career, you most certainly need a plan. And we are not talking about the study plan, which is also important and that was covered in a previous article. If you want to have a successful career in coding you need a career plan, and having it right from the start may save you years of time otherwise often spent moving in the wrong direction or stagnating from the professional point of view.Get Promoted, Make Big Bucks and Break Through the Glass Ceiling. Tips to Make a Good Coding Career Plan - 1So today we are going to talk about career planning in software development. What to keep in mind when making a plan, what are the most common mistakes, and how far ahead you should be looking in your planning. With some tips and speculations on the topic from experienced software developers.

What should be in your software development career plan

1. Learning and self-improvement.

As we said in CodeGym’s articles many times before, learning is pretty much an integral part of programming as a profession. And learning doesn’t stop when you completed a Java course, for example, and got yourself a full-time job as a Java developer. If you want to have a long and successful career in software development, you should never stop learning, and it should be a part of your career plan.

  • What to learn.

Write down all the programming languages, frameworks, libraries, and technologies that you would like to learn to improve as a software developer. Get back to reviewing this list once in a while, adding new stuff to it or removing parts that are no longer relevant to your career.

  • When and how long to learn.

Another thing to focus on in the learning part of your career plan is time and schedule. Specify what you are going to study and how long, keep track of it to make sure you stick to the plan.
“Learning how to program and learning a programming language are two distinct things. A great developer has the ability to pinpoint problems and envisage smart solutions. Great developers have the ability to understand languages, frameworks, and an array of programming tools, but any problem should be unraveled in the abstract. Developers who have honed the basic skills in programming find it easy to identify commonalities. For instance, once a developer understands that PHP and Javascript are object-oriented languages that make use of first-class functions, they can easily learn one language after the other,” said Andrei Petrik, an experienced programmer and NetHunt CEO.

2. Career goals.

The second important thing that should be part of your career development plan is career goals. Knowing what you want and where you are going helps to progress faster. Think about your long term and short term career goals and decide what should be your primary focus on every stage of the career. Is it learning and professional development or higher salary? It is natural to seek both but quite often you have to choose what is more important at a given moment. Here’s a good comment about career goals for software engineers by Jon Hayes, a technologist and civil engineer from the U.S.:
“No matter what the title is, you want to be the architect of the solution. The Grand Wizard. The person who thinks up the total solution and designs all the connecting pieces. You want to be the one everybody goes to, the one with all the answers, all the ideas, all the solutions. I learned this from my early days in civil engineering. There were 100’s of engineers working on this project, but there was one guy that everyone listened to. His mind didn’t work the same way everyone else’s did, he just dreamed stuff up. My goal was always to be the one guy. The one who could solve anything, design anything, debug anything in a different way then everyone else. If I thought I would have better ideas by knowing hardware, I would learn it. If I thought I needed to understand finance to code it, I would learn it. If I felt that learning other coding languages would help me I would learn it.”

3. Career path.

One of the great things about being a software developer is that programmers are needed in different industries to produce various kinds of products, and you can choose what exactly you would like to be developing and in which market sector. For example, a coder can develop mobile apps, enterprise solutions, video games, desktop programs, websites and Internet pages (web development), IoT solutions, etc. These are all career paths, and it would be good to decide where you would like to spend your career from the start. Of course, you don’t need to limit yourself just to one choice, and you are free to take a different path after a while if you feel like it.
“The best way to predict the future is to create it“ - Abraham Lincoln. Don’t force yourself into careers or certain specifications that you clearly don’t want to work in. If you once had the passion to develop, go and get it back. Do the things you love about it, be innovative, creative and turn it into a living,” recommends Maximilian Wanner, an experienced mobile developer from Germany.

4. Looking for jobs.

Applying for jobs in your preferred industry and market sector, as well as preparing for job interviews, also should be a part of your career development plan. For example, some professional developers routinely monitor all the new jobs fitting their respective qualifications. It makes sense as this way you will always have firsthand knowledge about what is going on in the market, which skills and technologies are in demand and what are the future trends. Preparing for job interviews is another important part of it. Allocate time in your plan to prepare for job interviews. Many experienced coders also recommend taking software developer job interviews regularly even if you are not looking for a job, just for the sake of experience and practice. By the way, here’s a good list of top 150 most frequently asked Java developer job interview questions.
“Getting ready for software engineering interviews can be overwhelming because it feels like you need to know everything. And “study everything!” isn’t a realistic interview prep strategy since your time is limited, so you need a way to narrow “everything” down to a manageable list of things to prepare for. Since no two jobs have the exact same interviews, there’s no one “recipe” that will tell you exactly how to prepare for every single technical interview. Fortunately, there are certain patterns that make it fairly easy to determine what kind of interview you need to prepare for, and from there to figure out what to study,” said Tigran Sloyan, an experienced programmer and CEO of CodeSignal company.

5. Choosing jobs.

Choosing jobs, or rather companies that you will work for, is a separate part of career development planning and it also requires some serious thinking from time to time. You can evaluate jobs and companies you have job offers from by a number of criteria, which is based on your career goals. Examples of such a criteria would be: job’s contribution to your overall growth as a software developer, how big the salary is, what are additional benefits, how big is the workload, how good the team is, etc. Choosing right companies and right jobs is especially important at the beginning of your career, as first work experiences can make a noticeable impact on it. Opinions on what companies to join as a coding beginner are different, but the most common recommendation would be to start your career in big and well-known companies, to learn about the processes, technologies, and maybe add a well-known name to your CV. After a few years working for an industry leader, you can proceed to jobs in startups or companies in the niche you are interested in.
“Pick a company that does something you care about or can get excited about. Programming is mentally exhausting, stressful and unstimulating, but if you are doing something you understand and love, the pain is much harder to perceive and the joy of creation that much sweeter,” recommends David Powell, an engineer and human systems engineering research specialist.

6. Ways to grow and break through the ‘glass ceiling.’

Professional and individual growth is another crucially important component of a truly successful career (and life in general, if you think about it) that is often seen as something banal and too vague to be added to serious plans. Trying to see the bigger picture, looking at your career from a third-party perspective can be extremely useful to understand where you going as a professional and how to break through the so-called ‘glass ceiling,’ which is a very typical for any professional situation when it seems that no matter how much you learn and self-improve, you won’t be able to increase your income much higher or get promoted, because you already reached a pretty high level. It is typical for professionals to start losing motivation and interest in what they do soon after ‘hitting the glass ceiling,’ so it’s better to prepare for it in advance. Here’s what John Sonmez, a software developer with rich professional experience, has to say about this:
“It doesn’t matter how good you are, there is a point where you reach the top and you can’t really advance any further. But there are ways around — or through — this glass ceiling. As a freelancer your glass ceiling is much higher, although there is still a practical limit on how much you can make as a freelancer since you still have to trade hours for dollars. As an entrepreneur, it’s completely uncapped, but you could also make zero dollars or negative dollars. If you want to stay a career developer, you can invest heavily in your personal brand and marketing yourself, and you may be able to find a company which will pay you significantly more than average just because of your reputation.”