如果回到过去,我会这样告诫我自己

如题,一些牢骚。希望对年轻的你有点帮助。

# 勇敢点

提前规划,在大学的时候,你就应该开始“面向大厂”规划自己的职业路线,争取校招进入大厂实习。

不要整天宅在图书馆,看什么 Linux 内核、Unix 编程艺术、Unix 网络编程、计算机的构造与解释、不要学那么多编程语言,Python、Java、Perl、Ruby、JavaScript、PHP、Go、C++…

多刷题,一定要争取去大厂,你一定可以,只要你勇敢点。

# 不要呆在非一线城市

这里机会非常少,不是你不行,不要自卑,不要内耗,这不是你的问题,你应该去能够发挥你价值的地方。

虽然那里生活和工作节奏快。但是现在国内互联网企业都一个德性,都在模仿“狼性”文化,说着一样的互联网黑话,一样是内卷,去一线城市、一线大厂赚更多钱不好吗?

为了钱,不寒碜。

# 不要只关注技术,花点时间了解世界

不要只关注技术!别老是看那些技术类的书,你压根记不住,也很少有实践的机会。

多看点别的书,多了解自己、了解人类、了解世界、了解政治、了解经济/商业的运作原理和底层逻辑。提前布局、提前投资

世事洞明皆学问,不要穷极一生都是为了钱而工作,成为钱的奴隶,一直被恐惧和欲望支配。

推荐图书:人类简史、纳瓦尔宝典、穷爸爸与富爸爸、黑客与画家

# 接受不完美的自己和代码

不要追求完美,你很普通,接受自己的平庸吧。

你不可能什么都精通,把精力花在自己核心竞争力上。

就像系统总有改不完的 bug,接受不完美的自己,学会放弃。

不要单打独斗、 尽量和更聪明的人共事。在矮子里面当将军,不如在巨人里面做士兵。

# 了解你的公司

不要只关注你眼前的这颗螺丝钉。

  • 你的公司是做什么的?核心竞争力是什么?
  • 公司的管理模式是什么?为什么要这样管理?规范的目的又是什么?
  • 公司的商业模式是什么?靠什么赚钱?怎么卖出去?
  • 公司的用户是谁?给用户创造了什么价值?
  • 公司的技术架构是怎样?
  • 公司的组织架构为什么设计?团队之间又是怎么协作的
  • 我努力加班赚的钱,最后进谁兜里?凭什么是他?

难道你不好奇?不八卦吗?

# 多积攒人脉

某些关键时刻,他们能捞你一把。同时你也要努力成为别人的有价值的人脉。

这其实并不需要你付出真感情,而应该把它当作资产。

# 可以认清现实,但是要保持批判精神

宏观的大环境个人是无法干预的,我们只能去适应。当然适应并不意味着委屈求全,每个人有选择的权利,当你无法接受公司的工作环境,不能接受公司的价值观,我们是可以选择跳出来的,而且越早越好。

我们的适应能力很强,同样能够适应糟糕的问题,然后置之不理。就比如人类的嗅觉,古人云”入芝兰之室,久而不觉其香;入鲍鱼之肆,久而不觉其臭”。

就比如笔者所在公司最近开始抓考勤打卡了,一开始内心十分抵触,现在也慢慢‘适应’了,也没有之前的抱怨,但我知道这对我来说并不是一件好事。

既要认清现实,保持批判精神,否则将一成不变。

# 关注战略设计

大部分程序员都是实现者,即战术实现者。很多时候,我们都不知道我们的工作的价值是什么。

因此我们也要关注战略设计,保持对一切事情的好奇心,尝试突破自己的职能边界,没人会阻止你,也很少人会给你机会。

# 效率从来不是一个人的事情,伟大的项目也是如此

不要相信小说、传记里面的孤胆英雄。

前几年关于 10 倍程序员也很多讨论,比如极客时间 10X 程序员工作法, 这些教程总结了很多务实的提效方法论。

