TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What is deliberate practice for programmers?

6 pointsby cpoileabout 6 years ago
This has been asked before. Many people say &quot;work on projects&quot; or &quot;read lots of code.&quot; But that&#x27;s not what deliberate practice is.<p>According to Eriksson and Pool (2016, &quot;Peak&quot;), deliberate practice is different from what they call &quot;purposeful practice&quot; (trying very hard to push yourself past your limits and improve). In contrast, deliberate practice is both purposeful and &#x2F;informed&#x2F;. &quot;In particular, deliberate practice is informed and guided by the best performers&#x27; accomplishments and by an understanding of what these expert performers do to excel.&quot; (p. 98)<p>Is there anything that satisfies these criteria? (from p. 99-100):<p>1. Deliberate practice develop skills that other people have already figured out how to do and for which effective training techniques have been established.<p>2. Deliberate practice requires a student to constantly try things that are just beyond his or her current abilities. It demands near maximal effort, which is generally &#x2F;not enjoyable&#x2F;.<p>3. 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.<p>4. Deliberate practice involves immediate feedback and modification of efforts in response to that feedback.<p>5. Deliberate practice nearly always involves building or modifying previously acquired skills by focusing on particular aspects of those skills and working to improve some &#x2F;specifically&#x2F;. Because of the way the new skills are built on top of existing skills, it is important for teachers to provide beginners with the correct fundamental skills in order to minimize the chances that the student will have to relearn those fundamental skills later when at a more advanced level.<p>The best violinists spend 3-6 hours in deliberate practice per day. They are guided by teachers---teachers who know what the best violinists need to know, and the steps to get there.<p>What is deliberate practice for programmers?

3 comments

iraldirabout 6 years ago
I don&#x27;t think there is such a thing for programming because by its very nature, programming is against repetition. You&#x27;ll repeat a piano concert over and over until its perfect. Even a painter will train on classical painting, trying to reproduce the skill of masters to make it their own.<p>Programming on the other hand relies on reuse, of your own code as well as the &quot;master&#x27;s&quot;. By the time you learn how to do something perfectly by head with no mistakes whatsoever, it means you missed an opportunity to automate something. Say your job is to create restaurant websites. if you create 10 of them from scratch (improving yourself in that skill), you&#x27;re probably missing the opportunity to reuse some of your work. I think that is quite unique as far as arts &#x2F; jobs go though.
评论 #19694891 未加载
ksajabout 6 years ago
My little contribution to deliberate practice: When I write something to learn a specific function or macro in Lisp, I find several ways to program the same thing, and then compile and rank them against each other.<p>For example, the Fibonacci sequence or factorial using simple iteration, recursion, etc in a few different styles. Then after compiling the function, I look at speed, binary size, execution memory usage, readability of the initial code, etc.<p>The side effect is that I end up learning what techniques work better for a given metric, in the hopes it eventually becomes an instinct.
pooya72about 6 years ago
At least one aspect that seems to fit the definition of deliberate practice that you defined is programming challenges. It&#x27;s about a specific part of programming, namely algorithms, you are constantly pushing yourself based on the difficulty, and you can get feedback from other people who are doing the challenges. One good example is r&#x2F;dailyprogrammer: <a href="https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;dailyprogrammer&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;dailyprogrammer&#x2F;</a>
评论 #19691379 未加载