从小白到菜鸟——记前8个月学习

先介绍一下我自己,我13年毕业后一直从事单片机相关的工作,有C和单片机基础,但是对单片机以外嵌入式相关的领域却几乎一无所知。
今年3月决定开始学习嵌入式,当时什么都不懂,甚至连买块开发板都不知道应该买哪一款。因此我到淘宝搜了一下“ARM开发板”,销量最好的当属韦东山的JZ2440开发板(今天特意搜了一下,居然还是JZ2440,不过已经是升级版了)。开始的时候我犹豫了一下,就加了本吧的群,到群里去问问再做决定。群里有位兄弟很热心(暂且称他为A吧),并推荐我到他的店去购买,当时不知道百问网(韦老师的公司)有官网,就在他店里买了。
韦老师第一期课程是免复的,前面几节主讲裸机(就说不涉及操作系统),就跟着学了。这段时间接触了很多新概念,Makefile、编译工具链、bootloader、Nand启动/Nor启动、MMU等,半懂不懂地甚感苦逼。本以为ARM裸机最多就是难度比单片机大一点点,但是很多这些基础概念琢磨不透,而韦老师只讲重点的授课风格也让我(小白)较难接受。
突然某一天,A兄弟给我发来2个链接,推荐我看朱有鹏老师的Linux基础课(免费)。我本着看看又不会怀孕的想法开始看朱老师的课程,谁知道这一看不得了,朱老师课讲得实在是太细致了,太适合我这种小白了。我花了2天时间把朱老师8小时的Linux课程给看完了。你说收获吗?最初这个课程的名字还叫《零基础3天学会Linux》,因此当时很好奇真的3天就能学好Linux吗?如果3天能学1遍,那我学10遍,就能把Linux完全掌握了吗?这种想法真是太天真了,Linux这个东西是需要慢慢琢磨慢慢研究的。原来老师是指学会在Linux系统中做开发需要用到的基本技巧,而这个课程也确实达到了这个目标,Linux中常用的命令、初学阶段需要了解的概念都一清二楚了,在Linux平台做开发已经够用。后来朱老师把课程名字改成了《朱老师带你零基础学Linux》。
因为Linux基础课程讲得实在是太好了,我开始关注朱老师的其他课程,顺理成章地加了朱老师的群,也经常关注群里的聊天、消息。4月份,得知朱老师准备推出嵌入式方面的视频,我犹豫了一下——因为朱老师的课程是基于S5PV210平台的,而我已经购买了JZ2440开发板。毕竟知识是无价的,相较于学到的知识,开发板这点钱算什么(当然,我是工作党,有自己的收入),因此我下定决心重新买一块开发板,继续跟着朱老师学。当时还赶上了朱老师的开发板团购,低价买入开发板再免费赠送裸机视频,后来发现赚大了,爽歪歪。后来,也看到不少群友在惋惜没赶上那次团购,真是庆幸。
裸机课程依然是如此地“平易近人”,学起来不怎么感觉到吃力。我觉得老师做得最好的一点就是,由浅入深、层层深入,听者的感觉就是没有难点,所有知识都是这么地简单,这么顺理成章。你能相信分析点亮LED,用了6节课吗?何况是单纯地分析LED,汇编基础、如何下载程序、如何编写Makefile等内容前面课程已经详细讲解过。随着学习,我理解了为什么朱老师的裸机课程可以有100多个小时,而大部分其他嵌入式课程的裸机只有几个小时。我也明白了为什么朱老师的裸机课程我能听懂听明白,学起来毫不费力,而其他大部分嵌入式课程的裸机我听起来那么吃力。朱老师的课程给人的感觉就是学ARM就像学习单片机一样,而大部分其他嵌入式课程因为忽略很多基础(但是很重要和必要)的概念、知识而让人觉得难以理解。
有一位同期学习的朋友(他学的是某嵌的课程),在我的裸机才学到一半的时候,他已经学完裸机、uboot/系统移植、系统编程等内容了。他很好奇地问我,你们老师到底讲啥?能讲这么久吗?我问他:你知道什么是重定位吗?他一愣,无话可说。PS:重定位是理解uboot代码或者其他代码所必须知道的,而他已经“学完”uboot移植课程了,却没听过这个概念。
朱老师还让我认识到了C语言的重要性。说实话,我一向认为自己的C掌握得还不错,大一C语言课程拿了95分,后来学习单片机和我现在的工作都是用C。朱老师说,他开始从单片机转嵌入式的时候有种感觉,就是自己好像没学过C语言。听了这句话,我心里2种想法:一是暗地开心,朱老师当年的C基础不如我呀;二是半信半疑,Linux中的C可能函数指针、结构体用得多一点,但是朱老师好歹也搞过单片机呀,这些东西应该都会呀,至于说感觉没学过C语言吗?后来,在群里跟大伙讨论问题(包括很多公司的C语言面试题),我切身体会到了朱老师说那句话(就是“自己好像没学过C语言”这一句)时候的心情——原来我也不会C语言呀。真是悲剧呀,工作2年了,C语言居然得回炉重铸。还好,发现得早,不懂的就补回来,朋友推荐我看《C专家编程》这本书,个人觉得非常好,作者讲得很有深度也讲得很有趣(但是不适合C语言0基础的同学)。在次,将这本书推荐给大家,百度搜电子版免费下载即可。
更好的是朱老师推出了C语言精讲篇视频(朱老师的C语言基础视频是免费的,这个比较适合C语言0基础的同学),果断购买!群里很多同学都说好,不过我还没怎么看(计划先看完裸机),哈哈。
现在,ARM裸机课程和C语言精讲篇课程已经结束了,朱老师在录制uboot和系统移植的视频。而前些天,我却犹豫了一下要不要继续购买朱老师的课程。
最初的时候韦老师的视频看了一段时间,学得迷迷糊糊半懂不懂的,后来跟朱老师学了一阵子很多基础都搞明白了,扫盲作用明显。不过前段时间急功近利的心理作祟,觉得跟朱老师学实在是太慢了,打算从uboot起跟韦老师学,因为看了朱老师的视频后原来韦老师视频中没讲到的很多内容都懂了,觉得自己的水平可以跟上韦老师的课程了。最终我淡定了下来,因为自己掌握的(嵌入式方面)知识基本上都是从朱老师教程中学到的,为什么要选择一个自己觉得可能很好的教程,为什么不继续跟着朱老师学呢?于是,果断购买uboot视频。现在想想,真是个明智的决定,毕竟韦老师的课程课时少,但是消化起来不一定比朱老师的课程快。
当然了,韦老师的视频课程一直都得到好评,可能只是不太适合我(小白加菜鸟),举个例子:讲到MMU的时候,韦老师推荐了一本书《ARM体系结构与编程》(杜春雷著),所以得去研究这本书,才能把视频看懂。我是哪种学得特别慢的人,我就怕自己如果去看那本书,可能得花好几个月才能看完(⊙o⊙)…
没有最好的课程或者不好的课程,只有最适合自己的才是最好的。如果你感觉自己还没入门,我推荐学习朱老师的视频。当然了,韦老师、朱老师或者其他嵌入式教程的视频都有免费的部分,可以先看免费部分感受一下,看看是否适合自己,再做决定。学习指南: http://edu.51cto.com/course/course_id-3404.html

(文章转自贴吧网友)

你可能感兴趣的:(linux,编程语言,C语言)