如何成为一个成功的软件工程师

在这篇文章中,我们将讨论成为一个成功的软件工程师需要注意哪些要点,以便于鞭策自己也成为一个成功的软件工程师。

背景

上周,我参加了印度德里最值得期待的会议——C# Corner annual conference。如果你需要了解更多,那么请点这里。当我知道我有机会聆听大师级谈话的时候,真的非常惊喜。我学到了很多。下面我会把我听到的来自于Mr. Glenn Block的关于“如何成为一个成功的软件工程师”的要点分享给大家。这些内容激励了所有的与会者。Mr. Glenn Block是一位前微软员工,他曾在微软工作了近10年,并且他一直是Azure、WCF、.NET等的一部分,目前,他正担任着Splunk的首席产品经理。

我在写这篇文章前得到了Mr. Glenn Block的允许。

如何成为一个成功的软件工程师?

我发现Mr. Glenn Block提出的所有建议都非常有意义,并且我们每个人都应该好好学习。

不要害怕失败

我们是开发人员和程序员。我们也是人,我们也会犯错。你是不是没有任何错误就创建好了软件无关紧要。反倒是如果你这么说了,那么你可能需要确定你的软件是否能够正常工作。记住爱因斯坦有一句名言:“不要害怕失败。”

不要害怕失败,失败是你最好的老师。我们都曾犯过一些导致我们失败的错误,但更重要的是要从错误中学习。如果你这样做了,那么也许你的下一次尝试就成功了。

如果你从来没有失败过,那么说明你畏头畏尾,从来没有尝试过任何新的东西。

不要害怕寻求帮助

我们都工作在一个会犯错会失败的环境中。所以,你不应该害怕寻求别人的帮助。这样可以减少你的工作压力,并让你能够按时交付产品!而这正是你的经理对你的要求。有时候,你的后辈也能指引你走向正确的道路。所以,不要害怕寻求帮助。让你的自负随风而去吧。

做一个持续的学习者

这个时代每时每刻都有新事物被发明被创造。这在IT行业也是如此。每一天都有新的东西需要学习。在一天结束时,你学到了什么才是最重要的。你应该尝试所有与开发相关的技术。同时,重要的要掌握其中一些技术。

你不能掌握所有内容

在看完以上几点之后,你的脑海中可能会出现这样一个念头:“我怎么才能学习所有的内容呢?”当我说要成为一个持续的学习者时,其实这受你真正能学到什么的限制。你只需要去尝试你认为对你的编程生涯有帮助的技术。当然,正如我在上面所说,你必须掌握其中的一些技术。

重视你的代码

在你写代码的时候,只要确保代码确实能用一种清晰和易于阅读的方式如愿实现目标即可。我的朋友,Mr. Dhananjay Kumar说Mr. Glenn Block写代码就像是诗人在写诗歌一样,非常值得我们借鉴。此外,代码的可维护性也非常重要,否则维护这些代码的人搞不好在几天/月/年之后就得经历一场求生不得求死不能的痛苦。

找导师,成为导师

老师能够传业授道解惑,能帮助我们理解学习的内容。因此,找到一个能指点正确方向的导师尤为重要。向你的导师学习,因为导师可以教你许多他/她从他/她的生活中总结出来的内容。正如大家都知道的,“经验让人完美”!一旦你学会了,那不妨也成为别人的导师,分享你从你的导师那里学到的知识。当然,在做导师的时候,请确保不要误人子弟。

不要拖后腿

不可否认我们周围有不少拖后腿的人。虽然没有强制要求说所有人都必须优秀。但是有时你可能会不得不和一个消极被动的人一起工作。但是重要的是,你得保持住自己的乐观和主动性。

不要过度承诺

我们的项目都有时间期限,这是我们都知道的。你在时间框架中能做什么是有限制的。要去理解那些。当你接受需求列表时,你应该清楚你需要付出什么样的努力以及多少时间才能完成工作。如果不能满足你的经理/客户给出的时间框架,那就随时告知报告人。发布如他们期望那样而非满是bug的产品很重要。所以,千万不要过度承诺。如果你这样做了的话,那就准备好再找一份工作吧。因为你可能会被炒鱿鱼。

永远不要在你想说“No”的时候违心地说“Yes”。

正确的想法不必是你的想法

这一点还需要我解释吗?

我们都在工作,我们都有脑子,我们都有自己的想法。有时候你的后辈也可以教你很多,有时候他解决问题的速度快于你。承认这一点,并赞同他们给出的解决方案。集思广益将有助于按时交付项目。重要的是,这能帮助你做到不以自我为中心。

做一个良好的倾听者

做一个良好的倾听者,意味着你可以通过他人的角度来看事情。这将丰富你的阅历提高你的声誉。如果他们错了,你就向他们解释他们错了以及为什么。

测试,测试,还是测试

测试是软件开发周期中最重要的角色之一。没有经过适当测试之前永远不要发布你的产品,因为测试是捕获bug的阶段,而bug是为客户和管理者所不喜的。如果你认为你已经做完测测试了,那么再做一次。

问:开发人员说的最多的谎言是什么?

答:我已经做过单元测试了。

模式

始终追求适合你项目的最相关的模式。如果你根据自己的要求选择模式的话,它可能会在最后的周期使你功亏一篑。

问:软件开发中最重要的阶段是什么?

答:需求收集或需求理解。

成为社区的一部分

这一点也非常重要。你需要成为一些社区的一份子,因为这些都能给我们提供帮助。推荐一些很不错的社区:

C# Corner

MSDN

ASP.NET

Stack Overflow

Code Project

这种方式可以让你在网络世界中被大家所关注。分享你的所有知识,并尽可能地从各种资源获取知识。

