The path to ruin ?
The proof had taken the better part of an hour and had left the majority of the bleary-eyed students in the lecture hall bemused. Sure enough, as a mechanical engineer, you do need to know your maths, but was all that really necessary? To make matters worse, the professor had committed one of the cardinal sins in Engineering teaching; he’d failed to provide an example of a practical application in industry. When queried about it, his answer was somewhat surprising:
“If civilisation as we know it collapsed tomorrow and all evidence of technological development was wiped out, it would be up to you, future engineers, to rebuild it. And you can’t do that unless you know your Taylor Series”
It’s been more than a decade since that Monday morning but what transpired has stuck with me.
Fast forward to today, technological advancement has eliminated the need to retain any knowledge; why bother remembering anything when I can google it on the fly? While the internet has done a great deal to democratise knowledge and the acquisition thereof, I also believe it can lead to a slippery slope, especially when it comes to gaining new skills. It’s been just over 4 months since I started my Open Source Computer Science degree but only recently have I come to realise that Stack Overflow (SO), while an exceptional tool, can be hindrance rather that help when it comes to learning.
Make no mistake, I have used and will be using SO for as long as I’m learning something new, which as I’m told, is very often. What I find is that, every time I go back to look at code I wrote for an assignment, if I used SO to fill that bit in, I have almost no idea how I got the resulting implementation. And in my experience this can only mean one thing: I have no idea what I was doing. It makes me wonder: as a noob, what am I learning?
A while ago, I attended a 3-week, intensive software engineering course offered by Jacob Sorber, a professor of Computer Science at Clemson University in the USA, who also has a self-titled YouTube channel in which he covers a range of topics. In addition to being an inspiring educator, he has been coding almost for as long as I’ve been alive, and I would definitely recommend that you check out his channel if you respect yourself as a programmer. While way out of my depth in that course, I came away with an invaluable lesson: when sitting down to code there is only a couple of tools available to you; your brain and your study material or project outline. Just pretend you have no internet connection (therefore no SO). Does that sound familiar? Only if you were in that very lecture hall on that same Monday morning, and as serendipity had it I was.
Of course, should you find yourself at your wits’ end, by all means fire up SO and have at it. The difference is that by the time you’ve wracked your brain over the problem, you probably have some idea of what needs to be done. Now, depending on what language you’re using, you will be relying on documentation to varying degrees, but the principle is still the same: if using a low-level language like C, check out the man pages. On the other hand, if you’re doing high-level programming, have a look at the documentation before turning to SO. As a last piece of advice, do not hesitate to crack open a book or two (e-book is essentially the same).
That is all for my first post on this platform. I cannot stress enough that this is only my opinion and especially given how little experience I have in the filed, I am open to any critique and other approaches to up-skilling in programming.
Stay tuned for more.