张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

如何成为更优秀的工程师?

嵌入式资讯精选 2018-10-28 09:51 次阅读
来自Heap(一家主要为企业提供用户数据分析架构的企业)早期员工Michael Malis,就如何成为一名更加优秀的工程师给出了自己的日常训练方式: 读论文; 学习一种新的工具; 读书; 录屏。 其中第四点比较有趣,大家感兴趣可以直接跳到第四部分,看看他是如何具体实施的。以下为正文。 如何成为更优秀的工程师? 我的成为更好的工程师的方法是建立一套训练体系。这套体系里有一些固定的练习,我每周都会进行。设计这套训练体系有两个非常明确的目标: 学习解决之前不会解决的问题; 学习如何更快更好的写程序。 训练计划主要是由四个练习组成的,每一个都会帮助我向上面的两个目标前进。这四个练习是: 读论文; 学习新工具; 读书; 写程序的时候录屏。然后回顾一下,看看能不能写得更快。 下面我会详细地介绍一下我是怎么做的。我想分享一些练习的细节,还有我从中获得的收益。 读论文 这项练习的目标是拓展CS相关的知识。在这之中我发现有两方面直接收益。第一是一些论文可以改变我对一些固定问题的思考模式。举个栗子,The Tail at Scale这篇论文验证了反直觉的长尾延迟的本质。 其中我认为比较有趣的是关于在大量机器上运行一个请求是怎样影响延时的问题。作者研究了Google一项服务的实验数据。这项服务将请求拆分,然后分发给不同的服务。 他们用数据评估了一下,将请求分发给100个服务的情况。作者发现,如果你测量从100项服务获得回复的时间,一半以上的时间花费在等待最后五项服务的回复上。 这是因为最慢的5%的请求要比其他请求慢非常多。论文也给出了一些方法来降低长尾延迟。我发现这些方法,在我这边的一些工作上也可以用。 第二个好处是我发现读论文可以让我融会贯通不同系统的知识。举个栗子,Google的分布式数据库Spanner。 Spanner用了很多不同的技术,比如Paxos、two phase commit、MVCC和predicted locks。通过阅读相关论文,我就能建立对于这些不同的技术的理解。这可以让我以一个整体来理解Spanner,并且和其他系统比较Spanner的利弊。 我读的论文主要来自于以前读过的论文的参考文献或者Morning Paper的封面文章。Designing Data Intensive Applications这本书的参考文献里也有很多值得一读的论文。 学习新工具 解决问题最简单办法之一就是用一个解决这种问题的工具。这个练习就是选一个工具,然后学习一下它。 通常我的练习过程就是,安装工具,练几个教程,然后简单看看手册。我这么学过的工具范围从bash指令比如JQ、Sed到分布式系统比如Kafka、Zookeeper。 学习bash指令让我解决日常问题的效率提升了很多。类似的,学习不同的分布式系统可以让我明白如何针对不同的问题运用不同的工具。 读书 我用书来补充从论文里或者学习工具无法获得的知识。我读过的书主题范围比较广。比如最近读过的: Refactoring– 这本书让我明白好的代码是什么样的,以及如何将不好的代码转化为好的代码。 Getting Things Done– 这本书让我明白如何安排工作的优先级以及如何追踪工作进展。它帮我建立了一套体系来确认优先完成重要的工作。 The First Time Manager– 最近我刚好做了团队管理员,需要协调不同的团队一起工作,还要主持团队会议。这本书有助于我理解管理的基本原理。 录屏 这个训练是我的最爱。这个练习也是对我解决问题改变最大的。运动员经常会看自己的录像来让自己做的更好。 所以我决定也这么搞一下,来提升编程能力。我从自己的录屏里学到的经验包括: 它可以帮助你在写代码的时候就测试代码。这样可以通过快速定位Bug来减少DEBUG方面消耗的时间。如果之前的代码都没有Bug,那Bug肯定是在你新写的代码里。 当DEBUG时,针对要DEBUG的对象专门添加函数是非常有必要的。举个栗子,之前一个玩具的项目,我要写一个LRU缓存。写了个Bug,它不能清除正确的元素。这时我就可以快速地添加一个打印当前缓存状态的函数来看一下是哪里出问题了。之后我就可以看一下缓存的期望状态和现在实际情况的差别。这样就可以让我快速定位Bug。 在开始写代码之前,花五分钟决定一下方向会非常的有效。这么做有两点好处。首先是能够确认方向是正确的。更重要的是,这样可以强迫自己选择单一的方向。因为看了我的录像后,我发现我在选择实现方向上经常犹豫很长的时间,其实两个方向都还OK。 所有这些经验现在回顾的时候都很明显。但是在我看录像,发现我在哪里花费大量时间之前都没有能够系统地将这些经验总结出来。 我做这项练习的步骤是: 记录一些我写程序的录像。可以是工作中的,也可以是在LeetCode这种刷题网站上刷题的时候。 十倍速看一遍录像,并且记录每个时刻我在做什么。 然后统计一下在大的类别上分别花费的时间。比如花了多少时间DEBUG,花了多少时间写功能。 看看花时间最长的类目。然后仔细研究下为啥花费了这么长的时间。 提出一些能够让我节约时间的方法。有一些办法可以让我把代码结构化,然后可以让我少写一些代码或者更快找到Bug。 我强烈推荐写代码的时候录屏。这是一种最简单的不断做一些小的改变来让自己效率更高的方法。 这套训练策略我坚持差不多一年了。感受到自己发生了很大的改变。学到了很多之前没有学过的关于系统和工具的知识。 现在解决问题也要比之前快。希望你能考虑一下这些练习,然后自己也尝试一下。
原文标题:如何成为更优秀的工程师? 文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。
收藏 人收藏
分享:

