行业知识一直以来都是程序员非常容易忽略的,这主要跟程序员这个群体的普遍性格有关。
程序员的性格是什么?宅,闷骚,偏执,厌恶约束,有点自负,有点自卑等等一系列的特征,如果你不具备以上当中的任何一条,LZ只能说,“请联系我!”。
有不少猿友都对技术有一种偏执,也正是因为这种偏执,让一部分人成为了优秀的程序员,但也往往让他们失去了一些东西。作为一名程序员,技术自然是扎根之本,但只修内功,不修外功也是不行的。
那么真正的外功是什么呢?真正的外功其实正是行业知识。
不少人肯定都看过武侠小说或者电视剧,内功与外功(或者叫招式)是相辅相成的。内功越强,同样的招式就会威力越大。更重要的是,外功越强,更能将内功发挥的淋漓尽致。
对于程序员来说,内功就是技术底蕴,外功就是行业积累。技术底蕴越强,当你带着同样的行业积累与别人谈判时,就会越具有冲击力。行业积累越深,就越能将你的技术底蕴彻底的发挥出来。
举一个不太恰当的反面教材。在LZ的公司里,有着这样一群人,他们被尊称为架构师,他们每个人都有着深厚的技术底蕴,但却只能每天无所事事,不痛不痒的插手着各个项目组的技术架构,技术体系,系统设计。
究竟是什么导致了他们尴尬的境地?相信现在不用LZ说,各位猿友也能猜到一二。昆明IT培训http://www.kmbdqn.cn/认为正是因为他们整天处于一个相对来说比较纯净的技术环境,一些必要的行业知识或者说业务知识实在是太贫乏了,对系统当前要做的事情以及将来要做的事情缺乏深入的了解。因此哪怕内功再深厚,没有招式的话,是无法发挥出威力的。
最佳答案作一个真正合格的程序员,应该具有的素质。
1:团队精神和协作能力
团队精神和写作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
2:文档习惯
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
3:规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。
4:需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
5:模块化思维能力
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
6:测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
7:学习和总结的能力
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。
作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:
1、 需求分析能力
2、 整体框架能力
3、 流程处理能力
4、 模块分解能力
5、 整体项目评估能力
6、 团队组织管理能力
低级程序员认为自己与高级程序员的区别:高级程序员任何功能都能编码实现,编码速度快,代码无bug。
正如一惯的那样,IT培训http://www.kmbdqn.cn/认为低级程序员之所以低级,正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质。
我们来听听高级程序认为自己与低级程序员的区别是什么。
高级程序员之所以高级,在于他们认识到代码bug是不可避免的,有千万种理由可以导致bug,但他们可以在设计和逻辑上保证(追求)滴水不漏,并用逻辑的百分之百准确性来减少代码bug。
没错,严谨的逻辑能力是高级程序员区别于低级程序员的最主要原因。
类似于武侠小说中的武术一样,程序员也分内功和招式。
招式就是各种编程技巧和编程概念(框架,架构等),通过经验可以不断习得。
而内功就是数据结构+算法了,招式可以决定你干活的速度,而且绝大多数情况下,不需要深厚的内力(知道加减乘除就行)。
而内功可以决定你解决问题的高度,就是说一件事情难到一定程度,内力不够的话是解决不了的。
优秀程序员的行为:拿到任务,就开始仰望星空或天花板上那盏高悬的电灯棒,状如老僧入定忽而皱眉,忽而展颜一笑,忽而手舞足蹈,忽而在纸上指指戳戳,忽而口中念念有词,忽而长吁??感觉有点神经病啊桌子上摆的是代码大全、设计模式、敏捷实践之类的书籍,并且没有灰尘chrome或firefox的书签栏里分门别类,类别多于10个,8个以上是技术相关的容不得破窗户,看见别人的烂代码就想改过来随手就能在白板上画出软件的流程图或者时序图??
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)