有些事儿,工程师可能今生仅此一次

郑昀 创建于2016/9/15 最后更新于2016/9/18

关键词:深度思考,碎片化阅读,做论文,深入研究,

早先在《技术高手如何炼成》一文中提到,我会问面试者,你日常如何构建自己的知识体系。有人会觉得你怎么就问出这么宏大的问题?知识体系,这是什么鬼?

面试时的交谈

工作之后你做过这样的事情吗?

面试是一个谁主张谁举证的过程,有时候需要面试者举出实例,自我证明。

而我认为问一些我们工作中遇到的难题和业务场景是在“欺负”面试者,所以我喜欢问开放型问题:

在你工作之后,你有没有像做毕业论文一样对某一个 Topic 做过深入研究?如果有,请举例,说得越详细越好。

为什么要问这个问题?

因为我和面试者之间经常会发生这样的对话:

我:平常看什么技术网站?

Ta:某某技术新闻站,某某博客网,某某微信公众号……

我:最近有什么觉得不错的文章,印象比较深,能给我讲讲吗?

Ta:……

我:#¥^&#讲个标题也行。

Ta:想不起来。

我(汗):那你平常怎么学习的?你毕业之后通过哪些方式构建自己的知识体系,讲给我听听。

Ta:看书(经过追问发现最近几年其实没读完过几本书,甚至连书名都记不住几个)。看视频(网络教学视频)。看技术网站(多半停留在首页上……)。跟朋友聊天(QQ群,微信群,……,斗表情包,无比巨大的噪音)。

我:这样吧,你工作之后有没有针对工作中遇到的某一类问题,抽象出一个 Topic,有针对性地调研和做试验?

Ta:……有吧……

我:你说的这个事儿,其他公司是怎么解决的?

Ta:……

新员工的试炼

我会告诉面试者,你来了之后,除了做业务之外,还必须做一个技术预研课题,课题范围可大可小,你不仅仅要做试验,还要公开分享你的所思所得。

WHY?

因为微信里收藏10000+篇技术文章,

因为知乎里收藏10000+个答案,

因为云笔记里离线复制了10000+篇文章,

……

很快乐,但并没有什么卵用。

碎片化阅读是很舒服,但意义不大,看似每天收获满满,其实都成为过眼烟云。重复一下著名的学习金字塔留存率观点:我们读过的,知识留存率是10%。

我和面试者之间还经常会发生这样的对话:

我:这个思路/技术选型是谁提出来的?

Ta:技术经理/领导/项目经理……

我:有没有比较过其他实现思路?请讲一下各自的优缺点。

Ta:领导让这么干的,所以没比较过……

针对某一个课题,深入思考,多方调研,做试验证明,很多工程师可能今生仅此一次:他大学毕业时做毕业论文的那次…………

如果长期满足于东点点,西点点,今天可能是 Webpack、npm、Gulp,明天可能是 Spark、机器学习、流式计算,假设你过目不忘,知识的广度倒是有了,但缺乏深度,长此以往,可能彻底毁掉了深度思考的能力。

所以,我们要“训练”,强制性要求你从定义问题开始,训练自己主动搜索、主动链接、主动构建知识、主动试验、有始有终的能力。

定义问题

首先我们提出的问题,它必须是有重要意义、急需结果、目标是商用,但可能没有现成的、确定的解决方案,同时这个问题必须能够给整个团队创造学习机会,提供发展个人和组织技能的机会。

那么通过讲述我们看到了什么,想解决什么,通过你我不断的思考和讨论,直到你能清晰地抽象出一个明确具体的问题——这个时候,问题其实已经解决了一半。

举例。

我们的平台由数以百计的形形色色分布式服务构成,每一个请求一路走来,会经过多个业务系统并留下足迹,并产生对各种 Cache 或 DB 的访问。作为访问入口的 App 开发部门首当其冲会接到用户投诉,然而请求会被随机分配到集群的各个节点,所以找到对应的日志片段,理清调用关系,找到在哪里断的,成为一个令人生畏的工作。

如何解决?前提是先定义出一个好问题。

拿“分布式系统”、“集群”、“日志”、“排查”等等关键字,去搜索,去看各种顶级团队的博客,去看各种架构师演讲资料,终于把问题聚焦于“分布式跟踪(Distributed Tracing)”这个命题。

