Recently I was reading The Art of Doing Science and Engineering by Richard W. Hamming, and he made the case that software engineering fundamentals go beyond data structures and algorithms.
Clear thinking is the true fundamental of programming.
This makes sense, if you think about it. The whole point of a fundamental truth or skill is that it is the basic building block of the discipline built on top of it. While data structures and algorithms are foundational to everything we do in software today, can't you imagine a scenario in some very distant future where we use different data structures? A future where today's algorithms are barely even mentioned in the textbooks? (Do we still use textbooks in this distant future?)
And how do we evolve into a future where we use completely different data structures and algorithms, if not by leveraging clear thinking and good problem solving skills to not only come up with solutions to tomorrow's problems, but also solve yesterday's problems more efficiently.
This really stuck with me, because I'd always believed that DS&A are what's foundational to all software, to all job interviews, to all programming books. Perhaps that's mostly true today, but a good software developer still has to go beyond that. After all, what's the point in memorizing the Depth First Search if you don't understand when to apply it? As you can see, even today, what's actually required is clarity of thought.
So keep this in mind the next time you sit down to read through that giant green Cracking the Coding Interview book (do we all have one of these at home?). And check out Richard Hamming's The Art of Doing Science and Engineering!
Until next time.
Top comments (0)