

Ask HN: Is lisp a language for a newbie? - nkh

I have a question for Lisp programmers. I am fairly new to programming and I have been playing around with Ruby. Mostly building simple Rails apps and scraping sites. I have read a lot about Lisp that intrigues me. However, it always seems like Lisp programmers are experienced programmers that become evangelists once they see how easy something was to accomplish in Lisp.<p>So my question is: Do you think that Lisp is a language you can cut your teeth on, or should I get more experience with Ruby and wait till I hit a wall, then turn to lisp to solve my problems?<p>To be fair, it seems the documentation for Lisp and ruby are quite different. Where Ruby seems to cater to new programmers with the coddling we need, while Lisp documentation is more sparse for veterans don't need intro material. Does that seem correct or an I mistaken? And I would love to hear the path Lisp programmers here took to become proficient.
======
yan
It depends how much work you're willing to put into it. Yes, you can treat
Lisp as a first language, MIT has been doing it for years (until recently).
Their Intro to CS class, CS 6.001, used Scheme and is very highly regarded.

Their text book[1] and lecture videos[2] are free on the internet. Can't hurt
to give it a shot.

[1] <http://mitpress.mit.edu/sicp/>

[2] [http://groups.csail.mit.edu/mac/classes/6.001/abelson-
sussma...](http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-
lectures/)

~~~
Travis
If you do want the SICP route, there's a free course going on right now at
<http://www.crunchcourse.com/> for SICP. I'm taking it at the moment ;)

------
budu
I think it may even be easier if you're just starting. If you get used to
Ruby, it could be painful/hard to switch after. It all depends how much you're
ready to learn and if you need hand-holding, in the later case Ruby might be a
better place to start. However, beware tutorials catered to new programmers,
they're not always giving good advises (being generally written by newbies)
and coding on your own is always more efficient. Furthermore, if you're not
shy, participating in the community is the best way to learn, so it also
depends on how you get along with the others using the programming language
you've chosen.

My path to Lisp: C/asm > Java> Ruby (and some Scheme) > C# > Clojure

I've always been a polyglot and been programming for fun in lots of strange
languages, so I've skipped lots of them in the above. Others notable languages
I like are Python, OCaml and Haskell, but I didn't do much with them. That
route may not be the best for you though. And you can't know which way will
work for you until you've found it! So you need to try one and go far enough
to see if you really like it.

------
whyenot
Yes you can start out with lisp. You will certainly learn a lot if you go that
route, there are good resources out there if you do (see the link to SICP
someone else posted, and also look at one of my favorite books, The Little
Schemer[1]). Still, I'm not sure it's a path that I would recommend. You will
be able to go farther, more quickly in Ruby. There are more libraries, better
resources for those new to programming, and (this is subjective of course) a
more welcoming community if you need to ask for help.

But, if you are willing to figure some things out by yourself, don't let me
discourage you from starting with lisp.

edit: forgot Little Schemer ref. see: [http://books.google.com/books?id=xyO-
KLexVnMC&dq=the+lit...](http://books.google.com/books?id=xyO-
KLexVnMC&dq=the+little+schemer&printsec=frontcover&source=bn&hl=en&ei=HW1XS-
nUIZGuswOouNHFBw&sa=X&oi=book_result&ct=result&resnum=5&ved=0CBwQ6AEwBA#v=onepage&q=&f=false)

------
vorador
I'd suggest sticking with ruby before switching to something else, first
because you need to have some basic programming experience before learning a
new language, and second because it's much easier to get things done in ruby
than in lisp, for a beginner (because there are tons of ready to use libraries
- in lisp, not so much).

~~~
DanielStraight
Agreed. Don't try to become bilingual when you aren't even fluent in your
first language. I don't buy the argument that your first language permanently
changes how you view programming. I started in QBASIC and now my programming
style is generally to program almost functional programs in object-oriented
languages. QBASIC had neither functional programming capabilities nor objects.

~~~
budu
I'm with you on becoming fluent in one before going to another, I've lost lots
of time because of this. But for how you're viewing programming, it all
depends on the person. Like natural languages, some people just can't become
bilingual. We all have our limits, I don't think I could be fluent in say 10
languages and it's probably much less than that.

~~~
whyenot
I agree, and am a polyglot myself, but I think there is a tradeoff. The more
time you spend learning new languages, the less time you have to master one of
the languages you already know. Take a complex language like Common Lisp. You
can learn the basics of Common Lisp in maybe a week or two, but to master the
language, to really understand all the details, to know the idioms, etc, takes
years. Lisp is a language you can spend the rest of your life learning.

