The career path of a programmer

There is a bitter truth that many programmers don't want to face is that their programming career will reach a peak and then an inevitable decline. In the end it will be very difficult for you to find and keep a job as a programmer. For many people, they discovered this fact without being prepared in advance and often shocked. Today, we will provide you with some important career information that you need to think about, from which you can prepare for the future for yourself.

The website TechCrunch has published the article "Silicon Valley's Dark Side: the age of programmers' problems" , which refers to a study showing a programmer's productive career period. Members are limited. But the question is whether it is real and it is serious.

  • What is the future of a programmer?
  • What will a career path of a programmer look like?
  • What are career choices and expectations about those options?

Everyone knows that developers can eventually become managers (managers) or leaders (leaders). But many programmers do not understand the expectations and requirements of a manager. Certainly, we all have managers, what does it mean to become a manager? What expectations are there? And what is the difference between a mid-level manager and a senior leader?

In this article, I want to pull up the mysterious veil and show you a potential career path from a technical start as a Junior Programmer to the highest point of becoming a CTO (Director technology).

Note: Many major careers stop at different points of the career ladder and stay there until retirement. Some careers have even skipped a few steps. But the management and leadership roles are not going to be suitable for everyone, and you will probably find your interest in management changing over the years. When you are in your 20s, you may hate the idea of ​​being a manager, but when you are in your 40s , you may hate writing. It is difficult to predict. However, knowing and understanding your choices and the results they bring is essential.

Below is an illustration of career opportunities for a programmer with an average salary. Note that there are some people who earn double or triple the amount in the figure above, which are programmers of a certain vertical such as banks, stocks, etc., so the numbers above only represents an average range, not representative for all.

Refer to online programming courses , onlab, and practice programming at TechMaster

Junior Developer

  • 0-3 years of experience (usually someone who has just stepped out of university lecture hall)
  • Can write simple scripts
  • Preliminary understanding of an entire application life cycle
  • Preliminary knowledge of databases and application services (queues, caching, etc.)
  • Do not feel comfortable in any part of a complex application

When you start your career in programming, it can be difficult and frustrating. Sometimes you feel that your depth of knowledge is not enough to meet the job, not sure how people can write such large and complex applications. And sometimes, you wonder why you haven't been promoted to Senior Developer yet. You look at other senior developers and think you are basically doing the same job as them.

But a junior programmer's sign is inexperienced. Even the smart junior programmers and the fastest learners will not be exposed to many hard-coded code or cases but need a senior programmer's wisdom. In programming terminology, a form of wisdom is called software design patterns. Although you can read books about patterns, you need to write enough bad code in your career to break that knowledge and gain insight into the value of software patterns.

Senior Developer

  • 4-10 + years of experience
  • Can write complex applications
  • Deep understanding of the entire life cycle of the application
  • Insights into databases and application services (queues, caching, etc.)
  • Work comfortably on any part of an application

A senior programmer is a typical role for those who are really good at building entire applications on a large scale. Most of a programmer's career can be a senior programmer. In fact, if you hate being a manager and you just love writing code, then you can be a senior programmer throughout your career. I used to hire many senior programmers at different ages, but this is also an increasingly difficult role to compete once you become older.

This role can also be a way to jump to another position on the career ladder. Once you understand the technology enough to become a senior programmer, you may have had the technical know-how to become a technical founder or CTO (CTO) of a startup. Becoming a founder or CTO at a startup involves very little programming but must have a lot of human skills. However, technical knowledge is deep after a long way is necessary to do a good job in these roles.

Lead Developer or Architect

  • 7-10 + years of experience
  • There are basic skills like a senior programmer
  • Lead Developer: a transition role in a middle management position (Mid-Level Manager)
  • Architect: is a purely technical role

After more than 7+ years of programming, if you find yourself incompatible with management, becoming an architect is the highest level left on the technical career ladder. Architectes sometimes write code, but they often design complex systems that will be implemented by senior and junior programmers. An architect's job is to use his technical knowledge gained over many years of experience (in terms of programming patterns and anti-patterns) to create the structure for a successful software project. When there is a new requirement, a software architect needs to know reasonable ways to build and expand all kinds of different applications.

A lead developer is a senior programmer that other junior and senior programmers come to for guidance and direction. Although lead developers often do not undertake recruiting and firing programmers, they do a lot of work similar to managers. They coordinate the tasks that need to be done and are the decision makers about the real issues to be tested while writing the code.

Mid-Level Manager (Middle Manager)

  • This title usually includes words like Manager or Director (Developer Manager, * Product Manager or Project Manager)
  • Be the developer (hire / sack) of the developer
  • Report work to a Senior Leader

Management is often the next step in the career for engineers. There are different focuses in management. If you are a fan of tracking workflow and obsession with details, becoming a project manager is the right choice. If you are obsessed with features and product improvements, becoming a product manager is very appropriate.

However, most management positions that a programmer becomes often a developer manager. The typical role of the developer manager is to arrange the needs of the product manager and the project manager with the members of the development team. This role requires great soft skills, talent to settle conflicts. The work of the developer manager is not just about recruiting, but it is possible to fire developers when necessary. This means it is difficult to make friends with them. Becoming a friend puts you in an awkward position. If you ever know someone who has become a manager of a team he used to be a member of, then you will find that they seem to change their character after only one night. This is why. It is a difficult job, and is often known as a renegade grace.

But it also has rewarding rewards when you lead a team to victory. If you want to improve your leadership skills to prepare for a managerial role, then read Phil Jackson's book below:

Senior Leader (Senior Manager)

  • VP, CTO or CEO
  • The boss (can hire / fire) middle managers
  • Work reports to another Senior Leader or to the Board of Directors

The clear difference between a mid-level manager and a senior leader who are senior leaders in charge of mid-level managers. However, managers often do not need to manage. They need to be led. Mid-level managers need to know the high-level orientation they need to follow, not just the direction of detail.

The job of a senior leader is to make high-level decisions and inspire their workforce to go along with those decisions, and believe in that mission.

The more you climb the higher career ladder, the less you will be exposed to programming. At the top, all work is about people. Mid-level managers can still have time to dive in technology, but Senior Leader must spend all their time focusing on people: inspiring, motivate, lead, and strategize. If you write code, it's usually just personal projects (unless you're Bill Gates, but almost nobody is Bill Gates, he's an outstanding person). At this level you need to read Phil Jackson's book, read really, not just buy it for yes.

The job of a senior leader is to ensure that everyone in the whole company moves in the same direction, ensuring that direction leads to the promised land, and ensuring that everyone knows why they are going in that direction. It is a very difficult job. This work is full of dangers, suffering and pitfalls. If you are being promoted to this position, read the book "The Hard Thing About Hard Things" by Ben Horowitz.

Senior leaders do not have to be born naturally. They have to train it. You have to practice a lot and do it well. Read Ben Horowitz's blog about Making Yourself a CEO to see some examples of this.

Conclude

The opportunity for programmers today is very rich and abundant. And programmers are now in higher demand than any other period in history. This is a great time to become a programmer. But it will never be too early to plan your career. I hope this article has given you some guidelines and materials for you to prepare for the future ahead.

Share the news now