论文部分内容阅读
摘 要 本文从两方面阐述了软件行业的出路,内外兼修。克服个人的几大缺点,基础的量变,加上突破的方向,引发质的变化。有了这些,假以时日,定能从软件行业中脱颖而出。
关键词 方向 优秀程序员 脱颖而出
中图分类号:F426.672 文献标识码:A
信息行业的快速发展,迅速推动了软件行业的大爆炸,如何从各式各样的软件中脱颖而出成为众多人心中的疑问。想从软件行业中突出,需要从以下两方面发展。
1 个人方面
要成为一个优秀的程序员,个人首先做到以下几个不要:
1.1 不要情绪化的思维
如果开始就使用不同颜色的眼光来看待这个世界的话,那么作为一个程序员会是很糟糕的。情绪化的思维或态度很有可能会把自己变成一个怪物。因为,情绪化通常都是魔鬼,会使人做出错误的判断和决定,错误的判断和决定直接决定了一个人的人生。
1.2 不要怀疑别人
有的程序员曾经这样使用 STL类:map,当发现这样放入字符串后却取不出来,觉得那是STL库的BUG,然后自己写了一个map!某些时候,过早下结论是一个很不好的习惯,任何事情都有其原因,只有知道了原因,才能知道是谁的问题。一般来说,总是自己出的问题。
1.3 不要过多关注实现,陷入问题细节
“喜欢接口,而不是实现”就是说认清问题的本质和特性要比如何实现更重要。对于一个客户的问题来说,首先应该想到的是如何先让用户正常工作,如何恢复正在“流血”的系统,而不是把用户放在一边而去分析问题的原因和解决方案。对于解决一个bug来说,重现bug,了解原来程序的意图是首要的事,而不是马上去修改代码,否则必然会引入更多的BUG。对于一个需求来说,则要了解需求后面的商业背景,use case和真实意图,只有了解了用户的真实意图,实际使用的方式和案例,才能真正去做设计。
1.4 不要使用并不熟悉的代码
糟糕的程序员最好的朋友是 Ctrl-C 和 Ctrl-V ,有些时候,还不知道代码的确切含义,就开始使用它,有证据表明,由拷贝粘贴引发的bug占了绝大多数。因为,代码总是只能在特定的环境下才能正常地工作,如果代码的上下文改变了,很有可能使得代码产生很多不为人知的行为,当连代码都控制不住了,就编不出什么好的程序。
1.5 不要拼命工作而要聪明的工作
好的程序员可能会花双倍的时间来准备一个有效的开发环境、工具,以及在开发的时候花双倍甚至10倍的时间来避免一些错误,用一切工具或手段来让自己的工作变得更有效率,总是为在开发的时候尽可能的不出错。因为后期出错的成本将会是巨大的,而且那时改正错误的压力也是巨大的。糟糕的程序通常会让自己进入一种恶性循环,总是疲惫的,总是很辛苦的,所以更没有时间来改善,越没有时间来改善,就有越多的问题。所以,拼命工作有些时候可能表明你不是一个好的程序员。
1.6 不要说得多做得少
糟糕的程序员总是觉得自己什么都懂,没感到自己的认识和知识是有限的。这就是所谓的夸夸其谈。另一个表现方式是他们在评论起别人的程序或是设计时,总是能挑出一堆毛病,但自己的程序写得也很烂。总是批评抱怨,而没有任何有建设性的意见,或是提出可行的解决方案。总是喜欢以批评别人的程序而显示自己的优秀。
1.7 不要写“聪明”的代码
写出来的代码需要别的同事查看程序语言参考手册,或是其程序的逻辑或是风格看上去相当时髦,但却非常难读。代码本应该简洁和易读,而他们喜欢在代码中表现自己,并尝试另类的东西,以显示自己的才气。是的,只有能力有问题的程序员才需要借助这样的显示。
2 方向方面
2.1 做别人做不到的
大学课程的普及,越来越多人都可以随便编写几个软件,想要脱颖而出就要做别人做不到的。程序的基础是算法,例如CRC算法、冗余算法、CRC8算法、DES算法、DES加密算法等等多要做到精通。这里介绍两本算法方面的书:《算法导论》、《计算机程序设计艺术》,还有经典的十进制转bcd三种算法。
2.2 做别人想不到的
做别人想不到的,可以在市场中占有有利的地位,只知道模仿别人的软件想法,那就永远在别人的后面,难以有所突破。这一条是质的升华,是成败的关键。
通过以上内外兼修的方法,假以时日一定可以从软件行业中脱颖而出,成为下一个周鸿祎或者马云,在软件行业实现自己的价值,完成自己的梦想,成就自己的理念!
参考文献
[1] 李开复.软件行业的发展趋势. 电子工业出版社,2003.11.21.
关键词 方向 优秀程序员 脱颖而出
中图分类号:F426.672 文献标识码:A
信息行业的快速发展,迅速推动了软件行业的大爆炸,如何从各式各样的软件中脱颖而出成为众多人心中的疑问。想从软件行业中突出,需要从以下两方面发展。
1 个人方面
要成为一个优秀的程序员,个人首先做到以下几个不要:
1.1 不要情绪化的思维
如果开始就使用不同颜色的眼光来看待这个世界的话,那么作为一个程序员会是很糟糕的。情绪化的思维或态度很有可能会把自己变成一个怪物。因为,情绪化通常都是魔鬼,会使人做出错误的判断和决定,错误的判断和决定直接决定了一个人的人生。
1.2 不要怀疑别人
有的程序员曾经这样使用 STL类:map,当发现这样放入字符串后却取不出来,觉得那是STL库的BUG,然后自己写了一个map!某些时候,过早下结论是一个很不好的习惯,任何事情都有其原因,只有知道了原因,才能知道是谁的问题。一般来说,总是自己出的问题。
1.3 不要过多关注实现,陷入问题细节
“喜欢接口,而不是实现”就是说认清问题的本质和特性要比如何实现更重要。对于一个客户的问题来说,首先应该想到的是如何先让用户正常工作,如何恢复正在“流血”的系统,而不是把用户放在一边而去分析问题的原因和解决方案。对于解决一个bug来说,重现bug,了解原来程序的意图是首要的事,而不是马上去修改代码,否则必然会引入更多的BUG。对于一个需求来说,则要了解需求后面的商业背景,use case和真实意图,只有了解了用户的真实意图,实际使用的方式和案例,才能真正去做设计。
1.4 不要使用并不熟悉的代码
糟糕的程序员最好的朋友是 Ctrl-C 和 Ctrl-V ,有些时候,还不知道代码的确切含义,就开始使用它,有证据表明,由拷贝粘贴引发的bug占了绝大多数。因为,代码总是只能在特定的环境下才能正常地工作,如果代码的上下文改变了,很有可能使得代码产生很多不为人知的行为,当连代码都控制不住了,就编不出什么好的程序。
1.5 不要拼命工作而要聪明的工作
好的程序员可能会花双倍的时间来准备一个有效的开发环境、工具,以及在开发的时候花双倍甚至10倍的时间来避免一些错误,用一切工具或手段来让自己的工作变得更有效率,总是为在开发的时候尽可能的不出错。因为后期出错的成本将会是巨大的,而且那时改正错误的压力也是巨大的。糟糕的程序通常会让自己进入一种恶性循环,总是疲惫的,总是很辛苦的,所以更没有时间来改善,越没有时间来改善,就有越多的问题。所以,拼命工作有些时候可能表明你不是一个好的程序员。
1.6 不要说得多做得少
糟糕的程序员总是觉得自己什么都懂,没感到自己的认识和知识是有限的。这就是所谓的夸夸其谈。另一个表现方式是他们在评论起别人的程序或是设计时,总是能挑出一堆毛病,但自己的程序写得也很烂。总是批评抱怨,而没有任何有建设性的意见,或是提出可行的解决方案。总是喜欢以批评别人的程序而显示自己的优秀。
1.7 不要写“聪明”的代码
写出来的代码需要别的同事查看程序语言参考手册,或是其程序的逻辑或是风格看上去相当时髦,但却非常难读。代码本应该简洁和易读,而他们喜欢在代码中表现自己,并尝试另类的东西,以显示自己的才气。是的,只有能力有问题的程序员才需要借助这样的显示。
2 方向方面
2.1 做别人做不到的
大学课程的普及,越来越多人都可以随便编写几个软件,想要脱颖而出就要做别人做不到的。程序的基础是算法,例如CRC算法、冗余算法、CRC8算法、DES算法、DES加密算法等等多要做到精通。这里介绍两本算法方面的书:《算法导论》、《计算机程序设计艺术》,还有经典的十进制转bcd三种算法。
2.2 做别人想不到的
做别人想不到的,可以在市场中占有有利的地位,只知道模仿别人的软件想法,那就永远在别人的后面,难以有所突破。这一条是质的升华,是成败的关键。
通过以上内外兼修的方法,假以时日一定可以从软件行业中脱颖而出,成为下一个周鸿祎或者马云,在软件行业实现自己的价值,完成自己的梦想,成就自己的理念!
参考文献
[1] 李开复.软件行业的发展趋势. 电子工业出版社,2003.11.21.