Quick update on learning:
Python Programming MOOC 2023 | Advanced Course
I‘m smoothly progressing through the Python MOOC. The first couple of chapters covered concepts of Object Oriented Programming, which I had been looking forward to tackling. Some of the material – such as the basic ideas behind OOP and the creation of “blueprints“ – I vaguely remembered from my high-school days. But there were other concepts such as setters and getter, class methods, and the syntax that were entirely new to me. Getters and setters, for example, still seem a bit murky and I’m unsure how to use them properly, so that would require more practice.
These chapters also covered more “conceptual“ material. Separation of concerns, passing values between classes and approaching the build of bigger applications are all concepts that would be useful no matter the programming language I go forward with.
Other topics and exercises that have been covered so far were list comprehensions, recursions, functions as arguments (including lambda functions), and now I’m wrapping my head around generators. To be fair, I went through the exercises pretty quickly and was writing solutions analogous to the theoretical examples, which makes me a bit worried that I haven’t actually internalised the ideas well as all these concepts are new to me.
Some – like the list comprehensions – require me to build up muscle memory of how to apply them. There were cases when I would write a standard for-loop with an if-statement and when it works, I would convert it into a list comprehension. Others – like recursions – really tie my brain into a know when I try to apply them. What I understood from Reddit posts and from speaking with developer friends is that recursions always requite longer time to sink in, which is comforting. So when I have the chance I am going through examples on YouTube trying to build up a template in my brain on how to use these. One thing I should do is to try and find more exercises that need a recursive solution and try to figure those out by myself.
GitHub
Eventually, I should learn about version control… Better late than never, so I opened my GitHub profile that has been gathering dust for years and threw some spaghetti code into it. So far, all I have in my profile are demo repositories and things I try to make/delete only to get used to the steps.
A couple of days ago I made an incredibly rudimentary version of the Mad Libs game inspired by one of Ned Batchelder’s Kindling Projects, which I end up publishing on my GitHub profile. It still needs a lot of work (massive understatement) to get the project working right and to add enough satisfying bells and whistles, but even this beginner version taught me about Python’s sys module and the isspace() built-in function, so I count it as a small win.
“How I learned to program” by Dan Luu
Another thing I thoroughly enjoyed was this long-read article by Dan Luu about his career path. Despite the minimalist website, Dan has a good flow and is full of useful resources. Plus, I just find it comforting to read about someone else’s non-linear experience into an industry.
(The wall of text on his blog really trigger my design sensibilities, so I whipped up a quick text styling with the browser inspector that made it much easier to read:
body{ font-size: 1.3em; line-height: 1.4 em }
main { width: 40%; margin: 0 auto }
The least, those kind of “minimalist” websites might be a good push for me to revise basic CSS.)