阅读更多

13顶
0踩

研发管理
回顾我的职业生涯(不,我还没那么老,不过入行确实不少年了),确实有几次人生拐点帮我更具职场智慧,并鞭策我,使我总体来说适合成为软件工程师或程序员,成为那种要么热衷于提高自己的技艺,要么对混入管理层有兴趣,要么只是简单的期望扩大自己的知识面的人。我意识到,鉴于每个人目前的工作情况,有些建议可能并不适合于每一个人,尤其是假如你工作在一家对“谁可以和客户谈话”这种事都作出严格定义的公司的话。所以如果你现在做不到全部这些,也不必烦恼。也要注意,有时,你需要的只是开口去问!

贡献到一个可行的开源项目

除非你与世隔绝,否则一定听过开源项目,也许你已经在Github或SourceForge上有一些小型的开源项目了。所有这些都是好的,但是我所说的“viable open source” 是指应当尝试在一个项目中做出重大意义的贡献,你的代码必须是通过审批的流程,如果被接受,将会在很多系统的系统中被应用到。你能从共享开源项目中学到的东西非常多。就我个人而言,它意味着:写更好的代码,更高效的沟通,有利的条件获得更多的工作机会,更高的报酬,更多的赞誉,更多了解其他观点和让自己有更厚的脸皮。最后一点,是说,你的代码在某些情况下会受到详细检查和批评。开源项目只是一个软件,并不是你一个人的(假设你即使遇到了一个很好的项目,请尽力将自己和项目区分开)。所以把接受批评当作是一个学习的机会,并将事情做得更好而不是令自己生气。不过这不容易做到,我自己有时也会与这种事情斗争,但是我知道如果不去想这些代码去谁写的,这些代码(和我)都能越来越好,而这才是最重要的。

参与开源项目者还有一个额外的优势,从雇主的角度看,我会更容易雇佣一些在能在生产环境上找到他们提交代码记录的人。对于技能差不多的候选人,任何时候,我都会他们当中选择开源项目贡献者。

销售你的软件

是的,我从字面上的意思是你应该去做电话销售,如果可能的话。换句话说,我认为你应该将自己放到极客的位置,时时的为他人用英语解释明白你在做什么,而不仅仅是你的同伴。如果你都不能解释清楚你做的是什么,其他人怎么能去购买它呐?

做前期销售对我来说是一个非常宝贵的事,因为需要一个真实的、存在的、活生生的客户站在面前,可以为他们解释为什么他们应该购买我的软件。在开始的几次,我做到了,我非常紧张(毫无疑问的事实就是我的工作起步阶段,我们也在尝试做得更好),但是我通过了, 得到了一些锻炼,得到了一些提升。

卖你写的软件会给你真正的观点你正在构建什么和为什么构建, 它还能让你接触到大量的使用案例和真实反馈,什么是好,什么是坏。它也将磨练你,同事也会带给你信心。你还可以得到更多的使用你写的软件而改善他们生活的人的尊重,另外,当代码不正确时你也会是第一个感受痛苦的人,这也会使你希望自己写出更好的测试代码。最后,从长远来说,它帮你看得更远。

支持你的软件

销售你的软件之后的另一件事就是支持它。找到一种你能工作在第一线的支持方式,或者至少参与到支持工作中,来使自己能够真切的体验到人们使用你的软件的各种方式:好的、不好的、甚至丑陋的方式。错误报告和升级是一方面,直接从客户听取意见则是另一回事。除了需要社交技巧,你也需要能够迅速的进入用户的使用场景,了解他们看待你的代码的方式,这将进一步告诉你哪些你做的很好,哪些你还需要改进。这也意味着要知道哪些该说哪些不该说,因为这是你和付费客户打交道时要把握的分寸。伴随着销售,也会带给你一个新的欣喜,即之前开发阶段的辛勤工作没有白费,它很好的支撑着软件支持阶段的工作。

写/培训与你软件相关的内容

如果你还没有弄明白我的意思,我将会解释清楚一点:我十分重视那些不单单能写代码并且在公司内部和向公司外部人员解释那些代码是什么和为什么这样写的工程师。通过撰写和培训软件相关的内容,你必须简明、清晰地解释复杂的技术细节。也需要经常强调那些从用户的角度看是不对的地方。我说不出多少次在写文章和培训的过程中发现功能或特性不是十分正确,从而回去修改代码。这种情况在API设计的过程中更加经常发生。

