How did people program working solutions before instant online answers and is it even possible to hole up in a completely distraction free, out of the way locale for that next great side project?
I'm jealous of the idea of the novelist holing up in a spartan cabin with just an idea and a typewriter. Maybe a dictionary, maybe some prepared research notes; but completely cut off and only running off meager brought materials.
So how would a programmer prepare enough to code up their idea without internet access? What documentation, books, or materials would one bring? Are these materials general, like journal articles about algorithms and CS? Or very specific to the OS, framework, standard library, etc? Are there first principles at each abstraction layer from bare metal, OS, user space, and application level that allows cobbling software solutions without external resources?
Now, are you expected? By who? This is your own project. Just do whatever works for you.
Then they sat in front of a computer and they wrote the program from the simplest subroutine up the tree and at some point totally trashed everything realizing they didn't fully understand the problem because architecting a program is difficult until you actually implement it. So back to the paper they did the exact same design algorithm using the new experience they had from actually trying to implement whatever they were doing but this time with the added experience of knowing more about the problem they were trying to solve. Then when the chance came to implement their program on a likely shared computer with limited time, they wrote this program the exact same way from the bottom up testing all the way until it was finished. Everytime I've asked a question on stackoverflow/exchange I realized half way through preparing and formatting my question that my program is too complicated, I should break up the logic and then I don't need to ask a question. I swear this is why they make posting there so tedious where you need carefully format and search for existing questions before posting a new one because odds are, you'll figure out what you trying to ask before even asking it.
https://meta.stackexchange.com/questions/221397/is-there-a-w...
You might not need to do everything in the fastest or most scalable way. Like how a writer in a cabin will produce something that later needs editing and typesetting for mass distribution. So, like, if you forgot how to use an SQL database or didn’t bring Postgres, just serialize a big hash table and do your queries in your programming language.
So you can build the program out of parts that you might need to replace once you’re back online.
You can also do a lot of work with a specification language like TLA+ where you don’t need to actually implement every algorithm. If you need a hash function you can just postulate a function from your domain type to the naturals.
* Download Wikipedia data dump.
* Download documentation for the technologies you will be using.
* Make sure you have power.
* Take backups regularly.
* If you get stuck, think and solve the problem. Consider it as an opportunity to employ your brain in a way you (probably) have not done before.
If it's just for personal use, and/or you don't care about people using it, go for it. But if you care about adoption/traction, I would suggest surrounding yourself with people that may use your software, and constantly solicit their candid feedback (e.g. show them the software, but not tell them it's yours, etc...). Building software should be a collaborative process between you and your customer.
Slowly
https://lobste.rs/s/o1xjaq/john_carmack_on_openbsd_c_machine