Reflection On Learning To Code

Alfred Lua
6 min readMar 14, 2015

Last November, I wrote about how I would focus on 3 priorities in my life after watching Joel Gascoigne and Leo Widrich’s Startuplifeshow video, “What are the 3 things you focus on in life?”. After some consideration, I decided that the 3 things would be:

  1. Coding
  2. Triathlon
  3. School

As I did not want to repeat the mistake of not being consistent with my effort, I also decided that I would review my progress 3 months later.

Out of the 3 priorities, I feel the most inclined to share more about the first on the list — coding. This is because, I have been having a knee injury since then and was mainly trying to recover from it, instead of doing triathlon training. Also, I feel there aren’t many interesting things to share about my school work.

So, in this long overdue post, I would like to share my reflections on focusing on learning to code over the last few months.

Learning To Code

Here’s a little background to share: I’ve been trying to learn to code for almost 2 years now. However, as I’ve not been consistent with my effort to learn and practice, I never went beyond the basics of programming. Also, I was hopping from learning HTML and CSS to Python to Ruby and back Python.

After I wrote my blog post on focusing on 3 priorities, I came across One Month Rails through an unexpected series of events. This online course, taught by Mattan Griffel, promises to teach me sufficient Ruby on Rails knowledge to create a simple web application within a month. Following my commitment to prioritise learning to code, I decided to take the dive and paid for the course.

Diligently, I tried to go through the videos from the course and practise daily. To ensure that I would be consistent with my effort, I decided to record my daily learning log on a Google sheet:

I also set up an IFTTT recipe to send me an email daily to remind me to log my progress. It also served as a reminder if I had not learnt or practised coding that day. It was effective as I have a habit to check my inbox at least once a day.

I also have another IFTTT recipe that allows me to log my progress to the Google sheet through an email. This helped to reduce the friction of logging my progress as I didn’t have to open another tab and go to the Google sheet before I could log my progress.

The log was really useful in getting me to practise regularly and getting me back on track whenever I slack off. When I did not code for the day, I would record “None” for that day and it did not feel good. Whenever I record “None” for a few days continuously, I would force myself to find some time to code the following day.

Progress So Far

I’m glad to share that I have gained sufficient knowledge to make simple web applications and websites with Ruby on Rails and deploy them onto Heroku. Here are some web applications and websites I’ve created in the last few months:

University of Warwick Triathlon and Road Cycling Website (live — it has a gallery page where I can upload photos and it also pulls Instagram photos with #warwicktriandcycling.)

Simple Blog (Not live — it was a practice to refresh my knowledge of Ruby on Rails.)

Be Nice Subscription Landing Page (Live — it is a simple landing page I created yesterday in 2 hours for my latest side project, Be Nice, a weekly newsletter on customer service and support. It is linked to Mailchimp.)

I’m really happy with my progress and my effort for the last few months and would love to learn more about Ruby on Rails. However, I am lowering the intensity of learning as I’ve shifted my focus to other areas — mainly writing and my side project, Be Nice.

What I’ve learnt

I’m glad that what I’ve learnt went beyond the knowledge to make web applications and websites with Ruby on Rails. Here’s a list of other things I’ve learnt while learning to code:

  • I learnt that if I want to pick up a new skill or improve a skill, it is about having the commitment and putting in the hours to learn and practise. There’s rarely any shortcuts.
  • I learnt that I learn faster when I’m working on a project I’m passionate about. As I was really keen to build a website for my triathlon club, I picked up Ruby on Rails much faster than when I tried to learn Python by doing tutorials. It also helped that I was focusing on a few priorities.
  • I learnt how to search for answers myself. It would be great to have someone to help me whenever I’m stuck, but I might not be able to get help all the time. Thanks to Google and the nice people who made countless resources and guides online, finding a possible resolution to a problem has become much easier.
  • I learnt that I might not always find the best solution immediately, but I can implement whatever works for now and iterate when I find a better solution or gain more knowledge on the topic. For example, for this reports page, instead of using a script to pull the images and information from the reports, I used HTML and CSS. Instead of using a script to apply a shade over images from the reports, I used Photoshop to do it manually.
  • Last but not least, I learnt that I’m interested in creating things, especially aesthetically pleasing things, and I like to use images in my designs as I find that images bring more life to the designs.

To be honest, before I typed this blog post, I had been wondering if my attempt to learn to code was fruitful because I’m not very good at coding yet; I have to refer to my notes or search online every now and then when I’m coding. However, after reflecting properly and typing out this blog post, I feel that I’ve benefited from this experience way more than I expected and I’m really happy that I took the time to invest in myself ☺

If you enjoyed this article, it would be awesome if you could recommend or share it ☺Thanks!

(This is my 4th blog post of my 30in30 challenge — 30 blog posts in 30 days. Through this challenge, I hope to feel comfortable and more confident with writing and become better at writing.

This post would be reposted on my personal blog, www.AlfredLua.com.)

--

--