《左耳听风》技术专栏
2023-06-12
上周花了点时间,把陈皓老师的专栏《左耳听风》大致看了一遍。
这是一个在极客时间上订阅受众极多的专栏,具体的链接在: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。
(完)
参考
- 本文作者:Plantree
- 本文链接:https://plantree.me/blog/2023/zuo-er-ting-feng/
- 版权声明:所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
最后更新于: 2024-06-14T07:12:04+08:00