Hacker News new | ask | show | jobs
by Toshio 4714 days ago
> "What should I do next?"

Become an enlightened developer by learning a functional programming language.

1 comments

I've had a brief look at functional programming style before but it never stuck. Which language would you recommend to someone of my skill level?
http://en.wikipedia.org/wiki/DrRacket - DrRacket is a Scheme (LISP) implementation.

http://racket-lang.org/

http://www.ccs.neu.edu/home/matthias/HtDP2e/part_one.html - here is a good book about how to design functional programs using DrRacket.

https://www.coursera.org/course/programdesign - here is a course on Coursera that uses DrRacket and the above as a textbook.

I was going to recommend FP as well.

The Little Schemer is (in my opinion) the single best book on programming out there. It won't directly improve your MVC webapps or teach you enough of Scheme to write real software; be warned. What it will do is give you a fantastic introduction to recursive computation and all the mind-expanding ideas that go along with it. It's also great fun to read -- how many books do you have with space reserved for jelly stains?

Also worth looking into is Learn You a Haskell, which is available for free online. Haskell teaches you to have some discipline in code organization, in a way enforced by the compiler, and will also help you to find more abstract patterns in your code.

Finally, Clojure is a functional language that has somewhat more of an emphasis on practical programming than the above books. There are some good libraries for web development such as Ring and Enlive; I'd recommend rewriting an app you've already completed in another language as a good way to learn. That way, you can concentrate on the language and the way you express concepts, rather than the particulars of the problem you're solving.

The Little Schemer is not the single best book on programming out there and I did not find it "fun to read."
Well, to each their own.