Programming Without an Internet Connection

Are you able to program without an internet connection?

In my case the answer is definitely “No.” In most of my programming tasks I need to get some help from the internet, generally in the form of documentation and examples. I’m currently programming in Java, and frequently using new libraries, frameworks and APIs. Even in the Java standard libraries there are so many classes that it is very hard to know how to use them correctly. This situation reminds me a quote:

“Knowledge is of two kinds. We know a subject ourselves, or we know where we can find information on it.” – Samuel Johnson

A few months ago I was working on a Web-based demo, which included the use of HTML, CSS and JavaScript. I’m not an expert on these technologies, but still I wanted to be sure I was implementing things correctly. So, for each problem I had, I asked myself: “Is it possible that none had this problem before?” Then I looked for solutions and with enough patience and a bit of luck I was always able to find an example similar enough to what I needed to do. I never came back of a search with empty hands.

When I program in Java I’m always concerned about not reinventing the wheel. If I need some specific function not yet provided by the classes I know, first of all I search if there is some well-known public library that can be useful. Then I download it and write some short program to test it. Sometimes I find several such libraries that appear to be potentially adequate for my needs. In this case I will spend enough time comparing them, and perhaps even testing all of them.

Therefore, the internet is much more than a source of information in the form of documentation and examples. It is the ultimate reusable code repository, from which millions of developers worldwide are frequently downloading the latest libraries. This level of global reuse certainly saves us a huge amount of development effort, making our work as programmers much more productive and even more pleasurable.

If possible, I would like to hear about your personal experience. Please leave a comment answering these questions:

  1. How frequently do you access the internet when you code?
  2. For what purposes do you access the internet when you code?
  3. Do you feel you are less productive when there is no internet connection?

Thanks!

About Hayim Makabee

Veteran software developer, currently working as a Research Engineer for Yahoo! Labs. Co-founder of the International Association of Software Architects in Israel.
This entry was posted in Efficacy, Software Reuse and tagged , . Bookmark the permalink.

5 Responses to Programming Without an Internet Connection

  1. Yes, Internet is a good source of a lot of articles and artifacts BUT it is NOT A Repository. The difference is that a Repository should be like a refereed publication in which all the items are reviewed and tested. Such items are more reliable for reuse without demanding a lot of testing and evaluation by the user.

    The items in the repository can be programs and other ARTIFACTS also….like Requirements Documents, Test Cases, Test Data, Design Documents, Test Reports etc. REUSE can be at various levels—NOT JUST CODE.

    Let’s create and manage such a repository and also reward (pay) the contributors, referees and editors.

    • makabee says:

      I agree that the internet is not a formal repository according to that definition. However, the well-known libraries and open-source projects are all reviewed and tested by a community of developers. Places like http://code.google.com/ have much more than source code: They may have documentation, examples, version history, known bugs and author contact information. This is probably better than what is found in many organizations. But I do like your idea of a real managed repository over the internet.

  2. Allon Guralnek says:

    I managed without internet at the workplace for 5.5 years during my service at the IDF. I can thank the MSDN of yore (circa 2005) that had excellent documentation on every single part of the .NET Framework with unwavering level of detail, and had comprehensive multipage articles and tutorials able to get you up to speed on practically any technology offered on that stack. Unfortunately, in recent times the .NET Framework has grown faster than the documentation was written, with dire consequences. You can find many skeletal areas in today’s MSDN, where some parts of the API are barely documents or explained. Also, examples have become quite a rarity.

    Now at my workplace I have constant and unfettered internet access, which enables a much more productive workflow in an increasingly fluid and expansive technological landscape. I will never agree to go back, but at least I know it can be done.

  3. of course i can,
    I can write code with bth my hand ties standing on one leg using VI only.
    what a stupid question.

    seriously though, the fact that i can doesn’t say that i want to.
    however there are some risks involved, a long time ago i wrote a couple of posts about this:

    http://imistaken.blogspot.com/2008/10/using-ready-made-solutions.html

    and

    http://imistaken.blogspot.com/2008/11/cpping-in-net.html

  4. sfridman says:

    At first I wanted to give my usual wiseass answer, something along below lines:
    – Internet has always obviously used heavily be developers, more than most professions, since it’s inception.
    – Internet (as a global communication network) precedes HTML based web
    – First IRC provided lots of Q&A, chat rooms on programming, and code snippets and tips
    – BB had huge amount of experts in text format (before WWW), and still is
    – Sites like CodeGuru, MSDN online and others were around for dozen+ years
    – Later google code and open source movement provided massive source codes
    – Nowadays sites like Github and stack overflow provide web based front end, with movements towards social and enterprise links for source codes, tips, and documentation

    Than I guessed, most readers of this article already know this (if they are not in their early twenties that is). So I did not reply.

    But today I did something (for a hobby) and within 1H had to use the internet for quite a few tasks I would struggle without (and yes dear MSDN friend – MSDN will not help, and I had 100 of CD’s at home, coming similarly from IDF intl. as you so appreciated it when I needed to).
    1) First I had to pull the longitude and altitude of a certain location – I used google maps
    2) I also needed to convert some degrees based given locations to decimal. Can be done with basic match of diving by 60, any calculator will do for lazier chaps, but being one of the laziest – a web site did it in a second (add 5 sec for google search)
    3) Getting some weather forecasts for the give location using “semi-private” ig HTTP -> XML API demanded internet again
    4) Lastly making my application work called for vendor source documentation downloaded, compiled and executed
    5) Post my modifications I consulted some web deployment procedure site
    6) Finally used the internet to post this…

    So all in all, very easy with internet. Not so much without. Sherlock had told this to Mr. Watson ages ago.

    Final words: Yes, today a “shallow” development approach (spend a lot of time looking for something similar to why you need, and spend fractions more to modify it to your needs, totaling in a very fast pace altogether) is prevalent and effective as nearly all problems has been solved. This is not to say that those with “deep” skills do not have advantage: they have another tool to use (and they should: SCP – search, cut and paste) like their peers, but also they have a repository of other methods (e.g. innovate with a new algorithm, prototype it, and if you are a good citizen – publish as open source for others to SCP you…).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s