《左耳听风》技术专栏

2023-06-12 pv

上周花了点时间,把陈皓老师的专栏《左耳听风》大致看了一遍。

这是一个在极客时间上订阅受众极多的专栏,具体的链接在:https://time.geekbang.org/column/intro/48。🔗

尽管陈皓老师已于 2023 年 5 月 13 日离世,但从那些文字里,我们依然可以感受到,一个踏踏实实做技术的人对于技术本身的尊重。

做技术,同样也是做人,这是我从陈皓老师身上感受到的。

整个专栏,内容很多,涉及的范围和领域也比较多样,关于职业选择、职场规划、管理,以及分布式系统、编程范式、区块链,还有程序员进阶攻略等。

我比较关注最后一个部分:一个初级程序员,如何一步步成长为资深程序员

于我而言,目前工作三年,顶多算初入门径,要学的东西有很多,除了技术,还有时间管理、职业规划等。然而这种东西,学校不教,社会又需要,最好的办法不是自己硬着头皮摸索,而是找一个好老师,结合老师的指导和自身特点,找到一条适合自己的路。

1. 关于程序员

写程序是一门“手艺”,因此程序员就是个手艺人。作为一个手艺人,最重要的就是把自己的活儿练好,然后靠手艺谋生。

这是程序员这个职业存在的底层逻辑。

程序员,从本质上来说,和古代的木工没有太大区别:客户交代任务,按时、保质、保量完成。只不过木工用的是刨子,程序员借助的是电脑,一个处理木头,一个加工数据。所以“码农”这个标签,真的很贴切。

评价一个木工水平优劣的,是做出来产品的质量,能否用半个世纪,产品结构是否足够精巧,甚至于是不是除了自己,其他木工都做不出来。客户当然愿意花大价钱买单。

程序员也是如此。

所以,程序员面临的主要矛盾只有一个:把活儿练好。

当然这里还有其他因素需要考虑,比如这个活儿自己是不是喜欢,社会是不是需要,客户是不是会买单,等等。

所以陈皓老师总结了一些经验:

  • 去经历多数人经历不到的,把学习花在比较难的地方
  • 写文章就写别人没有写过,或者别人写过,但我可以写得更好
  • 更重要的是,技术和知识完全可以变现

简单归纳一下,就是差异化竞争。稀缺的才可能有价值。

只要你所掌握的手艺,一社会需要,二有一定门槛,三你可以做得不错,那么你的竞争力就比别人强,就有溢价,否则就得靠“卷”,以量换价,用 996 和加班来提高自身的”竞争力“。

最近我也一直在思考技术变现的事,初步有一些思路,只不过还没有落地看效果。

比变现更重要的是先专注的把事情做好,本末不能倒置。当然如果能尽可能在较短时间内完成商业闭环,自然很好。

刚工作那阵很少想这些,觉得在公司工作,然后公司给发工资,是天经地义的事,靠劳动换取经济回报。很少去想自己究竟给公司创造了多少价值,公司本身又是如何盈利的。

总以为那是管理者应该考虑的。后来看到微软总裁纳德拉的一句话,很受启发:

即便目前还不是管理者,也应该拥有管理者思维。

把自己作为一家公司。

技术变现,就是让自己这家公司盈利。同时因为市场会无情地完成定价,在价格调整的过程中,我们真实地认识自己,提升自己,改变自己。

关于技能变现,陈皓老师总结了几点经验:

  • 千里之行,始于足下,从小的成功开始,先去做,然后优化,拿出最小可行产品(minimum viable product, MVP)
  • 关注有价值的东西,这个关乎技术敏锐度,了解”势“,在学习技术过程中重点了解:
    • 这个技术解决了什么问题
    • 为什么别的同类技术做不到
    • 为什么这样解决,有没有更好的方式
  • 找到体现价值的地方,最好是在一家高速发展的公司
  • 动手能力很重要,除了抽象的判断,也要有落地的解决能力
  • 关注技术付费点,一个是能帮别人“挣钱”的地方,一个是能帮别人“省钱”的地方
  • 提升自己的能力和经历,比如开源软件的核心开发者,或者公司核心项目的开发等,我的理解,就是打造个人 IP
  • 找到有价值的信息源,所谓“取法其上,得乎其中”
  • 输出观点和价值观,博客就是一种很好的途径,借助输出倒逼输入
  • 朋友圈很重要

2. 关于领导力

通常来说,技术人向上走的职业路径大致分为两类:技术负责人,以及管理。

