Working As A Full Stack Developer

Working As A Full Stack Developer

I've been a 'full-stack' developer for the better part of 6 years now, and it's been an amazing time. In comparison to when I was just that "programming" guy, it's much more rewarding and many times more stressful, for a variety of reasons, which I'll go over today. And it didn't happen organically I'm afraid. You can program every single day until the Moon leaves Earth eventually, but you will not get to the full stack phase without actively going for it.

Programming nowadays incorporates dozens of different technologies spanning many different disciplines and usually spanning many different people as well. Some people are better suited at a few of these technologies, while others choose to don many of those hats. Becoming a full stack developer however is no easy task. Particularly nowadays with so many new and different technologies coming out yearly. But being a full stack dev definitely has its advantages. Personally, I am a full stack .NET developer and it is definitely something that takes years of work to get used to. To be able to spend weeks doing JavaScript and CSS and then jumping to C# to build web services and finishing off with SQL Server reports is definitely a challenge. Add to that learning various different new frameworks and improving your UI/UX skills and you have another full time job ahead of you.

What Is A Full Stack Developer?

A full stack developer is capable of working on a project in any phase of its development life cycle. They can work on the front-end, back-end, data layer, on the server, on the network, anywhere. They aren't experts in all of those fields, but they know enough to get the job done, and if not, they have Google. Thank you Google. If you work with PHP for example, you would be working with the LAMP stack, which incorporates Linux, Apache, MySql and PHP. You have your OS, your server, your database and your code layer. That's not the concrete definition however. Nowadays you also have to be familiar with JavaScript/HTML5/CSS3 and the many JavaScript libraries that spring up every so often.

And they are not that easy to find unfortunately. Many programmers are just that, programmers, and that's how they like it. That's how I used to be when I was first starting off. I didn't want to know about JavaScript and all of its evils. At previous jobs where I was tasked with interviewing potential candidates, the one thing that I looked for was that they were familiar with a good chunk of the stack. Not all of it mind you, but enough to be able to tackle various areas of the work. And I was shocked to find that most potential candidates were only familiar with 1 layer, and that was the back-end. Almost no one had any concept of front-end or design and few people worked directly with databases.

What It Isn't

Some people believe that being a full stack developer means knowing everything there is to know about programming and then some. It encapsulates all RDBMS's and all new JavaScript libraries and all mobile platforms. And let me calm that fear by saying that isn't true. If you're an IOS developer, there's probably little reason that you would need to know jQuery for example. It would be nice to know it, sure, and it may come in handy one day, but it's probably not required for your apps. However, if you are a full stack IOS developer then it would be expected that you know about IOS, web services, Swift and basic UI/UX and other skill sets that come with developing IOS applications.

The stack is specialized for each type of platform. For example, you don't need to know Android to develop IOS. Android would have it's own separate list of technologies that it requires. I saw a recent article recently that stated that you needed to know about machine learning and cloud computing in order to be considered a full stack developer and I can say that in 10 years of programming, I've never needed to know about machine learning. Now if you work in the field of machine learning, again, I'm sure that comes with its own set of technologies to learn.

Working As One

Full stack developers tend to jump around alot. They can't just say "I'll email Bob about that CSS tomorrow", they have to dive in to the CSS and fix it, and then deploy the changes and then get to their SQL reports. And if I'm being honest, sometimes it's nice to be able to send Bob that request. However, there is something thoroughly rewarding about being able to handle that workload yourself. You don't have to wait for anyone to get the job done and usually you're given more input into how things run. The main downside however? That you never really become an expert in any one field. I've met people that were amazing at programming in JavaScript. They knew how to do things that very few others would have figured out. And that's because they spend most of their working days doing JavaScript. And sometimes I do wish that I could be on that level with any single technology.

Most people will not get the opportunity to learn full stack development at their jobs. I have worked at companies in which all database work was handled by one person, and all front-end work by another and I was just in charge of the code. It really wasn't until I started to develop my own websites that I started to learn how everything is pieced together. So build a website, any website. It could be 4 static pages really. Put that website on a server, and now you're one step closer to learning about servers. Now add a database to your project to track page views let's say. Just a few columns, and an insert statement on page load. By the time you figure that out that process, you'll have a good idea about databases and how they work in correlation with web pages. Then work on making your website user friendly, add analytics, make it SEO friendly and do anything else that you feel your website needs. That one simple 4 page website will take you through the entire stack and then some. Do this enough times, and it eventually becomes second nature.

Walter G. author of blog post
Walter Guevara is a Computer Scientist, software engineer, startup founder and previous mentor for a coding bootcamp. He has been creating software for the past 20 years.

Get the latest programming news directly in your inbox!

Have a question on this article?

You can leave me a question on this particular article (or any other really).

Ask a question

Community Comments

F
1/10/2019 9:55:22 AM
Well done. I'm currently on this journey. I'm familiar with all the technology at this point (except database stuff). I'll be there soon, and I really enjoy the process. Great details.?
F
1/10/2019 9:57:12 AM
Also i have a website :https://www.uritpitstop.com I am just starting to learn full stack development myself. This video is very much helpful and gave me a clear idea about what should i do. Thank you very muck sir. But i have one doubt. Previously i heard that i should start with Back end. Which is better??

Add a comment