I don't want to be too mean, but it looks like very little has changed since the six months or so when this last popped up on HN. The book still has none of the exercises that the exposition places so much weight on. Meanwhile, the introduction still mostly tells rather than shows—for all the discussion about how LISP is an elite hacker language, there are no actual examples backing up that statement (IS it in fact widely used by hackers?). Telling me how great LISP is and rambling on about Heinlenian mysticism is not going to work if theres no real substantive material.
I've been working on LLTHW pretty much every day since LLTHW was first posted on HN, but as I said in my reply to austenallred, I'm still working on shaping the content, in order to have a very clear work-plan to follow as I write the exercises. I'm hoping that my progress will be more visible once I have finished scoping the content of each chapter.
Agreed. I bookmarked LLTHW a few months ago when I decided I "need" to learn a Lisp (if, indeed, one can ever be said to truly know a Lisp), but found the extreme WIP-nature off-putting. I think it will be a good resource in a few more years, though.
In the meantime, I've had GigaMonkeys.com open in a separate tab ever since and plan on purchasing the silly "Learn Lisp Through Games!" book.
Edit: But I did find the author's nouveau mysticism/occultism quite interesting. I tend to forget that those belief systems are still around.
I really think the title for this should be changed. The title mimics zedshaw's "Learn X the Hard Way," (which, by the way, is fantastic), but the content doesn't mimic any of the things that make "Learn X the Hard Way" great.
The brilliant thing about zedshaw's "Learn X The Hard Way" is that it focuses on typing the code and learn-by-doing programming. Learn Lisp the Hard Way just explains Lisp then tacks on a few exercises.
I (and presumably Zed, from his previous comments), wouldn't mind if the author had mimicked the entire format, because it works. "Learn Lisp the Hard Way" would be necessarily very different from "Learn JavaScript the Hard Way," but this is just a programming book with a familiar yet misleading title slapped on top.
You're right, of course. It's a little overwhelming at times, how much interest and attention this project has garnered---especially so early into the 2nd draft, where I'm still shaping the breadth, depth, scope, and direction of the content. The first time this project was posted to Hacker News earlier this year, I felt forced to push out exercises for the first two chapters as quickly as possible, just to give visitors some material to actually work with; but they do not yet reflect the final style and methodology that I'm aiming for. I do want to make it clear, though, that I'm not going to stop working on this project until it meets the standards set down by Zed Shaw for LxTHW-based books.
The most important factor, as I understand it, is the show-don't-tell method; it's also the most difficult to achieve for a language like Common Lisp, which is so foreign to most people. For the purposes of this draft-in-progress, however, just consider every explanation currently in the text as a placeholder for concrete examples that will illustrate the point better.
Another important factor is the pace of each exercise. One of the biggest features I noticed about Zed Shaw's Learn Code The Hard Way books is how perfectly he scaled the difficulty of progressive exercises, to maintain an even pace. For an absolute beginner to programming, an exercise should take no more than an hour to complete---and that's a goal I'm working towards for LLTHW as well.
To achieve these goals, once I finish laying out the content and direction with the intro text to each chapter, I'm going to be working backwards in each Part, writing progressively easier exercises, to make sure that all necessary material is covered, and that the pace is structured properly. But even once the 2nd draft is complete, I will still be relying on user feedback to adjust the ordering and pace of the material, as needed.
Thanks for your feedback, and I hope you'll continue participating in this project as I work out all the kinks!
The best lisp book I have found to learn Lisp, while really understanding all that's happening underneath is "COMMON LISP: An Interactive Approach".
Basically, there's no hand waving in this book. It doesn't teach you to have a lisp blog in five minutes doing copy paste of code you don't understand.
It respects you as a smart learner, and makes you write the code, you learn doing stuff by yourself being smartly led by the author, and by the end of the book you have written a very complex piece of software with many advanced concepts and you understand more about lisp than you could have by following endless web tutorials.
Thanks for the link! I'm surprised that I have not seen this before.
The methodology in this book is definitely close to what I'm trying to achieve with LLTHW. I'll be sure to add it to the list of references, and look forward to what it can teach me about teaching Lisp.
Thanks everyone for your continued interest and support of this project as I work towards completing the second draft!
Unfortunately, it looks like the traffic spike has once again caused my webhost to kill and block the web application's process---so I'm going to have to move over to a better cloud service and an async web-app to better support this level of interest from the community.
I will announce the re-launch of LLTHW through my blog, which is syndicated on Planet Lisp. Until then, I do highly recommend Practical Common Lisp by Peter Seibel, also available online for free at: http://www.gigamonkeys.com/book/
Or dont talk about these prehistoric details _at all_.
Dont talk about the 80s. Dont talk about 27 different and incompatible implementations. Dont talk about lambda calculus or McCarthy. Dont talk about 1001 different editors. Nobody finding about Lisp today cares about these things, it is just annoying noise that dilutes the message.
If youre stealing the title of a Python book, then at least make the experience as newbie-friendly as Python is.
Just a quick note, even though it's been mentioned already: I let people and even encourage them to copy my method and use a similar title to me own Learn X The Hard Way. That is all.
I found the Arc language tutorial to be a really easy to read and understand. It has renewed my interest in Clojure and I am glad I took the time to look through it.
"Programming MotherFucker - Do you speak it?" -Zed Shaw
Couldn't resist the above quote from Zed Shaw; the guy who started the Learn X The Hard Way series. Overall I think these tend to be a very good approach to learn, especially for someone just starting out.
I'm about to learn Lisp and/or Clojure(Script). How does this book differ from for e.g Land of Lisp? I was planning to get my fingers dirty with some more light material before digging in the recommendations (PAIP, PCL, SICP).
Practical Common Lisp is the best Common Lisp learning book there is. Land of Lisp is funny and all, but it doesn't make any attempt to really help you get set up with practical tools for interacting, relies on CLISP which is buggy and slow, and is honestly a bit too in love with huge, complex nested data trees and car/cdr wizardry.
PCL will teach you CL, how CL works, in clear language and examples.
Ultimately, though, I realized I prefer the Scheme family (especially Racket). CL is crufty and arcane, and I prefer the Lisp-1 model (this does come at a cost to macro ease of use, but I'm not yet a huge macro fanatic, and once you learn the harder Scheme/Racket macros they can do insanely great things).
For learning Scheme, SICP is the classic, and there's an interactive version of it. I also recommend the Little Schemer for getting yourself in the mindset of learning how to use recursion in clever ways.
For Racket, the go to choices are Realm of Racket (which you can think of as a more clearly written Racket version of LoL but with a slightly less interactive approach), and How To Design Programs (which is quite a lot to get through, being designed as a full year course in CS).
I started my Lisp journey seeking to learn Clojure too. I starting out with The Little Schemer[1]. I chose Scheme so that I could first wrap my head around the basic Lisp syntax, along with the recursive and functional thinking. To keep things as simple as possible, I did 95% of the exercises using a composition notebook and pencil[2]. This kept the incidental complexity to a minimum.
Later, I moved on to the Clojure books. Working through the Little Schemer was invaluable (and its bibliography is excellent too).
That's a very expansive table of contents. I'm loving the site design and I look forward to the more difficult chapters, particularly the math-heavy ones. Good luck!
This is awesome! Thanks so much! For general discussion: what are all the L<insert-language>THW sites? How do they compare (how far do you get, ease of use, etc)
> Common Lisp is not a ‘pure’ functional language, however, such as Haskell; it is multi-paradigm like OCaml. You can choose to use the functional paradigm in Common Lisp if you like, but you can also use Procedural, Object-Oriented, Event-Oriented, novel new paradigms like Aspect-Oriented, or mix and match to your hearts content. __Strict Functional programming languages do not offer this flexibility__.
"Strict functional programming languages" could be interpreted as languages with strict evaluation. But I guess it is clear in this context that they mean pure functional languages (or pretty rigorous with regards to purity).
[+] [-] nice_uname_nerd|11 years ago|reply
[+] [-] thephoeron|11 years ago|reply
[+] [-] Eiriksmal|11 years ago|reply
In the meantime, I've had GigaMonkeys.com open in a separate tab ever since and plan on purchasing the silly "Learn Lisp Through Games!" book.
Edit: But I did find the author's nouveau mysticism/occultism quite interesting. I tend to forget that those belief systems are still around.
[+] [-] austenallred|11 years ago|reply
The brilliant thing about zedshaw's "Learn X The Hard Way" is that it focuses on typing the code and learn-by-doing programming. Learn Lisp the Hard Way just explains Lisp then tacks on a few exercises.
I (and presumably Zed, from his previous comments), wouldn't mind if the author had mimicked the entire format, because it works. "Learn Lisp the Hard Way" would be necessarily very different from "Learn JavaScript the Hard Way," but this is just a programming book with a familiar yet misleading title slapped on top.
[+] [-] thephoeron|11 years ago|reply
The most important factor, as I understand it, is the show-don't-tell method; it's also the most difficult to achieve for a language like Common Lisp, which is so foreign to most people. For the purposes of this draft-in-progress, however, just consider every explanation currently in the text as a placeholder for concrete examples that will illustrate the point better.
Another important factor is the pace of each exercise. One of the biggest features I noticed about Zed Shaw's Learn Code The Hard Way books is how perfectly he scaled the difficulty of progressive exercises, to maintain an even pace. For an absolute beginner to programming, an exercise should take no more than an hour to complete---and that's a goal I'm working towards for LLTHW as well.
To achieve these goals, once I finish laying out the content and direction with the intro text to each chapter, I'm going to be working backwards in each Part, writing progressively easier exercises, to make sure that all necessary material is covered, and that the pace is structured properly. But even once the 2nd draft is complete, I will still be relying on user feedback to adjust the ordering and pace of the material, as needed.
Thanks for your feedback, and I hope you'll continue participating in this project as I work out all the kinks!
[+] [-] Shorel|11 years ago|reply
Basically, there's no hand waving in this book. It doesn't teach you to have a lisp blog in five minutes doing copy paste of code you don't understand.
It respects you as a smart learner, and makes you write the code, you learn doing stuff by yourself being smartly led by the author, and by the end of the book you have written a very complex piece of software with many advanced concepts and you understand more about lisp than you could have by following endless web tutorials.
The book can be downloaded from: http://www.cse.buffalo.edu/~shapiro/Commonlisp/
It is to me a vastly underrated resource for all people interested in Lisp.
[+] [-] thephoeron|11 years ago|reply
The methodology in this book is definitely close to what I'm trying to achieve with LLTHW. I'll be sure to add it to the list of references, and look forward to what it can teach me about teaching Lisp.
[+] [-] thephoeron|11 years ago|reply
Unfortunately, it looks like the traffic spike has once again caused my webhost to kill and block the web application's process---so I'm going to have to move over to a better cloud service and an async web-app to better support this level of interest from the community.
I will announce the re-launch of LLTHW through my blog, which is syndicated on Planet Lisp. Until then, I do highly recommend Practical Common Lisp by Peter Seibel, also available online for free at: http://www.gigamonkeys.com/book/
[+] [-] swah|11 years ago|reply
Sorry, but this is an awful way to start... just get the Wikipedia definition?
[+] [-] muuh-gnu|11 years ago|reply
Dont talk about the 80s. Dont talk about 27 different and incompatible implementations. Dont talk about lambda calculus or McCarthy. Dont talk about 1001 different editors. Nobody finding about Lisp today cares about these things, it is just annoying noise that dilutes the message.
If youre stealing the title of a Python book, then at least make the experience as newbie-friendly as Python is.
[+] [-] zedshaw|11 years ago|reply
[+] [-] partisan|11 years ago|reply
http://old.ycombinator.com/arc/tut.txt
[+] [-] bigtunacan|11 years ago|reply
Couldn't resist the above quote from Zed Shaw; the guy who started the Learn X The Hard Way series. Overall I think these tend to be a very good approach to learn, especially for someone just starting out.
[+] [-] xxxargs|11 years ago|reply
[+] [-] jozi9|11 years ago|reply
[+] [-] jarcane|11 years ago|reply
PCL will teach you CL, how CL works, in clear language and examples.
Ultimately, though, I realized I prefer the Scheme family (especially Racket). CL is crufty and arcane, and I prefer the Lisp-1 model (this does come at a cost to macro ease of use, but I'm not yet a huge macro fanatic, and once you learn the harder Scheme/Racket macros they can do insanely great things).
For learning Scheme, SICP is the classic, and there's an interactive version of it. I also recommend the Little Schemer for getting yourself in the mindset of learning how to use recursion in clever ways.
For Racket, the go to choices are Realm of Racket (which you can think of as a more clearly written Racket version of LoL but with a slightly less interactive approach), and How To Design Programs (which is quite a lot to get through, being designed as a full year course in CS).
[+] [-] evanspa|11 years ago|reply
Later, I moved on to the Clojure books. Working through the Little Schemer was invaluable (and its bibliography is excellent too).
[1] http://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/02...
[2] https://github.com/evanspa/TheLittleSchemer/blob/master/sche...
[+] [-] techpeace|11 years ago|reply
[+] [-] dutchrapley|11 years ago|reply
http://www.braveclojure.com/
[+] [-] Lambdanaut|11 years ago|reply
[+] [-] niels_olson|11 years ago|reply
[+] [-] btimil|11 years ago|reply
[+] [-] TehCorwiz|11 years ago|reply
[+] [-] thephoeron|11 years ago|reply
[+] [-] jjbohn|11 years ago|reply
[+] [-] Dewie|11 years ago|reply
"Strict functional programming languages" could be interpreted as languages with strict evaluation. But I guess it is clear in this context that they mean pure functional languages (or pretty rigorous with regards to purity).