总的来说,提高效率从来不是一个人的事情,另外程序员的主要工作‘编码’ 也仅仅只占整个研发流程的 20% ~ 30%。

# 不要什么都亲力亲为,学会外包

让你的能力和知识可以复制和传递,比如 CodeReview,技术写作,写好文档。

培养得力的助手,或者更好的方式是招揽比你更聪明的人。

# 不要轻信什么最佳实践

没有绝对正确的东西,没有放之四海皆准的东西。

学习它们,然后忘掉

# 问题的维度

不要只关注吃掉眼前的棋子,从更高的维度去解决问题。

举个例子

  • 问题域。有些问题不一定就要在技术层面解决,可能在产品层面、战略层面就能规避掉。
  • 解决域。另外,提升抽象的高度,在解决问题时能否举一反三?覆盖更多场景?

# 不要被奴役

  • 鼓励抱怨,但也要解决问题。
  • 不要为了钱而工作,让钱为你工作。
  • 工作不是为了写代码,让代码为你工作。
  • 把自己当成一家公司去经营
  • 不要被雇主奴役,你和他们是雇佣合作关系,不是奴隶关系,不要被 PUA
  • 不要被机器奴役。人类创造编程语言是为了服务人类,而不是服务机器。不要追求那些反人类的奇技淫巧,也不要自以为掌握了一门底层、学习曲线陡峭的编程语言而沾沾自喜,不符合人类心智的技术迟早被淘汰。

# 不管你喜不喜欢,在中国你还是得要学会“管理”

金字塔

在国内 IT 打工人的体系更像是军队管理,俗话说就是吃年轻饭的。

尽管未来的趋势是分工的精细化,管理者也是占少数。为什么我就不能当个平庸的程序员呢?

  • 我们所处的社会主导集体主义,自然也会滋生对权力的崇拜,很多人对这个金字塔尖趋之若鹜。权利也意味着‘成功’
  • 平庸很容易被取代。而熟练工并没有壁垒,你能干别人也能干。商业是逐利,在高度内卷的市场下,为什么就不能选择跟便宜、精力更旺盛的年轻人呢?

你面前可能有几条路,创业、技术专家、管理,不管是哪条路都是很艰难,管理在很多人看来是顺理成章。

或者,现在就想想,你不搞 IT 还能干什么?提前做好投资

# 精心炮制的故事

这个世界的秩序是由精心炮制的故事组成,而且大部分人都相信它。

保持怀疑的姿势,可以让你跳出游戏

# 直面你的恐惧

为什么你会社恐?

为什么几天后的一个会议会让你忐忑不安?

为什么你那么在乎别人的看法?

为什么你总是感觉到焦虑?

为什么你不敢说出你的真实想法?

为什么你会情不自禁地与别人做比较,然后妄自菲薄?

为什么你会恐惧?如果人生是一场游戏呢?

# 编程的本质是抽象

编程是一门抽象艺术。

把现实世界的业务抽象成二维表,数据结构,对象关系、业务流程。

前端页面抽象成组件,低代码,DSL,本质上都是抽象的艺术。

抽象需要发挥人的主观能动性,人与人的差距就体现在这里。而工具通过学习一般都能掌握,很难建立壁垒

# 不要自我感动

  • 只有功劳,没有苦劳。
  • 选择比努力更重要。
  • 大部分企业并不在乎你代码写得多多漂亮,而在于你能不能真正创造价值。

# 继续保持专注

远离那些垃圾。

# 总会有差评

不管是多好的产品都会有差评。

# 不要随波逐流

我发现,程序员群体大部分是比较‘安分守己’的,身边很多典型的例子,早早地结婚,早早地生子,996 的工作,电子产品自由,开着特斯拉,在老家可能还有套套牢的房。

人生的轨迹和父辈其实不会有太大的区别。

这真是你想要的人生吗?

# 降低欲望,你会更快乐

所有的痛苦都来源于欲望,远离一切成功学,回头是岸