How do people really learn how to code? Here’s part of my answer – the fragmented path to becoming comfortable with basic HTML/CSS/JS, Python, and Linux servers, and, gradually, Laravel (PHP).



  • Took part of JavaScript (JS) course on Codecademy. (From badge history I know I did over 100 exercises, but I don’t recall using JS much after.)


  • Took part of Python course on Codecademy. Fragmented progress over period Feb-Aug.
  • Went through half of Learn Python the Hard Way.


  • Mar: Wrote some Python web scrape scripts with BeautifulSoup4. They took me a few days. I think running these scripts was my first real encounter with the command line.
  • Mar-Apr: Worked on SEO design and content for some sites. The only coding I did was very very basic HTML.
  • Apr-June:
    • Took HTML/CSS/JS course on Codecademy.
    • Taught HTML/CSS/JS at schools with BSD Code and Design Academy.
    • Set up Piwik (application) on a DigitalOcean server (Ubuntu distribution). Fought with Cyberduck.
  • July:
    • Developed ( on an Amazon Web Services EC2 Ubuntu server). Had LOTS of problems with the Ubuntu server.
    • Played around with Flask with Treehouse tutorials.
  • (July-Aug: Did UX/UI work with Axure, InVision and Sketch for web apps. Not exactly coding, but it’s kinda related.)
  • Sept: Took part of PHP, SQL courses at Treehouse. Had only very basic knowledge of both: basic functions, properties, methods and classes for PHP (in addition to previous knowledge of loops etc), basic idea of how SQL works.
  • Nov: Learned to manipulate and visualise data in R with ggvis and dplyr at
  • Dec: Started building with PHP and Bootstrap. Tried to port it to Laravel but found it very difficult. It was easier following the Laracasts tutorials.


  • Feb:
    • Worked on hellomotions for one weekend.
    • Went to a Machine Learning workshop by Cambridge Coding Academy sponsored by JPMorgan. Had a taste of how to use pandas, sk-learn, and numpy. Fell in love with ipython notebook (Jupyter).  Went on to use these and matplotlib in subsequent Statistics work instead of Stata.
  • Mar:
    • is up! Got the basic search function down, but am having serious issues with making it work with multiple comma-separated search terms. Also having problems setting up a local version of the site, which I should’ve done a long time ago but gave up on.
    • Exploring FreeCodeCamp (it’s excellent) and
  • Apr:
    • Went to JPMorgan’s Spring Into Technology program at JPMorgan’s Glasgow Technology Centre. Shadowed front-end developer and learned about agile development, big data and cybersecurity.
      • Secured Technology Analyst Internship (Summer 2017 at London office).
  • May: Worked on uDacity’s Artificial Intelligence course (half)
  • Jun:
    • Did four courses from uDacity’s Data Analyst Nanodegree.
  • Aug:
    • Investigated Tensorflow and implementing optimisation algorithms in Python as part of an informal collaboration with TechStars London startup Mindi.
    • Did exercises from Cracking the Coding Interview.
    • Started blogging regularly (at least once a week) about learning data analysis and machine learning.
  • Sept:
    • Worked on uDacity’s Machine Learning Engineer Nanodegree (nearly finished!).
    • Learned basic Haskell.
    • Learned SQL.
  • Oct:
    • Finished Udacity’s Machine Learning Engineer Nanodegree (worked on Machine Learning in Trading for my final project).
    • Started Udacity’s Self-Driving Car Engineer Nanodegree on a scholarship from NVIDIA. I found the first project more difficult than expected.
  • Nov:
    • Starting preparing for internship interviews more seriously with InterviewCake (finished all 44 problems in early December). Learned how to use various data structures and algorithms through that.
  • Dec:
    • Spent more time trying to understand neural networks through blogging and working on self-driving car projects after neglecting deep learning in favour of cramming probability for interviews. 😛 Used Keras for the first time.
    • Started looking into C++. Watched Derek Banas’s video on C++ and intend to watch more of his tutorials.
    • Started writing series on Python features.


  • January – February
    • Completed Deep Learning projects (image classification and behavioural cloning using Keras)
    • Completed Computer Vision projects (detecting vehicles and lane lines from videos using OpenCV)
    • Started learning C++ using Udacity’s course C++ for Programmers and SoloLearn’s C++ tutorials (only went through the first three).
    • Made an effort to code every day, Monday – Saturday.
  • March
    • Programmed Kalman Filters in C++ as part of Udacity’s Self-Driving Car Engineer Nanodegree.
    • Built numerical Economics models in Python.
    • Started building software to plot Economics graphs in Python.
  • April – May
    • Took part in Google Code Jam, Codeforces, Topcoder and CodeChef to improve my skills.
    • Programmed various controllers in C++.
  • June
    • Completed John Purcell’s C++ Beginners Course on Udemy (to get a more thorough understanding of C++).
    • Started John Purcell’s Advanced C++ course on Udemy.
    • Started reading ‘Thinking in C++’ by Bruce Eckel.
  • July
    • Started interning as a Quantitative Researcher at Jump Trading, where I’ve been programming in Python, R and C++.