1. 聚能聊>
  2. 话题详情

“有能力”的程序员和“熟练”的程序员谁更牛?

timg_jpeg

如果想成为一名程序员,只需要学习一门语言就算踏入了程序员的行列,被称为程序员。但如果要成为一名优秀的程序员,就需要不断地学习掌握并将之应用到工作中。 周而复始,而在这个过程中有一部分人说程序员,写代码能力最重要,也有一部分人说知道写什么才重要,这就要提到两个词“能力”和“熟练”

我们将“能力”定义为“我知道如何做事”。公平地说,不管你从事何种职业,知道如何做事都是相当重要的。如果你是个程序员,那么你的工作中的很大一部分是学习如何做事。知道如何做事虽然很重要,但是不要只为“知道如何做事”努力,否则你会很快发现自己失业了。

要知道在通向专家道路上,处于中间位置的程序员,都在某个层次止步不前(许多人甚至一辈子都停留在此处):这些上流不属于上流,下流不属于下流的程序员会认为可以用所做事情的多少来区别新手和专家。这就引出了“熟练”的含义。“熟练”的本质是关于“为什么采用这种方式做事情”——这是理解一个难题的各个部分与理解各个部分如何构成一个整体的难题的不同之处。

比如,“有能力”和“熟练“之间的差距可以解释为什么有许多人都在高层次的编程思想之上挣扎,如设计模式。

一个有能力的程序员能够熟读备忘录模式,并且理解如何实现它。他们甚至能够识别出备忘录模式适用于何种应用场景(可能在GUI里实现一个undo操作)。但是由于他们不知道更大范围的框架性的东西,他们可能还是会错误地应用这种设计模式。

相比之下,一个熟练的程序员能够知道备忘录模式什么时候会失效(例如,如果正在拷贝大量数据,或生成大量副本时)。他们能够考虑一些替代方案与备忘录模式进行对比,从而考虑备忘录模式是否是最优的实现方案。他们也理解备忘录模式背后的基本设计思想,从而创造出一种能够更好的适应特定应用场景的定制化解决方案。

更重要的是,一个熟练的程序员总是能够识别出讨论设计模式的合适时机。就像向一个新手解释代码库的概念,一个熟练的开发者可能会重点说明代码做了什么,而不是抛出一堆设计模式的名字。

所以作为程序员,要一直探究不熟悉、不同角度、不精通的技术。只有这样你才能在“有能力”的基础上更上一层,才能脱离仅仅是“知道某些事情”的程度 。

1、“熟练”程序员和“有能力”程序员谁更牛?why?
2、怎么理解所谓的”熟练“和”有能力“ ?
3、程序员能力要到达什么程度才算得上优秀?
4、如果是你的技术水平停留在留中间位置很难提升你会怎么办?

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    虾米VIP季卡 x 4

  • 奖品二

    星座淘公仔 x 3

  • 奖品三

    云栖定制电脑包 x 2

22个回答

0

sqtnbyy 复制链接去分享

1、“熟练”程序员和“有能力”程序员谁更牛?why?
不明白,不知道,这两个词语很陌生。

2、怎么理解所谓的”熟练“和”有能力“ ?
莫名奇妙

3、程序员能力要到达什么程度才算得上优秀?
可以参考吴军博士的工程师的五个等级。

4、如果是你的技术水平停留在留中间位置很难提升你会怎么办?
一是学习,二是认命。

0

午夜游民 复制链接去分享

都牛

2