写点什么

我眼中的工程师的十个特质

用户头像
张驰Terry
关注
发布于: 2021 年 04 月 18 日

不想当将军的士兵不是好士兵,没有好习惯的工程师无法持续进步,今天我给大家整理在过去 7 年的工作经历中,遇到的优秀工程师中,他们难以被模仿且又宝贵的特点。

1.极强的执行力

新人工程师加入一家公司,刚开始主要的工作可能是修复软件缺陷或者整理一些文档,这时候在工作上新人既是战友又是竞争关系,一些有挑战或者激发创造力的工作机会一旦出现,在项目组中,往往市场经理,测试开发工程师和技术经理更倾向于给执行力强的新人,因为:

•对于市场经理,执行力强的开发人员能更快交付产品,完成客户签约•对于测试开发工程师,执行力强的开发人员能更快修复问题•对于技术经理,执行力强的开发人员能更快解决问题,留下应对风险的时间,而且发现问题,立刻解决问题 执行力强,给大家会很快留下好的印象,例如充满活力,积极响应。

2.每天学习

•如同每天刷微信朋友圈,每天都需要分配固定的学习时间•不耻下问(“指天资聪明而又好学的人,不以向地位比自己低、学识比自己差的人请教为耻”。) 软件开发和建筑设计有很大的区别,建造完成一个房子后,除非房子有严重的缺陷,基本不会推倒重来,而软件开发却很不一样,软件是不断拥抱变化的,所以对于开发者而言,随着新技术,新业务的发展,都会要求开发者不断去学习新技术,例如机器语言-》汇编语言-》高级语言-》机器学习,静态页面-》富交互页面-》SPA/移动开发-》小程序。如果开发者树立一个在 30 岁前,要学完或者学好所有开发技术,这本身就是一个不可能实现的目标,软件开发就是终身学习的过程。对于当前领域的技术,例如前端开发,要了解其发展的历史,了解基本原理,例如浏览器引擎,开发套件,分工模式,对于前端未来的发展方向,例如 ServerLEss,IOT,可视化应用开发等等。在一个商业产品的研发团队中,即使你是一个资深的工程师,也可以常常请教团队年轻的工程师,他们又不一样的思维,对于业务也有自己深刻的理解,对于技术领域的真正大师,要敢于提问,也要学会提问。而且要学会读书,读书就是站在巨人们的肩膀上看世界

3. 相信技术

我经常会想起大学 Java 开发的老师说过一句话,"解决问题方法的数量一定比问题多",开发者无论是擅长沟通的人或者内敛的人,其实大家碰到棘手的问题,内心都会有点愁,尤其碰到自己毫不了解的领域,更是有点抓瞎,其实相比 20 年前的互联网,大家都是特别幸福的,我们有这么多解决问题的渠道:

•更大的研发团队•Stack Overflow、Google、Github•业务牛人的咨询•技术外包团队•开源项目研究•付费的商业定制方案•书籍,论文 一定有一个方式可以当前的业务的规模的问题 大家在研发过程中的快乐不能仅仅通过平庸的工作,一定要通过战胜一个个挑战,平凡人,做不平凡的事情

4. 懒惰 DRY

DRY 只“Don't repeat yourself”,不要做重复的事情,有这样一个理论,我们的工作中 80%的价值来源于 20%的工作时间,那 80%的工作时间怎么开心舒服度过呢,软件开发者就需要学会做一个懒人,例如:

•我是一个运维,我需要经常登录很多虚拟机,为了每次都重复输入快速登录的脚本,我可以使用 SecurityCRT 或者 ssh 这样工具或登录方式•我是一个 UE,我可以将常用的 UI 组件抽象成 Sketch 套件,减少业务涉及的重复设计•我是一个架构师,我可以封装一套项目脚手架,例如 vue-cli 或者 SpringMVC•我是一个开发者,我可以将我的 VSCODE 配置或者 mac 程序安装都封装成标准的 shell 脚本

