AIMPAK – ایم پاک

All Inclusive Method Personalized Accessible Knowledge { this domain is for sale — }

Memorizing a programming language the utilization of spaced repetition instrument | Derek Sivers

Spread the love


I’ve been doing this for a 365 days, and it’s essentially the most necessary studying approach I’ve original in 14 years of pc programming.


I’m an intermediate programmer.
I didn’t trip to college for it.
I correct learned by necessity because I started a internet region that correct stored rising and rising, and I couldn’t indulge in adequate cash to rent a programmer, so I picked up a couple of books on PHP, SQL, Linux, and Apache, learned handiest adequate to beget it work, then aged that shrimp knowledge for years.

But later, after I worked along aspect a accurate programmer, I was blown away by his vocabulary!
All of these commands and capabilities correct flowing simply out of his fingers.
We had been the utilization of the identical language, but he had memorized so great of it, that I felt esteem a toddler next to a school professor.
I the truth is desired to ranking that more or much less fluency.

It made me mediate how great I’ve learned then straight forgotten, over the years.
I read books or articles about some necessary characteristic, strive it as soon as, but then I ranking distracted, omit about it, and trip about my traditional come of doing issues.

I desired to deeply memorize the commands and ideas of the language, and now now not omit them, so as that they stop at the forefront of my ideas at any time after I need them.

Spaced Repetition:

Whenever you hear a brand original truth, it’s forgotten somewhat instant except it’s introduced help to the forefront of your ideas time and over again.

That you can additionally enact this haphazardly by immersing yourself in a language, for instance, the put the original phrases you study will be introduced up by likelihood regularly.

But reminiscence study reveals that the accurate and atmosphere fine time for a brand original truth to be remembered is correct prior to you had been about to omit it.

forgetting curve

Divulge even as you study a brand original word in a international language, you’d must observe it over again a shrimp while after hearing it, then a couple of hours, then tomorrow, then in 2 days, then 5 days, then 10 days, Three weeks, 6 weeks, Three months, 8 months, etc.
After some time it’s as soon as quickly completely memorized with a uncommon reminder.

Spaced Repetition Diagram does this for you
, so that it’s probably you’ll additionally correct give it a bunch of information you’d like to indulge in in ideas, then indulge in it quiz you as soon as a day, and it manages the intervals based exclusively mostly to your ideas.
After each and each quiz search knowledge from, even as you say that one used to be easy, it won’t be presented for a really very lengthy time, but even as you had been stumped, then it’ll quiz it over again in a shrimp while, unless you’ve purchased it.

Mosey to apps.ankiweb.fetch and accept Anki
It’s a free, open supply, favorite spaced repetition pc instrument.

As for programming, you ranking the put I’m going with this.

What while that it’s probably you’ll additionally memorize the entirety in regards to the programming language of your different?
Each whine, each and each parameter, each and each feature.
Each solution to hundreds of essentially the most up-tp-date considerations, all exclusively memorized at your fingertips?
Imagine going thru the documentation or a e-book, and completely remembering each and each single sing in it?

Ample of the intro, let’s ranking to the HOW-TO:

First, study!

Flash playing cards are for remembering what you’ve learned.

Sooner than you ranking a flash card for one thing, you’d like to the truth is study and perceive it.
Affect the flash card after you’ve the truth is understood.

(That’s the reason it’s now now not that essential to computer screen at somebody else’s deck.
These are correct reminders.)

Convert Files into Tiny Facts:

You’re going to be making a bunch of flash playing cards.
Quiz on the front.
Resolution on the help.

Whenever you had been correct the utilization of this to memorize international language vocabulary, then the formatting would possibly be easy.
The front would indulge in a word or phrase, and the help would indulge in its translation, and vice-versa.

example chinese flash card search knowledge from

example chinese flash card solution

example chinese flash card search knowledge from

example chinese flash card solution

But even as you’re studying the rest, you’re going to indulge in to position a shrimp bit craft and creativity into making your have flash playing cards.

It takes some effort to read thru paragraphs of stuff you’d like to indulge in in ideas, decide the principal information, shatter them down into their smallest manufacture, and flip them into questions for quizzing your future self.

Listed below are my greatest time-saving guidelines from a 365 days of doing this:

Flip prose into code

Whenever you’re reading a tutorial about programming, and stumble upon a paragraph describing a characteristic.

“The add (+) operator… if handiest one operand is a string, the assorted operand is transformed to a string and the tip consequence’s the concatenation of the two strings.”

