代码整洁之道:程序员的职业素养 [美]罗伯特 C. 马丁 25 个笔记 阅读周期:
自从多年前的那一天之后,我一直在想,技术人员需要如何改变才能被视为专业人士呢?
所以,请你把这本书看成我的错误大全,它记录了我干过的所有蠢事;也请你把这本书当成一份指引,靠它绕开我曾经走过的弯路。
你应该计划每周工作60小时。前40小时是给雇主的,后20小时是给自己的。在这剩余的20小时里,你应该看书、练习、学习,或者做其他能提升职业能力的事情。
或许你会觉得这样做只会让人精力枯竭。恰恰相反,这样做其实能让你免于枯竭匮乏。假设你是因为热爱软件而成为软件开发者,渴望成为专业开发者的动力也正是来自对软件的热情,那么在那20小时里,就应该做能够激发、强化你的热情的事。那20小时应该充满乐趣!
别忘了桑塔亚纳的诅咒:“不能铭记过去的人,注定要重蹈覆辙。”
许诺“尝试”,就意味着你承认自己之前未尽全力,承认自己还有余力可施。许诺“尝试”,意味着只要你再加把劲还是可以达成目标的;而且,这也是一种表示你将再接再厉去实现目标的承诺。因此,只要你许诺自己会去“尝试”,你其实是在承诺你会确保成功。这样,压力就要由你自己来扛了。如果你的“尝试”没有达成预期的结果,那就表示你失败了。
如果你此前并未有所保留,如果你没有新方案,如果你不会改变你的行为,如果你对自己原先的估计有充分的自信,那么,从本质上讲,承诺“尝试”就是一种不诚实的表现。你在说谎。你这么做的原因,可能是为了护住面子和避免冲突。
尽管多年来我时常提醒自己——客户所要的任何一项功能,一旦写起来,总是远比它开始时所说的要复杂许多……
专业人士常常会成为英雄人物,但这样的荣誉并非是他们所刻意追求的。他们之所以成为英雄人物,是因为他们出色地完成了任务,不但按时,而且符合预算。而John却是一门心思想成为风云人物和救世主,从这点上看,他表现得并不专业
心流
“流态”
大家知道,程序员大多自负、固执、内向。我们不是因为喜欢和人打交道才做这一行的。大多数人之所以选择以编程为业,是因为喜欢沉浸于弄清各种细枝末节和摆弄各种各样的概念,以证明自己拥有这个星球上最发达的大脑,而厌恶陷入与他人交流的错综复杂的混乱之中。
现在我们有了更好的工具,更好的语言。可是,语句的本质并没有随时间而改变。20世纪60年代的程序员完全可以看懂2012年的代码。我们真正打交道的东西,40年来没有多少改变。
我决心通过高质量的工作,而不是愚蠢的劳作来享受自己的职业生涯。
当困境降临时,也不要改变行为。如果你遵守的纪律原则是工作的最佳方式,那么即使是在深度危机中,也要坚决秉持这些纪律原则。
我们并非是因为喜欢和其他人在一起工作才选择做程序员的。我们都认为人际关系难以应付而且毫无规律。编程用的机器则整洁,行为也可预见。如果可以一个人待在房间里数个小时沉浸在一些真正有趣的问题上,那将会是最开心的时光
我们,程序员们,还是最享受面无表情的沉思,把自己像蚕茧一样裹起来,沉浸于问题思考中
专业程序员最糟糕的表现是两耳不闻窗外事,只顾一头将自己埋在技术堆里,甚至连公司业务火烧眉毛行将崩溃了也不闻不
如果把我们关在一个有六个大屏幕显示器的房间里,里面有高速宽带网络,有一组超快的处理器并行队列,有用不尽的内存和磁盘,享用不完的健怡可乐和香脆的玉米薯条,那岂不是棒极了?
计算机科班毕业生的质量一直令我颇感失望。究其原因,并不是这些毕业生不够聪明或缺乏天分,而是由于大学并没有教授真正的编程之道。
但是,我注意到,那些符合要求的毕业生有个共同点:他们几乎都在进入大学之前就已经自学编程,并且在大学里依然保持自学的习惯。
即使是最好的计算机科学学位教学计划,通常也不足以帮助年轻毕业生充分准备好应付工作后遇到的挑战。
我们的文明运行在软件之上。是软件在传送和操纵我们日常生活中无处不在的信息,是软件在控制我们的汽车引擎、变速箱和刹车,是软件在维护我们的银行账户、发送账单和接收付款,是软件在帮我们洗衣服,是软件在告诉我们时间,是软件在电视上显示图片,是软件在发送短消息和拨通电话,是软件在我们疲劳时为我们带来娱乐。软件无处不在。
技艺模因宛如一种“传染病”,一种“精神病毒”。通过观察其他人的工作,让模因落地生根,你也会“感染”上技术模因。
但是,在这里我想先指出:在未来,源代码控制系统是git和类似工具的天下。
。我使用git来管控源代码,使用Tracker来管理问题,使用Jenkins来进行持续构建,使用IntelliJ作为集成开发环境,使用XUnit来做单元测试,使用FitNesse来做组件测试。