程序员的自我修养

Programmer's Self Cultivation

https://book.douban.com/subject/27016319/

笔记本导出 程序员的自我修养 陈逸鹤

你的薪酬其实取决于很多因素,技术能力、经验资历、工作量等,但最本质的却是,你对公司是否重要,换句话说你是否容易被取代。公司很容易找到一个和你差不多的应届毕业生,而那些对公司产品非常熟悉,并且起到关键作用的老员工,要想替代他们,公司所需要付出的代价及需要承担的风险就会高得多。所以,不妨摆正心态,正确认识到自己在公司中的位置,努力修炼内功,让自己变得越来越重要,相信你的薪资也会随之提升的。

既然你对于公司的价值来自于你的不可替代性,那又该如何有效提升它呢?我的建议是尽可能持续做一件事。这既是指技术上的积累,也是指你能完整或较长时间参与同一个项目或开发一个产品。虽然,有时候你所做的工作并非你个人所能决定,但你仍需要有意识地去主动把握那些能让你持续积累技术或项目经验的机会。经常有年轻程序员朋友向我诉说他们所遇到的一些困惑,比如,觉得自己在工作中用到的技术太旧了,询问是否应该转向其他技术甚至转行;或是对公司里做的项目不感兴趣,觉得没有前途,是否应该跳槽,等等。我当然会鼓励他们去学习更多不同的东西,但同时我也会提醒他们,技术深度及完整项目经验的重要性,如果你总是在跟随那些新出现的技术和框架,那你很难在某一项技术上达到理想的深度;同样,在一个公司里,如果你总是在更换项目,那你也很难提升自己的价值。参与 10个项目,不如完整参与一个项目。持续做一件事是要你把每一件事做透、做好,而不是蜻蜓点水,浅尝辄止。

你可能会问,作为一名程序员,我该如何锻炼我的右脑呢?是不是一定要学习设计或者一门乐器之类呢?完全不需要,在工作中你就可以找到很多途径来提升你运用右脑的能力。比如,在你编写一个文档或 PPT时,除了内容之外,能否再多考虑一下字体和排版,让人读起来更加舒服呢?在你与用户讨论需求时,能否尝试着从程序员思维转换到用户的角度来看待问题呢?在团队内部开会时,是否能提前做些准备,多争取在大家面前进行讲演的机会呢?当你持续这么去做以后,你会发现自己在各个方面都会变得越来越好,这其中也包括了你的编程能力。因为,这些技能总是在你看不见的地方互相作用和促进的。

5.选择适合所在企业文化的人这一点也曾是我经历的一个误区,我总是希望能为团队招到技术能力最强的人,而忽略了他是否与整个公司和团队的文化相匹配。这往往会造成,虽然招到了人,但没过多久就因为理念不同不欢而散的结果,反而给公司带来了损失。让我们看看 GitHub的负责人是怎么说的:我们很严肃地看待我们自己关于招聘流程的哲学。我们希望每一个 GitHub员工都了解他们所要面对的环境,并保证他们是能够很好适应的。这包括我们所创造的文化、哲学、计划、错误甚至是晚餐。比起他们的技能是否满足要求,我们更看重他们的潜力,以及是否能够适应我们的企业文化。我曾在具有鲜明文化差异的不同公司或团队工作,看到许多崇尚开放、开源的程序员在一个相对封闭,具有很多流程及规范限制的公司中很难发挥,最终选择离开。因此,在招聘程序员时,选择合适的往往比选择最优秀的更重要。

我曾非常肯定地告诉他们,应该坚持留在一线城市,因为这里有最好的资源,无论是硬件还是软件方面,一线城市都汇聚了最优秀的基础设施和人才。这里有最适合程序员成长的环境和氛围,无论是软件园还是创业园,这里总是充满着挑战和机会,在这里你更容易获得优秀的视野和与你同样出色的伙伴。当然你未来的家庭、子女也都将能够享受到这些优秀的资源。还有一点不得不提的是,一旦离开,你将很难再回来,因为在很多 HR看来,这种没有延续性的工作状态,代表了不稳定,以及潜在的能力风险。

