March – In Summary

I’m a month and a half into my three month internship now, where I’m learning a lot of varied stuff each day. I’ve been lucky enough to work on some important features for the application my team are working on, which I’ve done primarily with HTML, CSS, Python and JavaScript.

I’ve become much more confident with git, where I can rebase my code almost without a hitch. I had been told to fear rebasing due to the risk of using it, but now it’s not a scary thing at all.

I’m also slowly improving my JavaScript and jQuery abilities. I really like JavaScript as a language and am interested in the many frameworks that are out there.

I’m better at writing simple tests in both Python and JavaScript. I’m still writing them after the fact though and hope to practice Test Driven Development more.

By the end of April I’d like to have made a start on a fully accessible lightbox. Some exist but are either outdated, don’t have good documentation or don’t have an accompanying tutorial. Hopefully I can fulfil all three of those needs for myself and pass the code and knowledge on to others.

January – In Summary

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

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)

February Plans

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!