Disclosure: Some of the links below are sponsored. I only link to sponsored content that I believe in. If you like my blog, please consider signing up for free trials or purchasing the items that I link to!
So you wanna learn how to code but you don’t know where to start? It is easy to get lost with all of the acronyms, languages, and other mumbo jumbo magic. TDD, Scrum, functional programming, OOP, SOLID, blah, blah, blah… This is all well and good, but you probably already have a day job, can’t afford a bootcamp, and would pull your hair out if your head one strand at a time.
I was speaking with a cousin of mine that wants to learn how to code. He gets bored with Jobs and wants to pursue something that is challenging and won’t bore him. He came to me and asked me about which language he should learn so that he doesn’t waste time. The TL;DR of it, learn JavaScript. The rest of this post goes over a plan for how to start programming without throwing up your hands and quitting.
The Setup
Before we get started into the learning plan, here are some tips for getting yourself set up for success on your new career journey. (That is if you decide it is right for you.)
So in the Spirit of this blog post, here is what I would do if I was to self-teach myself programming from the beginning.
- Accountability Partner – Get an accountability partner to keep you accountable for your Goals and plans. You will report to this person weekly. Ask them to bug you about how you are doing so that you will at least be guilted into doing your plan.
- Learn How to Learn – Go through this course, NOW. Learning How to Learn is a life skill that you will carry with you the rest of your life. We are trying to learn smarter here, not harder.
- Get Anki – Use this for your spaced repetition learning, it will help you tremendously as you learn to remember and master concepts and syntax. I would recommend making your own notes as you usually write notes according to your own context and understanding.
- Get a Purpose and Make some Goals – Peak Performance mentions how having an underlying purpose to your goals allows you to accomplish things when you would have given up otherwise.
- Get some concentration music – There is a ton of good stuff out there. I will put a playlist here of my favorites shortly. For now, check out https://www.youtube.com/watch?v=KNuoGeD9Qeo&t=2s.
- Make a set time each day to learn – Learning How to Learn Course as well as Peak Performance have something to say on this subject. Basically, making a habit, as well as studying frequently will let you have both the will power to study, as well as the ability to remember what you learn.
- Get Atom – Don’t get lost in the “this editor is better than that debate”. Just pick up Atom and move on to your project. (By the way, I don’t even use Atom, but it is free and works well.)
- Correct Mistakes, Stop Judging – If you are like other humans out in the world, you needlessly scrutinize your work and hence focus all your energy on judging yourself against professionals or an unrealistic expectation. This is your intervention, you gotta stop bro (or sista, if you are one of the many lucky females deciding to join this awesome field). The Practicing Mind is an invaluable book that covers this concept as well as teaches you how to practice like a pro. To quote from the book, “your goal is to focus on the process and stay in the present, then there are no mistakes and no judging. You are just learning and doing.“
- Don’t be afraid to search for answers – Places like stackoverflow.com and the like are great ways to ask questions and get code examples. Avoid copying and pasting code. Try to implement your own solution, and if you do copy code, make sure to comment/credit it appropriately.
- Write down your pain points – What are the hardest things that you keep running in to while you are coding? What are you spending the most time on? Make a list of the top 5 hardest things that you are running in to. Now, find a programming mentor and ask them how you can overcome these hurdles. You can also look through youtube and google to search for the answers. Things that you might have a hard time with are debugging, syntax, programming concepts, and more. Make sure you do this list and look for patterns over time. Feel free to leave a comment below about pain points and I might address them in an upcoming blog.
The Learning Plan
One of the youtubers that I watch regularly mentions having a learning plan as essential to learning programming. What should your learning plan be? Well, it depends on your goals and your purpose. Your purpose may be learning to program well, make games, and doing mobile applications. JavaScript has the ability to do all of those things and is a big reason why many BootCamps are using JavaScript as main language. It helps with being able to carry your programming knowledge across multiple platforms/domains, which is really important when you are starting to program.
There are a few different sites out there that will give you an outline of a learning plan. Here is my attempt to do so for HTML/CSS/JavaScript.
- Think of a Small Project – While building a huge project may sound like a good idea, most people like small wins and feeling accomplished. Choose a small project that you can expand upon.
- Learn just enough – John Sonmez is big on learning just enough of what you need in order to pick up a new skill. This is really a catch 22 because trying to build a house with a screwdriver and nails doesn’t work as well as using hammer and nails. Learning enough of what HTML/CSS/JavaScript have to offer will help you to build a better piece of software and not get stuck.
- 10-20hrs – CodeAcademy – The HTML, CSS, and Javascript Courses are great to get started with, but they can add up to 45+ hrs of learning. You may want to skim through this material and then jump right into your project. Just make sure to take really good notes with Anki and fully understand the concepts that you think are pertinent to your project.
- 1-2hrs/week Review your notes –
- 30-40hrs – Do some more advanced projects – https://www.freecodecamp.org/ has some great projects if you get done with your original one or decide it was too big of a project. Remember to keep taking notes.
- 30-40hrs – Do a paid Project – one of the best motivators for my learning has been to do paid projects. Charging honestly for a job is difficult, and the best practices here are for another blog post. Just find a friend who needs a site and ask them if you can do a low, but reasonable hourly wage. Estimate the worst case scenario and then ask if that number fits their budget. Now go and complete that project.
Moving Forward
So you got through the 100hrs and you still have hair left. You have decided that you enjoy programming and that the pain points involved will either go away or are manageable. So where do you go from here? That is perhaps best answered with a followup post. Until then, I would suggest continuing forward with https://www.freecodecamp.org/. You may also want to look into learning TDD and other good coding practices as you continue to code. It will take some discipline, but it will set you apart from the pack.
More Learning Resources:
PluralSight – Start your Free Trial today! 5000+ Programming and Technical Courses
https://tylerslemke.com/2017/10/26/how-to-get-lynda-com-courses-for-free/
Very well written my friend, love the well structured and logical layout of this article. Very good practical tips that can be implemented right away and totally concur with point 1, accountability
Thanks Yihan. I appreciate the feedback. Feel free to share the article with anyone that might benefit!
great information! Very informative, and great to know that I am not the only one who feels overwhelmed trying to get into this field.