看顶级高手如何编程--从带程序员新手想到的

  当了几年的程序员了,虽然写码的时间多点,但手上也管理过、带过一部分程序员。一直都在想一个问题,什么是程序员,程序员应该作好那些事情,什么样的程序员是有素质的程序员?什么样的程序员算是负责的程序员呢? 工做当中我发现有很多员工是为了工做而工做,怎么回事呢?他们只是把我分配的工做分绝不差的完成,但从不问为何?有些程序员是喜欢随便改变需求,本身感受不错就得改,改了还不作报告,最后上交项目时才发现和需求不同?因而傻了。 
  我根据本身的经验把程序员分为如下几种
  一、单纯没有脑子的:这种员工是最气人的一种,由于他们大可能是刚入门的,或是学生刚走出校门,不喜欢问,也不懂得分析,只是一味的很听话,为何说他们单纯呢?那是由于他们历来不会问,不会说也没有本身的想法,你让干什么就干什么,让本身怎么干就怎么干,听上去感受特好的员工,很听话,若是只是这样就行了,可怕的是他们没有脑子,好比你说让他完成一个增长的功能吧,他们很听话的给你作出来,但只是一个增长的功能,他根本不会在增长功能以后再给你处理一下刷新数据的问题,或是作一些必要的验证,更说不上代码的扩展性,那都是见不着边的事,不可能。 你说让作一个查询功能,他彻底有可能给你作出来一个查询全部的功能,不会管你要不要根据时间,要不要分页,或是其它的方式的查询,人家还可有理,会告诉你,你需求上没说啊,只说要有一个查询的功能?而后你无语。
  二、有脑子先斩后凑的:这类程序员大体是工做有一年或是两年工做经验的人,自认为本身有些经验了,作了几个项目,感受本身NB的不得了了。分配一个功能总有一些本身的想法,其实他本身不知道这些想法还不成熟,只是我的主观意向,你说让人家作一个导航条吧,你清楚的告诉他是在头部用的,要直排下拉类型的。 好了获得需求了,他根本无论你为何要这样作,在作的过程当中,他发现本身之前作一些项目里有导航条的,并且很好看,他们想,经理是怎么想的,设计的还不如我设计的好看,我给他改一下说不定还能获得他的奖励,因而本身把直排下拉的导航改为了,直排出面板那种的,由于好看,并且还不告诉经理,想给你们一个惊喜,谁知道经理一看,说怎么改需求了,客户不要这样的,而后他就跟你讲理,说这样的好看,并且什么扩展性还好,技术先进,流行,而后你会很无耐的告诉他,你作的确实很好看,可是客户不付钱怎么办,因而没办法在你的“强逼”之下他不得不改,因而你对他的工做很不满意,首先是这我的很差管,老本身作主,不把你当回事,怎么办,好点的经理会慢慢引导一下,脾气大的经理会直接扔出两字“滚蛋”。

  咱们来分析一下他的心理:
  第一种可能就是感受本身作了不少项目,有一点自大,目中无人的心态,看不起别人设计的东西,总觉得本身的技术和代码很棒了,由于本身在程序界摸爬滚打一两年了,也算是有所见识了。但他们确不明白,如今的本身正像当前的曹仁学曹操同样,只是学得其形而为尽其神。大部分的软件,网站,不能只看网站自己的价值,成功不成功,不是本身说了算,也不是经理说了算,还得看客户,一句话客户喜欢的就是好东西,客户不懂技术啊,你写的再好,客户不懂哦,因此必定不要乱改需求,软件要和市场结合才能真正体现出它的价值,作让你们喜欢的软件,而不是单纯的技术堆积。
  第二种可能就是,本身懒,由于两年内也写了很多代码,手上有不少的源代码,直接找个好点的能上就好了,为何要本身写啊,并且好看还快速。
  第三种多是本身实现不了,而又不想学习,感受浪费时间,因此直接改动一下得了。感受本身若是写的话,写好了还好说,写很差,耽误时间,一个导航几天能不完,会很丢人的。因而要加速。
  这类程序员有脑子,可是不听话,管理是问题,必定要好好的引导,也但愿在这个阶段的朋友们注意了。增强学习,认真作项目,让本身正规化。不要入魔道了。多看看资深的程序员的代码,想一下经理为何要这样作,听听他的理由,在改需求的同时必定要写报告,或是直接找经商量一下,不要本身作主。
  三、有脑子,很听话,很认真,但基础很差,代码有局限性:这类型的程序员大可能是工做一到两年的程序员,但和上面的不一样,他们颇有脑子思路很好,并且很听经理的话,作东西很认真,作不完了本身会加班写,学新的东西也很快,可是有一点很差的是,他们有不少理由说本身没时间学习基础,这些人通常是在学校没有学好,出来以后后悔了,学起来很认真,因为学了些新的知识,起点高,看不起基础的东西,从不想着没事去看看编程基础,看看算法,看看数据结构,老是觉得我都能作出这样的项目了,还看那些小东西会很丢人的,因而在公司从不看回家更不想看,时间长了,技术会有很大的局限性,对某一块技术很不错,可是对其它技术不怎么好,因而在接到一个项目时,总喜欢使用本身现有的,会的技术去实现,转了一圈又一圈总算是把东西写出来了,并且仍是加班完成了,可是代码的性能,稳定性,和效率上差的很远,扩展性也谈不上,时间一长,项目一多起来,就会出现屡次反工,由于需求是会不断变化的,因而本身的代码也要变化,感受非常理所固然,一个项目没事,接手的多了就麻烦了,新项目刚到手,老项目就出问题了,不是这里有点小毛病就是那个功能要升级,因而新项目放下,着手改老项目,手上能有三四个项目时,就会忙个不停,改的多了,没办法再改了就得从新设计,或是直接说这个功能实现不了。
  其实在这个阶段的朋友颇有潜力的,只要花点心思补习一下本身的技术缺陷,多看看高手的代码,写以前想一下,设计一下,天然事半功倍,千万不要有眼高手低的心态。
  下面来聊聊真正的高手NB人物是怎么工做的------------程序员
  1.不随便改变需求:他们不会主观的改变一些东西,无论是对仍是错,若是要改的话他们会在开会时,或是私下跟你提出来,经过后再改,不然会按需求办事。
  2.不写没有思想的代码:在写功能时会加上一些人性化的功能,比果加个小图标,加一些验证,处理一些操做习惯,加加快捷键,处理好Tab顺序,等这些,不用你说,他们本身会处理好。
  3.不写没有远见的代码:他们在写代码时会想,不会是单纯的实现功能,他要想,若是别人也要用这个方法怎么办,之后要改的时候怎么办,代码这样写是否是合理,是否是会影响性能,而后才会”吝啬“的出手。
  4.不写不负责任的代码:咱们写代码一是为客户用,二是方便其余人看,不仅仅是本身维护,要对本身的代码负责,从本身手上出去的代码表明的就是本身的脸,代码很差,人家会“打脸”的。他们不肯意挨打因此他们负责。
  高手在编程效率方面可能并不比普通程序员快多少,由于他们会吝啬本身敲下的每一行代码。这种“吝啬”有两方面的含义,一是项目的架构性和总体性考量,二是从性能和优化的角度进行Coding。其实,这里所映射的是一个开发者的技术视野。
  有不少技术专家强调项目执行时的全局观。面对一个项目,即便是团队中的普通一员,也要力求从项目总体架构的角度审视开发需求,对各个模块、接口和通讯作最优化的预想和配置。这样能够从全局审视整个项目的技术布局,预判可能出现的问题。
  在肯定了总体以后,落实到具体的模块实现,每一行代码不但有上下文的考量与规划,还要具有模块间的总体布局。这是模块内的技术视野,好比接口的定义、注释的可读性、代码的执行效率等。当你写下一行代码前,要考虑它是否会对整个系统形成影响,是否方便其余接口进行调用,这些都是一个开发高手的“技术潜意识”。
  据一些常常带领入门级开发者的技术经理介绍,多数人只考虑本身所负责的模块进行开发,缺少一个全局性的技术视野和对代码性能苛刻的态度,这样虽然能按交付日期完成项目,却对项目质量和开发者的自我提升有很大阻碍。
  开发高手是代码阅读者。大多数技术专家的代码阅读量是普通程序员的百倍,代码阅读的时间比写代码的时间要长得多。 多数程序员只把程序开发当成一份工做,他们在意平台的前景、语言的优劣、报酬的高低;他们不肯为一个技术点反复钻研,不肯为一个bug精心测试,不肯为自身技术水平的提升多花时间。而开发高手每每具备单纯的技术梦想,愿意为技术付出本身所有的时间。
  要拥有单纯的技术梦想,并为此付出本身所有的时间。
  是的,所有的时间。
  在此祝愿每个有单纯技术梦想的人都能成为编程高手。
相关文章
相关标签/搜索