Back in my early days of my software development career, software often came with real paper manuals in book form. This was especially true for Microsoft software developers.
The book manuals for my primary software developer tool at the time, Microsoft Visual Basic, came in this giant boxed set, thicker than the width of two full phone books (do kids these days even know what a ‘phone book’ is?).
In these manuals were comprehensive and meticulously detailed documentation on the Visual Basic IDE tool/compiler as well as the Visual Basic programming language.
Back in those days in the mid 1990s, the internet was just starting to gain steam, but it was nowhere near as evolved as it is today. Just SEARCHING for things on the internet was a challenge. Google was still a few years away.
Early search engines like Yahoo actually curated and categorized websites on the internet by actual living, breathing human beings, if you can believe it.
Back then, when you needed to learn something about software development, you really needed to spend time and concentrated effort to learn it. I personally pored over the giant stack of paperback manuals on the Microsoft Visual Basic programming language and the set of developer tools one used to properly create software in Visual Basic.
As much as I support the recent phenomenon of quick start bootcamps and online academies like the Khan Academy to help promote more people to get into the field of software development, I caution anyone who get lured by these quick start options and conclude that once you complete them, it’s all you need to learn to be a professional software programmer.
And that’s probably a nice segue into my main thesis of this article …
As I mentioned previously, when I first got into software development, most everything you had to learn was squirreled away in giant software manuals and phonebook sized tutorials where you had to actually spend significant time and effort to understand.
Nowadays, the problem is TOO MUCH INFORMATION.
The best search engine on the planet, google (in my humble opinion), is FRIGHTENINGLY ACCURATE about giving you answers to questions.
Before I even finish typing in the question I need google to answer, it’s already figured out what I need!
These days, one of the most popular internet resources for software developers is Stackoverflow (http://www.stackoverflow.com).
It’s a question and answer type forum where you post questions and anyone registered with Stackoverflow, can post answers to your question.
The reason for its popularity is probably because of just how frighteningly accurate many of the answers are to questions.
There are a BOATLOAD of super smart people who actively take part in Stackoverflow and answer the trickiest and toughest questions that software developers throw to the site.
Stackoverflow contains a ranking system for everyone actively participating in asking questions or providing answers. Your ranking rises as you answer questions that get voted “up”. If the person you’re answering a question for, believes your particular answer is the one that solves their problem, they mark your answer as the one that gets the correct vote.
The more votes you get, the higher your rank.
Stackoverflow is so popular, that many senior developers actively monitor newly posted questions, in order to raise their rankings.
In fact, the highest ranking stackoverflow participants can benefit from their high rankings with plump job offers at the choicest companies.
With this kind of high participation and involvement in the Stackoverflow community, it’s no wonder many software developers use it as their number one go to resource, when they get stuck on a particular technical problem in their code.
Even when you’re just googling for an answer to a technical question and you’re not specifically searching on stackoverflow, you will often get redirected to someone who has already answered the question you googled for.
I’ve personally lost count of the number of times Stackoverflow has saved me from the agony of not being able to figure out how to get fix a bug in my code or the best approach to tackle a particular architecture in designing some software.
In fact, Stackoverflow is SO good, that I think it’s potentially creating a new undesired phenomenon called Stack Overflow Driven Development or SODD (ok, that’s just my acronym, but I’m hoping it will catch on).
Stackoverflow Driven Development is exactly like it sounds … it’s using Stackoverflow to find answers to your questions in lieu of doing any sort of extended research.
Stackoverflow can quickly tell HOW to solve a problem, but it’s doubtful it will show WHY the answer solves your problem.
I can’t stress how dangerous this kind of software development can be, relying on quick answers, without bothering to understand the underlying reasons WHY you can’t figure out a particular problem.
Software development is all about problem solving. It’s about getting to the root of the problem and figuring out a logical and efficient way of solving that problem.
But the only way to truly understand a problem and ensuring that you’ll be able to figure out the same kind of problem in the future, is by doing the proper research and taking the time to understand the underlying problem.
And this takes dedicated effort and time to learn the underlying concepts. If you’re running into problem with slow database queries, and you find yourself asking lots of the same kind of questions on stackoverflow to help you solve those slow database queries, it stands to reason it would behoove you to bone up a little on the whole subject of database optimizations.
I’ll be the first to admit I’m just as guilty as the next software developer, who uses Stackoverflow to find quick and easy answers. I mean, it’s what it’s there for, and largely the reason why it’s so popular and well used.
But in order to truly grow as a software developer, one needs to move beyond just asking questions on stackoverflow. The highest ranking Stackoverflow members are the ones who constantly are on the other side of the stackoverflow equation … being able to ANSWER the toughest and thorniest problems.
Remember only you can prevent being a SODD, ONLY YOU….