When I tell people I’m a programmer; I inevitably get one of three responses at some point in the conversation. They all center around either working at google or how smart I must be because programming must be complicated. However, I will give you some insight into what I think about programming and its difficulty in this article. Today I answer the question; is it hard to become a computer programmer?
Answer: While programming can be frustrating and often described as complex or challenging, it is like any other skill. As long as you are willing to put in the time and effort, you can learn, and the results can be gratifying. You should ask yourself how hard you are eager to work to achieve your desired results.
One of the first things people often say or hint at when I tell them I’m a programmer is, “you must be so smart; programming seems very hard.” In general, there is a little wisdom in the statement, but I think you would not be looking the subject up unless you were at least interested and possibly confident in your ability. So keep reading if you want to get more insight.
How Many Years Does it Take to Become a Computer Programmer?
There is no doubt that programming can be a lifelong pursuit. At the core, programming is a series of puzzles solved by making the problem smaller and smaller until it is easily solved.
But if you only want to know how many years it takes to become a developer, the simple answer is six months to 1 year to become a JR-level developer. You can do almost anything with some help at the JR level, and technically you are a programmer.
I know some of you are going to reject this answer outright. Please, discuss this in the comments below.
After becoming JR level programmer, progressing further depends on the path you choose to follow. I put together some questions and options that might help you move as fast as possible.
What Can Help Me Advance My Programming Career or Start Programming My Career Faster?
You can take steps to advance your career and maximize your results. In this series, I discuss the primary things every programmer should consider. This article is just the beginning; there are other things you can do with specific goals and productivity practices that will help further, but that will come in future articles.
Choose Your Own Programming Adventure:
Can You Learn Programming Faster in a Team?
Infusing yourself with the experience of others is one of the best ways to get ahead; it means working with others who have been where you are. I need to emphasize the importance of working with others and listening to the advice given by colleagues. Conversely, you will also need to be able to explain and defend your ideas. It is not easy to defend a position while examining the merits of opposing views, but developing this ability can help you progress much faster in your skill and, therefore, in your career.
Are You Willing to Push Through the Most Annoying Problems?
When I have been hiring or training new programmers or working with people in the open-source community, there is one big separator between those that increase their skill levels and those that stagnate and eventually quit. It all comes down to how willing they are to solve their problems and push through the pain and frustration of figuring things out independently. Conversely, you must also know when it is the right time to ask for help.
Many managers have guidelines they like to follow to tell their employees, typically based on some arbitrary time value, when you should ask for help. However, word of warning to these managers is an art to figure out the proper balance of how long you should let someone work to figure something out vs. just asking.
Each interruption for a simple problem, especially one that a JR developer will repeat often, is time you could have spent doing something more substantial. My advice here is simple: new hires and inexperienced programmers should look to managers for guidance, but only when they are stuck. Managers should evaluate the lost time to their schedule vs. what will be saved in the long run if the problem often arises.
Are You Willing to Obsess Over Something Until You Figure it Out?
Similar to the last question but more about what you are doing away from your computer. Do you like to think about things, solve puzzles, or obsess over a solution? Many times if I can’t think about something clearly when I’m working at my computer, I might have reached my limit for the day, but later that day, when I’m watching TV or relaxing, the problem is churning in my head. Maybe I’m going for a walk or taking a shower, and I will come up with the solution that I was looking for earlier in the day. This kind of obsession is going to help make you a better programmer faster.
Conversely, it took me years to learn this, but sometimes you genuinely need to get away. Leave the problem behind in your mind and work on another hobby or outlet to give yourself some space. Once you are away from the problem, you will allow your mind to do the creative thing it does and develop some new or unique solution.
Will You Always Strive to Learn Something New?
New frameworks, technologies, standards, security practices, and industry-level changes are always happening in the technology space. You always need to learn things and progress if you want to progress in your career and grow in your skill. Many jobs and many people in the world get their foot in the door, which is it for them. However, in programming, you always want to be learning something new. Conversely, specializing and going very deep into a subject can be a great way to advance your career and increase your pay to the maximum level. Often, the people who make and support a single library can charge any price they want for their services. When you only know the standard stacks, you are more of a commodity, but when you are one of 3 people who know the ins and outs of highly complex technology, you can command your pay level.
Can Everyone Become a Computer Programmer?
It would not be very ethical of me to say that anyone and everyone could become computer programmers. However, what I can say is if you searched and found this article and now find yourself reading it, chances are very high that you can become a programmer.
There is a strong correlation between a programmer’s ability and intelligence, but this is only a tiny part of the picture. Through the experience of hiring multiple freelancers, two separate teams at different companies, and hiring for other positions that are not programming, I have learned a lot about what kinds of traits tend to produce good programmers.
As mentioned earlier in the previous section, some of the things that lead to good programmers are an obsession with problems, solving them, communication with team and supervisors, and continuously learning new things. Not mentioned in the previous section are things like conscientiousness, openness, and intelligence. Many exciting things have been happening in the intelligence arena over the last several years, with many links to increased intelligence being drawn from reading more and solving more puzzles, both things you will end up doing a lot in programming.
In many ways, reading someone else’s program is like reading a foreign language, but one that follows similar syntactical rules to the one you already know, allowing you to decipher what they are saying until you fully understand what is written. Interestingly, this is the correlation drawn between conscientiousness and openness, possibly leading to higher intelligence. I believe those two lead to the latter and not the other way around.
As a recap here, you need to have several of the previously needed traits, and you also need to be intelligent enough to perform the task or drive enough to force your plastic brain into adapting. But if it takes so much work, you may wonder if it is all worth it, and that is what the next section covers.
Is it Worth Becoming a Computer Programmer?
The barrier to entry can be high but so can the rewards.
The ability to control computers in a meaningful way to do something simple like sending a message to another screen or something more complex like displaying an entire operating system comes down to programming. The critical thing to note here is that a programmer did that programming to make those things happen.
Someone had to think through the problem and develop a solution to build what they thought of as code. Once they had enough code written, it is eventually a program. As mentioned in the previous section, not everyone can become a programmer. For that reason, companies are willing to pay well for those who go the distance and learn the skills needed to become developers.
The bottom line, companies, governments, and even end users are willing to pay for solutions to their problems or perceived problems. Many programmers only want to focus on the task at hand, but if you want to maximize your earning potential and your real-world value as a programmer, focus on the problem you will solve and solve the problem that the entity you are serving needs solved. You will be rewarded handsomely.
The last thing I will leave you with on this note is going back to what I said above. If you are worried about the amount of effort you will put in vs. the pay, you will get out. I can tell give you some real-world numbers.
Programmers that I know or hired:
- Only know general stack: $20-40 /hr
- Manages others: $40-65 /hr
- Specialized in technology or area: $50-150 /hr
- Built a solution and sell freelance/consulting: $250-500 /hr
- Built a solution that is an app or SaaS (a good one): $5,000+ /hr