一个程序员的自我修养

最近读一本神书 我编程,我快乐,书名很土,内容却异常精彩。原书名 - The Passionate Programmer:Creating A Remarkable Career In Software Development ,或许叫 成为大师之路 应该更卖座。能读到如此良心的小书,感觉分分钟的收获都是赚了几百美金!

全书分为5大章

  1. 选择市场
  2. 在产品上投资
  3. 执行
  4. 推销
  5. 保持技术领先

共53节,每个小节都提出一个观点或建议。最重要的是给出练习指导,让我们能动手实践、吸收观点。所谓 知道了很多道理,却依然过不好这一生。,最根本的原因就是 纸上得来终觉浅,绝知此事要躬行。

于是,我把53条总结成最重要的7条,指导以后的实践。(为啥是7条呢,其实没啥原因,我写个10条也可以。只不过写完7条,我就写不动了)

1 - 练习,练习再练习

刻意练习 (豆瓣) 是最近特别火的概念。核心思想就是

  • 在极限处练习,跳出舒适区。寻找不熟练的部分,不断地练习练习再练习。
  • 重点联系一个又一个的片段,而非重复哪些已经掌握的部分或是整体。所以,如何练习也是刻意练习的重要一环。

一些小练习:

  • 在github寻找一个感兴趣的开源库。看看Todo list、寻找bug、改善文档等等,然后提交一个PR。这就是贡献开源库的一个良好开端。
  • 关注工作中的一个难点,比如一个很难修的bug。记录下自己是怎么处理的。然后精进自己这方面的能力。
    • 我是怎么重现bug的?
    • 我是怎么定位bug所在的代码?
    • 用了哪些工具,哪些工具好用,哪些我不熟练。
    • 遇到了什么困难?为什么会卡在那里?我又是如何解决的。
    • 什么时候我该寻求帮助了?寻求帮助的途径又有哪些?
    • 下一次遇到了类似的问题我该怎么办?可以如何改进。
  • 编写一个很难却又精巧的小程序。比如在 TopcoderCode Kata 。进一步的挑战,可以把程序的行数限制在100,再看看能不能解决问题。
  • 选择一本软件开发方法论的书。研究这个方法例如这个方法论的优劣,结合工作看看能不能运用。例如 - 敏捷软件开发 (豆瓣)
  • 选择一个小项目,阅读源码。做好笔记,列出优劣,写写想法。
  • 检验学习成果最好的方法就是讲给别人听。尝试讲给朋友听、尝试当众演讲、讲给外行听。

2 - 学习技术

技术永远是程序员热爱的话题,但技术是永远学不完的。如何运用有限的时间,去学习无限的技术是个学问。这也是以后是 rest and vest 还是继续苦逼写代码的问题。

这里,我们可以做一个练习。拿出一张A4纸,从左往右列出最新到最老的技术,观察它们的关联。标记出自己擅长的、不精通的、完全不知道的。然后去一些技术网站、招聘网站,看看现在需要的技术是哪些。列出这些技术的优劣。选出想要学习的前几门技术,每周最少花2个小时,大致去了解一下这门技术。

当我们对这些技术有了大致的了解,就可以更理性、更有依据地去学习下一门技术。

另外,当我们学习技术时。光使用是不够的,我们应该想想它的底层是怎么工作的。例如,当用Java时,了解Java的虚拟机是怎么运行的;使用C++时,了解程序是如何编译、链接、运行的;动态语言和静态语言的各自优劣;使用一个框架的时候,了解一下这个框架是如何运作的,读读它的源码。

3 - 了解你的公司,业务和行业

程序员不能只写代码。代码说到底,只是一种工具、手段或者技术。它所要实现的目的才是关键。我们可以常常问自己一些代码以外的问题,例如:

  • 我的公司是干什么的?
  • 竞争对手有哪些?
  • 在行业的地位?
  • 公司的财务情况怎么样?
  • 品牌形象
  • 盈利模式
  • 现在面临的挑战是什么?
  • 这个行业正在为什么目标努力?
  • 有什么新鲜事最近在这个行业发生?
  • 有哪些可以提高公司的盈利、改善品牌形象、拓展新业务、改善流程等等
  • 除了程序员的工作模式。我了解 designer、data scientist、pm、manager是怎么工作的吗?
  • 这里有一本不错的小书,让我们可以学习一下商业知识 - Ten days’ MBA

4 - 计划、记录和反思

有没有觉得一天不知不觉就过去了,也不知道时间用在哪里了。这里,引入了一个 三步走的工作方法:

计划

每天早晨计划一下今天要做的事,然后给每件事算一下要用多少时间,如果一件事大到要2个小时以上,那就可以把它分解为更小的任务。

人总是喜欢做更容易,更快能看到成果的事。这也就是为什么长远而重要的事,我们总是不愿去做。并非我们不知道它的重要,只是它太过抽象、巨大,以至于我们体验不到能即刻做完之后的成就感。

所以,要尽量把大的目标分解成小而容易的任务。这样我们就更有动力去完成。

记录

对于时间的记录,可以帮助我们在一天的最后有效地反思。对于时间的如实记录很无聊,但也是最有效能看清时间去哪儿了。

曾经有一个近乎变态的时间记录者,一做就是一辈子。然而他记录时间之精确让人咋舌。 奇特的一生 (豆瓣)

反思