评论

相关推荐

明德扬FPGA开发板培训华为设计经典笔试面试xilinx视频教程altera

  FPGA笔试面试教程1.本课程共包括40个视频内容,全由潘老师主讲2.本课程基于至简设计法思想,明德扬的特
发表于 01-23 00:00 945次 阅读
明德扬FPGA开发板培训华为设计经典笔试面试xilinx视频教程altera

HLS Stream案例分析

第二步,不设置任何directive,直接执行C综合,此时会显示如下错误信息。该信息表明,在非dat....
的头像 电子发烧友网工程师 发表于 04-24 17:36 86次 阅读
HLS Stream案例分析

目前数据分析师的招聘需求如何?评价待遇如何?

从薪资来看,数据分析师确实是高薪职位,基本上是10k起步,能开30k的公司也不少。从薪资分布区域来看....
的头像 电子发烧友网工程师 发表于 04-24 17:32 67次 阅读
目前数据分析师的招聘需求如何?评价待遇如何?

如何满足本地化差分隐私进行众包位置的数据采集

针对位置数据众包采集中个人位置隐私泄露的问题,提出了一种满足本地化差分隐私的位置数据众包采集方法。首....
发表于 04-24 17:14 11次 阅读
如何满足本地化差分隐私进行众包位置的数据采集

嵌入式工程师的真实现状,月薪8千or年薪40万?

一名一线企业嵌入式软件工程师的笔者,想通过自己的实际经历理性地评论当今嵌入式行业的真实状况。 嵌入式的定义和举例分析 ...
发表于 04-24 09:52 181次 阅读
嵌入式工程师的真实现状,月薪8千or年薪40万?

如何解决爬虫被封的问题

如果你在爬虫过程中有遇到“您的请求太过频繁,请稍后再试”,或者说代码完全正确,可是爬虫过程中突然就访....
的头像 电子发烧友网工程师 发表于 04-24 09:47 117次 阅读
如何解决爬虫被封的问题

怎样成为优秀的嵌入式linux工程师

目前,Linux作为嵌入式系统的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、....
的头像 工程师人生 发表于 04-24 09:47 144次 阅读
怎样成为优秀的嵌入式linux工程师

售前工程师的岗位职责

负责组织制定系统集成项目的技术方案编写、标书的准备、讲解及用户答疑等工作;
的头像 工程师人生 发表于 04-24 09:41 105次 阅读
售前工程师的岗位职责

LED代码查询V1.1应用程序免费下载

本文档的主要内容详细介绍的是LED代码查询V1.1应用程序免费下载。
发表于 04-23 17:12 38次 阅读
LED代码查询V1.1应用程序免费下载

工程师应该怎么写简历

招聘者每天要看成百上千份简历,也许在每份简历上花的时间不到5分钟。如果才能从许多简历中跳出来,吸引招....
的头像 工程师人生 发表于 04-23 16:45 184次 阅读
工程师应该怎么写简历

30份技术干货,攻城狮想要了解的全在这儿!

这是一份攻城狮不能拒绝的福利!30份技术干货, 涉及Iot产业发展、5G、工业物联网、智能可穿戴、智慧城市等领域精细划分 由微...
发表于 04-23 09:36 212次 阅读
30份技术干货,攻城狮想要了解的全在这儿!

java高级工程师的要求有哪些

从事java后端开发4年及以上,具有根据业务需求进行独立设计的能力
的头像 工程师人生 发表于 04-22 16:47 195次 阅读
java高级工程师的要求有哪些

