Learn To Code In 2017, Get Hired, And Have Fun Along The Way

Super dangerous and not very practical. Cool picture though…

There is now an update to this post for 2018. Check it out here.

Last year I wrote a post on how to go from zero knowledge to being hired as a developer in 5 months. Since then, a few things have changed, and I want to offer an updated and improved version. If you are a junior developer or are curious about this industry, this post is for you. If you are an established developer, you may find some useful links in here as I list the best resources to supercharge your skills.

If you find this post too long, you can skip over to the 5 Months, Step By Step section. But you’ll hurt my feelings.

Ok you’re still here. Great! Let’s keep going…

Using online courses and mostly free tools, you can gain a valuable skill that will allow you to be employed in a great industry that is rewarding, challenging, and with a lot of options to move around the world (more on this later).

Important note: The post may seem like a step by step guide of what to do to become a developer, but if you look closely, it is a strategy that you can apply to any sort of learning.

Let’s get started.


Why Coding?

Something like this…

Before we get into the steps you can take to become a developer, we must first dive into why you would want to go down this path. Every decision that will require significant time of your life should be justified:

a. You want to be working in an industry where there is a high demand for the skill and many possibilities to be in highly important roles at the top of the food chain.

b. You love being location independent. You want a skill that allows you to go anywhere in the world and still be able to find a job easily. If you decide to move to Iceland tomorrow, you want to make sure that you won’t have issues finding a job.

c. You think change is good, and learning should never stop. So why not do something new?

d. You’ve noticed the difference between 2002 and 2017 and how much of a technological progress we have made in those short 15 years. You want to be at the forefront of an industry that is impacting the world.

But I don’t have a computer science degree and I don’t even know how the internet works! Don’t worry, we will use that to your advantage. Keep reading…

When choosing a new career path here are some good must/nice to-haves:

1. It must be relevant for the next 10+ years. This skill should be valued many years in the future guaranteeing you security.

2. Demand for people with this skill must be higher than the supply. The less available pool of skilled workers in the industry, the more control you can have over your job and companies you work for.

3. Ability to have a high salary regardless of years in the industry. You don’t want to spend many years climbing the corporate ladder until you make a decent living.

4. An industry that doesn’t require a specialized degree from a university. You don’t want to spend the next 4 years getting in debt and going to a graduate program before you start making money.

5. Ability to catch up to the top performers in the industry in the shortest amount of time. Can little experience still get you employed? And can you close the gap as fast as possible to be considered a senior or an expert in the field?

6. Have fun. The most important one. Can you see yourself doing this 40 hours a week for a long time?

Coding hits every one of the points above in my experience. You want to evaluate this yourself and see if it is something that is right for you.

IMPORTANT POINT READ IT: keep in mind that the first 2 months will feel like you are climbing an insurmountable mountain. Every tutorial, course or lesson you do will make you feel like you are the only person in the world that doesn’t know this stuff. Stay strong. You will get there and you will have more and more ‘AHA!’ moments as time progresses. We call this the Impostor’s Syndrome: where you feel like you are the only one who doesn’t know this information and you are surrounded by self-doubt. Rest assured we all feel this way when we learn something new.

What you will learn is that being a good developer isn’t necessarily memorizing a whole bunch of documentation. It’s about learning how to solve problems using all of the tools that are available to you.


Who Are You And Why Should I Listen To You?

Wow, you’re aggressive, but I guess that’s a fair question. It all started a few years ago…I wanted a career change and decided to teach myself computer programming.

I spent the first month avoiding any tutorials or books. Instead, I spent this month looking at the best way for me to learn and get hired. I studied other people’s experiences, looked at job postings, spoke to established developers, reviewed online courses, looked at bootcamps, and even read articles by futurists on where we will be with technology in 20 years. Based on those, I created a curriculum for myself focused on efficiency: The critical amount of learning in order to be employable in the shortest amount of time.

