
Learn Lisp the Hard Way - plinkplonk
http://learnlispthehardway.org/
======
nice_uname_nerd
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.

~~~
Eiriksmal
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.

~~~
thephoeron
This 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!

~~~
Eiriksmal
Thanks for responding. To be clear, I don't object to the inclusion of the
mysticism, I simply find it intriguing. Most surprising to me were not your
beliefs, but that you had coined a term, "Neuro-Occultism," that is utterly
ungooglable--the only results returned are your own writings. I spent some
time reading your blog where you discussed at length your connections between
mysticism and Lisp.

I was disappointed, though, to learn that your place of employment is not
strictly Lisp-only.

...Now I feel like a total stalker. It's all a few clicks away from the LLTHW
site, I swear!

~~~
thephoeron
Haha---it's fine. The internet makes everyone's life an open-book. Which place
of employment do you mean, though? As a contractor, I jump around a lot; but
I'm also involved with a start-up (but that's still running in stealth mode,
so there's not much posted about it online). I have managed to use Common Lisp
at nearly every contract or job I've worked at for the past few years though
---once employers and clients became more responsive to it again. Even when
the job didn't strictly allow it, I used Lisp for code generation anyway.

As to your clarification---yes, that was understood. I was more speaking to
the general criticisms about my tendency towards mystical language, since that
comes up fairly often. I would be more surprised if there _was_ third-party
material discussing Neuro-Occultism, TBH---the occult community at large
dislikes it because I deny a metaphysical explanation; and most of the people
in the scientific community that I've shown it to dislike it because it even
deals with the problem of mysticism (much like Freud criticized the work of
Carl Jung for the same reason). How dare I!

That being said, I have been making good progress this year on my adapted
process calculus---I'm just putting the finishing touches on the BNF grammar,
and then I can begin testing its logical consistency and writing proofs. Once
it's finished, I'm hoping to be able to describe physics, quantized
consciousness, quantum and classical computing all with the same notation.
_Fingers crossed_.

------
austenallred
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.

~~~
thephoeron
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!

------
Shorel
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.

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
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.

------
thephoeron
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/](http://www.gigamonkeys.com/book/)

------
swah
> Lisp—the friendly nickname for Common Lisp

Sorry, but this is an awful way to start... just get the Wikipedia definition?

~~~
muuh-gnu
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.

------
zedshaw
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.

------
partisan
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.

[http://old.ycombinator.com/arc/tut.txt](http://old.ycombinator.com/arc/tut.txt)

------
bigtunacan
"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
Zed didn't write this... it's some knockoff "hacker" using the same title and
format.

~~~
buffportion
Knock-offs are explicitly encouraged:

[https://gitorious.org/learn-x-the-hard-way/learn-x-the-
hard-...](https://gitorious.org/learn-x-the-hard-way/learn-x-the-hard-way)

------
jozi9
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).

~~~
dutchrapley
If you're interested in looking at Clojure, checkout Clojure for the Brave and
True.

[http://www.braveclojure.com/](http://www.braveclojure.com/)

~~~
jozi9
Thanks 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.

------
Lambdanaut
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!

------
niels_olson
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)

------
btimil
Direct link for the book in html
[http://learnlispthehardway.org/book/](http://learnlispthehardway.org/book/)

------
TehCorwiz
Thanks HN, the site is now throwing a 502. I didn't even make it into the
second part of the preface. ;)

~~~
thephoeron
And it looks like my webhost is now automatically blocking the process. Sorry
everyone!

------
jjbohn
The _really_ hard way. Bad Gateway.

------
Dewie
> 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).