什么是高级工程师

最近和很多认为自己是高级工程师的程序员聊过,发现了一个很显著的问题,大家以为自己会ssh,会点小模块....
的头像 工程师人生 发表于 04-22 16:42 177次 阅读
什么是高级工程师

成为JAVA高级工程师需要学哪些知识

至少要精通多门开源技术吧,研究过struts\spring等的源码。
的头像 工程师人生 发表于 04-22 16:32 199次 阅读
成为JAVA高级工程师需要学哪些知识

谈谈国外的工程师们怎样工作的?

外国工程师年纪都很大,曾有人表示先后与40多位外国工程师共事过。只有2位小于30岁。绝大部分是中年人....
的头像 电源研发精英圈 发表于 04-22 16:30 281次 阅读
谈谈国外的工程师们怎样工作的?

项目管理工程师的职责及权利

项目管理工程师是项目团队的领导者,其所担负的责任就是领导团队能够准时、优质的完成项目的全部工作,从而....
的头像 工程师人生 发表于 04-19 15:34 178次 阅读
项目管理工程师的职责及权利

请问教程P116页的代码怎么看出来是位置相关的代码?

教程P116页的代码,下图,怎么看出来是位置相关的代码? ...
发表于 04-19 07:45 129次 阅读
请问教程P116页的代码怎么看出来是位置相关的代码?

工程师如何培养解决问题的能力

手机响了,是一个实施工程师打过来的,说现场的数据采集不上来,问怎么解决。我问软件的版本,仪器的型号,....
的头像 工程师人生 发表于 04-18 15:48 189次 阅读
工程师如何培养解决问题的能力

爬虫工程师是干什么的 需要掌握哪些技能

互联网是由一个一个的超链接组成的,从一个网页的链接可以跳到另一个网页,在新的网页里,又有很多链接。理....
的头像 工程师人生 发表于 04-18 15:42 209次 阅读
爬虫工程师是干什么的 需要掌握哪些技能

Python爬虫工程师面试时的常见问题

一般面试官的第一个问题八成都是问一下以前做过的项目,所以最好准备两个自己最近写的有些技术
的头像 工程师人生 发表于 04-18 15:36 182次 阅读
Python爬虫工程师面试时的常见问题

一名爬虫工程师的苦与乐

每当数据检查不通过时,就会有点揪心,怕是又出了什么乱子。最可恨的就是网站改版,每次改版,原先设计的系....
的头像 工程师人生 发表于 04-18 15:30 196次 阅读
一名爬虫工程师的苦与乐

如何成为全栈工程师

一个天气应用,干净清爽的界面,天气信息一目了然。它不仅可以精确预测未来 10 天的天气,还可以显示某....
的头像 工程师人生 发表于 04-18 14:38 171次 阅读
如何成为全栈工程师

US-100超声波传感器的电气参数和进行测距的代码免费下载

本文档的主要内容详细介绍的设计US-100超声波传感器的电气参数和进行测距的代码免费下载。
发表于 04-17 17:28 45次 阅读
US-100超声波传感器的电气参数和进行测距的代码免费下载

设计素养对前端工程师的重要性

在很久之前我就说过同样的话,表达过我觉得做为前端工程师而言设计素养的重要性,今天我想聊天为什么我有这....
的头像 工程师人生 发表于 04-17 16:22 191次 阅读
设计素养对前端工程师的重要性

前端工程师需要掌握哪些技能

前端工程师是一个出现了10年左右,而颇受重视则是最近这五六年的事情。受到重视到前端从业人员井喷,也就....
的头像 工程师人生 发表于 04-17 16:03 200次 阅读
前端工程师需要掌握哪些技能

请问这个代码的内容是什么

/* */ #include sbit beep=P2^3; sbit dula=P2^6; sbit wela=P2^7; unsigned char i=100; unsigned char j,k,temp,ke...
发表于 04-17 11:19 159次 阅读
请问这个代码的内容是什么

数据量大时用集算器编写

数据分析用它就够了  37 个场景你要用集算器...
发表于 04-17 09:16 14次 阅读
数据量大时用集算器编写

自然语言工程师的岗位要求有哪些

改进推荐算法,提高推荐的精度;
的头像 工程师人生 发表于 04-16 17:23 200次 阅读
自然语言工程师的岗位要求有哪些

java后端工程师的换工作经历总结

我建议是第一是跟语言无关的部分,也就是所谓的基本功。具体也就是我们大学本科里面最头疼的那些东西,数据....
的头像 工程师人生 发表于 04-16 17:18 261次 阅读
java后端工程师的换工作经历总结