据我了解,中国特色是做管理通常比做技术更有“钱景“。在中国很少听说四五十岁的程序员,但是看 GitHub,看 Quora,五六十岁的程序员比比皆是。

我也一直在想,难道纯做技术真的走不通?

从陈皓老师的文章中,我找到了一些答案。

归纳来说,阶段不同,价值不同。

现阶段,在我们国家,公司的早期发展,很少靠技术优势,更多是人脉、资源整合,还处在增量空间的发掘中,相比而言,西方国家发展更早,已经进入存量空间的精耕细作。在不同阶段,技术优势所带来的价值是不同的。

做技术,还是转型做管理,不同的人有不同选择。我倒是觉得,做一个有技术背景的管理者,应该是一个不错的路径。

关于技术领导力,陈皓老师的总结是:

  • 尊重技术,追求核心基础技术
  • 追逐自动化的高效率的工具和技术,同时避免无效率的组织架构和管理
  • 解放生产力
  • 开发抽象和高质量的可重用组件
  • 坚持高于社会主流的技术标准和要求

而拥有技术领导力的人,一般有这么几样特质:

  • 能够发现问题
  • 能够提供解决方案,并能比较各种方案的优缺点
  • 做出正确的技术决定
  • 用更优雅、更简单的方式解决
  • 能够提高代码或软件的扩展性、重用性和可维护性
  • 用正确的方式管理团队

要求很高,但并非完全做不到,至少对于一名普通的软件工程师而言,可以朝着下面几点去努力:

  • 扎实的基础
    • 编程
      • C 语言
      • 编程范式
      • 算法和数据结构
    • 系统
      • 计算机系统原理
      • 操作系统原理
      • 网络
      • 数据库
      • 分布式架构
  • 非同一般的学习的能力
    • 学习的信息源
    • 与高手交流
  • 坚持做正确的事
    • 提高效率的事
    • 自动化的事
    • 掌握前沿技术
    • 知识密集
  • 不断提高对自己的要求
    • 强调实践,学以致用
    • Lead by Example

大致总结,就是两点:自底向上的打基础,自顶向下的工程实践

做好自己,不断提高影响力,带领一个团队和组织去争取更大的胜利。

这便是我理解的,所谓“领导力”。

3. 关于职业规划

陈皓老师将人生分为两个阶段:

  • 20-30 岁,打基础。这个阶段要的是开阔眼界,打扎实基础
  • 30-40 岁,发展。借助前面打下的基础,扩大自己的职业影响力,然后做出点或大或小的成就

每个人背景不同,选择也有差异,没有完全一致的职业规划。不过还是有些共性可以参考:

  • 了解你自己,你是谁,喜欢什么,擅长什么,只有自己清楚
  • 确定自己要什么,目标明确,路径大致就确定了
  • 注重长期的可能性,《远见》这本书里也提到,“大多数人都过短估计了职业的年限”,多做一些有利于长期发展的事情

对于程序员而言,编码能力固然很重要,但是技术视野、技术洞察力,以及我们如何用技术解决问题的能力更重要。

关于职业规划这一块,我不算过来人,经验不多,只是想起一则小时候看过的故事:

记者问工地上搬砖的三个人,一个人说,我在搬砖,第二个人说,我在工作,第三个人说,我在从事一项伟大的事业,建一座美丽的教堂。

4. 程序员进阶之道

这部分专栏里的内容特别多,而且都是干货,陈皓老师不仅分门别类,提纲挈领整理了一系列文章和导读,而且里面充满各种链接和资源。

  • Linux 系统、内存和网络
  • 异步 IO 模型和 Lock-Free 编程
  • Java 底层只是
  • 数据库
  • 分布式架构入门、经典图书和论文
  • 微服务
  • 容器化和自动化运维
  • 机器学习和人工智能
  • 前端基础和底层原理
  • 前端性能优化和框架
  • UI 设计

除了理论的学习,更重要的是“Let your hands dirty”,多写代码!

5. 总结

在信息时代,不缺信息,缺的是高质量的信息发现。人都是环境的产物,优质的信息源,从最开始就将不同的人区分开,每日被高质量信息滋养的人,他的认知、判断、理解能力,注定非凡。

我们应该尽可能将有限的时间用在处理和吸收这样的信息上。

就像健身一样,吃优质蛋白,肌肉塑形感才会更强。

当然,理论也得结合实践。

编程本就是是实践性极强的工作,写不出来,talk is cheap。

(完)

参考

  1. 极客时间——左耳听风🔗
  2. 远见🔗
在 GitHub 上编辑本页面

最后更新于: 2024-06-14T07:12:04+08:00