As developer, How many times during a day you need to ask google for something related to your work? How to use a library? Is there a fix for an encountered problem?
Maybe the answer is at least once a day.
Currently and as developers, the internet saves us a lot of time. Whatever the problem you have, just search the right keywords in google and instantly and in many cases you have a result that matches your need.
For example, if we want to know how to read a file line by line and we do the following search:
The first result is a StackOverflow answer with a very good rating
The developer becomes an internet-dependent which is good because it helps to resolve quickly many problems and let the developers more productive. But as a developer can we still productive without the internet connection?
Let’s first discover how was it before the internet boom, where only a few development resources were referenced in the web?
20 years ago and as I remember when we had an issue to resolve, we try these ways:
- Searching the answer in books: Indeed at work or at home a developer has a library of books related to its development perimeter, and in case of a blocking issue we take a look at these books hoping we find a solution. However, we can’t find real problems in books and in many times we can’t find what we search.
- Asking colleagues: Another way was to rely on the experience of the colleagues, and we ask if someone has already seen a specific problem hoping to have a solution.
- Go inside the code: Sometimes when a library is used and a problem occurs, the efficient way was to debug the library to understand how to resolve the issue. I remember when we used a Corba bus in the past and few resources existed we needed to debug the external library to understand what happens.
- Contact the support: Sometimes when we encountered an advanced issue and where we do not have the source code we contact the solution provider hoping to have a solution. For example, I remember an advanced DCOM issue where we contacted Microsoft, it takes us 3 weeks to resolve the issue because we had to reach the right person which is not an easy task.
Fortunately, the web becomes a gold mine for the developers and just with a few clicks, the solution comes to us. But what are the disadvantages of being internet dependent:
- Aquire the Copy/Paste bad habit: In general when a developer finds a solution from the web he copy/paste it into its code and if it works he continues to do other staff. He does not try to understand exactly the motivations behind the solution provided.
- Lazy developer: The developer becomes lazy and sometimes he does not even search for the solution, but directly ask a question for a basic need and want the others to search for him. Indeed many times we can be surprised by the basic StackOverflow questions and where a very simple search gives us a good match for what he needs.
- Minimises the communication between the developers.
Back to the original question and let’s focus on C++, could you find quickly an efficient solution to these basic needs without having access to the internet:
- Find if an std::string starts with another string.
- Find if an std::string ends with another string.
- Calculate the factorial of a number.
- Check if a number is prime or not.
You can try yourself to resolve these questions, and maybe you can be surprised by the fact that you are an internet dependent. And without the web and even for basic needs it’s not an easy task to resolve them. It’s not an issue if we are more and more dependent on the web but we must be aware of the drawbacks of this attitude. Maybe before searching directly on the web, we can try just for a few minutes to resolve it to understand exactly the problem. it helps us to do a more relevant search with the good keywords and if we found a solution understand well its motivations.