HACKER Q&A
📣 sysadm1n

Can you program without an Internet connection?


I ran a little experiment the other day to see how I would get on coding without an Internet connection. I was doing a bit of web development, mostly frontend stuff, and was proud of how many obscure HTML elements I was using like
and etc. Then the urge to open a browser came within 10 minutes of coding. I wanted to code a hamburger menu, but didn't want to reinvent the wheel. Specifically I wanted the hamburger menu to work with CSS only so was looking for a snippet of code that done that, but had no Internet.

I was genuinely asking myself: 'Am I even a competent developer if I have to use the Internet every five minutes to code?'

How do you cope with this feeling, of tapping into the Internet hive mind to code properly?


  👤 Jtsummers Accepted Answer ✓
Yes, I can. The limiting factor for me is when I hit a library I'm less familiar with, then I go to its documentation which may or may not be installed with it. I've found over the past decade that StackOverflow and similar Q&A sites offer very little to me unless I'm brand new to a language or environment. I suspect this is largely because I learned to program in the 90s by reading manuals instead of paying attention to classes, then going home and trying out what I learned. I still practice that, I mean I decided to learn Smalltalk properly so I read the Bluebook over a week last month. Of course, I also tend to have books available and have good recall for which book and which section has information I want. When I was programming C# a lot (now almost a decade ago), I had a couple heavy reference books, and when I hit a snag they were my first stop. I'd read the relevant section or chapter, probably one or two more, and get back to it. And when I had downtime, I'd just pick them up and read random sections.

👤 JPLeRouzic
Internet resources are here, we use them.

When it did not existed, we used simpler technologies: A good book was enough to code a 1970/1980' microprocessor, or in C language (for example thanks to "The C language" of Ritchie and Kernighan).

Even 20 years ago, it was possible to code with a small desktop documentation on Internet standards. HTML4 [0] (~2000) was something simple to code, and as you know coding a TCP socket is something really trivial.

[0] https://www.w3.org/TR/html401/


👤 binwiederhier
I've used this exact use case (can you do X without internet) as an example to explain why I like Go so much. I can write Go without internet no problem. I barely ever have to look up how things work and the libraries are simple enough to dove in myself if I don't understand something.

Developing Android, however, is entirely impossible without stack overflow, because the libraries and paradigms and hacks and workarounds make it impossible to produce something working.


👤 LarryMade2
Before the internet I had bought/borrowed many books and magazines as reference material. Most of the reference is the internet now - but I still have quite a few relevant books as well as electronic documents so it may be initially a struggle to get back to paper/PDF referencing I could get still get stuff done. Also my previous code is a good reference source.

For some trick I've never done before I'd either try to hack it out or adapt whatever to what skills and resources I have like don't use hamburger menus at all there's more than one way to do navigation. :-)


👤 throwaway787544
We used to have documentation and dev libraries installed on our machines. If you downloaded, compiled and installed a new library or tool, it came with documentation. We also had CDROMs and floppies full of the source code. And you could download whole archives of HOWTOs pretty quickly. Reference manuals and books were a thing too.

Nowadays if I'm going to be working from a train or plane, I download as much as I can ahead of time. But since modern libraries and apps don't come with docs, it's harder than it used to be.

Has anyone born after 1995 even written a man page before?


👤 MiddleEndian
When I took my long term "sabbatical", I got some of my best programming done in a park without any internet.

Occasionally I'd look stuff up on my phone, but since it's a Palm Phone with a 3.3" screen and not very much battery life, I didn't do it very frequently. Every so often I'd need to download libraries and whatnot, or I'd really get stuck on something, so I'd head home or to a coffee shop to continue.

But yes, I'd say more often than not, I had a great time programming without the internet, even though one of my targets was the web.


👤 h2odragon
You can, with a bit of effort, gather up a large offline documentation collection; and even if its not totally current it can save yer ass when you're without connectivity. Even if you have a solid connection there's latency advantages.

If you have a stack of library references next to you when you're programming, be the online, offline, or actual books, are you less of a programmer? Or are you leveraging information technology to best use by only mentally maintaining the index of where the thing you need to know is?


👤 skydhash
Used to do so because my only internet access was a cybercafé and when I have enough money to use a 3g modem. I used to have zeal installed, plenty of syntax references manual the occasional mirror of a site. I loved Android studio at that time because you could click on a symbol and got redirected to the definition, so you could learn how it works. I also used to collect open source codes that I review every so often to learn best practice and design patterns.

👤 todd8
I wrote my first program in 1967 or 1968, so yes I can program without the internet. Programming for a couple of decades before the internet existed got me into the habit of relying on manuals (like IBM 360 Principles of Operation [1]) and books (for example, Daniel McCracken‘s A Guide to Fortran IV Programming [2]). To this day I rely on books more than my colleagues.

Although I can program without the internet, I much prefer having the internet at hand—-programming with the internet is a much better experience. So, my large library isn’t really necessary for the task.

[1] https://books.google.com/books/about/IBM_System_360_Principl...