写作也可以增加你的曝光并带给你更广的观众群体,从而得到反馈并令你的作品更上一层楼。有很多,很多的机会可以去为网站或出版社撰写技术的文章。学着去推销你的想法(看,你又在销售了!)并坚持下去,下一步你就会发现你将会成为一名合格的作者并有可能从中获得回报。

结交一些新朋友

也许对我来说,在学习和机遇两个方面最大的一种变革力量,就是我对扩展自己人际网络的明确努力 。当然这并不容易,而且这肯定涉及要“使你自己身心投入其中”,但回报经常是极为显著的,而且以事后所见,其中的风险非常小。

如果在你直接接触范围之外没有太多的人际网络,我给你一些建议。首先最重要的,人际网络的关键是你必须真诚的与新朋友会面,而且你必须除了这个新的关系之外别无所求。其次,许下承诺去维持这样的努力数月乃至更久。当你获得更多的自信并从任何失误中获得经验之后,这将变得越来越容易。第三,做你自己,但要注重倾听他人。第四,这也是我最弱的方面,获知并记忆名字。我很少忘记一张脸,但如果我不努力去学习别人的名字,这些名字就会在我脑中溜走,所以记住别人的名字,让别人知道你看重他们。

除了这些技巧,还有许多关于这个主题的好书。我最喜欢的有一本“爱是杀手锏”。就我看来,这是一个做作的标题,但书中的建议都是干货,而且作者很好的将它呈现了出来。在每天结束时,让你自己沉浸其中,从你获得的实际反馈中学习。如果你发现自己被太多次拒绝,问问一位信任的朋友,让他给你在何处改进的真实意见。如果有困惑,找别的朋友讨论。

红利: 找到导师

有可能你已经知道一些令你尊敬的人物,他们拥有解决复杂问题和高效沟通的能力。如果他们愿意与你分享他们的经验,并给你改进方法的反馈,那么自然有了胜算。从他们的经验和教训中学习,对他们的建议保持开放的态度。虽然它不会总是正确,但你至少应该考虑一下他们说的是什么,之后再做出决定。就我个人来说,我很幸运拥有一个朋友,他也是一个高管教练(我们意外的相遇,证明了使自己投入某事的价值)和一间企业所有者。在好多年里,我也遇到许多好老板和好同事,他们充当了我的人生导师,我对他们感激不尽。在开始以前,问问自己最敬佩谁,然后去和他们讨论你的想法。如果你找不到可以胜任此角色的朋友,甚至可以考虑雇佣一位教练。

完结

请记住,所有这些事情是你可以在这里和那里周期性的做。 他们通常并不需要很大的时间或货币的承诺,但他们确实需要你走出你的安乐窝。

最后,我很高兴听到一些程序员/工程师做这些事之后,确实改善了他们的职业/生活。你工作是什么?哪些工作没有起到作用?

英文原文:5 Things Every Software Engineer Should Try / 译文:OSChina
13
0
评论 共 5 条 请登录后发表评论
5 楼 TopLongMan 2013-06-28 22:16
4 楼 jf_2825 2013-06-28 15:25
翻译的很认真啊
3 楼 shileishmily 2013-06-28 14:43
2 楼 vemorn 2013-06-27 03:10
 
1 楼 huifeideyu888 2013-06-26 09:28

发表评论

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

