当前位置: 代码迷 >> 嵌入开发 >> 2010届 嵌入式方向 研究生,求发展思路解决办法
  详细解决方案

2010届 嵌入式方向 研究生,求发展思路解决办法

热度:1617   发布时间:2013-02-26 00:00:00.0
2010届 嵌入式方向 研究生,求发展思路
各位嵌入式行业的前辈好!后生小辈恳请各位帮忙指条明路。
我本科就读于一所财政类院校,专业是“计算机科学与技术”,在学校没学到多少东西,就是基础理论课。考研就是想获得两年时间来好好学点东西。现在激情四溢,斗志昂扬,就差路线,正在学着Ing.
现在我在青岛大学跟随一位硬件水平相当牛的老师学习嵌入式。老师的意思是让我走软件方向。也就是说 ”嵌入式系统软件工程师“ 。开始因为不了解不太情愿,后来了解了一下开始转变观点。现根据网上查阅的大量资料,制定计划如下(肯请各位前辈,和已经经历过我这个阶段的各位师兄师姐们帮忙指正,时间不多,想把时间用到刀刃上):

第一:软件方面的学习
软件方面我肯定要走linux这条线,我根据网上资料决定走这条路(使用linux—〉linxu系统编程开发---〉驱动开发和分析linux内核。)
1、熟悉Linux操作 学习 vim gcc gdb makefile  (请问有什么好的学习经验可介绍,起码学习到什么程度,因为我也要学习其他的,不能卡在这里,我看makefile教程好厚哦,我已经学过基本的GCC。GDB,makefile打算等写完自己那个程序,一块把这三个软件好好练练)
2、C语言必须过关,我看了<C语言深度解剖>、<高质量C++编程指南> 并开始自己写一个简单的个人信息管理系统(没有界面,纯C语言,包括自己实现链表什么的),主要想理解下指针,内存。因为那两本书,看也不是看不懂,但不是真的懂。
(请问C语言要达到什么样的程度,有什么经验可推荐,有什么书可推荐)
3、我在看APUE,感觉还不是很难理解。然后看UNP,
4、然后看 《用TCP/IP进行网际互连》学习网络编程
5、然后看《Linux Device Driver》2e 学习些驱动程序。这里我最迷糊,我现在还没开始了解驱动程序这个东西,这个东西,要怎么学,拿什么练呢。
“如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。”
这句话前半部分,指的是不是就是APUE中介绍的部分,我APUE才看了4,5章,还没看到。

然后然后,就得重点看linux内核了
我从网上找的方法和推荐的方法:“怎么开始学linux内核:最好有三件宝物:《深入理解linux内核》《情景分析》和源代码。 ”、“毛德操的《嵌入式系统》也是分析linux内核代码的,主要讲arm相关的。” 
这个,真的非常需要各位“过来人”给指定一条路,到底怎么个看法。不知道这几本书过时了没,有什么更好的推荐么。



还有两点,非常想知道
1),我知道其他方向有学习嵌入式应用软件的。我花大量的时间去了解Linux系统调用对么,这是我该看的还是学 嵌入式应用方向 的该看的。
2),关于语言,我只是学习C语言就够了么,C++呢。
再者我非常想学习下汇编,老师说以后等“上层次”的时候再学,朋友告诉我说要学ARM汇编,我想知道,我如果想现在开始着手学习,该如何做。我自己学习过王爽的《汇编语言》可是根本没有什么实践经验,心虚。
第二,硬件方向。
关于"放弃"这个硬件方向,心里委实很疼很疼,因为一直希望自己能独立设计硬件,开发软件,自己出个东西什么的。不过正如老师所说,我模电数电都不咋地,接口不会,单片机没碰过。ARM更甭说。咋学。 
我自己私下理解的硬件工程师,就是设计电路板。于是乎就想,我放弃自己擅长的计算机方面的知识不利用,干嘛去抢电子专业的人的饭碗,无论如何也不如人家基础来的好。况且,我看网上招聘的,嵌入式系统工程师,工资貌似比硬件工程师高。嘿嘿。就学这个吧。

