给三张码农的 30 条忠告

#career

原文作者刚刚过完 30 岁生日。 北方人跟三十到四十这个年龄段叫做「三张」, 作为一名程序员,他向三张同行们分享了一些人生经验:

1. 努力工作

世上没有免费的午餐,任何人不可能凭白无故的得到升职加薪。 而且努力工作并不够,你还需要高效的工作。 只努力工作,但没有产出是没有用的。 远离那些不注重工作结果只看重工作时间的公司或人, 它们会对你造成很大的伤害。

2. 不要让自己与某种语音绑的太死

大部分语言都是针对某种使用场景设计开发的,它们在这种场景下肯定比其他语言更有优势。 没有一门语言是完美的,这也是为什么有那么多种语言的原因。 要确保自己在每种编程范式下至少精通一门语言, 比如精通一门函数式编程语言,一门面向对象语言等等。

3. 每年学习一门新语言

尝试每年学习一门新语言,最好是流行而且能让你走出舒适区的, 来确保自己保持头脑灵活且适应市场潮流。 如果你发现新学的语言可以解决当前工作的问题,可以推荐给公司使用。

4. 为自己的职业生涯负责

你有一个悲惨的童年,离过婚,还有一个压榨你的蠢领导。你发现努力两年才精通的框架, 现在却过时了。生活工作一团糟,看不到任何希望。 但是,你是一个成年人,就必须与这些不如意做斗争。过去的悲惨不能成为你的借口, 要把重点放在如何提高自己上,并做到:

5. 不要为自己无法控制的事情而烦恼

就像上面提到的,一个努力两年才精通的框架过时了。可那又怎样呢?再学一个呗。 再学习一个更有前景的框架。这在你的职业生涯中可能会重复很多次。 又或者,与你关系不错的同事离开了公司,这很伤感。但是这也是一个结识新朋友的机会啊。 实在不行,再换一家公司也是不错的。 总之,千万千万不要为那些你无法控制的事情而烦恼,调整好自己的状态,日子还是得过的。

6. 避免羡慕嫉妒恨

「三人行必有我师焉」要向那些比你强的人学习,而不是嫉妒他们。 让他们成为你提高自己的潜在来源。我记得我之前有两个很厉害的同事, 他们能很好得在重压下解决棘手的问题,我向他们学习了很多,我从不嫉恨他们, 因为我知道我可以学习到他们的技能。

如果你发现身边的人都不如你(技术上),除非你是 CTO ,否则就该换个工作了。 即使你是 CTO ,也要尽量招聘一些比自己还厉害的同事。

嫉妒还会让你的心情变差,给个人生活带来负面影响,你无法从嫉妒上得到任何好处。

7. 责任大薪水自然高

我很遗憾很多人只追求薪水而不注重提高自己的技能,建立自己的个人品牌。 试想一下,一个低于平均工资的 CTO 和一个高于平均工资的初级程序员,哪一个薪水更高?

8. 如果忽略技能提升,最终会被抛弃

太多人觉得只凭一个计算机学位就可以让公司邀请它们加入,所有事情都可以轻松应对。 只因为墙上的一张纸。 不要误会,我坚信学位能带给你很多有用的知识,但太多人止步于此。

这也是我敬佩自学程序员的地方,它们可能缺少计算机的基础知识,但它们懂的其中的艰辛, 知道没有捷径。

9. 便宜没好货,质量差的硬件会损害你的健康

购买好一点的键盘,鼠标,显示器。你的工作是非常依赖手和眼睛的。 一副好的降噪耳机也不错,但最好优先投资上面说的设备。 除非你需要在特别嘈杂的环境下工作。

10. 走一走问题就能解决

虽然有点夸大其词,但我想强调的是 发散模式 Barbara Oakley 在她的课程 学习如何去学习 中解释了它。 如今大家还不重视「发撒模式」, 据我所知只有很少的公司允许员工在工作时间睡觉或者进行其他有助于发撒的活动。 但问题是我们即需要专注也需要发散。俚语 “sleep on it” 就暗示着发散的重要性。

11. 把你的一部分收入花在专业培训上

如果公司能提供培训费就再好不过了。 Youtube 上有很多很好的学习资料,不过如果你真的在乎你的职业生涯,收入又负担的起, 建议你参加质量更好的课程,比如 O’Reilly 或者 Pluralsight

12. 拒绝加入没有培训计划的公司

这里我可能有些苛刻和偏见,对于初创或资金紧张的公司来说可能是个例外。 考虑到这个行业的专业知识更新特别快,我倾向于不加入那些没有培训政策的公司。 对我个人而已,培训政策的最低限度是给每位员工一个专项预算,包括:

  • 参加技术会议。
  • 买一些书。
  • 订阅一些像 O’Reiliy 这种高质量的培训课程
  • 颁发证书

当然,由于各种原因,很多人无法完成上面所有的培训计划,比如已经成家而没有空闲时间, 或者生活比较安逸。不管如何,如果员工愿意,公司不能有任何妨碍。 我对大公司会有更高的要求,我期望它们能邀请专家来演讲,尤其是在关键领域。 比如,如果公司像想快速迭代产品,可以举办一个敏捷开发的培训作为一个开端。

13. 买最好的软件工具

比如 IDE ,不能在 IDE 的投入上太小气,跟买最好的硬件是一个道理; 就像《程序员修炼之道》里讲的,选择一款编辑器,然后把它使用的非常非常熟练, 高质量的编辑器能节省你很多时间。 不要忘记钱能节省你的时间,现在投入更多的钱, 以后就会节省更多的时间。