致力于OSS(Open Source)

如果你得到一个机会可以致力于开源项目,那么一定不要错过,一定要勇往直前。这将增加你的声誉,因为开源项目正在被数十亿用户使用。

结论

最后但并非最不重要的一点,如果有任何遗漏的地方,欢迎给出你的建议和反馈。

====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-08-02 13:43:19

如何成为一个成功的软件工程师的相关文章

一个合格JAVA软件工程师应该具备什么_java

想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,在面试之前到底需要准备哪些东西呢?面试时面试官想了解你的什么专业技能,以下都是一个合格JAVA软件工程师所要具备的. 一.专业技能 1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等. 2.熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练

一位软件工程师的7年总结

1.分享第一条经验:"学历代表过去.能力代表现在.学习力代表未来."其实这是一个来自国外教育领域的一个研究结果.相信工作过几年.十几年的朋友对这个道理有些体会吧.但我相信这一点也很重要:"重要的道理明白太晚将抱憾终生!"所以放在每一条,让刚刚毕业的朋友们早点看到哈! 2.一定要确定自己的发展方向,并为此目的制定可行的计划.不要说什么,"我刚毕业,还不知道将来可能做什么?","跟着感觉走,先做做看".因为,这样的观点会通过你的潜

一位软件工程师的6年总结收藏

"又是一年毕业时",看到一批批学子离开人生的象牙塔,走上各自的工作岗位:想想自己也曾经意气风发.踌躇满志,不觉感叹万千--本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标.本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是废话吧. 谨以此文献给那个自己为你奉献3年青春与激情的开发团队.还有团队成员:PPL.YT.YK .TYF.LGL.CHL.CDY.CB.DPD. 1. 分享第一条经验:

一位软件工程师的7年总结 [转]

原文出处:http://www.oschina.net/discuss/thread/500 1.分享第一条经验:"学历代表过去.能力代表现在.学习力代表未来."其实这是一个来自国外教育领域的一个研究结果.相信工作过几年.十几年的朋友对这 个道理有些体会吧.但我相信这一点也很重要:"重要的道理明白太晚将抱憾终生!"所以放在每一条,让刚刚毕业的朋友们早点看到哈! 2.一定要确定自己的发展方向,并为此目的制定可行的计划.不要说什么,"我刚毕业,还不知道将来可能

作为一个初级软件工程师如何更好的为以后的发展做准备?

问题描述 我是一个初级软件工程师,来公司不到一个月,现在每天的工作量不是很大,我想知道,如何利用工作之余的时间为以后的发展做好准备.我现在有些迷茫,希望各位有经验的大侠可以给点建议,谢谢了 解决方案 解决方案二:我个人认为做软件,首先你得需要一定的天赋,没有这方面的天赋最好还是干点其他适合自己的,搞开发最重要的是思路问题,如果你有思路,不怕做不出来(针对一般的项目开发,如果是大型的项目或许还需要像设计之类的其他方法),像现在的j2ee开发,大部分都是分层的,每个层都有相应的框架,表现层:stru

软件工程师所需掌握的“终极技术”是什么?

最近,我在微博上看到@程序员邹欣老师发的一条微博 - "不少大学同学都有一个想法:先做几年技术,然后做管理:也有一些同学说:我技术不行,希望直接找到一个管理的工作,就像PM那样.请看 PM 需要什么样的能力:(链接略去)".在读这条微博的前一部分内容时,我的第一反应是:难道同学们以为做技术管理不需要很好的技术功底?刚好在此之前,我写过<技术敏感度 - 基层技术管理者必备>一文,强调技术功底对于基层技术管理者的重要性.于是,我对该条微博评论了:"建议邹老师建议他们好

明星软件工程师的十种特质

如今,每家公司都似乎成了科技公司.从软件创业公司到投机性投资公司.制药巨头和媒体巨头,它们都越来越多地加入到软件业务行列. 代码质量不仅成为了一个必需品,更成为了一个竞争优势.因为众多公司围绕软件而竞争,开发软件的人--软件工程师正显得越发重要.但是,你该如何发现那种百里挑一的程序员呢?在本文中,我们简明扼要地列出了明星开发人员的10种特质. 1. 热爱编程 编程是一种为了满足兴趣而心甘情愿去做的劳动(Programming is a labor of love).和其他任何职业一样,唯有真正的

软件工程师的职业之路

原文:http://blog.csdn.net/ladofwind/article/details/19103915 记得看过某篇文章写到21世纪世界范围内最好的前十大职业有软件工程师一项,平心而论,应该说缺少的是良好职业素养的,有经验的,合格的软件工程师. 从国内招聘网站上的数据也能看出来,近些年由于移动互联网,互联网的蓬勃发展,以及因为互联网对传统行业的整合一系列影响,软件工程师需求一直很旺盛,另一方面,高校的计算机专业培养出的人与企业需要的人有差距,所以知名大学的硕士博士首先有更多的机会进

【高端黑】软件工程师去理发店

今天在公司加班,不知不觉发现头发已经把眼睛都遮住了,每写一行代码得把甩一下头.我知道这样很帅,但是身为一个软件工程师,光帅是没有用的,还是会被卒子吃掉,要有内涵才能做一个IT浪潮中的弄潮儿,所以我决定去把头发剪一剪,以便把甩头的时间省出来,提高工作效率.  走进理发店,一个穿着得体,颇有文艺气质,但是个子有点小的美发助理带我去洗了洗头,我和他聊了聊郭敬明的小说.这样文学的话题很快拉近了我与发廊小弟的距离,他显然很高兴,说帮我找一个手艺很好的美发师,剪完头发后一定能马上找到女朋友,我嘴角露出了欣慰