It was Monday, sometime in the morning, and I sat alone in the hall, nervously bouncing my right leg as I waited for my turn to speak to a counselor
Several years prior, I would have felt right at home, but not this time. I felt like a complete failure and a loser
Would I really be okay with being that guy, you know, the old man sitting in class with a bunch of other college students
Okay, so I wasn't that much older than them, but at the moment, it felt like I might as well have been a hundred years older than them
My heart was thumping hard, and I could feel my anxiety building with every breath. I was nervous, and I was terrified
I felt a bit of excitement when the academic counselor gave me a tour. I was going to finally redeem myself
Finally, I'd be able to provide for my wife and kids and give them what they truly deserved
I'd get a more technical degree in one of the sciences. I was thinking maybe like geology or physics or computer science
But all my hopes came crashing down as I looked over the academic course plans
You see, I wanted to leave my current construction job and get some other full-time job and then go to the school and work on that degree part-time
Problem was, each of these degrees had mandatory classes just sprinkled throughout the day
No evening options for some of them, and even worse, my previous degree only knocked out a small handful of the general classes
and I wasn't eligible for any more tuition assistance or student loans
I was kind of in denial, so I went ahead and registered for geology, only to withdraw my registration a couple days later
It just wasn't going to work. I mean, if I wanted to be a good husband and father, I had to just man up, take things into my own hands, take control of my own destiny
I simply couldn't afford the time and money to go back and get a computer science degree
But I knew a couple of self-taught programmers. They didn't even have a bachelor's degree in anything
Out of the three areas of interest, programming seemed to be the most viable, and I am so glad that I took the leap because I'm now making a ton of money as a software engineer building web applications
It's pretty hard. I had to sort through a bunch of outdated books, and most of the tutorials that were actually worth doing you had to purchase
and coding boot camps just really weren't available like they are now. I had to wade through a giant pile of poop looking for the gems
Fortunately for you, there are so many resources out there now to help you become a programmer
Now, you could go through a coding boot camp for a short, structured approach to learning to code, but let's be honest here
They can be really freaking expensive, and a lot of them are pretty sketchy, just trying to take your money
Boot camps also tend to focus on full stack, and that's not a good thing
You can find out why in one of my other videos, and I'll leave a link to that video in the description down below
Frankly, I think you could save a ton of money by going the self-taught route, so you should seriously consider skipping a boot camp
At the end of this video, I'm going to share a front-end developer roadmap with you, which covers the things that you should focus on learning
Before we get to that, here are some excellent free resources that I wish I had when I was starting out
If you follow my developer roadmap and you complete these courses, you are going to be in a great position to actually get a software job
It's not going to be easy. It's going to be a ton of work, but it is doable
The first place that you should start out is with Free Code Camp, and they offer several certification courses
Don't get too hung up on the actual certifications for any of these courses that we're talking about
because these kinds of certifications are more of vanity awards just to make you feel good
not really something that is super recognized or important in the industry
Start with Free Code Camp's Responsive Web Design course. Here, you're going to learn about building HTML pages as you work through a simple app
What I like is that you have everything you need to get started right in front of you
You have instruction on what to do, a place to type your code, run some tests that will tell you when you've done things correctly
and a way to see the results. You're going to learn how to style a website with CSS, and I really like that there's an emphasis on responsive design
which is how you make a website look good across different size devices
You'll also become familiar with accessibility concepts so that you can build things that can actually be used by people with disabilities
like those that have color blindness. It's a good skill to have, and some companies will even require it
Once you've worked through the exercises for each certification course, you'll have some projects to build
Don't skip these because building stuff is the fastest way to let concepts sink in
JavaScript is the programming language of the front end, so for sure you want to do the JavaScript, Algorithms, and Data Structures course
The Front End Development Libraries course is interesting. Bootstrap is a framework designed to help you style your website more easily
and it also comes with some pre-built components like dropdown menus and stuff like that
But Bootstrap is not the only option available. There are others out there, and in the real world, you'll probably be working with similar libraries built by your company
My issue with this section is that it also teaches jQuery. Now, jQuery is a decent library for interacting with HTML instead of relying on plain JavaScript
but when building Angular or React applications, it's actually bad practice to include jQuery
I've personally never used or seen jQuery used in any of the React apps that I have worked on
So you might consider skipping the jQuery section altogether and learn it later on if you encounter a situation where it would be helpful
Just realize that in skipping it, you might have to go rogue a little bit in the project section
and figure out some of the stuff to do inside of React directly rather than using jQuery
This course also covers React.js as well as the Redux library, which is used for managing state inside of a React application
And these are good sections to learn, and once you're comfortable with React, you could also look into semantic UI as a React-focused alternative to Bootstrap
Sass is a CSS preprocessor that lets you do some really cool things with CSS
like using mixins and programmable logic, including variables. And these kinds of processors have been around for a while and have been pretty popular
but CSS is also getting better and now supports things like variables natively
That said, you'll probably encounter preprocessors inside of projects that you're working on
so Sass would be a good one to learn. The next Free Code Camp course is Data Visualization with D3
This will teach you how to use a JavaScript library to have cool charts and stuff in your app
In the real world, depending on your project, you may or may not need this kind of visualization
But it's super common to integrate with these types of libraries, so this would be great practice, even though D3 itself is not something that I would absolutely consider as essential
Then there's Free Code Camp's course on backend development and APIs. If you've watched my video on why it's a bad idea to become a full stack developer as a beginner
you might be tempted to skip this course. I personally think this course is still useful
The first section is on npm packages, which is something we also use for applications on the frontend
If you have the time, I think it's still worth it to do these sections to become familiar with how backends work
Then call it good for now on the backend stuff and focus on getting really good at frontend
There are other courses on Free Code Camp that you can ignore, like the Python ones, if you plan to stick to frontend development
Their quality assurance course covers testing, which is important. It teaches Chai, which is fine, but I personally prefer Jest
So either do the Chai section here, or wait for the tutorial on Jest that is included in one of the other websites we'll look at
Don't feel pressured to learn testing until you're already feeling pretty comfortable with React
If you do decide to go full stack, then I definitely think you should do Free Code Camp's information security course
because the backend really is the gatekeeper for securing data. Once you've completed these Free Code Camp courses, you should move on to the Odin project
There will be some overlap between the two, but still go over it because you'll likely pick up some things that you forgot going through Free Code Camp
You'll start with the foundation section, which in addition to HTML, CSS, and JavaScript
you'll also get introduced to something called Git, which is how we do version control
This lets us keep a record of all of our changes so that we can find when a bug was introduced or reverse our code if needed
Once you've completed the foundation section, go on to the full stack JavaScript path to dive deeper into HTML, CSS
and you'll even dive deeper into JavaScript. This course is also going to teach you about testing with Jest, which as I've mentioned is the framework that I like for doing my testing
I also really like that you'll learn about backend as a service, because I personally used Firebase when I was starting out
It's a great way to handle the backend stuff while you focus on frontend skills, and it's pretty easy to get everything set up and configured
You'll learn about animation and other cool stuff in the advanced HTML and CSS course
but if you already did the backend API course on Free Code Camp, you could probably skip the Odin Project's Node.js course unless you do plan to be full stack
Now that you've done the foundation path and most of the full stack JavaScript path, you'll notice that Odin Project also has a third path for Ruby on Rails
I would totally skip that one. We'll talk about some more free courses in a minute, but at this point, you should be feeling somewhat comfortable and ready to start building some things on your own
You'll stumble, and it will be slow at first, but that is completely normal
Even as you work through other coding courses and tutorials, it's super important that you just start building stuff on your own, because this is a crucial step in developing skills faster
You don't want to get stuck constantly following and relying on tutorials
Another course that is worth taking if you want to really solidify your React skills is Ryan's React.js Frontend Web Development for Beginners course on Udemy
He covers React Hooks, which is the newer, more functional way to do React components and manage component state
It's just under three hours long, but it is worth it for beginners. Another cool free course is one offered by Harvard University
It's the CS50x Computer Science Intro course, where you can learn how to think like a programmer
You'll learn about algorithms and other core software engineering concepts. There are a ton of other courses like this from other leading universities, and they're called MOOCs, at least I think that's how you say it
I could be totally wrong, but that's short for Massive Open Online Courses
Often, these are free if you don't need the certificate, which is great because guess what
You don't need the certificate to get a programming job. A great place to search for more of these types of courses is on MOOC.org
Now, at this point, you've gone through enough courses to have a fair amount of repeat instruction, which is good
Now you must step away from tutorials and build things. Think of a problem that is related to one of your hobbies and try to build an app that solves that problem
When you do get stumped, and you will, don't give up. You should research the problem and learn how to overcome it
Learning how to research efficiently is super important as a software developer
This process gets easier the more that you do it. So when will you be ready to get a software development job
You're likely not going to feel ready even when you start your first job
but you'll know you're getting close when you're comfortable with everything that I share in this Front End Developer Roadmap video
I'll also leave a link in the description. Thanks for watching. Lates