Lots of issues held me back for the longest time. Family, school, job, general malaise in the country. Around 2010, I began to get a little wiggle room but it wasn’t until around 2013 that I was able to dig into what I wanted to learn with a modicum of depth. It wasn’t until late 2015 when I finally left the toxic environment of the country of my birth that I was able to dive into these fields substantially.
I’d like to chart my development. So, I summarise my levelling up in different areas on this page.
As of April 2017
Python: Probably intermediate?
Flask + SQL: Basic? I can communicate data between front and back ends, made two web apps with it, one of which is not exactly trivial for beginners
Bootstrap: Can use it to make my apps look vaguely presentable, but not an advanced stylist
Responsive Design: Rudimentary, I let Bootstrap handle this
Started On But Had No Time For
Machine learning/Data science with Scikit-learn
Probability and Statistics
I describe my development in a bit more detail below.
C. 2013: Started with Code Academy, finished it but didn’t really feel like I learnt anything. I’m not sure the platform was much good back then. Started on Learn Python the Hard Way (LPTHW) because lots of people recommended it. First half of it was pretty good. Next half got more and more confusing. Gave up somewhere in the last third of it. Continued trying to use LPTHW and random sources here and there anyway.
Some time after, Lori and I started Monday Python Typing Circle (MPTC). The name was Jian’s idea. Such a genius. Managed to practise kind of regularly for a time as a result. It helped.
Early 2015: Still on Python, finished the basics, I think, but work and life kept getting in the way.
Late 2015: Left Singapore to study media art. The programme was seriously sub-par but it afforded me a lot more time to delve in Python. Started using PythonProgramming.net. Harrison’s videos were for Python 3 but I coded in Python 2.7 anyway. With the basics from Code Academy, LPTHW, and MPTC done, I found things easier but still frustrating. Nonetheless, I powered through. Stack Overflow became invaluable.
Early 2016: Finished the basics with PythonProgramming.net. Now I could dive into things like OpenCV and Kivy without feeling too intimidated. At this point, I discovered that a lot of documentation is plain bad. A lot of definitions refer to themselves, which does not help at all. I resolved never to tell anyone to RTFM. The manual doesn’t always help and might even waste too much of your time.
Now I have a rudimentary idea of OpenCV and Kivy. I managed to make a Flappy Bird game with some tutorial somewhere and push it to my phone. But it never ran on the phone. I also made a GPS reader but it didn’t run on my phone either. No idea why.
Mid 2016: Tried to start on machine learning/data science but found out that I can’t run TensorFlow on Windows, and it’s probably too slow on Oracle VM VirtualBox. So I went for Theano. It was too difficult. At this point I realised I needed to better understand array programming. I went back to PythonProgramming.net and while helpful, it doesn’t explain things fully. I found myself googling a lot. I also realised that I might need to learn some maths.
July 2016: I started a Coursera course on computational investing, partly to learn maths, partly to practise array programming, and partly to finally begin learning a little about finance.
August 2016: I can now code simple functions and maybe modules in Python. I can code tiny things in Kivy but I don’t know how to make them work on phones properly. I can now run some adb commands, which is incredibly convenient with a spotty phone. I am slowly coming to terms with data arrays.
I still cannot use Theano. I haven’t dug much into OpenCV. I still need to understand Python classes more fully.
2 April 2017: This post sums it up.
I just finished a Coursera course, Introduction to CSS3. Colleen van Lent is quite good. She’s really clear on things. I still need a lot of practice.
I am now going through Advanced Styling with Responsive Design.
Probability and Statistics
Early 2016: I started an Udacity course, Statistics 101 with Sebastian Thrun and Adam Sherwin, to familiarise myself with probabilistic and statistical thinking, and to understand machine learning and finance better.
I finished half of it but had to stop to focus on my media art programme for a while.
August 2016: I’d forgotten almost everything, although I retained a faded image of Bayes’ Theorem. I restarted the course and found things easier to understand, at least for now. I now know roughly how to use Bayes’ Theorem, and can do scatter plots, histograms, and bar charts. Next up, probability distributions.
August 2016: The Coursera course on computational investing has a couple of accompanying texts. One is “Active Portfolio Management: A Quantitative Approach for Providing Superior Returns and Controlling Risk” by Richard C. Grinold and Ronald N. Kahn. I read through chapter 1 and googled a bunch of terms such as active and residual returns, active and residual risk, and information ratio. Investopedia has been remarkably helpful, although I’ve had to cross-reference its definitions with other sources sometimes.
The language of Grinold and Kahn’s book can be ambiguous, and some concepts seem to be called slightly differently in the financial world. For instance, is risk the same as volatility? Nonetheless, I now understand some ideas better, such as CAPM and information ratio. I also have a better idea of what the mythical “alpha” really is.
I still don’t understand information coefficient, and what exactly alpha and beta are.
What the hell.