你知道有能力胜任和精通之间的区别是什么吗?
这听起来像一个很难回答的问题,因为这两者似乎意味着同样的事情。但它们之间的微妙区别至关重要。
有能力胜任是指有足够的经验和知识来完成各项工作;精通涉及知道为什么你要用某种方式来做事情,以及如何融入到大局中。换句话说,精通型从业者总是有能力胜任,但反之可能不成立。
《Dreyfus Model of Skill Acquisition》非常详细地涵盖了这个主题。虽然标题听起来有点学术化,但是论文非常平易近人。
我建议阅读原始资源材料以便于能更好地纵观从初学者到专家的历程。在这篇文章中,我将重点放在大多数软件开发人员都会碰到的瓶颈:跨越从胜任到精通的沟壑。
因此,首先,我们要知道的是,这里胜任的工作定义是“我知道该怎么做”——虽然过于简化,但非常贴合我们的需要。公平地说,不管你工作在什么样的职业,知道怎么做是非常重要的。如果你是一个程序员,学习该怎么做是你工作的重要部分:
• 我需要知道如何使用版本控制
• 我需要知道如何使用一种一致的编码风格
• 我需要知道如何建立一个持续集成服务器
• 我需要知道如何查询数据库
• 我需要知道如何实现响应式布局
• 我需要知道如何使用服务API
不要误会我的意思:知道怎么做,是非常重要的。不要停止去学习怎么做,否则,你很快就会发现自己会失去这份工作。
但是,处于两者之间的程序员往往会被卡住(很多因此而裹足不前),而他们被卡住的地方被认为是初学者和专家之间的差别,可以用来衡量你知道多少东西。这里只有一半是正确的,并且它强调的是不那么重要了的一半。
这正是精通的来源。并且精通的实质是“为什么你要用某种方式做事”—— 是单独理解问题的每个部件与理解部分是如何融入整体之间的差异。
胜任和精通之间的差距可以解释为什么如此多的人想要攀登高层次的编程思想,例如设计模式。
小编推荐阅读