If you love the works of Tim Ferriss as much as I do, you’re going to love this. The curriculum isn’t focused on doing the least amount of work. Instead, it is focused on working really hard at the things that matter most in order to be employed in the optimum way. This doesn’t mean doing the bare minimum and being hired as a junior developer. If you can work hard and skip the line by jumping straight into an intermediate developer role, that is a better outcome. Luckily for you I have already sifted through everything.

Although I spent 1 month planning my studying instead of actually studying, it was a benefit in the long run because I wasn’t running blind. I knew where I was going, and I had a map to the finish line. You will too.

So yes, I’ve been where you are and I know what it takes. When I was getting started, I wish there was something like this that outlined things for me. I also found many tutorials were taught by people with a lot of technical knowledge but without being able to properly teach a novice. I’ve read and studied every single video, tutorial and course that time permitted, and I still do. Since then, I have consulted on numerous projects, run coding workshops, and continued to develop my skills. I love this career and I think many people would enjoy it and benefit from it as well. So I’m on a mission to help others who want to make this jump.

Ok that last sentence was a wee bit dramatic…


What Language Are We Going To Learn?

This one^

You are going to become a Javascript ninja for the following reasons:

→ Javascript is everywhere. Every company that has a website needs someone with Javascript knowledge. This language is a requirement for a TON of job postings (If you don’t trust me, search for Javascript in your area on LinkedIn).

→ With the introduction of Node.js you can use Javascript to create a full-stack app (english = you can use javascript to build your entire project). Using tools like Electron, React Native and many others, Javascript allows you to build a desktop app, a mobile app, a web app, and even VR apps.

→ If you didn’t read the first point and you were thinking about something else, let me reiterate: Industry demand for Javascript experts is HUGE. It is not uncommon for developers to get contacted by recruiters and headhunters multiple times a week for job offers.

→ Javascript community is growing at a crazy fast pace. There is a lot of new developments in the community. Some people complain about Javascript fatigue, since more and more new tools are being developed every day. However, we can use this to our advantage. You would be learning these new technologies at the same time as people who have been in the industry for years.

Trust me, it is a great community with a lot of demand.

Enough jabber, let’s get started. Below you will find what I believe are the best for you to get the most out of your time. By the end of 5 months, you should be able to land your first real non-entry level programming job. No bootcamps. Just you and your determination.


The 5 Months, Step By Step

First Month: The Big Picture

Big question to answer: How do computers, internet and websites work?

How Does the Internet Work: this from LearnCode.academy and this from thenewboston.

Follow this Harvard course on youtube. This is just pure gold from probably the best computer science instructor.

How to use the command Line: this by Zed Shaw

How to build a website/get a domain/and have it up and running: LearnCode.academy video

How does HTML, CSS and Javascript fit together: FrontendMasters course on web development. Only up to and including section on Javascript.

If you have time, you can do a few of the courses on the HTML and CSS sections at freeCodeCamp.

Second Month: Javascript

Big question to answer: How does javascript make life better?

Javascript → This is where most of your focus will be in the later months. What problem does Javascript solve? Start writing little programs in Javascript to make your website behave in a certain way. This language makes your websites do things other than just look pretty. Learn how it can be used outside of just browsers. Watch this by Kyle Simpson, and finish the rest of the course you started the first month. Finally, finish these five courses on the javascript track from CodeSchool.

Learn git and Github with these courses. Create a Github profile and start making commits every day. Start developing a sample website.

Terminology/Jargon: this video and this.

Finally, watch this great playlist on youtube.

Third Month: Javascript + jQuery + Building Your Website

Big question to answer: Can I build a professional looking website and understand the entire process?

Do the section on jQuery by freeCodeCamp. Although it has become less popular, knowing this library and it’s power will be useful to you in the future. Later you will learn how frameworks like React.js, Vue.js and Angular have replaced (almost) this tool.

Google Developer Tools → learn how to debug your programs and websites using google Chrome. Do this CodeSchool course.

Start attending local meet-ups on coding and Javascript.

What is the event loop → Once you have a good grasp of Javascript this talk will be a game changer.

