Get ready, they say it’ll be a Racket Weekend!

How do I get start­ed with Rack­et?

You keep hear­ing good things about Rack­et. You get the im­pres­sion that if you want to get into Lisp—andes­pe­cial­ly if you want to get into mak­ing do­main-spe­cif­ic lan­guages and lan­guage-ori­ent­ed pro­gram­ming—then Rack­et is a great choice.

But you just don’t have time to pick up a new lan­guage. You’re a busy pro­gram­mer. Rack­et looks cool, but where’s the struc­ture for learn­ing it? You’ve got bet­ter things to do than to try to re­verse-en­gi­neer your own hand­craft­ed course from the of­fi­cial docs or aim­less­ly scrounge around for the good bits among count­less doc­u­men­ta­tion pages, blog posts, Stack­Over­flow ques­tions, Quo­ra an­swers, you name it. And you don’t need a col­lege course on in­tro­duc­to­ry com­put­er sci­ence where Rack­et just hap­pens to be the lan­guage used to il­lus­trate the ideas. You’re a work­ing pro­gram­mer, for cry­ing out loud! You al­ready learned that stuff and prac­tice it every day.

You wish you could quick­ly see what Rack­et has to of­fer, be­fore go­ing whole hog. You don’t need any­thing BIG, just a lit­tle guid­ance to get you start­ed. You know from ex­pe­ri­ence that once you’re mo­ti­vat­ed to learn a pro­gram­ming lan­guage more deeply, you can prob­a­bly fig­ure it out from there and boot­strap your way up. You just need that lit­tle nudge to get start­ed.

But the ba­sic prob­lem re­mains: You don’t know what you don’t know, so how do you even start? Are you sure you won’t miss some­thing real­ly spe­cial about Rack­et?

What if you could take a short struc­tured ex­cur­sion into Rack­et to find out what it’s all about? What if you could quick­ly take in some high­lights and ab­sorb the juicy parts of the lan­guage?

What if you had an op­por­tu­ni­ty to see a hand-se­lect­ed bun­dle of great ideas il­lus­trat­ing what real-world Rack­et pro­gram­ming is like?

All it takes is a cou­ple of days. The ques­tion is: What are you do­ing this week­end?

Make it a Rack­et week­end

Rack­et Week­end is a short course on the Rack­et pro­gram­ming lan­guage. In­tend­ed length: 2 days. (Of course, I’m not watch­ing, so take it as slow or as fast as you want.)

Rack­et is big. They call it bat­ter­ies in­clud­ed, and they’re not jok­ing around. So if you’ve only got a week­end, it’s im­por­tant to fo­cus on the best that the lan­guage has to of­fer. In Rack­et Week­end, you’ll learn about the Rack­et ap­proach to the fol­low­ing ideas:

Struc­ture of pro­grams and ba­sic syn­tax
In which we be­gin the ex­cur­sion by talk­ing about what Rack­et pro­grams look like, and how they’re struc­tured. Mod­ules. Ba­sic data: num­bers, strings, lists, func­tions.
The read-eval­u­ate-print loop (REPL)
A way to work with your pro­grams di­rect­ly. Eas­i­ly one of the killer tools of­fered by Rack­et (and oth­er Lisps, too).
Struc­tures
First steps into defin­ing your own data types and giv­ing your data some struc­ture.
Ob­ject-ori­ent­ed pro­gram­ming
Rack­et comes out-of-the-box with a pow­er­ful ob­ject sys­tem. Learn the Rack­et ap­proach to OOP. Bonus: mix and match OOP with non-OOP code.
Macros
Take the lan­guage into your own hands by writ­ing func­tions that gen­er­ate bits of lan­guage. Macros can great­ly sim­pli­fy your pro­grams, and help open the door to mak­ing your own lan­guages, one of Rack­et’s spe­cial­ties.
Con­tracts
Your func­tion’s val­ue prob­a­bly sat­is­fies cer­tain prop­er­ties, as­sum­ing that the in­puts do. Wrap your func­tions in con­tracts—an agree­ment be­tween called and caller that is en­forced by Rack­et.
Func­tion­al pro­gram­ming brico­lage
Rack­et en­cour­ages func­tion­al pro­gram­ming with­out be­ing doc­tri­naire about it. Learn about some of the id­ioms and ba­sic ideas of FP, Rack­et-style. (No mon­ads. I promise!)
Test­ing
Mak­ing sure that your func­tions do what you think they do—writ­ing tests—is bread & but­ter pro­gram­ming. Rack­et of­fers a de­light­ful­ly straight­for­ward ap­proach to test­ing that will make you real­ly want to test.
Web pro­gram­ming
It’s all fine and well to write Rack­et pro­grams for your­self. But what if you want to ex­pose your work via the web? Rack­et comes with a built-in HTTP serv­er. Learn how to get start­ed with it.
Doc­u­men­ta­tion
Rack­et comes with its own lan­guage for doc­u­men­ta­tion called Scrib­ble. It makes writ­ing doc­u­men­ta­tion a real plea­sure.
Pack­ages
Learn how to find and in­stall pack­ages from the Rack­et com­mu­ni­ty, as well as how to make your own and sub­mit it to the Rack­et pack­age serv­er.

Ver­sions of the course

Rack­et Week­end is avail­able in three edi­tions, each of­fer­ing the course in var­i­ous ways.

Couch Edi­tion

The ba­sic PDF ebook ver­sion of the course.

Li­brary Edi­tion

The Couch Edi­tion plus work­sheets in PDF for­mat, which con­tain 45 ex­er­cis­es that ask you to go be­yond the giv­en ma­te­r­i­al and make it your own. This ver­sion in­cludes the ebook, too. Ide­al for those who want to stretch them­selves and be more ac­tive in their learn­ing.

Class­room Edi­tion

The most com­pre­hen­sive ver­sion of Rack­et Week­end con­tains the ebook, the work­sheets, and videos where I do con­ver­sa­tion­al cod­ing, talk­ing about the ex­er­cis­es and solv­ing them while you watch, adding some ma­te­r­i­al that is not eas­i­ly put into writ­ten form.

Want in?

Choose the edi­tion of Rack­et Week­end you’d like and click the but­ton be­low; the edi­tions will be shown as a drop-down menu:

About your teacher

I’m Jesse Ala­ma. I’ve been hack­ing Lisps (first Scheme, then Com­mon Lisp, then Clo­jure, and most re­cent­ly Rack­et) since 1996. I’m the au­thor of Serv­er: Rack­et—Prac­ti­cal Web De­vel­op­ment with the Rack­et HTTP Serv­er and main­tain a sev­er­al Rack­et pack­ages.