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.
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
- 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.
- 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.
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: