郭天祥的十天学会单片机教学(如何评价单片机大神郭天祥)

如何评价单片机大神郭天祥,他对中国的硬件发展起到什么样的作用?

用一句话总结一下郭天祥的单片机教程:让人知其然而不知其所以然。

本科学了一半以后直接放弃了。这本书的知识点给人的感觉就是一种让你飘着的感觉,所有东西完全浮于抽象的概念之上,对单片机的内部电路组成一字不提。后来研究生去了国外,修了一些更加底层的课程之后才真正理解了单片机的运行原理

郭天祥的十天学会单片机教学(如何评价单片机大神郭天祥)(1)

在国外,做嵌入式学生的学习流程是这样子的:

1.学习模电,数电,C语言。这些是一切的基础。

2.学习CPU架构,使用数电模块搭建一个CPU出来,CPU就是一特殊的时序逻辑电路。

3.学习计算机体系结构,了解多线程、并行计算、各种类型指令集的执行方式。

4.学习片上系统。

5.学习操作系统,开始编写BIOS和外部固件。使用C实现一个类Linux操作系统。

6.学习单片机,进行操作系统的移植。

而在国内,做嵌入式学生的学习流程是这样子的:

1.学习模电数电C语言

2.开始看郭的单片机教材

所以,郭最误导人的一点就是,他把自己的教材定义为一个入门教材,误导学生跳过了若干必修课去直接进行单片机编程。如果你以这样的路径去学习的话,即使你会用那个学习板实现一些简单的功能,但你的路必然走不长久,当你在未来遇见更加复杂的问题的时候,你会发现你的基础以及对单片机的理解很不到位。各位初学者可以问问自己:你的真了解那个黑片儿里面的电路组成吗?

-------------------------------------------------------------------------------------------

如果你现在是一个用郭的教程的单片机的入门者,那么请先回答下面这些基础的不能再基础的问题,如果你很多都回答不上来,那么请立刻停止这本书的学习,赶紧去补基础去,问题如下:

1.请用数电模块(例如多路选择器,加法器等)搭建一个单片机出来,阐明你的总体思路。

2.单片机和CPU有什么差别?

3.STC89C51, AT89C51等叫做51的单片机有几百种,那么为什么这些单片机都叫51单片机?51代表了一种什么共性?

4.指令集架构和微架构有什么联系和区别?

5.51单片机是否具备指令流水线?如果有,那么有多少级?

6.请结合硬件阐述操作系统的启动流程。

郭天祥的十天学会单片机教学(如何评价单片机大神郭天祥)(2)

最后统一回答一下很多人提出的一些问题。

很多人提到了学单片机应该先激发初学者的兴趣,而不是上来直接看底层原理。甚至有人说学这些底层原理99%的人都得放弃。

针对这些问题我回答一下:

首先,CPU架构片上系统等课程之于嵌入式,相当于体系结构操作系统等课程之于计算机。这些课程,是你作为一个合格的嵌入式科班出身的开发者所必须拥有的能力。否则,你和刚从培训班出来的码农,没有任何差别,更何况很多培训班出来的码农都知道补修本科课程来给自己打基础。这些看似没用的课程在未来会直接影响你的开发深度和开发效率,没学过这些课程的人看相关开发手册可能看好几周都掌握不到位,而你看一两天就足够。

所有计算机专业的毕业生都是从体系结构到软件工程这样自底向上的学过来的,为什么你搞嵌入式的就不能这样学?这些课程的难度并不是很大,只要下点功夫,都能掌握。

郭天祥课程的水准充其量只是职业培训的水准,是完全不能作为一个合格的本科教材存在的。目前国内没有专门针对嵌入式的培养方向,并且不错的教材也很少,所以郭的书才能在国内的市场大行其道。所以各位初学者,一定要先把基础打牢,按我答案中提到的路线来走,不要听某些自暴自弃者的话。

知乎上我看见另一篇关于嵌入式的答案讲的很好,STC89C51,STM32等这些开发板的开发充其量只是“术”,而数电模电CPU架构体系结构片上系统的知识则是“道”。根据我的学习经验,一旦把“道”掌握到位,你会发现,STM32等各种开发板的官方手册你直接就能看懂了,根本不必再去学那些市场上的开发教材,你会发现郭天祥之流的教材讲的都是废话。所以前期耗费太多时间在“术”上是非常不值得的,到后期你会发现你前期完全就是在浪费时间,并且浪费了很多时间。

看过郭天祥的两个视频——1.十天学会单片机c语言开发;2.用AD(DXP)画PCB。。作为一个机械类毕业生,靠这两门课程入门,加起来可能也就一二十个小时的视频课程。。。看完之后,买了英飞凌的xc2000单片机,画电路板,做开发板,然后算是入门了。。。

工作以后,技术上需要进阶,通过网站自学了下面的一些教程——汇编语言(小甲鱼),算法(小甲鱼),计算机网络技术(某大学公开课),操作系统原理(清华和浙大的公开课),计算机组成原理(哈工大的公开课),编译原理(哈工大公开课),freeRTOS(野火),lwip(野火),数电模电(书本),微电子(复旦公开课,没学完,但学到的那几个章节已经很受益)……买过TI,STM等单片机,为了熟悉ARM的指令集。以上所有的课程在工作中都用到了,也是技术进阶的必然。

视频跟大学课程的作用应该都是引导和答疑为主。学生应该主动去探索。野火的视频告诉你rtos在stm32上怎么做任务切换,怎么保护上下文。学习者应该自己研究在自己手头的芯片上怎么一直rtos,怎么切换上下文,怎么现场保护和现场恢复。视频是授人以渔的。

郭天祥的十天学会单片机教学(如何评价单片机大神郭天祥)(3)

郭老师的视频和书都很浅显易懂,作为单片机的入门教学其实是很不错的,可以让一个可能只是会一点c语言的大学新生快速上手。很多回答都觉得学习应该先学模电、数电,实际上我们很多知识都是先学了用起来,等后面上课学到这块的知识,一下子会让你回忆起来,会让你搞明白原理。我是大一开始做单片机开发,大二上模电数电的课,大二下才上单片机,大三上嵌入式课,虽然一开始做单片机开发一知半解,对单片机的实现很多细节不清楚,但是后面上课上到这些知识的时候则让我焕然大悟,此时我已经有两年多的开发经验了。不过郭老师的视频和书看完很浪费时间,可以看前面一部分然后理解了后面就按着自己的想法去实现就好了,不用全部看完,因为最重要的那些入门的知识点前面的部分已经可以学习到了。

说了这么多,大家记得留意下方评论第一条(或者私信我)有干货~

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页