Prefer video format? Watch it on YouTube.
In the previous video, we looked at the good and not-so-good things about coding as a career to see if coding is for you.
Career paths can be categorized by specialization or by track. Each path requires a different set of skills and knowledge, and it is important to understand the differences between them to determine which one is the best fit for you. Let’s look at the specializations first.
On a high level, we have front-end, back-end, and full-stack.
Front-end developers focus on the part of a website or application that users interact with directly. They are responsible for creating visually appealing and user-friendly interfaces. Front-end developers often work with design teams to ensure that the interface is both aesthetically pleasing and functional.
Back-end developers focus on the behind-the-scenes functionality of an application. They are responsible for creating and maintaining the server side of applications, ensuring that data is stored and transmitted securely and that the application runs smoothly. This includes writing the core business logic, wrangling data storage, and creating APIs for front-end clients. Back-end developers typically work with languages such as PHP, Java, Python, and NodeJS.
Back-end developers must be proficient in database management, network architecture, and security protocols — the computer science basics we all learn during college but forget later.
Full-stack developers have knowledge and experience in both front- and back-end development. They can create an entire application from start to finish, from the user interface to the server-side functionality. Full-stack developers typically have a broad range of programming language knowledge and are highly valued in the industry, especially in startups where moving fast is more important than optimizing code.
I’d also like to mention a very niche specialization which is game development. Game developers create video games for a variety of platforms including consoles, computers, and mobile devices.
Next, let’s look at career paths by track.
The management track is probably the de facto track. In a typical corporate ladder, a developer joins as a junior engineer and then goes through several career levels to eventually end up in a management role. This track is popular in IT services and consulting companies as well as early-stage startups.
During the initial years, this journey is characterized by individual contributor roles leading up to senior software engineer, who is a technically proficient person who’s sometimes accountable for the work of junior members on their squad or team. And then comes the pivot - the mid-management tier.
Usually, a senior engineer goes on to become a team lead. Starting from this milestone level, a developer is no longer an IC and their day gets split into making code contributions and managing their team.
The ratio of team management to technical work keeps increasing as they move up the ladder in various lead of leads roles such as manager, director, vice president, and so on.
The architecture track resembles the management track initially but diverges when a senior engineer must move to the next level. At most product companies the next levels are Staff Engineer and Principal Engineer, both of which require considerable technical experience usually more than 10-15 years. Some companies have different names for these roles, for instance, Tech Architect and Solution Architect.
Finally, there’s the less common divergent track. It’s where people make significant career switches. For example, a quality assurance engineer putting in extra efforts to learn the skills needed to become a developer. Or a developer switching over to advocacy or product management or even consultancy. Making a career switch is hard and comes with a steep learning curve and requires the determination to withstand failures as one may not get their desired switch in the first attempt.
There was a lot to uncover in this video, so let’s summarize our understanding of career tracks available to a software developer.
- The basic categorization is on basis of specialization and track.
- The most common specializations are front-end, back-end, and full-stack.
- Front-end and back-end roles require different skill sets and temperaments.
- Full-stack is a combination of front- and back-end roles, and is increasingly what companies are looking out for in experienced developers.
- Talking about tracks, we discussed the management, architecture, and divergent tracks, and saw how some companies offer a choice among these options.
Specializations and tracks are not mutually exclusive. You make your way on a track with one more specializations. So pick what appeals to you the most. And do not forget the age-old maxim that the journey of a thousand miles begins with a single step. Good luck in taking that step today.
In the next video, we’ll look at some handy prerequisites before you embark on your developer journey.