[2] https://www.librarything.com/work/247060


👤 codingdave
I feel this is less about a hive mind, and more about having access to reference materials. We all need to check documentation from time to time. Back in ye olden days, we had books on our desk for language references. I don't miss that, but neither am I going to feel like I am a weak programmer just because I need to look something up.

👤 jlgaddis
I almost want to ask if this is a real question.

Obviously, things have changed since then, but there was a time that not everyone had 24/7 always-on access to the Internet. Really, that's only a recent thing. How do you think programming took place -- across a generation or two -- before then?

In my case, it was 1999 before I was able to get an Internet connection that wasn't dial-up Internet -- but I lived in a small, rural town in the midwest, not in a major city. I was the first person in our area (perhaps a 30 mile radius) to have an "oh-my-$deity-this is-so-amazingly-fast" 768k/128k DSL line (besides the two guys who ran my ISP) as I knew them and they asked if I would, effectively, be a "beta tester" to make sure things were working as they 2were supposed to be before they started offering the service to customers.

So, yeah, before then it was possible to program without a Internet connection. That was the "default", normal situation, in fact. We had (dead-tree) books, for example, and could telephone other people, there was FIDOnet ("before Internet"), Usenet ("after Internet"), e-mail and mailing lists and, eventually, even the web (from 1991 on, of course). Plenty of programming happened without Internet access before then (in fact, all of it did, basically).

Of course, some programming is more complicated nowadays, when you need a library for every little thing you do, so I suppose programming without an Internet connection might not be possible if you need to download a library for for .. loops or something.

(By the way, when I was in high school, I'd write code on paper (whatever program I was working on at the time) while sitting in class. When I'd get home after school, then I could type it in on the computer.)

Of course, if you are one of those "programmers" who have to stop and Google something afte every five lines of code, well, it's probably not possible.


👤 davismwfl
I don't have any concern over having to use the internet to reference things or find samples that save time.

In the 90's I had a large book collection that I used for learning and for reference which served similar purposes. That plus the man pages and SDK docs you got with libraries was basically your goto. And even then, we still had programming forums (BBS) and usenet for finding help and samples.

Oh and if/when you did Microsoft programming keeping the MSDN docs on your machine was an option, which was like 4Gb if you installed it all.

FWIW: I do fairly often write code without internet but if I am using a library I am unfamiliar with or need to do something that is less common I'll save some docs or key web pages locally to help me.


👤 gotaquestion
> Am I even a competent developer if I have to use the Internet every five minutes to code?

It just means you are slowed down by the need to look things up. Do you consider speed part of competency?

The ability to look everything up on the internet didn't appear until the late 90's. I finished my BSEE + MS CompSci degrees before 1994, effectively without the modern internet. We had manpages. And enormous books. All that's really changed is most pop languages don't have manpages, but at least we aren't killing forests for the X specification printouts!


👤 Kon-Peki
It has been studied and found that your brain will remember where to externally find data when it knows that it can rely on that external source. You can program without an Internet connection, but you have to practice doing it so your brain can adjust (it will).

https://scholar.harvard.edu/files/dwegner/files/sparrow_et_a...


👤 hakkoru
Depends on what you mean by "without an Internet connection". If you mean that the machine that you use to develop isn't connected to the Internet, then totally. I've been doing that for the past 4 years. If you mean never touching the Internet while programming, even on a different machine, then I'd be a lot less effective. I could probably still do it, but I'd need searchable docs for everything.

👤 Stevvo
You got yourself in a mental trap from formed habit. You say you didn't want to "reinvent the wheel", but in reality you didn't want to do the work. You wanted to replace 10 minutes of thinking about the problem and writing the solution with 10 minutes of Googling for the solution and copy/paste.

Just stick with it. Before long your router will shit itself, be off all day and you don't even notice. Have essential documentation like MDN offline.


👤 gizmo686
I work on sensitive government materials. One of the rules is that development occurs on an airgapped system. If I want to check the internet, I need to leave the room and retrieve my phone from a lock box.

Occasionally I need to do that, but for the most part, we get by without. We also make a point of having an offline copy of all reference manuals and other documentation we might want.

We also have source code of all of our dependencies, which helps.


👤 rahimnathwani
If you don't want to change your workflow too much, you could:

1. Download documentation for offline use (https://devdocs.io/)

2. Create a local copy of SO posts (https://github.com/tools4j/stacked-off)


👤 pkrotich
I absolutely concur. I used to in the old days… when man pages was the search engine and perhaps a book on the desk. I also used to grep other source codes from favorites projects / developers.

👤 e-pelaza
Well yes, at least that's how we do it in my third world country. You get used to it easily, and there are no distraction when you work.

👤 livinglist
I don’t know about internet but I surely can’t code without autocomplete lol

👤 1egg0myegg0
Can it be done? Yes. Can I do it? No. Would I want to? Also no.

👤 cyanydeez
Quasar.dev is an offline app, so test, yess I can

👤 water8
I only use whiteboards for coding since that's how it's done in interviews /s