5 ms·
Learn Lisp the Hard Way
- bigtunacan 12y ago"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.
- xxxargs 12y agoZed didn't write this... it's some knockoff "hacker" using the same title and format.
- bigtunacan 12y agoYeah; I got that. He used Zed's Learn X The Hard Way Latex starter kit.
- buffportion 12y agoKnock-offs are explicitly encouraged: https://gitorious.org/learn-x-the-hard-way/learn-x-the-hard-way https://gitorious.org/learn-x-the-hard-way/learn-x-the-hard-...
- niels_olson 12y agoThis 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)
- jozi9 12y agoI'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).
- techpeace 12y agoLooks like this one isn't totally finished, at the moment. You're probably better off starting with Land of Lisp.
- dutchrapley 12y agoIf you're interested in looking at Clojure, checkout Clojure for the Brave and True. http://www.braveclojure.com/ http://www.braveclojure.com/
- jozi9 12y agoThanks for the repleis! I'm currently close to web development (as people nowadays) so that's why I'm thinking about learning clojure/script rather than Lisp - because I can use clojure in daily work but not Lisp.
- jarcane 12y agoPractical 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).
- evanspa 12y agoI 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). [1] http://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992/ref=sr_1_1?ie=UTF8&qid=1415384298&sr=8-1&keywords=the+little+schemer http://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/02... [2] https://github.com/evanspa/TheLittleSchemer/blob/master/schemer-grab.JPG https://github.com/evanspa/TheLittleSchemer/blob/master/sche...
- nice_uname_nerd 12y agoI 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.
- Eiriksmal 12y agoAgreed. 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.
- thephoeron 12y agoThis is slightly off-topic, but I think it's worth explaining that I don't have a "belief system", per se. I'm a deductive thinker (which I realize is weird for a programmer), so I find metaphor and allusion to be useful tools for explaining myself. Mystical language, in particular, is very rich, colourful, and goes hand-in-hand with Lisp culture, since the multi-paradigm nature of the language appeals to deductive thinkers. Obviously I have studied psychonautics and chaos magick in some depth, and I was particularly taken by the idea from these modern schools of mysticism, that belief is a tool, that can be wielded to consciously control your own mind, much like (but not exactly like) how a programmer controls a computer by writing software. As for my own heavily transhumanist "system" of Neuro-Occultism, it's more of a philosophical framework---the basic premise is that all supposedly supernatural phenomena can be explained in terms of psychology, neuroscience, and the physical sciences; that only once you have ruled out the possibility that a supposedly supernatural experience is a purely psychological phenomenon can you begin to model a physical explanation; that the experience of supposedly supernatural phenomena are more interesting and powerful when examined in this light; and that even qualitative systems such as the human mind can be described quantitatively, by adapting research in quantum computer science and biological computation to the field of neuroscience. It's not so different from Cognitive Science, only it emphasizes that once you know that all belief systems are just paradigms, that the human mind can support multiple, simultaneous, even contradictory paradigms, and that your fundamental being is in fact a quantitative system, you can really start to put your brain to work. The problem lies with the fact that the language of the unconscious mind is purely symbolic and associative; thus, a mystical language is necessitated by the structure of our minds---even though a rigorous, mathematical model would be preferable in terms of the scientific method. Lisp, metaphorically applied to the model of the mind, brings us most of the way there. The purpose of Neuro-Occultism is to develop such a rigorous, mathematical model of consciousness and being; and in so doing, deprecate itself. I see this as an essential aspect of the "technological singularity", both for the realization of emergent machine intelligence, and for the transfer of human consciousness to a computational system---because until such time as the human mind can be understood quantitatively, the singularity will remain science-fiction and fantasy. But then, even the idea of the singularity is a problem, a fundamental limitation of current consciousness that prevents us from seeing past the event horizon of this convergence of technology, biology, individual and social psychology; in order to both achieve the singularity and transcend it, we need to first transcend our own segmented and qualitative perception of self. There's a lot more I'd like to say on the subject, but that would be a book of its own. Back on topic: I do realize that the heavy-handed mystical tone and Lisp proselytization currently present in the introductory text of LLTHW is useless cruft; I'm a passionate and excitable person by nature, but I recognize that it is holding back the work and interfering with Zed Shaw's methodology. Writing a book is an iterative process, and my effort has been focused on getting a complete scope in order to pump out solid, relevant exercises---so for the time being, I've simply marked the intro chapters as rejected/need-to-be-rewritten. I really hope it won't take me a few more years to finish this book though!
- swah 12y ago> Lisp—the friendly nickname for Common Lisp Sorry, but this is an awful way to start... just get the Wikipedia definition?
- muuh-gnu 12y agoOr 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.
- partisan 12y agoI 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. http://old.ycombinator.com/arc/tut.txt http://old.ycombinator.com/arc/tut.txt
- austenallred 12y agoI 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.
- thephoeron 12y agoYou'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!
- Dewie 12y ago> 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).
- Lambdanaut 12y agoThat'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!
- btimil 12y agoDirect link for the book in html http://learnlispthehardway.org/book/ http://learnlispthehardway.org/book/
- TehCorwiz 12y agoThanks HN, the site is now throwing a 502. I didn't even make it into the second part of the preface. ;)
- thephoeron 12y agoAnd it looks like my webhost is now automatically blocking the process. Sorry everyone!
- jjbohn 12y agoThe _really_ hard way. Bad Gateway.
- zedshaw 12y agoJust 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.
- thephoeron 12y agoThanks 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/ http://www.gigamonkeys.com/book/
- Shorel 12y agoThe 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. The book can be downloaded from: http://www.cse.buffalo.edu/~shapiro/Commonlisp/ http://www.cse.buffalo.edu/~shapiro/Commonlisp/ It is to me a vastly underrated resource for all people interested in Lisp.
- thephoeron 12y agoThanks 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.