完美程序员的10种品质与不适合做程序员的10种迹象

来源:互联网 发布:金融大数据上市企业 编辑:程序博客网 时间:2024/05/12 14:14

 完美程序员的10种品质

  完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:

  1. 才智非凡 - 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强 (范围:用简单方式解决复杂问题)

  2. 魅力超群 - 优秀个性的结合体 ( 注重细节 VS 富有创造力、灵活多变 VS 恪守典章、善于交际 VS 特立独行)

  3. 术业专攻 - 具有一定的知识和经验,能在特定条件下利用专业技能解决用户问题(范围:从一个领域内的专家,到在不同领域都有丰富经验的程序员)。

  4. 积极主动 - 关心工作,对编程表现出了很高的热情、兴致以及热爱(范围:从工作只为钱的人,到在业余时间不计报酬实现有趣的想法的人)。

  5. 成熟稳重 - 精通并且运用合理的软件开发原则、敏捷方法和实践、设计和体系结构模式、领域驱动设计、单元测试、重构(范围:从一个充满激情的业余爱好者,到一名能够不停地发明新方法的黑带大师)。

  6. 实用主义 - 明白什么事是可能的,喜欢简单实用并且避免过度设计;明白业务目标,贴近现实并且专注于该做的事情(范围:从自学成才的艺术家,到自我激励的务实的成功人士)。

  7. 通力协作 - 能够倾听并且接受有好点子的人,毫无保留地支持团队的目标,跟别人分享自己的想法和知识,并且愿意指导别人(范围:从异见者到一个团队的领导)。

  8.善于沟通 - 能够高效地与别人交流和交换想法,支持那些对系统具有清楚的解释、判断和解答的知识和决定(范围:从一个安静内向的人,到一个系统解说员)。

  9. 潜力无限 - 拥有职业目标、出色的技能、好奇心、较强的适应性,并且能够不断自省(范围:从一个达到极限的人,到未来的编程之星)。

  10.远见卓识 - 拥有更高的视野,了解相关的背景、趋势和人员,为达到团队和公司的潜在目标采取行动,致力于为软件系统建立共同愿景(范围:从对编程仅仅是感兴趣的人,到有远见的企业家)。


  如何为特定问题找到完美的程序员呢?

  能够找到具有最优品质的程序员当然更好,但是,这些另类都身价不菲,通常可遇而不可求或者会对你的问题感到厌烦。因此,可以采取以下措施:

  • 1.在雇佣他们之前先理解问题,评估每种品质要达到的水平,并且准备好问题甚至测试。
  • 2.组建一个完美的团队,但不一定用完美的程序员。只要保证团队成员的部分品质达到了应有的水平。对每位团队成员来说,大概只有协作才是最重要的品质。
  • 3.创造必要的环境,促使这些优秀品质能够有效发挥作用。使用正确的领导风格,并且使程序员感到愉快。


  拥有优秀核心品质的人会提出最优的方法,包括编写单元测试和重构;学习设计模式,并且最重要的是:开发出众并实用的软件。

 

 

程序员能够赚大钱;软件开发人员一周七天都可以随意穿戴;任何人都可以通过自学成为一名程序员。这些仅是人们想成为开发人员的一小 部分原因。不幸的是,人才市场中到处都是拥有原始智力或学问的应聘者,但是他们却不具有成为一名优秀程序员所需要的正确的态度或品格。在决定自己是否应当 成为一名软件开发人员时,你应当考虑以下几件事情。


1. 宁愿培训,也不自学

即使公司对其他类型员工有合适的培训计划,大多数开发部门也很少给程序员提供培训机会。顶多为你报销买书的费用。他们都希望程序员踏进公司的第 一天就掌握了所有(至少大部分)必需的技术。更糟的是,他们主观地认为程序员都非常聪明,很擅长解决问题。这让上层管理人员相信,优秀的程序员不需要培 训。最重要的,对开发人员的培训费用是相当昂贵的。结果呢?当你职位调动时,你要弄清楚接下来要做什么,必要的话就要自学一下了。


2. 喜欢正常的工作时间

软件开发项目不能按时交工是出了名的。从某种角度而言,即便是如期完工的项目也通常落后于计划表。如果你不能忍受(或不能处理)自己的业余时间 因上级的命令而失去规律或充满变数,那么你不适合做软件开发。到了关键时刻,上级只会在乎能否将产品如期交到资产雄厚的客户手上,而不是你孩子的足球比赛 或你想看的一个新的电视节目。


3. 喜欢正常加薪胜过跳槽

软件开发行业,技术无时无刻不在贬值。除非你所在公司是和缓慢变化的技术打交道,否则,你的技术很可能一天不如一天值钱。目前技术发展水平飞速 变化,今天还很热门的技术明天可能就无人问津了。因此,日复一日的重复着同样的工作,还期盼得到超过不断增长的生活费用的加薪是很困难的。要想保值,就必 须保证自己的技术跟得上发展的步伐。此外,如果还想加薪,就必须大大扩充自己的技术,要么获得晋升,或者直接跳槽。


4. 无法和他人和睦共处

性格内向或喜欢一个人工作是一回事。无法与他人和睦共处是另一回事,而且作为一名开发人员,这会拖你的后腿。不仅如此,你的经理很可能是一名非技术人员(或很久没有亲自从事技术工作的技术人员),所以你必须善于向非技术人员表达自己的想法。


5. 容易垂头丧气

软件开发经常会让人产生挫败感。文件材料过于陈旧或有错误、之前的程序员写的代码晦涩难懂、老板规定了一些必须遵守但毫无意义的规定……诸如此 类的事情不胜枚举。一天下来,没有人愿意和一个整天在无休止地咒骂或对着显示器尖叫的人一起工作。如果因为花了8个小时完成看似10分钟就能完成的任务而 抓狂,那么开发工作不适合你。


6. 思想保守,不考虑他人建议

编程过程中遇到的问题往往都有很多解决方案。如果你不能正确对待他人的批评,或者不能认真聆听他人的意见,你很可能会漏掉一些重要的东西。举个 例子,几周前,一名初级程序员给我提了一个建议。经过思考,我决定尝试一下。结果证明他是正确的,而我之前的想法是错误的,而且,他的建议让一段代码的运 行时间从之前的若干天一下缩短到几个小时。如果因为经验水平的不同而忽略他的意见,那是多么愚蠢啊。


7. 不注重细节

编程过程处处都是细节。如果一部情节比《野蛮人柯南》复杂一点的电影就弄得你晕头转向,或者填写一个折扣单就让你感觉很费劲的话,那么,你在软 件开发这个行业也不会有长足发展。有时,像少一个句号这样的小错误,就会让原本很完美的程序产生随机错误。如果你连哪里少了句号都搞不清楚,恐怕你在这一 行业也不会有很大发展。


8. 没有工作自豪感

当然,循规蹈矩式的编写一个说得过得去的程序是有可能的。问题是,规则不是一成不变的。软件开发不像是在工厂里整天拧同样的螺丝,拧的力度大了 小了都无所谓。它需要独立思考,进而需要开发人员对工作有自豪感。而且,软件开发过程中,一些错误的做法很可能一开始不会对整个工作有不良影响。那些你所 忽视的、看似不会引起麻烦的“小错误”,最终会酿成大祸。没有工作自豪感、不认真对待每个项目的程序员工作质量不高,从而编程事业也不会长久。


9. 不三思而后行

比起编写程序,软件开发人员(至少是优秀的开发人员)会在项目计划上花费更多的时间。通常,当程序员不假思索地打开程序编辑器就开始写代码时, 他们写的大部分代码稍后就会作废。而经过深思熟虑后写出来的代码错误会更少,而且耗时短。很多程序员不知道如何合理编写程序是有原因的:软件开发的难点在 于知道要编写什么。不事先仔细思考就开始盲目工作只会事倍功半。如果你只会实干不会思考,或许软件开发这项工作并不适合你。


10. 不喜欢极客类型的人

出于种种原因(其中一些是合理的),很多人不喜欢与工程师或技术人员相处。如果你认为与像呆伯特或怪人奥尔那样的人相处是一种煎熬的话,那趁早放弃进入编程行业的念头吧。所有的开发人员都像那样性格怪异吗?当然不是。但也不乏古怪的人,这足以让你在这个行业痛苦不堪。

原创粉丝点击