Self-teaching is a concept that's become more and more popular and well known nowadays. With schooling going online for the foreseeable future, more and more people are seeking supplemental ways to boost their knowledge and education. Even folks like myself (and potentially you!) are using the internet to transition their careers.

I will vouch for self-teaching 100% of the time, but you should be aware, self-teaching is a skill that is learned and is not easy for everyone; even more so for complex subjects such as software development.

There are limitless things to learn and limitless resources to learn from, however, this poses a double edged sword. It is extremely easy to also get distracted- but with a little bit of practice and some insider tips (this blog post), you'll be able to stay focused, learn any skill on your own time, and leverage the world's decentralized knowledge database (the internet) to your fullest potential.

Below are my top 5 essential tips for successful self-teaching. Each of these tips were crucial for me during my self-taught programming journey and I hope they help you too!

1) Stay consistent: learn every day, even it's for only 10 minutes. Consistency is the most important tip I can give you. I would rather you learn for 10 minutes a day than do 2 hrs on only one day a week. The most frustrating thing I experienced was having to relearn concepts I knew I already went over- all because I wasn't consistent! The more you go over something, the more it becomes second nature and the longer you will retain it for.

2) Take notes (especially on paper): Taking notes on paper makes your note taking process more intentional than if you were to simply take notes on your computer. It separates your environments and lets your brain know, “hey, when I'm writing something down, I really think its important, and you should remember it, okay?” Even the simple hand, eye muscle memory that comes from writing things down is immensely powerful for how your brain retains information. For me personally, I've found taking notes via keyboard and the computer simply don't stick as much. Try both out and see what you like the most, at the very least, just take notes!

3) Follow the roadmap: While you're reading this, go get the roadmap I've created at https://selftaughtsoftware.com – It's a simple, one page PDF that outlines exactly what you need to learn and in what order. This is something that took me way too long to figure out when I was first beginning my journey. It's also diluted down to only the most important of topics that are required for getting a junior level job. If it's not on the roadmap, you don't need to worry about it for now.

4) Don't jump around or chase the squirrel: When you find a resource to learn one of the topics from the roadmap, make sure you absorb the resource in its entirety before moving on. One of my biggest mistakes was bouncing around resources way too much. I would start reading one article, get distracted, jump to another video, not like it, try a third tutorial, etc etc. until 30 minutes later I realized I was only skimming the material and using the quality of the material itself as an excuse for me not learning it. If you find an article for example, read the article as a whole several times over before moving, on or if you find a video, watch the whole thing.

Our attention spans are poison to our self-teaching journey, take control of yours and you will go much further, much faster.

5) Try and teach others, create a blog: This point might seem counter-intuitive to you. “How could I possibly teach someone anything about programming? I just started!” Trust me, I felt the same way, but it was a huge mistake for me looking back. The point of the blog isn't to gain some huge internet following, the point of the blog is to force you to communicate your thoughts and your knowledge in a way that someone else could learn from it.

Teaching is the fastest way to make sure you truly know something. You now have accountability! See how this works? It's a healthy pressure.

If you don't want to start a blog, just grab a friend and try communicating the completely foreign concept of whatever it is you learned to them. You'll have to teach them as if they were 5 years old! It's a truly powerful 'hack' you can use to absorb material fast and thoroughly.

While there are plenty more tips I could give you, these were the 5 most important to me in my journey and I think they will be for yours as well.

To download the roadmap I mentioned in this blogpost, go to https://selftaughtsoftware.com – The PDF will act as a guiding light for you through your self-teaching journey and will make sure you stay accountable to yourself and stay on track.