历时 5 个多月、40 讲的操作系统知识我们已经学完了。更准确地说应该是 50 讲,这最后一讲我想和你聊聊,作为一名程序员,我的职业观,以及我是如何进行选择的。
信仰 我觉得一切选择的根源是自己相信的东西,简单理解你可以说这就是信仰。信仰是如同地下车库中看不见的龙那样的事物,从哥德尔不完备性定理上去看信仰,它既不可以被证明也不可以被证伪,但是这是支撑你一切行为的基础。
相信知识的家庭砸锅卖铁让孩子上大学;不相信知识的家庭,冲进厕所,撕了孩子手上的《三国演义》。我相信知识改变命运,它毫无道理,毫无依据,没有办法证明,亦无法证伪,它完全可以自圆其说,但是却又找不到源头,可是就是这种虚无缥缈的东西左右着我的选择。
选择 有了信仰,自然而然,人就会选择。比如我林䭽的信仰是”知识改变命运”,而获取知识需要渠道和时间。
拓展渠道就要虚心地请教拥有知识的人,不能吝啬请客吃饭的钱,过节要给技术大牛筹备礼物,花钱买书不能心疼。为了节省时间,就需要租下公司边上很贵的房子,去节省上下班的时间。哪怕我工资将将过万的时候,我也愿意花 5000 块钱去租公司旁边的房子。
那么做这些事情,是对还是错呢?——我永远都无法去证明这些答案的对错,甚至我们得不到答案。不过有了相信的东西是美好的,因为你选择的时候不需要焦虑和犹豫。有了相信的东西,不去做,一定会后悔。这不是我给你的建议,我不太喜欢给人以人生大道理和建议,我觉得每个人思考的方式是不同的。我只能告诉你,我在这样思考问题。其实你也可以在留言区和我交流你的想法,和大家一起交流。
博弈 做出了选择,就会承担后果,这就是博弈。每一个选择都有两面性,可能成功,也可能失败,所以是在博弈。
拿时间换来知识,知识不一定能用上。熬夜去背面试题,明天面试官也未见得会考到你背好的题目。花 1 年刷算法题,将来能写几个算法?
所以这个时候,我们需要的是相信。支撑人走到最后的东西,一定是你相信的东西。如果你相信善,那你就将它贯彻到底。也许会得到回报,多数我遇到的情况是这种回报未必就是我一开始设想的。因为所有东西都会出现变数,我知道多数人想做优秀的程序员。但是你有没有相信过,未来的 50 年程序将继续改变这个世界?你信不信,黑客的精神,依然会在未来的 100 年内延续。这些东西没有办法证明,只有相信。我相信!也许你不信,这不重要。
用我自己感受来说,在我人生的某个时候,我也曾经觉得《原神》比程序好玩。但是我玩腻了游戏,就要回去写程序了。写程序的时候,给了我人生一种满足感,是和游戏的满足感不一样的。
我现在所说的并不是一次心灵的鸡汤,不是告诉你”爱拼就会赢”这种无法证明的道理。我是把一个工作了 11 年的资深程序员的感受告诉给你:当为了自己所相信的东西去努力的时候,人的快乐和幸福指数会高一些。
程序员的成长路径 回顾我这些年的经历,程序员的成长大致可以分为几个阶段:
第一阶段:夯实基础(1-3年) 这个阶段主要是学习编程语言、数据结构、算法、计算机网络、操作系统等基础知识。这个阶段需要大量的编码练习,通过反复的实践来建立对编程的直觉。很多人觉得基础知识没用,其实是因为还没有到能够”用”它们的层次。
第二阶段:技术深化(3-5年) 选择一个技术方向深入研究,比如后端开发、前端开发、移动开发、运维、架构等。这个阶段需要参与实际项目的开发,理解软件工程的各种实践,如代码规范 code review、持续集成、自动化测试等。
第三阶段:技术广度与架构(5-8年) 开始关注系统的整体架构,学习如何设计高可用、高性能、可扩展的系统。这个阶段需要跳出写代码的思维,开始思考团队协作、技术选型、业务价值等技术之外的东西。
第四阶段:技术与商业结合(8年以上) 技术最终是为业务服务的。这个阶段需要理解商业模式、产品思维、团队管理,将技术能力转化为商业价值。
我的一点建议 关于程序员的发展,我有以下几点建议:
保持好奇心:技术更新很快,但底层原理变化不大。学习新框架的时候,多问问自己”它解决了什么问题”、”背后的原理是什么”。
重视基础:操作系统、网络、数据结构这些基础知识,决定了你能够走多远。它们可能不会立刻见效,但会在某个关键时刻发挥作用。
多写代码:编程能力的提升没有捷径,只有不断地编码、反思、优化。每一行代码都应该比上一行更好。
学会沟通:技术能力只是你能力的一部分,更重要的是如何让你的技术能力被认可、被放大。学会清晰地表达你的想法。
找到自己的信仰:无论是技术上的某种理念,还是人生中的某种追求,有一个坚定的信念会帮助你度过迷茫期。
最后,感谢你一路以来的坚持。操作系统只是计算机科学的一个分支,还有更多的知识等待你去探索。希望这门课程不仅让你了解了操作系统的知识,更让你学会了如何学习技术。
如果觉得有所收获,欢迎分享给身边的朋友。我会在留言区和大家继续交流。
祝你在程序员的道路上越走越远。