于是,问题被抽象为一个 Topic:

如何实现分布式跟踪:追踪每个请求的完整调用链路,收集调用链路上每个服务的调用参数和异常堆栈,统计每个服务的性能数据;可视化调用链,可视化服务质量。

主动构建知识

曾经看到过这么一句话:

只能不断地学习基础知识以及和这个技术(问题)关联的知识,就像 Wikipeida 一样,当你进入一个词条的时候,就会伴随一堆新词条,于是,当多年后,我看到 “知识广度是深度的副产品”这句话时,简直就是说到我的心里去了

仍以上面的例子举例。

确定了分布式跟踪的大方向之后,我们可以收集整理出各个公司在这个 Topic 上的实践,Google的Dapper,淘宝的鹰眼,Twitter的ZipKin,京东商城的Hydra,eBay的Centralized Activity Logging (CAL),大众点评网的CAT。

接下来我们还可以整理出它们的架构思路和优缺点,我们可以发现有的解决方案对工程侵入太重,给开发者造成了额外的负担,有的解决方案依赖于该公司特有的、闭源的技术体系。

主动做试验

怎么设计试验,通过什么数据,打算证明什么,这也是一种能力。

举例。

在实现实时数据大屏的时候,我们的一位工程师在 MySQL+Canal 后接入分布式消息队列时,试验了 Kafka 和 RocketMQ,目的是,第一求证能否确保严格的消息顺序,这是数据库变更订阅希望看到的,第二做一下压力测试,比较一下二者的性能。

有始有终

我这里说的有始有终,包含几个意思:

毕竟这是一个商业应用,是要上线的,前前后后都要考虑清楚。我们考虑哪些点?首要的就是监控报警。其次是线上数据如何迁移,线上应用如何接入。再次是性能。

公开分享你的所思所得,不仅做,还要写下来,还要说出来。你一定要输出你在这个问题上构建的知识结构,帮助自己,帮助大家,共同进步。

如是重复再重复,训练再训练,不妨试试看遵循 70-20-10 的学习法则:70%的学习时间放在针对现实生活和工作中遇到的任务、问题解决,20%的学习时间放在人与人之间正式的、非正式的反馈、辅导,10%的时间学习知识和信息(可能是碎片化的学习,也可能是读书)。

这样可能像把你装进一个沙袋里吊起来,从四面八方用狼牙棒打你,酣畅淋漓。

-EOF-

欢迎长按二维码订阅我的微信订阅号『老兵笔记』

赠图一枚:

这棵树长得很程序员

RT 王大神仙:你是开发,她是产品,你跟他PK了一天需求,她需求有了,你的代码呢?

时间: 2024-11-12 05:55:54

有些事儿,工程师可能今生仅此一次的相关文章

前端工程师说明(仅以自勉)

现在,一位合格的前端工程师,必须对视觉设计有兴趣. 很显然,要处理大量的Web应用程序需求,技术任务就要进行分类,以便于多人同时处理网站请求.事实上,现在已经不可能一个人快速地解决所有的技术细节了. 1.前端的误解 大多人都认为前端开发是一个[相对于其他模块来说更简单的领域],在他们心中的前端工程师是这样工作的的: 1.把Photoshop文件.图片或者线框放进一个网页: 2.偶尔设计Photoshop文件.图片或者线框: 3.用JS编程,为网页制作动画.过渡效果: 4.用HTML和CSS编程,

成长秘笈:是你教我,不是我教你

郑昀 20180622 “谢谢你,你是第一个面试的时候跟我说这么详细的.那我到你们公司之后怎么就能成长了呢?” “你们这些人最大的问题是出不了方案. 为什么出不了方案? 因为没有养成深度思考问题的习惯. 实现方案.算法.数据迁移.准备数据.实施.故障排查.解决线上问题……思路都是别人定的. 领导让干什么就干什么. 也不去问为什么.为什么是这样,为什么不是那样. 在我们这儿做事方式不是这样的. 是你教我,不是我教你. 是你告诉我方案,整个方案,从前到后的方案,长什么样子.而不是我告诉你,然后你去执

全栈开发工程师,就是个神话~

