I’ve been thinking about what I want to do after I graduate from college (not an uncommon thought). I don’t know if I want to pursue my Masters, develop mobile software, work in high performance computing, or find a niche in something else. All of these fields are super interesting, but not one is fascinating . So, what is it that keeps me coming back to my text editor? It’s discovering the tricks…
A piece of software is kind of like a magic trick – the cool thing that happens is extremely visible, but how it’s done is hidden. Using Google maps to plan a car route is straight up magic, but looking at the web page’s source code reveals none of the implementation details ( Dijkstra’s Algorithm). Similarly, opening up Word.exe in Notepad tells you nothing about how Microsoft implemented the undo/redo functionality ( stacks). Tricks like these are what I live to discover.
I haven’t comprehensively categorized the types of algorithmic tricks that exist, but I do have a few personal favorites.
What I love about CS is figuring out how something is done, regardless of whether I created the solution myself or I read about it on someone’s blog. The joy is tied to discovery and nothing else. It’s about finding something, anything that’s novel and unknown in the source code.
P.S. I apologize to my thousands of readers for not posting write-ups to Project Euler problems. I’ve solved a few of them this week, but decided they wouldn’t make terribly interesting write-ups. I’ll quit making blogging promises from now on…