相关推荐

  • Linux面试宝典大全+答案

    linux面试宝典,里面包含了linux面试中的常见问题,也对linux知识点进行了一个比较全面的概括,是面试前突击或者保温的好材料

  • GNU通用公共许可证( GPL)

    GNU通用公共许可证( GPL)下面的正文是自由软件基金会 GNU通用公共许可证原始文档的副本。 Linux操作系统以及与它有关的大量软件是在GPL的推动下开发和发布的。 你将看到:如果你打算为了发布的目的修改,更新或改进任何受通用公共许可证约束的软件,你所修改的软件软件同样必须受到GNU通用许可证条款的约束。 GNU通用公共许可证1991.6第二版版权所有(C)1989,1991 Free ...

  • GNU General Public License 通用公共许可证

    GNU General Public License 通用公共许可证 原文 声明   This is an unofficial translation of the GNU General Public License into Chinese. It was not published by the Free Software Foundation, and...

  • 详细介绍 GPL 协议

    在自由软件所使用的各种许可证之中,最为人们注意的也许是通用性公开许可证(General Public License,简称GPL)。 GPL同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 GPL还规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的 整体就...

  • GNU通用公共许可证(GPL)

    下面的正文是自由软件基金会GNU通用公共许可证原始文档的副本。Linux操作系统以及与它有关的大量软件是在GPL的推动下开发和发布的。你将看到:如果你打算为了发布的目的修改,更新或改进任何受通用公共许可证约束的软件,你所修改的软件软件同样必须受到GNU通用许可证条款的约束。  GNU通用公共许可证1991.6 第二版版权所有(C)1989,1991 Free Software foundation

  • 《日志:每个软件工程师都应该了解实时数据的统一抽象》

    本文被誉为程序员必读文章,kafka也是基于此文的...日志:每个软件工程师都应该了解实时数据的统一抽象 杰伊·克雷普斯 大约六年前,我在一个特别有趣的时候加入了 LinkedIn。我们刚刚开始遇到我们的单.

  • 日志:每个软件工程师应该知道的实时数据的统一抽象概念

    我加入LinkedIn大约六年前在一个特别有趣的时间。我们刚开始对我们整体式,集中式数据库的极限跑起来,并...其中最有用的东西,我在这一切的教训是很多的,我们正在构建的事情曾在他们的心脏一个非常简单的概念:日志。

  • 《这就是软件工程师》- 每位软件工程师值的看的一本书,尤其是刚刚步入IT行业的年轻人

    技术难题之所以难,是因为情况复杂,没有通用的解决办法,唯一通用的是保持一个好心态,你需要尝试不同的技术解决方案,需要做好失败的准备,很多技术难题是没法解决的,在攻克难题是,想方设法尝试不同的方案是最...

  • 远程软件工程师的10个最佳实践

    最佳实践之九:学会说是 作为一个软件工程师,参与的每一个项目都有一系列的问题需要解决,需要与他人合作,以及需要学习新的编程语言或新技术。我们都可能是一个很容易说“是”的人,为一个项目做贡献,或者提供...

  • GPL协议的基本内容和GNU计划

    通用性公开许可证(General Public License,简称GPL) GPL同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。  GPL还规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的 整体就必须按照GPL流通,不仅该修改文本的源码必须向社会

  • GNU通用公共许可证(中--英对照)

    每天都要接触一些GPL的软件,怎么能对GPL没有一个清楚的认识呢。无奈法律文书看起来着实吃力,中英文对照和我的胃口

  • Linux学习|什么是GPL(General Public License,GNU通用公共许可协议?

    什么是GPL? GPL的权利 GPL的历史 GPLv1 GPLv2 GPLv3

  • Linux词汇术语大全

    对于初涉 Linux 世界的 Microsoft Windows 用户而言,有许多新的术语需要学习。本词汇表简明地解释了 Linux 产品常用的许多术语、首字母缩写词和缩写的意思和意义。(其中有些术语并不是 Linux 所特有的,但许多 Windows 用户可能仍然对它们感到很陌生。)本文档将有助于澄清对 Linux 的一些混淆;但是,这里并没有包含最常用的硬件、软件和通信方面的术语,这是因为

  • 高级软件工程师必备的五大技能

    具备什么样的素质的人才能成为一名高级软件工程师?作为高级软件工程师,你不仅要具备娴熟的技能,更重要的,还要具备与人合作的能力。只有能够领导和提升他人的软件工程师,才是真正的高级软件工程师。...

  • 一个汽车软件测试工程师的三年工作总结

    经常挂在嘴边的一句话:“道理都懂,但就是不清楚怎么做。”从小学到大学,十几年甚至二十几年在学校里更多的是教会了自己如何快速高效的记忆,却并未就给自己太多思考的时间。虽说到了大学后,时间多了,可...

  • 业余时间零基础自学编程,9 个月后我成为一名软件工程师

    在这篇文章里,我想分享自己如何在 9 个月内一边做着全职工作,一边自学编程,从一名小白成长为年薪六位数软件工程师。 每当阅读别人的成功故事时,我的第一反应都是查看作者的背景,希望他们的经历和故事也发生在...

  • 一个老软件测试工程师的日志

    软件测试职业发展方向,大体上...一般来说,一个普通的测试工程师刚入行,3个月左右熟悉企业的工作流程和模式,那么今后的工作内容趋于平稳。然而社会是残酷的!如果单单停留在测试工程师的阶段,若干年后,相信你...

  • 机器视觉软件工程师的生活是怎样的?

    对了,虽然我只做了两个月的视觉工程师,但是我已经连续写了12年的日记了,我想把这个好习惯一直延续下去,也算是做个记录。可能没有人看,只做个人消遣吧! 2020.9.15   先讲一下我的个人情况吧,大学是在...

Global site tag (gtag.js) - Google Analytics