前端工程师的简历到底怎么写

其实前端工程师并不少,但很多时候合适的前端工程师难找。可能是由于程序员比较内向,前端工程师都没有把自....
的头像 工程师人生 发表于 04-16 17:08 252次 阅读
前端工程师的简历到底怎么写

一位测试开发工程师的面经总结

等价类划分法:输入的数据划分为有效等价类和无效等价类
的头像 工程师人生 发表于 04-16 17:01 224次 阅读
一位测试开发工程师的面经总结

腾讯测试开发工程师面试经历

了解到过完年回来很多大公司就开始实习生招聘了,我也在开学的时候就投了简历,内推和正式实习生招聘都参加....
的头像 工程师人生 发表于 04-16 16:56 433次 阅读
腾讯测试开发工程师面试经历

如何使用keil4创建一个合格的单片机项目

作为一个菜鸟,刚开始用keil编译c程序时应该注重代码的学习,而不是代码文件的结构,所有的.c文件、....
发表于 04-15 18:24 45次 阅读
如何使用keil4创建一个合格的单片机项目

使用51单片机进行四路抢答器的程序资料免费下载

对于这在被单片机课程设计折磨的小伙伴们,这或许是一个不错的选择!简单方便,成本低廉首先声明,本设计由....
发表于 04-15 18:24 41次 阅读
使用51单片机进行四路抢答器的程序资料免费下载

Phpstorm本地激活的安装方法详细资料免费下载

本文档的主要内容详细介绍的是Phpstorm本地激活的安装方法详细资料免费下载。
发表于 04-15 17:33 36次 阅读
Phpstorm本地激活的安装方法详细资料免费下载

怎样成为一名优秀的全栈工程师

全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full St....
的头像 工程师人生 发表于 04-15 16:25 264次 阅读
怎样成为一名优秀的全栈工程师

区块链工程师的能力需求有哪些

区块链工程师,目前能力需求大概有这些:
的头像 工程师人生 发表于 04-15 16:00 295次 阅读
区块链工程师的能力需求有哪些

利用代码和机器学习技术实现健康减肥,你听说过吗?

去年底有个沉寂了快两年的减肥贴在 Reddit 上又火了起来,什么呢?
的头像 机器人大讲堂 发表于 04-15 09:05 326次 阅读
利用代码和机器学习技术实现健康减肥,你听说过吗?

优秀的工程师有哪些特质

在我看来,一个工程师是否优秀,潜力如何,主要看有没有如下三个特质:
的头像 工程师人生 发表于 04-13 11:40 759次 阅读
优秀的工程师有哪些特质

作为一位IC设计工程师,该如何保持电路知识不过期不遗忘?

作为电子工程师,特别是电路工程师,如Analog IC, Digital IC Engineer,需要了解到电路、集成电路,数字电路、模拟电路、...
发表于 04-12 17:47 517次 阅读
作为一位IC设计工程师,该如何保持电路知识不过期不遗忘?

怎样才算是一名优秀的Java工程师

当今我国信息化处于发展阶段,数以万计的中小企业继续中高级别Java开发工程师,导致Java开发行业越....
的头像 工程师人生 发表于 04-12 16:42 327次 阅读
怎样才算是一名优秀的Java工程师

成为合格的售前工程师需要具备哪些技能及素质

闲着无事,想想最近被面试和面试别人时各个问题,自己总结了几条作为合格售前工程师需要具备的技能、素质,....
的头像 工程师人生 发表于 04-12 16:04 298次 阅读
成为合格的售前工程师需要具备哪些技能及素质

Effective C++中文第三版电子书免费下载

有人说C++程序员可以分成两类,读过Effective C+ +的和没读过的。世界顶级C++大师Sc....
发表于 04-12 08:00 55次 阅读
Effective C++中文第三版电子书免费下载

C语言编程培训教程资料免费下载

本文档的主要内容详细介绍的是C语言编程培训教程资料免费下载包括了:1. 排版,2. 注释,3. 标识....
发表于 04-12 08:00 75次 阅读
C语言编程培训教程资料免费下载

一位工程师的进阶之路

现在, 我工作满7年。 原本的计划, 是在工作满10年的时候, 有更多积累之后, 再来写一些能够帮助....
的头像 工程师人生 发表于 04-11 15:46 245次 阅读
一位工程师的进阶之路

【个人观点】如何成为一名合格的开关电源工程师,需要具备哪些知识?

