I spent a bit of time in first year (learning about and) programming an Arduino – a pathfinding autonomous driving robot, as well a temperature sensor, using the change in resistance of a thermal conductor to calculate precise temperatures. Both of these projects lead me to learn a bit about C++ as previous to this, my only experience with programming languages had been with web development using PHP, JavaScript, HTML, and CSS as well as taking first programming module at uni using python. This has lead to trying to understand and design efficient ways of programming certain tasks; which is a fundamental programming concept of importance when a task needs to happen many multiples of times, and one that I wanted to get better at.
I took an initial look at code challenge websites, thinking that that I could get my head around algorithms without needing to understand what was happening – in essence, I (futilely) thought that I could code them without needing to understand how the algorithm worked, or what is going on. And so, I tried doing the easy questions on LeetCode / HackerRank / codechef and quickly realised that I didn’t actually know what I was trying to do; that I was stuck on things like multi layered loops – and my code was becoming spaghetti-fied and with multi-level if statements
In essence, I didn’t understand the underlying structure that the code of an algorithm represents; so enter MIT OCW: 6.006: Introduction to Algorithms (2011) and Gayle Laakmann McDowell’s Cracking the Coding Interview
Leave a Reply