loading...
Cover image for Become a Fullstack JavaScript Developer, Part 1: The Motivation

Become a Fullstack JavaScript Developer, Part 1: The Motivation

hoangbkit profile image Hoang Nguyen Originally published at advancedweb.dev Updated on ・5 min read

Fullstack (FullStack/Full stack/fullstack) is not a myth! Fullstack developers do exist 👽. I'm writing the motivation behind my decision to become a fullstack one and whether should you.


Become a Fullstack JavaScript Developer is an original series published on avancedweb.dev where I explain my process and what I've learnt to become a full stack Javascript developer - from motivation to actual building my own product single-handedly.


I started my professional carreer as an iOS developer since 2013, I thought I would stick with Apple ecosystem and becoming an iOS expert. Things went well until 2017 when I wanted to build my own products. I started with iOS apps only using paid API services, then things getting complicated and I started to develop website and backend for my apps.

We all know that the fullstack path is ineveitable to any indie maker or startup founder. This path is exciting but overwhelmed, useful but dangerous, jack of all trades but master of none. We better figure out our expectation and shape our learning roadmap carefully.

Should I still be an iOS specialist?

This question has popped up in my mind for years. Sometimes I really struggled to figure out what to do next because of this confusion. I called this confusion because it caused a conflict in my carreer path.

As software engineers, we can wear a lot hats at the same time: corporate developer, remote developers, freelancers, open source contributors, indie makers, tech startup founders, hobbyists, hackers. What motivate us to code everyday are money, fame, finanical independence, hobby, you name it 😎.

Whether you're wearing single hat or multiple hats, you better stick with one stack day in and day out to be really good at it and stay competency. That's why I've deprecated iOS development and transformed to Fullstack JavaScript completely.

What is a fullstack developer?

A fullstack developer is a person who can develop both client and server software. Knowing how to code at least one frontend language and one backend language is required. It's optional to know more about mobile or devops development.

--Popular Stacks--
• LAMP stack: JavaScript - Linux - Apache - MySQL - PHP
• LEMP stack: JavaScript - Linux - Nginx - MySQL - PHP
• MEAN stack: JavaScript - MongoDB - Express - AngularJS - Node.js
• Django stack: JavaScript - Python - Django - MySQL
• Ruby on Rails: JavaScript - Ruby - SQLite - PHP
Enter fullscreen mode Exit fullscreen mode

Some obvious advantages 🤩

Versatility: This is the most important reason why more and more companies are hiring fullstack developers because you can work on multiple things and switch back and forth between backend and frontend (sometimes mobile or devops) according to project demand.

System Design: Equipped with vast experience of building products from bottom database to web app client, dealed with system continuous integration and continous deployment, handled requests from any sides. A fullstack developer can see through the big picture and can provide excellent contribution to system design and optimization.

Resources Friendly: Since you can handle all aspects of the job, you can save much money by not having to employ multiple developers on a single project. The coordination cost is also decreased leading to faster time to production.

Fast Learning: Knowing many technologies will increase your confidence and ability to adapt new ones. You are not single-minded or technology biased, you are open to learn what needed to get things done.

It has disadvantages, right 🙄

Jack of all trades: Sure! It could be a disaster choice and hammer your carreer path! The amount of knowledge you need to master is insane. Being good enough to build a working product is hard let alone code quality. You could become average on everthing you touch and it might create huge technical debts in the future.

Master of none: It takes people 10k hours to master something so you might fall into this trap if you're not focusing on anything but the whole stack. This becomes worse when you're staying around with other specialists in your companies, you will feel insecure and vulnerable than ever before 🤕

Why Fullstack (JavaScript)?

This comes down to personal favorite, current trend, learning curve, developer community, third party libraries, available jobs and the most important thing: what motivates me to code everyday is to become an indie maker who has successful products.

As an indie maker I have very limited time and resources to build the next awesome products 😑. IMO, Fullstack JavaScript is the optimal choice to bring my ideas to customers. "Learn once, write anything" really fits my bill.

