跳至正文

读书:《左耳听风-传奇程序员练级攻略》

卷首:芝兰生于幽谷,不以无人而不芳

作者:陈皓 (缅怀)

作者

传奇程序员,自国企离职闯荡上海滩,终成一代传奇

01 我的三观

喜乐君:看完陈老师写的内容,我又有了之前阅读《原则》的想法:他似乎讲完了我几十年后想要讲的一切,而且更好。 所以,如果时间能倒流,我一定在年轻的时候好好阅读他的书。——实时上,倒流之初就是现在。

面向世界

“年轻时,我抵制过日货,也当作愤青……
“要抵制的东西越多,人就会越狭隘。
“我现在更关心与自己的生活相关的事情:上网、教育、医疗、食品、治安…… 这些事情对我的影响更大,也更值得关注。……有选择总比没有选择更好,尤其是面对无法改变和影响的事情时,只能尽量让自己有更多选择”

P02-03

面对社会

“与其花时间教育这些人,不如花时间提升自己,让自己变得更优秀。
“富兰克林·罗斯福的妻子艾莉诺·罗斯福(Eleanor Roosevelt)说过一句话:‘伟人论道,凡人论事,小人议论人。’(Great minds discuss ideas, Average minds discuss events, Small minds discuss people.
“把时间多放在好的想法上,对自己和社会都有积极意义。”

P04

面对人生

“电影《教父》提到这样的人生道路:第一步时努力实现自我价值,第二步时全力照顾家人,第三步是尽可能帮助善良的人,第四步是为族群发声,第五步是为国家争荣誉。这也是中国人修身齐家治国平天下的道理,而随意颠倒次序的人一般不值得信任。”

“虽然选择是有代价的,但是不选择的代价更大。”

价值取向

关于赚钱:为什么别人愿意给你钱。——更关注如何提高自己的的能力,让自己的价值得到体现,从而让别人愿意支付报酬。越有能力的人,就越不会计较短期得失,

关于技术:……学习能力强是一名好的工程师必备的品质。……我很警惕将自己的技术建立在某个平台上,不管是小众还是大众的,甚至WIndows或UNIX/Linux这种级别的平台也不可靠。因为一旦这个平台不再流行或被取代,我也随之被淘汰。为了应对这种焦虑,我更愿意花时间了解技术的原理和本质,这要求我必须了解各种技术的设计方法和内在逻辑。

关于职业:管理实际上是一项支持性工作,而不是产出性工作。

关于创业:……如果要去创业公司,那么更好的心态是:我要在那里干自己的事业。如果你的事业目标是解决一个特定的问题,或改进一个特定的事物,那么,创业是适合你的。……只有做自己的事业,你才能勇敢地面对一切,图安稳的心态只会让你更不平静。

关于客户:我不完全迁就客户。

02 我对技术的态度

我的观点是,要了解技术就必须了解计算机技术的历史发展和进化路线。这就好比我们想要知道球的运动轨迹,就需要了解它在历史上是怎么运动的。

总的来说,要了解技术的发展脉络,你需要知道企业级软件语言层面的主干是:C>C++>Java;操作系统层面的主干是:UNIX>Linux/Windows;网络知识主干是:Ethernet>IP>TCP/UDP。……web开发层面的HTML、CSS、JS、LAMP等。一个有技术焦虑症的人,一定要跟上这几条软件开发的主线。

关联阅读: 订阅制会成为未来吗?

从架构上看:

  • 从单机发展到C/S架构后,界面实现、业务逻辑和SQL都在客户端上,只有数据库服务在服务器上。
  • 到B/S结构阶段,浏览器作为客户端,但是传统的ASP、PHP、JSP、Perl、CGI等编程模式仍将界面实现、业务逻辑和SQL放在一起。只不过B/S已经把这些东西放在Web服务器上。
  • 后来出现的中间件,也就是在业务逻辑中再抽象一层,将其放在一个叫APP Server的服务器上,形成经典的三层结构。
  • 到分布式结构阶段,业务层和数据层都采用分布式。
  • 现在主流则是云架构——所有东西都被迁移到服务器上。

从技术的变迁看出技术的发展都有向后端移动的趋势,前段只剩下一个浏览器或手机。技术朝着后端移动是一个“不断填坑”的过程……

最后,我们应该了解整个计算机文化,我个人认为计算机文化源于UNIX/C这条线。

PP11-12

03 中年危机

如果过分注重眼前的利益,或是对一时的失业感到莫名恐惧,那么中年危机就一直会是悬在程序员头上的利剑。事实上,就我的个人经验而言,最重要的是追求有价值的事情并坚持下去,这是应对中年危机的关键。(P21)

用创业对抗危机:……家国情怀…… 所谓公民意识,就是国家变好每个人都有功劳,国家不完美每个也有责任,每个功能都尽量想办法尽到自己份内的义务。 ……创业实际上是一个自我学习和进化的过程,没有人教你,也没有标准手册,你必须通过亲身体验来领悟和实践。 (P24-25)

不要把自己当作劳动力,劳动力往往是更容易被裁掉的人,而且重写找工作也会困难重重。而这个局面与当初的价值选择其实是有一些因果关系的。 每一个选择都是有价格的,趁着中年危机还没来,做好人生的战略储备吧。 (P26)

P04 做正确的事,等着被“开除”

//长期主义的胜利

正确的事:

时刻关注正确的事情,可以帮助我们做出更加明智和正确的决策。对于工程师这个特殊职业,正确的事有具体的标准:

  • 多关注自己得到的,而不是自己失去的。
  • 简化和自动化
  • 学习并使用更优秀的技术,特别是那些可以解放生产力的技术。
  • 用通用技术解决公司特定的问题。
  • 不要加班,并用制度加以保障。迫使工程师使用智力,而不是体力来解决问题
  • 原理劳动密集型工作
  • 用技术解决问题,而不是用管理解决问题。
  • 坚持高标准
  • 慎重对待技术。用严谨的设计、编码、评审、测试、运维解决问题,而不是用权宜之计。
  • 让软件有思想,而不是拼凑软件。学习各种基础技术的原理和思路,而不是只想着应付工作。
  • 身处IT浪潮之中,不坚持做正确的事,就会辜负时代的馈赠和工程师的使用。

自顶向下(top-down)的局限性

喜乐君:这一段给了我很大启发。业务可视化分析可以视为是简化、敏捷的软件工程(software engineering)。需求是指标、问题、仪表板、假设验证;设计是Tableau等BI工具实现。top-down的开发方式往往是业务部门提出确定性需求,交给it 部门开发;这种开发方式不能预估设计阶段的风险,设计者往往为了交付积累很多的bug(因为缺乏验证,难以适应上层需求的变化)。虽然影响挑战者号失事那么明显,但是对于企业而言则是持续不断的流血和浪费。

挑战者号航天飞机失事……

很多时候我们忽视了需求设计的不同之处,需求依赖于清晰而良好地定义产品,而设计则要找到满足需求的方法。( P30)……自上而下经常过度关注需求而忽略具体细节,而非常精细的细节是必不可少的。( P31)

该案例(挑战者号……)提示了以下4个关于软件工程的核心观点:

  • 只有和管理部门保持良好的关系,我们才能把工程做好。
  • 自顶而下的大型设计是愚蠢的
  • 软件工程和其他传统工程学科本质上是一样的。
  • 要实现可靠的系统,必须进程近乎残酷的测试、自下而上的递增式开发,并且全程要有高度负责的态度。

严肃对待个人成长

个人成长的4条标准:

  • 能否进入世界一流的公司,并在其中表现出色。
  • 能否找到稳定的工作。
  • 能否做出大多数人做不到的事情。
  • 能否具备领导力。

真正的绩效

一个人真正的绩效,不应该依赖于团队协作或者特定的公司资源。相反,通过整合、利用不属于自己的资源,发挥毅力和创造力来超越常人的成就,才是值得提倡的。

如何避免长期的妥协

偶尔委曲求全是难以避免的……但是,长期妥协回形成恶性循环,是不可取 ……( P33)

  • 与适合自己的领导和公司合作,而不是改变自己去迎合不适合的人和领导。
  • 与有大智慧的人共事,注意甄别那些只有一点“小聪明”的合作者
  • 努力提高自己的能力,达到“工作自由”(随时找到更好的工作)的境界。

不被任何怎么办

好的主管会在你出错时及时指出你的错误,会在你遇到问题时与你一起找到原因。好的主管始终是希望员工成功的。(P34)

……

05有竞争力的程序员

五步思考法

  • 第一步,考证信息数据的正确性。
  • 第二步,处理集合及其包含关系。 这里有一个非常简单的数学逻辑,人人都应该掌握:哲学家是人,柏拉图是哲学家,所以柏拉图是人。这是一个包含关系的推理。……很多没有逻辑的人容易被情感支配,片面地以点带面,以特例证明普遍性。
  • 第三步,处理逻辑因果关系。强调因果关系必须分辨充分条件、必要条件和充要条件,然后找到明确的关联性。
  • 第四步,找到可信的基准线。智者建桥,愚者建墙。
  • 第五步,开启更为深入和高维度的思考。

五步思考法倡导的是一个“慢思考”的过程。因为独立思考需要调用人脑中的“慢系统”,而慢系统是反人性的,因此能真正做到独立思考的人很少,很多人只是毫无章法地思考。

变得更好的窍门

提升个人竞争力的“最佳实践”


了解 喜乐君 的更多信息

订阅后即可通过电子邮件收到最新文章。