优秀软件开发者必须具备的能力 老猫

 选择从事软件开发,就选择了与挑战为伍。时下这个年代的软件开发已经不再是上个世纪的软件开发了,那时候基本上你选择一种开发语言和一个开发环境,就可以吃饱饭,而且还可以吃得很好。然而在软件行业发展到今天,我们有无数种开发语言,有无数种开发理念,有无数个框架,这些东西为软件开发的各个领域带来了便利,这是积极的一方面。但是也有消极的一方法,往往在众多的选择面前,会让你手足无措。

    如今,单单靠使用一种编程语言,即便你炉火纯青、登峰造极,也算不上是一个优秀的软件开发者。那么到底怎样才可以在日新月异的软件开发技术面前,可以立于不败之地,做一个软件开发的常青树呢?

1、至少掌握两种开发语言
    毕竟软件开发还是要靠开发语言的,这是立足之本。那么为什么至少要掌握两种以上呢,因为每种开发语言都具备它的优势和不足,并且都有自己的一套理念。掌握多种语言的目的,一是为了综合各家之长处,二是要融汇贯通。如果这两种语言不是一个派系的语言那就更好了(如C++和Java)。

2、至少掌握两种程序设计思想
    时下是面向对象设计思想的天下,很多人认为凡事都面向对象那就万事大吉了。程序设计思想就如同文化历史一般,几千年的历史就是在改朝换代的模式中不断前进的。程序的设计思想也同样是百花齐放,只不过当前是面向对象比较主流而已。要知道,即便是面向对象占绝对主流的今天,很多软件也并不是采用这种思想来开发的,比如Windows本身。任何一种设计理念最终有一天都将成为过去和历史,我们只要通过两种以上的设计思想的掌握,达到掌握了软件设计的本质,那才可以永垂不朽^_^。

3、至少掌握两个领域专长的知识
    软件本身并不能创造价值,它需要为别的领域服务才可以体现其价值。我预期在将来,领域软件才是真正的高回报软件。作为一个优秀的软件开发者,不应该依赖于需求分析人员对特定领域的分析,不应该依赖于市场分析人员对特定市场的分析。而要培养自己的领域专长,这样才不会让自己沦为写代码的机器。一个只会写代码的程序员当然不会永远被重视,但一个有思维有活力有领域专长和市场洞察力的开发者,那就大大不同了。

4、至少懂得跟两类人进行沟通
    人是社会人,所以离不开社会,离不开沟通。软件开发又是多人合作的行当,单枪匹马总会显得势单力薄,难成大事。因此软件开发中最重要的技能之一就是能够与其他开发者一起高效工作——程序员,测试员,架构师等等。另外还必须跟软件的受众进行充分的沟通——客户,用户,老板等等。如果你能够很好地处理这些关系,那么成功的大路也就离你不远了。

5、要博客、写文章、与人交流
    有谁能够记住每件事?我不能,所以我把它们记下来。当需要的时候,可以回头翻阅参考。除此之外,可以借此从读者那里获得反馈,让我对同样的问题收获更多的解决方法。事实上,我已经获得了许多与我工作有关的反馈,虽然有好有坏,但我会一一验证,这个过程也让我受益匪浅。

    其实还有很多很多,比如:要保持自我学习和完善的习惯、停止无休止的抱怨、等等......在此就不逐一罗列了。最后,请记住不要永远只做个程序员。一旦自我满足并觉得自己是个优秀的程序员,就得重新规划你自己,扩展兴趣。搞开发只是这个过程的一部分,了解用户和商业,那才是真正的艺术,每个人应当以此为目标并努力掌握它。

原文地址:https://www.cnblogs.com/oldcat/p/1723110.html