14. 忽视积极性

很多人依赖个人积极性来完成重要的人生目标。积极性很好,但它依然属于一种情绪, 就像其他情绪一样,说来就来说走就走。你最好有更好的方式引导自己完成需要做的事儿, 至少引导自己完成人生中最重要的一些事。 当万事顺利时,激励自己很容易。但是,当你身在水深火热中,没有任何事情可以激励自己的时候, 该怎么办呢?

15. 不惜一切代价,保持生活热情。

虽然我原则上不推荐依靠积极性推进自己的事业和生活,但我应该强调一下职业生涯需要一个愿景。 你需要一个自己向往的愿景,这样你就能知道你做的每一个决定都能让你的人生小船跑的更快。 就像英国快艇获奖者所说的:「这能让船更快吗?」。

16. 搞懂你适合在哪种类型的公司工作

在初创公司,中型公司,大公司工作会有各自不同的好处和弊端。 事实上,你在大公司干的不错不代表在小公司也能干好。 你考虑过在不同选择之间给自己带来的得失吗?可惜,这里有没有完美的方案。

17. 好领导决定好的工作环境

你可能已经体会到了,如果你有一位容易沟通,支持你的领导,而且让你做着自己喜欢的任务, 那简直是太幸运了。人们不是离开公司,而是离开领导。理想情况下, 先确认你的领导是否正在尝试留住你,再决定是否入职。

18. 验证自己是否搞明白一件事情的唯一途径就是把它教会给别人

这也是我自己开始写博客的原因,如果我学到了一些有趣的事, 我会尝试在博客上把它解释清楚。最少对于我来说,这很有用,我并不追求阅读量。

19. 不进则退,停止学习就会被抛弃

相对高薪与技术领域以及领域中的变化是相关联的。而且高薪的领域变化很快, 如果停止学习就会被淘汰。这并不是说让你争分夺秒的阅读和写代码,但也不能走另外一个极端: 由于太安逸而察觉不到趋势的变化。

20. 持之以恒,不要一曝十寒

每天阅读三四十分钟要比在周末一整天坐在显示器前填鸭式学习要好很多。 想想你上学的时候,每天完成一点作业与最后一晚突击完成作业,哪个压力大?

21. First, make it work then make it right then make it fast

这是来自 Kent Beck 一句我非常喜欢的名言。我对这个行业如此缺乏实用性思想表示震惊。 人们在空格与 Tab 以及变量写法上喋喋不休,但真正重要的事是代码能正常跑起来。 我的乐趣之一就是看着人们在不能编译的代码中写大量的说明文档,实际一些吧,朋友们。

22. 如果你想在社交媒体上花费时间,先确保它值得

关注那些你值得关注的人,我在 twitter 上关注了一些很棒的人,包括 dev.to 上的作者。虽然我在 twitter 上不活跃,但我很乐意阅读他们的观点, 即使我并不敢苟同,不过这能给我带来另一种思维方式。

23. 不要害怕问问题

不管你在公司处在何种地位,老板还是 CTO,没人指望你能通晓一切。 相反,研究表明人们更喜欢请求自己帮助的人。同样,计算机领域非常庞大, 你不可能掌握一切。其他有很多参考书的专业领域也一样。

24. 想法不能创造财富

成果可以,让用户满意的产品可以。你已经不在学校了。没人在乎你是否用优雅的方式写代码, 那些理论也解决不了问题。我不是说那些理论不重要,但公司更看中结果而不是抽象的概念。 现实很骨感,如果你真的不喜欢这样,可以选择去科研单位或者大学里工作。

25. 尝试拥有一个代码以外的爱好

我个人并没有遵从这个建议,因此有一点点负罪感。除了全职工作,健身,和考取硕士学位, 我没有任何可以让我骄傲的事情,虽然我正在尝试解决这个问题。 其他爱好可以避免让自己过度紧张,而且可以让你从不同角度看待事物。 比如,我看到一些作者通过演奏乐器来提高自己的发散思维。

26. 不要在技术上太固执

我想这不用多解释了。软件技术有很多替代方案。请停止不断得安利一种技术或者编程实践, 这会让你看起来既无聊又愚蠢。

27. 在工作场所,不接受不好的社交行为

性别歧视,种族主义,对你的职业生涯很不利,远离它们。 还有很多认真,成熟,专业的公司等着你。让剩下的那些不好的公司享受自以为是的小圈子吧。

28. 单元测试很无聊,但是 …

当产品规模快速扩大,或者需要大规模重构的时候,它将挽救你。就像生活中的其他事情, 一分耕耘一分收获。

29. 有效的时间/任务管理,比想象的更重要

有效的时间/任务管理与学习新技术一样重要,甚至更重要。为什么? 因为没人关心你是否按时发挥自己的价值。 如果你觉得这方面做的不好,可以试试 GTD 系统 以及高效15法则

30. 不要忽视软技能

除非你是一位不需要与人见面的自由职业者,亦或把所有事情都交给其他人处理的人, 否则你都需要软技能。 我们每天与人打交道,因此必须要知道如何高效的与人沟通,尊重那些与我们不同的人。 如果每个人都拥有一些软技能,沟通就不会有问题,不过这太理想化了。 上边我也告诫过大家要接受实用主义,因此学习一些软技能吧。我推荐以下三本书: 软技能:代码之外的生存指南 人性的弱点 精英的人格魅力课

总结

感谢你读到最后,我希望这能帮到你。