I am ready to learn a new code set. Whats the best language to learn right now?
I want to learn a new code, and have heard lots about Ruby, Python, and Perl, but I want to be sure before I begin my endeavor. Familiar with HTML, XHTML, some Perl. Any ideas?
9 comments
What do you want to build?
Ruby or Python is good. Just pick one. Flip a coin. Or do what I did: I picked the one that _Why's book was about, and that proved to be a very amusing way to choose:
http://poignantguide.net/ruby/
(See also: http://hacketyhack.net/ and http://shoooes.net/ .)
Also good, but for different things: Scheme (as learned from SICP), C, Objective C, Java (so that you'll know what everyone else is complaining about).
Ruby or Python is good. Just pick one. Flip a coin. Or do what I did: I picked the one that _Why's book was about, and that proved to be a very amusing way to choose:
http://poignantguide.net/ruby/
(See also: http://hacketyhack.net/ and http://shoooes.net/ .)
Also good, but for different things: Scheme (as learned from SICP), C, Objective C, Java (so that you'll know what everyone else is complaining about).
Mechanical_fish asked the right question: What do you want to build? Once you know what you can get passionate about, figure out what people commonly use to build apps in that arena.
Some suggestions:
Rich media websites? Flash/Actionscript
"Desktop-class" web apps? Cappucino or SproutCore
Business web apps? Java or C#, SQL
Aiming to work at a startup? Rails/Ruby or PHP, SQL
Desktop apps? Objective-C or .NET, SQL
Looking to expand your mind? Erlang, Lisp, Haskell, or OCaml
Hardware or Operating Systems? C, C++
Hope that helps. This is by no means a complete (or even totally accurate) list, so others please jump in.
Some suggestions:
Rich media websites? Flash/Actionscript
"Desktop-class" web apps? Cappucino or SproutCore
Business web apps? Java or C#, SQL
Aiming to work at a startup? Rails/Ruby or PHP, SQL
Desktop apps? Objective-C or .NET, SQL
Looking to expand your mind? Erlang, Lisp, Haskell, or OCaml
Hardware or Operating Systems? C, C++
Hope that helps. This is by no means a complete (or even totally accurate) list, so others please jump in.
I use Rails, but would add Django/Python to the "startup" list
thanks so much for the in depth response...really helped.
I'm going to be slightly contrarian and suggest two languages that are widely considered boring and old hat.
All too many developers think they know what there is to know about both of them, and most of them are wrong.
These are languages that will be useful to you in any shop in the industry; in fact you've probably had occasion to use them both already.
SQL and Javascript. You may think you know them already. But they both reward in-depth study.
All too many developers think they know what there is to know about both of them, and most of them are wrong.
These are languages that will be useful to you in any shop in the industry; in fact you've probably had occasion to use them both already.
SQL and Javascript. You may think you know them already. But they both reward in-depth study.
There is no "being sure" before you start learning, because in order to determine what you like, you first have to learn your options. It's better to just pick something and start than to forever wait for the "right" thing.
Personally, I made a choice between learning Ruby and Python based mostly on emotion: I found most Python code samples more aesthetically pleasing.
Personally, I made a choice between learning Ruby and Python based mostly on emotion: I found most Python code samples more aesthetically pleasing.
I'm learning Python/Django right now (coming from a strong Java and Perl background, plus a mish-mash of other stuff)
Liking it a lot, plus have already written an app and deployed it in the GAE, which is pretty cool in itself
Liking it a lot, plus have already written an app and deployed it in the GAE, which is pretty cool in itself
Try Prolog. It'll at first please you and later either make you a code genius or drive you insane. But the ride is fun!
Thanks to all for your suggestions.