One of the most effective ways to get good at something is to do it every day. Years ago, I used to work selling health insurance as part of a college internship. At the time, I had no money and had to take the job. Otherwise, I would fail that particular semester (I later left college before finishing. . .go figure).
Insurance is complicated. Health insurance is doubly so and I had no previous knowledge of the industry. We were giving 3 weeks initial training then told we would have to sell their products. It was a call center so every day I tried to sell health insurance. At first, 3 weeks of training served little use. After a month of talking about health insurance every day, I started to get better at selling. Insurance started to make more sense.
I did that job for 6 months and now 5 years later, I can still list off the differences between Irish health insurers and their products. Most friends I speak with say that they get into the swing of things for their jobs at the 6th-month mark.
I would never say I am an expert in the field of Irish Health Insurance but I do know my stuff. 6 months day in, day out are what made me know more about Irish health insurance than the average Irish punter.
Thankfully, I don’t work for the devil selling health insurance and I now work as a developer. A skill that I taught myself. I spend a lot of time on different Facebook groups aimed at people who are teaching themselves to code. One of the most common questions is getting through the overwhelming number of things that you have to learn.
In fact, here are few examples of that question worded differently:
I have one answer to these questions.
Practice programming every day.
Yes, it is that simple.
Practice programming every day.
Soon it just sticks and becomes second nature. You go through a type of physical metamorphosis.
Once Jeff Atwood wrote a blog post on getting better at blogging by just writing every day. Recently I came across a course on becoming a better copywriter called CopyHour.
This course makes you a better writer by forcing you to handwrite successful sales copy pages for 90 days straight.
I came across another course that makes you a better writer by creating a system for writing 1000 words a day called Write 1K.
Now how do we do it with coding?
Coding is a bit different than writing. We already know the rules of writing. We know the syntax of grammar, when to use different tenses and how to use adverbs. In fact, we know these rules so well that they are subconscious. Yet in the beginning, we don’t subconsciously know the grammar rules of code.
4 ways to Practice Code Every day:
I can think of 4 ways in which one can practice code depending on their level of experience with code.
Type Out Code From a Book
This is why people love Zed Shaw’s Learn Code the Hard Way series and it is the first book that cemented the Ruby language in my head. Actually TYPING out the code bit by bit works. Don’t copy and paste but actually, type. This helps you with the first hurdle that happens when learning programming and that is syntax errors.
I still use this approach today when I get a new programming book. I make sure that there are lots of code samples that I can run on my own machine.
Good coding books will generally have lots of coding examples. It does not necessarily have to be a book either. Sometimes, it can be an online tutorial or a video tutorial. As long as you are running and writing the code yourself.
Build Mini Projects
A few months ago, I came across a great book called Practicing Rails by Justin Weiss. It is a great book that introduces you to lots of different strategies with regards to learning Rails but the concepts are universal.
Justin, the author suggests the best way to learn a new concept in Rails is to build a mini app. The example he asks the reader to do are Enums in Rails. Build a mini Rails app and test out the Enums concept. This is a great way to give things a test run before trying to implement them in a production application.
Building mini projects is some of the most commonly trotted out advice to new programmers. It depends on what level the programmer is at. Building mini projects can be a great way to develop skills and get noticed.
No one has done this better than Jennifer DeWalt who built 180 projects in 180 days and landed a job straight away. Incredibly, she is now working on her own startup.
Recently, on Hacker News, I came across a comment that alluded to a study about kids who were learning pottery. It involved two classes of pottery students. The first class was told to build one large project at the end of the semester as that is how they will be graded. They were then taught concepts and techniques.
The second class was told to make something every day. By the end of the semester, the second class had higher grades.
Do Code Challenges
A lot of programmers bemoan the fact that the likes of Google et al. issue complex algorithm tests. Using code to solve puzzles has long been touted as a way to improving your ability to solve problems (which is what coding is about).
There are a large number of websites that test your ability to use code for problem-solving that you might not encounter every day. Sites such as Code Kata and Project Euler are set up to test how you would use code to solve various problems.
Get a coding job
This is the same way I learned so much about health insurance. When your job is to solve problems using code, you have no choice but to get better at it. Getting a coding job is the hard part and you will not get there unless you have done some combination of the other 3 suggestions. You also have to learn to be productive, build a portfolio and make sure you take all the right steps necessary to get that job.
I have a free career path template that you get when you sign up to my email list so make sure to check that out. It may be exactly what you are looking if you are trying to get that first coding job. I am not an amazing programmer (yet) but I learned just enough to get my first development job.