You strive it out yourself, play around with it, and perceive it.
So that you just beget a flashcard to indulge in in ideas it.

  var a = 5 + '5';
  // what is a?
  'Fifty five'
  If either aspect of + is a string, the assorted is
  transformed to a string prior to including esteem strings.

Strive and trick your future self

Once quickly you study a “gotcha” — a normal mistake or shocking characteristic.

“If the original Array constructor is handed a single amount, it creates an empty Array with a size of that quantity. Any assorted combination of arguments creates an Array of these arguments.”

You strive it out yourself, play around with it, and perceive it.
Then beget two flash playing cards to favor a watch at to trick your future self.

  var a = original Array('5');
  // what is a?
  An array with one item, the string '5': ['5'];

… and then a nearly-identical search knowledge from …

  var a = original Array(5);
  // what is a?
  An empty array with a size of 5.

When the program quizzes you, this would poke the playing cards, so as that optimistically your examples will deliberately catch you suddenly.

That you can additionally additionally strive to trick yourself with more hard examples, to help these gotchas new to your ideas:

  var a = [20, 10, 5, 1];
  // what is a.form()?
  [1, 10, 20, 5]
  // form treats all values as strings

Don’t omit to quiz yourself on the solution, too:

  var a = [20, 10, 5, 1];
  // form these in numeric dispute
  feature study(v1, v2) { return(v1 — v2); }

Keep the chilly tricks

Whenever you accumulate a groovy trick you’d like to indulge in in ideas, flip it into the answer of a itsy-bitsy sing.

  var albums = [
    {name: 'Beatles', title: 'White Album', price: 15},
    {name: 'Zeppelin', title: 'II', price: 7}];
  // beget this work:
  feature by(propName) {
    return feature(obj1, obj2) {
      v1 = obj1[propName];
      v2 = obj2[propName];
      if (v1  v2) { return 1; }
      else { return Zero; }

Affect the answer require more than one solutions

If there’s more than one come of doing one thing, and you’d like to indulge in in ideas both, beget your future self come up with more than one solution, so that it’s probably you’ll additionally help both decisions in ideas.

  s = 'string esteem this'
  # In Ruby, original two ways to flip it into 'String Indulge in This'
  s.split.procedure(&:capitalize).be part of(' ')
  s.gsub(/bS/) {|x| x.upcase}

Flip immense ideas into succinct examples

Divulge you correct spent 20 minutes studying one thing that’s more conceptual, and now now not as great about remembering direct capabilities.
Once quickly all you’re going to like is one succinct example to remind yourself of the concept that.

  # What's going to $1, $2, $Three, $4 be?
  $1 = 'abcd'
  $2 = 'b'
  $Three = 'cd'
  $4 = 'c'

But one more example:

  class C
  class D 
  class D

Read “20 Tips of Formulating Files” by Piotr Wozniak

The appropriate advice on these issues is an editorial called “20 Tips of Formulating Files” by Piotr Wozniak at
So please read that one.

Run Via it Day-to-day

For most atmosphere fine results, flip to your spaced repetition instrument as soon as a day.
Whenever you trip too lengthy without, you’ll screw up the full timings, and indulge in to re-study stuff you're going to indulge in remembered.

That you can additionally indulge in in ideas hundreds of these information in handiest 20 minutes a day.

I correct beget it a morning routine.
Affect a cup of boiling tea.
Design my Anki.
Drink my tea.

It’s fun when quizzing yourself to add a shrimp bit adrenaline, and beget yourself trip as instant as that it's probably you'll additionally.

It’s esteem a mental search the advice of with to the gymnasium.
A shrimp little bit of intense 20 minutes a day is so value it for the quick and lengthy-time duration results.

Add some original playing cards everytime that it's probably you'll additionally, and you’ll be amazed that the entirety you saved stays new to your ideas.


I’ve been doing this for a 365 days, and it’s been a HUGE enhance to my fluency.
I extremely suggest it, as that it's probably you'll additionally command.

Be at liberty to electronic mail me anytime to let me know the scheme it goes for you.

Read more:

The “Janki Means Sophisticated” by Jack Kinsella is a adequate article on equivalent come,and explains it even better than I did right here.

That you can additionally additionally use Anki to study each and each manufacture of issues.

“Augmenting Prolonged-time duration Memory” by Michael Nielsen is an fabulous article in regards to the utilization of Anki for studying the rest.

Read the interview with Piotr Wozniak at for a legend about a man taking this to the restrict.

news image
Read More

Spread the love

Leave a Comment

Your email address will not be published. Required fields are marked *