I’ve been programming for quite a long time, but always in an ad-hoc, pick-it-up-as-I-go fashion to fix a specific problem I was having. That generally meant procedural programming, and relying on copy-pasting examples to use anything like objects. But in the past week or so I really focused on upping my game. I’ll be using objects a lot more from now on – I can’t believe it took me this long to get into it!
I can really recommend MIT’s 6.0001 Introduction to Computer Science and Programming in Python if you want to learn this stuff yourself.
PowerPoint Translation Utility
Using my new object-oriented superpowers, I put together a quick and dirty command line utility to translate PowerPoint files from one language to another. Very useful for dealing with Chinese PowerPoints sent by my colleagues! Not perfect yet, but translated about 80% of an example PPT.
NumPy and Pandas
A couple of Python libraries for scientific computing and dealing with matrices and tables of data. I’ve been trying to muck about with TensorFlow recently, but not getting far. Understanding these more fundamental mathematical libraries helps a lot.
Jupyter Notebooks and ipython
IPython is a nice way of testing out Python programming and libraries. Lots of autocomplete and help functionality, and runs in my terminal. Jupyter is the web-based successor, but means a bit more overhead and faff to set up. Now I need to see how to get ipython working with Python 3
I built a flower classifier using TensorFlow. Well, when I say “built”, more “followed instructions”. I’m planning on digging much deeper in TensorFlow in the coming weeks.
NAND2Tetris is a course that teaches you to build a modern computer from first principles, starting at the most basic logic gates. It’s a lot to take in – Boolean algebra, assembly code, multiple levels of abstraction, &c &c. I’m taking a break from it for a little bit to focus on higher level stuff (some of which I described above), but relish the chance to get back to this course.