One of my favourite shows is the Office (US). Last week, Holly and I watched the episode where Dwight executed a “fire drill” and Stanley had a heart attack. Scared by his inability to help, Michael hired a first aid instructor to give a presentation. The first aid instructor began her presentation by asking if anyone knew the first aid “ABCs” (Airway, Breathing, Circulation). Indignant, Michael replied that he couldn’t remember the first aid ABCs because the ABCs of sales are “Always Be Closing”. You’ll want to see what happens next:
The concept of “ABCs” got me thinking: what are the ABCs of programming? What immediately came to mind, and what I believe to be true is Always Be Coding. Daily practice has been one of the biggest drivers of my continuing progress. The process of thinking through challenges and developing the code that solves them takes all of the syntax I learned when I just started and pushes it to the front of my brain, making it more easily accessible in the future, which frees up brain power to actually solve the challenge.
One of the biggest problems that I had when starting out was finding places to practice. To save you the trouble, here are some of the best resources that I’ve found:
Codecademy – This one is a cheating a little bit, since it’s more of a learn-to-code resource. However, I found the structure of most of the lessons (and especially jQuery – I don’t think I’m able to forget
$(document).ready) to be very practice friendly. After you’re finished the lessons, you’ll want to find another resource.
Practice Python – Before I started learning Ruby, I was learning Python. Both languages are really great, with many similarities that make them fairly easy to transition between. Practice Python has 24 beginners programming exercises for Python programmers with solutions to all but the last. It doesn’t look like this site is being updated any more, but the exercises are still fun practice.
CodeWars – CodeWars is the ultimate practice site, with hundreds of challenges for all different skill levels that are doable in many different programming languages. They range from giving you practice in programming fundamentals to mind-bending challenges. I don’t use CodeWars as much as I could because I found some of the descriptions to the challenges to be hard to understand.
Code Abbey – My personal favourite. They currently have 211 challenges of varying difficulty, all of which are well explained. You can solve them in any order and in a variety of programming languages. After they are solved, you can view what others did, which is a really great learning resource!
Reddit’s Daily Programmer Subreddit – These challenges are constantly being updated, doable in any language, and you will likely receive feedback from other redditors after posting your solution. However, I found that even the “Easy” challenges were very difficult when I was a beginner.
Whatever method or resource you use, it is important to practice regularly. And once you start practicing, I’m sure that you will see improvement in no time!
Have another practice resouce that I haven’t listed? Let me know via Twitter!