Finally, watch this course by Douglas Crockford.

By the end of the month you should have a personal website up with the codebase on Github.

Fourth Month: Servers, Databases and Connecting The Dots

Big question to answer: Where do servers, databases, and raspberryPis fit into all of this?

What is a Computer/Server/OS: buy a raspberryPi and build your own server. Look up different projects on youtube you can do with your raspberryPi. Finally, build a simple script that makes lights attached to your raspberryPi blink. Follow this course. Host your website on the raspberry pie. Be amazed at how cool you are.

Spend 1 day each on the below subjects. You don’t need to have a good grasp on them. Just learn why they are there and what problems they are solving: Testing, Machine Learning, Time Complexity, SQL, UX/UI
***I can already hear people screaming at me with the above suggestion. “Are you out of your mind?! You don’t think testing is important?” But hear me out. I do agree that the above is important to be a good developer, and everybody should learn those skills. However, we are trying to build a trunk of foundation here. It is easy to start diving deep into a topic, but without the foundation you won’t actually know why it’s important, or how it relates to what you are doing. Additionally, in most job postings I found, there was very little mention of the above skills. Just save learning these until you are on the job.***

REMEMBER: your goal is to get employed in the most efficient manner.

Build a small project using firebase as the database.

Read The Two Pillars of JavaScript Part 1 and The Two Pillars of JavaScript Part 2.

Last Month: React.js (or Angular 2)

Big question to answer: What problem does React or Angular solve?

I’m heavily biased. I love React.js. As a matter of fact, I teach it to others and run workshops on it. So just trust me on this one. Learn React unless you have a good reason to learn Angular 2.

React → Do these in order: one, two, three. Then head on over to the official documentation and read through everything.

Learn Redux → Watch this course. Don’t let your head explode. Then read the documentation for it as well.

Build a sample React+Redux application.

Deploy your app on Heroku.

Deploy your app on GitHub pages.

Start following Dan Abramov, Eric Elliott, David Gilbertson, Quincy Larson, and Tyler McGinnis on Medium and twitter and read everything they put out.

Start building your online resume. There are people that give better advice than me on this. Check this and this out. I also wrote an article on this that you can check out, but this post is already getting too long and you’re starting to give me evil eyes.


Let’s Recap

By the end of the 5 months you should have the below requirements completed:

1. Learn HTML and CSS. Then, buy a domain, buy hosting from a place like BlueHost, and make a website and put it online. This is going to be your portfolio from now on. Learn how to update it and make edits. As you learn new things, continue to make it nicer and nicer. Don’t spend too much time on this. Just enough to show that you’re able to put something online and make it look nice. This is how mine looked at the end of 5 months. Nothing fancy, but it’s something.

2. Start learning Javascript. Now how can you make your website interactive? Go through the above resources and see what Javascript does.

3. Start pushing your little projects to GitHub. Employers will look at your GitHub profile and how active you are on there. Try to make commits 5 times a week on your personal projects. Also try reading through this and contributing to some open source projects like freeCodeCamp.

4. Learn to google and use Stack Overflow when you have problems. 99% of problems you will encounter when you start out can be found online. Or join the Javascript IRC channel and ask questions when you are stuck.

5. Become comfortable using a command line to do things. Always have it open when practicing and try using it instead of the GUI (graphical user interface).

6. Learn the newest language features and trends in Javascript, and learn to solve problems with them (i.e. Promises, ES6, functional programming techniques).

7. Attend local meet-ups and start talking to people. You will be really overwhelmed and confused by all of the things you don’t know. Don’t worry as this is natural. Just start meeting other coders so you can be surrounded by the lingo and jargon.

8. Start listening to the podcast, Javascript Jabber. This will get yourself familiar with the jargon so when interview time comes, it doesn’t overwhelm you. The first few times you listen, you will have no idea what they are talking about. Don’t lose hope. Eventually you it will all make sense. FunFunFunction is also a great weekly youtube channel you should follow.

