# Learning racket/scheme - how do you get to the practicing stage?

**URL:** <https://racket.discourse.group/t/learning-racket-scheme-how-do-you-get-to-the-practicing-stage/901>\
**Category:** General\
**Created:** [April 20, 2022, 2:42am UTC](https://racket.discourse.group/t/learning-racket-scheme-how-do-you-get-to-the-practicing-stage/901 "2022-04-20T02:42:56Z")\
**Posts on this page:** 1\
**Showing post:** 24

<div class="post-metadata">

**Author:** ![sschwarzer](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/sschwarzer/32/1940_2.png) [@sschwarzer](https://racket.discourse.group/u/sschwarzer)\
**Post date:** [April 24, 2022, 6:33pm UTC](https://racket.discourse.group/t/learning-racket-scheme-how-do-you-get-to-the-practicing-stage/901/24 "2022-04-24T18:33:41Z")

</div>

> [@soegaard](#):
>
> Due to the way I found Racket, I tend to think of R5RS as the essentiel part of Racket.

I think that's a good approach (even though I started with Racket before looking that much into R5RS). But my reasoning is that if R5RS in itself is a productive language but (much) smaller than Racket, it's probably a good basis to get the big picture.

> [@soegaard](#):
>
> Here is what I would focus on if I were new to the language:
> 
> - R5RS
> - structures
> - pattern matching
> - [...]

I'd like to add that [pattern matching](https://docs.racket-lang.org/reference/match.html) has both relative simple patterns and advanced ones which I find rather hard to understand. Also, in my opinion [Additional Matching Forms](https://docs.racket-lang.org/reference/match.html#%28part._.Additional_.Matching_.Forms%29) can come later. 🙂

> [@soegaard](#):
>
> The intention of "The Guide" is to provide an introduction to Racket.

This is also what I had hoped to find in the Racket Guide. My wish is that the Guide contained what a user needs to get productive in the language for not too complicated programs. That said, I just checked the contents of the Racket Guide and, thinking about the presumably advanced stuff that we discussed in this thread, I found some contents where I wonder if they should be in the Guide:

- " 5.7 Prefab Structure Types"
- The "planet" stuff in "6.3 Module Paths". I guess this is mostly there for historic reasons.
- " 6.8 Protected Exports"
- Maybe parts of " 7 Contracts"?
- " 10.2 Prompts and Aborts"
- " 10.3 Continuations"
- Although "11 Iterations and Comprehensions" mentions sequences, it doesn't explain what a "sequence" means, particularly, that a sequence may be lazily evaluated.
- "11.5 for/and and for/or"
- "11.6 for/first and for/last". Of course, the four `for` forms can be useful, but to me they seem a bit too special to be in the introduction.
- Parts of "13 Classes and Objects". I had started to read this in the past, but further down (maybe from "Mixins") I really wondered how important these sections were. I think the OOP chapter in the Guide should contain what's needed to start with the GUI system, but I don't know how much more. (By the way, should the Racket Guide discuss the GUI system, maybe basics?)
- "14 Units (Components)". I think someone in the Racket Slack said that units weren't that important anymore because they were mostly superseded by the module system.
- Parts or all of "15 Reflection and Dynamic Evaluation"
- Parts of "16 Macros". I can't be more specific because I know too little about macros. 🙂
- "17 Creating Languages". I understand the motivation to include this chapter since Racket prides itself as the language for language-oriented programming (or something along these lines 😉 ), but I suppose this is a rather advanced concept.
- Maybe at some point the BC stuff in "19 Performance" should be removed.
- I'm unsure about "20 Parallelism". I agree all this should be documented _somewhere_ - but in the Racket Guide?

Again, I'm just wondering about these sections. I can't judge how important these actually are.

> [@soegaard](#):
>
> I think, there new users of the Racket documentation might have a hard time to see what's part of the Reference and what's part of the Guide. It's just too easy to click something while reading the Guide and end up in the Reference without noticing.

Somewhat related: The [Oxford Advanced Learners Dictionary](https://www.oxfordlearnersdictionaries.com) and maybe other online dictionaries mark words of a "key" vocabulary with a symbol. For example, the entry for [person](https://www.oxfordlearnersdictionaries.com/definition/english/person) has such a "key" icon. I don't suggest to add such icons to "key" functions/forms in the Racket Reference and actually don't even have an idea what a good way for such annotations would be without getting visually noisy and distracting. But maybe someone else is more inspired than I am? 😃

---

_[View the full topic](https://racket.discourse.group/t/learning-racket-scheme-how-do-you-get-to-the-practicing-stage/901)._