-----My Current Stack-----
• Languages: JavaScript, Swift
• Mobile: React Native, iOS
• Frontend: React, Gatsby, Next
• Backend: Node, Express, Apollo, Mongo
• DevOps: Ubuntu, Nginx, Docker, CircleCI
• Design: Sketch, Figma
Enter fullscreen mode Exit fullscreen mode

In startup environment, the number one priority to bring the product to profitable stabe as fast as possible which minimum cost and effort to decrease the risk of failure. With that in mind, they often hire fullstack developers at first and hire specialists when really needed! Post success, they even change the development stack to increase product performance and they are not afraid of that because they have MONEY 😜.

Take Away

Don't let yourself locked with the title: What I mean is most of us developers sooner or later are naturally becoming fullstack developers. Fullstack Developer term is being overused by companies, it creates dangerous illusion in our mind to categorize ourself as Fullstack generalist but forget to master something as specialist.

Master something in your stack: It's okay to be excellent at one technology in your stack and average on everything else. Trying to be good at everything is not a smart move and you are not comparable to anyone. The point is to pick one at first and gradually expanding to others.

Aligning with your motivation is the most important thing: whether you want to become a generalist or specialist, it's important to figure out what really motivates you to code everyday. The specialist delivers better quality work, higher chance to work for big companies, easier to deal extremely high salary. The generalist gets more things done, high chance of delivering low quality work, easy to work in startup environment, never gets bored but easy to get lost 😬

I made my move, your turn: I've chosen Fullstack JavaSript path for almost 3 years and never regret. But I did get lost several times 😜, choose it wisely and stick with it long enough to love it 💙

References

Discussion

pic
Editor guide
Collapse
ronancodes profile image
Ronan Connolly 🛠

I really resonate with this article, and couldn't agree more with you on every point.

I initially tried to become a specialist generalist and ended up getting nothing done.

I've now focused on specialising in JS with Angular and I've never enjoyed my career so much, plus so many more doors have opened for me.

In the next couple of years I'm hoping to get to work with Node and NestJS, which will push me to become a full stack JS dev.

For this I am very excited! 😁

Collapse
hoangbkit profile image
Hoang Nguyen Author

Awesome 😬 Now I'm sure I'm moving on the right direction cuz I have at least you agree with this 🤟🤟🤟

Collapse
sinteticwizard profile image
Ramon Ramirez

at the end programing is a medium, keep focus on the pourpuse an the tool you need will rise, i started learning python to use videogame engine was and only switched to csharp because another game engine that futfills the purpuse better was avaliable, and then i started javascript beacuse a client ask for a webapp, they not ask for the web experience just ask me beacuse they asume that can handle, and that was the case, even when i told them that i have no experience making webapps, however they know us previously as a strong skilled video gameprogramer and they entrust the entire architecture of the site to us, litteraly i leraned html javascript and css in that proyect, and thanks to that i discover a whole new branch of programming technologies, is weird because now i am coding servers and deploying react prototypes, checking frameworks just to be sure when i gonna a need their stuff, all while still programing videogames, looks like inconsciusly we have the curse of never stop learning, hoever the only thing always is clear and constant is the pourpuse, the code and tools follows after

Collapse
doonpy profile image
Nguyễn Duy Poon

Hello,
I just third-year student but I want to be a full stack developer too!

Collapse
hoangbkit profile image
Hoang Nguyen Author

It's dangerous to go wide too early! Focus on being really good at transferable basic knowledge. It's extremely easy to get lost in a bunch of full stack technologies and frameworks.

Collapse
doonpy profile image
Nguyễn Duy Poon

Thanks for your advice ;)
I’ll try my best 😋

Collapse
moinuddin14 profile image
Khaja Moinuddin Mohammed

Appreciate bringing your experience into an article. Definitely, not many would say the actual truth behind being a fullstack developer.