正值换工作面试高峰时节,偶尔回忆起自己的经历,还有不少感触。我自己算不算好程序员,还不敢断言,但对于什么是好程序员,倒积累了一定的见解,这里就分享一下。
很多人将激情和热爱放在首位,其实做任何一行,也是如此,打球要有激情,当科学家要有热情。
我个人比较认可知难行易,所以喜欢说意识而不是素质。尤其我们这一行,思想决定一切。
第一位的,当然是技术意识。
每个人情况不同,开发领域有天壤之别,适合什么样的技术自然也不同。我们用的技术日新月异,必须不断学习才能保证不被时代抛弃,让自己的职业生涯终结在三十岁。
一般的程序员,接受新技术,比如客户提出我们下个版本要采用MVC,才开始突击。
优秀的程序员,追求新技术,并用于实践,不断完善自己,并辐射团队。
顶尖的程序员,创造新技术,引领IT时代。
第二位,就是项目意识。
或者也可以说是流程意识。项目是软件开发的基本单位,无论项目大或小,无论职业或业余,只要投入精力去做,就应该有项目意识。为什么做(需求),怎么做(设计);采用什么技术,复用哪些代码;测试、文档采用什么形式,怎么发布。最重要的是,要明白自己付出了多少,能得到或学到什么。
其实我自己还比较欠缺这方面的意识,可我知道这非常重要,我计划做一个业余的个人项目,参加一个开源项目,希望不会太晚。
第三位是用户意识。
都知道,我们写的软件是给用户的,用户满意度是检验我们工作至高无上的标准。用户需求不明确时,我们就尽可能多提供一些选择方案,当某个需求可能带来性能问题,我们应该及时跟用户沟通,让用户出取舍。此外,更不用说友好的界面,每个词都应该斟酌。
某个界面响应慢了一点,安装包的体积大了一点,内存占得多了一点,就会感到不舒服,好像用户的时间、服务器是我们自己的一样。这其实也是精益求精,追求极致的意识。 一款软件没有做完的时候,当我们开发某一个版本中,还不用等上线,更不待用户反馈,脑海中就有了下次改进的思路。
当然,让用户满意,并不是对用户需求来者不拒。因为,有个事实很少有人注意,其实我们本身也是用户。软件不只是给人用,还是给人做的,只有将“用”户的需求,和我们的需求融合,才是项目真正的需求。
第四位是团队意识。
可能很多讲程序员素质的文章将团队意识放在很靠前的位置,其实我觉得这个意识虽然很重要,但并不是造成程序员个体差距的重要因素,甚至不太想写这条。我觉得,我们开发软件,做技术出身,虽然可能多偏内向,但除了极个别惊世骇俗的高手,都是普通的,不难相处的人,合作并没有问题。在团队中的角色和地位只取决于你的技术水平,这是抹煞不了的。
所以我在这里讲的团队意识,有所不同。我指的是追求,而不是建设和维护。从这个意义上,也许可以说是职业意识。程序员,应该追求在高水平的团队中,和高水平的其他优秀程序员合作,这样你自己也会更加优秀。
程序员的意识是很难培养的,你可以使团队氛围很融洽,但你不可能用你的技术水平辐射带动大多数人。如果你想建设一个优秀的团队,那就应该找一些至少和你一样优秀,也就是具备前三条意识的同事。
最后,希望大家所在的团队,水平都越来越高,工作越来舒爽吧。
全部0条评论
快来发表一下你的评论吧 !