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

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

大家好,又见面了,我是全栈君。

关于我们这个行业,“是什么品质使得优秀的程序员区别于其他程序员?”是最难回 答的问题之一。最近我阅读了 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. 引以为豪

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

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

当然上面这些只是我的观点,而且并没有涉及到任何开发工作中碰到的实际技术问题。如果我有任何遗漏和忽略的方面,欢迎各位不吝赐教。最后,你认为伟大的开发人员需要哪些优秀特质呢?欢迎留下你的看法。

作者:小峰

来源:51CTO

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108285.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • plt.savefig()的用法以及保存路径

    plt.savefig()的用法以及保存路径图像有时候比数据更能满足人们的视觉需求pytorch下保存图像有很多种方法,但是这些基本上都是基于图像处理的,将图像的像素指定一定的维度,具体可见以下博客:Pytorch中保存图片的方式_造未来-CSDN博客_pytorch保存图片主要是写一些函数来保存图片;另外,pytorch中有很多可以直接保存图片的语句如save_image(fake_images,’./img/fake_images-{}.png’.format(epoch+1))此语句同样需要转化像素。.

    2022年6月22日
    442
  • Html元素的scrollWidth和scrollHeight详解 .[通俗易懂]

    Html元素的scrollWidth和scrollHeight详解 .[通俗易懂]上网搜了一下scrollWidth和scrollHeight,大部分都是转帖,也没有具体说清楚,这两个属性值是什么,也没有图。索性自己测试一下,包含的浏览器有IE6,IE7,IE8,IE9,Firefox,Chrome,Opera,Safari,顺便把测试的截图也发上来,这样大家看着也明白。一、scrollWidth首先,我们先上MSDN上查一下scroll

    2022年7月23日
    13
  • nextline函数_Java 中nextLine()方法没有执行直接跳过解决办法[通俗易懂]

    nextline函数_Java 中nextLine()方法没有执行直接跳过解决办法[通俗易懂]使用Java的Scanner类nextLne()方法从显示器输入数据时,nextInt()后面的nextLine()直接跳过没有执行;截图:第三个输入直接跳过通过上网的查找我终于发现了问题出在哪里:原来nextLine()函数获取的是一整行的内容其中也包括了(\n)也就是换行符而nextInt()函数获取的仅仅是一个值不包含(\n),那么nextInt()后面的nextLine()读取一行,就把(…

    2022年5月3日
    64
  • 对于RFID-RC522 模块的读写操作【Arduino】[通俗易懂]

    对于RFID-RC522 模块的读写操作【Arduino】[通俗易懂]玩儿板子–用Arduino链接RFID-RC522型号的Rfid模块。并且用放出实例代码目前百度基本上搜不到RC522板子的具体操作代码,基本上贴出来的只有接线,所以这次直接放出读写操作的代码算是做贡献吧。这个是板子建议:把送的两个插头,焊上去是最好的接线:

    2022年9月19日
    0
  • 一个interface可以继承多个interface_java语言支持单继承和多继承

    一个interface可以继承多个interface_java语言支持单继承和多继承   搞Java也有两个年头多了 ,今天在修改程序时无意中发现,Java接口中继承了多个接口,哎,真是惭愧直到现在才搞明白。于是就赶紧写了一个例子:packagecom.iman.wrms.t;publicinterfaceIOne{ publicvoidone();} packagecom.iman.wrms.t;publicinterfaceIT

    2022年10月20日
    0
  • C++中深入理解dynamic_cast

    C++中深入理解dynamic_cast转载:https://blog.csdn.net/gaojing303504/article/details/78860773dynamic_cast运算符的主要用途:将基类的指针或引用安全地转换成

    2022年7月4日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号