查看原文
其他

给编程生涯充电的 10 本书

前端大全 2022-09-24

(点击上方公众号,可快速关注)


来源:伯乐在线 - Erucy

如有好文章投稿,请点击 → 这里了解详情


作为程序员,我们都喜欢编写代码,都喜欢挑战艰深的算法,喜欢设计并创建炫酷的新技术。我们厌倦那些不得不处理的日常琐碎、工作中的官僚作风,以及无关的应酬(比如工作无关的聚会)。


回想起大概十年前,我毕业之后直接进入微软的时候,我想要的生活就是早晨 10 点上班,码上 8-10 个小时,创造一些炫酷的玩意儿,然后回家。我所需要的就是这些,它让我开心、让我满足、让我充满了成就感。不过随着时间的流逝,我开始意识到:作为一个程序员,在通往成功的路上,除了写代码之外,还有些别的事情要做。我想把它们分成三类:技术能力、人际交往能力(或者叫“软技能”)、个人理财能力。


不过为什么我需要与人际交往能力???


大部分程序员老手都会对提出这个问题的人哈哈一笑,实际上我从好多新员工和实习生那里听到过这个问题。他们和十年前的我有着相同的心态:只要我是个可靠的工程师,拥有牛叉的设计和编码能力,就足够我迈向成功了。遗憾的是,这个世界不是这样的。我是从一段痛苦中学到的这一点,那时候我的晋升被延期了 6 个月,因为我不具备所需的项目管理能力和“软技能”。我的经理最后把我送去参加戴尔·卡内基的培训课程,说实话,它彻底地改变了我对工作和生活的看法。从那里学到的东西,帮助我在接下来的两年半中取得了两次升职。


那么为什么我还需要个人理财知识??


有很多新人程序员在获得他们的第一份工作时,对自己需要做出的财务决策一头雾水。需要签署那种 401k 计划?需要什么样的保险范围?是不是需要使用员工认购股票计划?等等。当我刚加入微软的时候,对这些东西一无所知,我只能说,我当时根本就没把它们放在心上。直到我犯下了足够多的错误之后,我才意识到个人理财和投资的重要性。拥有了可靠的金融知识作为基础,你就可以为你的生活开启无数中可能:想想有多少次这种念头曾经出现在你的脑海里:


  • 早知道我当初就应该加入那个创业公司,抓住那个机会做成一件大事!

  • 哇塞,我真心喜欢这份新的 offer,不过它开出的价钱没法支撑我现在的生活。

  • 我刚有了小孩,早知道我这几年就应该找个在家也能做的工作。

  • 我恨死这份工作了,不过我现在没有足够的财务缓冲区能让我裸辞去找份新工作。


(伯乐在线补充:401K 计划也称401K 条款,401K 计划始于 20 世纪 80 年代初,是一种由雇员、雇主共同缴费建立起来的完全基金式的养老保险制度,是指美国 1978 年《国内税收法》新增的第401条k项条款的规定,1979 年得到法律认可,1981 年又追加了实施规则,20 世纪 90 年代迅速发展,逐渐取代了传统的社会保障体系,成为美国诸多雇主首选的社会保障计划。适用于私人盈利性公司。)


好吧,其实我们很多人时不时地就会想过这种事情。现在想想看,如果你能知道你未来两年、五年、甚至十年的生活开销的话,会怎么样!你的职业生涯和生活方式会不会有不同的选择?我赌你肯定会的。这就是财务自由能够赋予我们的能力:只需要关注你喜欢的事情,而不用担心财务上的风险。


所以,不管你是很年轻、刚刚开始工作,还是一个有经验的老手程序员没什么时间去学习这些能让你迈向成功的种种额外知识,下面列出的这些书都会让你走向正轨。我知道你很忙,所以这些书中绝大部分(除了和技术相关的)读起来都很快。不过我发现自己不断地重读它们,以巩固我学到的知识,这样才能留在生活和工作的正确道路上。


打磨你技术能力的书籍


#1 《数据结构与算法经典问题解析:Java语言描述》



如果现在是你在大学的头一年,你应该找一本来读读看。如果你是个经验丰富的程序员,至少应该粗读一下,看看书中的那些概念你是否熟悉。在今天的世界中,稳定的工作就像个童话,你不得不时时刻刻准备好进行技术面试。即使你的工作很稳定,你也应该随时准备好,这样才能利用好随时可能出现在你面前的好机会。


作为在微软有着 8 年面试经验的人,我可以保证,如果你对这本书中涵盖的内容都很熟悉的话,你有很大机会在面试中取得良好的表现。另一个我喜欢这本书的原因是,它里面并没有充斥着计算机科学理论和数学,而式用非常浅显易懂的问答形式来讲述知识。它会告诉你同样一个面试题的多种不同解法。我推荐你买一本,读读它,熟练掌握其中的概念,这样可以让你随时搞定面试题。


#2 《代码整洁之道》



当坐在你旁别的人读你代码的时候没有冲着你破口大骂时,你就知道你成功编写了整洁的代码。


为什么这么多新人程序员都没法写出整洁的代码?因为大部分大学中都不会教给如何编写专业的代码。例如,我参加过的绝大多数算法和数据结构的课程,都只关注在代码的正确性,只要示例输入能得到正确的输出结果就万事大吉了。即使是软件工程课,在大部分大学里面,都是通过 UML 图、代码文档、软件演示和最后的报告来给学生打分的。他们没有资源去深入查看班上每个学生那上千行的代码,然后在代码风格和清晰程度上面给予学生一些反馈。这就是《代码整洁之道》能够帮助你的地方,把你从一个计算机科学专业的学生转变成一个专业的程序员。


