Deliberate Practices for programmers

February 4, 2019

Per Dayra Chiu recommendation , last year I read the book Peak: Secrets from the New Science of Expertise by by K. Anders Ericsson & Robert Pool. I didn’t imagine how much gold I would find in that book. the topic that surprised the most was: Deliberate practices

First, what is deliberate practice?

Is a special type of practice that is purposeful and systematic. It is highly demanding mentally so it requires high levels of focus and concentration. According to psychologist Anders Ericsson deliberate practice is characterized by the following traits

  • Deliberate practice develops skills that other people have already figured out how to do and for which effective training techniques have been established.
  • Deliberate practice takes place outside one’s comfort zone.
  • Deliberate practice involves well-defined, specific goals and often involves improving some aspect of the target performance; it is not aimed at some vague overall improvement.
  • Deliberate practice is deliberate, that is, it requires a person’s full attention and conscious actions.
  • Deliberate practice both produces and depends on effective mental representations. They show the right way to do something and allow one to notice when doing something wrong and to correct it.
  • Deliberate practice nearly always involves building or modifying previously acquired skills by focusing on particular aspects of those skills and working to improve them specifically; over time this step-by-step improvement will eventually lead to expert performance.

What are the skills a programmer could improve with deliberated practices?

This question is kind of silly, because any skill can be improved with a well designed deliberate practice Where are some deliberate practice examples for some skills that any programmer need

  • Speaking: Try stopping people on the street and keeping them entertained for as long as possible, using body gestures, excited speaking, etc. Time yourself Typing: Slowly ratcheting up the WPM you have to write at, and then figuring out what’s holding you back as you reach plateaus
  • Writing: Break up someone else’s writing and try to reproduce it on your own, such as by trying to recreate their structure, word choice, or other elements.
  • learning a new programming language: Use Derek Sivers’s method of learning more programming functions by quizzing yourself on them using a spaced repetition system.
  • solving challenges: Challenge yourself to write solutions in multiple ways, forbidding yourself from using the same functions you used in the previous methods.
  • reading code: right after reading the code of a project, write down all the important parts you remember and how they relate to each other

Do you want to know something?→Click!