You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
8.2 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 结束语 | 从业 IT 20年后我将最看重什么
你好,我是陶辉。
经过3个多月的更新咱们这门课今天就正式结课了很感谢你的一路相伴我有收获很多的分享和故事这份信任弥足珍贵。
走到今天我入行已经有20年了那作为结束语最后我特别想和你聊聊我的一些心得体会就说说我最看重的两大能力吧希望能给你的未来发展带来一些正反馈
每次聊天提到程序员大部分人的脑海中总会跳出两个词996与35岁危机它们都反应了1个现实程序员的竞争压力太大了。**其实老板是无法逼迫你996的只有大量虎视眈眈盯着你职位、薪酬包的竞争者才能让你心甘情愿的加班让你为了度过35岁危机而不停地试图突破天花板**为什么程序员的供给量这么大呢?这既来源于中国庞大的人口基数,也因为资本、人才密集的互联网行业,为年轻人提供了罕见的高薪资、高成长机会。
程序员的平均薪资远高于其他职业这造成大量职场新人转行入互联网从Javascript、Android、Python等工程师做起这些语言形成闭环的路径更短入门更快寻求更好的个人发展。我有一些半路转行的朋友经常见到他们凌晨还在提交代码痛苦的转行过程让他们的自我驱动力无比强大。
各类院校也在为这个职业输送大量人才。在我上大学那会,只有计算机科学与技术这一个编程专业。现在,软件工程、网页设计各类专业层出不穷,而且,计算机课程已经成为各理工专业必修的基础课。
所以程序员普遍年轻35+的我已经是我们团队年纪最大的程序员了,这在其他行业实在是不可思议的事!另一方面,互联网仍然是一个朝阳行业,变化是永恒的主题。在开源盛行的当下,注定会有层出不穷却又不太稳定的新框架,只有深入的学习才能用好、改进它。所以,我们常常会让自己“忙”起来、“学”起来,这样似乎可以忘却焦虑。
**那焦虑是什么呢?在我看来,就是对未来的自己是否仍具备竞争力的不确定感。**如果只是在不停地学习新语言、新框架那么35岁的你竞争力一定不如25岁的你因为对框架的熟练度是不值几倍薪资差距的。我认为有两个能力可以消除这种不确定性它们不会因为新技术迭代每次都让你数据清零后重新开始。
## 构建知识体系最需要什么?
**首先,是不局限于一招一式、构建知识体系的能力。**当你还未对某个领域形成知识体系时,只能解决曾经遇到过的相似问题,或者仅涉及单一知识点、能够从网上查询到答案的简单问题。而基于新技术做架构设计,或者定位涉及多个系统的复杂问题时,知识体系是最值得依赖的灯塔,它能指引你前进的方向。
知识体系可以将散落在脑海中的知识,通过逻辑联系在一起,形成庞大的网络。**知识点之间的联系线条越多,网络就越健壮,越能应对不确定性;网络越大,覆盖的领域越广,你能解决问题的价值就越高!**所以,我们需要结网的能力!
比如你学习了某个人脸识别框架的用法通过API把它集成到系统中此时该技术与已有知识体系是割裂的。在你了解CNN网络知道它只不过是一种聚类函数后就能通过数学知识把它联结到知识网络中在了解到密集浮点运算下保持精度的方案与主流IEEE-754方案间的差别后你又可以从数值计算维度上与常用的编程语言关联起来从GPU、CPU对并行计算的设计差别上你还可以在计算体系架构这条线上增强知识体系从分布式模型训练系统中找到分而治之的思想你就可以从算法上连接网络等等。
概括下的话我认为构建知识体系最需要的其实是底层知识两个看似无关的技术可以再往下看一层找找它们共同的理论基础建立逻辑关联。我认为下面3个底层知识对结网的帮助最大
* 数据结构与算法,我推荐你精读《算法导论》这本书,程序是由数据与算法构成的,这条线几乎可以连接所有技术点。
* 计算机网络知识,它可以连接所有涉及互联网的技术,这也是我推出[《Web协议详解与抓包实战》](https://time.geekbang.org/course/intro/100026801)这门课的初衷。
* 最后是操作系统知识,毕竟所有的软件都需要通过操作系统才能操作硬件。
另外咱们在给知识体系添砖加瓦时一定要注意知识的正确性否则网络越密后续修复成本就越高。我一般建议你尽量去源头寻找第一手知识虽然有时这并不容易。比如学习HTTP/3协议时我们只能去看那5份RFC文档但RFC文档的结构设计是作为参考手册使用的它并不适合首次学习此时我们还可以借鉴一些权威高手基于一手知识分享的“二手”文章这能让你更快地看懂RFC。
## 好的“表达力”能为你插上翅膀
**第2个最能对抗“焦虑”的是表达力。**做技术的同学通常对跟自己技术水平差不多,但因为表达力更好、从而拥有更高职位的同学不屑一顾,我曾经也是这样,总觉得咱靠的是“真才实料”,不是嘴皮子。这是一个很大的误区,它与你的职业发展密切相关。
如果团队里有3位同学1位技术最好却不擅言辞1位擅长管理、调动团队氛围1位擅长表达你觉得谁的职业发展最好呢其实是最后那位因为当团队向上级汇报工作时他最容易让团队的工作得到认可从而获取更多的资源把事情做成使人人都有好处。久而久之他就会获得更多的提拔机会。
我想你多半遇到过那种沟通起来特“费劲”的人,说话总是找不到重点,这样他就只能做一些简单的、不需要协作的工作。现代社会是需要高度协作的,如果没办法说清楚你的工作成果,你的价值就会大大缩水。当然,好的表达力不是无中生有,也不是能说会道,毕竟你面对的都是专业人士。
在职场中,由于沟通对象时间有限,所以采用金字塔方式表达效果最好。比如,当我向老板汇报工作时,我会在第一时间讲结论,然后再按照重要性顺序讲论据。否则,他同时要处理的事务比我广得多,如果我不能快速让他抓住重点,就很容易失去这次沟通机会。再比如我写这个专栏时,大家同时订阅了那么多课程,时间非常珍贵,我必须在每节课起始就开宗明义地给出场景,把各种对立面引发的冲突列出来,如果它能聚焦你的视线,我就会在正文中层层递进地讲下去,每一段总是为了引出下一段,防止在碎片化阅读时代里丢掉你的注意力。
那如果你想学习金字塔表达方式的话,我十分建议你精读《金字塔原理》这本书,这也是写作本专栏时,我的编辑推荐给我的,对我的帮助非常大,现学现卖推荐给你。
总结而言,我希望你拥有“结网能力”。构建广泛、结实的知识网络,可以帮助你提升竞争力、减轻“焦虑”,面对新技术时不用清零重来;但当你无法将新学的知识纳入已有知识体系时,不妨把眼光放低点,从底层技术中找找关联。 我还希望你拥有“表达能力”。再硬核的知识体系也需要通过优秀的表达力,转换为动听的语言和精练的文字,再通过互联网跨越时空,让你跳出公司,在整个行业中提升影响力、竞争力。
希望这2种能力能帮助你在大的技术洪流中站稳脚跟从无数的竞争对手中脱颖而出。最后祝你工作顺利也希望这门课能成为你抵抗焦虑的武器之一。
最后的最后我还为你准备了一份毕业问卷希望你能用2分钟的时间填写一下。大胆表达自己期待听到你的声音
[![](https://static001.geekbang.org/resource/image/05/ca/05d7e6b6ccff9f23968349fff4a5d2ca.jpg)](https://jinshuju.net/f/TSUkPN)