Can I learn to swim on land?
December 22, 2011 6:51 PM   Subscribe

Which web development skills can I learn with an offline laptop, in the jungle, in a year?

Which web development skills can I learn with an offline laptop, in the jungle, in a year?

I’m going abroad for a year to teach English. I’d like to come back with some useful web development skills, and I’ll have a lot of quiet nights to fill. The kicker: internet access will be very intermittent, and very slow.

My goal is to learn as much as possible, with as little frustration as possible, for personal pleasure. I’d be excited to return in 2013 with a bunch of shiny sites ready to upload, test, and use to learn server-side skills.

My questions are:
Is spending a year building sites I can’t test in every way worth it?
Will I learn bad habits from playing with myself in a sandbox for so long?
If it’s not an intrinsically and hilariously awful idea, which of the skills below will be least frustrating to make progress in without internet access for testing/troubleshooting? I am new to all except HTML/CSS.

- more robust/fluent HTML/CSS layout skills (I have the basics down)
- Photoshop design practice
- Javascript frameworks (actual Javascript if my brain defogs from all the healthy air and exercise)
- maybe a programming language used both for desktop applications and for websites (Python?)
- copywriting and SEO skills
- any server-side skills (I have none) that you think I could usefully get started with. Can I tinker with a CMS with only my laptop?

My laptop is a MacBook. I use TextWrangler, Firebug, Photoshop, and have various browsers installed. I have many ebooks and PDF tutorials. Any suggestions for other applications I should download before I leave would be great.

Finally, I’m pretty set on web development. I’m aware learning to program desktop apps in a new language would be much easier in the circumstances! If you think this would be an utterly frustrating and pointless endeavour, let me know. In which case C + Objective-C + Cocoa it is.
posted by pickingupsticks to Computers & Internet (11 answers total) 11 users marked this as a favorite
Best answer: Oh, but you CAN test websites offline! Just set up a local server and point your browser to localhost. If you're doing PHP/Python/Perl development, download and install MAMP. If you're doing Ruby on Rails, I highly recommend this tutorial, which will teach you how to set up a local Rails server.

As far as the learnin' goes--get a few awesome books or PDFs and practice, practice, practice. I recommend taking a look at this thread for suggestions:
posted by guybrush_threepwood at 6:58 PM on December 22, 2011 [5 favorites]

Install a web server and a CMS like Django on the laptop, the you just need to point the browser at http://localhost:80 to have the same effect. Get comfortable with a good text editor. Learn all the layers. If you have occasional access to a internet cafe, upload your experiments to a cheap host (nearlyfree is good) and ask for reviews.
posted by sammyo at 7:02 PM on December 22, 2011

Second'ing installing a web server on the laptop. Download a bunch of ebooks about web development, server-side work, etc., and prepare to be on a digital island.
posted by introp at 7:19 PM on December 22, 2011

Well you can install Google App Engine on your local machine and build all kinds of web based applications on localhost:8080. HTML / CSS / Jquery on the front end, and either Java, Python, or Go on the backend. The good thing is that security and scalability are pretty much abstracted out by Google. It rides on Google's BigTable so it's no joke when deployed into production on Google's servers. The bad thing about this is that you are locked into the Google AppEngine and can't port over to another host like you could with Ruby or PHP.

Get a copy of Firefox with Firebug and YSlow for the browser, and Notepad++ as your text editor. Get a copy of Photoshop and a hard drive filled with photos, fonts, and illustrations and you should be good to go.

If you are truly offline, your only challenge will be not being able to access StackExchange when you get stuck.
posted by jasondigitized at 7:23 PM on December 22, 2011

One slight issue is that when you're doing web development, it's extremely useful to google and hit sites like stackoverflow and read mailing list for that language/framework daily. You might end up spending days on some issue that would have taken you minutes to google.

What you could do instead is work on algorithms, design patterns and stuff like that. In other words, learn programming rather than web apps.

Another issue is that I would much rather do development on a large screen (ideally two large screens), but this applies to both programming and web apps. I never had to do a lot of coding on a laptop so I can't say if I'd adjust eventually, but at first I would really hate it.
posted by rainy at 7:41 PM on December 22, 2011

Download all the screencasts from CSS Tricks.

Learn WordPress, and therefore PHP. Then take on Ruby or Python.

For added fun, learn SASS or Compass.

jQuery would be fun too.

You'll be frustrated not being able to google, but at least you can search ebooks for help.

Learn MySQL as well. It'll be handy when learning programming. Sequel is a nice GUI for MySQL.
posted by backwards guitar at 7:53 PM on December 22, 2011

Buy some books, get as much of the documentation as possible on your computer. Take a look at which basically is an interface to all of the important rails and ruby documentation.
posted by Freen at 8:27 PM on December 22, 2011

For CSS look to meyerweb for books and resources.

jQuery and ExtJS are popular JavaScript libraries.

MODx is a super PHP based Content Management Framework.

As was said above, MAMP for a local server.

Explore the many facets and discover what you like best and specialize in it.
posted by juiceCake at 10:07 PM on December 22, 2011

Can you run some sort of web spider on one of the popular HTML/CSS/JavaScript/PHP reference sites? I'm not sure exactly how to do this, but you could probably download several entire sites right now and search/read them later.
posted by miyabo at 11:20 PM on December 22, 2011

Best answer: I would personally not recommend downloading and learning a CMS, though they are robust and useful applications for creating websites. My reasoning is that they are already pre-developed web applications geared towards a specific task, and will tend to obfuscate some of the important technologies that you should learn, like database manipulation. Also, there are about 5-10 CMSes in common use, and learning one may or may not translate well to another CMS. I would recommend learning the "fundamentals" of web application building, which means database, web framework, HTML/CSS, and JavaScript. Those skills are fairly applicable across wide swathes of the interwebs.

In order to learn these "fundamentals", I would recommend on focusing on the following pieces:

* Database: mySQL, PostGreSQL are the two major "free" options for databases.
* Language: PHP, Python, Ruby are the easiest to learn and are in wide use
* Web Framework: (dictated by the programming language choice) CakePHP for PHP, Django* for Python, RubyOnRails for Ruby
* JavaScript: as others have recommended, jQuery is an extremely useful JavaScript library.

You could start gathering learning resources for HTML, CSS, and JavaScript/jQuery now, since they are nearly universal, and you don't have to make a decision on a language or framework. Make sure you download the jQuery and jQueryUI libraries (instead of linking to them in your webpage).

After you have made the decision on database, programming language, and framework, download and install those, along with a bunch of tutorials and documentation, and you should be good to go.

Good Luck!

* I am currently helping to develop an application in Django, and I really like the framework, but the most common complaint about it is that it has poor documentation once you get past the very basics. So, if you're stuck on a Django problem with no internet access... you're likely not going to find an answer in documentation that you've downloaded.
posted by baniak at 9:03 AM on December 23, 2011

Response by poster: Thanks for all the immensely useful answers, and particularly for blowing my tiny mind with the options for setting up a local server and CMS.

I'll be spending the Christmas-New Year lull packing my laptop with good stuff; any other suggestions will be very welcome.
posted by pickingupsticks at 1:13 PM on December 23, 2011

« Older Can you tell me what the name of this TV special...   |   How to Really Get Over Someone Newer »
This thread is closed to new comments.