阅读更多

4顶
0踩

非技术

转载新闻 优秀的程序员该如何更上一层楼

2015-04-01 14:26 by 副主编 mengyidan1988 评论(4) 有5204人浏览
关于我们这个行业,“是什么品质使得优秀的程序员区别于其他程序员?”是最难回答的问题之一。最近我阅读了Eran Galperin的《What Makes a good programmer》,很有感触,于是想和大家分享一下我认为团队中每个人都需要具备的基本技能和特质。



1.适应性和灵活性

很多开发团队都在喊我们需要灵活的开发人员——尤其是在软件开发初期这类人才更为重要。如果你平时是搞UI编程的,那么我们希望你能深入到数据持久层。我们甚至可能还会要求你去做一些测试。你可能是作为一个Java程序员而聘用的,但我们希望下一个应用程序你能用.NET写……擅长多任务和成为某个领域的专家一样重要。在当时可能会让你想抓狂,但是挨过这段日子之后,你的简历绝对会让你的下一个雇主心动不已。

2.热情

也许你上大学学习计算机科学这个专业,只是因为你听说这行业能赚钱。几年之后,当你发现回报并没有你想象得那么丰厚的时候,可能就会开始沮丧,提不起干劲来。伟大的程序员会真心实意地爱着编程——可以不喜欢现在正在搞的代码——但总的来说,你应该成为一个享受于构建一些东西来解决问题的人。当有时间空下来可以喝杯咖啡的时候,你会去逛逛类似于JavaLobby的网站,寻找提高自己的途径。你会对谷歌最新的举措,市面上刚出来的Web框架感兴趣,津津乐道。

3.用科学武装头脑的实干家

《The Pragmatic Programmer》是软件行业中最重要的书籍之一。它不仅不局限于某一种特定的编程语言,而且还为我们提供了一系列的指南,是一部非常经典的著作。在团队工作时我们需要考虑到自己的行为所带来的后果,拒绝“破窗理论”。对工作保持一贯的高标准——测试、编码和文档等等——然后渐渐带动整个的团队,蔚然成风。

保持新鲜感的最好办法是用科学的思维武装头脑。任何问题都可以被分解,所有语言都有着一系列相似的特征。之所以有些人能做到这一点,而其他人却不能的主要原因是在于,你是否保持对自己的质疑:这个代码片段还能不能写得更好?是不是可以用一种更有条理的方式呈现这些信息?我可以郑重地告诉你,这些答案几乎总是肯定的,所以踏踏实实地解决这些“自我质疑”吧!

4.良好的组织安排能力

一个优秀的程序员会把事情安排得井井有条,甚至每天下班前都会列出明天的任务。这样如果需要做别的事情的话,至少可以参考这个清单,看看放到什么时候做合适,或者会不会对其他任务造成影响。ps,这里推荐一个蛮有用的工具——Mylyn,一个基于任务的Eclipse插件。

在处理代码和文档方面也需要良好的组织安排能力。如果我们能够有组织地进行封装、设计、命名类和变量,不但有助于团队成员的理解,还能让你几个月后的再次查看,不至于像是在阅读他人的代码。

5.通情达理,平易近人


我们大多数在团队环境中工作的,所以我们必须要具备人际交往的能力。所有被尊重的伟大程序员个个都平易近人。你需要腾出时间为他人提供帮助,不管是有问题的代码,还是项目经理想了解一下你的预估。除此以外,你还应该尽量做到表达清晰——以免交流之后,对方反而对问题更加困惑了。

通情达理也很重要。不管你在企业中是什么职位,或多或少总要涉及到协商和谈判。或许当你知道自己是正确的时候没法心平气和地做到这一点,但是你最好还是找到双方都可以接受的方案,千万不要太过于强硬。

6.把握机会

不要寄希望于别人会来告诉你需要做哪些正确的事情。也许你就快要发布了,却还必须转到最新的框架版本。如果你是热衷于自己的工作,那么你应该保持与时俱进。如果你擅于变通,那么你可能愿意牺牲午餐时间,或者在家中的空闲时间,来研究研究原型看看是否奏效。每一个机会都有它的成本,但是在你决定要不要使用之前先好好盘算盘算是否值得,千万不要盲目。

把握机会也适用于你的职业生涯。这个新的创业公司是否值得加入?也许你对目前的工作感到满意,但是你还是应该挑战自己。每个成功人士的故事背后都有着共同的主题——抓住值得的机会,在那些错误的机会上学习,吃一堑长一智。

7.引以为豪


请为你的工作感到自豪。这是来自于很多专业人士的谆谆教诲——那些我们眼中的伟人,总是认为自己的行业是最重要的,坚信我们的世界需要伟大的程序员。

这是很难做到的,如果你不喜欢编程的话,但它依然是有可能的。如果你不喜欢自己的工作,那么为什么不想想办法解决呢?如果你觉得每天的日常工作就是编写繁琐的代码,那么也许加入一个开源项目会点燃你激情的火花?你会发现那些对自己职业感到自豪的开发人员让你望尘莫及,无论是他们的代码质量,还是他们在解决艰巨任务中所享受到的快感。

当然上面这些只是我的观点,而且并没有涉及到任何开发工作中碰到的实际技术问题。如果我有任何遗漏和忽略的方面,欢迎各位不吝赐教。最后,你认为伟大的开发人员需要哪些优秀特质呢?欢迎留下你的看法。
  • 大小: 89.8 KB
来自: 码农网
4
0
评论 共 4 条 请登录后发表评论
4 楼 forthefuture 2015-04-17 16:01
我看了又看,还是没找到自己符合哪一点。。。
3 楼 zjumty 2015-04-02 16:42
aseara 写道
看了又看
发现所有的特征都是老板喜欢的
呵呵

老板喜欢就才能更上一层楼
2 楼 ljp12005 2015-04-02 13:31
优秀的程序员会做自己喜欢的程序,不是吗?
1 楼 aseara 2015-04-01 22:53
看了又看
发现所有的特征都是老板喜欢的
呵呵

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 如何让优秀的程序员更上一层楼

    现在已经有很多的程序员伙伴们已经是非常优秀了,也挺努力学习的,那么你有没有更深入的研究怎么样再上一个台阶呢?   作为工作了好些年的程序员,是否你的思想已经出现升华?目标不再是停留在“优秀”层面,而是...

  • 程序员的十层楼

    请耐心读下去,有些事情你必须知道! 自西方文艺复兴以来,中国在自然科学方面落后西方很多,...那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?

  • 我的第一篇博客+程序员的十层楼

    另一方面,也觉得作为一个程序员,总需要一个博客来记录自己的成长历程。也许终究无法成为牛人或者大师,但至少要成为一个合格的程序员。常常以“屌丝”自居,但其实内心不想一直做个“屌丝”,谁不想成为高富帅呢?...

  • 程序员篇:8个开发技巧助你薪水更上一层楼

    转载的文章来自于:http://www.devstore.cn/new/newInfo/821.html

  • 程序员的十个层次,你属于哪一层?

    程序员的十个层次,你属于哪一层?欢迎使用Markdown编辑器第1层 菜鸟第2层 大虾第3层 牛人第4层 大牛第5层 专家第6层 学者第7层 大师第8层 科学家第9层 大科学家第10层 大哲总之第11层 上帝 欢迎使用Markdown编辑器 ...

  • 程序员的十个层次 你属于哪一层?

    当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。那么,到底中国的程序员水平比...

  • 如何成为优秀的程序员

    无论你是多么优秀的程序员,无论你从事何种职业,基础都是最重要的,任何高深的理论,任何看似复杂的任务,都是通过基础一点点解决的,一个人只有将基础打牢,他才能更上一层楼。 2、学会分享 优秀的程序员是...

  • 程序员的十个层次 你属于哪一层

    自西方文艺复兴以来,中国在自然科学方面落后西方很...那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少种技术层

  • 程序员的十个层次(一)

    当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。 那么,到底中国的程序员水平比...

  • 程序员的十层楼1-10

    程序员的十层楼(1-3层)  自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则...

  • 数学,离一个程序员有多近?

    一、前言 数学离程序员有多近? ifelse也好、for循环也罢,代码可以说就是对数学逻辑的具体实现。所以敲代码的程序员几乎就离不开数学,难易不同而已。 那数学不好就写不了代码吗?????不,一样可以写代码,可以写出...

  • 程序员的十层楼(转)

    程序员的十层楼 第1层 菜鸟  第1层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解 计算机专业的一些基础知识,掌握一门基本的编程语言如C/C++,或者Java,或者 JavaScript,...

  • 程序员层级---程序员的10层楼

    自西方文艺复兴以来,中国在自然科学方面落后西方很多... 那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员 有多少种

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

  • 基于java的驾校收支管理可视化平台的开题报告.docx

    基于java的驾校收支管理可视化平台的开题报告

  • 原木5秒数据20241120.7z

    时间序列 原木 间隔5秒钟 20241120

  • 毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

    毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

  • 基于springboot课件通中小学教学课件共享平台源码数据库文档.zip

    基于springboot课件通中小学教学课件共享平台源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics