Coding without Google
Back in 2016, an intriguing article appeared on Reddit: “Do Experienced Programmers Use Google Frequently?”.
The author discussed if expert programmers use google more often than novice coders. He mentioned that using google is a good thing. It helps to find the best solutions, validate ideas, speed the development. Google nowadays seems to be a crucial part of any developer toolbox. That reminded me of old times.
An old computer
I got my first computer when I was around 14 years old (in the year 2000). The specs were pretty decent at that time. If I remember correctly, it was something like Celeron 500mhz, maybe 256mb ram, 20gb HDD, Riva tnt2 Vanta. What’s more important, there was no network connection! Some of my friends got their 56k modems, but it was not that common. Also, it was relatively expensive to surf the net at that time… not to mention the “excellent” download speed! :) (Please appreciate your hardware in 2021 :))
After playing a few games, I started reading some programming books and experimented with the C++ language. Instead of solving campaigns, killing monsters, and finding resources, I wanted to create those virtual worlds… especially the graphics.
However, without an internet connection, I couldn’t just google for tutorials or solutions. Was it that horrible?
How did I survive those days then!? It wasn’t that bad, to be honest.
The first compiler that I used was Borland C++ with a nice Windows IDE.
I bought C++ in 24h by Jessie Liberty, and I got immediately drawn into all of the programming ideas I could find there. I read the book and tried to recreate examples, modify them, experiment with my ideas. Chapter 19 Was about the list data structure. I remember being so proud of myself when I understand the principles behind it!
I could just focus on that book and learning.
Then I started doing graphics. In the first place, there was
<conio.h> with an amazing color mode for console apps! After that I’ve discovered
<graphics.h> header from the library called BGI - Borland Graphics Interface.
Now I could really play with individual pixels and using more than 16 colors! I learned what the update loop pattern is and why it’s such a powerful technique. Before that, my spaceship on the screen would freeze if there was a missile animation in the process.
I could just focus on the library.
My workflow updated after a year or two. I went to an internet cafe from time to time, and we also had a connection at school. Eventually, I got a modem for my home PC! I won’t lie that I didn’t spend a lot of time being not productive. Just browsing the net. But still, it was a limited experience when we compare it to our current state. And the cost for an hour of browsing was still high, so I had to limit it (time, not GB downloaded!). There was no Facebook, Twitter, or other social media. I often downloaded pages with tutorials so that I could read them offline later.
At some point, I stumbled across a great library called Allegro! This was another breakthrough in my development experience! I spent a lot of time coding in the library.
After getting a bit comfortable in the API, I started to realize my ideas - I had many of them at that time. Problems with a bazier path for camera movement? I simply sat down, tried to understand the problem, us a lot of paper, experiment… Finally, it was working. Continue until all ideas are in a decent state. You could recently see my updates to Matrix, the demo that was created in those semi offline times.
I could just focus on my ideas.
But some distractions started to appear.
After Allegro I learned OpenGL 1.1/1.2 (via OpenGL SuperBible (1st edition). At that time, I had a more or less full internet connection. My workflow wasn’t radically changed. I could focus and just play with the code and graphics. Still, there were a lot of online incentives.
What was the main advantage of being partially offline? I could focus better on my tasks.
How would it look like today?
I hope you don’t do it, but sometimes I sit in front of my computer with some great ideas to implement. Then, instead of doing it, I browse the net, I check statuses. Fortunately, I try to block it more often and start the task I planned (the job can still be online).
But let’s not be so pessimistic! With the internet, I get access to a huge amount of good content. A tutorial needed for some strange technology? Just type it in the address window. A solution to a programming problem? Go to StackOverflow. Need some programming/software news: go to Reddit.
Depending on the technology you use, you might need more net resources or less. For example, I don’t imagine going to some offline MSDN documentation (I remember installing that back then in the early versions of VS!). Now I simply type “msdn:… ” and visit an online site.
(I believe you can get an offline version of cppreference or even Wikipedia if you really want to :)).
With tons of good stuff out there, it’s worth being a bit resistant to all the distractions. I wonder if I had learned the same things if I would have had today’s net connection.
Was I slower in those offline (or semi offline) days? IDEs weren’t that advanced, so when I wanted to invoke a function, I probably needed to look it up in its header file. I could find it quickly in a pdf/chm with help for the IDE/Library. So it was not that slow…
I believe that the offline experience that I had in the past was a good thing. I could focus better on the ideas and on the code. Now, with so many distractions, you need to be more resistant and self-disciplined.
Lessons: Maybe it’s good from time to time to disconnect and be offline? Could we just code and be quicker in the flow?
See the other books that got me into programming: 7 books that taught me how to code - C++ Stories
Back to you:
- Do you cut off connection when you want to work?
- How do you fight online distractions?