程序员应具备的素质

    学习编程已经有10个年头了,在这10年里,我做个不少软件项目,有大有小,写过基于单片机的裸奔式的嵌入式软件,写过基于os(linux、rtems、linux)的嵌入式软件,做过windows驱动开发,开发个windows应用软件,这一路走来,发现在国内程序员并不受尊重,程序员往往寿命很短,不到30岁就的转行,大家一致认为程序员是it民工,再来看看国外的程序员40岁都能活跃在编程一线,是大家羡慕的朝阳行业,为什么国内国外程序员会有如此天壤之别呢?说白了国内的大多程序员生产力不够,没有创造出作为一名程序员应有的价值,只能说是一个不及格的程序员,用一句话概括:你说他不是程序员吧,但他还真有点像,你说他是吧,但又过份抬举他了。
    在这个行业这么些年,我听过程序员说的最多的话,就是写代码就是copy,很无聊,很枯燥,没有一点技术含量等等,在大家眼里,程序员就是加班的代名词,就是加班的命,而作为程序员大家族的我们有没有想过,为什么我们会如此苦逼,是真的工作忙的做不完吗,还是一个工作方法的问题,大家有没有想过?
    我觉得一名合格的程序员应具备如下素质:
    1.优良的编程习惯
    写代码就像写文章,代码的排版布局,就如文章的字体及布局;代码的结构设计,就如同文章的语言组织;代码的简单精炼,就如同语言的言简意赅。试想如果代码排版布局不合理,就会使本身就很难理解的代码更是雪上加霜,没有人会愿意去阅读你的代码,恐怕连你自己都不想去看,这样势必会影响工作效率,代码的结构设计一定要合理,好的结构设计会让你事半功倍,有了好的结构设计,你还要不断的雕琢你的代码,力求简单精炼高效,当然可读性还是要考虑的。
    2.勤于思考,不断学习
    写代码要善于思考,同一个问题可能有多种解法,时刻想着还有没有更简单的方法可用,不要得过且过,别人怎么做你就这么做,这样很容易会有写代码就是copy的感觉,一个问题可能能够借助已实现的问题得到解决,并不需要都重头来做,如果你没有复用的想法,很可能你又会有另一种感觉,写代码真累,事情怎么总是做不完啊。如果你在编程中做到这两点,你应该不会感觉编程是一种体力活,你会发现编程也是很有意思的。另外,做为一名程序员你要知道的多西很多,OS、编程语言、数据结构、编译原理等基础性的知识,只有基础打好了,才来盖好软件大楼,光这些就能让你学一生,能学到多少,就看你的造化和汗水了。
    3.不畏困难,敢于攻坚克难
    程序员应该敢于挑战困难,不要一碰到难一点的问题,就说搞不定,你要有我搞不定的东西别人肯定搞不定,别人搞不定的我照样能搞定的勇气。

你可能感兴趣的:(程序员应具备的素质)