疯狂的程序员|绝影
前言
这本书是我2015年在kindle上看完的,那时候我还在读大一,差不多算是我的职业启蒙书了。这本书最吸引我的地方是作者(绝影)将生活和技术结合起来,以一种程序员的思维方式来讲述心中的五味杂陈。在这本书中,我们既可以在生活中领悟技术,也可以在技术中感悟生活。
这本书浓缩了作者的7年生活经历,其中有不少是值得学习的地方,我将一些重要的语句整理了下来,并配合自己的感悟整理成了读书笔记。
注:文末有这本书的资源。
摘要
技术与生活,程序与人生,世上从来就没有简单的事情。
原文精选与感悟
当你不是BOSS的时候,就不要去多讲话,虽然美女喜欢开朗的人,但准确地说她们喜欢开朗的BOSS,一个小小的程序员如果过于开朗,只会给她们留下哗众取宠,不踏实的感觉。
感悟:如果没有实力还喜欢夸夸其谈的人,给人的感觉就是话多。程序员嘛,就是学会踏实做事,给个问题即使不能完全解决但也会有自己的思路,这样才会让人觉得可靠。
其实C语言这东西,只要你天天上机,经常摸着代码很多东西不用背甚至不用看就知道了,反而是那些天天背不上机的人,一旦上机,写的东西又全是错的。写程序,不比其它的学科,动手才是硬道理。
感悟:动手是学习代码最快的提升方法,很多时候,我们只需要知道怎么用,在哪里可以找到就足够了。这好比与查字典,我们脑海里有个大概影响,真正要用的时候去查就完事了。
在很多人总是抱怨:“苦恼阿,没机会阿。”好像自己就是那个才华横溢又无法横溢才华的大诗人。其实机会就像羊,满地都是,关键是你自己要知道怎么去剪羊毛挤羊奶。――难道你还等着羊自己把毛和奶送到你手上,那才叫机会?
感悟:毫不夸张的说,在现在的互联网时代下,处处都是机会。只要有想法,努力地去做就能看得见机会。当然,自己不主动寻找机会,机会是永远不会出现的。
程序员不管是做程序还是做事,都应该有这种习惯:一个问题要尽量在做之前就把所有的结果想出来,分别对每种结果进行分析,找到较好的应对措施再去做。这样,整个问题都尽量在你的控制中,不至于做出“Out of control"的事情。一件事,如果你决定做,就要努力让它在你的控制之中。
感悟: 写程序和开车一样,开车时,速度要在自己的控制之下。写程序时,可能出现的结果也要自己的控制之下,要避免脑袋一热,写了一堆代码,最后爆出了各种问题。所以,在动手之前,先冷静思考一下整个流程以及可能出现的结果。
我学的汇编,这是很地层和基础性的东西,是学的很慢,但高层的东西老是会变,比如ASP,一下升级到ASP.NET好多东西就又要学。汇编就不一样了,基础性的东西,除非微软把操作系统都全换了,把API全换了,否则永远都不用怎么变的。”
感悟: 现在有了很多语言辅助工具以及框架,但是我们对基础知识应当有一定的了解,这些基础知识虽然看不出来有什么直接的效果,但是它是我们的根基,无形中是会运用到的。如果我们太依赖工具和框架,那么就很难去提升自己的竞争核心力,这对我们的未来发展是不利的。
小张啊,好好干,再干两年就分点公司股份给你。”你要是真信了就傻了,这句话完全有资格收录到十大谎话里面。你要是够聪明你就应该跟BOSS说:“BOSS啊,股份这东西太高级咱懂不起,还是不要了,折现吧。”
感悟: 老板,一切折现吧,股份啥的我玩不转。
什么问题凡是跟‘原理’沾上边这题目就大了。原理性的东西你懂得了多少?再说就算你真懂一点写出来又有几个人能看懂?原理性的东西有多大?就凭你那几万字的毕业论文能够阐述清楚?我们报课题报项目多了!
感悟: 写某个原理其实类似于写综述,写综述是对知识要有极强的概括能力和未来发展方向的预测能力。如果论文涉及到原理那么就太厉害了,因为原理性的东西太难把控了。
公司是以赢利为目的的。所以公司用你,就是希望你给公司创造价值。说技术阿,知识阿都是给逼出来的。公司给你讲这些,其实就是在逼你。明明你根本不行,但是他说你行,于是你自信心极度膨胀,还真以为自己行。当然后果就是你必须拼命去学习,证明给别人看你行。结果,你有用了,公司的目的达到了。当然,你自己也得到了提高。
感悟: 被公司利用不用感到太沮丧,说明你有利用价值,并且在这个过程中,你也能学到一些东西。
程序就是这样,你永远不能按照自己的思路来让客户使用你的软件,因为他不是程序员。
感悟: 产品经理与项目经理的恩怨。
你说公司招VC++程序员,再怎么简历上也应该出现VC++啊,MFC啊,SDK啊之类的,要是连这几个关键字都没出现,那多半基础太差,也就是尚停留在TurboC的基础
感悟:
-
VC++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。
-
MFC(Microsoft Foundation Classes)是一个微软公司提供的类库,以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。
-
SDK是软件开发工具包
这个也不行!”为啥?简历上写程序设计语言96分,高数物理都是90多分。“根据经验来看,成绩太好的不一定有很好的技术,在学校他把全部时间都拿去学习考高分去了,哪里有时间来真正动手实践?”“这个也不行!”为啥?学生会主席,什么什么协会干事,什么什么校报主编。“这样的人,比较适合去当官。”
感悟: 有点意思但不完全正确。
影头,你看看我这程序,怎么老是出问题阿?”他都会跟别人说:“先看看是不是有内存泄漏。”
感悟:内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃。所以“内存泄漏”是从操作系统的角度来看的。这里的存储空间并不是指物理内存,而是指虚拟内存大小,这个虚拟内存大小取决于磁盘交换区设定的大小。由程序申请的一块内存,如果没有任何一个指针指向它,那么这块内存就泄漏了。
汇编语言使用寄存器并不是对寄存器访问比对内存访问更快,而是对寄存器寻址比对内存寻址更快。
薪水才是王道,那个什么什么职位公司多的是,只要老板高兴,今天给你一个明天给你一个,甚至随便一个跑销售的推销员,名片上都印的‘业务经理’。小伙子啊,你还高兴呢!太没经验了啊!”
感悟: 职位都是虚的,我,程序员,打钱。
公司对员工,就像谈恋爱。你没有百分之百的把握,就不要轻易给你女朋友承诺什么。你这个CASE没做完,就先不要承诺这个周末我带你去看电影。你永远要记住,承诺本身只能让她在当时那几分中里开心,履行自己的承诺才能让她开心一辈子,而且承诺的东西做不到,时间长了,她会连那几分钟的开心都没有,反而变成对你承诺的厌恶。男人最可怕的是没有钱,最可悲的是没有人信任你。
感悟:不要轻易承诺,一旦承诺就要做到,努力做一个言而有信的好男人。
题目是做64位加法,他就跟他说,用ADD怎么怎么做,用MMX指令怎么怎么做。最后归纳一下,还是用ADD做效率比较高,因为用MMX指令太少,指令对齐还没出来,效率提高不了多少
感悟: MMX(Multi Media eXtension,多媒体扩展指令集)指令集是Intel公司于1996年推出的一项多媒体指令增强技术。
为什么?也许有一天,技术真正和商业利益分开了,中国的软件就有希望了,中国的程序员也就有希望了。
感悟:不要野蛮生长,希望中国互联网能够真的在积累技术。
巴依问阿凡提,“钱和道德在你面前,你会选哪一个?”阿凡提想都没想立刻回答:“要钱!”巴依哈哈大笑:“你阿凡提原来也是个俗人呀!如果是我,我会选择道德。”阿凡提回答:“对呀,尊敬的巴依,人缺什么就会选择什么!我选择钱,是因为不缺道德,缺钱,而您选择道德,正好说明您有的是钱但是缺德呀!”
感悟:人越缺少什么就会越炫耀什么。
写程序也是一个道理,你千万不要以为自己会点C++晓得啥是继承啥是封装了,就牛B得不得了,就有资格把那些还在问:“C语言的指针是什么意思。”的所谓“菜鸟”们鄙视到十八层地狱了。程序写出来给谁用?难道你还能拿他当饭吃当烟抽,还不是得拿给你称之为“菜鸟”的广大人们群众。或者是你有了研究成果,拿出来跟谁分享?技术低了,其他牛人们不屑一顾,你要记住,比你牛的牛人们永远不缺你拿点技术,技术高了,你又研究不出来。你还不是得跟“菜鸟”们分享啊,“菜鸟”们对你的成果津津乐道,对你万分追捧,满足你那一点点虚荣心,
感悟:这是一个终生学习的时代,不要因为一点点小的成果就沾沾自喜。
可是程序员就不一样了,程序员不仅仅是钱的问题,有点臭知识分子脾气,就像我自己一样,首先你得尊重他,要给他自由发挥的空间,不要什么都卡死了,要按照什么什么做,功能要一二三四,要在什么什么时候做好。就像Bug Yang,对他技术方面就不做评价了,但你在四川是亲口答应过他去北京之前转正。你刚才也说了,这次来北京的三个开发人员,包括我,全部都辞职,这是为什么?只是巧合吗?我觉得有必要好好思考。”
感悟:虽说程序员只是拿钱干事的,但是不能欺骗他呀。
虽然在很多时候懒人都被人鄙视,但不得不承认,懒人的确为我们的社会做了不少贡献,没有人懒得走路,就没有人发明汽车,没有人懒得爬楼梯,就没有人发明电梯,没有人懒得去做人工汇编,也就不会有人发明汇编器。
感悟:越来越相信,懒是社会进步的动力。
所以人啊,特别是现在的年轻人,总觉得压力大,要买房,要买车,要结婚要生孩子,压力还不大?其实根本没必要去考虑这些,你考虑得再多,房价还是一样往上涨。就站在工薪阶层来说,一套房子几十万,你挣几十年钱一次性付清买套房子,压力倒是没有,不过住不了几年又要入土为安。现在有机会让你先把房子住上,等于多让你享几十年的福,还不赶紧去住上,现在房子少人多,你不去住多的是人去做,到时候人把房子住满了,你又得后悔,还考虑啥压力?房子标价五十万,或者贷款二十万,这都是死的,可人是活的,今年你只挣两万三万不代表你一辈子只挣两万三万。
感悟:要以发展的眼光看待问题。
所以程序员要做就得做高手,做什么都无不重要,关键是要做成牛人。你一个小小的程序员,公司有你不多缺你不少,代码得由你来写,出了BUG还得由你负责,不服气,不服气滚一边去,反正你不愿意做有的是人来做。成牛人了就不一样,掌握了公司核心技术,体力活就分给下面的人去做?老板敢随便让你走吗?你一走随便再去一个公司或者马上自己创业搞对他都是极大的心理压力
感悟:做事情就要做好,也就是培养自己的核心竞争力。如果你做的事情是很容易替代的,那么就没必要去做。做一些难度大一点的事情,让自己变得无可替代。
最后
程序员是什么?熬夜写程序?钱多话少死得早?
每个程序员都有自己理想与追求,但其实他和普通人没什么两样,他会遇到生活中的琐碎,会受到感情的折磨。写程序对身体和心灵都是一种考验,能完全沉下心来面对程序是很一件难的事情,因为周遭的人际关系会让你烦闷,妻儿老小的盼望让你踌躇。
或许
再努力一下,首付就有了……
再努力一下,奶粉钱就有了……
再努力一下,养老金就有了……
完。
资源连接
资源放在我的微信公众号上去了
搜索【文无第一】
回复【疯狂的程序员】
获取云盘链接
注:仅供学习交流只用,切勿用作商业用途。