February 2022

February 2022

Python Crash Course - A book by Eric Matthes

Is it the texture or the smell of paper? The rustling sound of turning pages or the weight of the book in one's hand? Is it the intimacy with which the author's descriptive words leave the pages? What exactly makes reading a good book a preferable experience to watching a video on the same thing? (Okay, I get that we're different, but the movie will always pale in comparison to the book!)

A friend lent me this particular book which has 2 parts: Part 1 is python basics and Part 2 is projects. I decided to read through the basics just to cement everything I had already learnt with Mosh in January and I'm glad I did. The author's description of the book, "A hands-on, project-based introduction to programming" is nothing short of accurate. The basic concepts became clearer and the numerous coding exercises made the syntax sink in.

(# For records' sake, I started the book on the 18th of Feb and finished part 1 on the 27th. Part 2 is harder to quantify since I skipped some parts but by 13th of March I was kind of done with that as well.)

Part 2 is the heart of this book. The 3 projects are:

  1. Alien Invasion - A classic 2D Space-Invaders type of game implemented using a package called Pygame. I had a lot of fun making this game and was able to get to around 60% completion before my old computer running on Windows 7 (yeah I know; don't give me that look) disappointed me with a segmentation fault. I shelved it but will definitely be back to finish it when I install Linux. You can find the repo here: https://github.com/ChadGichuki/Practise-Alien-Invasion-Game

  2. Data Visualization - For some reason, unbeknownst to me, I skipped this project and haven't got around to doing it yet. I'll probably circle back as I work my way to the Front-End of web development.

  3. Web Applications - My favourite project yet! I got to appreciate what makes django such a popular framework. Setting up the project, creating apps, the django admin site, migrating models, the django shell, user authentication etc. It's no wonder that their catch-line is 'The web framework for perfectionists with deadlines'. Coding through this project allowed me to understand the relationship between defining a model, writing a view function and mapping a URL while writing templates meant that I got to interact with HTML and bootstrap. Of the 4 CRUD (Create, Read, Update and Delete) operations, this web app, which is basically an online journal, lets a user do the first 3. Among other things, the final step of deploying to heroku meant learning to use git for version control.

Speaking of git, would I be guilty of over-ambition if I invited you, dear reader, to collaborate with me on this web application project on GitHub? If only just to help me become familiar with branches and all that, I'd be elated to see your pull request here: https://github.com/ChadGichuki/LearningLog