我们可以使用工具把重复的事情,流程化,自动化,简化,利用我们的创造力,把复杂的事情都隐藏起来,留下一句话就能说明白的内容,留下一行指令就能搞定的事情

5. 做工程师而不是搬砖师

工作中,假如开发者要求进行某个接口的开发任务,例如小明开发一个接口,用于获取 BI 所有的报表,如果小明初入职场,他的工作主要有三个:1. 开发接口 2. 告诉前端调用者接口怎么用 3. 配合提测,这也只是做完基本的事情,如果要想做好,就得多问一些内容。

•这个接口是在哪个版本上线?•是否需要灰度?•涉及哪些端的调用?•接口无权限或者错误情况下如果区分?•接口文档定义在哪能够使新开发者也理解?•提测的流程和规范是什么?•。。。。开发者也许会说,不就是开发个接口,怎么还这么多事,这就是做好和做完的区别,做完只能代表你是个搬砖师,有基本的技能而已,但是做好,代表你有思考,你每次都会审视自己的工作,规避产品上线后的风险,完善团队的开发方式,这样子,你才是正式开始自己的工程师之路。

6.极客精神

Google 有这样的工作规则,开发者每周可以有 20%的时间用于做一些有创造力的事情,帮助产品的增长,据我所知,硅谷很多公司有这样的 Hackson Day。例如纷享的前端开发工具 Alpha

7.重视技术原理和业务

在未来的赛跑中,重视技术原理和业务的人才,一定是稀缺的。

1.为什么雅虎的设计原理?这与浏览器的渲染引擎,http 原理有关 2.为什么 Nodejs 能做到高性能?尤其是非阻塞的模型。3.静态资源缓存的原理?http 的请求头信息有关 4.小程序的原理?多层渲染引擎,Worker 有关 5.如果提高算法性能?1. 优化算法细节 2. 空间换时间 6.JavaScript 的执行流程?词法定义和语法定义 -》词法分析-》语法分析-》解释执行 7.JSAPI 的原理?native bridge 和 js 通信 很多时候,工程师确实主要参与业务开发,不需要了解原理,但是技术的基本原理在做技术选型,技术改进的过程中,就尤为重要,投入时间研究,结合自己的工作,就会有种突然发现桃花源的感觉。而对于业务而言,技术服务于业务,业务也可以成就技术。

8. 乐于分享

开发者将自己的学习方式,业务认知,技术理解,填坑挖坑经历共享出来,对于开发者而言,不断提炼自己的知识精华,锻炼写作的能力,对于被分享者,可以扩展眼界,丰富自己的“人生词典”。开发的分享方式:

•技术博客•技术社区•制作专题课程•开源框架,例如 vuejs•知识汇总 awsomexxx•翻译计划•业务团队内的演讲,分享•业务团队的 WIKI

9. 谦虚:成就自己,成就他人

凡事谦虚,能让自己走得顺走得远,赢得好的口碑,在团队之中,也是互相成就,赢得大家的支持,能做更大更难的挑战

10. 保持健康

软件开发无论是 996,还是 007,无论哪种工作方式,大家都需要一个健康的体魄,积极的身体状态,大家知道陆奇,扎克伯克很多知名的互联网人,之所以能够投入很多精力,一定是有好的体魄,要不然怎么能够续航呢?例如都会每天跑步 5 公里,每年参加各种形式的健身

发布于: 2021 年 04 月 18 日阅读数: 23
用户头像

张驰Terry

关注

科技创造价值 2017.10.17 加入

专注于SAAS产品和技术架构已有9年时间,业务领域一直专注于CRM SaaS 和 Office SaaS,技术上侧重于前端,目前在前端领域有两个深入的重点,一为 协同软件相关的全栈开发,另一个是CRM Paas 相关的平台工具研发。

评论

发布
暂无评论
我眼中的工程师的十个特质