近日,美国在线求职社区CareerBliss.com做了一个调查。它分析了从 2013年2015年来自全美超过 2.5 万家独立公司的员工评论,从10个影响公司员工幸福感指数的因素(与上司和同事间的关系、工作环境、工作资源、薪酬、成长机会、公司文化、公司声誉、日常任务、对每日工作表现的控制)考量,并结合员工职务和薪水,打分评出了全美前十位最幸福又多金的工作。
而在这十个职位中,与技术相关的职位就占了三个,分别为首席技术官、产品开发高级副总裁、软件工程高级总监,虽然看上去这些已经是管理职位,但一个成功的管理者,定然也是位让人尊敬的技术大神,就像想要做一个优秀的工程师,就必须先是一个优秀的程序员一样。
说到程序员和工程师,相信很大一部分人会觉得这根本就是一个概念,其实不然,程序员与工程师有着本质的区别,简单来说:程序员(Coder)只写程序,他们能熟练地运动代码实现功能,而工程师(engineer)要懂得底层机制、会设计代码和系统结构,要知道一个具体实现在应用场景和执行机制在原则上具体的不同,从而书写合适的代码、使用恰当的算法,在现实世界中创造价值的程序。
开发一款成功的软件一般需要六个阶段:
需求分析→→整体架构设计→→编码→→测试→→实施→→维护
软件工程师是可以从头到尾把握整个过程的存在,而相较之下,程序员只不过是把设计好的功能实现了,基本上也就是按图施工、完成输出罢了,比如要建造一座房子,软件工程师就相当于总指挥,而程序员相当于建设的工人。
21世纪是互联网的时代,是以,在这个信息技术高速发展的时代,成为一名优秀的工程师变成很多年轻人的追求,那么如何做才能成为一名优秀的软件工程师呢?
1、编写高质量的代码
如前所说,想要成为一名合格的工程师,首先你得是一个优秀的程序员(如果还不是的话只能来牛耳教育再深造一下了),而优秀的程序员除了精通至少一门编程语言外,还应具有良好的编程习惯,这样不仅有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
2、建立良好的思维习惯
良好严谨的思维方式,可以让自己在碰到某些情况的时候迅速定位问题所在解决问题,除此之外,还要提高对事物的认识和培养深邃的思考习惯,技术需要深挖,需要扎根,需要刨根问底,否则不可能把一个事情做好。
因此在学习一个东西的时候,如果能够进行横向的学习,深入进行挖掘,那么一定能够在里面悟出很多别人所不知的道理,开发就是不断地重复不断的超越自己的一个过程,而优秀的软件工程师大多都是这样过来的。
3、高质的产出和解决问题的能力
优秀的软件工程师不会盲目地编写项目代码,他们会确定每个问题的目标,找出问题的根本原因,并找到解决问题的合理方案。他们能够在代码质量和开发所耗时间上做出很好的权衡,严格控制技术风险,不断完善自己。
4、团队精神
团队精神和协作能力是程序员应该具备的最基本素质,优秀的软件工程师所写的代码不仅能够让机器高效地执行,更重要的是能够方便其他工程师阅读、改进和使用。
5、精益求精,甘于磨练
优秀的软件工程师具有长远的眼光,使他们能够承担起各种困难的软件项目,无论什么情况下,比如紧急的项目,时间不足还是项目复杂,不要妥协,你工作的质量代表了你是否是一个称职的工程师!