美文网首页
软技能:代码之外的生存指南读书笔记

软技能:代码之外的生存指南读书笔记

作者: 梧叶已秋声 | 来源:发表于2023-03-01 17:04 被阅读0次

    软技能:代码之外的生存指南(第2版)

    • 这本书的宗旨

      • 这是一本关于如何获得成功的书籍,论述的内容包括生活习惯和策略,程序和思维方式,以及各种你可以用来推动自己更接近成功的秘技和绝招。
    • 我是如何开始写这本书的

      • 作为一个软件开发人员,在我的生活中,我经历过许多不同的旅程。我曾走在阳关大道,也曾误入歧途,还有一些路我至今仍不知是对是错。这一路走来,我并没有得到太多的帮助和指导。我从来没觉得有谁为我披荆斩棘,开辟出一条小路让我可以因循,也从来没觉得有谁可以告诉我如何成为一名最成功的软件开发人员—不能只编写代码,还要有精彩的人生。
    • 我写这本书,是为了:

      • 让你的旅程更轻松;
      • 帮助你成为更好的自己;
      • 最重要的是,让作为软件开发人员的你在漫漫人生旅途中不再感到孤单。
    • 关于本书

      • 这本书包罗万象,从揭秘面试的流程,到精心做出一份杀手锏级的简历,到创建受欢迎的博客,打造自己的个人品牌,到提高自己的生产效率,学会与职业倦怠做斗争,甚至到投资房地产和减肥。
    • 职业

      • 拥有商业心态

        • 当你为了谋生一头扎进写代码的世界时,其实你和中世纪小镇上开个小铺子的铁匠没什么差别

          • 将思维模式切换为“经营企业”

            • 企业是由什么构成的开始

              • 首先,要有一个产品或服务

                • 你所能提供的服务就是创建软件
              • 你需要做到

                • 专注于你正在提供怎样的服务,以及如何营销这项服务
                • 想方设法提升你的服务
                • 思考你可以专注为哪一特定类型的客户或行业提供特定的服务
                • 集中精力成为一位专家,专门为某一特定类型的客户提供专业的整体服务
              • 作为一个软件开发人员,你只有真正专注于一类客户,才能找到顶尖的岗位

        • 给自己设定好职业目标

          • 知易行难

          • 如何设定目标

            • 树立一个大目标

              • 设定能帮你达成这个大目标的小目标
              • 有一段时间,我给自己设定了一个大目标—减掉 45 公斤。我不能让自己身材走形,我想重回正轨。我还为自己设定了小目标—每两个星期减掉 2.5 公斤左右。每两个星期我都能达到我的小目标,推动我向着大目标前进。
              • 想想这本书的写作。我给自己设定的目标是:每天要写多少,每周要写多少
            • 追踪你的目标

              • 你应该定期追踪并更新自己设定的目标,必要时还要调整。你并不想偏离航海图数公里之后才发现自己走错了方向,也不想沿着一条路线走了很远却发现这条路是错的。
        • 采取行动

          • 坐下来,为你的职业生涯设置至少一个大目标

          • 将大目标分解成相应的若干小目标

            • 月度目标

              • 周目标
              • 每日目标
            • 把你的大目标写在自己每天的必经之地,每日三省吾身—我在追求什么。

        • 拓展自己的人际交往能力

          • 在软件开发领域,我们大多数时候都是与人打交道

          • 学会如何与人打交道

          • 每个人都希望感到自己很重要

            • 当你和别人打交道的时候,你应该知道的最重要的一个概念就是:以自己为核心,每个人都希望自己很重要。

              • 我们常常容易犯的一项错误就是,轻率地否决同事的想法,以便于可以提出自己的想法。
            • 永远不要批评

            • 换位思考

            • 避免争论

            • 模式控制

              • 这里有一个非常重要的概念可以帮助你与人友善相处,那就是理解“模式”的概念。但是,在我们深入了解这个概念之前,我必须给你一个警告:谨慎使用这个概念。当某人意图挑衅或者压制你的时候,善用“模式”更为奏效,但不要用它来欺负同事以及轻视别人的意见。

              • 主导模式,决定了对话的主旋律。

                • 保持对主导模式的掌控有很多方法,其中之一就是不承认任何与你的模式相冲突的东西,将其视为无关紧要的东西,或使其显得荒诞不经。

                • 地雷:如何处理“毒瘤”

                  • 有时候你会发现,有的人不管怎么样就是无法相处,有的人就是抓住一切机会贬低别人,对生活中的一切抱有消极态度。我把他们称为“苛性碱”,你最好避开他们。 如果你意识到某个人就是所谓的“苛性碱”,不要试图去改变他们,也不要试图去和他们打交道,就让他们停留在自己的轨迹上,你所要做的只是尽量限制自己与他们互动。你会发现“苛性碱人”所过之处痕迹明显,他们似乎总是卷入某种形式的悲剧之中,总是有不幸的事件发生在他们身上,他们老是把自己扮成受害者。如果你发现这种迹象,赶快跑—有多快跑多快。 但是,如果这样的人是你的老板或同事,你不得不面对,你该怎么做呢?你能做的真心不多。要么逆来顺受,要么调到新部门甚至换工作。不管做什么,千万不要卷入其中。如果你不幸要与之打交道,限定在最小范围之内,切切不要投入感情。
        • 创建一份屡试屡验的简历

          • 比别人多做一点点

            • 申请Web 开发人员的职位却没有在线简历,就像专业木匠没有自己的专属工具一样。

            • 如果不想雇专业的简历写手该怎么做

              • 把简历放到网上。确保雇主能够很容易访问你的简历。
              • 简历的展示方式要有创意,样式不落俗套,别人一眼扫过去就会被深深吸引。
              • 使用“行动-结果”的描述。你的简历应该展现你都做了哪些工作及相应的结果。
              • 校对。即使是聘请专业的简历写手,你也要通篇校对。
            • 采取行动

              • 把你的简历发给一些招聘人员
              • 查阅分析一些专业的简历代写服务,看看他们提供的简历样本
        • 破解面试之道

          • 通过面试的最快捷的方式

            • 通过面试的最快捷的方式是让面试官对你怀有好感。达成该目标有很多方法,其中大多数可以在面试之前完成。

            • 突破陈规,建立融洽关系

              • 你必须突破常规,想尽办法与公司内部人员建立联系。
            • 真正的面试会是什么样子的

              • 面试的时候你要集中精力证明自己就是无须督促也能自动自发做好事情的员工。
              • 证明:在技术上你确实胜任工作
              • 能干,不会被困难阻挡,那么他们不仅会喜欢你,而且更有可能会录用你。
              • 我喜欢与接受我指导的开发人员分享这样一句话:“我是那种能够自觉主动找到自己需要做什么,也能自觉主动弄清楚该怎么做的人。”这是任何一位管理者在找寻雇员时都喜欢听到的一个神奇语句,因为这意味着他们不必在管理这个人上花太多时间,他们可以完全相信这种类型的员工能够自动自发完成需要完成的事情。你不必逐字逐句引用这句话,但你应该在面试过程中充分表现出你就是这种人。(显然,你也应该是这种人。)
            • 当下你能做什么

              • 保持技术能力
              • 确保自己一直阅读技术书籍和博客文章,并会花些时间提升自己的技能。
              • 未雨绸缪,拓展自己的社交网络。
              • 为了获得面试经验,你也要去面试。练习得越多,你在真正的面试时也就越游刃有余
        • 软件开发人员的三条职业路径

          • 选择 1:雇员

            • 做雇员的好处 稳定。 从业之路比较轻松。 带薪假期。 可能会有医疗保险(在美国)。 做雇员的弊端 缺少自由。 收入封顶。

            • 选择 2:独立咨询师

              • 做独立咨询师的好处 更大的自由度(自己掌控时间)。 可以持续不断地做新项目。 赚钱潜力。 做独立咨询师的弊端 自己去寻找业务。 打理一切事务的开销。 从“为一个老板服务”变成了“为许多老板服务”。
            • 选择 3:创业者

        • 为什么你需要走专业化道路

          • 专业化很重要

          • 在一个专业方向上拥有专长

          • 软件开发人员的专业类别

          • 无论你做什么,首先确保你选定了某些专业方向。市场规模决定了你的方向有多么具体,所以一定要让它尽可能地具体。你会在这个细分市场上更抢手。别担心,如果你需要,随时可以改变你的专业方向。显然,我现在不再专门从事打印机方面的软件开发,我知道许多开发人员即使迁移到不同的专业领域,他们依然大获成功。例如,我的好朋友约翰·帕帕(John Papa),他曾经是微软 Silverlight 方面的专家。在 Silverlight 不行了之后,他将自己的专业领域转移到单页应用(Single Page Applications,SPA)。

          • 采取行动

            • 列出你能想到的所有软件开发的专业领域。从广义的范畴将它们逐一细化,看看你能细化到多具体。

              • 你当前的专业领域是什么?如果没有的话,想想你会选择专攻哪个领域。
              • 去主流的招聘网站上看看自己的专业领域市场行情如何。确定一下,专业化道路是会让自己受益,还是过度限制了自己的选择。
        • 公司与公司是不一样的

          • 小公司和创业公司
          • 中等规模的公司
          • 大公司
        • 攀登晋升阶梯

          • 承担责任
          • 引人注目
          • 自学
          • 成为解决问题的人
          • 关于办公室政治
        • 成为专业人士

          • 专业人士的特点 遵守自己的原则。 专注于正确完成工作。 不惧怕承认自己错了,不会文过饰非。 持续稳定。 勇于承担责任。 外行的特点 让干什么就干什么。 专注于完成工作。 不懂装懂。 无法预测,不可靠。 回避责任。
          • 作为一名专业人士,你需要养成的另一个强大的习惯是时间管理技能。
          • 坚守正道
          • 追求品质,完善自我
        • 与老板和同事的相处之道

          • 谁才是你的老板

            • 软件开发人员在工作中面临的最大问题之一就是不了解公司的商业逻辑和管理链条。

            • 学会服从上级

            • 那些惹人厌的同事该怎么办

            • 与那些面善的老板和同事相处

              • 要成为那种会说话的人,即便不同意别人的看法,也能用他人可以接受的方式说出自己的看法;要成为那种乐于助人的人,对同事、老板和任何其他人都愿意施以援手;要成为那种做事情不仅要让自己有面子,还要让别人有面子的人。
              • 与人相处,培养人际交往能力是一件贯穿终身的事情,这有可能是在职场中你需要培养的最重要的一项能力,所以很有必要花时间思考如何与他人(尤其是那些难缠的人)相处,并且让自己的所作所为让他人觉得舒服。当你忍无可忍的时候,记住一个词—泰然处之。
        • 不要陷入对技术的狂热之中

          • 我们都是技术的信徒

            • 没必要只是选择最好的而贬低其他的

            • 天生一物必有用

              • 在很多情况下,解决问题并不只有一个好的或是最好的方法。同理,最好的编程语言、框架、操作系统,甚至是文本编辑器不会只有一种。你可能会喜欢某项技术多过其他,或者用某种编程语言的效率要高过其他,但是称其最好并无必要。
            • 发生在我身上的转变

              • 从那时起,面对其他编程语言,即使是动态语言,我都会抱有与面对 Java 时一样的开放心态,使用从中学到的任何知识和技能,使自己成为更好的程序员。我也放弃了对操作系统和框架的偏爱,努力尝试新东西之后再做评价。如果没有这段经历,我可能不会写这本书,又或者,我会写一本《为什么 C#是最好的语言,其他语言都糟透了》
            • 君子不器

              • 君子不器是本章的要点所在。没有理由去强烈坚持自己选择的技术就是最好的,而轻视甚至无视其他技术。如果固执己见,最终受损失的是你自己。 另外,如果你愿意对技术保持开放的心态,而不是固守自己已经了解的技术,声称它是最好的,你会发现有更多的机会为你敞开大门。
    • 自我营销

      • 自我营销基础课
      • 如何打造个人品牌
      • 如何创建大获成功的博客
      • 为何为他人增加价值非常重要
    • 学习

      • 件开发的世界是不断变化的。每一天都会有一门新的技术出现,昨天你学到的东西今天可能就毫无意义了。 在这个飞速变化的世界里,学习的能力是至关重要的。软件开发人员如果选择故步自封,忽视自己的技能发展,那么他们很快就会落在后面,错失未来,只能被派去维护过去遗留下来的系统。如果想摆脱这种宿命,你就需要学会如何学习。

      • 学习怎样学习

        • 如果想成为最好的软件开发人员,你就必须学会如何自学。很不幸,学校并不会教你自学这项技能。你可以轻松反驳说教育体系的设计初衷是针对群体而非个人。无论如何,学会学习是自学的核心技能。

          • 剖析学习过程

            • 如果我告诉你该怎么做,你可能会忘掉,但如果你自己动手做一次,你可能就记住了。如果你能将自己所学的东西教给别人,你不仅能记住,还能理解得更深刻。
            • 教育的首要目标,并不在于“知”而在于“行”。
            • 直到你将自己所学的东西用于实践,你才算真正学会了骑自行车。
          • 自学

            • 在自学方面的努力,应该聚焦在如何让自己切实参与,并且尽早付诸实践。
            • 最后,你可以将自己所学的打包教给别人。这一点是画龙点睛之笔,你应该随时准备与有兴趣倾听的人分享你新学到的知识,你会为自己的发现激动不已—玩儿的力量就是这么巨大。教导他人也很容易,它可以简单到你与配偶之间就自己学到的新东西进行的一次对话,也可以是写一篇博客文章。关键在于,你要用自己的语言将这些信息组织起来,把你的思想表述给别人。
        • 我的“十步学习法”

          • 可重复使用的自学体系

          • 体系背后的逻辑

            • 职业生涯的早年间

              • 通读全书后我才会将自己学到的知识应用于实践
              • 效率很低
            • 需要快速学习

              • 先明确需要掌握哪些内容

                • 寻找我能获得这些信息的最佳资源
              • 为了能够掌握一门技术,我需要了解以下三个要点

                • 如何开始—要想开始使用自己所学的,我需要掌握哪些基本知识?
                • 学科范围—我现在学的东西有多宏大?我应该怎么做?在开始阶段,我不需要了解每个细节,但是如果我能对该学科的轮廓有大致的了解,那么将来我就能发现更多细节。
                • 基础知识—不止在开始阶段,要想使用一项特定的技术,我需要了解基本的用户案例和最常见的问题,也需要知道自己学的哪 20%能满足 80%的日常应用。
              • 熟知了这三个关键点后,我可以高效地学习一门技术,无须通晓全部细节。

                • 如何开始,我能做什么,以及相关基础知识
              • “十步学习法”的基本思想就是:要对自己要学的内容有个基本的了解—了解自己不知道什么就足矣。然后,利用这些信息勾勒出学习的范围,即需要学哪些内容,以及学成之后又会获得什么。依靠这些知识,你可以找出各种资源(不局限于书)来帮助自己学习。最后,你可以创建自己的学习计划,列出要去学习哪些相关课程,筛选学习材料,只保留能帮助自己达成目标的优质内容。

            • “十步学习法”体系

              • 1.了解全局

              • 2.确定范围

              • 3.定义目标

              • 4.寻找资源

              • 5.创建学习计划

              • 6.筛选资源

              • 7.开始学习,浅尝辄止

              • 8.动手操作,边玩边学

              • 9.全面掌握,学以致用

              • 10.乐为人师,融会贯通

              • “十步学习法”的第一部分是研究,它是一次性完成的。

              • 第 7 步到第 10 步则是重复的过程,贯穿于你的学习计划的各个模块。

              • 这是快速学习的唯一途径吗?这是一种魔法系统吗?不,不是的。它只是通过“聚焦学习范围,让你关注重点内容”来学习的一种快速学习方法,它迫使你通过“自我探索”和“主动教学”的方式将真正重要的内容印刻在自己的大脑中。接下来的几章,我们将介绍该方法的实际操作步骤。你可以根据自己的情况对该方法进行裁剪,去掉你不喜欢或者认为无效的部分,保留对你有用的部分。最终,你一定会找到适合自己的自学方法,而你的未来将仰仗于它。

              • 采取行动

                • 挑选一项你已经烂熟于胸的技术,看看你能否明确以下几点。
                  • 如何开始用它?

                  • 该技术的应用广度如何?

                  • 利用你需要知道的 20%发挥出 80%功效。

        • 第 1 步到第 6 步:这些步骤只做一次

          • 前六个步骤,你需要集中精力完成足够多的前期调研

          • 第 7 步到第 10 步则要针对在第 5步所制订的学习计划中的每个模块循环往复

          • 第 1 步:了解全局

            • 假设你想学习数码摄影。你可能会先在网上搜索与这个主题相关的内容,浏览与数码摄影有关的博客和文章。短短几小时之内你就能对这个主题的全局及现有的子课题有一个清晰的认识。 要完成这一步,你需要对自己想要学的课题做一些基础性研究。通常你可以使用网络搜索来完成大部分研究。如果你碰巧有一本关于该主题的书,那么你就可以只读一下其中的介绍性章节,粗略浏览一下内容,但是不要在这一步上花费太多时间。记住,我们在这一步的目的不是要掌握该主题,只是对这一主题的相关内容有一个全局性的了解。

            • 第 2 步:确定范围

              • 在学习过程中,大家很容易犯的一个错误就是试图解决太大的问题而把自己搞得不堪重负。例如,试图全面掌握物理学是不切实际的,因为这一主题太过庞大,也不够聚焦。你不可能在有限的时间里学会与物理学有关的一切—穷尽一生也不可能。因此,你要明确自己的学习范围。为此,你需要运用自己在上一步中获得的信息,让自己的关注点落脚到更小也更可控的范围。

              • 将庞大的主题分解为小而聚焦的主题

                • 学习 C#:学习 C#语言的基础知识,掌握如何创建一个简单的控制台程序。

                  • 学习摄影:掌握针对人像拍摄的数码摄影知识。
                  • 学习 Linux:了解如何设置和安装 Ubuntu Linux,以及如何使用它的基本特性。
                • 如何将类似“学习 C#”这样的宏大主题缩小并聚焦到一个特定范围内的。

                  • 为学习添加了一个理由,从而将其限定在一个范围明确的主题内。
                  • 阐述学习的理由能够帮你明确学习范围,因为人们通常是为一些特殊的理由才去学一些东西的。
                  • 在此过程中,你可能会受到诱惑,为了学习该主题下的不同子主题,你可能会扩张你的学习范围而不够聚焦,但是请务必抵制住这个诱惑,尽可能地保持专注。你一次只能学一样东西。你可以稍后再回头学习别的分支领域,但就目前而言,选择一个专注而聚焦的范围,潜心学习吧。
                  • 最后,在这一步中一定要注意:明确学习范围的时候要考虑时间因素。如果你只有一周时间,你需要本着实事求是的态度确定自己能在这段时间内学到什么。如果你有几个月的时间,你也许能攻克一个更大的主题。你的学习范围务必大小适当,既能符合你的学习理由,又能符合你的时间限制。
            • 第 3 步:定义目标

              • 在全力以赴启动之前,明确“成功”的含义极为重要。如果不知道成功是什么样子,很难找准目标,也很难知道自己什么时候已经真正达到目标。在尝试学习任何东西之前,你都应该在自己脑海中清晰地描绘出成功的样子。当你知道自己的目标是什么的时候,你就可以更轻松地使用倒推的方式,明确实现目标所需的步骤。

              • 好的成功标准应该是具体的、无二义性的。不要对自己想要完成的任务进行含糊不清的描述。相反,要列出某一特定的结果,或者一旦实现自己所能达到的目标你应该能够做到的事情。下面展示了一些示例。

              • 不好的成功标准

                • 我可以用我的数码相机拍出好照片。

                  • 我学习了关于 C#语言的基础知识。
                  • 我知道如何使用 HTML 去构建一个网页。
                • 好的成功标准

                  • 我可以使用我的数码相机里的所有功能,能够清晰地描述这些功能是什么,并且知道何时何地使用各功能。
                  • 我可以利用 C#语言的主要功能写出一个小的应用程序。
                  • 我可以使用 HTML5 在网上为我自己创建一个主页,展示我的简历和我的代表性工作
                • 你想从自己的学习经历中获得什么决定了你的成功标准是什么。请确保你能借此在学习结束后评估自己是否达成了目标。好的成功标准也能让你向着既定目标不断前进。

            • 第 4 步:寻找资源

              • 要尝试收集到多种多样的资源以帮助你学习,而不是只读一本关于这一主题的书。资源可以是多种多样的,不局限于书籍。事实上,如今,随着互联网的广泛应用,各种类型的内容随处可见,你几乎可以针对自己感兴趣的任何主题,找到大量的资源。

              • 要做到这一点,最好的方法就是迅速打开电脑,开始搜索与自己的主题相关的信息。我通常会从亚马逊开始,看看能从中找到多少相关图书;然后我会用 Google 搜索,看看能不能找到视频、博客文章、播客和其他有用的内容。你甚至可以像“老派人”那样去拜访图书馆。重点就是你要找到各种不同的资源。你不想因为单一来源的信息而产生偏见,更愿意尽可能获取各种各样的信息。

              • 信息来源

                • 信息来源 图书。 博客文章。 在线视频。 专家,或者对你所想要学习的内容已经熟知的人。 播客。 源代码。
            • 第 5 步:创建学习计划

              • 对于大多数学科而言,学习是一个自然的过程。从 A 开始,前进到 B,最后到达 Z。这个顺序对你掌握随机的碎片化知识价值不大。你需要找出在最短的时间内从 A 到 Z 的正确路径,并且到达沿途的重要地标。
              • 打造自己的学习计划,一个好方法就是观察别人是如何教你感兴趣的主题的。就我自己而言,在这一步我通常会翻看自己在第 4 步中找来的图书的目录。如果五位不同的作者都把内容都分解为相同的模块和顺序,那我就会遵循这样的方法制订自己的学习计划。
              • 这并不意味着你只要复制一本书的目录就可以称其为自己的学习计划了。有的书的内容超出你的需求,有的书的结构很差劲儿。通览你收集到的全部资源,你就对自己需要哪些内容以及如何组合这些内容有更清晰的认识。
            • 第 6 步:筛选资源

              • 你已经有了大把关于数码摄影的书籍、博客文章和其他资源等,不一而足。但是,问题是你该如何利用这些资源。很多数据都是冗余,并非所有资源都适合你的学习计划。 为了研究一个主题要读 10 本书、50 篇博客文章,并不现实,并且即使你真的这么做了,其中也有很大一部分是重复的。因此很有必要对现有资源进行筛选,从中选出最能帮助你实现自己的目标的资源。
              • 在这一步中,把你在第 4 步中收集的全部资源浏览一遍,找出哪些内容能够覆盖你的学习计划。你还应当看看评论,试着找出品质最高的资源。我在购书时,通常会浏览亚马逊上的评论,找出我认为最物超所值的一两本书。
              • 一旦完成了这一步,你就可以准备前进到学习计划中的第一个模块。在你实现自己的目标之前,你还需要为每个模块重复第 7 步到第 10 步。
        • 第 7 步到第 10 步:循环往复

          • 第 7 步:开始学习,浅尝辄止

            • 大多数人,包括我自己,在学习过程中通常会犯两类错误:第一类错误是在知之不多的情况下就盲目开始,即行动太快;第二类错误是在行动之前准备过多,即行动太晚。要想在这二者之间取得平衡,你掌握的知识要恰到好处,足以能让你开始学习,但又不会多到让你无力探索,这样你的学习效果最佳。

              • 这一步的关键在于过犹不及。你会很容易就失去自控力,开始消化计划学习中列出的所有资源。但是,你会发现,如果你能经受住这样的诱惑,你会取得更大的成就。你要专注于掌握自己所需的、能在下一步动手操作的最小量的知识。
              • 你买过新视频游戏吗?你是不是在把光盘塞进游戏机开始玩之前先快速浏览一下用户手册?这正是你在第 7 步中要做的事情。你玩一会儿之后,会重新回来完整地阅读用户手册。现在,你只需要知道基本用法,能够正确地玩游戏就够了。
            • 第 8 步:动手操作,边玩边学

              • 大多数人会试图通过读书或观看视频来掌握某个主题。他们会提前吸收很多信息,然后再付诸实践。这一方法的问题在于,在他们读书或看视频的时候,他们并不知道哪些内容是重点。他们只是因循他人设计好的学习路径。
              • 现在,考虑一下我在这里建议的方法。你无须提前了解全部内容,你要做的首要的一件事情就是亲自操作和亲身体验。采用这种方法,你通过探索和实践进行学习。在操作的过程中,你的大脑自然地产生各种问题:它是如何工作的?如果我这么做,会发生什么?我该如何解决这个问题?这些问题引导着你走向真正重要的方向。当回过头寻找问题的答案的时,不只是这些问题迎刃而解,而且你记得的东西比你学习的东西要多得多,因为你所学到的都是对你很重要的东西。
              • 你可以先创建一个小项目来测试这一步的效果。把那些暂时还没有答案的问题记录下来,你在下一步中会有机会找出这些问题的答案。
            • 第 9 步:全面掌握,学以致用

              • 这一步的目标就是让你找回好奇心驱动的学习。
              • 第 8 步中,你通过动手操作发现了一些尚未找到答案的问题。现在,是时候来回答这些问题了。在这一步中,你要利用先前收集到的所有资料,进行深入学习。
              • 为了有效利用自己选择的资料,为上一步产生的问题寻求答案,阅读文字、观看视频、与他人交流都是必要手段。这能让你沉浸在学习材料中,尽可能地汲取知识。
              • 最后,千万不要忘了,你在第 3 步中定义的成功标准。试着把自己正在学习的内容与最终目标关联起来。你掌握的每个模块,都应该以某种方式推动你向着终极目标前进。
            • 第 10 步:乐为人师,融会贯通

              • 你可以用多种方式将自己所学教给他人。你可以写博客,也可以制作 YouTube 视频。你也可以跟自己的爱人探讨,将自己所学解释给他/她。重点在于,你要花时间将自己学到的东西从大脑中提取出来,以别人能够理解的方式组织起来。

              • 教授知识的途径

                • 撰写博客文章。 创建 YouTube 视频教程。 发表演讲。 与朋友或爱人进行对话探讨。 在在线论坛上回答问题。
            • 最后的思考

              • “十步学习法”并非一个神奇公式,能够让你瞬间变得聪明伶俐,但这种方法可以将你的学习过程更为结构化,而不是漫无目的地一头扎进浩渺的知识海洋之中;这种方法通过利用人天生的好奇心来帮助你吸收更多的知识,而我们中大多数人正是在好奇心的驱使下才学到很多本领的。

              • 采取行动

                • 针对你在第 29 章中制订的学习计划的每一个模块执行第 7 步到第 10 步,完成你的学习实验。 现在,不要跳过任何步骤。研究一下,如何让这种方法对你奏效,然后尝试优化它。
        • 为何说教学相长

          • 尽管我们在前面讨论“十步学习法”时已经讲过,但我认为这个概念相当重要,值得更详细地探讨:学习知识的一大方法,或许是唯一可以做到深入学习的方法,就是传道授业。
          • 在你试图教别人的时候,你强迫自己重新组织大脑中的资料。最好的思维方法就是解释某样东西并将其记录在纸上,或者记录到 Word 文件或者幻灯片中,使你可以将这些互不连贯的碎片信息收集起来,并以一种有效的方法重新组织起来。要想教人,你得先把自己教会。传道授业为何是卓有成效的学习方法,原因正是如此。
        • 发现自己的知识短板

          • 找出你的短板

            • 知识短板会阻碍你进步。准确识别它们的最佳方式之一就是看看自己在哪些工作上花费了大量的时间,或者一直进行重复性劳动。通常,你会发现,自己的知识短板使工作速度放缓,额外需要大量的时间完成任务。由于理解得不彻底,你只能摸索着前进。这正是我不理解 Lambda 表达式的时候发生的情况。我花了大量的时间去调试代码,而不是用几个小时去理解它。

              • 重复性工作也是如此。任何你所做的重复性工作都值得彻查一番,看看是否有自己不理解的地方,如果你这样做了,可能会提高你的工作效率。想想键盘快捷键。
              • 假如你在准备面试,需要明确自己要学什么,这一方法最管用。尽量找出尽可能多的你在面试中可能会被问到的问题。如果你在找 Java 程序员的工作,你要整理出一份Java 面试题的清单表,把所有题目做一遍,将自己不理解的概念和不会回答的问题整理到这个清单中。
            • 检查知识短板

              • 在哪些工作上花费时间最多。
              • 可以改进的重复性劳动。
              • 自己没有完全理解的东西。
              • 你回答不出来的面试题。
            • 消除短板

              • 消除短板的关键就是定位短板。

              • 你必须要确切知道自己需要学什么,保证焦点明确。

              • 通常情况下,你可以通过“提问题”来快速填补自己知识上的短板。

              • 采取行动

                • 在接下来的几天里随身带着一个记事本,把自己遇到的不明白的地方都记下来。 在谈话中遇到自己不明白的地方,即使觉得尴尬,也要有意识地提问。 明确自己一天中的某些“痛点”,通过弥补自己知识上的短板,找出消除痛点的方法。
    • 生产力

      • 我们要怎样做才能让自己不再沉迷于搞笑动画,克服拖延症呢?

      • 一切始于专注

        • 如何让更多的工作尽快完成呢?这一切都源于专注。专注对于完成任何任务都是至关重要的。

          • 什么是专注

            • 还记得你最近一次解决真正的难题是什么时候吗?你或许在试图修复一些 bug,或者要弄清楚为什么你的代码不工作。时间飞逝,你忘了吃饭、喝水乃至睡觉,一门心思扑在你的任务上。你全身心投入到单个项目上,任何人胆敢打断你,你必定会暴跳如雷。
          • 如何更专注

            • 此刻,你可以挑选一些耗时 15~30 分钟的任务。插上书签,合上这本书,现在就去完成这样的任务。你必须完全专注于做这件事。不要想别的事情,只专注于这一项任务。找找这种感觉。
            • 我用于提高生产力的大多数方法都是以这种方法为基础的:达到专注的临界点。在第 38 章中,我们会讨论“番茄工作法”,这种形式固定的方法能够强迫你坐下来,专心工作足够完成一项任务的时间,从而建立冲量,让你进入“专注”的境界。
          • 采取行动

            • 想一想自己极度专注于工作的时候。那是一种什么感觉?是什么令你进入这种专注模式?又是什么最终打破了你的专注?
            • 时不时实践一下专注。选一项大概需要占用你半小时或者更长时间的任务,给完成这项任务分配一个完整的时间段,完全专注于这项任务。迫使自己只集中精力在这一项任务上。当你进入专注状态时,在心里记住是什么感觉。
        • 我的私房“生产力提升计划”

          • 主流的生产力管理方法和工具

            • GTD(Getting Things Done)

              • 番茄工作法
              • 塞恩菲尔德①的“不要打破链条”(Don’t break the chain)
              • Autofocus 这样的基于列表的管理系统
            • 基本思路

              • 把一周的时间分配给一个一个用时不超过两小时的小任务。
              • 使用看板来安排自己的一周活动。看板是一个简单的白板,它有几个列,你可以轻松地在各列之间移动任务项。
              • 典型的状态有“未启动”“进行中”和“已完成”
              • 在工作时我会使用番茄工作法来保持专注,并且用番茄工作法估算和衡量每一项任务要花多长时间。
            • 季度计划

              • 我的计划都是从“季度”开始的。我把我的一年分成 4 个季度,每个季度 3 个月。在做季度计划时,我会尽力列出我想在本季度完成的每一个大项目,我还会制订一些较小的目标。
            • 月计划

              • 每个月的第一天我会打印出当月的月历,并且规划出每天要完成的工作。
            • 周计划

              • 每周一的早晨,我会做我的周计划。我原来使用名为 Trello 的工具作为看板来组织我一周的工作,但最近我一直在用 Kanbanflow 创建自己的看板,因为 Kanbanflow 有一个内置的番茄钟定时器。

              • 看板上不仅一周内的每一天都有一列,还有一列标注为“今天”,列出我当天要完成的任务;还有一列标注为“完成”,列出我已经完成的任务

              • 有一列标注为“下周”,我会把所有这周内未完成的任务以及我知道下周必须要做的事情放进去,以免自己忘记。

              • 每天开始工作的时候我都要浏览一下本周需要做的事情的清单。我在 Evernote(印象笔记)上创建了一份检查表,列出我每周必须要完成的所有工作,包括:

                • 写一篇博客文章;

                  • 制作一个 YouTube 视频;
                  • 为该视频撰写一篇博客文章;
                  • 录制两个播客;
                  • 转录和编辑我的播客;
                  • 为该播客撰写一篇博客文章;
                • 我通过在 Trello 或 Kanbanflow 上创建卡片来安排上述所有任务。对于每张卡片,我要估算一下要花多长时间(以番茄钟为单位—专注工作 25 分钟)。我假设自己每天可以使用约 10 个番茄钟。我会确保先将上述这些任务加进计划中,因为我知道这些是每周必须要完成的。

                • 最后,我将所有计划在本周完成的工作都放入周计划中。我会为每项希望本周完成的任务创建卡片,并插入可用的时间窗内。通常,我会给自己留一点儿余地,只会为每一天安排 9 个番茄钟用于工作。

                • 对本周要完成的任务就会有一个非常清晰的认识。我发现这种预测也非常准确。我有能力调整各个卡片的优先级,以确保我认为更重要的和我必须确保完成的工作优先得到保障。我还能清楚地知道每周自己的时间都去哪儿了,我甚至能事先控制自己将时间用在哪儿,而不是回过头看自己的时间都去哪儿了。

            • 日计划及其执行

              • 每天,在坐下来工作之前,我都会做一些健身活动。之所以这样做,是因为我不希望中途有事情打断我专注的状态。一旦我做好准备坐下来工作,我做的第一件事就是计划我的这一天。
              • 为了增强效果,我们并不允许有“赶工”事件发生。
              • 我的目标是完成“X 个番茄钟”,而不是“完成 X 项任务”
            • 休息和休假

              • 在长假期间,我要么会把博客和播客这类任务挂起,要么只做最小量的工作,来维持自己每周的承诺。我发现,在长时间努力工作之后,这种休息是必需的。(完成本书之后,我会休息一段时间。)
            • 采取行动

              • 你并不一定非要确切遵循我的“生产力提升方法”,但你应该为自己设定一些制度,确保自己获得持续的成果。把自己当前每周的任务记下来,看看是否有某种可以为自己制订一个能够按月、按周或者按天实施的可重复使用的方法。
              • 尝试使用一些任务管理的有效工具,包括本章中提到的那些应用。每次使用两周,看看哪款应用最适合你。
        • 番茄工作法

          • 目前我用的是各种方法的组合,但对我工作效率影响最大的还是“番茄工作法”(Pomodoro Technique®)。如果我只能向你推荐一种提升生产力的方法,那一定是番茄工作法。

          • 基本思路

            • 你规划出打算一天之内完成的工作,然后设置一个时长 25 分钟的定时器,去完成计划中的第一项任务;在这 25 分钟之内,你只专注于这一项任务,心无旁骛。一旦有干扰,可以用各种方法屏蔽掉干扰,但是通常你要努力保证自己完全不被打扰。总之,你不希望自己专注的工作状态被打断。

              • 在 25 分钟结束的时候,设置一个 5 分钟的定时器,休息一下。这就是所谓的一个“番茄钟”。每 4 个番茄钟后,你都需要休息一会儿,通常为 15 分钟。
            • 有效利用番茄工作法

              • 番茄工作法只有被当作估算和评估工作的工具使用时,才能发挥它的真正威力。
              • 通过追踪自己在一天内完成了多少个番茄钟,以及为每天要完成的番茄钟的数量设定目标,你瞬间有能力去真正评估自己每日工作的努力程度,也能知晓自己的工作能力。
              • 追踪自己一天内完成了多少个番茄钟,并为每天要完成的番茄钟的数量设定目标。事实证明这样运用番茄工作法的效果确实极为不同。
              • 旦我开始以这种方式使用番茄工作法,我发现自己的收获比以前多很多。我能够更好地利用番茄工作法,不但让自己全天保持专注,而且可以计划每天和每周的工作,找出每天自己的时间都用到哪儿去了,激励自己尽量工作得更富有成效。
            • 心理游戏

              • 因为“时间盒”效应,番茄工作法还可以在心理上对你产生巨大影响。

              • 我总为自己没有做更多的事情而感到内疚。这与我一天完成多少工作无关,就好像我永远不能放松似的。

              • 这个问题的根源在于,你无法准确地评估每天到底自己完成了多少任务,也没有为自己每天到底要完成多少任务设定明确的目标。

              • 当你完成某些任务耗费的时间比你预计的要长的时候,你将备受打击。就算你每天累得像狗一样,还是无法完成清单上的任务,所以即使你竭尽全力还是觉得自己很失败。这可真令人很沮丧。

              • 我们不一定能够控制完成一项任务到底需要多少时间,但是我们可以控制自己这一天中愿意为某项任务(或某些任务)花多少时间。如果你努力工作一整天,就会感觉很好;如果在这一天中你工作松懈却又完成了列表中的所有任务,那只不过是因为任务比预期的简单而已,你还真不应该为此而沾沾自喜。制订任务列表全凭主观臆断,每天能够专注完成的工作量才是最重要的。

              • 番茄工作法的真谛

                • 当你在一天中为自己设置了 x 个番茄钟的工作目标(这一目标你完全可控)并且达成的时候,你就可以知道自己一天到底可以完成多少工作,这会让自己感觉良好,更重要的是,还能让自己放松身心。
            • 你可以完成多少工作

              • 番茄钟上限的实际值可能令你大吃一惊。你可能会这么计算,每个工作日你平均工作 8 小时,一个番茄钟是 30 分钟,所以理论上讲,你应该在工作时间内能完成 16 个番茄钟。但实际上,即使是在 12 小时以内完成 16 个番茄钟也是极为吃力的。
              • 我一周的目标是 50~55 个番茄钟。
            • 采取行动

              • 试着用一下番茄工作法。不用担心要给每天设置多少个番茄钟的目标,只是试着使用这种方法,并列出你一整周能够完成多少工作。
              • 一旦了解自己一周能完成多少个番茄钟,你就可以给下一周设定目标了,看看能不能达到这个目标。留意自己最后完成了多少工作,以及完成每天设定的番茄钟目标之后自己感觉如何。
        • 我的“定额工作法”

          • 用“定额工作法”确保自己每天、每周都朝着自己最重要的目标取得明确的、可度量的进展。

          • 问题

            • 我发现自己有许多每周都会重复的不同任务。例如,每周我都要完成一篇博客、几个播客,锻炼身体,以及朝着既定目标取得进展的工作。我甚至还有一些必须每天都重复的日常任务。我敢肯定你也有类似的每周或是每天的例行任务。

            • 什么是定额工作法

              • 定额示例

                • 每周跑步 3 次。

                  • 每周发布一篇博客。
                  • (写作本书时)每天写一章。
                  • 每周完成 50 个番茄钟的工作。
                • 定额工作法的工作原理

                  • 挑选一些需要重复去做的任务,设定一个定额,即明确自己在一个给定的时间段内完成该项任务的频率。
                • 定额工作法的规则

                  • 挑选一项重复性任务
                  • 明确有效时限,在此期间该任务被重复执行
                  • 明确在给定的有效时限内该任务应该完成的次数的定额。
                  • 给自己承诺:一定要达成定额。
                  • 调整。调高或者调低定额,但是不能在有效时间段之内调整。
            • 采取行动

              • 列出自己生活中需要重复做的所有任务。特别要专注于那些目前你还无法持续完成但一旦完成就会从中受益的事情。
              • 选择至少一项任务,承诺在规定时间段内要完成的额度。认真对待这一承诺,试着坚持至少 5 个时间段。想象一下,如果自己能坚持几个月或几年,会发生什么。
        • 对自己负责

          • 采取行动

            • 抉择一下:你想如何度过自己的一生。花点儿时间创建一些自己的规则,确保自己朝着正确的方向前进。

              • 创建自己的责任制度,帮助自己严格执行规则。
        • 为什么说多任务并行弊大于利

          • 批量处理生产效率更高

            • 潜在的适合批量处理的领域

              • 处理电子邮件。
              • 打电话。
              • 修复 bug。
              • 开短会。
            • 采取行动

              • 停止任何并非真正多任务并行的多任务并行。每天力争在一个时间段内只做一件事。番茄工作法对此有很大帮助。
              • 一次性批量处理小任务,而不是每天或每周里做许多次。
              • 找出能够真正实现多任务并行的领域。任何不需要耗费脑力的活动都可以跟其他活动结合起来。只要进行任何需要耗费脑力的活动,就将其与体育运动结合起来。
        • 如何应对职业倦怠

          • 采取行动

            • 想一想以前都有哪些项目是你付出努力却没有最终完成而半途而废了。是什么原因让你放弃的?你现在对这件事儿有什么感受?

              • 下次开始新项目的时候,下定决心:你一定会完成,或者完全掌握。设定规则和约束条件,强迫自己穿过那堵不可避免的墙。
              • 如果你正面临职业生涯或者个人生活中的一堵墙,试着去穿越它。想想在墙的另一侧会有怎样的收获等着你。想象自己的动机和兴趣终将获得回报。
        • 你是怎样浪费掉时间的

          • 一些常见的时间杀手

            • 看电视。 社交媒体。 新闻网站。 不必要的会议。 烹饪。 玩电子游戏(尤其是网络游戏)。 工间喝咖啡休息。

            • 采取行动

              • 下一周,精心地追踪一下自己的时间花费情况。获取精确的数字,了解每天的每小时你都是怎样花掉的。看看数据,找出你最大的 2~3 个时间杀手。
              • 如果你有看电视的习惯,尝试离开电视一周,即尝试度过一个“无电视周”,看看如果不看电视你都会做些什么。
              • 弄清楚哪些时间是可以“买回来”的,如雇人为你修剪庭院、做保洁等。(如果切断有线电视,你甚至可以用这笔省下来的钱来支付上述费用。)
        • 形成惯例的重要性

          • 生产力的真正秘诀在于:长期坚持做一些小事。例如,每天写 1000 字,那么一年就能写 4 本小说。(一本小说平均为 6 万~8 万字。)

          • 例行安排的示例

            • 7:00 am:锻炼(跑步或者举重)。

              • 8:00 am:吃早餐
              • 9:00 am:开始工作,并且挑选最重要的工作做。
              • 11:00 am:检查和回复邮件。
              • 12:00 am:吃午餐
              • 1:00 pm:专业开发时间(研究新技术,提高技能)
              • 1:30 pm:做第二重要的工作,开会或其他
              • 5:30 pm:为明天的任务做好计划,记录今天完成的工作
              • 6:30 pm:晚餐
              • 7:00 pm:陪孩子做游戏
              • 9:00 pm:读书
              • 11:00 pm:睡觉
            • 采取行动

              • 你目前有哪些惯例?追踪一下你的日常活动,看看你已经在遵循的惯例有哪些。
              • 选择一个大目标,以每个工作日为单位制订例行安排。计算一下,如果你每天都朝着这个目标前进,一年下来你会取得多大的成就。
        • 如何培养好习惯

          • 了解习惯

            • 习惯主要由三个要素构成:暗示,惯例和奖励。暗示是导致习惯被触发的某样东西。

            • 找出坏习惯,改掉

            • 养成新习惯

            • 采取行动

              • 追踪你的习惯。哪些习惯对你目前的生活影响最大?你认为其中有多少是好习惯,又有多少是坏习惯?
              • 挑选一项你的坏习惯,试着把它转变为好习惯。在开始做之前,先在自己脑海中设想一下从现在起一周之后、一个月之后、乃至于一年之后你会有什么成果。
        • 分解任务会提高生产力

          • 如何分解任务
          • 分解问题
        • 努力工作的价值,以及为什么你总是逃避努力工作

          • 努力工作是成功的必要条件,无法逃避

          • 现实

            • 没有一件事情是轻而易举的
        • 任何行动都比不采取行动好

          • 采取行动

            • 挑选你知道你应该采取行动的事项,查看上述检查清单。

              • 如果当前的行动目标过于复杂,难以决断,你能做出哪些小一点儿的决定来继续前进?例如,如果你要决定到底是学弹吉他还是学弹钢琴,你可以决定先暂时学哪一样,同时决定长期学习哪一样吗?
    • 心态

      • 一切都源自积极心态

        • 如何重启你的态度

          • 改变自己的想法
          • 冥想
          • 劳逸结合
        • 如何改变你的自我形象

          • 采取行动

            • 列出你的优点和缺点。不仅试着想想你是如何认知自己的,也试着想想别人又是如何认知你的。这份清单不一定完全正确—你的自我形象的很多方面被埋在了潜意识的深处,但它会是一个很好的起点。

              • 你觉得这份清单上有哪些方面是无法改变的?为什么?想想这些方面是永久性的,还是只是因为你的信念给你自己带来了局限。
              • 尝试至少改变自我形象的一个负面的方面。用本章提出的建议来进行改变。试着用这个“假装自己能成功”的方法和正面的肯定来强化自己的新信念。
        • 我的私房成功书单

          • 采取行动

            • 现在,你可以选择两三本你认为对你和你当前的职业生涯最有用的书,读一读。注意,不要只是买来放在书架上,而是要实实在在阅读。

              • 从这张书单中挑一本让你感到厌恶的书(因为你觉得它废话连篇,或者你觉得它永远与你无缘),读一读。为什么?因为即使它不会改变你的想法,也可能会开拓你的视野。
        • 不要害怕失败

          • 采取行动

            • 对失败的恐惧是如何让你退缩的?想想生活中那些你想做但由于一时犹豫或者自尊受损而没有做的事情。

              • 承诺至少做一件因为害怕失败而一直回避的事情。不要敷衍了事。很多人明知道有些事会失败还去“尝试”,这样做不会让他们真正失败,因为“没有真正尝试过”才会是失败。真的去尝试,真的去体验失败吧。
        • 走出舒适区

          • 万事开头难

          • 采取行动

            • 让自己勇敢起来。今天就是你的大日子。走出去做一些令你害怕的事情,大小都不要紧,迫使自己处于不自在的环境,并且提醒自己:“这没什么大不了的。”

              • 现在,重复上一步,至少每周一次。
        • 结束语

          • 不要把我的这本书当作福音。这本书就是分享我的经验,以及到目前为止让我获得成功的关键要素。希望你能从中找到一些有用的东西,即便你可能不同意书中的所有观点,那也没关系。
          • 你不能把别人说的话都当作福音。没有人可以垄断真理。
          • 如果你能学会管理诸如成功、理财、健身以及自己的心理状态等事务的基本原则,你大可以利用这些原则来塑造属于自己的现实世界。
          • 写这本书只是因为我认为我们不仅应该不遗余力地做好软件开发人员的本职工作,而且应该做一个好人:去帮助他人。

    相关文章

      网友评论

          本文标题:软技能:代码之外的生存指南读书笔记

          本文链接:https://www.haomeiwen.com/subject/zlcdldtx.html