经过一天,做一个快速的反思是对工作有效地复盘。想想这些问题:

  • 今天我做了什么?这些任务的意义在哪里?
  • 有哪些可以改进的?
  • 我把时间用在了哪里?明天可以改进时间的使用效率吗?
  • 有哪些完成了?有哪些没有完成?为什么完成/没有完成?我一天大概可以完成多少任务?
  • 我如何不断改进这个一天的流程?

如何计划
这里有一个不错的时间管理方法 - 番茄工作法 其基本思想就是:

  • 把每个任务分成25分钟,容易记录。
  • 更容易让人在番茄时间集中精力 - 这也间接完成了本书作者提倡的每天 8小时激情燃烧 理论

记录的另一个好处
如何避免恐慌,应对焦虑。这是个有意思的话题,其实或多或少现在的程序员或者工作的人都会有。对于未来的不确定、对于快节奏的恐慌、对于时间流逝的焦虑。

适当的压力和焦虑反而能让人更有创造力、效率更高。那么如何去应对呢?吴晓波(财经作家)_百度百科 说去工作,努力地工作!这是从高处给了答案。本书作者在给出了一个实用方法。记录你的恐慌,或者叫恐慌/反思日记

很多事情当时看来是灾难性的,但过了些时候再回顾,不过就是人生中一个很小的涟漪。我们可以想想一周前那件让我们恐慌和焦虑的事、一个月前呢、一年前呢。所以,大部分我们认为的灾难并没有那么糟。

那么,知道了这点就能克服恐慌了吗?很抱歉,还是不能。因为人不是完全理性地,所以在危机来临时,我还是会照样束手无措,因为我他妈忘了上次我是怎么处理的、又或者每次恐慌都不一样。我还是继续恐慌和焦虑。

这时,一个有效的办法是记录下自己的恐慌情绪、当时的反应和处理方式等等。然后过一天,一周,一个月,一年再去回顾、去反思、去复盘。看看我们遇到这种类似的情况该怎么应对,从过去的经验学习。当我们抽离了当时的恐慌情绪而直面问题本身的时候,我们会怎么办?再加上,有了未来(相对于过去的恐慌)的后验知识,我们可以总结更好地应对之法。慢慢地,我们发现其实和恐慌相处不会那么难了。

5 - 未雨绸缪

永远不要高枕无忧,跳出舒适区。

互联网技术发展得太快了,所以没有什么是永远存在的。今天用的技术可能过几年就过时了,永远要保持学习之心、好奇之心。对于新技术要能明锐的感知,当它来临时,努力成为开拓者。比如最近的AI first潮流,很明显 Google的 TensorFlow 已经成为了一个准未来AI框架。

同时,想想如果明天就去面试,我现在做的事有多少竞争力。

  • 我的项目的impact / metric 在哪里?
  • 我项目的挑战在哪里?
  • 我在项目中起到了什么作用?
  • 我最近在成长吗?
  • 我准备好随时就能离开现在的公司吗?还是被公司的框架和工具困住了?
  • 我到底在为谁工作?为公司吗?还是为自己?
  • 不要只把自己放在一个公司去考虑问题,要把自己放到一个行业里。想想自己在行业中,现在的竞争力怎么样?
  • 从更长远来说,我要一辈子都为一家又一家的公司打工吗?我的终极目标是什么?为了这个终极目标,我该做什么?我又缺少什么?

6 - 推销自己

走出你的项目组、你的公司。去推销你自己。这在这个互联网的时代变得异常容易:

  1. 把你的想法写出来,发到网上去
  2. 参加聚会
  3. 演讲

要变得卓越有两种方法

  1. 成为你这个领域的top 1%
  2. 成为你这个领域的top 20%,然后在另外一个领域也是20%。之后你把两个领域的技能结合起来。

而第2种方法要容易的多。

我发现对于程序员,写作和演讲成为变得卓越屡试不爽的方法之一,而且成本低廉。池建强罗永浩(锤子科技创始人)_百度百科冯大辉_百度百科 都是很好的例子。

一周状态报告,让你的老板更了解你。我记得以前有个同事每周都给老板发一周工作总结。这样老板清楚地知道了他在干什么,在写performance review的时候也有据可循。从此以后,我也就养成了这个习惯。可能每周要多花半小时,但好处也是显而易见的。

  • 对于自己工作的总结。不但对老板有交代,而且对自己干了什么也更清晰。
  • 没有哪个老板会不让你写吧。既然没有坏处,好处呢就是 >= 0的。

这个总结报告,其实也是写作的一种。可以当做一种写作的联系。

在这个互联网的时代,让你的文字成为你的标识,让你的名字成为你的品牌。

7 - 没有终点的旅程

或者说这趟旅程的终点就是到你死

李开复:人类很多工作会被取代,只剩下两类-凤凰国际智库 ,为了不被取代,最好的办法就是 学习学习再学习,思考思考再思考 。 保持危机感、保持好奇心、保持创造力。学习去跨界,把两个领域的知识结合起来。

你我都身处这个时代的洪流之中,时代太快了,我们注定是回不到一生只够爱一人的从前了。所以,要不就被时代所弃,要不就跑得比这个时代更快。

最后,引用 了不起的盖茨 的结束语:明天我们将跑得更快,手臂伸得更远。于是,我们奋力拼搏,好比逆水行舟,超越极限。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容