Hey Lifehacker, I was very interested in the recent Ask Lifehacker about quitting your job to travel. I love learning and when I travel, I usually read non-fiction novels or anything that I feel would enrich me. Now that I’m embarking on a prolonged journey after leaving my job, I’d love to learn an IT language of some use while I’m away.
I don’t want to merely learn its syntax from reading a book. I’d like to solve a practical problem. I am in IT/finance and the suggestions from colleagues I have received so far are Haskell, any Big Data language or even the classics (such as design patterns). What languages or concepts should I learn while I’m travelling and what practical problems should I attempt to solve? Thanks, Travel Coder
Programming picture from Shutterstock
Dear TC,
All of those suggestions are good. Haskell is a great, functional programming language that has a lot of free documentation and a vibrant online community which makes it great for specific problem solving. But there are any number of answers to this question that would be equally valid to your friends’ suggestions. Naturally, it helps to have a specific project in mind so you have a goal to work towards, rather than just thinking “I want to solve random problems”.
With that in mind, we’re going to throw this question over to our readers — hopefully one of their suggestions will be exactly what your looking for.
Got your own question you want to put to Lifehacker? Send it using our [contact text=”contact form”].
Comments
18 responses to “Ask LH: Which Programming Language Should I Learn On The Road?”
I’d suggest learning web languages so you can create useful websites. I think Ruby and JS are a good idea.
JS, as it will someday rule the world 🙂
god i hope not
A popular one is going to be Python. And for good reason. You can really do a lot with it easily. I know a lot of scientists that use it.. and as a programmer myself its one of my go-to languages for getting stuff done quickly (be it to quickly test an idea, or to write something solid and production ready).
+1 for Python.
If you are traveling, learn a ‘real’ language based on where you are going – Spanish, Italian, French.
Java is a decent language to learn, and easys to pick up! It’s also great for mobile (android) app development. Maybe (more so scripting) html and php would be good to learn? For web design and even Windows 8 App development.
Java is among the hardest languages to learn of those used widely today.
PHP is a fundamentally flawed language that is only used because it is one of the few languages designed to be used for server-side web development, even though other languages not designed for the task are better at the job, such as Python.
I have more experience with Java than any other language and I agree with you, it is not an easy language. If you want to program for the web, Django with Python is fantastic.
Really? I started learning Java last year after learning PHP/HTML and picked it up quite easily. Then again, I did study this as one of my TAFE subjects – but its a great language to learn and can be used on a multitude of devices.
Also, @piman
If PHP is so flawed, why do people still use it? If python is better, and supposedly so easy to learn? I mean, major sites like facebook use it…
PHP has a very very low barrier to entry. All web hosts, no matter how shit or small support it… and it runs everywhere. Easy to write and test.
I’m not convinced its a “bad” language… its actually very useful it times; but the simple thing is: there are stacks of other languages out there that do what it does better, faster, more secure, and following better programming principles. It’s not that hard to write *good* PHP code, but its really really easy to write bad (insecure) PHP code.
I used to do a lot of PHP programming, and still use it occasionally for contract work; but I would never write anything new in it.
If Facebook used a better backend language; it would probably be a better platform today. Now they use a custom version of PHP that does JIT (I think) among other things to massively increase performance (coz otherwise PHP just doesn’t cut it). Mark used PHP back when he first wrote Facebook because its so dead easy to get started.
Python on the other hand is a lot harder to setup. Many hosts don’t support it and you often have to learn linux and get your hands dirty to deploy things. I run a site built in django/python; and its infinitely more maintainable, fast and just plain better than the previous iteration I was writing in PHP. It also took far less time to write.
Fair enough. I’ll look a bit more into it. And if I do end up doing a little web design, I’ll be sure to write GOOD PHP or use another language 😛
This is why PHP is so bad:
http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/
It is inconsistent, both internally and compared to external standards (the conditional operator is left associative in PHP, for example).
It at times makes itself look like other languages, such as “(int)” casting to integer; but it ignores why those other languages did what they did, “int” means nothing in PHP and can be used as a variable or constant name.
The “@” operator. The mere existence of an operator for silencing/suppressing errors should be a cringe-worthy concept to any programmer.
And that’s just a tiny subset of PHP’s problems.
And here’s what the site I’ve just linked has to say about major sites using PHP:
Django + Python is beautiful. I heard good things from Ruby on Rails (on which Django is loosely based?), though I don’t think Ruby is as generally useful as Python.
Java, yo.
The OP is in IT/Finance and is after a language AND a project to learn it with.
Speaking of Haskell, how about creating a system for pricing financial instruments? eg futures, forwards, etc. This could lead to learning not just about the language but a scalable real world implementation.
Big Data? Don’t know where to start with that at all.
If you want to get into Big Data and don’t mind learning regex and the importance of key value pairs, give Splunk, http://www.splunk.com/, a look.
Powershell