`
kissuyoyo
  • 浏览: 15322 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

给编程生涯充电的 10 本书

阅读更多

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

回想起大概十年前,我毕业之后直接进入微软的时候,我想要的生活就是早晨 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 《牧羊少年奇幻之旅》

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

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

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

分享到:
评论

相关推荐

    智能充电机编程要求.pdf

    智能充电机编程要求主要涉及到设备的操作界面、参数设置、充电过程控制、故障保护等多个关键环节。以下是这些知识点的详细说明: 1. 设备界面与操作流程:智能充电机开机后,首先显示制造商信息和欢迎界面。用户...

    可编程快速充电管理芯片MAX712-713应用[归纳].pdf

    【可编程快速充电管理芯片MAX712-713】是MAXIM公司推出的一款高效、灵活的电池充电管理解决方案,适用于单节至16节镍氢或镍镉电池的充电需求。这款芯片具备多种封装形式,如Plastic DIP、Narrow SO和DICE,适合便携...

    编程猫:孩子们写的编程入门书.pptx

    这本书的目的是激发孩子们对编程的兴趣,帮助他们建立逻辑思维和创造力。 这本书首先介绍了编程的基本概念,如变量、条件语句、循环语句等。这些概念通过有趣的例子和生动的图片进行解释,使得孩子们容易理解和接受...

    梁肇新《编程高手箴言》

    本书是作者十余年编程生涯中的技术和经验的总结。内容涵盖了从认识CPU、Windows运行机理、编程语言的运行机理,到代码的规范和风格、分析方法、调试方法和内核优化,内有作者对许多问题的认知过程和透彻的分析,以及...

    《编程珠玑 第2版 修订版》

    作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨程序员的实际问题展开讨论,从而引导读者理解问题并学会解决问题的技能,这些都是程序员实际编程生涯中的基本技能。...

    Python编程500例快速构建可执行高质量代码.pptx

    10、面向对象编程:本书对Python中的面向对象编程进行了深入探讨,涵盖了类和对象、继承、多态、封装等方面的内容。读者可以通过学习这些内容快速掌握Python中的面向对象编程。 11、异常处理:本书对Python中的异常...

    DirectX 10 3D 游戏编程入门 汤毅

    这是一本介绍 Direct3D 10 交互式计算机图形编程的书,主要侧重于游戏开发。它涵盖了 Direct3D 与着色程的基础知识,读者在掌握这些内容之后,将有能力阅读更高级的技术书籍。本书分为 3 个主要部分。第 I 部解了...

    64位 微处理器系统编程和应用编程.part1 周明德编著 完整清晰版

    《64位 微处理器系统编程和应用编程》 周明德编著 完整清晰版 ...4 本书包括了应用编程的详尽内容,也包含了系统编程的主要内容,具有丰富的编程实例。 微处理器系统编程 应用编程 周明德 Intel架构编程

    充电桩 云快充 软件源码 C语言

    - **充电控制**:云平台根据用户需求或电网调度,发送充电指令给充电桩,调整充电速度或停止充电。 - **计费管理**:充电桩与云平台进行计费信息交换,包括充电费用计算、扣费等。 - **故障报警**:充电桩检测到...

    C++游戏编程入门卷二

    全书分为10章,内容由浅入深,全面覆盖了C++语言的重要概念和编程技术。本书结构严谨,注重培养读者的实际动手能力。书中有关概念和知识的讲解均配有与游戏有关的小程序,每章的最后结合该章所学内容,给出一个独立...

    MacTalk·人生元编程.pdf

    通过阅读《MacTalk·人生元编程》,读者不仅可以提升编程技能,还能获得一种全新的思考方式,使个人在职业生涯乃至生活中都能受益。无论你是初入编程行业的新人,还是经验丰富的开发者,这本书都将为你打开一扇新的...

    《C++少儿编程轻松学》配套PPT课件 + 习题参考答案.rar

    本书包含丰富实用的代码示例,旨在帮助学生快速入门C 编程,并能够在案例的引导下,进一步夯实C 编程技能,轻松应对各类编程竞赛。除此之外,本书还提供了配套的题库供读者自行练习,并辅以代码作业检测平台,帮助...

    c语言编程宝典大全

    《C语言编程宝典大全》是一本专注于C语言开发技巧的综合书籍,旨在为程序员提供全面、深入的C语言知识。...通过阅读和实践,读者可以系统地掌握C语言,提升自己的编程水平,为未来在IT行业的职业生涯奠定坚实基础。

    Visual C++ 游戏编程基础

    在《Visual C++ 游戏编程基础》这本书中,作者深入浅出地介绍了使用Visual C++进行游戏开发的基础知识和技巧。本部分压缩包包含了书中的部分源代码和相关资源,便于读者实践和理解。以下是关于这个主题的一些关键...

    精通Oracle 10g PL SQL编程

    另外,本书还为应用开发人员提供了大量Oracle9i和Oracle 10g新增加的PL/SQL特征。 本书不仅适合于PL/SQL初学者,而且也适合于有经验的PL/SQL编程人员,本书还可以作为Oracle培训班的教材或者辅助材料。

    数控机床及编程加工技术整本书课件完整版电子讲义(最新).ppt

    数控机床及编程加工技术整本书课件完整版电子讲义(最新).ppt

    Linux/Unix系统编程手册英文版

    本书由Linux编程专家Michael Kerrisk编写,详尽描述了系统调用和库函数,是系统编程领域的经典之作。 首先,书中介绍了如何高效地读写文件。文件读写是系统编程中最基础、最常见的操作之一,涉及多个系统调用,如...

    GNU_Linux编程指南.pdf

    这本书不仅介绍了编程工具和基础编程知识,还深入讲解了系统调用、内核编程以及网络编程。它特别关注图形界面的开发,包括命令行界面的图形库ncurses和真正的图形化系统X Window、Qt、GNOME以及OpenGL的编程方法。...

Global site tag (gtag.js) - Google Analytics