Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

If your connection to the world was out for 2-3 hours a day, could you still code? How much do you rely on the Internet, particularly for reference materials?

More to the point, could you lessen your dependence on the Internet if you needed to?

Experiences where you need Net access (e.g., for a repository or for deployment) are relevant, of course, but How could you be productive without access (temporarily).

share|improve this question
Is your Internet connection spotty, because you're on a boat? :) – Cyclops Aug 29 '11 at 21:21
@Cyclops yes, the case was similar to that. – Yar Aug 31 '11 at 22:11
@Anna Lear, pls feel free to change the question however you see fit to get it to be reopened. I think it's a valid concern/question. – Yar Aug 31 '11 at 22:12

closed as not constructive by Mark Trapp Aug 29 '11 at 22:00

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

12 Answers

up vote 16 down vote accepted

I developed for many years from South Africa where Internet connectivity was spotty at best, sometimes down for days at a time, and access to cloud services was awfully slow.

We had to just adjust our development practices to deal with it. It's still possible to be quite productive.

  • Keep a local source repository and development server rather than hosting them in the cloud.
  • Install help files locally instead of accessing them online.
  • Buy old-fashioned programming books.
  • In an emergency, you can get online through a mobile phone's 3G/GPRS connection.

There are plenty of benefits of programming while disconnected:

  • No IM's, e-mails or Youtube videos to constantly distract you while in the zone.
  • Not always being able to copy and paste answers from the Internet forces you to memorize syntax and figure out problems, which can lead to a better understanding.
  • It also forces you to write decent unit tests and mocks because you can't always rely on external services being available.
share|improve this answer
Great answer. Not sure why it would force you to write decent unit tests, though... – Yar Dec 18 '10 at 22:50
2  
What I meant to say is that it forces you to write more testable code, so that you can test without being dependent on external API's always being available. – realworldcoder Dec 18 '10 at 23:23
+1 that answer was so good that it almost made me wish my internet connection was down.....ALMOST – user29981 Aug 29 '11 at 23:47

I did spend about 15 years programming without a fixed internet connection, of those some 5-6 years at a professional level.

So how did we do it back then? Well first of all, most development tools came with built in language, library or API references. For example Borland and Microsoft shipped IDE's with help files covering most of what was needed for development.

But when Java shipped in 1995, you usually downloaded everything including the Java DOC HTML files. Nowadays I usually settle with a bookmark to the latest online JDK (Which strange enough is AD-free).

But except for documentation, depending on what kind of application you are developing, various integration scenarios may make it hard to develop outside your usual working environment.

But there is always stuff that has to be done that does not require a working setup. You can write unit tests, document code, do some refactoring or other maintenence tasks.

This summer I was telecommuting and had to setup a working environment to do software development for an IPTV service without relying on a fixed high speed internet connection. I did have mobile internet but it was not able to carry IPTV streams so I had to use tcpreplay and VLC to get a working test environment up and running.

share|improve this answer
Eclipse automatically binds java classes to the online javadoc. Very Nice, when the net worksbut not in this situation – user1249 Dec 19 '10 at 18:25

I can certainly code without the Internet, but I am much more productive with it. I work in several languages and it's simply not a good use of my brain space to memorize all the minor details of all of them. I'd rather spend 3 seconds on a Google search to find what I need.

share|improve this answer

This was a huge issue for me at one point in my life. I found myself living with my parents in a then-rural part of Illinois. The phone lines were too old to support more than 24k dial-up; we had some pretty iffy satellite internet. I'm a professional web developer.

For a year, I would do my coding, and test on a LAMP stack on my laptop, then either stare at the never-ending upload, or drive across state lines to a cafe with good wifi. In a way, I think I was more efficient than I am now, because I had to plan more.

share|improve this answer
Yeah, especially with any scripting language, being forced to only deploy when it's DONE really helps. The temptation to deploy-test-fix is huge. – Yar Dec 20 '10 at 2:03
1  
@Yar For me, the temptation isn't so much to deploy-test-fix, but to deploy each little piece after it's up to snuff, which results in the client seeing "something new" several more times than necessary (instead of one big change). This means several times as much time gets sunk into talking over the new stuff with the client, which usually ends up being unpaid time. – HedgeMage Dec 20 '10 at 4:01

There are lot of us that started programming before Internet. I even bet that there still are people around that, back in the days, did have spotty or no computer access at all. I remember I used to code in my notebook, paper notebook and a pencil (it was assembler, for the record). And believe me, it was not a bit less fun than it is today.

share|improve this answer
Totally +1 as I had the same experience. I had to convert the assembly mnemonics to their hexa codes, computing the relative jumps, then type these codes on an hexa keyboard (no save option, or on an audio tape). Fun for the masochists... :-P – PhiLho Dec 20 '10 at 15:20

For the repository: use a DVCS like git or mercurial; problem solved, commit how much you like, push when you have access.

For the code manuals and APIs: get Mendeley, download your manuals in PDF (or use something like Teleport pro and pack the files in a zip), update them regularly and keep them in sync; problem solved.

share|improve this answer

I have that issue frequently. I use an Ethernet radio for my connection. It works well as long as nothing is blocking it, but we do have quite a bit of construction going on around us. Cranes, building painters, birds .. lots of things disrupt it.

For the most part, all of the documentation that I need can be accessed locally. I also keep my copies of the SO database dumps up to date as they release them, which help if you don't mind doing some queries.

For the most part, if I hit something where I really need help, I can just do something else for a few hours while waiting for my connection to come back. Usually, that's only when I can't figure something out, and I need to see working code in order to be able to do so.

I did have a week long outage a couple of months ago, which made me re-think my idea that it was kind of silly to buy reference books since much of what is inside of them can be found on-line :)

I'm sure I could become even less dependent on the internet, however minor outages don't disrupt me very much.

share|improve this answer
Thanks Tim, I've thought about becoming more dependent on reference books, at least in PDF form... this also happened because Rails went from 2 to 3 and now I can't find help on Rails 2 stuff as easily with Google. – Yar Dec 18 '10 at 21:07

If I find myself without an Internet Connection, I spend more time in a planning stage for my code. Make some diagrams for the more difficult things I know I will have to complete in the future. Write up lots of pseudo-code. You don't need an API for pseudo-code =).

I might also clean it up some and try to back over things I might not have implemented the way I wanted to.

share|improve this answer
love the point about pseudo-code. Being forced to do that might be helpful (and crippling), in a way. – Yar Dec 20 '10 at 2:04
Thanks, its funny how we sometimes just don't do such a simple thing. It goes along way! But I supposed diving right in and coding is just more fun! =) – Bryan Harrington Dec 20 '10 at 21:18

I work with very limited internet whenever we go visit her folks. As I don't speak the language of most of the discussion I bring my laptop along and I really miss having the internet always available. These days I generally use Google in preference to the built-in documentation--I find the right answer faster that way, especially dealing with the more oddball things where the compiler documentation will get stuck focusing on the details rather than the bigger picture.

share|improve this answer

I just wrote a blog post about that:

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...

http://effectivesoftwaredesign.com/2011/08/29/programming-without-an-internet-connection/

share|improve this answer

Yeah, download your documentation. If doing web development, install more RAM and VMs.

share|improve this answer
Download your documentation... what would that mean for your development, in particular? – Yar Dec 18 '10 at 21:09

I used to have a huge binder of documentation, and code snippets I thought were useful. I dropped that noise when my 2-hour daily limit on dial-up internet usage went away. I refer to web-based documentation solely.

Sure, I could program without easily accessible references, but I would be much slower at it.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.