Ask HN: I won't have Internet access for months, How could I use my time?
Am a software developer located in Khartoum, Sudan. The country is going through a turmoil.
Long story short Internet access is becoming more and more unstable, probably will go completely out within the next week.
I want to know what can I do to utilize my free time to be a better developer, but almost every development environment/learning resources requires internet access.
- I have 1 YOE as an Android Developer
- I am self-taught
77 comments
[ 5.4 ms ] story [ 166 ms ] threadAlso, for variety, I may discipline my thought process further by learning mathematical proof techniques. The extra discipline will help me acquire knowledge of deeper subjects, with less effort.
https://meta.wikimedia.org/wiki/Data_dump_torrents#English_W...
You can also download Android documentation:
https://androidsdkoffline.blogspot.com/p/android-offline-doc...
You can KINDA download MDN (very YMMV and $$$):
https://developer.mozilla.org/en-US/plus/docs/features/offli...
Maybe install it into a separate browser profile & make a backup of it just in case
I always wanted devdocs to work (long train journeys especially would suddenly be more fun) but after this happened a couple of times and I couldn't figure it out or stop it I gave up.
That's a name I haven't heard in a long while: a blast from the past :).
Or you just download them zipped here:
https://kapeli.com/mdn_offline
In general, you can use a crawler and download (allmost) any website you like. Works better with static sites of course, but learning ressources usually are.
https://archive.org/details/stackexchange
The dump of Stack Overflow's Posts is about 20gb. The Android Enthusiasts Stack Exchange site is about 100mb.
Reader: https://www.kiwix.org/en/download/
Content: https://library.kiwix.org/?lang=eng
I used to spend several months with very little Internet access (every other week on my cell phone). I made a small server with Jellyfin, tons of podcasts with airsonic, several youtube channels, a big Kiwix library (Wikipedia and Wiktionary - several languages), an ebook library (I haven't found the right way to do it, Calibre-server is a little complicated). https://github.com/awesome-selfhosted/awesome-selfhosted
And also a dozen of physical books, typically in a language I'm learning.
SICP exercises, "learn to code" books are generally structured that way. 'How to build X' books are similar.
Not a suggestion necessarily, but 'Land of Lisp' is mostly taught through author-guided tutorials and how-tos for small projects. I imagine that format would be useful in a disconnected area.
The recursion HW was really fun so I took it upon my self to never look up the answer to the Extra exercise no matter how long it took me to solve it. The problem was to re-implement the recursive function of the last exercise using only lambda functions. I wrestled with it for hours, then gave up, then got back to it days later before I finally cracked it.
Later that day I googled the question to see better/ more elegant solutions and found out about this thing called Y combinator, I googled it to know more but everywhere I look I see this company called Ycombinator. Down the rabbit hole I went and 27 PG essays, 230 HN hrs and 2 years later, here am I
Good times :)
But before you go just download a couple of IDEs and all the documentation for them and the language you want to use and install all the libraries you might think of using. Then turn off the net and see how it goes.
Or just download Emacs and a bunch of elisp resources. The create some applications and tools in Emacs. It is pretty self contained.
We used to write huge applications without any network access of any kind.
https://calibre-ebook.com/
https://www.gutenberg.org/
Computing systems would be a good subject to study. I'd also recommend downloading Ubuntu to a self booting flash drive. Linux has a lot of useful developer tools for someone without internet.
https://beej.us/guide/
https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1...
Other comments have great pointers for downloading docs/books/resources offline. Also textbooks are underrated.
If you have the bandwidth I would get two IDEs, maybe Android Studio and Eclipse and give yourself some projects to do.
Also, if you have the time it's not a bad idea to familiarize yourself with blender.
This is still useful after the conflict is over, as rebuilding infrastructure can take decades, and the container could be beneficial if hosted e.g. by a school.
You could create a mesh network that links local organisations to the Petabox without being initially connected to "the" Internet.
In any case, I wish you personally well and peace to your country!
Other people right pointed out to download some e-books.
probably easier you find someone to sponsor you like internship and you move to some place that has better connectivity (maybe border town)
I don't think not having internet doesn’t suddenly make you 10x productive or 10x focused. You are the same person with and without internet. Just admit that upfront.
So, prep for it and try to replicate what your habits are with having internet.
You can download a few learning resources but please don't go overboard. Focus on one thing you want to finish completely. Don't go on a downloading spree.
Why not? Where is the harm?
It is better to have a book you don't need, than to not have books you discover you do need and memory is cheap.
I spend lots of time off grid and I surely did not touch every ebook I had in my collection, but it was still nice browsing through what I had and then choosing the one I wanted that moment.
This is really not true. Try it. It's not that hard, and will likely make you a better programmer.
The end goal is providing a programmatic solution to a problem. The issue is that coding and googling provides the experience of journey across a solution. Hence the zigzag. You try this, you fail, you google why you failed, you learn something new and you try again. This kind of efficient feedback loop helps you learn.
The problem is that without google you have to waste trying to find a solution. The impact is not immediate. There are no progressive bumps of learning. Moreover, without googling you end up doing very hacky programming. Because you only have access to what you know. You can't explore things readily because there is a friction.
For a mature programmer, you can make that suggestion, because they are confident about their knowledge and way around documentation. But for new learners I don't recommend this at all. I have tried this, and this creates a very fatiguing experience.
I feel like this helps you solve the problem, but doesn't actually help you learn. The time you're "wasting" trying to find a solution is time you're actually spending learning, not just learning how to code, but learning how to actually formulate a solution. Failure is also one of the biggest parts of learning. "Very hacky programming" is just a start, it's like a vomit draft of anything you're writing. Revisiting your code and figuring out what you can do better is how you end up with more eloquent code.
In my experience, no one really explores when googling for answers, they are just searching for an answer.
https://gpt4all.io/index.html
Depending on your current skill level perhaps the following would help.
I would recommend getting a book on each of your interest areas of the stack and work through them ~2 hours per day per book.
eg: a curriculum could be:
- A book on linux, android, or iOS operating systems. Learn about filesystems, reading binary files, and at least one binary file layout to get a sense of "it's all just data" (Hexdump or C)
- A book on networking (learn all the OSI layers, practice working with the various envelopes, see them in TCPdump / Wireshark or other sniffing tools
- A book on internet like technologies eg: https://hpbn.co/
- A book on Frontend development. perhaps React
- A book on Backend development. Perhaps something about making HTTP + RESTful + JSON apis (alternative GRPC development)
- A book on a datastore of choice, I recommend postgres and you can grab the manual and books from here: https://www.postgresql.org/docs/
just my 2c of how I'd spend ~1 month per book offline but still progressing.
The hardest part is going to be the discipline to actually work at it every day consistently and for more than like 15 mins :)
He was productive and smart enough to do it, and I think it's a great exercise for engineers to at least try a few times. Try to think about what you're going to write before you even open your editor. Try to break down the strategy into a recipe of things that can be done in about hundred lines each or so. Then sit down and type it out.
https://rutracker.org/forum/viewtopic.php?t=5705905
The first post includes an index that leads to a dozen more dumps, grouped by programming language and/or field. Look for links named "Скачать".
If you manage to see this comment before moderators remove it, good for you. If not, at least I tried — there's no contact info in your profile to contact you privately. (Sorry dang. I've been through similar shit and the last thing you care about in that situation are "intellectual property rights" of some Mr. Moneybags from the opposite side of the globe).
Good luck out there!
https://ts2.space/en/starlink-in-khartoum-khartoum/
This is a little server you run locally and point your package managers like Gradle, pip, npm, etc. at it and it will grab dependencies from their upstream and cache them locally to be available offline later. Once you get it setup go wild adding every dependency you can think of using so it preloads the cache with good stuff. Unfortunately offline caching for package managers is really hit or miss and rarely a priority to support, so expect some pain getting it all setup. Good luck.
Also if you haven't already consider installing and learning languages with a good standard library so you can install them once and do a lot of stuff. Python, go, and deno are really good options with capable standard libraries out of the box. Avoid nodejs or similar minimal/no standard library languages. Rust is surprisingly bad/hard to use offline in my experience too (cargo constantly wants to hit the internet and needs a lot of handholding to play nicely).
https://www.facebook.com/permalink.php?story_fbid=2110408722...