美文网首页读书
《软技能》- 程序员的人生指南

《软技能》- 程序员的人生指南

作者: Flum_X | 来源:发表于2017-12-11 14:49 被阅读0次
    软技能.jpg

    偶然间跟朋友在图书馆看到这本书,看过有不少博客上也极力推荐此书,借来读了两周,受益匪浅。如果你跟我一样在软件开发的道路上有困惑,建议你也去读一读。

    一个自强不息、孜孜不倦地持续自我改进的开发人员应该具备的素质:

    永远不会对 “不错” 感到心满意足
    永远寻求每一个机会来扩展自己的视野,探索未知事物
    对知识的渴求永远不会熄灭
    笃信软件开发并不意味着编写代码
    知道失败不是结束,失败只是人生旅程上的小小一步
    有过挣扎,有过失败,但仍然会爬起来继续战斗
    拥有强烈意愿和决心,在人生的道路上不畏艰难
    以及最重要的,愿意一路上帮助他人

    正如本书副标题所说,这并不是一本跟代码相关的书籍。这本书从职业、自我营销、学习、生产力、理财、健身、精神七个方面来讲述代码之外的生存之道。这不是一本“心灵鸡汤”式的书,书中的建议和行动项是很容易落地执行并付诸于实践的,也许有些是你目前已经在实践了。

    职业篇

    你所能犯的最大错误就是相信自己在为别人工作。这样一来你对工作的安全感已然尽失。职业发展的驱动力一定是来自个体本身。记住:工作是属于公司的,而职业生涯却是属于你自己的。
    ——厄尔 南丁格尔

    关于职业生涯,作者的关点是应该把自己的软件开发事业当做一桩生意来看待。这点确实对我触动很大,如果仅仅是为了谋生一头扎进代码的世界跟中世纪的铁匠(原来国外比作“铁匠”,咱们叫“码农”)没什么差别。所以你是一个商人,你应该把自己当做一个企业来思考,一个企业最基本的是要有一个产品或者服务,要不然是没办法赚钱的,而你所能提供的服务就是创建软件

    如果你想做到 “非同凡响”,你需要做到:

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

    所以专业化很重要,在想成为“通才”之前,请先做一个“专才”。

    思考未来:你的目标是什么?

    目标的重要性不言而喻,而我们却很少花心思去仔细思考这个问题。大多数时候,我们会接受第一份录用通知提供的工作,一直待下去,直到有更好的机会或者被解雇。

    没有明确的方向,你走的每一步都是徒劳的。
    不要随心所欲地生活,不要随遇而安地行走在职业生涯的漫漫长路上。

    采取行动

    • 坐下来,为你的职业生涯设置至少一个大目标。
    • 将大目标分解成相应的若干小目标,例如:
      • 月度目标
      • 周目标
      • 每日目标
    • 把你的大目标写在自己每天的必经之地,每日三省吾身——我在追求什么。

    职业篇还有很多章节介绍人际交往、面试、就业选择甚至创业等, 基本都覆盖了在职业生涯中需要面对的一些问题,相信会有你比较感兴趣的。

    学习篇

    这篇作者主要介绍了自己的 “十步学习法”,这套体系背后主要有三个关键点:

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

    第1步:了解全局

    在这一步,你要做的就是了解自己将要学习的主题的全局,仅仅是一个全局性的了解而已。

    • 这个主题宏观上什么样?
    • 你能从中学到足够的知识以了解自己所不知道的吗?
    • 自己所不知道的有多少?

    要完成这一步,你可以借助网络来完成大部分研究,或者碰巧有本跟该主题相关的书,你可以读一下相关的介绍性章节并粗略浏览一下内容,但不需要在这一步花太多时间。

    第2步:确定范围

    通过第1步的学习,你应该对自己的学习主题及其全局有个大致的了解了。这一步你的目标就是集中精力去明确自己到底要学什么。比如学习数码摄影,在一定时间内你不可能掌握关于数码摄影的所有知识,所以你需要决定学习的重点以及学习的范围。你可以把如何拍摄人像照片当做你的学习范围。

    • 将一个大的主题分解成可控制的子主题
    初始的主题 可以分解为子主题
    学习C# 学习C#语言的基础知识,掌握如何创建一个简单的控制程序
    学习摄影 掌握针对人像拍摄的数码摄影知识
    学习Linux 了解如何设置和安装Ubuntu Linux,以及如何使用它的基本特征
    • 尽可能地保持专注,一次只学一样东西
      就目前而言,聚焦于当前选择的子主题,可以稍后再来学习别的分支领域。

    • 考虑时间因素
      学习范围务必大小适当,即能符合你的学习理由,又能符合你的时间限制。

    第3步:定义目标

    这一步的目标是形成一份简明清晰的陈述,勾勒出你勤奋学习后的成功图景。

    • 好的成功标准应该是具体的、无二义性的。

      “好的” 和 “不好的” 成功标准示例:

    不好的成功标准 好的成功标准
    我可以用我的数码相机拍出好照片 我可以使用我的数码相机里的所有功能,能够清晰的描述这些功能是什么 ,并且知道何时何地使用各功能
    我学习了关于C#语言的基础知识 我可以用C#语言的主要功能写出一个小的应用程序
    我知道如何使用HTML去构建一个网页 我可以使用HTML5在网上为自己创建一个主页,展示我的简历和我的代表性工作

    第4步:寻找资源

    打开电脑,搜索与自己的主题相关的信息。重点是找到各种不同的资源,不会因为单一的信息来源而产生偏见。图书、博客、在线视频、源代码、官方文档等等都是比较好的信息来源,当然你也可以直接咨询擅长于该主题相关领域的大牛,如果可以的话。

    第5步:创建学习计划

    这一步你需要创建属于自己的学习计划,你需要找到在最短的时间里达到你的学习目标的正确路径。你可以从观察别人是如何教你感兴趣的主题开始。

    如何更有效地学习,更重要的是如何更直接地得到学习的结果,而不是通过学习安慰和麻木自己。

    通览你收集到的全部资源,你就会对自己需要哪些内容以及如何组合这些内容有更清晰的认识。

    第6步:筛选资源

    到这一步你需要决定要使用哪些资源来完成自己的学习任务,先把第4步中收集的全部资源浏览一遍,找出哪些内容能够覆盖你的学习计划。你应该去看一看评论什么的,试着找出品质最高的资源。

    • 挑选你想要了解的一项课程,实际演练一下上述六个步骤。你可以从一些规模较小的课题开始,以便让自己习惯于这一过程。(实际运用很重要,养成习惯后将受益无穷)

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

    在这一步中,你的目标是获得足够多的与所学主题相关的信息,从而能让你开始学习,并在下一步中动手操作。这一步的关键在于过犹不及,你要抵制住去消化计划学习中列出的所有资源的诱惑,而专注于掌握自己所需的、能在下一步动手操作的最小量的知识。

    第8步:动手操作,边玩边学

    实践是最好的老师,很多事情只要亲手做过一遍就不会觉得它难了,而且印象会非常深刻。这一步中,你无需提前了解全部内容,只需要动手操作和亲身体验。在操作的过程中,你的大脑自然地产生各种问题:

    • 它是如何工作的?
    • 如果我这么做,会发生什么?
    • 我该如何解决这个问题?

    当你回过头去寻找问题的答案时,不只是这些问题迎刃而解,而且你记得的东西比你学习的东西要多得多,因为你所学到的都是对你很重要的东西。

    第9步:全面掌握,学以致用

    这一步的目标就是让你找回好奇心驱动的学习。在这一步中,你要利用先前收集到的所有资料,进入深入学习。给自己足够多的时间去深入理解自己的主题,不要害怕反复回头操作,这样能让你理解的更深,也能学到新东西(所谓温故而知新)。

    不过你依然没有必要收集到的所有资料全部仔细看一遍,因为你几乎不可能有那么多的时间,你只需要阅读或者观看与当前所学相关的部分,基本上你只要以解决在动手操作中发现的问题为主要目的。

    最后,千万不要忘了你在第 3 步中定义的成功标准。试着把自己正在学习的内容与最终目标关联起来。你掌握的每个模块,都应该以某种方式推动你向着终极目标前进。

    第10步:乐为人师,融会贯通

    你告诉我的,我都忘了。你教会我的,我都记得。让我乐在其中,我就一定能学会。
    ——本杰明 富兰克林

    在这一步中作者极力推崇我们要做到“好为人师”,这样你才能深入地掌握一门学问并做到融汇贯通。

    大多数人都不敢为人师,尤其作为一个初学者的时候,但是你要想确定自己确实掌握了某些知识,你必须走出自己的舒适区,将学到的知识教给别人,同时这也是查缺补漏的好办法。在这一过程中,你要切实剖析并理解自己所学的知识,将其内化到自己的思想,并用能够让他人理解的方式精心组织这些信息。

    所以,不管做什么,千万不要跳过这一步。这一步对于保持信息以及深入理解知识而不仅仅只是流于表面至关重要。

    教授知识的途径

    • 撰写博客文章
    • 创建视频教程(大牛可以开直播)
    • 发表演讲
    • 与朋友或者同行进行对话探讨
    • 在在线论坛回答问题

    思考

    这些步骤本身并不重要,不要太拘泥于形式,这一学习过程背后的理念才是真正重要的。重点就是你要开发出一套适合自己的自学体系,一套你可以持续不断地加以运用而获得丰硕成果的方法体系。

    生产力篇

    这里谈到了番茄工作法,简单介绍下它的基本思路:
    首先规划出打算一天之内完成的工作,然后设置一个时长25分钟的定时器,去完成计划中的第一项任务;在这25分钟之内,你只专注于这一项任务,心无旁骛。一旦有干扰,可以用各种方法屏蔽掉干扰,但是通常你要努力保证自己完全不被打扰。

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

    潮汐.jpg

    已经有很多应用程序用于跟踪和记录番茄钟,这里推荐一款iOS应用 潮汐
    详细介绍请看这里潮汐,一款让人专注的APP

    这本书的其它章节也很有意思,比如理财、健身、精神,有兴趣的同学可以借来或者买来看看,相信一定会有所收获。

    相关文章

      网友评论

        本文标题:《软技能》- 程序员的人生指南

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