我阅读过很多有关程序员的书籍,几乎都是涉及到具体的软件开发技能,没有一本全面的介绍程序员发展的书籍。一个偶然的机会,我在人民邮电出版社异步社区(https://www.epubit.com/)看到一本叫做《软技能:代码之外的生存指南》的书籍,从标题看就挺特别的,接着看了该书的简介,说:这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书,书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。
抱着换换读书口味的想法,我将这本书买回家中,几乎是一口气读完了,觉得还不过瘾,就又阅读了第二遍。这本书确实是一本“奇书”,聚焦于软件开发人员生活的方方面面,包括如何学习、如何营销、如何投资、如何保持健康等。 要说清楚书中内容,还要从本书作者谈起。
关于作者
本书作者John Z. Sonmez(约翰 Z. 森梅兹)作为程序员出身,除了在多家公司做过软件开发工作之外,还为在线培训机构开发了50多门在线课程,涉及iOS、Android、.NET、Java和游戏开发等多个主题。除此之外,他是“Simple Programmer”网站的创始人、Get Up and CODE”播客的主持人(讨论程序员健身)、“Entreprogrammers”播客的主持人(在这里他和其他三位开发者/企业家分享他们构建在线业务的真实故事)。
从作者的经历可以看出,他就是一位将代码之外的潜力发挥得非常充分的人,他的目标并不止于做一位成功的软件开发者,实现财富自由,而是要成为软件开发人员的人生导师,帮助软件工程师、程序员和其他专业技术人员推动事业进步,过上更充实的生活。
本书内容简介
本书内容分为七篇,包括:职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇和精神篇。
在第一篇“职业”中,作者教我们到底该如何主动地管理自己的职业生涯,从而获取自己追求的结果;此外,作者还论述了程序员需要具备的一些与职业目标无关但依然很重要的技能,如怎样创建一份好的简历、如何掌握面试技巧、如何远程工作,以及如何获得优秀的人际交往能力。
在第二篇“自我营销”中,作者会提到一个话题:如何推销自己。在这一篇中,作者会教导程序员学习如何成为一个更好的销售人员,具体建议包括:如何打造个人品牌,如何打造一个成功的博客,如何做演讲、教学和著书立说等。
在第三篇“学习”中,作者提到学习是每一位软件开发人员生活中的重要部分,学习如 何学习,或者说如何自学,这是程序员应该掌握的最有价值的技能。在这一篇中,作者向程序员展示了如何依靠自己的能力和常识、辅以勇气与好奇心,获得更好的成果。同时,作者还向程序员展示了自己开发的“十步学习法”。另外,作者还介绍了一些关键的话题,包括:如何找到一位好导师,如何成为一位导师等。
第四篇“生产力”是关于如何让工作更加富有成效的,在这一篇中,作者向程序员分享了如何克服拖延症、混乱症和懒惰病的方法。另外,作者还介绍了解决一些困难课题的方法,例如倦怠、看电视太多及如何寻找动力去探究并完成那些无趣老套的脏活累活等。
在第五篇“理财”中,作者论及一个常常被大家完全忽略的话题—个人理财。在这一篇中,作者会教授大家“做出明智的理财规划”所需要知道的基础知识,让大家可以真正开 始规划自己未来的财务。另外,作者还会教给大家如何管理收入的基础知识:股市如何运作,如何投资房地产,如何避免债务等。
在第六篇“健身”中,作者将教大家如何减掉脂肪、增加肌肉、给身体塑形。在这一篇中,作者将带大家浏览饮食和营养的基本知识,解释大家吃的东西是如何影响到身体的。另外,作者还会告诉大家如何制订一项成功的健身计划,如何通过饮食来减肥、增加肌肉,或者两者兼顾。
在第七篇“精神”中,作者会给大家介绍影响情绪状态和态度的真实的、实用的建议。在这一篇中,作者将主要专注于帮大家重新连接大脑,从而创造出通向成功之路所必需的积极态度。此外,作者也简要介绍了恋爱和人际关系,并提供了一份成功学私房书单。
十步学习法
作者在该书中向大家分享了“十步学习法”体系,其基本思想是:要对自己要学的内容有个基本的了解;然后,利用这些信息勾勒出学习的范围,即需要学哪些内容以及学成之后又会获得什么;依靠这些知识,可以找到各种资源来帮助自己学习;最后,可以创建自己的学习计划,列出要去学习哪些相关课程,筛选学习材料,只保留能帮助自己达成目标的优质内容。具体步骤如下图所示:
第1步:了解全局。
在这一步,要做的就是了解自己将要学习的主题的全局,要完成这一步,我们需要对自己想要学的课题做一些基础性研究。但这一步的目的不是要掌握该主题,只是对这一主题的相关内容有一个全局性的了解。
第2步:确定范围。
这一步就是集中精力去明确自己到底要学什么,我们可以充分利用自己在第1步中收集到的信息,找出自己的学习范围。在这一步中,要注意明确学习范围的时候要考虑时间因素。
第3步:定义目标。
这一步的目标是形成一份简明清晰的陈述,勾勒出自己勤奋学习后的成功图景。我们想从自己的学习经历中获得什么决定了成功标准是什么,好的成功标准能让大家向着既定目标不断前进。
第4步:寻找资源。
在这一步中,我们会想找到尽可能多的与自己所选主题相关的资源,此时无需考虑这些资源的质量。这一步与头脑风暴类似。
第5步:创建学习计划。
在这一步中,我们需要创建自己的学习路径。打造自己的学习计划,一个好方法就是观察别人是如何教你感兴趣的主题的。
第6步:筛选资源。
在这一步中,要把在第4步中收集的全部资源浏览一遍,找出哪些内容能够覆盖自己的学习计划,并挑选最有价值的几项来帮自己实现目标。
第7步:开始学习,浅尝则止。
在这一步中,目标是获得足够多的与所学主题相关的信息,从而能让你开始学习,并在下一步中动手操作。这一步的关键在于过犹不及。
第8步:动手操作,边玩边学。
在这一步中,要采用在第7步中学到的知识,不用担心结果,勇敢探索。
第9步:全面掌握,学以致用。
这一步的目标就是让大家找回好奇心驱动的学习。
第10步:乐为人师,融会贯通。
在这一步中,要求大家走出自己的舒适区,将自己学到的知识教给别人。
总结
“生活不止眼前的苟且,还有诗和远方”,对于软件开发者来说,生活中也不止有代码,还有其他。在刚参加工作的时候,我每天的工作几乎都是编程,没想过还有其他的东西。但是,随着工作经验的丰富,我才知道对于一个程序员来说,编写程序只是工作中很小的一部分,还有诸如文档编写、知识分享交流等。
《软技能:代码之外的生存指南》一书打开了我的眼界,让我看到了一个普通的程序员也可以拥有精彩的人生。一个人必须要用双脚走路才能走得平稳,作为软件开发者,除了掌握软件开发的技能之外,还必须要学会如何在工作之外也能够取得优秀的成绩。不管你是否从事软件开发这个职业,本书都是一本值得你细细阅读的佳作。