From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: Help with Learning Programming and LISP Date: Mon, 09 Sep 2019 22:11:02 +0200 Message-ID: <874l1l9qnd.fsf@elephly.net> References: <9618e0b6e24159251b9d264659149b615a641561.camel@disroot.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:54438) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7Q0H-0000BI-8P for help-guix@gnu.org; Mon, 09 Sep 2019 16:11:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i7Q0F-0000pC-Qy for help-guix@gnu.org; Mon, 09 Sep 2019 16:11:13 -0400 Received: from sender4-of-o52.zoho.com ([136.143.188.52]:21217) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i7Q0F-0000jW-Ds for help-guix@gnu.org; Mon, 09 Sep 2019 16:11:11 -0400 In-reply-to: <9618e0b6e24159251b9d264659149b615a641561.camel@disroot.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Raghav Gururajan Cc: help-guix@gnu.org Hi, I=E2=80=99d like to second Vladimir=E2=80=99s recommendation of Felleisen's= How to Design Programs (https://htdp.org/). It is a very well-written book that doesn=E2=80=99t go too deep without preparing you first. (I should no= te that I didn=E2=80=99t 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 =E2=80=9Cengineery=E2=80=9D for casu= al 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. =E2=80=9CThe Land of Lisp=E2=80=9D is quirky and an odd joy to read! It=E2= =80=99s got cartoons and weird drawings, so if you have a short attention span like me you=E2=80= =99ll appreciate that. If you use it to prepare yourself for learning Scheme, though, you=E2=80=99ll be disappointed as the code they present is not at a= ll idiomatic Scheme. There=E2=80=99s a lot of mutation and inelegant Common L= isp forms (well, =E2=80=9Cinelegant=E2=80=9D or =E2=80=9Coverengineered=E2=80= =9D from a Schemer=E2=80=99s perspective, perhaps) that are not how you=E2=80=99d do things in Scheme. There=E2=80=99s hardly anything about functional programming in the book, a= nd 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=E2=80=99t the best kinds of problems for learing a new language. =E2=80=9CRealm of Racket=E2=80=9D is very similar to =E2=80=9CLand of Lisp= =E2=80=9D, but I had =E2=80=94 inexplicably =E2=80=94 less fun and ended up skipping over many of the exam= ples. It=E2=80=99s not really a problem with the writing =E2=80=94 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