原文地址 这篇文章很有道理,如果放在十几年以前,说全栈工程师,还可以,那时的 Web 站点的访问量不是很大,大都是一台 Web 服务器和一台数据库服务器,采用分离的结构,更有甚者,Web 服务器和数据库服务器是同一台服务器,一个工程师,就可以完成所有的工作,包括,用 Oracle 或 MySQL 建立数据库,编写 Web 的前端和后端,前端包括 HTML,CSS,JavaScript,后端则可采用 Java,PHP,.NET,更有用 Lisp 的.现在的大网站,都是由当初的小网站起步的,即便是

一级注册消防工程师

一级注册消防工程师正式考试是于2015年开始的,2017年是一级注册消防工程师考试的第三个年头. 一级消防工程师自开考以来就颇受大家关注,每年报考的人数也很多,但是一级消防工程师难考也是众人皆知的,不过接下来上元喵给大家分析分析2017年大家赶上的一级消防工程师机遇~ 1 人才需求量大 随着大众越来越重视消防安全,在未来的3到5年内,我国需要近50万注册消防工程师,需求面广.由于2015年才开始的一级注册消防工程师考试,2016年考生还未拿到消防工程师证书,市面上只有2015年考生拿到了消防工程

如何处理服务器SSL收到了一个弱临时Diffie-Hellman 密钥?

处理服务器SSL收到了一个弱临时Diffie-Hellman 密钥 当我们用火狐浏览器打开某个HTTPS网站时可能会失败,并且出现如下错误提示:         安全连接失败连接某个URL网址时发生错误. 在服务器密钥交换握手信息中 SSL 收到了一个弱临时 Diffie-Hellman 密钥.         错误码: ssl_error_weak_server_ephemeral_dh_key) 如果换用谷歌Chrome打开这个相同的网页也会发生错误,并提示:            服务器的

ios客户端发现_动画屋后期页面重构与悬浮评论分享模块开发项目总结

从"看世界杯送流量"项目,遇到响应式布局问题之后,专门钻研了这方面专业的书籍,同时阅读了相关文章.响应式布局简单的说就是使开发的页面在不同设备上都有友好的效果.而最开始"暑期动画屋"的项目,当时并没有采用响应式布局,虽然ipad上可用,其他设备则会有显示问题.这也暴露了,目前所在移动业务事业部前端的问题:    1.考虑到响应式布局在不同设备上,UI设计师只给了一套UI原型图,而在不同设备上的显示只是根据前端工程师的理解或个人偏好来完成布局.从产品经理的角度以及测试

Stack Overflow大揭密:哪一种程序员工资最高?

Stackoverflow在程序员之间可以說是无人不知无人不晓,甚至常有人开玩笑说:“如果stackoverflow倒闭了,全世界代码的产出率将下降一半以上”或许听起来有点夸张,但是不难想像这个网站在软件界中扮演的重要地位. 你知道根据stackoverflow统计,最受欢迎的程序语言是那一种吗?快来一探究竟吧! 「Stack Overflow开发者调查」是由全球著名IT科技网站Stack Overflow发起的,专门针对该站注册开发者用户的问卷调查活动.该调查已经持续了三年之久.去年的调查是近

阿里工业互联网平台“思考”:一场从0到1的蜕变

阿里云总裁胡晓明(花名孙权)曾在一场媒体采访中透露了自己的业务秘籍,说他永远记住两句话,一是"拓展商业边界",二是"商业驱动技术进步". 这句话不失为阿里的真实写照.的确,企业的安身立命之道,从来都不止于实验室里的技术,更要让技术产生商业价值,形成一个良性循环,为整个产业链乃至生态圈谋利益.但要说技术与商业无缝结合的企业,阿里可谓典型一家,比如阿里生态.蚂蚁生态.菜鸟生态,都是这一模式的缩影:再比如2018广东云栖大会,我们看到了从技术引入商业的背后逻辑. 产业发展

系统集成项目管理工程师教程 第二版下载,仅供学习交流使用

系统集成项目管理工程师教程 第二版下载,仅供学习交流使用下载地址:请点击这里进行下载 系统集成项目管理工程师教程 第二版下载,仅供学习交流使用下载地址:请点击这里进行下载 原文地址:https://www.cnblogs.com/dabear/p/9283364.html