可是我知道我还是需要了解硬件方面的东西,这个还没跟老师深谈(刚开学他很忙,愣没逮着他)。我非常想知道的是,我对硬件的了解,需要达到一个什么样的深度。我自己看了点郭天祥的51视频教程,感觉他讲课重点,怎么就是在讲编程。而且那编程也挺简单的。

我在网上看到那些必读书籍,我该如何选择去读呢,毕竟不少。

22、单片机

单片机轻松入门----------------------------------周坚(平凡老师)  

单片机典型模块设计实例导航-----------------------求是科技

例说8051----------------------------------------张义和 陈敌北 (这本我已经打算看了)

KEIL CX51 V7.0单片机高级语言编程与ΜVISION2应用实践-----徐爱钧   

单片机应用程序设计技术(修订版)--------------------周航慈 

8051单片机实践与应用-------------------------------吴金戎

MCS-51系列单片机实用接口技术---------------------李华

24、电子

无线电识图与电路故障分析轻松入门(第二版) -------------------胡斌 

无线电元器件检测与修理技术轻松入门(第二版) -------------------胡斌

图表细说电子技术识图-------------------胡斌

图表细说电子元器件-------------------胡斌

图表细说元器件及实用电路-------------------胡斌


第三,理论方面我一直认为,一个人的理论知识能限定最终上升的高度,我很久以前就看过一篇文章:摘要如下


1)你已经认为C++和汇编语言都是很简单的语言,并能够自如地运用;
2)你能够在30分钟之内想到正确的五子棋AI算法设计思路和方向;
3)你完全理解STL为什么这么重要;
4)你能够独立地解决所有的编译与链接问题,哪怕你从来没有遇到的问题,你也不需要询问任何人;
5)英文网站是你的首要信息来源;
6)能够读懂英语写成的国际标准,比如NTFS磁盘格式标准。
7)你经常站在集合论的角度思考算法问题;
8)能够理解一个简单的驱动程序,能够理解一个简单3D交互程序;
9)你能够认识到线性代数和概率论在实际编程工作中的极端重要性;
10)你完全理解COM的设计思想,尤其能够理解COM为什么要设计成这样;
11)当我说到虚函数的重要作用时,你不会急着去找书来翻;
12)你能够说出C++为什么比其他语言优秀的理由,记住这种理由应该来自于你的开发体会,而不是因为其他人都这么说。
此外还有很多判断标准,但如果你同时具备5条以上,可以认为你已经具备相应的开发经验了。在这种状态下读研,你将取得读研效益的最大值。
******************************摘要开始**************************************
读研只适合那些痛感数学在编程中的极端重要性的人。如果对理论工具和理论思维的极端重要性没有切肤的认识,那么读研的价值几乎为0;
读研的好处在于:
A,把你自己放在一个学术和工程的交叉点上;
B,让你具备了进入微软等世界顶级软件研发机构的可能性;记住只是可能性。但是不读研这种可能性为0;
C,如前所述,如果没有读研的机会,你也就没有静下心来好好钻研几年理论的机会;一边工作拿高薪,一边深入地学习各种理论,诸位认为这可能吗?我反正认为不可能,我觉得学习钻研理论最需要的就是一个长期安静独处的环境,一边工作一边读书是不可能有这样的环境的,你会觉得每天都在疲于奔命。而读研正好可以提供这样一个环境。我同时还反对整天跟着导师的屁股后面跑,这样会浪费很多时间。读计算机的研究生,主要依靠自己去查阅最新文献,自己去研读文献,和导师的口头交流一个月一次就足够了,前提还需要导师的水平足够牛。如果导师的水平不牛,这也没关系,不理他就是了,自己做好自己的事情即可。
  相关解决方案