如何从菜鸟训练成 CTO

一、概述

本人从事技术开发 7 年,参与大大小小项目有 50+ 个,合作的工程师有 40+ 人,合计带领过 7 个团队,最近越发感慨人和人之间的差距:

  • 有的工程师成长速度惊人,刚入职是初级工程师,但是一年后快速成长成高级工程师,除了项目经验少一点以外,其解决问题的速度和编程思路极快;
  • 有的工程师成长极度缓慢,其每日工作就是重复昨天的自己,从来不想如何提高与精进,也是我们常说的:“面向工资编程”。

为什么会这样呢?

复盘与我接触过的工程师,我发现非常优秀的人都具有某一类特质,因此本文将重点讨论什么样的人会具有「CTO」气质。

注:本文不讨论具体的技术,仅仅只讨论思想与训练方法,如何激发自己的热情,如何提高自己的执行力。

本文适合的人群

  • 初入职场,对一切都感到好奇的初级工程师
  • 工作了几年,但是对未来一直都在徘徊的中级工程师
  • 其他行业的职场新人(相信我,这些训练原理都是一样的)

二、优秀工程师都具有的特质

1、有强烈的好奇心

所有的优秀工程师,在协作时都会表现出强烈的好奇心,在他们看来没有自己学不会的技术,只要给一个方向就能立马去探索、学习。在他们看来,技术只是实现结果的工具,为了解决问题,开发时需要学什么技能就去学什么。编程语言只是他们探索这个世界的一种解决方案而已。

2、重视结果导向

优质的工程师不会死磕一门技术和难题,他们会站在结果上反推自己的工作方向和工作成果。比如:

生产环境的代码出现一个 Bug,用户每次下单时超过 10 次则金额会自动归零,但这个 Bug 可能是因为多方协作引起的,一时难以定位。

怎么办?

他们的解决方案可能会是:先 Hack 一下程序,让系统能运行,即每个用户单独判断,下单超过 10 次时强制设置重置初始化参数。等系统能正常运行后再去定位 Bug。

灵活运用二八法则,用最小的力气解决最大的问题。

3、有尊严,有好胜心

“你的作品定义了你自己”,优质的工程师内心都是骄傲的,不允许自己交付「差不多」的作品,每一次交付都要求自己比上一次做的更快、更好。


结合上文的内容,大家可以自己试着对号入座一下,如果你已经具有相应的特质,那么我恭喜你,下面的训练你可能会很轻松。

三、核心能力:结构化思维

看到这里,很多人可能会有疑问:你说的特质应该和每个人的性格有关吧?好像有的人天生就是那样的性格,而我天生就做不到啊。

刚开始我也是这样认为,觉得 CTO 或者成功人士都具有与生俱来的特质,认为他们天生就是那样的人。但是随着我接触的工程师越多,就看到了越多能迅速产生质变的人,从他们身上我逐渐意识到:

这些特质都是可以修炼的

人和人的差距,往往只在于视野和认知。而这些视野和认知,都源于他们是否具有结构化思维

什么是结构化思维?

「结构化思维」简单来说,就是面对问题的时候,可以通过某种结构,把它拆解成一个个你能解决的部分。在《麦肯锡:问题分析与解决技巧》一书里,对结构化思维有个简单的名词概况 —— MECE 分析法。

MECE 分析法,全称 Mutually Exclusive Collectively Exhaustive,中文意思是“相互独立,完全穷尽”,即把一个课题对象拆解、分类到最小单元,从而能做到从整体着眼,局部下手的问题分析法。

这对我们技术开发有什么用?

我来举一个我实际工作中遇到的例子。我们上线的 App 需要实现多语言版,我瞬间列出了相应的开发规划:

1. 整理出当前所有的后端代码里返回的中文字符,提供给产品部门翻译;
2. 由于代码里使用到第三方接口,第三方返回的数据都是中文,因此需要集成百度翻译;
3. 在代码框架里设置一个切换系统语言的功能类;
4. 在代码框架里设置好语言包的基础对应关系功能类;
5. 接口处理(这里把每个接口都写上):
    a. 注册登录接口
    b. 获取验证码接口
    c. 获取城市列表接口
    d. ......
6. 添加测试代码

这是我尝试使用 MECE 法则规划开发流程的好处,把任务拆解成最小单元,形成流程,好处主要有:

  1. 自己在开发时能保持专注,一次只解决一件事,从而能快速进入「心流」状态;
  2. 如果在开发期间被其他人打扰(比如突然叫去开会),回来后也能快速衔接上之前的工作;
  3. 由于任务拆解的比较细,因此每个任务的时间可以较好的把握,这样能从整体上掌控开发的时间;
  4. 这些拆解的子任务都可以分配给其他人协作,这也是架构师要具备的基本素质。

真正的工作,是不需要经过思考也能保证完美的交付

你可能感兴趣的:(如何从菜鸟训练成 CTO)