DEV Community

TM
TM

Posted on

How to become a full-stack developer

Full-stack is an overused word in the software industry. Before I start handing out any advice, I want to clearly explain what I expect a full-stack developer to be able to do:

֎ Be able to quickly build working UIs with or without any frontend frameworks

֎ Be experienced with building frameworks or APIs in one or more backend languages, and preferably something universal like Python (which lets you use hundreds of frameworks to address any kind of customer requirement)

֎ Be an expert with databases - Be comfortable writing TONS of code in JavaScript and deal with data formats like JSON, XML

֎ Understand anything and everything about how browsers and servers work, and all the protocols they use to communicate with each other (this is NOT optional)
Being a full stack developer is all about being a good computer scientist. You will apply your programming skills to solve real information management problems for companies and also build nice, beautiful websites that interface to their information systems.

So, what is the best approach to be a full stack developer? If you already have some programming experience, I would advice you to work in backend development first. In doing so, you will invariably be exposed to a lot of things that are important for frontend development. You will thoroughly understand browsers, protocols, APIs, and handling data formats. You can pick Javascript itself for backend development also nowadays, since a lot of companies use it extensively and hosting JS on servers has been easy and cheap. If you do this, you will fulfil the requirement of getting used to JavaScript for frontend work later on.

Once you know how to use a NodeJS environment, and how to use Express.js, you must start building applications that connect to databases and return data in useful formats. From there, there are so many frameworks and libraries that help you architect applications of any scale. If you cannot choose JS for any reason, the next best option would be to learn Python and optionally some framework like Django. Python also lets you build web applications of any scale, and frameworks like Django help you navigate the ocean of Python without you having to build everything from scratch.

It is important to find a job that lets you gain hands-on experience with all aspects of programming a backend service or application. It generally takes a year or two of experience for most people to be good at choosing the right design patterns for solving common problems.

Any time you are comfortable with building backend applications, you could dive into learning how to build good looking UIs. Being a frontend developer is a journey of its own. But no company will discourage a backend developer from tinkering with the frontend side of things in order to learn. Trust me, the opposite will be frowned upon (frontend developer asking to mess with backend). I recommend you to learn the following and exploit the power of Javascript: JQuery, VueJS and optionally Angular.

Also, in case you are someone who is just starting out and know nothing about programming or being a Full Stack developer. Well, then you could complete these actions to become a full-stack developer.

֎ Understand all the features of a browser, finish courses on HTML5, and CSS.

֎ Become good at Javascript.

֎ Setup NodeJS on your machine and use Express.js to build simple backend applications. The following will help you right away:

https://www.youtube.com/watch?v=Ukg_U3CnJWI
https://www.youtube.com/watch?v=TlB_eWDSMt4
https://www.youtube.com/watch?v=pKd0Rpw7O48

֎ Learn a frontend framework. I recommend VueJS.

֎ Pick a programming language you like for backend work. Build a simple clone of your favorite website.

֎ Build at least ten websites using a database and JSON for data exchange.
Apply to your favorite company. ;)

{Republished. Originally written for Quora in May 2018}

Top comments (0)