他的问题让我感到有些惭愧,过去我所给出的建议更多只是从程序员个人发展的角度给出的,但程序员归根结底还是社会中的人,他们同样必须面对这些社会问题。而在我看来房地产这几年的发展就像是一场游戏,中央政府、地方政府、开发商、炒房客、普通百姓都参与其中,房价的上涨使很多人从中得到了好处,国家的 GDP得到了保障,地方政府的债务得到了缓解,投机客成了首批实现财务自由的群体,但更多人却成了房奴,甚至我们还看到了社会上出现的隐性阶级:有房阶级与无房阶级。然而,随着游戏的深入,买房的风险正在变得越来越大,当那些既得利益者试图通过卖房将这些风险转嫁到你身上时,或许真的应该好好考虑一下了。

买房本身并不会给你带来持久的快乐,因为当你买完房后,你会欠一大笔债,需要用几十年才能还清;当你终于把欠款还清时,你又会觉得这套房子太小,已经不够一家人住,需要换一套更大的房子。你不会得到快乐,因为这些客观条件(钱财、房子)总是无法与你的主观期望相符。相反地,如果买房能够给你的家庭带来更稳定的生活,为孩子提供更好的成长环境,而这一切都能为你的生活赋予意义,并让你感到更加快乐的话,那你还是应该更坚定地留下,而非选择离开。

我时常会说“杂事不杂”,虽然看着被很多与技术无关的事务缠身,但它们对你来说同样具有意义。你从中可能获得沟通能力、管理能力、建立更广的人脉,在企业内部建立影响力,等等,之所以今天你能成为公司的骨干不也正是因为你干了这些杂事吗?如果你能认同这一点,那就不应该总是把时间花在抱怨这些杂事上,而是考虑如何更有效地处理它们。比如,你需要负担很多培训工作,那何不建立一个更好的内部学习平台,让培训对象能够进行自学呢?你需要反复向用户解释系统的使用方法,那何不完善系统的使用说明,让用户更愿意先自己去解决问题呢?你不应该总是陷入在那些处理杂事的循环往复之中,跳出来,创造更好的方式去解决它们才是应对之策。

另外,可以尝试减少邮件的沟通,很多情况下一些次要的沟通,完全可以去到对方的办公桌当面沟通,或采用电话沟通,在双方达成一致或得到结论后,再追加邮件进行确认。我认为这比邮件来来回回要简单高效得多。

越战纪念碑给林璎带来了极大的成功。前一刻还是个默默无闻的普通人,下一刻就成为了大家心目中的专家,可能有人会认为这是一时的灵感或运气使然,但在这背后我们却能看到:专家与普通人的最大区别在于他们能真正理解和解决问题:林璎所做的越战纪念碑设计原型虽然看上去非常稚嫩,远不及那些专业人士的作品,但她的设计却毫无争议地获得了采纳,其根本原因还是林璎最深刻地理解并揭示了越战纪念碑所需要表达的真正含义,那便是在缅怀越战逝者的同时,反思战争,珍惜来之不易的和平。可以说,只有林璎最好地理解了这次设计的目的,并完美地解决了问题。最优秀的方案来自于无与伦比的觉察力:灵感和运气都可能是林璎获得这次成功的原因,但这背后却是她无与伦比的觉察力发挥了决定性的作用。这与技术和经验无关,恰恰是童年良好的艺术熏陶及平时的积累才为林璎带来了这一次的灵感爆发。

我常会和身边的年轻程序员说,那些正在做的工作以及所钻研的技术可能都不是你们存在的真正意义,只有生活才是。而我们的修养也绝不在于掌握了哪些链接库,或理解一些 Windows底层的编译原理,反而应该多在生活中做学问,培养些兴趣爱好,懂得去欣赏、体验与实践“美”(那些美好的事物)。之所以我会这样说,是因为看到了太多程序员在年轻时还能用技术去填满自己的生活,然而随着年龄的增长,在遇到一些不可避免的现实之后,就渐渐迷失了前进的方向,这时候才发现自己脑袋里除了一些已经快要过时的技术外便空空如也,便会感觉迷茫、无助,也只得浑浑噩噩、迷迷糊糊地去度过一生,这样岂不可惜?