如何成为一名优秀的软件工程师?

时间:2016-07-19 09:22:07    来源:信狮教育    已有人浏览
分享到:
导读:在决定对软件做出改变的时候,大多数工程师会马上行动。刚开始的时候,工作会很简单,但是随着项目的发展,对代码做出改变会变得越来越困难。

  一. 简洁性较少代码数量

  在决定对软件做出改变的时候,大多数工程师会马上行动。刚开始的时候,工作会很简单,但是随着项目的发展,对代码做出改变会变得越来越困难。究其原因,主要就是因为积累了太多代码,代码变得越来越复杂。随着软件的活动件越来越多,软件的维护就会越来越难,潜在的bug也越来越多,构建和测试的时间也会越来越长……在这样的代码上工作,无可避免的会加大工程师的工作难度。

  “我没有时间写短信,所以我就写了一封长的。”

  — Mark Twain

  使用更多的代码,通常是懒人的解决方式,而并非最优的解决方式。你应该用更多的时间去寻找更简单的解决方式,最好能让代码的数量变少。

  二. 经验减少代码数量

  我认为,一名软件工程师会经历一下三个阶段:

  1.在深渊中挣扎。我们都经历过这个阶段。尤其是在刚入行的时候,这个时候你要尽可能多的吸收知识。你想要自己做出正确的事情,但是由于缺少经验,以及由于时间上的压力,你很难写出高质量的软件。你会犯很多的错误,而这些错误正是你学习的手段。最理想的情况下,你身边会有很多经验丰富的工程师,他们能给你提供支持和指导。

  2.自以为是阶段。在这个阶段,你会觉得自己已经掌握了软件的堆栈、语言或是框架。你在这个时候能够做出不多的软件,而且倾向于编写大量的代码,而且里面有大量的“神奇代码”,或是与一般的编程方式背向而驰的代码,因为你会觉得“我的代码编写方式更好”。或许每一个开发人员都曾经犯过这样的错误,我们甚至会觉得自己已经不再需要继续学习新东西了。反正我自己就曾经很多次的犯过这样的错误。

  3.成熟阶段。当你在回顾以前所写的代码的时候,如果你有这样的想法:“我怎么会把代码写的这么复杂?完全没有必要啊。”或者“我之前怎么没去查查其他人都怎么解决这个问题呢?”,那么这意味着你已经理解了软件工程师都会犯的那些错误,度过这个阶段,你就能够做出更好的解决方案了。

  “程序是给人写的,要让人能读懂;能被机器运行,只是程序的附加属性。”

  在我看来,人们对于软件工程最大的误解在于,很多人将软件工程师视为代码机器。他们认为写代码是我们最重要的工作。人们给软件工程师抛来一个问题,我们能够写下解决这个问题的代码。但是这种理解并不正确。我们的工作是解决软件问题,让软件达到一定的质量和可靠性,让它可以满足工作环境的需要。而这个过程中,写代码并不是我们唯一要做的事情。代码编写其实像是一个粘合剂,将我们的经验和知识连接在一起,但是它并不是我们所关注的最重要的事情。

  三. 深刻的理解减少代码数量

  

 

  在编写和维护软件的过程中,最糟糕的副产品是什么?大多数人会说是“技术债务(technical debt)”。技术债务有很多种表现形式,但是其中最主要的,与源代码有关。我想要强调,不仅仅是那些写的不够好的源代码会产生技术债务。标准、框架、甚至是语言,都有可能随着时间的推移出现变化。那些在某一个时间段下写的非常好的代码,在过了几年之后,也很有可能变得不可用,或是兼容程度不够高,从而需要软件工程师对其进行大规模的重构。

  如果你有着几年的编程经验,你一定有过类似的经验,在回头看自己几年前写的代码时,你会发现这些当时写的非常好的代码,如今需要你重写。对于许多软件工程师来说,寻找最佳的技术解决方案是我们的天性,也是我们热爱这一行的原因。几年前的你对于技术和代码认识还不够深刻,而几年之后,随着你的理解逐渐加深,在解决同样的问题的时候,你将会写出更好、更简单的代码。

  改写代码从来就不是一件容易的事情,无论是在代码编写的过程中,还是在代码已经完成之后。即使那些写的最好的代码,到了未来的某一个时段,它都会变成技术债务。在代码写完几年之后,未来的工程师(甚至是你自己),在理解这段代码的时候都有可能遇到困难。

  沟通是关键。不仅仅是工程师和非技术人员之间的沟通,还包括工程师之间的沟通。如果你能找到一种可以解决同样的问题,但是对代码数量需求更少的解决方式,那它就是更好的解决方式。

  总结

  从某种意义上看,人们对于软件工程师的要求,就是要打破自己的直觉和自然反应。也许吧,但是作为一名软件工程师,最重要的东西,就是“KISS(Keep It Simple, Stupid)。

  我知道我在这篇文章中说的可能有些夸张了。对于一名软件工程师来说,很难在每天的工作中只写少量的代码,但是请记住,代码数量少,出错的可能性就更小,而且未来的维护工作也会更少。

  • 高中毕业打工没前景,选择北大青鸟信狮教育让她重新出发

    高中毕业打工没出路!怎么办?北大青鸟信狮教育学技术,找好工作。

  • 石念孝:北大青鸟深圳信狮圆我高薪白领梦

    姓名:石念孝年龄:26岁学历:中专就职企业:深圳易思博软件技术有限公司就职岗位:Java软件工程师就业薪资:5700元公司简介:深圳市易思博

  • 易*斌:有梦想,敢拼搏,成功永远不会迟到

      姓名:易*斌  学历:中专  年龄:32岁(就读时24岁)  毕业时间:2010年9月  入职企业:深圳市*狐科技有限公司  职务:运维主

  • 史*锐:高中落榜不放弃成功逆袭

    姓名:史*锐就职企业:深圳*诺华科技就职岗位:软件工程师就业薪资:6000元高中毕业遗憾落榜,我在深圳这边找了份销售的工作,但是做了一段

  • 陈*同学:从军人到工程师的蜕变

    姓名:陈*同学班级:3T127学历:本科年龄:27就业企业:太*计算机股份有限公司就业岗位:JAVA软件开发工程师就业薪资:6000我来自江西上饶

热点专题 更多 >
热门标签 更多 >
视频 宣传片 电影 教学 C 媒体报道 权威 网站 就业问题 企业 研究生 前途 名牌 起跑线 职场 毕业生 凤凰网 新浪网 周边 故事