Ruby java python or lisp

5 points by yearsinrock ↗ HN
I have shortlisted the following languages to learn . which one should I learn first.And which are the best sources books,videos for learning them. i have previously done c and c++

16 comments

[ 0.24 ms ] story [ 31.0 ms ] thread
Try every one of them. I saw your submissions and comments. The time you spend asking these type of questions here at HN would be better spent learning. My guess is you are procrastinating.
ok i'll start but which book should i refer for ruby
I would recommend Peter Coopers "Beginning Ruby: From Novice to Professional" book. Its well written and pretty exhaustive. Another book, once you get past Peters would be Flanagan and Matz (the creator of Ruby) "The Ruby Programming Language".

Good luck.

For python I can't recommend a book. Dive in to Python is available online but to be honest the best thing to do is just start using it. It's just not hard.

DIP: http://www.diveintopython.org/toc/index.html

Tutorial: http://docs.python.org/tut/tut.html

Std Modules: http://docs.python.org/modindex.html

Std Library Reference: http://docs.python.org/lib/lib.html

good luck

I'll second dive into python. I thought it was an excellent read. The book does a good job of teaching the language while showing a lot of practical examples.
Google is a terrible way to find good programming/CS books. I think that's why the OP was asking here, where he can expect to find books that other hackers have used personally and can thus make earnest and informed recommendations.

I did indeed learn some languages using the google route, but in retrospect, I could have saved myself a lot of time and pain if a forum like this had been around, where I could get expert opinions.

Google's not bad for ruby, scheme, etc. tutorials. I've been doing same for OCaml and F#; Also try (espec. delicious)

http://searchyc.com/python+tutorial

http://del.icio.us/tag/ruby+tutorial

http://technorati.com/tag/Ruby+tutorial

http://www.reddit.com/r/programming/search?q=python+tutorial...

here's a starting line: admin tasks you do repetitivly in whatever o/s you use. Automate them. Build in checks for filename conflicts, large file/network transfers, run script off hours, etc. or rewrite something from the activestate's CPAN-loose equivalent, submit it back when it's tested robust and you know it's not a dup

http://aspn.activestate.com/ASPN/Cookbook/Python

and, oh yea, Martelli's Python in a Nutshell from Oreilly. Covers 2.4, read the PEPs to see what's new in 2.5 and 2.6. Also, Matz's original ruby nutshell on Oreilly, the little one that covers 1.6. It's little outdated, but it's also a small book that you can read carefully , cover to cover

Word. Looking for programming info via combinations of del.icio.us tags became surprisingly useful for me once I knew the basics well enough to know what I was looking for.

> admin tasks you do repetitivly in whatever o/s you use.

Excellent advice. When you find yourself in a situation where you keep having to do something boring and repetitive, try to write a script for it. The immediate feedback and sense of accomplishment from this will teach you things that spending weeks on internet forums never could.

It's obvious that the OP hasn't even tried to find out any of this information for himself.
Exactly. When I was a proto-hacker I suffered from a kind of paranoid monoglossia. I had found Perl, Perl made me happy, therefore I needed no other languages, thankyouverymuch.

Over time, I've grown out of that, and have learned to appreciate learning a language simply for the sake of learning it. Playing with Erlang and Lisp and C makes you a better Rubyist. Sub any other languages for those 4.

So my advice? Pick one. Any one will do. Spend a week hacking in it. Read a little, but don't read too much without actually using the language. Write some programs that solve a very small itch, or do something fun like simulating a swarm of bees or creating two bots that battle to the death. Play, and then after a week or two, play with something else.

I think new programmers sometimes worry about learning a language that will be financially viable, or will help them get a job. I know I did. I also know I'm worse off for that belief. I would have been better served, both personally and professionally, if I'd just played more.

Consider starting with Scheme and reading SICP.
I've started recently with LISP and it's been a rewarding experience. I've noticed that it's just more flexible than the C-like languages. For example, I have been able to get the factorial of a number as big as 3000 in a very short time! That was simply not possible with a C-like program. I've used Emacs with the "Superior Lisp Interaction Mode" preloaded, upon the suggestion I got from useful book "Practical Common Lisp by Peter Seibel" (It's available on line at gigamonkeys.com)

I have also acquired the book "ANSI Common Lisp by Paul Graham", which is a classic and no-nonsense book. I personally find Paul Graham's approach quite refreshing.

Having seen Ruby being employed in various environments, I've also started to learn Ruby. It's a multi-paradigm and dynamic language and hope to use it in a RoR application development. It kind of forces you to think dynamically and that helps you to write more efficient code, I guess.

So far, I couldn't find enough time for either Java or Python.

And oh, lastly I must say: C++ with templates (STL) is quite indispensable. If you master C++ with all its features like STL, you'll find that it can handle a whole lot of things quite elegantly.

Since you already know C++, learning Java really won't expand your mind at all so I wouldn't waste time on it. My personal recommendation would be Lisp...
Learning to spell "python" would be a good start.