There are a number of different career paths in software development. The path you choose can largely determine your options, but it’s also okay to choose more than one. With software development, you can choose to specialize or be more of a generalist—but both come with tradeoffs. Below, we’ve listed some common types of software development paths. The path toward upward mobility will slightly vary for each of these, but in the table below, we’ve highlighted common career progressions across software development.



But before we get started, a few words of advice…

‍

A good place to start before jumping down a specific path is to think about where you want to go and what type of developer you want to be. Entry-level programming jobs could mean any type of programming—they vary so much.

‍

So instead of trying to learn all the languages, it’s good to find the paths most interesting to you, then look for overlaps in languages used by programmers on those tracks.

‍

For example, if being full-stack developer sounds interesting, where you design apps and visuals and UX but also do back-end work and use databases, learning JavaScript is a good option because it is used on both front-end and back-end development. Similarly, if you know you like data science and want to be more appealing to an employer, learning Python is a good choice because it’s used in both data science and back-end development.

‍

Especially at a startup, learning continually and building your skills in different areas and languages will help you ship in other areas inside the company—thus making you incredibly valuable to any company.

‍

Here are some common types of web development—and they're great to launch your career in.

‍‍



Front-End Web Development



Front-end programmers build the visual part of any site. Instead of the web being full of white pages with text running from one edge of your screen to another, front-end web developers build and style websites so the user gets a stunning experience.

‍



Languages: HTML, CSS, React.js





A note on frameworks, like React.js: if you can learn any JavaScript framework and show that, it can help you win a job—even if the company you’re interviewing with doesn’t use that specific framework—because they see you can learn.





Mobile Development



Mobile development is a great path for anyone who wants to build the operating systems running on any mobile device. If working on the software running daily on your phone—and the phones all around the world—sounds exciting, it’s good to focus on choosing one primary OS to focus on (iOS, Android, etc.) as their languages vary.





Languages: Swift or Objective-C for iOS, Java for Android. It’s also good to learn the iOS SDK and Android SDK.





Back-End Development



Back-end developers connect the work front-end developers do (the part of a site you see) with servers so websites and web applications run and function properly. This is the core part of any website or web application—the web wouldn’t run properly without this type of development! Back-end developers make sure processes run logically and often write documentation so others can use the systems they’ve built.





Languages: JavaScript, Ruby on Rails, Python, Django





Data Science



Data scientists extract meaning from and explain data. But they aren’t your typical white-coat scientists–they are the people who strive to make sense of any amount of information so other parts of an organization can use that information in the best ways possible. At their core, they work to help businesses determine goals and make wise decisions based off of what they discover.





It’s helpful to have a solid understanding of mathematical concepts if you want to go into data science—a background in linear algebra and matrix math is especially valuable.





Language: Python



‍

To highlight a few of the common ranges, here’s a breakdown by experience level, courtesy of Payscale.

