Chapter 48. How to Choose a Developer Specialty?

Through many years of training developers, I've discovered that it's vital for coders to decide about their specialty and focus. In this chapter, I'll share with you how I personally view the different developer directions and areas of expertise that are available.

You'll quite possibly make this choice more than once in your career as a developer, so I recommend that you always observe and be aware of the choices that can be made in your career.

How to choose a developer specialty?

The world of software development is so vast that it's impossible for someone to master every aspect of the process. Consider if I approached a world-class track and field coach and said that I wanted to train for the Olympics and win a gold medal in track and field. The coach would most likely give me a once over and chuckle to himself. But after that his first question would be: "What event do you want to train in?" He would ask this question because the training regime for the 100-yard dash is dramatically different from the high jump.

In the same way, as a developer, you need at least once, and quite possibly several times, to narrow your focus on what type of developer you want to be in the years ahead.

I'm going to walk you through each type of developer category so you can see what they entail.

#1 – the full stack developer

In deciding how to choose a developer specialty I always like to start off with the full stack option. I start with this option because many new coding students I've spoken with assume that all developers are full stack developers. And this is simply not true.

Full stack development means that you feel comfortable working with every stage of an application's development. Referencing our track and field analogy, a full stack developer would be like a decathlete. This is the category that I personally fall into. My focus on the full stack side of programming is due to a number of factors:

  • To teach students and write development curriculum I need to be familiar with all of the key development types.
  • I've spent years as a freelance developer. And in many cases, freelance coders are asked to build an application from the ground up, create all the features, design the system, and deploy it to the web or app store.

Full stack developers need to be a jack of all trades! Much like a decathlete, full stack developers are usually good at a number of technologies. However, a common pattern you'll see is that it's very difficult to be world class at every layer of the development stack.

Programming is simply too complex, and languages/frameworks change versions so rapidly that it makes it nearly impossible to excel at every stage of the app development life cycle. Because of how time consuming each level of the development process is, full stack developers simply don't have the time to become true masters at any one aspect.

As a full stack developer myself, I mitigate this issue by focusing my time on the components that I excel in, such as server-side development, and then working with other developers to help cover my weaker areas, such as UI/UX.

#2 – the server-side developer

Next on the list of developer types is server-side programming. This is probably my favorite layer of the developer stack. Server-side specialists spend most of their time working on building and implementing algorithms that enable programs to work properly.

Additionally, server-side developers typically spend quite a bit of time building APIs. This is because most server-based applications need to communicate with the outside world in some form or another. This layer of the development stack will require you to specialize in a language, such as Ruby, Python, Java, or C++.

#3 – the frontend developer

When it comes to choosing a developer specialty, the third layer to choose from is the frontend component. Not too long ago a frontend developer was considered someone who spent all day working with HTML and CSS. Their main goal was to make applications look pretty.

However, the definition of a frontend developer has changed dramatically with the advent of client-side frameworks. These frameworks, such as Angular and React, have made it possible for frontend programmers to build complete apps with little server-side interaction.

These applications are rendered completely in the browser because they're written in JavaScript. And whenever the app needs to get additional data it simply communicates with APIs. A common pattern that I work with is building a number of server-side Ruby applications and then having a single Angular frontend app that renders the user interface in the browser.

So, if you love building applications that users will directly interact with and the idea of working with APIs doesn't scare you off, frontend development might be the right choice for you.

#4 – the mobile developer

Next on the list of developer types is mobile. If the idea of building the next Angry Birds or Instagram excites you, the mobile development field may be a good fit.

Mobile programming used to be a very difficult field to enter. Only a few years ago you would have had to master multiple languages (Objective C and Java) to build smartphone apps. However, JavaScript frameworks such as Ionic and React Native have made it possible to use JavaScript to build apps that behave like native smartphone applications.

You can still use languages such as Swift, Objective C, and Java to build truly native applications. And there will always be a great set of jobs for developers who specialize in these languages. However, if you are a freelance or full stack developer, by leveraging a JavaScript framework you can build smartphone and tablet-based apps for all platforms.

And it's been my experience that the learning curve for these JavaScript frameworks is quite a bit lower than the traditional mobile languages. Additionally, you may have noticed that the tools used for JavaScript-based mobile apps and frontend programming are similar. Because of this synergy, I have had a number of developer friends who have moved away from server-side development and moved into frontend coding because it allows them to tackle building applications for desktops, tablets, and phones.

#5 – the data scientist

This used to be considered the data field, and a few years ago I'd have called this something like the data developer category. However, data and big data have rapidly morphed into the fields of statistic data analysis and using artificial intelligence, such as neural networks, to gain insight into the huge amount of information now available.

These new fields are changing the face of how we process data and understand information, and it's a huge new career field for developers to explore. Right now, the mathematics involved can be quite intimidating, so you'll need to decide if you're ready for some heavy math and deep algorithmic learning. The math is going to become more abstracted over time, and if you're drawn to the idea of artificial intelligence and deep algorithmic learning systems, this is certain an area to consider for an ambitious developer today. Some of the most modern Python libraries provide an excellent way for a developer to immerse themselves into this field.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.193.207