0:00
How is it possible for an average construction worker to learn to code, to get that super
0:04
hard first programming job, and then get hired by a large tech company making hundreds of
0:08
thousands of dollars in total compensation each year? Nine years ago, I was totally that construction worker because I couldn't get another job
0:14
with my near-worthless history degree. So I ended up freezing my butt off in the cold each winter doing physical labor for
0:20
mediocre pay and no benefits. I'm now a full-time senior front-end software engineer at Adobe, and I'm self-taught
0:27
working in a nice cozy office. So let's talk about why most self-taught devs fail, why you should choose to become a front-end
0:33
developer instead of learning Java, PHP, Python, or some other backend-focused programming
0:37
language, the technologies you should learn, the right way to learn to code, and how to
0:41
get your first job as a programmer. What's the matter with your mind and your side and uh..
0:48
But first, what's your background story? I would totally dig it if you'd let me know in the comments
0:53
Fist bump. Alright, there are four main reasons most people fail when they want to become a self-taught programmer
0:59
First, they underestimate how hard it's going to be. There are plenty of videos out there about people who are learning to code in three months
1:05
six months, and in my case it took around nine months. Though three to six months is probably not very common unless you end up in a full-time
1:12
boot camp that can really help you stay focused. I did it in nine months in the evenings with the support and patience of my wife and kids
1:19
because I ended up having to sacrifice pretty much every evening during that time
1:23
And that's not going to be something that's going to be doable for a lot of people. It took a ton of self-discipline on my part, especially on the days where I just wanted
1:31
to give up. Because there will be those days. You also have to be realistic about your ability to learn quickly
1:36
Some people learn incredibly fast and things just stick. Others need more time to process it
1:41
If you compare your progress to a fast learner, you're going to get discouraged and may quit
1:45
even if you're actually learning code at a normal pace. Second, for most people, getting your first programming job is going to suck
1:53
I'll share some good strategies to overcome this in a minute, but a lot of people wash
1:57
out before getting that first job. Third, some people's brains just aren't wired for this kind of work
2:03
I know plenty of people who are amazing working with their hands and that's totally fine
2:08
There's nothing wrong with that. If you think that's you, before you give up, I encourage you to question yourself
2:13
Is it really because you don't have the brain for it or is it just because it's hard and
2:17
you lack grit? Fourth, a lot of people make poor decisions when it comes to picking a programming language
2:23
or area of software development. Let's talk about why I chose to become a front-end web developer
2:28
In simple terms, front-end web development is just the visual part of a webpage or application
2:34
that you interact with. There are a couple of really important reasons why I chose this
2:38
First, I have nothing against back-end development. It's super important. This is where the magic happens for storing and retrieving data
2:45
Let's face it, back-end code is visually boring. This means when you go into an interview, the only thing they have to test you on are
2:52
code problems and your ability to communicate what you know verbally. You're new, so you might understand what you're doing, but it's super easy to get
2:59
stuck trying to explain things and just not using the right words to describe it and to
3:04
get hung up. At least that's how it was for me when I first started. Perhaps that's hard for you too right now
3:09
This puts us at a disadvantage when competing against fresh computer science grads
3:14
We could even code better than them, but they can out-talk us and they have some paper to
3:19
back them up. The cool thing about front-end development is that you can show the finished project
3:24
Even if you stumble on describing some of the things, they can see what you have done
3:29
If you have other valuable skills like an eye for aesthetics or good user experience
3:34
intuition, it will show through in your work. Second, the front-end includes everything from software engineering skills to design
3:40
skills and so it tends to be more open to self-taught developers as a community
3:45
It's a pretty big mix of different backgrounds, whereas with back-end development, you can
3:50
tend to have a higher concentration of computer science grads. Now it's still going to take a lot of hard work, but it's going to be easier to stand
3:57
out and out-skill other self-taught front-end web developers who maybe just don't have
4:02
the same level of ambition as you do. Third, on the front-end, there are plenty of tools to make it super easy to set up boilerplate
4:09
code needed for an application and that lets you quickly jump into developing everyday
4:13
code skills without getting lost doing all of the complex configuration stuff
4:19
You can learn all of that later. For a lot of people, being able to see visual changes happening on the page can be super exciting
4:25
It's awesome to get fast feedback on the progress you're making and this really helped me stay motivated
4:29
With back-end, there are also tools to set things up, but the basic stuff can be pretty
4:33
boring and it's just so much harder to impress people with what you have done
4:37
It's like walking in the shadows of your girlfriend's real boyfriend. This is really important when talking to non-technical hiring managers or recruiters because even
4:45
these people can appreciate a website or an app that looks nice, even if they don't
4:50
know what's going on underneath the hood. Especially websites where you can hit that like button, I would totally appreciate that
4:56
So, you are going to end up having to learn three things, HTML, CSS, and JavaScript
5:01
HTML is kind of like code legos that gives your app structure
5:05
The CSS or cascading style sheets lets you define the size, the shape, color, the animations
5:11
for each of those legos. Add JavaScript is how we give it instructions
5:15
If someone clicks on a button, what should happen? Maybe it loads some data onto the page
5:20
If you hear someone say vanilla JavaScript, they're talking about writing code with plain
5:23
JavaScript without using any third-party libraries or frameworks. And as software engineers, we do a lot of repetitive stuff
5:31
And instead of writing everything from scratch ourselves, smart devs will usually use libraries
5:36
of heavily tested code written by other people. You should probably ignore anyone who says you should only use vanilla JavaScript or
5:44
else you'll end up basically building your own crappy library that nobody else knows
5:48
how to use. And if you care about actually getting a job, most companies will want you to have experience
5:53
working with one of the major JavaScript frameworks like React, or you could learn Angular if
5:58
you want to become a boomer living in your mother-in-law's basement. For a concise breakdown of several popular front-end frameworks, you should check out
6:05
this video up here by Fireship where he basically builds out like 10 different versions of the
6:11
same simple application to compare them. It's really cool. Either way, the right way to learn to code is not reading a book cover to cover
6:18
It's not trying to understand everything. There's just way too much stuff in HTML, CSS, and JavaScript that you just won't use
6:26
It's far better to master the core concepts and to learn all that other stuff as you need
6:31
it at some other time instead of just becoming mediocre in everything
6:35
The best way to figure this out is to just step away from following tutorials as soon
6:39
as you're comfortable with the basics and just start building things that solve problems
6:43
that you are already interested in. As you write code, you'll start to identify things that you just keep doing over and over
6:49
again and you should focus on learning how to do those things really well
6:54
How can you make that code chunk smaller, more reusable, maybe more efficient, and easier
7:00
to read? That kind of stuff. And then you should be able to explain why you chose to do it the way you did
7:06
In your interview, you'll probably get asked questions that stump you or that are just
7:10
hard to remember the exact answer. If you understand generally what's going on, it's going to be super easy for you to say
7:16
I don't remember that one thing and then just start to explain everything else
7:21
And that's probably one of the best tips for dealing with your first interview
7:25
In fact, that is exactly what happened during the interview that led to my first job offer
7:30
Be able to talk about a lot of core concepts can really make up for messing up on some
7:34
random technical question. And trust me, I messed up on a few questions
7:39
And here are some more tips for how to get your first job as a programmer
7:43
First, most people who are fast at getting their first dev job either know someone at
7:47
the company or they have someone mentoring them who can vouch for them and their skills
7:52
or else they just got lucky. And if you want to be that person, try to build solid relationships with people in the
8:00
industry as soon as possible. Second, if you've made it this far, I assume you're liking this video
8:06
So consider subscribing. I have a ton of other videos to help you become a programmer
8:10
Okay, for reals. Second, you are at a distinct disadvantage when compared to computer science grads
8:17
They have a paper that vouches for their educational experience and that is something you don't
8:22
And most certificates from doing courses online are going to be worthless
8:27
So don't count on those. You have to get practical experience any way possible
8:32
And that means build your own projects, work for free if you have to, but you have to find
8:37
creative ways to get your own experience. In my case, I built personal projects in the evening
8:43
And then in my downtime at work, I started building things and doing things for my employer
8:48
that could provide them value and build some skills, stuff that they didn't even ask for
8:53
And this means I had to be proactive and come up with ideas on my own
8:56
I created my own opportunities to get experience and you're going to have to do similar things too
9:02
Third, you want to have a portfolio that can sell your potential. And instead of focusing all of your attention on a single large project, I would shoot for
9:10
a handful of smaller projects first and then do one that is more of a complex project
9:15
The people interviewing you are probably only going to give it a quick glance
9:19
So seeing lots of projects is going to have a bigger visual impact initially
9:24
By starting with building the smaller ones, you're going to get some quick wins that are
9:28
going to help you stay motivated and then dive into that larger one
9:31
If you start with a really complex app, there's just a good chance that you are going to get
9:36
lost and that you might give up. For these projects, you need to do stuff that interests you rather than just copying existing
9:42
projects or tutorials. Simple and unique applications are going to be way better than a complex tutorial clone
9:49
But a unique complex project will really stand out. And don't get me wrong
9:54
Following tutorials can really help you develop your skills, but just don't consider them
9:59
to be good portfolio pieces. When you get to an interview, there's a good chance that they haven't even clicked the
10:05
link to see your portfolio. So bring an iPad or a laptop and be prepared to show them what you built and explain the
10:11
technologies you used and why you did what you did. If you used multiple frameworks, tell them what you liked about each one and what you
10:18
didn't like. That will go a long ways. Fourth, and one of my personal favorites, is don't just sit there hoping they'll ask
10:24
you the right questions. It's like politics. Instead of waiting timidly, just answer their question as best you can and then try to steer
10:31
the conversation to related topics you are prepared to discuss with confidence
10:35
Fifth, the spray and pray approach to sending out resumes just doesn't work well
10:41
If that's what you're doing, don't complain about why you're not getting interviews
10:45
You need to do whatever you can to get in contact with the hiring manager directly instead
10:49
of going through HR and the online application process. You don't want to be a no name in a database
10:56
The goal is to have the company want you before you ever fill out an application
11:01
Is this going to be easy? No, it's not. But all it takes is getting your foot in the door one time
11:06
And so be willing to fight for that because no one owes you anything and no one is going
11:10
to care about your career as much as you do. Even if that first job offer doesn't pay very well, you should really consider taking it
11:15
so you can start getting some real world experience as soon as possible
11:20
Getting that first dev job is going to be the hardest and you can always bounce a year
11:24
later if you need to. But if you really want to know why some front end software engineers make a ton more money
11:30
than others, you should watch this video up here and I'll even share how much money I
11:34
made at each of my jobs as a self taught developer. Lates