朋友也问过我,一些基础的东西学完了,如何进一步的成长,该学习哪些书呢?
如果没有读过计算机专业的基础课程,那么计算机基础课程是一定要学习的。
1.数据结构、离散数学、操作系统、编译原理这四门课学习完。数据结构和操作系统两门课程一定要细心学习,这个是基础理论。特别是数据结构,建议学习严蔚敏_吴伟民的《数据结构(C语言版)》。再找一本国外的,一共两本,学个一年。把书上的例子都用C写一遍。一些重要的代码需要背下来。侧重对算法空间和时间的分析。
2.C语言的书,我并不推荐某个具体的书。只是买一本讲得比较全面的。如果学习C++的话,并不推荐《C++ Primer》作为基本的学习。这本书对泛型做了较为深入的阐述。是高级的深入的教材。在单片机里泛型用得少,甚至C++用得少。写书的人一般水平都不低,把一本书吃透,理解透,水平也不会低。选好了,要有把这本书读上10遍的决心。我当年选了一本不是太好的C++的书,看了几十遍,书籍都翻断了,书中的优点,错误,还有疏漏都找出来了。做了各种各样的标记。
3.《程序员的自我修养》,理由不赘述了。
4.什么是好的代码?怎样评估一个好的代码?这方面的书,我还真没怎么看到。所以我一般推荐同事读一下《 MISRA C/C++编程规范》 之类的书,如林锐的《高质量C/C++编程》,《effective C++》。这两本书需要和基本的C/C++书呼应起来。但我更加推荐去读一下,LDRA、C++test的帮助文件。这两个是非常有名的静态测试软件,对代码最非常详细详尽的静态评估。其评估指标是非常具有意义的。学习帮助,了解这些评估指标,对提高编程的质量有非常高的工程意义。
5.能写出好的代码了,下面就是和自己的职业发展相关的了,如果主攻Linux方面的嵌入式,好书太多了。我也就不推荐了。如果主攻 RTOS类的嵌入式或前后台这种,我倒建议看看些OO方法或UML建模方面的书,操作系统原理的书。再加上代码的研读,诸如像uC/OS-II这种书,可读可不读。也许读后,你觉得还不如看OO方法,操作系统原理+读代码。
嵌入式RTOS 理论难度一般都不高,主要都是工程难度。所以,多侧重代码的研读,操作系统的原理会增进阅读的速度和理解的深度。
6.如果感兴趣的话,读一读项目管理类的书籍,了解软件工程怎么做。理论的书籍诸如PMBOK,CMMI,敏捷等。对领导对自己的管理有个清醒的认识,对周边的人有个积极的影响。
欢迎和我交流嵌入式的学习,谢谢。