As a developer, how many times a day do you turn to Google for something related to your work? How do you use a library? Is there a fix for a problem you’ve encountered?
Maybe the answer is: at least once a day.
Nowadays, the internet saves developers a great deal of time. Whatever problem you encounter, you can search Google using the right keywords and, in many cases, instantly find a result that meets your needs.
For example, if we want to know how to read a file line by line, we might run the following search:

The first result is a highly rated Stack Overflow answer.

Developers have become dependent on the internet, which has clear benefits: it helps us solve many problems quickly and makes us more productive. But as developers, can we still be productive without an internet connection?
Let’s first look at how things worked before the internet boom, when only a limited number of development resources were available on the web.
Twenty years ago, as I remember it, when we had an issue to resolve, we tried approaches like these:
- Searching for the answer in books: at work or at home, developers kept libraries of books related to their field, and when we encountered a blocking issue, we would look through them in the hope of finding a solution. However, books cannot cover every real-world problem, and we often couldn’t find what we were looking for.
- Asking colleagues: another approach was to rely on our colleagues’ experience. We would ask whether someone had already encountered a specific problem and hope they had a solution.
- Diving into the code: sometimes, when a problem occurred while using a library, the most effective approach was to debug the library itself to understand how to resolve the issue. I remember using a CORBA bus when very few resources were available; we had to debug the external library to understand what was happening.
- Contacting support: sometimes we encountered a complex issue and, without access to the source code, contacted the solution provider in the hope of finding a solution. For example, I remember a complex DCOM issue for which we contacted Microsoft. It took us three weeks to resolve because we first had to reach the right person, which was not easy.
Fortunately, the web has become a gold mine for developers, and with just a few clicks, we can often find a solution. But what are the disadvantages of being internet-dependent?
- Developing a bad copy-and-paste habit: when developers find a solution on the web, they may simply copy and paste it into their code and, if it works, move on to something else. They may not try to fully understand the reasoning behind the proposed solution.
- Becoming a lazy developer: developers may become lazy and sometimes skip searching for a solution altogether, asking a basic question directly and expecting others to do the research for them. Indeed, it is surprising how many basic Stack Overflow questions could be answered with a very simple search.
- It can reduce communication between developers.
Back to the original question, and focusing on C++: could you quickly find an efficient solution to these basic tasks without internet access?
- Check whether an std::string starts with another string.
- Check whether an std::string ends with another string.
- Calculate the factorial of a number.
- Check whether a number is prime.
You can try to solve these problems yourself, and you may be surprised to discover how dependent you are on the internet: without the web, even basic tasks may not be so easy. Becoming increasingly dependent on the web is not necessarily a problem, but we should be aware of the drawbacks. Before searching the web, we could spend a few minutes trying to solve the problem ourselves so that we understand exactly what it involves. This helps us perform a more relevant search using the right keywords and, when we find a solution, fully understand the reasoning behind it.