(1)关于「开关电源工程师需要哪些知识」 以一个简单的Buck变换器的设计为例进行说明。 [图片来自:Erickson R W, Mak...
发表于 04-11 07:30 724次 阅读
【个人观点】如何成为一名合格的开关电源工程师,需要具备哪些知识?

人工智能会取代软件测试工程师吗

近几年,人工智能逐渐兴起,AI 助手、无人驾驶汽车、云端全功能芯片。..在媒体领域,机器人写稿、媒体....
的头像 工程师人生 发表于 04-10 15:40 298次 阅读
人工智能会取代软件测试工程师吗

AI工程师分哪些层次

每一波浪潮的到来,都意味一片无人占领的蓝海,也意味着众多新成长起来的巨头,还意味着什么?大量的技术人....
的头像 工程师人生 发表于 04-10 15:32 487次 阅读
AI工程师分哪些层次

嵌入式软件工程师待遇怎么样 当前企业需要哪些技术

想要了解嵌入式软件开发工程师待遇怎么样,那就先来看一下嵌入式软件工程师发展趋势怎么样,据市场分析,现....
的头像 工程师人生 发表于 04-10 14:57 329次 阅读
嵌入式软件工程师待遇怎么样 当前企业需要哪些技术

人工智能工程师需要具备哪些技能

当你在编程的时候必须能够对以上提到的这些基础知识进行应用、执行、修改或者处理。课后练习、编码竞赛还有....
的头像 工程师人生 发表于 04-09 16:51 753次 阅读
人工智能工程师需要具备哪些技能

怎样成为一名云计算工程师

云计算是一种通过互联网提供与计算相关资源的可扩展的方法。工程学科应用于这个概念则被称为云计算工程,它....
的头像 工程师人生 发表于 04-09 16:47 366次 阅读
怎样成为一名云计算工程师

怎样成为一名异构并行计算工程师

随着深度学习(人工智能)的火热,异构并行计算越来越受到业界的重视。从开始谈深度学习必谈GPU,到谈深....
的头像 工程师人生 发表于 04-09 16:41 357次 阅读
怎样成为一名异构并行计算工程师

高级PHP工程师应具备哪些条件

和所有程序员一样,要写一手好的程序,没有好的心态是不行的。
的头像 工程师人生 发表于 04-09 16:33 336次 阅读
高级PHP工程师应具备哪些条件

作为工程师是否可以一辈子靠技术生存?

我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的...
发表于 04-09 16:19 4185次 阅读
作为工程师是否可以一辈子靠技术生存?

日本软件开发工程师的前途

在一些论坛上面经常能够看到一些人,对这个行业的一些不太积极的评价。意思大概都是对日软件开发没有技术含....
的头像 工程师人生 发表于 04-08 16:08 227次 阅读
日本软件开发工程师的前途

JAVA工程师的前途怎么样

Java是门高端计算机编程语言,Java是门称霸世界的编程语言,Java还是门企业级编程语言,当下谷....
的头像 工程师人生 发表于 04-08 15:48 215次 阅读
JAVA工程师的前途怎么样

全世界都在推广编程教育 编程教育全球化

最近,据报道,日本文部科学省3月26日公布了全国小学从2020年度起使用的教科书的审定结果,共164....
的头像 电子发烧友网工程师 发表于 04-08 14:12 283次 阅读
全世界都在推广编程教育 编程教育全球化

可以使用此代码直接比较两个签名信号吗?

大家好, 可以使用此代码直接比较两个签名信号吗? 信号depth_mem_scaled:signed(31 downto 0):= to_signed(0,32); - ...
发表于 04-08 13:41 20次 阅读
可以使用此代码直接比较两个签名信号吗?

革命就在这里!欢迎来到TensorFlow 2.0

我们知道升级到新版本是一项艰苦的工作,尤其是当变化如此剧烈时。你是不是已经准备要开始迁移代码库到2.....
的头像 新智元 发表于 04-08 12:09 812次 阅读
革命就在这里!欢迎来到TensorFlow 2.0

G代码详解以及实例的详细资料说明

“形式代码” 的功能在它被执行后会继续维持,而 “一般代码” 仅仅在收到该命令时起作用。定义移动的代....
发表于 04-04 16:40 75次 阅读
G代码详解以及实例的详细资料说明

示例代码TSL V.2.4.0可以在STM8S105C6和STM8S103K3上运行吗?

我尝试在''Example01_STM8S207_RC_5k'中修改TSL V.2.4.0中的代码,以便在STM8S103K3和STM8S105C6上运行。 ...
发表于 04-04 08:18 26次 阅读
示例代码TSL V.2.4.0可以在STM8S105C6和STM8S103K3上运行吗?