我认为的software developer所应具备的: from jamesxu
发表一下自己的观点:
首先,软件工程是理的,所以理科的基础绝对是非常重要的。这也是为什么我一直强调数学/逻辑基础一定要扎实。(具体的比如抽象思维,理解/分析能力)
如果符合以上条件,你就符合了具备一个SDE所需要的能力。
但是这是不够的,如果要成为一个出色的SDE,而不是一个programing labor的话,你需要的是创造力。
有些人认为写code久了,就是一个熟练活,这我是非常反对的。一个好的程序员,如果发现他需要重复的做同一件事情,他就会用他的创造力来减少重复劳动。这也是为什么好的程序可以有大量的code或者pattern被reuse。很多时候debug也是需要程序员发挥想象力的。一个很复杂的bug出现,出色的程序员往往会提出一些假设,一步一步的排除自己的假设,isolate problem,最终确定问题并把他解决。另一方面,一个business requirment 出现,如果设计出有效的系统来解决business/technical chanllenging,这些都需要creativity。
具备了以上的条件,我觉得你就具备了一个出色的SDE所需要的能力。
但是这还是不够的,如果你把SDE作为一个career来发展,有一个最关键的因素:passion(激情)
在software develope当中,很多问题都不是一下能解决的。往往要耗费大量的时间进行分析,验证。有时候会让你觉得很枯燥很frustrated。一个充满激情的程序员就不太会觉得枯燥,而且他会很enjoy当问题解决以后的那种成就感。没有passion的,很可能就会放弃了。
所以,我认为,扎实的理科基础+创造力+对coding的激情 是做SDE应该具备
乱弹
2009-05-09 09:09:42说得很好。 理科基础这里是用算法来强调, 创造力和激情这些却不容易考察。