Written by Davor Minchorov
If you want to devote your time learning web development I will present to you the path that I think is the best to start this adventure, specifically oriented in the Laravel and VueJS world, and share some tips on how to get better at it over time.
This blog post is aimed at anyone interested in the web development world, either who started learning wants to start learning, or even people who are a few years into it and want to get some ideas that might be useful for them.
I must admit, there are a ton of learning resources on the internet and too many options for beginners to start from when they are looking for a path in the web development world, and some people even give out some crazy advice like:
- Get a course from Udemy
- There are free courses on YouTube or FreeCodeCamp
- Start with W3Schools
- Just read the documentation man
thinking that it would be as easy as they say it is for someone who has no idea what he/she is doing.
While these places on the internet have their usages, you can’t learn from a course site where you don’t even know the authenticity of the person who teaches you things, you need to rely on ratings and other people’s word. As for W3Schools, it’s more of a documentation site than anything, where you can just search for what you need to get an idea of how things work and use that into your project when you get to that point, but it is not a site you can learn from just by reading.
Udemy has some great content creators, but you need to know which one to learn from and how detailed are the courses.
From my experience, I’ve only watched courses from one person on Udemy, which is Maximilian Schwarzmüller from Academind, I watched his Vue 2 The Complete Guide 12 hours course a few years ago when I was starting a project with VueJS.
The same thing applies to YouTube, there are a ton of content creators on there but you need to know which ones are the best, and it’s hard to figure that out when you are new to this world.
Whatever course creator or content type you choose to learn from, just remember to investigate the creator, his experience and the way he explains things, the way he speaks, and how many details is he/she going into.
There are multiple sources where you can learn from so you can choose whatever you like the most or fits your style the best.
Watch Video Courses
I personally prefer video courses with quality content that focuses mostly on a specific topic (if I am interested in that) or a web app building type of course where the course creator uses multiple tools, techniques, and technologies to build a whole app from scratch so that I can follow along.
Whenever I want to learn something new, either programming, concept, technique, tool, technology, or a programming language, I start by searching for a course or a video on that topic. Once I get enough knowledge and get a good idea of how things work, I either search for another video or a whole course that uses the tool, technique, programming language in combination with the technology stack I am interested in just to see how things can be connected together.
After that, I start integrating the new learnings into my project so that I can understand the new knowledge even better.
Some things cannot be found in a deep dive video course, so I look for a book or an e-book that has that tool, technique, technology, or programming language and read it to get an even better understanding of it.
Books (or e-books) are great because some of them are written by very experienced people in the industry and can provide a lot more information than a video course on any video platform ever will.
Ask questions and read forums and chats
Asking questions is one of the most important skills if you want to ever learn from someone else in the community.
If you hang out long enough on one forum or in a community, you will start collecting a lot of learning resources and learn so much more, which will boost your knowledge to the next level.
I also hang out on a lot of Slack and Discord chats which are very useful, because there are a lot of community members and there are a lot of people who need help and I’ve learned so much from them just by reading their conversations.
Help other people in the community and participate in discussions
This is one of the most useful skills that helped me grow so much in a short period of time. Laracasts was my home for years (even though I don’t hang out there anymore, more active on other places like Reddit, Twitter, dev.to, Hashnode, Medium, etc.)
I’ve helped so many people, just trying to solve things and improve my searching and figuring out abilities that also helped me later on when people found me and recruited me for their projects, clients, companies, or even met people who shared a similar interest and was part in a table talk style meetups.
It opens so many opportunities for personal branding, and it helps you market yourself to the world where people can find you and offer you a job or a business opportunity.
Newsletters are a great way to discover news, tools, learning resources (articles, blogs, books, videos, etc.), which can boost your knowledge to the next level.
I am subscribed to a lot of them, Some of them include:
- CTO Insights (by my colleague Tosho)
- Adeva Developers Community Newsletter
- Awesome PHP
- Laravel News
- Laravel Daily
- VueJS News
- NodeJS Weekly
- Tailwind CSS Weekly
- Dev.to Weekly Digest
- Hashnode Weekly Digest
- DB Weekly
- UX Collective
- UX Design Weekly
- Smashing Magazine
- CSS Tricks
- Percona Database Performance Blog
- API Developer Weekly
and others to keep up to date as much as possible.
Now, I know that it is impossible to keep up with all of the new things that are coming out in this web development world, but I do try to learn something new every day so that I can use it if I need it in my projects or someday in the future. That way, I get a better full picture of what I would need in a whole project, besides working on a project directly.
Work on projects
Besides working on full-time/part-time / internship job projects, I always work on something else besides the full-time job, like my personal projects to experiment (like this personal website and blog here) with tools, techniques, or technologies that I do not usually use in my daily job.
Now, I know everyone wants to get paid to learn and/or build projects but working on personal projects or helping out other people teaches you so much that it can help you get a better job, become better, and even ask for a higher salary/rate per hour in the future.
Learning on a full-time job is all good, but sometimes that job can be boring or not really useful for the career when you are fixing bugs or work on useless tasks that do not teach you anything new.
That’s why I recommend for everyone to start building their own personal website and blog, deploy it somewhere so that people can see it.
Also, don’t forget to work on a personal project for a longer period of time that you might need to use for yourself, just so that you learn and experiment in your free time for fun.
Another option is to help out in the open-source world where you contribute to projects by helping other people.
Work enough so that you don’t burn out so much but still learn something new every day.
Read Articles and blogs
Same as the video courses, there are so many blog posts related to one specific thing that you might find useful or build a whole app based on a series of articles on a blog.
There are many blogs that can be useful to follow but I would suggest checking out dev.to and Hashnode first and then finding out people who have blogs and that you trust them based on their authenticity and the community you are a part of.
I use Feedly as my preferred RSS reader to follow the various websites and blogs.
I also have the daily.dev new tab chrome extension that shows me new articles from different blogs to read every day.
Watch Coding Livestreams
A few years ago, I started watching coding live streams of other people building projects to understand and learn how a person thinks when they build a project from scratch with the tools, technologies, and programming languages I use or like.
There’s always something new to learn from someone else and you can incorporate it into your own projects (personal or not).
The interesting thing is that I’ve seen different approaches to how people structure their code, how they approach the database or project design, the pros and cons of some tools in some scenarios, and so on.
Follow people on Twitter
I know that many people think that social media can be a distraction and you should stay away but I’ve learned so much from people on Twitter because there are a lot of valuable Twitter threads, tips and tricks that people share and you can’t find them anywhere else.
There’s also a lot of useless content that is irrelevant but I try to ignore that part and mute profiles to keep it web development specific only as much as possible.
First steps to a new programming language
The first thing I would do if I want to learn a new programming language (example: Go), I’ll try to get to know the ecosystem and community so I would do the following:
- Go to the Awesome List on GitHub and search for the programming language.
- Go to the programming language community on Reddit
- Try to find the most influential people in the sphere to follow on Twitter
- Search for top-rated books
- Search for people who live stream on YouTube or Twitch
- Search for newsletters
- Search for Slack and Discord communities
- Star useful tools, packages on GitHub
- Ask people where they learn from, who they follow, what books or video courses are useful etc.
- Start building projects once I learn the fundamentals of the new programming language, tool, framework, etc.)
- Collect learning resources as I find them along the way.
There’s no one way to learn web development just from one source and hope that you will get a job after a 6 months academy or a few video courses. It might take you a while but always be building something, helping someone, reading something, watching something. It’s really up to you how much time and effort you are willing to put in. IT is not an easy career choice.
Use the community and the learning resources to become a better developer, designer, DevOps, or QA engineer.
Do whatever you have to do to progress in your career, just don’t burn yourself out.
Do the work, be consistent and it will get you great results over time.
Learn how to filter useful and useless content that will benefit you. It’s a great skill to have.
Don’t forget to enjoy the process, even though there will be tough times and you will ask yourself if this is for you. If you manage to get through it, you will get closer to whatever you describe as success.
Have fun and happy coding.