• 软件工程师基本素质(转)



    我觉得对一个Developer来说最重要的能力是学习和总结的能力,新的概念和技术层出不穷,没有好的学习能力意味着终将落伍。另一方面,虽然软件的领域很多,发展又很快,但是基础的一些东西还是十几二十年都没有很大变化的,这就需要Developer在学习的过程中不断地进行总结和比较,找到变化中那些不变的东西。比方说,一个Java程序员转成.net程序员我认为有一个礼拜时间就足够了,如果做不到是因为他对Java的学习本就不深入

      第二个重要能力是设计能力。对我们公司的Developer来说,语言和系统平台了解到一定程度就可以了,没有必要过度深入下去。受限于精力,人很难做到即深且广,我认为广度比深度更加重要,我们是个开发“普通商用软件”的公司,即便Developer懂得模板元编程和Unix内核这种东东,有多少机会能用到呢?所以语言和系统学到一定程度就可以开始学习设计了。设计入手先看些 OO,UML 方面的书辑,逐渐领会设计模式和重构的价值(这个需要一定的经验,没有足够经验打底又急于运用设计模式的程序我看过很多,大部分都看着很别扭),设计的本质就是保持简单化--现在的实现要简单,应对将来的变化也能简单。

      第三个重要能力是软件工程能力,有了好的技术功底和设计知识可以称其为优秀的程序员,可还未必是个好的软件工程师,好的软件工程师必须要懂得软件工程。这方面可以多看看RUP和XP的书辑,不过如果没有切身体会,软工类书籍读起来往往比较空泛。从XP或者PSP入手是个比较好的学习方法,学习这些轻量级的方法然后再根据实际条件应用到平时开发中,进步就会很快了

      我再补充几点:

      1。追求完美的精神,从测试驱动也好,重构也好,在我看来都是将一个软件不断趋于完美的过程。追求完美,是最好的驱动力

      2。扎实的文档能力,在我看到文档的能力可以体现出一个程序员之后发展空间的大小。文档的过程就是总结的过程,也是规划的过程。

      3。至少在开发的某一方面基础很扎实,的确技术发展很快,要全才很困难。但是人有个能力叫做举一反三,或者触类旁通。

  • 相关阅读:
    共享一个从字符串转 Lambda 表达式的类(2)
    多个文件上传控件
    使用 SQL的 for xml path来进行字符串拼接
    数据结构之双向链表
    我的收藏颜色代码表
    C++中的字节对齐分析
    收藏sina播放器嵌入代码
    弃用数据库自增ID,曝光一下我自己用到的解决方法之终结篇
    google工作原理图
    easyicon一个非常好用的找图标的网站
  • 原文地址:https://www.cnblogs.com/amadeuslee/p/3744642.html
Copyright © 2020-2023  润新知