Reduce Hand Holding, Focus on Competency
If you’ve already taken courses or gone through online learning material in the past and still seem to be struggling, I wonder if you’ve thought, “yeah yeah, I’ve already started learning to program but I still don’t ‘get it’”, I’m willing to bet that ‘hand holding’ is the reason why.
Tools like Treehouse are great for learning. They teach you lessons in your browser, and you can even code in your browser too! The bad part? It’s too easy.
Many people I’ve worked with who have used Treehouse have had a similar experience. While they make it as easy as possible for people to learn and apply the work, it’s so easy that all you’re doing is ‘filling in the blanks’. You learn how to go through the course, not how to develop code.
Another thing is that
Go through the learning materials however you’d like, but do not dismiss the importance of actually developing software: writing a code in an editor and executing it. Asking people for help if possible and learn how to get yourself ‘unstuck’ via Googling. The tasks described in this paragraph are what we as developers spend the majority of our time doing (when we’re not in unnecessary meetings, at least).
Try to take what you’ve learned and do things with it. Like ‘free writing’ where you’re writing whatever is on your mind, ‘free code’ where you’re working on a project or solidifying your learning by coding without intent.
At this point, I highly recommend programming challenges like [Codewars](https://www.codewars.com/), which allows you to flex your coding muscles to complete basic coding challenges. As always, remember to take notes, and more importantly, save the coding challenges that you complete!
Have you tried to learn a new language before? By language I mean ones that are spoken around the world. Reading and writing is where most people start and stop at; the content usually doesn’t stick. I’m speaking from two years of French from High School and one from Japanese in college; my fiancé has three years of Spanish. We’ve retained nothing.
I’ve found that the best way to achieve competency, to ‘truly know it’, is by actually learning to converse in the language, in addition to regularly practicing. I speak in my native tongue well enough that natives of my ethnicity have asked the part of the country I was born in. The fluency is something I learned growing up; learning from my parents, practicing with my family. Not from a written test from some class. Speaking forces you to retain the vocabulary and grammar and focus on pronunciation. Just as importantly, when interpreting that new language, you are applying all those rules on the fly. Can’t get anymore ‘hands on that that’.
With programming, you are developing a skill which requires you to adhere to rules and think in a way that might be different than anything else you’ve done before. The best way to become fluent is the same as ‘speaking’ the programming language you’re learning: repetitive, hands on practice.
Clicking a ‘hint’ button and filling in the blanks of code snippets in your browser can be useful in getting started, nothing more. Take the time to create and practice in a way that challenges you, and I promise your journey to learning and improving as a developer will change for the better. Good luck!