Slashdot Mirror


Ask Slashdot: Programming Education Resources For a Year Offline?

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?

28 of 223 comments (clear)

  1. Obvious guy says by Anonymous Coward · · Score: 5, Insightful

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

    1. Re:Obvious guy says by plover · · Score: 4, Insightful

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

      --
      John
    2. Re:Obvious guy says by roc97007 · · Score: 4, Insightful

      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.

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    3. Re:Obvious guy says by ILongForDarkness · · Score: 2

      Not clear from the brief question what the poster meant. For all we know the dude is Indian or another nationality in the area and just spending a year at home. Or has been there for a few months before etc. I agree not everything has to be job training but a year is a really long time. You can spend a few hours a day reading a book or hacking something and still have plenty of time to hang out with people, see the scenery etc. If for nothing else even if you make friends THEY likely will be working 8+ hours a day so you'll have to find something to do then.

    4. Re:Obvious guy says by Guru80 · · Score: 3, Insightful

      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.

    5. Re:Obvious guy says by umdesch4 · · Score: 5, Insightful

      I came here to say this. People commenting here don't seem to have the experience to back it up. I spent a year in a beautiful place where the climate and culture were a 180 from where I'd spent most of the rest of my life up to that point, and hardly anybody spoke a word of English. It was an awesome adventure, but I still had a whole heap of Cisco training materials on a laptop, and managed to write my CCNA exam when I came back. I had enough downtime over the course of the year, and sometimes I just wanted use the time to learn something radically different from my current surroundings, and more related to my former life. It helped me stay sane when I started to feel like a stranger in a strange land, and it made me remember that I'm not an idiot. When you spend a year trying to function in a place where you don't speak the language too well (especially at first), you can start to feel like you've lost too many brain cells. As for what to bring, that's hard to say, but I'd recommend something that's formatted as a course with study guides and practice tests, just because then you can gauge how well you're absorbing the material without needing to be online to confirm it.

    6. Re:Obvious guy says by CODiNE · · Score: 4, Interesting

      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.

      --
      Cwm, fjord-bank glyphs vext quiz
    7. Re:Obvious guy says by mwvdlee · · Score: 2

      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 internet connection (or rather; any outside help), I'd try to focus on things for which you can get a complete manual in paper.
      I think a language like C would be ideal; relatively small syntax and standard library. Probably any "old" language would do in your situation.
      "Generic" IT books would also be great. If you got the complete "Art of computer programming" series, you'd probably be the only human who will have read it completely and will have learned a lot of useful things.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  2. Donald Knuth by lophophore · · Score: 4, Informative

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

    --
    there are 3 kinds of people:
    * those who can count
    * those who can't
    1. Re:Donald Knuth by lgw · · Score: 4, Interesting

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

      --
      Socialism: a lie told by totalitarians and believed by fools.
    2. Re:Donald Knuth by phantomfive · · Score: 2

      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.

      --
      "First they came for the slanderers and i said nothing."
  3. Do math instead by bangular · · Score: 4, Insightful

    Do math instead. Abstract algebra, Discrete math, many other topics in that vein. You'll come out a better programmer.

    1. Re:Do math instead by Threni · · Score: 3, Funny

      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.

  4. Electricity can be erratic by CRCulver · · Score: 5, Informative

    Are you going to Nepal, by any chance? The country has load shedding, in the winter you may have electricity only for two non-contiguous 5-hour blocks a day in big cities like Pokhara or Kathmandu, and it can be even worse elsewhere. Sometimes that time when electricity is available is the middle of the night. My advice would be to focus on hobbies that don't require a stable electric connection. Get a Kindle or similar ebook reader with backlight (battery lasts for weeks) and pirate a tonne of ebooks to broaden your mind. Focus on learning the local language (you can easily find textbooks for the major languages of the area like Nepali when you get there).

    1. Re:Electricity can be erratic by CRCulver · · Score: 2

      No, "load shedding" is the local English term used in Nepal for scheduled blackouts. See, for example, timetable from one of Nepal's English-language newspapers.

    2. Re:Electricity can be erratic by Dahan · · Score: 2

      This "sheds" (gets rid of) the "load" (electricity on the line).

      No, an electrical load is something that uses electricity, not electricity itself. E.g., "that circuit can handle a 20 amp load." And "load shedding" is shutting off electricity to certain users so that there are fewer loads on the system. See this definition, for example.

  5. Intro to algorithms. by microbox · · Score: 3, Informative

    At the very least: Intro to algorithms

    --

    Like all pain, suffering is a signal that something isn't right
  6. Comment removed by account_deleted · · Score: 4, Funny

    Comment removed based on user account deletion

  7. Re:yacc, of course by manu0601 · · Score: 2

    Apart from the joke, mastering awk, lex and yacc seems a very modest goal for a full year.

  8. Re:Going to the Himalayas and you need what? by Anonymous Coward · · Score: 5, Funny

    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?

  9. OK, seriously then... by jtara · · Score: 2

    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.

    1. Re:OK, seriously then... by ProzacPatient · · Score: 2

      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 it's the successor to the EliteBook line so it's probably just as solid.

      If you like taking pictures, as I do, you might also want to bring a film camera so you always have access to taking pictures of your adventure without having to worry about batteries.

  10. Paradigm Shifts by WinstonWolfIT · · Score: 2

    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.

  11. Stroustrup's book by Beeftopia · · Score: 2

    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.

  12. Re:Don't plan on reading too much by andrew3 · · Score: 2

    +1 on offline Wikipedia. Check out Kiwix, an offline reader for Wikipedia (it's FLOSS, not proprietary or commercial).

  13. obligatory XKCD by dlingman · · Score: 2

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

    http://xkcd.com/505/

  14. A gun and... by Austerity+Empowers · · Score: 2

    one bullet

  15. Introduction to Algorithms by brian.stinar · · Score: 2

    The one book that helped me out more than any with my programming was "Introduction to Algorithms." 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 programming efforts.

    I used this book for my undergraduate degree in computer science for my algorithms class, and then at a different school for my masters degree in computer science algorithms class (we did the star'd problems in grad school, finished more of the book, and generally went into greater depth.) If you understand this book, you will understand a major portion of computer science. Plus, whenever someone has a very difficult problem, and you know the content of this book, you will look extremely cool solving the problem in an efficient and elegant way (this only happened to me once, but it was very fun.)

    This book is worth the weight in paper. If you can get (power?) an electronic version, there are a few other books I would recommend, but if you only bring one book on computer science (programming?) please consider bringing this one. You will be able to solve problems efficiently in any language after deeply studying this book.