连线 4 个小时后,我从 CTO 脑子里“偷走的” 18 个认知 | Q推荐

2023-04-01 16:32:44 浏览数 (1)

有些同学天生就技术能力强,有些同学天生有业务思维,有些同学天生就有领导力,这些特质都是存在的。这类同学往往会在晋升的某个或某几个阶段走得非常顺畅,我们必须承认这一点。

但没有特别天赋的程序员,在这个高度内卷的时代就只能躺平吗?我也不这么认为。所以我在 InfoQ 视频号约了四位 CTO 级别的嘉宾,连线畅聊,全程四个小时,希望能得到一些技术人成长的高阶认知和方法。

以下是我的具体收获:

1、优秀的同学一般有三个共同点:(1)逻辑思维优秀;(2)能长期保持好奇心,对技术问题喜欢追根究底;(3)不会轻易地投入某个技术领域,但一旦投入,就要付出时间,做到优秀。

2、3-5 年的时间,足够现在的小伙伴在某个领域成为技术专家。但大部分同学的问题在于没有坚持做一个技术方向,而是在不同的技术方向间摇摆,这是比较关键的问题。真正的技术大牛,其实也没有在智商上有特别大的优势,但他们往往会深耕某一个领域。

3、每个同学的职业生涯都会从调 Bug 开始,但有的人会觉得调 Bug 是个低阶工作。实际上,调 Bug 并不是低阶的工作,而是提升技术能力最好的捷径。如果你将它当成单纯地改错,那就没什么营养,成了“调 Bug 机器”;但如果你通过调 Bug ,需要深入了解模块和架构设计,思考别人是怎么写代码的,那就有很大的价值了。上来就写出优秀的代码是不可能的。

4、经常有同学学了很多知识,但没什么进步,是因为知识的框架没有搭建好;知识的框架没搭建好,是因为初期的调研没有做好。调研最重要的是找大咖聊,聊完以后,要不断迭代自己的“能力雷达图”。首席架构师、研究员、CTO,能力雷达图都是不同的,要基于框架和目标学东西。这个时代不是信息不够,而是信息爆炸,要学会取舍。不能用战术的勤奋,替代战略上的懒惰。

5、开源是新手特别好的提升路径,也是“简历镀金”的利器。先去找到和自己工作相关、和未来发展方向相关的开源项目,然后从文档修改开始参与开源项目(找错别字也算)。同时,很多开源项目也会给大家设置新手挑战,包括一些简单的 Bug 修改,非常便于上手;当你通过改 Bug 对一个模块足够熟悉,就可以关注邮件组,提出一些新的想法;审核通过后,就可以负责该模块的开发;负责的模块足够多后,就有可能被提名成为 Commiter。

6、这样来思考,刷题 or GitHub,哪个更适合程序员提升?毫无疑问是 GitHub,刷题只能帮你度过成长的前半段,到了后半段就会陷入瓶颈。生活不是场考试,生活是实践。

7、编程语言是每个程序员的基本工具。学编程语言不怕多,多多益善。学习编程语言,一方面是为了解决具体问题,另一方面是为了了解软件的设计思路。C 语言和 Java 语言,除了语法不同,更多是背后编程和思维模型的差异。

8、学新的编程语言,如果你追求边际效应最大,那么建议去学一门编程思想和你的“第一语言”完全不同的语言。

9、反过来看,学习第二门语言的速度和难易度,取决于你对于第一门语言的研究和应用,达到了何种程度。很多大佬能用 1-2 周的时间精通一门语言,是因为他的知识储备足够深厚,看各类编程语言都能触类旁通。

10、大家关注的响应式编程还在演化的进程中,未来能否成为主流还是未知数。要更好地理解响应式编程,最好要有函数式编程的基础。

11、Rust 的火爆,是因为它填补了行业内的一个生态空缺:能够做系统编程的现代编程语言。此前,能胜任系统编程工作的语言,除了古老的 C 和 C 就没有其他的选择了,它们的编程模型和语法机制都存在很多问题。Go 号称能解决系统编程问题,但实际上是解决 Kubernetes 之类的基础设施问题,还没有深入最底层。

12、如果你对软件设计、编程模式有了足够的理解,学习 Rust 的难度就会降低。可以尝试关注 Rust 提供了哪些行业罕见的问题解决方式,比如所有权模型等,这些是全新的编程思路。为什么 Rust 缺省的变量不允许赋值?如果你学过函数式编程思想,可能就更容易理解。Rust 为什么没有构造函数?你也可以深入考虑下这个问题,有助于加深对 Rust 的理解。

13、度过程序员时期后,下一阶段是成为架构师。要明白,架构师的成长大概可以分为三个阶段:(1)1-3 年经验:能够用某种语言、 IDE 、框架,解决具体的业务问题;(2)5-8 年经验:形成自己的业务体系,即了解当前的业务形态,能承担多大的技术成本,并且知晓在未来的 1-2 年内,能否实现业务目标;(3)10 年以上:具备技术以外的能力,比如决策力、领导力、影响力,等等。

14、优秀架构师的共同特征:(1)关注产品和人,而不仅仅是关注技术。只关注技术,一般会成为研究员;(2)技术基础十分扎实,而不是只会用框架,不了解底层原理;(3)时间管理一定做得很好,非常自律。

15、无论是技术管理者,还是技术专家,都位于金字塔顶端,属于稀缺职位。技术人的终局不仅限与专家和管理者,大家还是要聚焦把眼下的事做好,找到自己的节奏和成就感,不能只盯着这两条路,目前产业最需要的是业务人才。

16、不管年龄如何,企业需要能够解决问题的程序员。如果一个人学习能力强,代码质量高,工作成绩优秀,那将是企业一直需要的中坚力量,和年龄无关。真正的 35 岁中年危机,不是因为到了 35 岁却没有成为位于金字塔顶端的 CTO, 而是当你 35 岁的时候,工作能力和 25 岁程序员的能力是一样的,那自然也拿不到超过 25 岁程序员的薪水。

17、到了一定阶段后,要明白:人应该有自己的产品,无论是技术产品还是业务产品,这是一个人的标牌。大家有时会觉得自己的生活很重复、很机械、很无趣,很没有成就感。这个问题的根源就在于,在一定的时间里,你没有做成任何一件事情。先做成一件事情,再去想自己后面该怎么办。

18、不是成为管理者,就一定是加班狂魔,生活和工作一定可以达成平衡。如果一个公司很忙,但有丰厚待遇、有成就感、有成长,那就不妨闷头干一阵;如果一个公司又累又没有成就感,忍受不了,不妨离职。如果离职却没有好的 Offer,说明个人能力还有问题。所以所谓的 Work-Life Balance,大多是通过个人能力实现的。

当然,直播的内容更精彩、更丰富,你可以关注 InfoQ 视频号、官网,获得后续的精彩内容剪辑。

后续,我们还将继续在 InfoQ 视频号发起对你有帮助的直播,制作有收获感的视频。欢迎你在文末留言,告诉我你想看的内容,定制自己的 InfoQ 视频号体验。

9 月 1 号,《数据安全法》将正式落地,趁此节点我们会联合信通院云大所联合举办一场视频号直播,直播的主题会围绕《数据安全法》正式实施展开,并邀请法律、互联网、数据安全等领域的专家进行参与。

欢迎大家预约围观!

0 人点赞