程序员应该具备的能力

好的程序员我觉得需要具备以下五方面的能力:
1、组织代码的能力  。有能力将代码组织得结构良好没有坏味道(参考《重构》一书)、模块内高内聚、模块间低耦合。
2、操作数据结构的能力。实际应用开发一般不要求ACM题做得多好多快,但要能熟练掌握常用数据结构和算法。很多人说使用类库就好了,很多时候确实如此,但如果连名字都不知道怎么找到类库呢?数据结构的原理都不知道怎么对比评判以做出选择呢?而且如果连个二分搜索二路归并都写不出来的话还是说不过去吧。
3、逻辑思维能力。有个笑话可以领会下精神:http://www.kuqin.com/algorithm/20111230/316933.html。逻辑严密的程序员,写出来的代码缺陷少,而且修改原有代码也不容易引发新的问题。开发中调试Bug往往很耗时的,Bug少对于项目进度有很大帮助。而且逻辑严密的开发,很多时候Bug都不需要调试,看看日志想一想就明白了。
4、熟练使用API和IDE的能力。比如熟悉windows api,熟悉eclipse、xcode等等。这对于快速把事做好是有帮助的。比较大的公司招聘人员的时候对这个不会太看重。但小公司会着重考核这个,因为想要人一来就能干活。我觉得这点难度不大,如果前三点都做到了,没理由这点不追求做好。
5、 领域相关能力。在某个领域积累的经验。比如某人一直做搜索,跳槽继续做搜索,肯定比以前做视频会议的人要得心应手。一般来说如果以前的项目经验和职位匹配度高,可以获得较好的薪酬。所以找一个比较有“钱”途的领域然后一直做下去,也是不错的。但这个能力有负面的一面:很多人被绑死在某个领域甚至是某家公司,离开那个平台就一无是处。
ps:程序员如果想提高综合能力,可以参考程序员能力矩阵:http://static.icybear.net/[CN]Programmer competency matrix.htm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值