Skip to content

A library of Reps contributed by those who have done them

License

Notifications You must be signed in to change notification settings

flipstone/rep-library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Library of Reps

Ability equals knowledge plus 10,000 times. - Shinichi Suzuki

This repo provides a library of tiny coding exercises that you can do some of every day to build your muscle memory. Incorporating more syntax and library knowledge into your muscle memory improves your productivity and frees up higher-level cognitive processing to focus on the larger, more complicated challenges presented to you every day.

Warning: Work in Progress

This library is still in its infancy. So far we've collected the reps we're doing ourselves and tried to organize them in a useful way. We're continuing to add more Reps regularly as we build new reps for our own practice. As such, the organization of the material in this repo is rather in flux at the moment. We appreciate your patience as the library grows, and would love your feedback on how it could made more useful to you! Don't hesitate to create a Github Issue for any questions or recommendations you might have.

What is a Rep?

A "Rep" is a single tiny coding excerise that can be completed in a matter of seconds to minutes. It is usually as simple as defining a data type or implementing a single simple function.

In this library, Reps are grouped into Sets of Reps that are related conceptually. Each Set has a comment at the top of the file to remind you what the Reps are in that Set. You can copy that comment to get started. The rest of the file shows a sample set of answers for the Reps. You can take a look at these to make sure that your answers hit the important points of the Reps the first couple of times that you do time.

Library Organization

This library is organized into Levels of roughly ascending mastery of Haskell concepts. Each level contains up to 10 Sets of reps, which are again ordered. Each Set usually around 5 to 15 reps. We tried to keep these chunks small so that you can always do at least 1 Set of reps per day, even if you only have 15 minutes. The first time you do a given Set, you may need to set aside more time if you want to do it the first time without looking at the answers.

We recommend that you simply start at the beginning and proceed through the Levels. Even if you're already comfortable with Haskell, there's always room to improve your muscle memory. If you find this too tedious to do reps at all, go ahead and skip a few Sets foward until you find something slightly more interesting. You'll always have the opporunity to go back and review old reps in the future.

How do a I do Reps?

The most important aspect of doing Reps is to make a habit of doing it every single day. We recommend keeping a log of how many Reps you do each day to help remind yourself and make it obvious when you miss a day. Keeping a Github repo of the Reps you've done every day along with this log is a great way to be able to look back at your progress. Here are a couple of real, down in the dirt examples:

The amount of time you spend and the number of Reps you get done will depend on your schedule and your current level of development. The more you do, the faster your muscle memory will grow!

Go do it!

To actually do some Reps, find Set1 in Level1 and copy the header comment into your own blank file and start your compiler running so you can get feedback. Then go through the items in the header one by one and implement them. If you get stuck, you can peek back at the answers in the libary for help. Do this every day until you can implement all the Reps in that Set without peeking back. Then keep doing it until you can do them all without going back to the comment at the top to figure out what's next each time.

If you make a mistake, don't just fix it and move on. That will train you brain to make the same mistake next time and fix it afterwards again. Instead go back to some logical point ahead of the mistake and redo that part of the Rep from there, this time without making the mistake. If you really want to make sure the correct way is imprinted on your neurons more deeply than the mistake, keep redoing the section until you can do it 5 times perfectly in a row. Note: you can't unlearn a mistake, you just have to practice the unmistaken way until it is the way your brain chooses by default. Of course, the easiest way to do that is not to learn the mistake in the first place!

Once all the Reps in that Set are under your fingers, add in Set2 from Level1. If you have the time, it's a good idea to keep doing previous Sets. At some point you'll reach a limit of how many Sets you can do in a day and have to retire some old Sets for the time being. That's perfectly ok, even if your limit ends up being just 1 Set at a time.

It may you as little as a week to imprint a given Set on your neurons. It might take longer if it's covering an area of Haskell that you're less comfortable with. However long it takes you is ok. As long as you do it every day, you'll make steady progress.

Don't underestimate the value of old review

It's surprisingly useful to go back to subject matter you already have a handle on and do Reps for it. Promoting an old subject from simply something you understand to something that is stored in your muscles is a great way to improve your productivity.

This can even apply to subject matter you've already done the Reps for in the past. When you change up which Sets your doing, considering resurrecting some retired Sets and re-doing them for a week or two to keep your muscles memory fresh.

If you reach the end of the reps, go back to the beginning! Who knows, you may even encounter some new Sets on your next pass through.

Make your own Reps

You might not find Reps in this library for the subjects you want to cover (yet!). Make your own Reps and do them. Open a pull request and contribute them back to the library for others to do as well!

About

A library of Reps contributed by those who have done them

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published