Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education Programming Books

Ask Slashdot: Programming Education Resources For a Year Offline? 223

An anonymous reader writes "I will be traveling to a remote Himalayan village for year and won't have access to the internet. What offline resources would you all recommend to help me continue to develop my coding skills? I think this would be a good time to get better at fundamentals, since I won't be able to learn any new frameworks or APIs. What about other, non-programming skills to practice and learn? Any ideas?" What would you bring?
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Programming Education Resources For a Year Offline?

Comments Filter:
  • Obvious guy says (Score:5, Insightful)

    by Anonymous Coward on Friday November 14, 2014 @09:45PM (#48389551)
    Do you necessarily have to work on your coding skills? What about enjoying the ride and soaking up the scene?
    • by plover ( 150551 ) on Friday November 14, 2014 @09:49PM (#48389567) Homepage Journal

      Came here to say exactly this. Focus on your adventure. Coding will be here when you get back.

      • by Ydna ( 32354 ) *

        Exactly this. Fuck coding. Live in the moment for once.

      • Build your own drone and fly it around to take some nice aerial shots. Just don't do it like this guy [youtube.com]. His drone looked way too nice. He was lucky to recover it from Nepal customs after two weeks. See if you could build yourself a cheap weather balloon, or a foldable motorized flying wing large enough to take the altitude.

    • by roc97007 ( 608802 ) on Friday November 14, 2014 @09:49PM (#48389569) Journal

      Do you necessarily have to work on your coding skills? What about enjoying the ride and soaking up the scene?

      I was going to say the same thing. Concentrate on being a better person, rather than a better programmer. Travel broadens the mind. Let it do so.

      • by Guru80 ( 1579277 ) on Friday November 14, 2014 @11:06PM (#48389831)
        I get the whole "soak up the scene" stuff but it's a whole year. He will have downtime due to weather/mood/circumstances many times during that period. Just because I might head on a culturally broadening journey for a year doesn't mean I want to completely stop my education during that time particularly if I was really interested in a certain subject. If it were I it would be math, fundamentals and theory. It wouldn't be a rigorous education schedule but it is good to have it there when you want it.
        • I agree that there will be down time, I'd personally bring a book or three but nothing more than this. This person is not going to be isolated away from everyone else, so will have locals to try and mimic. What would I bring to read? Probably something like "Newton and The Counterfeiter" [amazon.com] for entertainment and The Republic [cambridge.org] for personal development. Both of these books are thick and you can't read either in a day or two. It would probably be good to have a medical book and journal as well.

      • Re:Obvious guy says (Score:5, Interesting)

        by CODiNE ( 27417 ) on Saturday November 15, 2014 @12:01AM (#48389961) Homepage

        Lived in the third world a few years. A long term project will protect your sanity and prevent home sickness.

        Ex-pats tend to fill their evenings with either pirate movies or drinking. I had lots of friends and plenty of personal growth experiences, but boredom can be a real problem in the downtime.

        Having a bucket list of things you've wanted to do is a great idea.

      • by mwvdlee ( 775178 )

        Yes. This.
        Spend 24 hours a day, 7 days a week for 365 days concentrating on being a better person, nothing else.
        Do not try to keep in touch with your old self. Do not try to work on your education, knowledge or skills.
        Do not try to improve anything about yourself except whatever "being a better person" entails.
        Force yourself to enjoy yourself for 8.760 concecutive hours without interruption. /sarcasm

        I typically do some programming on vacations too. Because I enjoy doing it.
        If you're not going to have an int

      • Travel broadens the mind.

        Possibly one of the funniest things I've ever heard - it never gets old :-)

      • Can't he concentrate on being a better person *by* being a better programmer? Or at least *while* being a better programmer? The idea that coding is merely some tedious task with no benefit for the coder or the world is a very limiting view.

    • Soak in the scenery, indulge in the local culture and food, and the only computer you should take is the one you use to store your digital photos on (and the backup drive too). Make friends, do good, and the life experience will look much better on your resume than an additional year's worth of coding skils

      • Have you considered that he might want to improve his programming skills for reasons other than his future career? That he wants to indulge in the local culture, and enjoy himself, at least from time to time, through the lens of coding? Not everyone hates the activities in their day job (nor do we even know that coding is or will be his day job).

    • Why must he choose one or the other? Why do you believe that working on his coding skills will make his other experiences less meaningful or enjoyable?

  • Donald Knuth (Score:5, Informative)

    by lophophore ( 4087 ) on Friday November 14, 2014 @09:48PM (#48389559) Homepage

    The Art of Computer Programming. Two volumes ought to be enough.

    • Re:Donald Knuth (Score:5, Interesting)

      by lgw ( 121541 ) on Friday November 14, 2014 @09:55PM (#48389603) Journal

      They're kind of a dull read. Structure and Interpretation of Computer Programs [wikipedia.org] and some version of Scheme will be interesting, challenging, and informative.'

      • You say it's a dull read, then you offer Structure and Interpretation of Computer Programs as a not-dull read? I have the book on my shelve right now and its in the running for most dull. It's the book you pull out to overcome insomnia, my goodness. It has redeeming features, but it's 600 pages that could have been condensed down to 200 with a decent editor.
        • by lgw ( 121541 )

          The short version is The Little Schemer, (and its sequel, The Seasoned Schemer), by F&F. Doesn't get as deep into CS Fundamentals, but is a quick introduction to the world of lambda and functional programming.

    • The art of Computer Programming would be my thought as well, but Knuth isn't for everyone. I'd suggest starting it as soon as possible so there's time to put together a Plan B if TAOCP doesn't appeal. The only other book I can think of that really deals in fundamentals is Hamming -- Numerical Methods for Scientists and Engineers. In any case having lived out of a single suitcase for months more than once in my life, I'd suggest taking something somewhat challenging to read on rainy evenings or dealing with

  • I will be traveling to a remote Himalayan village for year and won't have access to the internet. What offline resources would you all recommend to help me continue to develop my coding skills?

    How about a book and a laptop? But why not use the time to learn about a higher meaning to life itself?

    • by Anonymous Coward on Friday November 14, 2014 @10:11PM (#48389673)
      I'm going to be working in high tech in Miami for the next year. What activities would you suggest to continue developing my ice climbing skills?
      • Ice logistics? Bennet Haselton's your Burning Man man, man.

      • by NoKaOi ( 1415755 )

        I'm going to be working in high tech in Miami for the next year. What activities would you suggest to continue developing my ice climbing skills?

        Running, biking/spinning, swimming, and lifting weights. You'll want to stay in shape and work on strength training, so that when you return to ice climbing you're ready to (pardon the pun) hit the ground running.

  • That totally depends on what sort of work you want to do with your coding skills in the future, now doesn't it?

    Personally I find most people who know C/C++ know little to nothing of the great capabilities of C++11 (and the small improvements from there to C++14). If you have an interest in C++ coding there's no shortage you could learn and practice there, and that's all offline stuff - just get a bleeding-edge g++ and all of the docs you can find. But really, it depends totally on what sort of stuff you wan

    • That totally depends on what sort of work you want to do with your coding skills in the future, now doesn't it?

      This. Oh, and it also depends on what he/she already knows.

      I could say "Download an introduction to C" and then be told "I worked for 10 years coding embedded systems in C using only the standard library." I could say "get an ARM emulator and learn the fundamentals of RISC assembly programming, and then be told "I plan to work in Machine Learning and have no use for machine code."

      There are far too many unknown constraints to the question.

  • I would take a copy of the Tao Te Ching.


    Pursue knowledge, daily gain
    Pursue Tao, daily loss

    Loss and more loss
    Until one reaches unattached action
    With unattached action, there is nothing one cannot do

    Take the world by constantly applying non-interference
    The one who interferes is not qualified to take the world

  • Comment removed (Score:5, Insightful)

    by account_deleted ( 4530225 ) on Friday November 14, 2014 @09:53PM (#48389591)
    Comment removed based on user account deletion
    • Re: (Score:3, Funny)

      by Threni ( 635302 )

      Unless you're going to be a web developer. All that complicated stuff isn't required for that. Just wait it out; perhaps you'll return to a world where the standards work.

      • Indeed. Many of the web developers that I know are high-school dropouts.

        OP is right though, discrete algorithmic problems are always a fun exercise to solve and implement in any programming language.

    • I'm not sure abstract algebra would be very helpful, but information theory [amazon.com] and linear programming [amazon.com] would be both enlightening and useful.
    • Take a compact course book on tensors, and Einstein's General Theory of Relativity. You'll need to assimilate the first to grasp the beauty of the second. If you only do the former, you'll come back with an important and valuable mathematical skill: tensors. If you go on to do the second, you'll be an intellectually much richer person when you come back, and it will change your look upon our universe.
      • Take a compact course book on tensors, and Einstein's General Theory of Relativity. You'll need to assimilate the first to grasp the beauty of the second.

        Thanks for the tip.

      • As phantomfive also said, thanks. I have a copy of Einstein's Relativity right here that I was planning to re-read soon, but I think I'll take your advice and read up on tensors first, to enhance my understanding. You've given me a reason for looking forward to this more than I already was. Wish I had mod points for ya!
  • Comment removed (Score:5, Informative)

    by account_deleted ( 4530225 ) on Friday November 14, 2014 @09:54PM (#48389597)
    Comment removed based on user account deletion
    • Laptop. The wall socket only needs to be powered to charge. Leave it plugged in all the time if availability is unknown. The battery should be charged enough for plenty of coding time. Its not like the person is going there to practice coding in isolation, it sounds as if they will be there for other reasons and want to continue development despite a lack of an internet connection. I.e. coding in their spare time.
    • The ebook thing is good advice, but I'd suggest going for the Nook Simple Touch Glowlight. Root it for full access to Android. Now you have an ultralow power portable computer. Android packages are available for most popular languages, and even though the Nook doesn't run the latest OS version, that will only rule out some of the fancier IDEs -- almost all the command-line language tools will work.
  • by microbox ( 704317 ) on Friday November 14, 2014 @09:54PM (#48389601)
    At the very least: Intro to algorithms [mit.edu]
    • Solar charger, battery, Raspberry-Pi side loaded with compilers
      extra boot memory cards..... Hunt the new RasPi with microSD slot
      and improved USB power. HTML5 is new enough to study.

      Haskell is high on my list as is a good lisp. Never ignore Python.

  • by account_deleted ( 4530225 ) on Friday November 14, 2014 @09:59PM (#48389631)
    Comment removed based on user account deletion
  • Shave a yak. I mean, for real...

  • VB6/VS6 came with a snapshot of the MSDN Library for Visual Studio.. do they have a similar product for .NET yet?

    • Sure. You can download big archives of offline content. In Visual Studio, go to Help -> Add and Remove Help Content. You get the window shown in this picture [imgur.com].
  • by jtara ( 133429 ) on Friday November 14, 2014 @10:18PM (#48389693)

    Assuming you can get power, at least sporadically, take a Macbook. Install the latest Xcode, give homebrew control of your /usr/local and install all the homebrew packages that seem useful. Install npm, node, and useful-sounding Node packages. Install rvm, the latest Ruby, and Gems that seem useful. Ditto for any other language or tool you think you might be interested in.

    Get Dash, and download all the docsets that seem useful.

    Pick an offline-website download solution and load up useful-seeming websites.

    Install VMWare, any other OS(s) you are interested in, rinse and repeat.

    Make sure you can make a pilgrimage to the one Starbucks (has to be ONE) to get the stuff you forgot.

    • If there is no Internet available in the area, it's not likely you can find a working hotspot at Starbuck's or the local library or where-ever you would expect to find one in your home country.

    • Assuming you can get power, at least sporadically, take a Macbook.

      Why a Macbook? Are they exceptional in battery life? Otherwise I might suggest a heavy duty workstation like an HP EliteBook; they're built pretty solid and would be hard to break if you plan on being away from civilization for a full year where damaged equipment might be difficult to get repaired, and their battery is replaceable so you can bring a sack full of batteries for you to swap out and charge when power is available. Can't really comment on HP's newer ZBook as I haven't seen one in person yet but

      • If battery life is a concern, swapping out the LCD for a Pixel Qi display might be worth looking into. Low power and sunlight-readable.
  • Every time when you do something exciting on this scale, any pre-set plans or goals get forgotten in a matter of days as new ones naturally present themselves. So just enjoy the experience and leave stuff home for a year. At most, bring a bunch of paperbacks to read during downtime.

  • I'm going to India for over a year, coming up soon. Although my company is sending me to essentially train my replacements, and then another round after that... sigh, at least the money is good.

    I expect to have internet (I don't see how not) but Idk how steady or fast it is in that area so I'm downloading wikipedia on a usb drive just in case. I have my own favorite books, like Pointers on C by Kenneth Reek but that's book specific. As well as some Lisp history and underlying math (original paper).

    There

    • Comment removed based on user account deletion
      • Heard the same. Because company is branching out in India itself, I'm expected to travel quite a bit, so I'm not sure on every region, plus mobile internet in between.

    • +1 on offline Wikipedia. Check out Kiwix [kiwix.org], an offline reader for Wikipedia (it's FLOSS, not proprietary or commercial).
  • Download all the Debian DVDs. The full repo has nearly everything you might conceivably need in terms of software and dev tools. Make sure you take two copies of the data. The last thing you want is a disk dying unexpectedly. It is safer to have one copy as optical disks. I actually did this when I left for a rural location.

    I'd download some Coursera courses and fill my ereader as well.

    Of course, the best thing to do there would be to enjoy the scenary and practice mindfulness. I am sure you will be doing t

    • by jma05 ( 897351 )

      I should add... Take Offlike Wikipedia too. The text version will suffice.
      Perhaps, the Gutenberg repo as well, if you use an ereader.
      That should cover your information addiction. Of course the point of the Himalayas is to force withdrawl.

  • by WinstonWolfIT ( 1550079 ) on Friday November 14, 2014 @10:48PM (#48389787)

    Take two paradigm shifts with you. You don't say what your background is, but perhaps c# -> f#, java -> c++, c++ -> android. I say two shifts, because one won't last a year. Rewrite -- don't port, rewrite -- a non-trivial application you've written in the new paradigm.

  • by Beeftopia ( 1846720 ) on Friday November 14, 2014 @11:01PM (#48389819)

    Bjarne Stroustrup's "The C++ Programming Language", updated for C++11 (4th edition). Seriously. His books are surprisingly easy to read, yet information dense. Because it covers the standard template library and the current paradigms, the information will apply to the interpreted languages. This is if you know the basics of programming, and it really helps have done a bit of C++. He's got another book that's an overview of C++, if you're completely unfamiliar with the language.

    For books "about" software, try 'Joel On Software' by Joel Spolsky. I liked it.

    I have "JavaScript The Definitive Guide" by Flanagan, but I keep hearing "JavaScript The Good Parts" by Crockford is an easy an informative read. The Definitive Guide is great but it kind of reads like a textbook. I've not read 'The Good Parts' but that's the impression I got from this site.

    "Code Complete", "The Mythical Man Month", "The Psychology of Computer Programming" are the standard "about programming" books which are commonly recommended.

    "Computer Networks" by Tannenbaum is interesting, although it can get a bit dense at time. It is a textbook.

  • I agree with the idea to study mathematics, as a useful exercise, that would in many cases benefit programmers by giving them a good mental workout, and hopefully reinforce if not expand their understanding of mathematics, logic, and reasoning.

    Beyond that I would argue for the study of writing, in a natural (human-oriented) language of your choice.

    Programming as a profession, and as an art, is about the meaningful expression of ideas; in a detailed, unambiguous manner that can be processed by a computer. Pr

  • Hand crank dynamo to charge up supercapacitor, that takes about 1/2 a minute.
    The charge in supercap will slowly charge NiCd battery or lithium battery.

    Note most battery underperform at low temperature.

  • There are many good tips here, mainly Linux distributions. But one tip I don't see, I would bring all of Wikipedia with me. Wikipedia can be downloaded, and then read either on a computer or in specialized e-readers. How to download Wikipedia [wonderhowto.com] . And, The Wikipedia Page [wikipedia.org]. Good luck.
  • I would expect that if I did, I would waste so much time trying to get it to work that I would miss out on many of the greatest things about that part of the world. You didn't mention being insanely wealthy and able to take these trips regularly; if you are of the economic class that most of this country lives in, you will likely only make this trip once. Hence, you should make the most of it. If you really make the most of the trip you'll likely come back to this country with skills from the trip that a
  • What ever level you stopped at get the text from the next level onward. Abstract Algebra is an obvious choice. Or some other area which may interest you. Geometry, Euclidean or non-Euclidean, is always fun. A few thousand sheets of paper, some bound notebooks, lots of pencils, some erasers, and a pencil sharpener would help too. Depending on where you are at a few boxes of candles might be handy.

    A chess board and a book on famous chess games might be fun. Get a description of the games of 'Deep Blue' and se

  • by dlingman ( 1757250 ) on Friday November 14, 2014 @11:42PM (#48389925)

    They have rocks. And space. That should be enough...

    http://xkcd.com/505/ [xkcd.com]

  • by Austerity Empowers ( 669817 ) on Friday November 14, 2014 @11:44PM (#48389931)

    one bullet

  • The one book that helped me out more than any with my programming was "Introduction to Algorithms." [amazon.com] This book helped me understand how to program efficiently, how to look at problems objectively and speak about them using the language describing algorithmic efficiency, and determine if a polynomial solution is NOT known to exist for the class of problem I am trying to solve. If you study this book, you will no longer be able to be derisively called a "code monkey" after someone looks at the output of your p

  • fifteen hundred miles of ethernet cable.

    I mean, seriously? No internet usually means no power either. Take a book.

  • by qvatch ( 576224 )
    Offline copy of wikipedia. Tested working compiler, libraries, documentation for such. Other stuff to do.
  • Find a bunch of open source projects you're interested on Github (or whatever) and download them to your laptop. Then take some time to study the code.

  • For example, one of the ThinkPads with carbon casing. I speak from experience: I have one, and have been lugging it everywhere. The things simply never break ( hear identical experiences from other users ). With one new internal and one new extra battery ( goes into the CD/DVD player slot ), in low-energy mode and BlueTooth / WiFi off, you'll last for 8 - 10 hours.
  • Seriously, consider a non-programming hobby while there. There's a pretty good chance that anything expensive you bring will be stolen.

  • If you only want to carry one slim book, I would recommend "Compilers: Principles, Techniques, and Tools" by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. It might be old skool, but there is sure to be enough ideas in there to keep you busy on cold nights.

  • I would recommend that you install a good video editor like Final Cut Pro, Adobe Premiere or Lightworks. You will probably make many pictures and videos, and this is a good time to learn those tools. I myself are learning Lightworks right now, and it's not easy to get used to the different user interface, the different way of thinking. This might be a problem, as online support will not be available. For Lightworks, sometimes you have to login, and that might become a problem - you have to check that. So fo

  • Data storage is cheap and light. Grab a copy of the latest repositories for anything you could conceivably want and play with it. You can download the stackoverflow.com question database, which ought to be able to answer the majority of newbie questions on any popular framework. A local copy of wikipedia might help, too.

  • You'll come back as a TCP/IP Expert - which can never hurt. That aside, I'd take some serious stoic philosophy with me too. Helps you tune into the mood you need if at sometime you're feeling down. Senecas "Letters of a Stoic" and everything from Epicurous is neat aswell.

    Maybe you want to check out a little buddhist philosophy while you're at it, since you're in a place where that's the thing anyway.

    Other than that, I'd try to find ways of coping with boredom and loss of meaning. Mingle with the locals and

  • Simple, grab a copy of K&R and all you need is GCC and a terminal.
  • Take nothing except a bare-bones computer.

    By hook or by crook, with the tools you have, build a compiler, then from there build up libraries. Then build up what you can with no external help.

    Thousands of people have done this in the past, on new platforms, custom hardware, and just because nothing existed at the time. It's not impossible. And I think you'll learn more from doing that than anything you can carry on a Kindle could teach you.

    Programming is about DOING. Any idiot can read a C++ book and und

  • I'd recommend two or three bottles of MacAllan's. If you try to buy local you will end up with Bagpiper or Old Collie, which are as aesthetically pleasing as they sound. Also a single shot and you will make instant friends for life.

  • Books require no electricity. This one is fairly language agnostic, and I've rather enjoyed reading it.
  • Download all problems from Project Euler. If you can solve them by the end of the year, you will be pretty skilled no matter what language.

  • Install Git or Subversion on your computer and use that to keep track of everything you do. Being able to go back to previous versions of your programming will save you a lot of time.

  • Timothy,
    I will never give up my quixotic quest to get you to post "Ask Slashdot" stories in the "Ask Slashdot" section of this site. That section exists for a reason. Use it.
    -Fnord666
  • If you are truly going to be offline, you are screwed. Even in the pre-internet days I still had to go to the library, the book store, the school, the software store (there were such things), whatever, and connect with people. Basically, it was never long before you had to go back to the source, whatever it was. If you are really going to be offline, you need to go after pure math, not even fundamental CS. I would go check out a couple college courses on topics in math that interest you (cryptograph algebra

  • One of the great things about remote himilayan villages is that they have very little Ghz range noise. Thus you could potentially bounce from a few hills your own solar powered shockingly weak Wifi signal using off the shelf parts and bring internet to the village.

    You will then be elected king of the village and carried around on a chair until they decide to use your head in a sack for horse polo. Oh wait, I think I might be mixing things up here.
  • Mirror yourself debian in at least the i386 and "all" architecture (yeah "all" is mandatory as it contains all the data-only packages). If you try to do it for wheezy alone I believe you need about 140GB but don't take my word, that's kind of an order of magnitude. To get it you need the real rsync/whatever scripts (ask on IRC), ipv6 and wait.

    Then you ought to be able to install whatever software instead of being stuck without foo-library, act as PXE server and debian mirror to install the OS on another com

Kleeneness is next to Godelness.

Working...