I'm going to be going to the middle of nowhere for a couple of weeks, and there's going to be no internet there.
I design with Figma and I code in React Native/ReactJS. How can I build something or learn a skill with no internet to make sure I'm productive over this time?
If none of that applies, and you still want to learn something to do with tech? Well, you know this won't be an ideal situation to engage directly with a system. How about zooming out a bit? Read some books. Some of Stallman's essays. Clifford Stoll. Or anything else more recent that you think is big-picture significant to your field. Your situation will be ideal for contemplation, which will in the long-term make you a better contributor to whatever projects you take on.
The only time I would be very annoyed by such responses is if that's all the responses I got. Some of both is reasonable: perhaps I did pose an XY problem.
Internet is the same. You ask and someone made the effort to voice their opinion on something and you have to put the effort into figuring out if they would fit your situation. If not, continue on.
Nope, you just sound like an asshole.
I also think that answers like this are one of many. Let people put in their 2 cents. I think it's great to have a variety of answers that approach the question differently.
And here, “do something else” seems a popular answer too. Perhaps it’s how we approach problem solving in general.
https://en.wikipedia.org/wiki/XY_problem
The person asking the question is asking how to do something, instead of explaining what the problem is.
Without an explanation of what the problem actually is, you have to guess.
Solving XY problems without getting at the root issue can create endless amounts of needless effort for many people, which is why discussion and communication are so important.
If that advice falls on deaf ears, and you really do want to write code on your time off, then here are some suggestions. I was about to say 'welcome to how we used to code'... but there are differences, both positive and negative.
* Tools like `git` are invaluable to the extent they let you manage source code control offline. Use them if you don't already.
* Settle on your dependencies and frameworks while you have network access. Download all the source you can for future reading.
* Focus on algorithmic work.... places where it's more about thinking through the code you're writing rather than interfacing with something else. (Hard these days.)
* Buy and bring some books. There are still good programming books that can be useful. You won't be totally at the cutting edge with these, but you probably don't need to be either.
More to the point though, op says “productive” and there’s more ways to be productive than doing grunt work. Bring books about things you want to learn or improve in your life, not necessarily code. See for example any of the books published by Stripe Press (https://press.stripe.com).
- The replacement for Figma is straightforward - pen and paper. Make sure you take some.
- devdocs.io for offline docs or if what you're using isn't in there, a lot of packages offer a PDF of their docs.
- I keep a pyproject file that has basically any mainstream package I am likely to want at any point while writing Python, then when I leave for a trip I make sure everything is installed locally. Docker can also be helpful for this.
- Sometimes I write tests when I have internet then when I'm offline I just spend the time making the tests go green.
- Other times I will forget about writing new code and learn something new by working through the PDF of a book. Most technical books set up the dev environment in the first few pages, do that when you have internet then you're good to go.
Other people have raised good points about getting away from your computer. I don't want to preach but I do like a 'holiday' day where I do some light coding in the morning then spend the afternoon doing something else entirely.
Me: "Awesome! I'll get my laptop so I can work on some personal projects without distraction."
The only part of the puzzle I cannot solve is the Figma issue, which is an online tool. If your designs are already done, you can generate PDFs or PSDs to take with you.
For documentation, if you're anything like me, I refer to it constantly, there are tools that you can use to clone entire readthedocs areas, along with many others documentation projects. Simply keep them local.
You can create a local clone of an entire npmregistry, there are tools to do this for build systems.
Alternatively, pick up a tutorial style programming book that is outside of your regular knowledge area, download whatever tools you need, and work your way through the book.
You know your workflow better than anyone else, so try working your workflow without internet for a day and see where it falls short. Again, you can work around most of the problems, except for those "I need a back-end server to work" tools, e.g. Figma.
A locally run docker of penpot would probably work as an alternative, but I suspect it's too late for op to get it setup and learn it in time.
If you just want to be productive, you could also bring a lot of books or downloaded tutorials on a drive.
Btw, make sure your drive is encrypted and you think of a way to backup your data so you don’t lose the offline progress.
I would recommend using ollama (or install llamacpp if you're on Windows) to bring along a modestly capable LLM you can run locally such a CodeLlama or Minstrel. They won't be as capable as ChatGPT, but a lot of knowledge gets compressed into these relatively small models.
Then see what problems arises next and solve that as best you can.
And so on.
Which means it will probably be a bit frustrating, involve a lot of small failures, and maybe even large failures.
But you will learn if you like to code without the internet and will try it again with better preparation or just liked the idea of being a person who codes without the internet but are not (which is ok).
Some people like to camp and some don’t.
Good luck.