At the end of each month of 2015 I’ve decided to write a summary post about the programming I’ve been doing; the things I’ve built, the books I’ve read, the stuff I am learning. This is the beginning of that series. It mainly serves as a diary of sorts for myself, but others have said that they would find my progress updates of interest.
January was sponsored by Python. What started as a want to learn the basic syntax so I could understand what my friends were working on, ended up being a full time interest in the language. I’ve read several python books which I’ll list below; covering topics like the basic use of the language, test driven development and frameworks like Django and Flask. I’m halfway through the Python Koans and even submitted and had merged a pull request for the project.
I built my first Python project, “Guestbook“, an homage to the 1990s “Web 1.0”. Initially it was built using CGI (Common Gateway Interface) which is the first web technology that allowed programmers to initialise scripts in web pages. I wrote a bit about it here.
The web host I was using didn’t like CGI scripts on its platform, so I rebuilt Guestbook entirely using the Django framework. Then, because “why not”, I then built it again using the Flask framework. I think I prefer Django because it’s a slightly easier setup, but I love Flask for it’s easy URL routing. I may continue to build things in one framework and then convert it to another, just to learn and further ascertain which framework is “better”.
I started to explore testing in Python, reading about Test Driven Development (TDD). Basic testing is easy enough for me to understand, but it seems to be a large hill to climb. I could only find one book on Python testing and it was very much about TDD whereas I’d like to just learn about tests with no mantra on how to do things (at this stage). If anyone knows any good books/resources on testing in Python that cover unit tests, acceptance tests and a couple of different testing frameworks, please let me know!
I recently started the MITX: 6.00.1x Introduction to Computer Science and Programming Using Python course on EDX. I’ve only completed the first week so far (100%!) but I’m looking forward to learning a little more about Python and it’s real world applications. Something I am struggling with at the moment is understanding how Python (and programming languages in general) is used in the real world, not just to build my whimsical websites.
Books I Read
A Byte of Python
Test-Driven Web Development with Python
Flask Web Development: Developing Web Applications with Python
Dive Into python 3 (70% of it)
Things I Built
Guestbook – CGI Version
Guestbook – Django Version
Guestbook – Flask Version (Needs work)
The plans for February are largely similar to that of January’s. Keep learning, keep building. The list of books to read grows all the time, I hope to read “The Pragmatic Programmer” and “The Practice of Programming” this month. Both are language agnostic and a lot about the theory of programming rather than teaching you how to build specifics.
I’m not sure how much I want to learn new things. I have a list including “Learn Awk” and “Learn Application Security” which appear to be fun but I don’t want to overload myself too much with new knowledge before I let the knowledge already gained settle. However, I will continue on with the MITx course.
I will try and build at least a couple of small things. The smaller the better because I want to try building from a TDD perspective and if I attempt to build something too large I will get lost in a tangle of messy unit tests with spotty coverage.
See you next month!