How to sharpen my programming skill and Deliberate practice

Some like writting.

  • Take a piece of really well written code in area that you want to improve your skills at
  • Read and understand the code thoroughly
  • takes some notes on how it works, its general structure
  • Let some time pass
  • Re-write the code from scratch using only your notes
  • Compare to the original and see where your code is lacking and possibly where your code is better
    Repeat this again and again re-writing code from scratch without examining previous results until completion. Vary the rewrites by using a different language or framework or incorporating a different technique. For example develop with test driven development and then model driven deployment and then do it all in notepad then with an ORM and then in a functional language. Every time compare back to other versions to note how these decisions and your accumulated learning have affected the end product.

    This idea is adapted from the book "Talent is overrated" but is specifically adapted from the practice of Benjamin Franklin.

    To improve his writing skills Franklin used a book of essays he admired and rewrote them over and over again comparing back to the original and modifying the form as he went.

    He started by taking one of the essays and jotting down a note for each sentence indicating the sentiment it contained. He then put his notes aside for a few days and then by using his notes recreated the essay in his own words. Then he compared his version to the original and made corrections. Essay by essay he could see his approach improving his skills and in some small ways he felt his expression might even be better than the original. These glimmers of erudition gave him hope.

    Despite the progress Ben felt he needed more. He wanted to expand his vocabulary. What better way then than to rewrite an essay's prose in verse. Again he would start with notes expressing the sentiment of each sentence but this time he wrote his version in verse. It forced him to add variety and creativity. After a few days he'd forget the original prose and so would then take his verse and use it to rewrite the essay. Again he made a comparison, made corrections and learned by doing.

你可能感兴趣的:(programming)