程序员应具备的素质(国内的大多程序员生产力不够,所以只能早早转行)

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

http://blog.csdn.net/rabinsong/article/details/8474348

时间: 2024-10-13 16:33:31

程序员应具备的素质(国内的大多程序员生产力不够,所以只能早早转行)的相关文章

书摘-优秀的软件测试员应具备的素质

摘自<软件测试> 在电影<星际迷航2-可汗的愤怒>中,Spock说过:“在宇宙的历史中,毁灭总是比创建容易.”从表面看起来,软件测试员的工作似乎比程序员要容易一些,分析代码并寻找软件缺陷显然比从头编写代码容易.令人惊奇的是,事实并非如此.要从本书中学到井井有条的软件测试所付出的努力和投入不亚于编写程序,两者所需的技术极为相似.尽管软件测试员不必成为一个经验丰富的程序员,但是拥有编程知识会很有好处. 现在,大多数成熟的公司都把软件测试员视为高级技术工程职位.他们意识到在项目组中配备经

优秀程序员应该具备哪些素质?

优秀程序员应该具备哪些素质? 你可以不聪明,但是你绝对不能不用心. --<女人公敌> 程序员求职是本是一件只要"郎有情女有意",一拍即合的事情,可是企业与求职者却总是看不对眼.聊不到一块去,进而导致IT市场上总是会出现结构性失衡的现象.一方面,社会每年培养大量的计算机相关专业毕业生,他们却找不到好的工作,但另一方面,企业却招不到好的程序员.据不完全统计,大学生里面大约有23%的人是学习计算机.通信.电子相关专业的,都可以从事程序员相关工作,也就是说全国每年大约有160 万准

程序员应具备的7大技能

1.  对技术的热忱 热情是一种无形的东西,当你所列清单上的所有事情都做不好的时候,它常常能帮你熬过这段时间.对IT的强烈热爱,也会让你的其他大部分特点都遥遥领 先,这是纯粹的智商和商业头脑所无法比拟的.当你在IT行业工作了多年之后,热情也会帮你在早上起床之后期待今天的工作.没有热情,IT领域将会成为一个 空有外壳没有灵魂的地方. 2.  懂得数据分析 数据是IT企业和它所服务的企业的命脉.对公司数据有深入的了解,可以对软件应用程序与数据的衔接提供重要的见解.此外,从商业的角度看,如果你对 一个

随便扯扯,程序员应该具备哪些素质

趁着这几天无事,好好总结一下从事软件开发以来的一些想法,这篇blog尝试从我自身的一些经历来谈谈程序员应该具备哪些素质.如有不足之处,还请不吝赐教! 下面,我将列出并展开所有我认为程序员必须具备的素质. 基础知识 你也许是像我一样的自学者,没有数电/模电,编译原理,操作系统原理,网络与数据库等方面的知识,但是对于这些你应该尝试去了解.理解.当初跨专业考研之时学习的操作系统/网络/数据结构/数据库的知识于我现在的工作仍然有益,我有遇到过一些能力很强的人,他们做解决方案很强,但是debug能力说实话

一个优秀的程序员应该具备哪些素质?

俗话说“师父领进门,修行靠个人”,随着互联网的高速发展,越来越多的人选择了IT行业,加入到了程序员的行列.那么,对于一个刚入行的小白来讲,如何成为一个优秀的程序员呢?一个优秀的程序员需要哪些素质呢? 在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群: 954607083,领取学习资料 扎实的技术 熟练开发工具 做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利

一个优秀的c++程序员应该具备的素质

1.把C++当成一门新的语言学习(和C没啥关系!真的.): 2.看<Thinking In C++>,不要看<C++变成死相>: 3.看<The C++ Programming Language>和<Inside The C++ Object Model>,不要因为他们很难而我们自己是初学者所以就不看: 4.不要被VC.BCB.BC.MC.TC等词汇所迷惑--他们都是集成开发环境,而我们要学的是一门语言: 5.不要放过任何一个看上去很简单的小编程问题--他们

Java程序员应具备的技能

1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选 项,命令至少需要熟悉:appletviewer. HtmlConverter.jar. java.javac.javadoc.javap.javaw.native2ascii.serialver,如果这些命令你没有全部使用过,那么你 对java实际上还很不了解. 3.工具:必须至少熟练使用一种IDE的开发工具,例如Ecl

优秀PHP程序员应具备的5大能力

MySQL能力 在开发上的应用基于几个能力体现: (1)了解:知道用PHP连接数据库;懂得写一些简单的SQL;建一些简单的索引;懂得用工具简单操作一下数据库(增删改库表结构数据等等). (2)熟悉:懂得在开发应用上设计数据库,建立一些有效的索引,用explain分析SQL性能,压力测试等等. (3)很熟悉:深入了解数据库索引.存储引擎原理以及运行机制,能有效地构建高性能可扩展的数据库结构/架构,有效地优化数据库性能配置并加以调试,分析数据库运行状态. (4)精通:简单地说具备以上所有能力的同时,

php程序员应具备的7种能力

一,php能力 1,了解阶段,您能写一些代码,因为那是在手册和google的帮助下,您才完成的.变量乱定义,N多函数不知道,做起事来很慢,想到什么写什么,代码写的比较乱,后期维护很麻烦. 2,熟悉阶段,经常查函数,手册估计也看过一,二遍了,常用的函数基本上您都了解了.后 期维护给您带来了不少痛苦,您开始发现自己的代码有很多不足,开始思考如果改进自己的代码,如何站在项目的角度来规划自己的代码,而不是想到什么写什么, 知道如何来减少冗余代码,使您的代码清晰,知道什么样的代码写出来让人看着舒服,基本的