Today, I I started the data visualization beginner project on newcoder.io. I completed the setup necessary for the tutorials by getting pip (python install python) and getting started with python virtual environments courtesy of virtualenv. I really like being able to have an isolated development space where I can install packages without worrying about potential conflicts.
In terms of the tutorial, I finished coding up the parse section which means that from a CSV file, I can obtain a JSON-like object which is more amenable to manipulation within python. My plan is to complete each of the five tutorials before making my own projects based on what I’ve learned.
C/C++ and Haskell
With regards to my learning explorations in C, I am exploring an implementation of a linked list using pointers. With C++, I am progressing steadily through Programming principles and practice using C++ by Bjarne Stroustrup. I enjoy the fact that it reflects on the role that technology in society. One of the questions posed was ‘How many human activities can you think of which don’t involve a computational device either directly or indirectly?’. After pondering for a while, I was astounded by how embedded (haha) computers were in daily life. Sure, there are those without access to any devices but where access is available, even simple things like going for a walk involve trainers which were designed/manufactured in part using computers!
With Haskell, my main learning resource is Haskell: The craft of functional programming which I’m using to build a foundation before working through CS194: Introduction to Haskell according to the extremely learning path suggested here.
I am frankly irritated by the current state of my knowledge and by my lack of action. However, my philosophy has been affected by:
- Completing my first read through of Mastery by Robert Greene today
- Enlightenment from John Sommez’s Quantity Versus Quality Is An Illusion
- The myth of the genius programmer Google I/O talk by Brian Fitzpatrick and Ben Collins-Sussman
- Listening to Ep. 17 Getting Involved of the CodeNewbie podcast featuring Scott Hanselman
Whilst I am still reflecting on the wisdom of these treasures, I have decided to be realistic in the portrayal of this adventure. There is no point in waiting for substantial learning progress or for the grand post idea. Like developing software, learning is an actively iterative process. There are ups and there are downs, all of which are instrumental. Instead of focusing on the final product or destination, I will tinker, make and break. Perfection is impossible so I’ll just keep doing because excellence is achievable 😀