You keep hearing good things about Racket. You get the impression that if you want to get into Lisp—and especially if you want to get into making domain-specific languages and language-oriented programming—then Racket is a great choice.
But you just don’t have time to pick up a new language. You’re a busy programmer. Racket looks cool, but where's the structure for learning it? You’ve got better things to do than aimlessly scrounge around for the good bits among countless documentation pages, blog posts, StackOverflow questions, Quora answers, you name it.
And you don't need a full-on introduction to computer science where Racket happens to be the language used to illustrate the ideas. You're a working programmer, for crying out loud! You already learned that stuff.
It doesn’t have to be this way.
As with all the cool things you want to learn, you wish you could quickly see what Racket has to offer, before going whole hog. You don't need anything BIG, just a little guidance to get you started. You know from experience that once you're motivated to learn a language more deeply, you can probably figure it out from there and bootstrap your way up. You just need that little nudge to get started.
But the basic problem remains: You don't know what you don't know, so how to even start?
What if you could take a short structured excursion into Racket to find out what it’s all about? What if you had a time-boxed chance to take in some highlights and absorb the juicy parts of the language?
What if you had a opportunity to see a hand-selected bundle of great ideas illustrating what real-world Racket programming is like?
All it takes is a couple of days. The question is: What are you doing this weekend?
Introducing Racket Weekend
Racket Weekend is a short course on the Racket programming language.
Intended length: 2 days.
The course contains 11 lessons on a number of bread & butter topics in Racket.
It is kept deliberately short, allowing you to kickstart your Racket learning. The course was made with working programmers in mind. In Racket Weekend, you’ll learn about the Racket approach to the following ideas:
- Structure of programs and basic syntax In which we begin the excursion by talking about what Racket programs look like, and how they’re structured. Modules. Basic data: numbers, strings, lists, functions.
- The read-evaluate-print loop (REPL) A way to work with your programs directly. Easily one of the killer tools offered by Racket (and other Lisps, too).
- Object-oriented programming Racket comes out-of-the-box with a powerful object system. Learn the Racket approach to OOP that you can mix and match it with non-OOP programs.
- Macros Take the language into your own hands by writing functions that generate bits of language. Macros can greatly simplify your programs, and help open the door to making your own languages, one of Racket’s specialties.
- Contracts Your function's value probably satisfies certain properties, assuming that the inputs do. Wrap your functions in contracts—an agreement between called and caller that is enforced by Racket.
- Functional programming bricolage Racket encourages functional programming without being doctrinaire about it. Learn about some of the idioms and basic ideas of FP, Racket-style.
- Testing Making sure that your functions do what you think they do—writing tests—is bread & butter programming. Racket offers a delightfully straightforward approach to testing that will make you really want to test.
- Web programming It’s fine and well to write Racket programs for yourself. But what if you want to expose your work via the web? Racket comes with a built-in HTTP server. Learn how to get started with it.
- Documentation Racket comes with it's own language for documentation called Scribble. It makes writing documentation a real pleasure.
- Packages Learn how to find and install packages from the Racket community, as well as how to make your own and submit it to the Racket package server.
Versions of the course
Racket Weekend is available in three editions, each offering the course in various ways.
A 100-page PDF ebook version of the course. Includes code samples to accompany the text.
This edition includes (in addition to the course PDF and code snippets) a workbook in PDF format (26 pages) that contains 45 exercises that ask you to go beyond the given material and make it your own.
Finally, the most comprehensive version of Racket Weekend contains the ebook, the worksheets, and more than 2 hours of screencasts where I do conversational coding, talking about the exercises and solving them while you watch, adding some material that is not easily put into written form. This is the most comprehensive edition, offering insight into how one really works in Racket.
About the author
I’m Jesse Alama. I’ve been hacking Scheme, Lisp, and (most recently) Racket since 1996. I write about Racket over at lisp.sh. I’m the author of Server: Racket—Practical Web Development with the Racket HTTP Server and the author of a few Racket libraries:
- argo (JSON Schema validator),
- json-pointer (RFC 6570: a notation for referring to parts of JSON documents), and
- uri-template (RFC 6570: URI Template)
I’m a coauthor of the entry on the lambda calculus in the Stanford Encyclopedia of Philosophy and have worked as a researcher in mathematics and computer science, primarily in automated theorem proving.
Depending on the weekend package you choose, you will receive: