What is this blog about and who is it for?
This blog is primarily….for me. But I am happy to share it with you too.
In September 2017, I signed up to Zed Shaw’s Learn Code: Live course to progress my programming skill set.
This blog is a learning aid for me. It is to review progress, remind myself how far I have come when I get stuck and demotivated, and also a valuable mechanism for problem solving, as writing the problem down often helps focus the mind on a solution. (This is a valuable learning from Zed).
So what have a learned so far? #
Well, quite a lot really. Too much to labour in this post, but by way of a summary, the following has taken place over the last 8 months:
- Started and been working through Learn Python The Hard Way (LPTHW) exercises and videos
- Learned about basics of Python 3.6 and differences with Python 2.7
- Learned about data structures, code formatting, control flow, reading and writing files, object-orientated programming, inheritance and composition, unit testing and debugging.
In addition to LPTHW, I have also:
- Started working through Learn More Python The Hard Way (LMPTHW) - one of the reasons for this blog!
- Working through Learn SQL The Hard Hard Way (LSQLTHW) in parallel - as its useful in my day job
- Learned about Unix, Git, Bash, tmux, virtual environments and Vim - leading to the removal of several IDE’s from my work-horse laptop, and a simplified, Terminal-based setup for coursework.
A note on copyright infringement #
All Zed’s books and videos are copyright protected. As I respect that, I will not be including his code in this blog. However, I will include my own examples of concepts being learned to support my learning process.
With regards to the name of this blog and the use of ‘THW’ pattern, Zed is cool with it.
Finally, a brief summary of my coding experience… #
I’ve dabbled over the last few years with a number of languages, predominantly Ruby, C# and JavaScript. In each case I reached the point of understanding syntax and being able to produce small, purpose-driven scripts.
Most of my learning was from online courses or books that I have purchased. I attended a code camp to become ‘Microsoft C# Programmer’ certified. I didn’t obtain certification partly due to the poor presentation of the course material, but mostly because I wasn’t suitably knowledgable.
Prior to Zed’s course, I was looking for a quick fix. I wanted to learn Ruby as it was fairly easy to read (in comparison to declaring types everywhere in C#), it seemed to be a root in BDD with RSpec and Cucumber, and after reading ‘Why’s Poignant Guide’ - I liked the sub-culture around it.
But without understanding the basic principles of coding, the flexibility of Ruby was actually a hinderance. It was possible to make many more mistakes as a beginner, than with a heavily typed and compiled language.
So I moved on to C#, partly as I was trying to write some test automation scripts for a client’s framework and partly because I was fascinated with Visual Studio as a one-stop-shop. I was using the ReSharper extension which swiftly fixed my errors and pretty much wrote a lot of the code for me. Again, this was really a hinderance, as I was not learning ‘why’ to do something, just ‘how’
So here I am, learning code the hard way! And to clarify, ‘the hard way’ means learning why to do something, the history that has resulted in why to do something, memorising syntax and patterns, trial and error, repetition, hacking away until concepts make sense, watching a pro at work, and best of all, sharing it all with a great little community of fellow students.