all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ricardo Wurmus <rekado@elephly.net>
To: Raghav Gururajan <raghavgururajan@disroot.org>
Cc: help-guix@gnu.org
Subject: Re: Help with Learning Programming and LISP
Date: Mon, 09 Sep 2019 22:11:02 +0200	[thread overview]
Message-ID: <874l1l9qnd.fsf@elephly.net> (raw)
In-Reply-To: <9618e0b6e24159251b9d264659149b615a641561.camel@disroot.org>


Hi,

I’d like to second Vladimir’s recommendation of Felleisen's How to
Design Programs (https://htdp.org/).  It is a very well-written book
that doesn’t go too deep without preparing you first.  (I should note
that I didn’t finish it.)

SICP is a classic, and it is very comprehensive, but it is also has a
steeper learning curve than other books.  Some of the exercises are
really hard, and some are a little too “engineery” for casual
programmers.  You will spend a lot of time on each important concept,
but it can be hard to stay motivated for as long as it takes to get to
the next exciting concept.  I prefer the videos by the authors, which
cover the same ground but more quickly, so staying motivated is less of
an issue.  If you want a book that will definitely keep you busy: this
is it.

Unlike others, I did not enjoy The Little Schemer much.  It has a very
unique style of questions and answers, but sometimes it feels very
forced and it ended up confusing me more than it helped.  Some people
swear by The Little Schemer, but personally I would not recommend it to
new learners.

“The Land of Lisp” is quirky and an odd joy to read!  It’s got cartoons
and weird drawings, so if you have a short attention span like me you’ll
appreciate that.  If you use it to prepare yourself for learning Scheme,
though, you’ll be disappointed as the code they present is not at all
idiomatic Scheme.  There’s a lot of mutation and inelegant Common Lisp
forms (well, “inelegant” or “overengineered” from a Schemer’s
perspective, perhaps) that are not how you’d do things in Scheme.

There’s hardly anything about functional programming in the book, and
sometimes I found the examples too long to develop an intuition about
the problem and how to solve it myself from scratch.  (The author also
compares Haskell and purely functional programming to an oppressive
regime in a cartoon, which I think is in poor taste.)  Perhaps games
aren’t the best kinds of problems for learing a new language.

“Realm of Racket” is very similar to “Land of Lisp”, but I had —
inexplicably — less fun and ended up skipping over many of the examples.
It’s not really a problem with the writing — perhaps I just grew tired
of motivating myself with games.  It uses Racket, which I think is a
more beautiful (collection of) language(s) than Common Lisp, and it is
closer to what you would find in Guile.

--
Ricardo

  parent reply	other threads:[~2019-09-09 20:11 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-09 16:18 Help with Learning Programming and LISP Raghav Gururajan
2019-09-09 16:38 ` John Soo
2019-09-09 17:04   ` Raghav Gururajan
2019-09-09 17:20   ` Jesse Gibbons
2019-09-09 16:50 ` Tobias Geerinckx-Rice
2019-09-09 16:53   ` Tobias Geerinckx-Rice
2019-09-09 17:05     ` John Soo
2019-09-09 17:04   ` Raghav Gururajan
2019-09-09 17:20   ` Pierre Neidhardt
2019-09-09 17:18 ` Vladimir Sedach
2019-09-09 20:11 ` Ricardo Wurmus [this message]
2019-09-12  1:16   ` Raghav Gururajan
2019-09-12  6:34     ` Konrad Hinsen
     [not found] <mailman.370.1568090751.2189.help-guix@gnu.org>
2019-09-10 20:31 ` Zelphir Kaltstahl
2019-09-11 20:53   ` Viet Le
2019-09-11 21:24     ` Zelphir Kaltstahl
2019-09-11 22:15       ` Viet Le

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874l1l9qnd.fsf@elephly.net \
    --to=rekado@elephly.net \
    --cc=help-guix@gnu.org \
    --cc=raghavgururajan@disroot.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.