I’ve been learning about web development for a while pretty much from scratch. I’ve gone over numerous guides, tutorials and documentation from various resources, among which I took note of the important and beneficial ones that I believe a beginner will benefit from the most. In this article, I’m going to share them with you as a roadmap that you can follow if you want to become a full-stack web developer in a fun and efficient way.
Let’s make one thing clear. There are lots of programming languages, tools and frameworks out there in the world of web development. In most cases, there’s not a single best way to solve a problem. However, as a beginner, you shouldn’t attempt to learn every new thing for the sole sake of learning, or just because some people are hyped about it. On the contrary, you should aim to acquire the bare minimum skill set so that you can start building stuff as soon as possible.
For instance, you’re going to have to learn JavaScript in order to write browser (front-end) code no matter what. And guess what, there’s something called Node.js which lets you write server-side code using JavaScript as well. Now I’m not arguing here whether Node.js is the best option for developing your back-end or not. However, it’s certainly convenient to be able to build an entire web application by having to learn just one programming language. A deal too good to pass up, don’t you think?
You can (and should) always learn about other technology trends once you master the basics and have a solid understanding of how the web works.
I’m going to divide the steps in this roadmap into several chapters which are sorted below from basic to advanced:
I’m also going to label each item in a category as fundamental, optional or reference. I strongly advise against advancing to a category before completing all the fundamental steps in a previous category. You can postpone optional steps if you want, or skip them altogether if you’re feeling too lazy. References are not meant to be gone through from start to end. You’ll find them useful in the future when you forget some detail and want to quickly look it up, or when you need further information about a specific topic in the corresponding category.
By the way, I didn’t mention this above but if you don’t know how to use Git, stop whatever you’re doing and learn it ASAP. Don’t worry, it’s not going to take long. Actually this 30 min YouTube video is more than enough to get you started. Just make sure that you know how to use the following 7 simple commands for starters:
Lastly I just want to say that if you haven’t used Visual Studio Code yet, you should definitely give it a try. I think it’s an amazing code editor, especially for JavaScript.
Alright let’s begin…
Learning HTML & CSS is definitely where you want to start as a beginner. Once you have a solid knowledge, these two will let you build structured, elegant and responsive websites with static content such as a blog or a portfolio page. You’ll also use this knowledge in the following chapters where you’ll deal with browser-side JavaScript code or a front-end framework such as React.
At this point, I have to also mention some CSS frameworks such as Bootstrap and Materialize. Most people will advise you to learn one because these can really speed up your development process. IMHO this approach isn’t going to help you fully grasp the basics of web design. I think you should stay away from them until you’re comfortable with styling websites with your bare hands.
Being the only programming language that can possibly be used on the front-end side, JavaScript is an essential part of web development. As I mentioned earlier, you’re going to be able to develop back-end code with it too, once you learn Node.js as well.
async/await
might get confusing if you’re not familiar with asynchronous programming. Check this video out after reading the corresponding section in The Modern JavaScript Tutorial in order to see some real action.On a side note, it’s not necessary to learn jQuery unless you have to read and/or modify existing code that uses it. Vanilla JavaScript is equally powerful today except for a few use cases.
Node.js is an asynchronous event-driven JavaScript runtime built on Chrome’s V8 JavaScript engine, which is designed to build scalable web applications. You’ll have acquired the minimum skill set to build an entire dynamic web application after completing this chapter.
You should’ve learned a little bit about MongoDB in the last chapter if you completed all the fundamentals. Now it’s time to learn some SQL. I think MySQL is a good place to start learning about relational databases.
One thing I would recommend you is, don’t just go with the flow and automatically opt for NoSQL just because everyone is using MongoDB with Node.js these days. This decision requires rational thinking and comparing the pros and cons of each option. There’s a good chance that a relational database is going to fit your needs better for your first real application as a beginner.
Lastly, Object Relational Mapping (ORM), e.g. Sequelize can be tempting to use at first but I say stay away from them before fully grasping SQL. Have a look at this if you want to know why.
So far you’ve been building your front-end using plain JavaScript. And that’s perfectly fine if you want to become a back-end developer. In that case, please proceed to the next chapter in an orderly fashion.
If you’re still here, we’ve got a little bit of additional work to do. Almost all front-end or full-stack development job openings these days require some knowledge about a front-end framework, particularly either React, Angular or Vue.
At the end of the day, choosing between them really boils down to personal preference unless you want to apply to a specific job. I opted for React after some research, and therefore that’s what I recommend you to learn as well. You might also want to check out some statistics if you’re feeling skeptical about it.
Congratulations! You’re now officially a full-stack developer. Go ahead and pat yourself on the back. You must feel like how Neo felt just after he learned Kung Fu. But you still have to complete this chapter if you don’t want to get your ass kicked by Morpheus.
To some of you, Docker might not appear as an absolutely necessary thing to learn. While that’s not incorrect, it’s an investment you’re not going to regret.
docker-compose
subcommands.That’s it, I hope you enjoyed following this roadmap. I’m sure there are many more useful resources out there that I’m not aware of. Feel free to leave a comment below and share anything that may be helpful to other readers.
#node-js #javascript #docker #reactjs #express #html #css #sass #mysql #mongodb #html5 #css3