软技能分享
#《软技能》
前言
对于优秀的软件开发者来说,埋头写代码绝并不应该是工作的全部。这本书给出了很多非常好的建议,不仅仅“码农”们可以从中获益,还可以推而广之到很多其他的行业。
职业
主要讲的是如何进行自己的职业规划
你所能犯的最大错误就是相信自己是在为别人工作。这样一来你对工作的安全感已然尽失。职业发展的驱动力一定是个体本身。记住:工作是属于公司的,而职业生涯确实属于你自己的。 - 厄尔.南丁格尔
那么我们该如何解决这样的问题呢?
思考未来,你的目标是什么(√)
工作属于公司的,而职业属于自己的。没有目标的就更不可能去实现自己的目标,浑浑噩噩混过一生,这个是大多数人的自然状态,我们通常保护会充分思考自己该关注什么,这样我们的行动也就漫无目的,无的放矢。(想象一下,海中的船只)。
为什么需要目标?
如何设定目标。
首先,必须定义一个大目标,不需要那么具体,但是一定要清晰,能够让你自己知道你自己是再向它前进还是离它越来越远。
如果你可以驱动小目标逐渐前行并靠近你的大目标, 那么最终你一定会到达目的地。 设定大小不同的目标, 确保你向着自己的大目标前进, 这一点非常重要。 例如, 你设定了 一个年度目标, 阅读很多技术书籍, 或是学习新的编程语言。 这个年度目标可能是引领你 走向“成为一名高级开发人员”这个大目标的小目标。 同样, 每年的目标可能被分解成更小 的目标, 比如每月阅读一本书, 或者每天读多少页。
较小的目标可以让你航行在自己的轨道上, 激励你保持航向朝着更大的目标前进。 如 果你准备达成一个大目标, 却没有分解为小目标, 那么当你偏离航向时也不会有时间去校 正。 达成较小的目标也能经常奖励自己, 帮助并激励自己。 每一天、 每一个星期的小胜利 会让我们觉得自己正在取得进展、 达成目标, 这让我们感觉良好, 帮助我们继续前进。 较 小的目标似乎也不像大目标那样令人望而生畏
追踪你的目标。
采取行动
- 坐下来,为职业生涯设置至少一个大目标。
- 将大目标分解成若干个小目标,例如
- 月度目标
- 周目标
- 每日目标
- 把大目标写在每天的必经之地,达到吾日三省吾身的效果
学会与人打交道(√)
‘别管我,我只想一个人安静地写代码!’
是不是每天想安安静静地写代码时,微信窗口或者Email总会不合时宜地弹出各种提示,一会要开会啦一会要讨论需求了,再一会测试又来和你理论Bug了。世界这么喧嚣,还让不让人安静地写代码了?“别管我,我只想一个人安静地写代码”,这句话道出了多少程序员的心声啊,我们都想“静静”!不过今天我要告诉你,这种想法是多么的错误,并且严重影响了你职业生涯的发展。
如果你觉得自己的工作就是写写代码,那你最好三思。在开发的领域,我们大多数是与人而不是与计算机打交道。我们所写的代码首先是供人使用的,其次才是让计算机可以理解的,如果你只想和机器打交道,那写二进制的代码机器才能理解你。仔细想想自己一天的工作中有多少时间用在了与人互动上,收发邮件、会议、讨论(扯皮)等等,作为一个开发人员,你的工作就是与人打交道(其实几乎所有的职业都是这样)。
所以,虽然你是一个码代码的码农,看似你工作的重心是在码代码上,但其实你自己统计一下也会发现:你真正写代码的时间占你工作时间的比例并不高甚至有些人非常低。即使没有人打扰你,你仍然需要花很多的时间去设计(思考)怎么写你的代码,或者花很长的时间去看懂别人的代码然后找到Bug产生的原理,这个过程中看似你面对的是代码是机器,但其实你面对的是人(写代码的人和读你代码的人)。这还没有谈论怎么把业务的需求变成代码,你仍然需要了解一定的业务知识,当然最好的方式是先和业务、需求设计人员进行沟通,而不是闷头写代码。
那么问题来了,如何与人打交道呢? 许多优秀的书籍都阐述了“如何与人打交道“这个主题,再这本书中作者强烈推荐《人性的弱点》这本书,此外作者还在这一篇中引用了这本书中的一些观点。 1. 每个人都希望感到自己很重要 我们常常容易犯的一项错误就是,轻率地否决同事的想法,以便于可以提出自己的想法。然而随着你做出这样的错误判断,你往往会发现他们对你的想法充耳不闻,仅仅因为你让他们感觉自己是无足轻重的。如果你希望人们接受你的想法,并认可其中的价值,首先你最好先主动给他人相同的礼遇。如果你不能保全他人的自尊,那你永远也不可能赢得他的心。 2. 换位思考 在人际交往方面获得成功的关键在于:停止用”我“和”我想要什么“来思考。而是应该思考什么对他人而言是最重要的,什么才是他们最需要的。这样你可以很好的避免让他人觉得自己不受重视,你也能少做一些否定他人的行为,同样的,他人被你这样对待,也更可能用讨人喜欢的方式与你打交道。也更能认可你的想法。
要做到换位思考的前提,我们需要首先要做到学会倾听,更好的倾听他人的想法,不要打断别人;在倾听的同时,试着将注意力转移到他们身上,从他们的角度来思考问题,什么是他们感到至关重要的,当轮到你发言时,再娓娓道来,一语中的。
避免争吵 对于程序员理工男来说,逻辑思考是我们必备的思考问题的方式,所以往往更倾向于认为所有人都是从逻辑角度来思考问题,但这时候却恰恰忽略了人是有情感的生物,是由理性和感性构成的。我们就像那些穿着西装、打着领带、四处游荡的小孩,假装自己已经长大了,其实任何轻微的伤害都能让我们嚎啕大哭、或者大发雷霆,我们只是学会了如何隐藏自己的情绪。
据我所知,普天之下解决争吵的灵丹妙药只有一个,那就是避免争吵,像躲避响尾蛇和地震一样地远离争吵。 — Dale Carnegie , 《人性的弱点》
如果你在和他人进行技术方案探讨时,意见产生分歧;最好能先确定分歧点是否值得你拼命维护,在小事情上,任何放弃立场和承认错误的机会对你而言可能都没什么大不了的,但对他人而言,可能是举足轻重的,这么做不仅能为你赢得不可估量的尊重,也能为你的未来积累财富。
ps:下一次当你被卷入一场争吵之前,想办法看看能不能逆转,做个有趣的小测试,试着认输。事实上,不仅仅要认输,更要果断的站在对手一边。结果可能会让你大吃一惊。
如果你还是觉得自己的工作就是写写代码,那你最好要三思。作为一个软件开发人员,你的工作就是与人打交道(其实几乎所有的职业都是这样)。
那么如何学会与人打交道?
- 每个人都希望感到自己很重要。一般人容易犯错:轻率地否决同事的想法以达到提出自己的想法的目的
- 永远不要批评。如果可以做到用表扬代替批评岂不是更好吗
- 换位思考。开始思考对他人而言什么才是最重要,什么才是他们需要的
- 避免争吵。在小事情上放弃立场或承认错误对你而言没什么大不了,但对他人却可能是举足轻重的
攀登晋升阶梯
- 在公司能让你脱颖而出的重要法宝是承担更多的责任。如何让自己承担更多责任? - 有一个不受重视的项目,你能去负责它么 - 你能帮助团队里的新人快速成长吗 - 你能负责文档制作流程,并保证及时更新这些文档吗 - 哪项工作没有人去做,你愿承担起来并将其简化或自动化的
- 如何令自己引人注目? - 提供演讲或培训。选择一个对你的团队有用的话题 - 发表意见。有机会,有想法就可以这么做
- 利用业余时间自学,不限于软件开发,千万不要忘记分享自己学到的东西。
- 成为问题的解决者。成为能为各种问题找到解决方案的人,成为勇于执行这些解决方案以获得成果的人
假装自己能成功
请勿陷入对技术的狂热之中
作者开始是一个.net开发人员,专注c#语言。(其实,作者在.net出现之前是c++的忠实信徒),他无法容忍java工作的想法,他甚至都不知道lambda表达式,怎么可能喜欢用java写代码。但是那份java工作的机会实在太好了,作者认为不过就是一个合同,为了这份工作而忍上区区一年。后来作者发现,接受那份工作是他职业生涯中所做出的最杰出的决策之一,事实证明,java一点也不糟糕,在这之后,作者放弃了对操作系统和框架的偏爱,努力尝试新东西后再做评价。如果没有这段经历,作者或者可能会写一本书《为什么C#是最好的语言,其他语言都糟透了》
不拘一格是要点所在,没有理由去强烈坚持自己选择的技术就是最好的,而轻视甚至无视其他技术。保持开放的心态,你会发现更多机会为你敞开大门。
自我营销
营销就是一场争夺人们注意力的竞赛。通过自我营销,包括写博客、运用社交媒体扩大自己的影响力;
自我营销的重要性
- 自我营销的正确方式就是为他人提供价值
- 想想摇滚乐队和酒吧驻场乐队的区别
- 不要让“不是专家”成为放弃自我营销的借口
自我营销的方式:
- 博客。你自己的播客或在他人播客上发布特邀文章
- 播客
- 视频。上传自己分享的内容和课程
- 给杂志投稿
- 书籍
- 技术会议
- 代码营
打造引人注目的品牌
品牌的因素:
- 品牌所传递的信息
- 品牌需要视觉符号
- 品牌要有一致性
- 品牌曝光度
打造成功博客
- 最大的秘诀就是持之以恒。每周至少更新一篇
- 重视博客内容品质
- 不知道写什么:提前头脑风暴出各种不同想法;与别人就某个话题展开对话;不要担心文笔如何,不要太在意别人的想法
- 开始评论自己的博客
- 在社交网络上分析你的内容
为他人增加价值
不要努力成为一个成功的人,而要努力成为一个有价值的人。 - 阿尔伯特.爱因斯坦
人们最关心的还是自己,没人想听到你的成功故事,也不想知道为什么他们要帮你获得成功,他们想听到的是你怎么样帮他们获得成功。
如果你能帮助足够多的人们得到他们想要的东西,你就会得到自己想要的东西。
把你工作成果的 90% 都做成免费的。因为免费的内容更容易分享,让人们更能了解你生产的内容多么有价值
善于运用社交媒体
- 培育你的社交网络。如果你对别人感兴趣,他们会对你更感兴趣。不要急于求成
- 有效地运用社交媒体分享内容
- 保持活跃度
- 不同的社交网络,不一样的功能划分
学习
教育就是把一个人在学校所学会的全部忘光之后剩下的东西。 - 阿尔伯特.爱因斯坦
如果你想学习一些东西,最好的方法就是付诸于实践。
十步学习法(√)
“十步快速自学方法”是本书最值得推荐的内容之一,自我学习能力是这个快速发展的社会中最为重要的能力;
依然记得大学时期开始学习java的那段时间,打开菜鸟教程“www.runoob.com”就是一顿学习,结果整个java基础模块都看完了之后还没有敲代码实践,结果过了几天就忘的差不多了,尤其是一些细节方面的知识,更是一点印象没有,相当于没学。后来陆陆续续花了更多的时间,才能够勉强在实践中运用java语言去编写程序。
在这本书中,作者也遇到了这样的问题,于是作者逼迫自己去寻找更好的学习方法。
后来,作者总结了走过的弯路之后,发现了下面三个要点:
- 1.如何开始 —— 要想开始使用自己所学的,我需要掌握哪些基本知识
- 2.学科范围 —— 我现在学的东西有多宏大?在开始阶段,我不需要了解每个细节,但是如果我能对该学科的轮廓有大致的了解,那么将来我就能发现更多细节
- 3.基础知识 —— 不止在开始阶段,要想使用一项特定的技术,我需要了解基本的用户案例和最常见的问题,也需要知道自己学的哪 20% 就能满足 80% 的日常应用。
事实证明,掌握这三大要点可不像看上去那么轻松。学会 “ 如何开始学习一门技术 ” 可以说是一项挑战,而且往往很难找出那些所谓的 “ 篇幅只占 20% 、然而有效性却达到 80%” 的内容。另外,我经常发现,要总结出一门技术的应用广泛程度的简短描述,是很难的。通常你需要阅读一整本甚至几本不同的书籍之后才能获得此信息。 为了解决这些问题,我又提前做功课,确保自己能够找出自己所需的信息,并以最合理的方式将它们组织起来,实施落地。 “ 十步学习法 ” 的基本思想就是:要对自己要学的内容有个基本的了解 —— 了解自己不知道什么就足矣。然后,利用这些信息勾勒出学习的范围,即需要学哪些内容,以及学成之后又会获得什么。依靠这些知识,你可以找出各种资源(不局限于书)来帮助自己学习。最后,你可以创建自己的学习计划,列出要去学习哪些相关课程,筛选学习材料,只保留能帮助自己达成目标的优质内容。 一旦完成这些工作,你对自己要学什么和怎样学都了然于胸,你就可以把控自己的学习计划中的每个关键点,通过 “ 学习— 实践 — 掌握 — 教授 ” ( Learning, Doing, Learning and Teaching , LDLT )的过程,获得对该学科的深刻理解,同时你也向着自己的目标前进。 “ 十步学习法 ” 的第一部分是研究,它是一次性完成的。但是从第 7 步到第 10 步则是重复的过程,贯穿于你的学习计划的各个模块。这个方法非常奏效,因为它迫使你提前明确自己的学习目标,也持续不断的激励你通过实践(而不仅仅是读书或听讲座)向着目标前进。
1 ~ 6 是第一模块,只需做一次
- 了解全局: 这样你才能弄清自己到底要学什么,找出最好的学习方式。
- 确定范围: 将宏大主题缩小并聚焦到一个特定范围内,尽可能保持专注。
- 定义目标: 目标要具体化,比如可以利用C#语言的主要功能写出一个小的应用程序,我可以用HTML5 在网上为我自己创建一个主页,展示我的简历和我的代表工作。而不是”学习C#语言基础知识“,或者”知道如何使用HTML去构建一个网页“
- 寻找资源: 尝试收集到多种多样的资源帮助你学习,这在当下的互联网时代很容易做到。
- 创建学习计划: 比如可以参考在第4步中找来的图书的目录,循序渐进。
- 筛选资源: 浏览找到的全部资源,刷选出品质最高的。
7 ~ 10 是第二模块,需要循环往复
- 开始学习,浅尝辄止: 既不要在知之不多的情况下就盲目开始,也不要在行动之前准备过多,行动太晚。
- 动手操作,边玩边学: 无需了解全部内容,不用担心结果,勇敢探索吧!
- 全面掌握,学以致用: 在8的过程中积累了问题,再带着问题进一步深入理解主题。
- 乐为人师,融汇贯通: 确定你掌把知识交给别人,是唯一检验你确实掌握了知识的办法,同时也是查缺补漏的好方法。
借助此方法,作者在几天之内就掌握了一门编程语言,成千上万注册了作者”十步学习法“课程(http://simpleprogrammer.com/ss-10steps) 的开发人员也取得了类似的成果。 豆瓣上也有人通过此方法快速学习vue(https://book.douban.com/review/8514643/) “十步学习法”不能让你瞬间变得聪明伶俐,但可将学习过程更为结构化,而非漫无目的;通过利用人天生的好奇心来帮助吸收更多的知识,而大多数人正是在好奇心的驱使下才学到很多本领的。
发现知识短板(√)
专注于自身强项,这没什么不妥,但有时候,如果弱点得不到解决,通常会成为你的职业或生活的桎梏。工作上遇到短板时,人会本能地倾向于掩饰自己的短板,而且我们又总是太忙,忙到无暇去填补他们,于是短板一直都在。长期下去往往导致为了掩饰短板我们反而花费了更多的时间和精力。如果我们能发现并消除的知识短板越多,长久来看我们从中受益越多。
为什么我们会有短板? 很长一段时间内,我不明白lambda表达式在java中是如何工作的。lambda表达式是一种匿名函数,当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。我在java代码中不断看到lambda表达式,对它的作用略知一二,但是没有真正的了解。我知道如果我花点时间了解lambda表达式是如何工作的,以及它们是什么,我的工作会更加顺利,但是我没有时间这么做。 最终,它成为了我知识体系中严重的短板。结果,我们要么不怎么真正明白自己在做什么,要么避开自己的短板采取低效的方法。尽管我们最终明确了这些短板,也明白自己深受其害,但基本上依然会无动于衷——即使我们知道自己应该有所作为。这就像牙疼的时候不愿意去看牙医,因为我们并不愿意为此而烦恼。
如何找出我们的短板?
你的知识短板并不全都显而易见。事实上,大多数的知识短板,你只能隐约觉察到。对于自己不知道的,你很难清楚地意识到,也很容易忽略。
知识短板会阻碍你进步。准确识别它们的最佳方式之一就是看看自己在哪些工作上花费了大量的时间,或者一直进行重复性劳动。通常,你会发现,自己的知识短板使工作速度放缓,额外需要大量的时间完成任务。由于理解得不彻底,你只能摸索着前进。这正是我不理解Lambda表达式的时候发生的情况。我花了大量的时间去调试代码,而不是用几个小时去理解它。
重复性工作也是如此。任何你所做的重复性工作都值得彻查一番,看看是否有自己不理解的地方,如果你这样做了,可能会提高你的工作效率。想想键盘快捷键。你一直重复使用某个应用,但是并没那么高效,原因是你不得不手动在屏幕上拖曳鼠标并点击。键盘快捷键可能就是你的知识短板。花点儿时间学习每天会用几个小时的应用(提示:你的IDE编程环境)的快捷键,一周能给你节约好几个小时的时间。
另一种识别知识短板的方法就是,时刻都要试图了解自己不理解或不清楚的事物。你可以维护一份清单,列出自己需要去研究或者自己不清楚的所有事物,追踪有哪些主题总是不断出现在这个清单上。你会惊讶地发现这份清单的增长速度有多快。你只要对自己坦诚:如果遇到不理解的知识,不需要马上就学会,但是一定要把它添加到清单中,这样你至少可以找出自己的知识短板。
假如你在准备面试,需要明确自己要学什么,这一方法最管用。尽量找出尽可能多的你在面试中可能会被问到的问题。如果你在找Java程序员的工作,你要整理出一份Java面试题的清单表,把所有题目做一遍,将自己不理解的概念和不会回答的问题整理到这个清单中。等你完成这一步,你就有了一份长长的待研究课题清单。这种方法看起来简单明了,但是很多准备面试的软件开发人员对要研究什么以及如何研究一头雾水。完成表35-1有助于你完成这项任务。
|短板高发区 |你的短板| |-|-| |在哪些工作上花费时间最多|?| |可以改进的重复性劳动|?| |自己没有完全理解的东西|?| |你回答不出来的面试题|?|
接下来我们又如何去消除短板呢?(对工作来说有效的,要点就是结合工作) 业务知识? 那就是采取行动,以回答不出来的知识点来举例。 我是一个java程序员,我可以整理一份java知识点清单,把所有的题目做一遍,将自己不理解的概念和不会回答的问题整理到这份清单中。然后着重关注这些不熟悉的问题,将这些不熟悉的问题转变为熟悉的问题。
生产力
生产力就是做该做的工作。主要是专注,以及保持专注
如何更专注(√)
- 番茄工作法。可以跟踪自己一天内完成了多少个番茄知道自己时间到哪儿去了(推荐两款app:番茄ToDo、滴答清单)
- 每天能够专注完成的工作量才是最重要的。
定额工作法
定额工作法的规则 - 挑选一项重复性任务 - 明确有效时限,在此期间该任务被重复执行 - 明确在给定的限期内该任务应该完成的次数的限额 - 给自己承诺,一定要达成定额 - 调整
定额工作法有效的原因:以定额的形式将决策转变为命令,你无需再做决策,也就避免了意志力耗尽的问题。
多任务并行
- 多任务导致效率低下原因:我们根本没能力真正去践行多任务并行
- 适合批量处理提供效率的任务
- 处理电子邮件
- 打电话
- 修复 bug
- 开短会
- 处理电子邮件
- 真正的多任务并行。将一项不费脑筋的任务和一项一定程度上需要精神上专注才能完成的任务组合起来
- 一边听耳机里的音乐一边打字
- 跑步时候听有声读物或播客
- 一边听耳机里的音乐一边打字
时间是怎样被浪费的(√)
常见的时间杀手
- 看直播
- 追剧追番
- 社交媒体
- 新闻网站
- 烹饪
- 电子游戏
补充:烹饪、游戏这些事情都是在浪费时间吗? 是也不是,答案取决于你为什么做这些事情,因为享受快乐有意识的做这些事情,就不是浪费时间。如果是为了逃避自己应该完成的工作,那就是浪费时间。 举个栗子,我喜欢玩电子游戏,是否意味着我必须得完全放弃电子游戏?不是的,当我有很多事情需要完成的时候,我就不能玩电子游戏,我不能用玩电子游戏来逃避自己本应该完成的工作。
那么如何采取行动呢?
- 下一周精心跟踪一下自己的时间花费情况,获取精确的数字,了解每天每小时你都是怎样花费掉的。看看数据,找到最大的2-3个时间杀手。
- 如果有打游戏的习惯,尝试离开游戏一周,尝试度过一个无游戏日,看一看如果不打游戏,你会用这些时间来做什么。
- 尝试把时间买回来。比如去大食堂吃饭,不用麻烦的做菜,洗碗洗锅了。
养成习惯(√)
- 生产力的真正秘诀在于:长期坚持做一些小事。举个栗子,每天写1000字,那么一年就会有26万字! 习惯主要由3个要素构成:暗示、惯例、奖励。 我们的大脑善于养成习惯。 我们需要找出坏习惯,再围绕这些坏习惯创造出好的习惯。 你可能需要想一下,你想完成的大目标是什么,看看你能否养成某种习惯,推动你在奔向大目标的方向前进
分解任务:如何吃掉一头大象(√)
- 要吃掉一头大象,每次吃一口
- 每个大型任务都可以分解成不计其数的更简单更小型的任务。比如写书时,无非就是把每篇拆分成很多小的章,每章也就1000 ~ 2000字。
- 同理,写一个大型的程序,无论多么庞大和复杂,都可以被分成一行行的代码,因此只要能写好单行代码,你就能写好任何应用程序。
努力工作的价值
如果真想富有成效,你就不得不学会工作的时候既聪明又努力。光有聪明是不够的,在所有的情况下,我们面对的现实就是,没有一件事情是轻而易举的,如果真想要成为成功人士,你就不得不在有些时候通宵达旦。 要想实现目标,要想发挥出自己的全部潜力,唯一的途径就是自愿咬紧牙关、硬着头皮、开始工作。
行动
- 任何行动都比不采取行动好,就是那句话,”Done is better than perfect.“
任何行动往往都比没有行动好,特别是当你一直停滞在不愉快的情势下很长时间的时候。如果这是一个错误,至少你学到了一些东西。这样一来,它就不再是一个错误。如果你仍然选择停滞不前,那么你就学不到任何东西。——埃克哈特 · 托利,《当下的力量》
为什么我们拒绝采取行动?
拒绝采取行动,无数机会会被浪费,无数可能会被挥霍。大部分人都明白这个道理,但是为什么还有那么多人不采取行动?
此处作者认为是恐惧,恐惧后果不可估量或失败,恐惧改变,恐惧做不一样的事情。
还有其他一些因素,例如:害羞、谨慎、犹豫。
不采取行动会发生生么
一对夫妻,丈夫逻辑性很强,妻子很感性,但是当他们要做出重大决策的时候就会出问题。
家里要装修客厅卫生间,装修浴缸后,需要考虑浴帘或玻璃门来遮挡的问题,一个想要浴帘,一个想要玻璃门,双方争吵后都不想让步,最后也没有采取行动,论点都摆出来了,可行性也分析过,但是却没有任何决策,当然,也没有采取行动。这样的事情持续了很多年,在过去的10年中,作者和他的妻子,在他的这个朋友家中住了最少7次,每次都不得不用主卧的卫生间,因为客厅卫生间的浴缸既没有浴帘也没有玻璃门。
很多年过去了,仅仅是因为无法做出决定,无法采取行动,卫生间的浴缸便无法投入使用,个自己和客人都带来不便。目前,这对夫妻又投入了另一场史诗级战斗-更换草坪,估计又会延续到下一个10年
生活中,我们可能有很多次面临抉择的时候,都拖延时间不肯解决,实际上,如果采取行动,可能5分钟就能解决。有多少次面临抉择的时候,因为我们还没有找到最佳方案或者因为害怕做出错误决定而选择什么都不做。这样看来,在过去的时间里,因为我们不能采取行动而错过了多少次机会?
无论你在逃避什么,无论是什么东西困扰着我们,都不要拒绝采取行动。当下就是行动的时刻,当下就是决策的时刻。
即使采取行动发生最坏的情况是什么 有时候我们可能会试图耗费300%的努力寻找95分的解决方案,而不是满足寻找90分的方案,我们写代码的时候也是这样的,当我们无法在两个不相上下的算法之间做出选择以解决代码中的问题,从而无法按时间交付一项功能时,会发生什么?或许两个选择都可以完成需求,但是其中一个方案会更好一点,但是如果我迟迟不采取行动,最终错过了交付期限怎么办? 这种情况下,做好的办法就是立刻选择其中一种算法,即使它不是最好的一个,通过采取行动,即使我们发现这个算法无效,也有时间去实现另一种方式。如果延迟行动,可能导致最糟糕的结果。举棋不定,优柔寡断会让我们丧失采取行动的最佳机会。 现在要怎么做 采取行动 跑起来的汽车更容易转向 通常,无所作为就像坐在一辆停着的汽车上转动方向盘。你有转过停着的汽车的方向盘吗?这并不容易。但是,当车子开起来的时候再去转方向盘就容易多了。 车子一旦开起来,它就有了动力。这种动力可能会带你在错误的方向上前进,但是一旦你弄清楚状况,只需轻松转动方向盘,就能转向正确的方向。况且,你也有可能一开始就行进在正确的方向上。 有时候,当你完全不确定要做什么的时候,最好的行动就是做一些事情,然后在前进途中再调整方向。有时候这是前进的唯一办法。如果你一直停在原地,你就会因为从没见过而不知道需要在哪里左转。只有开始做一件事情的时候,你才能预测自己将来要采取的一切行动,评估哪些可能是错的。 通常,要找出一个方向是错的,唯一的办法就是向着那个方向前进。如果错误的代价很小,有所作为总好过无所事事。
理财
(考虑到国情的不同,本书提及的期权问题并不适用于我国,大家参考就好),提早考虑自己的退休计划很重要;
健身
人的身体是人的灵魂的最好写照。
如果你不征服自己,你就会被自己征服。 - 拿破仑.希尔
人的身体就是人的灵魂的最好写照。 -- 路德维系.维特根斯坦
为什么在除了写好代码,我们还要健身?
健身可以培养一个人的自信心。如果你坚持健身,你就会拥有一个好的身材,这样可以让你自我感觉良好,这样可以让你自我感觉良好,同时也可以让你看起来很好看,这这个看脸的时代,我觉得这个才是关键😏。
身可以让人更聪明。研究表明,运动之后可以大幅提升创造力,看了这个,我很想尝试一下在健身完了之后回去加班,不知道是不是会写出高质量的代码。
健身是保持健康的唯一方式。据统计,如果你的健康处于亚健康状态,那么患可预防性的疾病的概率的会比较高。
如何开始健身,并坚持下去?
设定目标。确定自己的目标并具体到每一项。如减肥,增肌,增加力量,增加肌肉耐力,改善心血管健康,在某些运动上表现更好。
追踪目标。具体就是将自己的健身计划按照时间段划分,同时定期去测量你的进度。这也是保持健身的最好动力。这里借助游戏化的健身应用来帮助你完成你的计划。
养成良好的生活习惯。除了锻炼,我们需要健康的饮食,请花点时间制定自己的饮食清单,相信我,有时候这比任何运动都管用。
精神
提及到心灵,我觉得作者进入了一个玄学的领域,所以此处忽略一些内容,感兴趣的同事可以购买阅读本书。