Table of contents
It can be overwhelming learning everything you need to know to get to the next level in your career as a developer. There are always so many things to learn and keep on-top-of in the world of web development. You can see what skills are relevant to different career paths as a developer on roadmap.sh. For instance, a junior frontend dev needs to understand things like:
- Git & GitHub
- Package Managers
- Command Line Interface
- How the Internet and servers work
- How to use an integrated development environment (IDE)
- Integrating linters and formatters into your IDE
- Testing frameworks
Even that list could be enough to make your head spin!
It's quite daunting to look at this list as a beginner, not knowing what many of these items are! But keep this in mind:
- Some of these topics are learned quickly once you understand fundamentals.
- Some of these take many years to master and fully-understand—but are more helpful than necessary to know.
- All of these have many great resources online to help you learn them.
One thing that's great about the field of web development is that the Web is jam-packed of excellent resources for learning about this field. The challenge is finding the best stuff for you. While there is some great material on YouTube or various websites that turn up in search results, I don't highly recommend this as a core-learning resource for the following reasons:
- YouTube is extremely distracting. How many times have you gone to YouTube looking for something and an hour later realized you still haven't looked for what you went there for because you got distracted by something totally random?
- Unless you pay for a premium subscription, you'll have video ads pretty frequently.
- The quality and scope of YouTube videos varies wildly. Some YouTubers produce top-notch, expert material, while some throw together super quick videos using cheap robot voices, low quality microphones, and don't even edit their videos for concision.
- It's worth paying for quality. You may not be flush with cash in your situation, but I'll recommend a few options that cost $15-$30/mo, which is affordable if you are serious about learning. By paying for a product you have much higher confidence that the quality is good.
- It's great to have a coherent track that can teach you a topic from beginning to end. If you learn bits and pieces from various sources, you might waste time re-learning what you already know or wind up with critical holes in your knowledge.
This article lays out what I think are the best websites and resources for learning web development in 2022. These resources will cover starting from the basics of putting a web page together, through to learning several programming languages and frameworks. Given the focus of this blog, special mention will be given to learning advanced PHP and Laravel concepts. There are many great resources available for free, but if you're serious about becoming a skilled developer it is well-worth spending money on high-quality resources that can ultimately lead to a lucrative career. Note that any prices mentioned are in US dollars.
Learning The Basics — freeCodeCamp.org (Free)
It's trendy to attend a "Developer Bootcamp" where you spend many hours a day learning all the things as fast as possible. This can be a good way to dip your toes into development if you don't yet know much, but a true "bootcamp" where you do in-person sessions with instructors can be quite expensive, not to mention difficult to attend if you have a job or family commitments.
The next best thing is doing a comprehensive online program that you commit to working on consistently for a period of time. And one of the most well-known and best programs allowing you to get started (and for free) is freeCodeCamp.org.
FreeCodeCamp gives you comprehensive, project based courses walking you through each step of learning the languages necessary to build web applications, starting from the very basics. If you're an absolute beginner, I think that this is a great place to start learning fundamentals.
There are lots of different programs you can take with FreeCodeCamp to that you learn about whatever type of software development you happen to be interested in.
My biggest complaint with freeCodeCamp is probably that, as a more experienced developer, it feels like a little too much "hand-holding" to allow you to really grow rapidly. In order to become a real developer, you're going to want to get your own development environment set up on your computer and build real applications that you can run locally or on a server. This brings us to the next resource.
The Odin Project (Free)
Another free resource that I would recommend for learning the basics of development is The Odin Project. It reads like a book that walks you through learning all the necessary fundamentals, and is less hand-holding than something like freeCodeCamp, but it covers the fundamentals. It is quite text heavy, so if you have a short attention span or limited capacity to read long, text-heavy websites, it may not be the most entertaining way to go.
Code with Mosh Video Courses ($29/mo or $249/year)
Mosh Hamedani of CodeWithMosh.com is an instructor who has an extremely comprehensive collection of video courses teaching a wide range of web development topics starting with the fundamentals, and covering topics such as databases, React, C++, Java, Python, and many more. (Sadly, he does not cover PHP or Laravel, but we will get to this shortly).
Mosh's videos, hosted on the Teachable platform, are made with high production value and they do a good job of explaining concepts in a beginner-friendly way. And you get a ton of value for your subscription fee as there are so many topics covered. If you're a beginner to intermediate developer, CodeWithMosh.com is a resource well worth your time and money.
Laracasts ($15/mo $99/year $399 forever)
If you have web dev basics down and are interested in being a full-stack (or backend) developer working with PHP, there are fewer better resources out there than Jeffrey Way's Laracasts. Laracasts has something approaching 200 series of video courses that are designed to get you up-to-speed quickly with practical, real-world skills working in a real development environment. Many excellent instructors have contributed to the material on Laracasts, including well-known developers who have created frameworks or tooling that are popular in the Laravel world.
The production quality is excellent, and the custom Laracasts.com website and community platform is gorgeous and very well made. Not only is it a great platform for learning from videos, but there's a vibrant community of other developers who help each other solve problems with their code in the discussion forums.
Many courses are available for free, so you can get a lot of value from Laracasts without paying anything. But for $15/mo it's a no-brainer for a working Laravel dev, but sometimes you can even get deals on the lifetime plan around Black Friday (so follow Laracasts and stay tuned for any deals). Having a lifetime plan for Laracasts is a resource that has been invaluable for me to learn and improve my skills with Laravel and PHP over the years.
Another resource for PHP and Laravel developers that has to be mentioned is the treasure in our community of Povilas Korop and his website LaravelDaily.com. This man is a content-creating machine, and virtually every day he puts out great content showing how to solve problems and write better code in Laravel. It's well worth following him on Twitter or checking out his site. If you've developed in Laravel, you've probably stumbled upon his blog posts explaining one concept or another.
Povilas has a very good series of courses on the Teachable platform available for $99/year) which is well worth a look if you enjoy his teaching style. You can find many of his videos on his YouTube channel as well to get an idea of the kind of content he creates.
Program With Gio — Learn PHP The Right Way (Free)
I don't recommend YouTube for focused learning, but I do want to mention one YouTuber who has been putting out great PHP content. Program with Gio. He has an ongoing series called "Learn PHP The Right Way which has many hours of content showing you the basics of PHP and Laravel, and he delves into some quite advanced topics that I have personally used as supplementary material to fill in holes in my knowledge.
Scrimba (Free for basics, $15/mo for pro)
Another platform I've seen highly recommended for beginners is Scrimba. This is a well-designed platform for learning web technologies that combines a video player with video content along with a web-based IDE that lets you edit the code along with the video. It feels a lot like pair programming with a real instructor!
Social media can be a huge distraction but it can also be a great way to meet and casually interact with other people who share your interests. By following people who are interested in or experts in web development, it can help inspire you to keep learning and keep up to date with your field, no matter what level you are at. And by sharing your knowledge and journey into web development, you can also develop your own following which gives you credibility and opens up a lot of doors.
If you're interested breaking into the world of tech-Twitter, I've created a list called Web Dev Rockstars that has many great accounts who have a reputation for posting excellent content or helping others learn or break into careers in web development.
Your Own Blog
As you learn about web development, it's a great exercise to write about it and share things with others. You don't have to be an expert nor do you necessarily have to be an amazing writer to create valuable content — people often learn best from other who are a step or two ahead of them as they can identify with the struggles of someone who doesn't understand things they only recently learned.
As with being active on Twitter, creating a library of content detailing your understanding and your achievements gives you great credibility in the tech space, and the opportunity to help others with things that you may have struggled with.
Creating a blog is not necessarily difficult—this very blog is hosted on Hashnode which makes it really easy to get started and write content without managing a complicated CMS or building a website. But if you do want an exercise to advance your skills, you could try setting up a WordPress site or build a completely custom blogging platform as a learning exercise.
You certainly don't need a degree to be a software developer or have a great career in the field. And I don't necessarily recommend going for this if you aren't very sure this is what you want to do with your life and have the means to handle the associated expenses or get loans. But if you are serious about getting promoted to a very high level in the field and you want to work for the big tech companies or big business, getting a degree in computer science (aka CompSci or CS) can open a lot of doors.
I completed a degree almost 100% online through Athabasca University (in Canada) while working full-time. It was an incredible amount of work and stress, took over five years, and cost about as much as a new car. But am I a better developer now because of that? Maybe a bit. I definitely have more skills in mathematics, English writing, and tangential knowledge in a variety of areas as a consequence of all the books and courses I went through and was tested on. Projects as part of the program (particularly the big capstone project at the end) were good practice. But could I have done all of that sort of stuff on my own? Absolutely. Would I have? Hard to say. It's unlikely I would have ever had the motivation to complete some of that sort of work without the big stick of tight deadlines promising to turn my expensive tuition into a waste of money if I didn't get the work done.
Online university is certainly not for everyone. I had the significant advantage that, as an older student with tech industry experience, most of the material in my courses was familiar to me. For someone who is new to tech, it could be difficult to get through some of the courses without a support network of teachers, assistants, or other students to give them a hand every now and then. Personally, I struggled with Calculus as well as (the very math-heavy) senior-level data structures and algorithms course, and paid for a tutor to help me with the math.
However you prefer to learn, there should be some resources out there that allow you to learn about, practice, and master the many skills and concepts one needs to understand to be an excellent developer. I hope that you find something useful among the resources listed in this post. If you are aware of anything that helped you learn or improve as a developer, please share it, as I'm always looking for great resources to share.
If you found this post interesting, please follow me on Twitter.