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?
Do you necessarily have to work on your coding skills? What about enjoying the ride and soaking up the scene?
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
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?
Politics; n. : A religion whereby man is god.
You are going to be in a remote location for a year. Do not drag along books/ computer etc. Learn a skill that involves the village and bring it to the connected world. Plus, it will get you to know the people there.
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
.. if only.
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 want to do with coding in the future.
(That said, if you're up there, why not just go herd some yaks for a year or something? If I was in a little village in the Himalayas for a year I don't think "enhancing my coding skills" would be on the top of my TODO list...)
Hourglass says she knows a kid in Iowa who grows up to be president.
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
Do math instead. Abstract algebra, Discrete math, many other topics in that vein. You'll come out a better programmer.
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).
At the very least: Intro to algorithms
Like all pain, suffering is a signal that something isn't right
Sounds like it would be the perfect opportunity to order the YouTube Collection? https://www.youtube.com/watch?...
Comment removed based on user account deletion
Bring a linux box with all the man pages you can get. Implement all the "Introduction to Algorithms" in c. Then write them with threads.. Then right your own mvc framework in c (pick a web-server API you like before you leave or write your own... ). That is probably enough. Have fun on your trip :)
This greasemonkey user script will hide all of Bennett's articles from the front page and the "older" pages.
http://pastebin.com/RWCxT0jJ
Make sure you're not on the beta site.
I would dedicate my time to learning Emacs. In addition to being very useful for a wide variety of tasks, it has a very good offline documentation system. There is enough built-in documentation and things to learn so as to keep you busy for the year. It is largely textual, and if you are just reading documentation and playing around, I would imagine that it is rather power-saver friendly (especially when run in a console).
It would be beneficial to learn Emacs LISP (Elisp) in order to extend the editor to do the sorts of things you want. It's an old LISP, but very practical. It's not a bad start for learning about this type of programming (a book-sized Introduction is included in the offline documentation).
Another nice feature of Emacs is that it has Gnus newsreader/email program. It has a pretty sweet offline mode. In principle, you could load it up with news (gmane) and read it offline. You can compose emails and replies, and queue them up for the next time that you get back in to the city, when you switch to online mode and send your replies and fetch new groups.
In my (rather Occidental) mind, I envision the Himilayas as a place of natural beauty and spiritual renewal. Perhaps you could find religion in Emacs--realizing just how important the editor is to a computer user's experience--and coming back as a guru.
Apart from the joke, mastering awk, lex and yacc seems a very modest goal for a full year.
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?
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.
Make sure you have numpy/scipy/python on your machine, or Octave, or Matlab (if you're a student and can get an inexpensive license)..
Get yourself some Arduinos (or Teensy 3.1s, they're smaller, cheaper and faster)..
Get some sensors and data loggers
Download all the DEM and map data available for the general area.
Then, do interesting stuff with your surroundings. take time lapse photos
Learn to do celestial navigation
Download the Nautical Almanac ahead of time.
It will be dark at night.. learn the stars and motions of the planets.
Make maps (get a theodolite app for your phone)
Predict when the sun will come up and set (non trivial in the mountains)
Do photogrammetry on the photos you should be taking.
Record songs, sounds, and speech, process it.
You'll learn a lot about geometric calculations and image processing with this kind of thing. And while that's useful in itself, you'll also learn a lot about ingesting data sources in different formats, efficiently processing disparate data
Read "The Great Arc" and "Longitude" before you go.
Hey, that's sexist. Hitting on womyn is harrasment. Stop supporting the patriarchy and putting down womyn, you MRA asshole.
If you are worried about coding then stay here and do that.
If you start screwing the locals you're going to have to marry one. Best to play it safe.
"What would you bring? "
A girl!
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 is the classic SICP, Knuth's Art of Computer Programming, Concrete Mathematics, etc.
Of course this is all heavy, so I'm putting it in a kindle or tablet. A b/w kindle with some type of manual charger as backup would be ideal.
But you know better than I what your goals are. Don't pack too much, especially dead tree books. Just 1 or 2 of those. You're going to the Himalayas! Enjoy it. Plan on getting through 1 challenging book and don't waste the rest of time reading. It'll still be there when you get back.
Pick up a copy of Learn You a Haskell
You could easily spend a year banging your head against the wall with functors, monads, etc.
... and as many back issues of 70's and 80's Playboy you can stuff in your bag.
Agreed, you can learn programming in ~3 months(start with c or c++ or similar language or you'll have a harder time learning them after you've picked up a more modern & intuitive language).
Math is what makes the programming powerful.
Books on Data structures, advanced algorithms, dynamic programming techniques, Agile methodologies, design patterns, heck, maybe even something to pick up a new language or something (I'm assuming you'll have access to a computer, just not the internet...)
Mathematical logic and abstract algebra, group theory, number theory........
Concurrency, parallel programming, parallel algorithms.......
Actually, it is sexist, you twat. If the only thing you're interested in is how many women you can fuck, then it's pretty obvious you're a shitheel.
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 that as well.
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.
Don't waste any valuable time doing what you can do later when you get back. Instead, spend the year unplugged and immerse yourself in your surroundings.
Plan on spending 1-3 months when you get back catching up on skills. Who knows, maybe something will happen that will change your life goals and you won't care about a computing career any more.
If your a windows user, I would install visual studio .net, sql server and the offline msdn documentation. This should be everything you need to stay busy.
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.
A solar panel and a cell phone with unlimited data roaming & hotspotting...
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. Programming languages are tiny, simplistic, and restrictive in their ability to express ideas, and the execution of these ideas. Writing in a natural language is much more complex, particularly when you strive to remove undesired ambiguity*. The other issue is that as a professional, programming is not done in isolation. Even if you are an independent contractors, you must be able to communicate effectively with clients and users.
*) Ambiguity can be desirable in humor and poetry.
I think that any programmer can benefit from the abilities to make logically sound, comprehensible arguments in a written document; that these abilities will make them better in their ability to understand, and be understood by users, customers, or colleagues.
The argument has been made in the past by Steven C. McConnell in Code Complete, in The Pragmatic Programmer by Andrew Hunt and David Thomas, Coding Horror by Jeff Atwood, and Joel Spolsky (of Joel on Software) in his Introduction to Best Software Writing I and College Advice. And like tons of other software developers, and their managers; repeatedly.
You see, communication is the only really important aspect of software development that people really have trouble with. The rest are details and small bugs, but for really big screw-ups you need miscommunication (or greed)
If I were ever banished to a desert island, as you pretty much are technology speaking, my one take along is a refresh of my text only offline copy of Wikipedia
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.
learn how they cook, and how they transmit cooking knowledge. they are teaching you how human beings can share algorithms passed down over hundreds of years, and communicate those algorithms to each other.
learn any ancient texts. they are teaching you about longevity, organization, presentation, and preservation of written communication over generations.
learn how they build things. they are teaching you how to build a useful device given the tools they have available.
congrats, you just learned some of the most important thing in programming. communication, writing skills, and practicality.
...I suggest some survival books...
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 . And, The Wikipedia Page. Good luck.
Here's to losing my Karma Bonus again....
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 are more valuable than what you could acquire by reading programming books during that time.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
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 see if you can reverse engineer the alylgorithm.
Basically any of that will help you stay sharp, focus, and develop analytical skills.
putting the 'B' in LGBTQ+
Bring 10 Raspberry PIs with you and make something for the community and leave them there.
They have rocks. And space. That should be enough...
http://xkcd.com/505/
one bullet
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.
Assuming you will have access to even the most basic computer, playing with Redcode can keep your coder's mind sharp and keep you thinking about side effects and concurrency. For offline play, I recommend downloading a benchmark and coding to defeat it. see http://www.corewar.info/ for everything you need to get started.
fifteen hundred miles of ethernet cable.
I mean, seriously? No internet usually means no power either. Take a book.
Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel
Take along a copy of Wikipedia on a thumb drive. My nephew-in-law did a 2 year Peace Corps deal in Guinea outside of the Internet's reach, teaching middle schoolers. Having Wikipedia along was a boon.
Yeti
What the OP is really trying to say is he's going to play Farcry 4 for a year.
Mirrors of http://www.h2dp.org and http://mitpress.mit.edu/sicp/full-text/book/book.html
Jesus, are kids today so farking stumped on what to do when the internet is unavailable that they can't even think to read a book?
Offline copy of wikipedia. Tested working compiler, libraries, documentation for such. Other stuff to do.
The best thing you can do to improve your programming skills while in a remote Himalayan village is to take advantage of your setting and learn meditation. These people have been learning to strengthen critical thinking skills for centuries. Not only will it sharpen your mind, it will help you keep your mind at ease when stress would normally distract you.
You think you're going to find a bunch of monks out chanting while they're swinging a pot of burning incense around, talking to humming birds, and smelling flowers all day... No,you going to see a bunch of bald kids in their red robes chatting on their iPhones... It'll be so surreal and bizarre. Even Dali would never dream up such a scene..
Easy to criticize those getting some when you ain't getting none. You jealous mate?
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.
I'd bring Vicodin, Xanax, Gf, Kama Sutra, The Hitchhiker's Guide to the Galaxy, and the 1989 Denver Broncos.
Disregard that. I suck dicks.
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.
Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
dont fuck the village chief's daughter.
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.
Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
Compiled from other's
Do meditation,
Try to understand the world in different perspective.
Try solving totally different types of problems.
Try learning a new human language.
Practical discipline. *Practical*
These things will add different new patterns for your mind which will help you do better when you come back.
Seriously, consider a non-programming hobby while there. There's a pretty good chance that anything expensive you bring will be stolen.
---- I'll take you in a Hunt deathmatch any day.
you could download some papers on RCU: http://www.rdrop.com/~paulmck/...
hehe
People have allready recomended many excellent books... Now if you are going to drag any deadweight electronics there, make sure you bring in means to charge them too. Laptop with empty battery is useless.. So solar-panel or two (bigger the better), inverter, battery and battery charge manager.. And you can charge what ever western not needed electronics use you have... Personally i would look what it-related projects are already there and try help them. Working with actual people will always be superior to any dull book. In fact if you can show that you have managed to come along even with people that you have no common language, might help your career more then any book. If all else fails, just enjoy scenery and piece of quiet you have there, your soon enough back to civilization and hurry..
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 for these programs, download lots of youtube videos and buy some good books. If you're not that familiar with Photoshop - same story! Buy some good books, download videos, buy ebooks about photography, about lighting, etc. Don't forget to download Audacity or another good audio editor as well.
The same goes for 3D like Blender, Maya or 3D Studio Max. Of course you need free or trial versions that work for the whole year, so Blender is a good option. Buy some good books, and enjoy it. You can probably write 3D scripts as well (not story lines but action scripts). 3D printing is hot right now, so 3D skills and understanding is a good plus for your resumé.
These things should be fun of course. If you don't like it, don't do it. Then use iMovie or another free video editor so you can make simple edits.
I love to work with these programs. I like video editing, and want to learn 3D. These are fun projects for me, but still they take up serious time.
I've been in a similar trip.
I wouldn't bring anything special, bring your laptop, bring a backup drive to store you photos, if you get bored, buy a sim card and tether.
Chances are, if your like me, you'll start with a lot of energy and you'll be able to work on stuff for a while but you'll loose yourself in the local environment and use your laptop for images. That's what I ended up doing. I don't think I missed a beat in technical terms (truthfully, I was working about 10 hours a month which withered down by itself). There are a lot of internet "cafe's" in that region, so unless your going somewhere with no roads you should have the ability to connect from time to time. Last time I went, even in the bigger villages around anapurna (which can only be accessed by trekking) they have internet cafe's connected via satellite.
Good luck!
Parody, HELLO?
Can somebody with a brain and points please mod this up?
Yea you could at least add 7-8 programming languages and writing your own OS in each of them to that.
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).
Am I the only one getting that he is going to prison for a year?
It's not an entire year, but it still feels somewhat weird, being as it's the longest stretch of time off since high school. I've been traveling with my family through Southeast Asia, so I haven't had a heck of a lot of down time when trying while trying to plan agendas and fill days.
I brought two eReaders with me, a Kindle and a Kobo. Definitely get something back lit if you buy an eReader. Both eReaders have been decent, but I think the Kindle Paperwhite has a bit better build quality than Kobo Touch.
Great points about electricity rationing from other slashdotters. In Indonesia, Thailand and India the Wi-Fi has been free and plentiful, so not much sense in paying for mobile SIM cards if you eat out once per day and just check in periodically.
Try to take up some activities that don't require electricity or computers. We've done zip lining, surfing, scooters, temple visits, wood working classes, ate a tonne of amazing food and met a lot of interesting people.
Enjoy your year off and enjoy every last minute of it. Travel is always good for the mind and the soul.
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 learn their traditions - perhaps a musical instrument or their local tales or tibetan buddhist literature. No need to be arrogant or pompous about things we nerds of the west care so much about.
Oh, almost forgot: Learn alpine mountaineering! You're in climbers paradise, stupid! If you get into climbing, you won't get bored and your computer-books will remain unread. Promise. Also there's a lot to geek out about on gear and climbing routes and all that kind of stuff. Ice climbing is a whole field in itself aswell. If that's not enough, take a camera and try to catch some lokal wildlife, if that's your thing. ... Seriously, the books on computing stuff should just be a fallback.
Have fun!
We suffer more in our imagination than in reality. - Seneca
Bring your laptop, an editor and your favorite compiler. No more. Choose a problem and figure out how to code it. You will make mistakes, introduce bugs and figuring out for yourself *why* they are mistakes or introduce bugs will teach you more than any book could.
http://www.youtube.com/watch?v=htIPAbjftKo&list=PLg3YGFXCQtTwIrCy596F1puhvX1a-gjof
Someone already mentioned TAOCP, SICP and "Introduction to Algorithms". They are all great. I'll add "Types and Programming Languages" by Benjamin Pierce to that list, or alternatively "Practical Foundations for Programming Languages" by Robert Harper. If I were you I'd bring some ebooks on Haskell (+ a cache of libs with their API docs): "Programming in Haskell" by Graham Hutton, "Real World Haskell" by by Don Stewart, Bryan O'Sullivan, and John Goerzen.
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 understand it. Try applying it and it's a different matter.
You'll understand more about a computer than any book can teach you by having to get it going yourself.
Introduction to Intel x86: Architecture, Assembly, Applications, and Alliteration
Introduction to Intel x86-64: Architecture, Assembly, Applications, and Alliteration
Intermediate Intel x86: Architecture, Assembly, Applications, and Alliteration
With a bonus that you can also learn about ARM assembly in the same class format, and compare and contrast them (what with x86 and ARM being the 2 major architectures which dominate the world's computing devices currently.)
Introduction to ARM
And once you learn x86, how about rather than learning to forward engineer better, how about learning to *reverse* engineer?
Introduction to Reverse Engineering
Reverse Engineering Malware
No need for that, just become a drombo for a few of the local monks
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.
I wouldn't bother trying to keep up any skills, because by the time you get back the following would have happened:
1) Linus will have had at least 3 very public arguments with kernel developers, publicly cursed them out and then kicked 2 of them of the kernel dev list. The other one will be placed in linus-limbo doing penance for at least a year.
2) Microsoft will have shipped Windows 10, but found out nobody was interested in developing store apps for tablets or phones and then they would double the licensing fees for enterprise software so that overall profit would only be down by 12%. Developers will be in hell because of Microsoft's new (no-service-packs) updating cycle that just puts out major changes and breaks everyone else's software without warning whenever MS decides to release updates
3) At least 3 new programming languages will have been invented (2 of them by the googles). 2 of the new ones will fall out of vogue after 6 months and the 1 remaining will be adopted by some (yet to be created) startup that eventually signs up 40 % of the world's population and then goes IPO and then crashes 6 months after that (just about the time you put all of your investments into it).
4) The US stockmarket will have risen another 20% only to fall 40%
5) The market for jobs will be about the same as it was when you left
6) Your girlfriend will have left you and got married to her ex
-OR-
There is a massive EMP that wipes out all tech-based civilization and you will decide to remain there and survive and even prosper.
-OR-
Good luck and just enjoy. Get some nice pics and videos (make sure you are in them) and bring enough storage and a small solar panel to keep it juiced. And then if you do make it back, share.
If you want to motivate yourself, bring some data for a problem that interests you. Data.gov ( http://www.data.gov/ ) or your national equivalent, financial data from Yahoo, something that you find though an Open Data ( https://en.wikipedia.org/wiki/... ) site. Then develop your skills while working on real data. I code best in conjunction with unit tests, and for anything above a trivial exercise I like an actual data sample.
Steve Cline http://www.clines.org, http://www.objectbap.com
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" for entertainment and The Republic 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.
-The wise argue that there are few absolutes, the fool argues that there are no probabilities.
I'm not sure if you'd consider this offline but bring a raspberry pi with a USB battery pack. You'd need a screen and keyboard, or you could configure it before your departure to run VNC and use a VNC client on a phone or tablet to access it. This would allow you to play with python and even fool around with electronics/the GPIO pins while there. Get the camera and set it up to take timelapse videos of the mountains.
Books require no electricity. This one is fairly language agnostic, and I've rather enjoyed reading it.
An internal system operation returned the error "The operation completed successfully.".
There are many good recommendations here. I would add that working through the problems in Knuth will not only teach you programming but a lot of math as well. In fact if you could do even 25% of Knuth, you would make a pretty good math teacher.
I recommend you spend the time enjoying Himalaya. If that isn't your plan, just stay at home.
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
'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
We're not talking about a trip to your mother's house, but an adventure in a foreign land.
Seriously. You're going to the country which fathered and mothered the entire science of yoga, meditation and ayurveda (natural preventative health remedies).
If you truly want empowerment, this is an ideal chance to go deeply into that. You'll get more use for such empowerment than any technical course, which has extremely limited usage anyways.
Be sure to go somewhere Western people are. Everything will be adapted to your needs more and you are more likely not to be scammed.
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, topology, theory of comp, complex analysis, real analysis, etc...) and grab the books from those course listings. Read the books and work diligently through the exercises. That you can really do offline, though you may still get stuck on a problem, but you write a letter to a professor and ask, even if you are not matriculated, he'd love it.
--"You are your own God"--
If it were me, I'd learn to make a relationship with a real person more important that doing my job. I'd personally take a woman, but whatever you're into is fine with me. Too many tech geeks like us ignore this part of our lives. It's part of our stigma. GO HAVE FUN! (oh yeah, and a lot of sex!)
The correct answer is 42.
You can still learn a lot about interprocess communications.
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 computer or in a VM.
Might want to put a 500GB SSD in a netbook. I wonder if HDDs even like the low air pressures.
Part of the experience there is probably going to be one of mental sharpening.
My suggestion is to take around 10 kata specs with you and three to five languages / environments (I'd recommend python, Ruby, java (or, my preference, a Javascript environment with Karma and so forth) and something eclectic like Haskell or erlang. Use these to hone your discipline and thinking skills. Don't worry about keeping up to date with the latest stuff. But if coding is valuable in your life (and I can understand if it is), an approach like above will help to scratch that itch, keep you sharp and provide a chance to engage in focused practice of discipline.
You already have on your computer, coding skills is not about copying and pasting internet code, this is management skills.
coding skills is what you have (or not) learn from real world and its not coded yet, nobody really tried because as long as "nobody" code, no mind connection between the subject and code have been made.
I would bring a kit for embedded + sensors experiments. Mine has a laptop, a Parallax P832A, a solar panel, and a super capacitor. Also a bunch of thermistors, some bread boards, LED's, little steppers, some I2C devices, and assorted other sensors & actuators. Hours of fun. Also can be useful if you need to make a gadget out in the bush. If you bring your smart phone you can use it as an interface to your projects using HC05/HC06 bluetooth. Its a blast.
Get a girl, a couple of 2TB hard drives filled with porn, and practice to become a master of sex!!! Programming, wtf!?!??
-- Francisco Rivas C.
Hello:
Most of the iTunes U courses for programming, in particular, the Stanford Edu and the Carnegie Mellon series are easily loaded on an iPad that may be solar powered/easily charged in remote locations.
However, it is recommended that you get the absolute maximum storage to hold all the video/audio/app/e-book content.
Avoid courses requiring a remote login to proceed since you are not able to communicate.
GSM capable is suggested, unlocked iPad 128GB which usually equates to AT&T for the carrier. But do make sure it is unlocked first and before you even start loading the courses.
Load all the courses at the absolute fastest Internet location, my suggestion is a major bandwidth hub with 1 gigabit or 100 megabit minimum and be prepared to campout a bit to get all the synchronizations finished up.
You can also choose to utilize iTunes itself, but the iPad is where you need to make sure the content is complete, so a PC or better yet, Mac with iTunes and lots of storage on tap is the ticket for best results.
Budgeting space is significant as well plus other topics may be great.
Linux? Well Linux would work, but far less elegant than iTunes U notebooks and iPad combination.
Last but not least, encase the device in a robust container for protection, here is a listing from Redlands in Australia to review:
These are the iPad cases we recommend at the College.
https://ipad.redlands.qld.edu.au/content/cases-we-recommend
http://www.aisnota.com/slashdot/ Welcome to Logic and the Future
Rather than choosing specific resources, you might find it more helpful to look for comprehensive collections. e.g.
In addition to these, any of the standard comp sci books (e.g. the Art of Programming) will give you something to mull over. Learn a functional language if you haven't used one before (I suggest Haskell).
Most human behaviour can be explained in terms of identity.