> I was introduced to Racket recently, and immediately found it intriguing and 
> began writing programs in it for whatever purposes I saw appropriate 
> (previously I knew only C++ and Java, I am still a high school student with 
> little in the way of formal computer science education)
> 
> So, I was wondering, other than obviously waiting and taking college courses, 
> what routes anyone would suggest to learn the language.  So far I have relied 
> on the help of a couple of friends who are CS majors and the docs online, and 
> looking at the questions on this list most things go over my head.  I have 
> seen a lot about the book How to Design Programs here, would that be a good 
> option?

Yes, _How to Design Programs_ changed the way I think about programming (not to 
mention teaching it).  The book is, however, 11 years old, and many parts of it 
no longer represent what most of us actually do in the classroom.  Most 
notably, most of us now use a lot more graphics and GUI programming than we did 
in 2000; we still use the same design recipe, but have improved the terminology 
in places.  To get a more modern take on things, you could look at
(a) _How to Design Programs_ Second Edition, which isn't finished but which is 
available on-line for free at http://www.ccs.neu.edu/home/matthias/HtDP2e/
(b) my book _Picturing Programs_, which is available on-line for free at 
http://www.picturingprograms.org/download/

Both of those are really "how to program" books that happen to use Racket, so 
some parts of them will be old hat to you... but you'll probably learn a new 
take on some things that you _thought_ you had learned in Java or C++.  Once 
you've gotten through those, I would suggest looking through various parts of 
the DrRacket help: for example, the "universe" teachpack provides a 
beginner-friendly way to explore client-server network programming; the 
"Continue" chapter discusses how to write interactive web apps using 
continuations (which make it MUCH easier than web apps in most other 
languages); macros give you power and flexibility that isn't available in most 
other languages; etc. etc.


Stephen Bloch
sbl...@adelphi.edu


_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to