What is a full stack developer and what does it take to become one?

Posted on
Share on Google+Share on LinkedInShare on FacebookShare on RedditTweet about this on TwitterEmail this to someone

The path to becoming a successful full stack developer is not for the faint of heart.Hard-core multiskilled developers have always been a “thing” in the IT industry. In the beginning, they were a rare commodity and regarded as amazing talents. As the years progressed, such broadly diverse skill sets fell on hard times, however, with companies and employers generally looking for more individuals with more narrowly specialized skills.

Rather than fly away, however, these rare birds have merely morphed into what we now call “full stack developers.” Highly specialized programmers and developers still dominate the market, but so-called full stack developers are increasingly being called back into action. Varying definitions of this title exist:

For some, a full stack developer has knowledge of everything from front-end to back-end; to others, a full stack developer is one who has general knowledge of most stages of software development from concept to finished product. For many, a full stack developer is a largely fictional figure with a virtually unattainable skill set.

The way I see it, a full stack developer is a highly competent IT jack-of-all-trades. “Old school” full stack die-hards would consider a full stack developer to have specialized knowledge in all stages of software development. Thus, a full stack developer would be proficient, if not fluent, in:

● Server, network, and hosting environments
● Relational and nonrelational databases
● Interaction between APIs and the external world
● User interface and user experience
● Quality assurance
● Security concerns throughout the program
● Understanding customer and business needs

This rare breed of individual has the ability to interpret and assess each stage of the development process, so they can add their brain or weight to each of the subject areas as the process flows along. Such folks are becoming highly sought after in a world where specialization has, in my humble opinion, gone too far.

Remember when … ?

The path to becoming a successful full stack developer is not for the faint of heart.At the risk of sounding like my father, back in my day, a full stack developer was just a “good” developer and the skill set of knowing what “QA” was, or knowing that support needed a portal to admin the software you were making, was just something you were aware of and accounted for. Developers learned whatever software they needed to, worked tightly with business analysts, and were VERY collaborative. A full stack developer was largely just a good developer.

In the highly fractured present, a developer who isn’t “only” proficient in a certain language, or who interacts with the business or requirement-gathering sessions, is very rare. Such multifaceted gems have are what we now think of as being “full stack”.

The jack-of-all-trades aspect is exactly why development has left this methodology. That phrase had always had “master of none” appended to it, and it is precisely because of horizontal technology development that some full stack developers cannot be expert in just one skill. Most of those who claim to be “full stack developers,” alas, are just such artful dabblers.

If you have a look at a job search board, perhaps Indeed or Dice, you will see thousands upon thousands of job offers that want “full stack” expertise. In my experience, these job offers are looking back to the golden era of development when a developer could address all aspects of a development project, or at least understand them enough to add input and keep the ball rolling when team members had questions.

In my opinion, such hiring ads are asking for a skill set far more than describing a job. They want someone who can improve their entire base and are really looking for a functional development manager, one who can code, yes, but who can also oversee the entire development process.

Become a full stack developer

For those considering the field, you will naturally need a whole host of skills to become a functional, effective full stack developer. You need to be proficient in multiple programming languages, such as JAVA, PHP, C#, Python, Ruby, Perl, etc. These don’t include the actual apps that you will be creating, as most of your core business processes need to be written in these languages.

Remember that whatever core application the company uses needs to be learned, as well. You will also have to master the language grammar, and to be very familiar with how to structure and design project, as well as with implementation and testing of the project based on one language or more languages.

For example, if you choose JAVA, then you need to master the object-oriented design and development, design patterns, J2EE-based components of the development, and so on.

I am a huge fan of soft skills and their application in technology today. So often we have professional technology people out there that are unable to talk to people, to marry their technical ability with the ability to have a conversation or discussion about a path forward in technology. You get this weird disconnect with what people want and wat they receive, leading everyon down a path where no one ends up happy.

The path to becoming a successful full stack developer is not for the faint of heart.If you weren’t grandfathered into the old “school of hard knocks” development, then you will have a long uphill battle with learning to be a full stack developer. In keeping with Malcolm Gladwell’s 10,000 hours rule, you should expected to spend at least 10 years mastering the front-end, back-end, and client-oriented knowledge content needed to be a full stack developer.

Therefore, the path to becoming full stack developer is by no means traveled overnight. In fact, I would add a couple years to that 10-year timeline.  You should always be at work on laying a solid technical foundation, strengthening your core skills, and learning from whatever challenges come your way.

Expect to crawl, then walk, and finally run your way through the process. And don’t forget your soft skills: Do some public speaking, or volunteer to act as host at various functions in the development world. After that, spend a lot of time understanding the development cycle and how it works, where the hand-offs are, and how to go through the application cycle.

Try to shoot for skill sets that will contribute to your becoming a “manager” of development and not a “coder,” per se. You need to be paid for your brain and not for your hands. Always be mindful of the “big picture” and not the small steps. Those will always take care of themselves.

As always, I wish you the best of luck, and happy coding!

Share on Google+Share on LinkedInShare on FacebookShare on RedditTweet about this on TwitterEmail this to someone
Nathan Kimpel

ABOUT THE AUTHOR

Nathan Kimpel is a seasoned information technology and operations executive with a diverse background in all areas of company functionality, and a keen focus on all aspects of IT operations and security. Over his 20 years in the industry, he has held every job in IT and currently serves as a Project Manager in the St. Louis (Missouri) area, overseeing 50-plus projects. He has years of success driving multi-million dollar improvements in technology, products and teams. His wide range of skills include finance, ERP and CRM systems. Certifications include PMP, CISSP, CEH, ITIL and Microsoft.

Posted in Jobs and Salary|

Comment:

One thought on “What is a full stack developer and what does it take to become one?”

  1. The article presents exhaustive information on full stack developer. Thanks for detailingabout it so well. Anybody aspiring to be one, shall greatly benefit from this write-up.

Leave a comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>