#3 《Head First 设计模式》



所谓的软件设计模式,指的是在特定的场景或领域中,用于解决一些常见问题的可重用的方案。通常来说学习设计模式都是推荐那本经典的《设计模式 : 可复用面向对象软件的基础》。不过我还是想格格不入地向你推荐这本《Head First 设计模式》,因为它读起来容易得多。读这本书的时候打瞌睡的可能性要比你读那本《设计模式》低得多。它会画上一些时间让你掌握一些概念,不过这时间花的是值得的。根据我的经验,15% 到 20% 的技术面试问题都多多少少和设计模式相关,所以对于应对面试而言,它也挺有帮助的。


#4 《我编程,我快乐: 程序员职业规划之道》



这本书的第一版名叫《我去印度工作(My Job Went to India)》(译注:貌似没找到中文版),封面上是个程序员举着张硬纸板,上面写着“写代码换口饭吃”。后来作者就把书名换掉了,变得更专业一些,没那么具有煽动性了。


不过和第一版一样,这本书中囊括的一些建议还是相当有价值的。这本书就如何在通往成功之路上战略性地设置你自己的定位,给出了一些的指导意见。它读起来很轻松,我要是能在上学的时候看过就好了。


培养软技能的书籍


#5 《赢得朋友》



你在软件开发领域待的时间越长,就越能意识到一个人没法做完所有的事情。你需要协调外部的团队,和其他的程序员、测试、产品经理一起合作,一起完成项目,使用技巧推动其他人一起完成软件的发布。简要地说,你需要和你的同事进行日常沟通。你需要在必要的时候说服别人来帮助你,需要激励他们来追随你的领导。


这本书会帮助你说服别人按照你的方式来思考,同时又能避免激怒他们。这其实很重要,因为在今天,不论你做什么工作,最终肯定是要和人打交道的。我强烈推荐这本书。


#6 《关键对话:如何高效能沟通》



程序员以他们的聪明和固执而知名。在一个典型的工作日中,在选择正确的设计方式、针对 deadline 进行谈判、代码审查、甚至在公开场合如何安排座位的时候,都会发生争论。不用说,这些都是关键性的对话,你需要确保你的建议和需求能被别人听进去,同时又不会彻底的惹恼某人(尤其是你可能还需要他的帮助)。


这本书会教给你一些工具,能够用在你这辈子最艰难、最重要的对话中,说出你的想法,获得让你惊叹的正面反馈。不过光是阅读它是不够的,你需要在实际生活中应用这些技巧。幸运(或不幸)的是,如果你是个程序员的话,在进行一场关键对话的时候,通常你也不用想得太多。


#7 《口渴之前先挖井》



你知道在大公司中,绝大多数高级开发的职位是如何招聘的么?如果你猜是来自内部推荐的话,那完全正确。


我可不是说你能在 Google 或者微软得到一份开发工作,只是因为你认识里面的谁,那只取决于你在技术面试时候的表现。不过,如果在你感兴趣的公司中有认识人的话,至少能确保你的简历会被 HR 看到,至少能得到一次远程面试的机会。这可不是件容易的事,因为通常这种让人垂涎的职位在网上至少得有几百份简历会提交进来。在公司里面有一个认识人,可能意味着你能有机会在面试中证明自己的价值。


迈向财务自由


#8 《超越华尔街:成功投资的十大守则》



我知道你很忙:如果你刚开始工作,你可能会把所有时间花在你那份新工作需要的技能上。最后你所需要的是一本金融学的专著。这本是我曾经读过的最简洁的,关于个人理财和投资的指导了。


这本指导会帮助你从一开始,找到通向财务自由的正确方向。在 2008 年经济危机时,我毫不慌张地卖光了我的共同基金,其中的原因之一,就是我读过这本书,并且深刻记住了它教给我的东西。这也让我在最近的牛市中,通过股票获得了 200% 的收益,这都是归功与这本书,以及 BogleHeads 论坛(译注:一个知名的投资论坛)。


#9 《邻家的百万富翁》



让我问个直接的问题:你想要有朝一日变得富有么?如果答案是“是”的话,那你可一定得看看这本书。它讲述了百万富翁是如何赚钱并且保持他们的财富的,这彻底改变了我的观念。


这本书的作者花了 20 年时间采访百万富翁俱乐部中的精英会员,筛选出了七条规则,能够让你的财富变得更加持久。所以如果你想要在某一天不再担心财务问题、真正自由的做自己喜欢的事情的花,千万别忽略了这本书中给出的建议。


最后同样重要的


#10 《牧羊少年奇幻之旅》



对很多程序员来说,当他们适应了现有的位置时,就会变得过于“慵懒”;他们不会再挑战自己学习新技术,换句话说,不会再成长了。这相当于职业生涯的自杀。唯一能够继续学习和成长的方法,就是跨出你的舒适区,探索新的可能。


这个清单中的其它九本书会帮助你创建良好的技术、人际、财务平台,从而让你抓住自己人生道路上能够改变命运的机会。不过,这是清单中唯一一本能让你重燃激情,倾听你内心深处的声音,追寻你曾经的梦想,那些已经迷失在我们日常琐碎生活中的梦想。


还在等什么?你可以把这些书当作是自己的朋友、心理医生和向导,去探险、去意识到你真正的潜力、去追寻你的梦想。不要害怕你需要学习的东西,就像那句老话说的:千里之行始于足下。祝你好运!


点击「阅读原文」,查看对应书籍链接



觉得本文对你有帮助?请分享给更多人

关注「程序员的那些事」,编程不再枯燥

↓↓↓


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存