9. Start applying to recruitment agencies early. We are going to use them as practice. Most of these have practice interviews with professional coders so they can rank your skill, but you can use these to practice programming question, and ask these experts any questions you want!

10. Start applying for jobs for which you are way under-qualified. You will get some interviews. You should never settle for a job. If you never ask, the answer is always no.

11. Make your LinkedIn profile look nice. Don’t spent too much time on your resume. Make it one page, make it concise and write down all the skills you’ve learned in the previous months. Being self taught shows a lot of courage. Remember that your resume is just to get you an interview, after which, they are as good as paper towels…ok bad analogy because paper towels are very useful. I spent less than 2 hours on my resume. What makes you different than other developers is the fact that you come from a different field and background. How is this going to differentiate you?

12. Interview and be amazed at how employable you are. Not all of them will go well, but then again, not many developers learned everything in the last 5 months. It shows ambition. ONLY apply to jobs on LinkedIn, and the rest should just be you emailing directly or calling the company you want to work for. Don’t waste your time on mass Craigslist, Kijiji, or Monster.com ads.


What Is The 20% That Will Get Me 80% Of Results

Most people have an idea that you need to get something 100% before they can move on to the next step. However, for most skills, including programming, the closer you get to 100%, the longer it takes to get there. You only have 5 months. The last 20% will be better served actually working in teams, on real projects (and getting paid). So we are only focusing on getting 80% of the knowledge to use our time efficiently.


Biggest Takeaway From All Of This

Technology is always changing. This is especially true with Javascript. Things are moving so fast right now that it is impossible to know every single library, quirk, or framework. What you do need to know is how everything fits together and what each technology is trying to solve. Most importantly, you just need to know it exists so you can look into it and figure it out when the time comes. Programmers are problem solvers. Learn to solve problems with the tools available to you. Most of us spend a lot of time on pages like StackOverflow or researching google because there are so many resources out there. You just need to know how to look for answers and ask questions.


Conclusion

Focus on efficiency. The reason most of us give up on a goal is because we don’t see results. By focusing on the things that matter, it makes learning fun. But it doesn’t end here. Learning never stops, and your goal was to get employed as soon as possible so that from that point on, everyday you are receiving a salary to learn.

Coding gets more and more fun with each passing day and it’s even better when you are getting paid every day to solve problems and develop your skills. The real growth happens when you start working on real projects with real teams. That’s why I strongly believe that you want your ‘study’ period to be as short as possible, in order to avoid debt, and increase your time in the best environment for learning: working in teams. I wouldn’t even recommend freelancing to start off. You want to surround yourself in an environment where everybody is smarter than you and you are working everyday with them. From there, be a sponge and absorb all of the information.

We’re building that trunk. When that trunk gets big and strong, and the roots are all put into place, your rate of learning new things will be exponential. You’ll form leaves of knowledge faster and faster with each passing day.

Make 2017 the year that you took a risk, you learned a highly in demand skill, you were terrified, you had new experiences, and you received new opportunities. Give it a try.

There is now an update to this post for 2018. Check it out here.
Here is the next post in the series: 
How To Become A Senior Developer

One last thing…

I created an online course: The Complete Web Developer in 2018 where I walk you through the entire steps I mentioned above if you want everything in one place, extra help or you want to support my work. It’s over 100 HD videos and 30+ hours of content. It took an insane # of hours to make. But I’m really proud of how everything turned out. I’m releasing it to the world today, and since it’s the holiday season, you can use coupon code RELEASEYA77 and the course will only be $10 (Available to the first 100 people UPDATE: Sold Out)

Update: We’ve passed 40,000 students from over 180 countries who have enrolled in 6 months. I still want to support the learning spirit, so use the coupon code KHDKA7166 for a nice discount.


Thank you for reading this far. Sorry for the long post, but if you enjoyed this post, please share, comment, and press that 👏 a few times. . .Maybe it will inspire someone to make the jump into a new career.

Follow me on Twitter and Medium if you’re interested in more in-depth and informative write-ups like these in the future!