有幸在开始毕业设计之前在图书馆拜读莫雨大神的《一个程序员的奋斗史》,这本书讲述了段伏枥成为程序员早期的经历,刚开始吸引我的是书中段伏枥对编程的不断理解的深入,为我开始毕业设计前的代码学习带来了很大的启发。随着阅读的深入,这本书后期的代码知识我开始理解不了了,但是其中职场的勾心斗角、阴谋阳谋带给了我很大的触动,作为一个还未走出大学校园的本科生,我相信这些职场的经验和人生的感悟会让我少走一些弯路。
下面是我在阅读这本书过程中印象最深的内容,特地整理出来,时时翻看,不断激励自己。
1. 几个半生不熟的包子,一次彻心透骨的冷水澡,这便是段伏枥踏上深圳后的第一个印象。
2. 刘思敏打开的话题,是在一种愤愤不平的语气中开始的:“我一定要在深圳立足!我一定要嫁个有钱人!我要让那臭东西知道,老娘也有姿色也有钱,不是没人要的烂货!”
3. 当程序员,是段伏枥一直以来的梦想,而这梦想由来已久,可以追溯到孩童时光。
4. 不仅要当程序员,段伏枥还有个梦想,就是能拿到“微软最有价值专家(MVP)”的称号。
5. 每天从人才市场回来后,就泡到网吧,打开中国人才热线,凡是有“程序员”字样的岗位,就全部点击“发送”。
6. 在学校里面做的那些东西,在真正的程序员眼里,都是一些不入法眼的玩意。而简历上的东西,更多的是自以为是的吹嘘,什么叫精通C++,精通C#?连经典教材都没看过,代码没有写过一千行就敢叫精通?简直是笑话。
7. 对着电脑,看着陌生的开发工具EVC4.0,段伏枥发愁了。
8. 不过天无绝人之路,段伏枥还知道有MessageBox这个函数。这个函数是啥呢?他是Windows平台的一个API函数,简单点来说,会弹出一个对话框显示相应的字符。于是段伏枥在他觉得哪里有问题的地方,就输入这个函数令其显示相应的数值。
9. 所幸,从今天起,段伏枥知道了还有一个叫断点的东西,这个东西可以让程序跑到该处代码时停下来,查看相应的变量数值。
10. “查表?”段伏枥隐约记得,用查表的方式来计算除法,在没有除法器的单机片上为了加快运算速度是常用的方式。只不过在现在公司所用的夏普LH7A404这款ARM9核心的CPU,也需要用到查表的方式吗?
11. Windows CE是一个可定制的系统,Platform
Build 4.2 便是用来定制的工具。所谓的定制,指的是程序员可以通过Platform Build 来选择操作系统的组件,比如网络组件、USB组件等等,这些组件都可以根据需要任意删减。选择完毕之后,便可以通过Platform Build将C++代码编译成exe和dll文件,然后将这些生成的文件拷贝到工程目录,最后打包成文件名为nk.bin的操作系统。
12. 嵌入式设备不同于桌面设备,桌面设备是摆在客户面前的,硬件功能一般是不会有什么大的问题的,出现无法录音的情况大多数是应用代码的问题或是驱动安装不正确;可对于嵌入式设备来说呢,确实无法保证硬件的正确性,遇到无法录音的情况,首先要从硬件入手。最简单来说,是首先用万能表之类的仪器来检测音频芯片的电压是否正确,然后再用示波器去检测音频的输入管脚是否有波形,当硬件确定没有任何问题的时候,才回去考虑软件的方面。可以说,软硬结合是嵌入式和桌面开发最大的区别。
13. 程序员是不幸的,因为只要还想继续待在这行业,那么就必须一直在学习,永无止境;程序员又是幸福的,因为这行业永远不会有尽头,永远不会有学完东西的时候,只要不停下前进的步伐,那么就不会担心被取代。
14. 在代码方面,段伏枥有着自己的癖好,看不懂的东西堆在自己的代码里,感觉上就像自己的私有领地被陌生人侵犯一样,是情感上所不允许的。
15. 在光鲜亮丽的城市背后,在那些阴暗的角落,都会存在着这些人。每次段伏枥心灰意冷的时候,看到他们,便觉得自己的那些苦恼并不算什么。作为程序员的自己,比上是的确不足,但比下,至少自己不用每天风餐露宿。人如果懂的知足,那么生活便没那么多烦心事;但如果仅仅满足于知足,却容易变得懒怠,止步不前。在这满足和不满足的交杂中,也许便是人前进的动力之一。
16. 功能类似的函数,段伏枥的做法是:复制,粘贴,修改,而根本不是什么继承之类。所以段伏枥现在使用类,其实只是披上了一件外衣,没有真正用到C++的精髓。这也无可厚非,试问哪个高手一开始就懂得在实际使用中如何很好地运用继承啊,虚函数之类的?这些都是在慢慢的代码书写当中,一点一点领悟的。但如果一开始就惧怕,甚至于拒绝使用这些高级特性,那么也就意味着从来没有踏进这个门槛,谈何来的进步。甚至有些程序员还会想,这些东西我还不会用,等我技术水平高了,回头再来使用;可问题是,隔行如隔山,如果你一直不用,那么面前永远就有一座山,只有开始使用了,才能翻越这座大山,看到胜利的彼岸。
17. 于是,在段伏枥的代码中,第一次出现类这个玩意。虽然离精髓还差了十万八千里,但在面向对象的实践道路上,迈出了第一步。
18. 与其不做而后悔,不如做了而后悔,这是段伏枥小时候看的漫画《足球小将》的一句话,却对他影响深远。只要不违法,只要符合道德,有些事,为何不去尝试看看?
19. 可是路毕竟还是要走的,走的如何那要看自己的造化,与其去抱怨,不如自己来掌握命运。所谓的高手,不也是从菜鸟起家的吗?笨鸟先飞,虽然自己已经无法做到“先飞”,但至少能做到“早起”吧?
20.《C++ Primer》
21. 产品的蓝牙是用模块的方式,通过串口和CPU进行连接的,只需要发送相应的AT指令即可操作。
22. 模块的另一种连接方式,则不是直接输出模拟音频,而是用I2S(Inter-ICSound)。I2S总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。
23. 段伏枥的想法是,搜索引擎和主程序分开。所谓的“搜索引擎”,其实就是一个后缀名为DLL的动态链接库,根据输入的单词,返回相应的结果。结果是以一个结构体来保存,分别指向音标和注释。音标和注释是一个指针,用来指向分配的缓存,还有一个变量来存储大小。不过因为音标和注释都不是固定的大小,所以缓存的分配和赋值都是在DLL中用new分配的,但用delete释放的话确实在逻辑层。其实这种分配和释放不在同一个地方的做法非常糟糕,甚至是完全不足取的。
24. 根据对算法的掌握程度,大体上可以将程序员分为三类:第一类是对算法非常精通的,第二种是知道有那么些算法概念,知道相应的算法库该如何使用的,最后一种是对算法一窍不通甚至连算法库都不知道的。这三种人之中,第一种是人一样的人物,适合于从事提升产品竞争力的工作;第二种便是大多数程序员所处的范围,适合产品的应用开发;最后一种嘛,便是菜鸟级别的,遇到和算法有关的问题只能撞得头破血流。很不幸,段伏枥就属于最后一种。
25. 只是,要选哪个呢?这些英文单词的排列是按顺序的,如果以二分法的话,直觉上应该可以快很多;并且这二分法的特性,对于已经排序的单词来说,查找的频度应该相差无几。好,那就是它了!就用二分法!
26. C++和中医是多么地类似。中医想要提升水准,需要大量的知识,比如植物的属性,阴阳五行,甚至风水也要有所涉及;而C++也是如此,仅仅是语言本身,就需要模板、标准库、泛型编程等等,这些内容光是相关的书籍就有二十来本。中医将基础知识全部熟透,成为一代名医,治病偶尔也会有失手的时候;C++更是如此,编程经验丰富的高手即使非常小心,有时候不经意间也会犯点内存泄露之类的错误。
27. 那么C#呢?则是和西医类似。普通的西医医生,不用靠自身的经验来对患者进行把脉检测,更多是借助于现代工具的检查,然后以此作为判断的标准,同样的病用同样的药;C#亦是如此,不用考虑诸如内存泄露、系统差异这些细节,靠着语言本身的机制来避免问题的发生,同样的问题用同样的方法。
28. 对于一名程序员来说,能否达到牛人的境界,各种素质都是需要的,其中一点就是主观能动性。所谓的主观能动性,就是自己会主动去学习或尝试新的东西;而不是像算盘珠子一样,不拨不会动,只会被动完成领导交代的任务。一个聪明的程序员,应该会用80%的时间来完成领导交代的任务,20%的时间用来探索新的知识。
29. 曹燕离职,她可以得到更广阔的天空,对于她来说无疑是有利的;而段伏枥又借离职这个波动,迫使武总满足自己的诉求。所以职场上的一些异动,看起来可能很微小,但在职场嗅觉敏锐的人眼中,却可能转化为实现自己目的的助力。只可惜这难得的助力,往往被职场新人所忽略,徒让人扼腕叹息啊!
30. 段伏枥坐在公交车上,细细回想今晚的内容,突然一个可怕的念头闪现在脑海。
31. 命运掌握在自己手里,什么样的心态决定了怎样的道路。过去的事情,就像历史,轻轻翻过一页,就不必再牵挂。是人,总要往前看;是路,总要人去走。段伏枥抬头看了看,发现阳光是那么的耀眼,照的人热血沸腾。后面的路会如何?自己也不知道。自己所知道的是,这条路,只要一直走下去,不要去后悔,这就对了。
这本书的作者是CSDN论坛的大神norains,看到这本书后迅速去CSDN论坛关注了他,不过看上去大神好像不怎么更新了。不管怎样,能在学习前进的道路上找到一位大神作为榜样,是一件很幸福的事了。
如有侵权,联系删除。
By 沐之惠
网友评论