1. 33
  1.  

  2. 11

    Do it, live the life.

    wget \
      --recursive \
      --no-clobber \
      --page-requisites \
      --html-extension \
      --convert-links \
      --no-parent \
      --domains awesome-website.org \
      http://awesome-website.org/awesome_docs/
    
    1. 2

      Or use DevDocs offline mode.

    2. 9

      Zeal is a useful offline doc browser with many datasets available. It’s a bit clunky but the docs are invaluable.

      1. 2

        I’d like to recommend zeal too. Not only is it very fast, it’s also open source and it can eat apparently popular Dash docsets.

        1. 2

          DevDocs is a good web-based solution for those who don’t want to download a program.

        2. 7

          There’s a wonderful nook near me with no wifi that I go to quite often. It’s very freeing and I think I do some of my best work when subsequently disconnected.

          Unfortunately, it seems like most development workflows eventually need to download something or another. I often run into these hard stops and have to run back to wifi to move forward.

          1. 2

            I sometimes go to coffee shops that don’t have WiFi, partly for this reason. My compromise is that I can pair with my phone for Internet in a pinch. However, I have a very limited data plan (1GB) so I have a strong incentive to do so only if I really need to. I find that this system works out pretty nicely.

          2. 9

            Additional side effect: since you can’t google how to do something, you can’t get the stock answer “use this library” (nor could you download it). You have to write it yourself. Probably a good thing if it’s a simple task, but can find yourself digging a pretty deep hole. Ideally this would be researched ahead of time, but we only sometimes know what to ask before beginning.

            1. 3

              It’s also a great way to write a LOT of un-idiomatic code.

            2. 5

              My home internet is very unreliable, so I have been coding like this for a while. The first thing I do when developing in a language or framework is download their docs to use offline.

              1. 4

                Ditching Internet access is one of my biggest productivity boosts. Just like @flyingfisch, I look for offline docs as soon as possible.

                Further to that, I even force myself to use the offline docs regardless. It helps keep me focussed.

                1. 4

                  In addition to focus, I find myself understanding and enjoying an environment better once I figure out how the official docs work (assuming they are any good, of course, and ideally have some kind of usable navigation/indexing system, both of which are unfortunately not always the case). My initial impetus is to always just Google for my problem, which often works okay and is the easiest way to start, but tends to promote surface-level understanding (StackOverflow answer snippets, etc.), as well as presenting wildly variable quality of information. If “forced” to get into the official docs by working offline a bit, I often find myself enjoying it. It’s sort of the difference between googling every time you want to figure out how a Unix tool works, vs. understanding how to use manpages— both understanding on a technical level how to use them, and conceptually getting used to how they organize and present information.

                2. 4

                  “one of the first things I would do before starting [Python development] again would be to try mirroring the documentation.”

                  In a pinch, you can run pydoc -p 8080 to get a nice, browsable interface to the docstrings of every module in your environment.

                  1. 3

                    On macs, Dash is an excellent offline documentation browser for what appears to be every available language. Has fast fulltext search, instant summon and dismiss, and a bunch of other useful features. Highly recommended.

                    1. 1

                      I think it also a want for instant gratification for solving errors instead of working them out.