zoukankan      html  css  js  c++  java
  • 程序员三部曲——三流人员做研发

    -- 转载 http://liangchen.140.tofor.com/post/310.html

    程序员三部曲之一——三流人员做研发

    曾有言“一流的作管理,二流的作市场,三流的作研发!”,也有言“一年管理成富翁,三年市场路路通,十年技术一场空!”,其意无非是说研发人员低人一等,最开始听到这些话的时候,多是一种不屑,想当初自己毕业的时候,很多人都认为我的性格和能力更适合去做市场,而我却恰恰相反,选择了作研发,在我看来,管理是比较高深的领域,没有科班出身,没有严格的培训是无法做好的,中国的现实,管理的成功更多的取决于你的机会和后台而非真实本领。中国的市场也是如此,不是说鄙视市场人员,中国人就是有把环境搞混,搞乱的能力,好好的市场行为,到了中国就会变异,原谅我直言表达自己的想法,市场人员永远把客户列在第一,甚至需要失去自我的做人原则,这是我无法接受的。更深层次的想法是,我一直觉得研发是一件非常有乐趣的事情,要凭借自己的智慧,创造出这个世界原本没有的东西,而且纯粹是脑力的产物,这是一种远非加工制造业所能体会的成就感,更能感受到自己为这个社会做出的是实实在在的贡献,甚至是对自己还算聪明的大脑的一种回报。市场有啥难的,不就是陪客户吃饭,喝酒,玩乐,甚至是更多无法见光的事情。这不是我愿意面对的。作管理太难,完全没有思路。还是开发最好,这就是给聪明人设计的行业,一群绝对聪明的人,创造出一个个高科技产品出来。所以,当别人对我说出以上的话语,我表达的情感只有不屑。

    可是,随着时间的推移,随着各种事情的经历,逐渐接触到各个领域的人,我发现我的观点在改变。不再把开发看的那样神秘和高尚,逐渐认识到,管理确实是最难的事情,也是我们中国大多数企业面临的最大困难,管理人员要把形形色色的人都充分调动起来,形成一个团结一致的团队,共同前进,是多么难的事情。若干年前有人举例什么是管理:就是把波音747所有的元件和技术资料都给中国人,中国造不出来真正实用的波音747飞机。戴明有说:管理,就是为员工提供最好的工作环境,让大家高效率的工作。谈到团队,管理者就是一个服务性领袖,能支持到所有人,从而让团队朝着共同的目标前进.在我看来,管理就是提供一个公平的竞争环境,关注人才的挖掘,人才的培养,奖罚分明,人尽其能,调动所有人的积极性,发现每个人的优点并且最大程度发挥出来,管理是一门博大精深的学科,对于人的要求是最高的。

    对管理者的要求:心理学,统筹学,全局把握能力,沟通,协调,组织,洞察力,激励,勤奋,承受压力的能力,勇敢,决策力,果断机智,学习能力,改革的魄力,聆听,接受新鲜事物,勇于改正等等。
      
    相关书籍:
    《九型人格》:古老学科,心理学,了解别人,了解自己,激励,也是最难的;
    《第五项修炼》:系统思考的观点,自我超越,心智模式,团队愿景,团队的学习,营造学习性组织;
    《打破一切常规》:一线经理的作用,人才的挖掘,人才的培养,激励和奖惩;
    《共好》,《一分钟经理》:管理小册子,关注目标管理,奖励和惩罚,分工和协作,人尽其才;
    《戴明,朱兰》:质量管理大师;

    市场人员,是直接面对客户的一线人员,首先要具备扎实而且全面的技术知识,能为客户制定出整套解决方案,更要有各种沟通交流的能力,谈判的技巧,有应变各种紧急情况的能力。也要有把握大局的能力。决非陪客户喝喝酒,吃吃饭那样简单。当然,不正规的市场行为不算在内。需知道,和人打交道才是最难的事情。要和竞争对手直接正面相碰,全线交锋,面对各种各样哪怕是刁蛮的客户,有关键时刻力挽狂澜的能力,抓住一切可能的机会。做成一个成功的市场人员,实在不是简单的事情。市场瞬息万变,竞争日益激烈,一个时机失去,则全盘皆输,所以,要有要面对更大的挑战和压力。

    对市场人员的要求:沟通交流,协调,洞察力,全局把握能力,心理承受能力,幽默,时机掌握,抓住关键点,应急能力。
    相关书籍:
    《世界上最伟大的推销员》:爱是最大的力量,但是在中国有些行不通。
    《沟通交流的技巧》:基本技能的理论学习。更多的是靠实践;
    等等
      
    再看看研发,客观评价,我们所在企业的研发都是产品开发,真正的技术含量不高,尽管成为顶尖高手太难,但是绝大多数人还是可以胜任开发工作的,经过相关技术培训后,高等院校毕业的学生只要尽力,基本是能保证作成一个还算“合格”的开发人员。只要专注于自己所作的事情,并尽力去做好就可以了,由于开发人员很少和外界有接口,尽管也会有会议,评审,培训等,但绝大多数时间面对的是计算机和代码,只要多看书,多实践,多加班,搞定这些代码和变量,完成开发任务还是不难的。看我们自己的周围,开发人员只是专注自己的工作领域,见到的世面太少,没有经历各种复杂的环境,而又同一大群同样的,如同学生一样的开发人员在一起工作,必然还保持着单纯,简单的特点,这是好事情,但是,开发工作也确实会让人变得内向,不擅长交流,沟通能力有限,也许你不服气,在关键场合,以及和各种人打交道的时候,就体现出开发人员表达能力有限,沟通能力不足的问题。特别是看问题过于片面,对于技术深度也许还可以,但是缺少大局把握能力,开发人员大多数时间只要管理好自己就可以了,没有更多机会和外界接触,思想相对闭塞,肯定出现应变能力不够,关键场合心理承受能力差的问题,相信很多人是会有这样的感受的。甚至还有胆小怕事,不敢承担责任,不求进取的情况。当然,我只是以中国为例,尽管国外很多技术大师写的书里都表现得言语诙谐,幽默,但是,就算老外的书也是把开发人员描写成不重装束,性格偏内向的人。决定一个人成功更多的是靠情商和逆境商数,而不是智商,最终走在社会前沿的多是从市场和管理走出去的人。

    对开发人员的要求;聪明,勤奋,理解力,专研精神,学习能力,耐的住寂寞。
    相关书籍:
    《各种编程语言》
    《操作系统》
    《软件工程》
    《软硬件技术》
    等等,等等,太多了。
      
    综上所述,最难作的确实是管理,市场人员也是要求很高,开发相对来确实说是最简单,最容易作的事情。因此,我承认了,三流人员作开发。



    程序员三部曲之二——不作35岁的程序员

    作者:摩西2000

    在中国,程序员不能超过35岁,似乎已经是不争的事实,软件开发工作就是青春饭,顶多靠毕业这十年的时间,超过这个年龄,要不成功跃身成为管理者,要不转行进入其他领域,好像再没有更好的选择,即使偶有继续坚持作开发的,也被看成另类一族。老外却不是这样,40,50岁仍然作开发工作的大有人在,甚至很多牛人,包括获得康柏最佳软件奖的Robber,仍在埋头作着他所喜欢的编码工作,为何如此差异。我仔细想了一下,特别是这一年参加了太多的技术培训,基本有了一些结论。

    首先,国内软件开发工作的性质决定这一切,我们所作的产品开发,真正技术含量并不高,高等院校毕业的学生,经过几年的培训和实践

    ,基本都能掌握这些技能,而我们现有产品开发设计水平有限,对于软件开发的理解还仅限于编码,完成功能这些基本的需求,产品进度是第一驱动力,特别是一些小公司,把快速开发出产品作为最高目标,软件设计质量差,很少考虑可维护性,可扩展性这些重要的软件质量属性,仅仅追求功能和进度,产品以最快的速度完成设计,编码,少有测试甚至没有测试,就直接交付给客户,在客户那里暴露出各种各样的问题出来,开发人员就开始不断得为客户解决这样那样的问题,软件做到最后,很多人都会陷入自己不断挖掘出来的“陷阱”里走不出来,步入在复杂的系统中查找BUG,解决BUG,增加功能,引入新的BUG,再解决BUG,这样永无休止的恶性循环中,从事的都是一些低级开发工作,对于软件开发的理解无法上升到更高的层次,每天都疲于救火和拼命打补丁,软件维护成本居高不小,即使最终摆脱了这样的厄运——项目结束,下一次软件开发又是同样过程的重复,这些无休止的低级开发和维护工作,会耗光一个人所有的激情和精力,随着年龄的增大,热情和体力都在衰减,而这些工作,只要毕业生经过培训,同样可以胜任,有着廉价的,并且充满热情的毕业生作竞争,身心疲惫的老程序员必然面对更大的竞争压力,做到最后,连他们自己都会失去对软件开发的兴趣,甚至会产生厌倦的情绪,对于这样的快速开发模式,十年开发经验和五年开发经验有很大区别吗?干吗不使用更经济便宜的开发人员。

    另一个原因,是我们中国人一向的官本位思想,开发人员始终处于一种很尴尬的境界,听起来从事的是高级技术工作,说起来也是“以人为本”,但是,有多少企业管理者真正重视和认可开发人员的,哪怕是硕士,博士,这些开发人员在“大官,小官”面前,都只是普通劳动者而已。程序员是一个没有未来的行业,哪怕资历再深,能力在强,也还是一个劳动者而已,只有当上领导,走上管理才是最终的出路,否则,薪水上不去,地位上不去,只能面对被淘汰的命运。
      
    实际不然,之所以出现这种问题,是国内对软件开发的一种错误理解。如果软件开发仅仅是代码编写,查找BUG,可以说,那实在是一些低级的软件行为,做了十年的开发人员,确实不见得比作了3年的人更强多少,反正是简单重复的工作,工作3年的一样可以作,而且有更大的热情和精力。但是,应该跳出这个怪圈,走向更高的领域,对软件开发重新进行认识。要明白,软件开发要融入工程化的思想,要有高度的设计能力,关注更多的软件运行属性和设计质量属性,同样的系统,不同的软件人员会做出完全不同的软件,正规,高效的开发团队要比游击队开发团队不只高出几十倍。软件开发,不仅仅关注功能,性能,更应该去研究可维护性,可扩展性等质量属性,不仅仅只关注代码,而更要上升为设计,复用等。软件开发不仅仅是写出C语言的代码,单元测试,同行评审,培训与学习,这同样是开发人员基本的素质,也是提高软件质量的最基本手段。举例来说,单元测试做好了,就可以让开发效率大大提高,也能让软件的维护成本降下来。把开发人员解放出来。同行评审可以让开发人员之间更多的交流和沟通,在设计,编码阶段严格控制软件质量,培训则是提高自身技术水平,从理论上提升自己的最好方法。先前这些主要的质量行为都被忽略了,而这恰恰是走出低级开发的最好途径。同时,还有更高层次的设计开发,软件重构,模块化,系统构架,搭建统一软件平台,度量软件质量等等,有了重构,就会写出可读性好,可维护性好的软件,甚至因此提高自己的软件设计能力,减少出错的几率;模块化,让软件最大程度的实现复用,提高软件开发效率和开发质量。软件构架设计,从技术层次上最早决定了软件的命运,而这里又有太多的技术,设计模式,软件规划等,让软件开发从编码上升到设计的层次,搭建统一软件平台,是大产品,系列化开发的必然之路,对于软件质量的度量,会让我们的软件开发变得更加透明,清晰,让我们更清楚的把握到软件开发过程,从各个环节去控制软件质量,而不是仅仅凭着感性的认识到了最后才去补救。

    以上这些知识,一个人,哪怕勤奋学习一辈子,也不可能完全具备所有的技能。35岁算什么,做到70岁都不晚。当然,你需要真正的热爱它,并且不断得学习和进修。所以说,软件开发人员,要作的事情太多了,软件实在是一个浩大的脑力工程,甚至会让人觉得这是一个投入/产出比最低的行业,因为要学习的知识实在太多了,每时每刻都要处于不断的学习和更新当中,呵呵,既然选择了,既然喜欢了,就投入进去,享乐于此了。最重要的是,我们自己能并且愿意去认识到这一点,跳出低级开发的怪圈,走向更高的层次。

    同时,要意识到,一个资深开发人员的作用绝不亚于一个管理人员,高明的企业应该给予相同的待遇,要把培养和储备高级技术人才作为高科技企业的重点发展方向,这样才能让企业在人才领域得到不断积累,资深开发人员才会带出高效的开发团队,从而开发出高质量,高效率的软件,让企业在不断激烈的竞争中取胜。要明白,不是每个人都适合或者乐于转向管理的,很多人就是适合做开发工作,他们可以走得更深入,成为专家,应该充分发挥出他们的能力,让整个团队高效运作起来。

    所以说,开发人员,决不只是35岁,只要你愿意,可以作一生的开发,从中获得更多的快乐。



    程序员三部曲之三——不作浮躁的程序员

    作者:摩西2000
      
    不可爱的程序员:

    记得大学毕业刚到深圳的时候,遇到一个可爱的女孩,当她知道我是程序员的时候,就直接和我说,找男朋友,绝对不找程序员,为何?程序员不修边幅,为人木钠,不擅交际,不会说话,不懂浪漫,不会玩,不能哄女孩开心等等。我无言,我觉得她说的不无道理。程序员,或者大多数程序员确实如此,大部分时间面对代码和电脑,过于单纯简单的环境,以至于程序员真在其他领域确实难以有很大的突破。若干年后,又碰到这个女孩,她经历了多次的情感挫折,身心疲惫,告诉我,她很想找个程序员结婚,这又为何?程序员能挣钱,却不会花钱,为人老实,不会背叛感情,容易掌控,网上很多帖子都写了类似的内容。我继续无言:难道程序员就无法博得花季女孩的青睐,而只能成为她们情感经历后面对婚姻无奈的选择。

    程序员,我为你悲哀!
      
    当年自己刚大学刚毕业,**过于注重纯学业的环境,让我感觉压抑了多年,一心独自奋斗,不懂团队协作的**人不是我追求的目标。但真正面对复杂的社会环境,我感觉的却是无所适从,看起来和朋友在一起打打闹闹,性格开朗,其实,很多时候在和人打交道的时候我甚至是有些自卑的,更别说和陌生人说话,性格过于自我,沟通交流能力也有很多问题等等,其间,我也不断调整自我,自筹高额费用,全身心投入个人素质管理培训,确实提高了自己很多能力,更重要的是勇于认识真正的自我,大胆创新,不再畏惧失败,培养沟通交流能力,带领团队,组织活动等等,在这些方面投入了很多,也确实收获不少,后来参加户外运动,做领队,带队组织活动,对大家负责,把握活动节奏,把先前得团队管理进行了真正得实践,特别是面对大自然,个人是显得如此渺小,不尊重大自然,不尊重纪律,就会受到实实在在得惩罚,没有可以回旋的余地,经历了几次“生死考验”,增长了经验值,于是,让自己变得安静下来,可以说,团队培训和户外活动是相辅相成,帮助我快速成长。情商和逆境商数确实有一定提高,但是,因为自己相对“晚熟”,很多内容则是在给成长阶段补课,惭愧,惭愧!
      
    不作技术专家:

    我不想成为一名技术专家,因为我了解自己的性格,首先,就不具备深刻细致的专研能力,专家是可以有极大的耐心,长时间投入到一个专注的领域。其次,成为专家,必然是深度很大,范围很小,而我最自己的要求是要能够涉足更多的领域,让自己的人生更加完美,实际上,我更想成为一个工程管理专家。我对于提高整个团队的开发效率,提高软件的工程化有着极大的兴趣。在我看来,能让个体成为高手并不是很难的事情,能带动一个开发团队,高效工作才是我们中国人最欠缺的。我会乐此不疲。关于于中国人的团队精神和社会性,后来也看了很多管理类的书,学到很多西方管理知识。
      
    从浮躁到沉静:

    一直很想弄清楚该如何定位自己,是应该一心钻入代码中,完全不理世事,做不“可爱”的程序员,还是面面俱到,具备各方面能力,做综合性人才。这别是这一年以来,尽管技术水平也在不断提高,但是,负责部门培训,研究软件重构,成立模块化小组,构件底层软件平台,这些提高软件质量和工程化的活动,确实占据了自己太多时间,同时,让自己一直处于“多任务切换”的状态,无法专心投入到代码里,加之自己得性格偏外向,感觉自己不断浮躁起来,无法再象从前那样专心进去。这实在不是一个好现象,特别是自己对代码也还是满有兴趣的时候。主要是,我一直不愿意承认,难道程序员就是该邋遢,愚笨,口齿不灵,难道只有市场人员才能懂得交流,沟通。程序员是一个理性的行业,也是一个充满思维逻辑,关注长远大局的工作,应该培养出来更优秀的人才。程序员难道就不能是幽默,风趣,擅长交际,把握大局的。所以,刻意培养自己在多方面的能力,在游泳,爬山,球类活动,或者游戏等领域投入了很多时间,确实让自己兴趣爱好丰富起来,但是,这些活动毕竟还是要投入时间的。特别是,让自己不再能踏踏实实的躲到代码里。必然和默默无闻埋头于代码中的程序员拉开差距,IT实在是一个投入产出比低的行业,知识更新速度太快,要掌握的知识太多,如果没有大量时的投入,肯定难以达到一定的境界。多年下来,已经有了很大差距。这一直是困挠我的一个问题,不甘心埋头只做程序,但是全面发展又必然制约自己在技术领域的提高。过多的团队活动必然让自己得技术水平不能更快提高,不去培养其他方面,又会变成少有兴趣只会做代码的“呆子”。特别有一点,我是一直清楚得,而最近,则更加明确,天生的性格所致,后天环境的“娇惯”,一路学业和工作的放松,心高手短,以至于——内心浮躁。有热情而不够坚持,表面容易滑过,却专不到深处,根本原因也是因为不够沉静,这已经成为我的个人发展瓶颈,即使不只是程序员,做人,也应该沉稳下来。我想,但我看到这些的时候,我不会再无动于衷,我会好好反思自己,然后去做!不做浮躁的程序员,不做浮躁的人。
  • 相关阅读:
    堆栈学习
    需要阅读的书籍
    Rust Book Lang Ch.19 Fully Qualified Syntax, Supertraits, Newtype Pattern, type aliases, never type, dynamic sized type
    Rust Lang Book Ch.19 Placeholder type, Default generic type parameter, operator overloading
    Rust Lang Book Ch.19 Unsafe
    Rust Lang Book Ch.18 Patterns and Matching
    Rust Lang Book Ch.17 OOP
    Rust Lang Book Ch.16 Concurrency
    Rust Lang Book Ch.15 Smart Pointers
    HDU3966-Aragorn's Story-树链剖分-点权
  • 原文地址:https://www.cnblogs.com/sparkling/p/664328.html
Copyright © 2011-2022 走看看