硬件入门的一点点心得
硬件入门的一点点心得
没想到有人问我硬件怎么学,稍微说点吧~
从何说起
开始动手码字却发现还不知道从哪说起,于是去网上找了找资料:
硬件方向学习导图:硬件方向学习导图
图里的介绍是:
- 基础:
C
语言–模电/数电–Altium Designer之类的软件–PCB
的设计/制作流程 - 进阶:单片机–电路
- 再进阶:布线–
FPGA
–EMC
上述是我根据图的内容简述的,有兴趣可以稍微打开图看一看,很糊
- 基础:
如何学习硬件设计——理论篇:如何学习硬件设计——理论篇
比上面那个图还笼统,从高等数学,说到集成电路设计,把大学专业课说了一遍,所以硬件相关专业的同学你们学会了嘛?
知乎——如何学习硬件知识?构建完美的硬件知识体系,彻底解决零散知识记不住难题。如何学习硬件知识?构建完美的硬件知识体系,彻底解决零散知识记不住难题。
不亏是知乎,在这些方面还是非常的“善为人师”,图很清晰,有需要就去看看吧,链接都放上了。
我的看法
身为一条杂鱼,啥都不精通,参照上面大佬们的思路稍微说一下。
1. 首先,选定好自己的硬件方向!
做硬件有很多领域,从电子元器件的设计,再到PCB电路板设计,从基础门电路设计,再到芯片设计,从芯片设计,再到生产工艺设计,硬件的方向也有很多。除去这些泛泛之谈,那么也应该知道——设计摄像头的是一批人,设计收音机的是另一批人。
所以硬件行业的跨度是挺大的。
确定好自己的硬件方向是很重要的。
2. 如何确定自己的方向
这一点也就是上面几位大佬说的基础部分,接触的多,学的多,也就大致知道了自己的方向,哪怕不能确定,等到临毕业也就再也不容易改方向了
我本人是电子信息工程专业,按照我的专业课,稍微列举一些:
电路原理、模电、数电、数字信号处理、电磁场与微波技术、微机原理、单片机原理、高频信号、组网、通信原理、光纤通信……
呐,放图你们自己看吧
哇这么多,学完就可以了嘛?
当然不是,毕竟像我这样挂科怪,是学不完的,不过学这些东西当然都有用,底子打好了都好说。
3. 我的建议
这不能算是我的建议了,无论什么课程都不建议纸上谈兵,实操是学习的重要手段。
以我参加的几个面试经验来看,首先是编程语言,做硬件首当其冲是C
语言,之前这么说,有杠精说还有Python
,喜欢算就算吧~
C
语言作为贝尔实验室第一款编程语言——B
语言的新生,效率高,体量小,之所以经久不衰,原因就在于硬件。
每每看到一些营销号说:“xxx
超过C++
,还不快来学?”这样的话就很无语,各有各的好处,但是C在硬件中的好处不言而喻,硬件中的设计,对寄存器、内存,都有极高的要求,体量太大是没办法用的,比如Python
就是站在C
语言的平台上开发的,但是如果用在计算机方面的底层设计,那是有些困难的。
所以C
语言还要学,起码未来几年C
不会倒下。
此外一些硬件的基础要知道,比如寄存器、锁存器,之类的概念要知道吧,还有一些器件基础,比如ROM
和RAM
的区别,以至于PROM
、EPROM
、EEPROM
和FLASH
之类的区别,再到DRAM
、SDRAM
等等。
一般大学生的项目可能都是从单片机开始的,但是单片机的难度经常都不会很高,所以建议在单片机的项目基础上,了解一些通信协议,I2C
、SPI
、UART
等等。
而且现在社会需要的大多数都不是纯硬件吧,不考虑C
语言的软件属性,在计算机方面,也还要知道一些操作系统的知识,不在计算机方面也应该知道简单计算机的寻址方式。
当然,基础不能丢。
4. 我的大致经历
我关于硬件的知识也没有那么系统的学习。
除了上课的课程,经常旷课,还挂了俩科,都学的很乱很浅。
最一开始对计算机的了解,基本上可以说是在部门给别人修电脑得来的经验。
然后结合最一开始的部门,学的是前端,php
,以及微信后台开发,看我的公众号就知道我是学无所成。
大一的课程是C++
,凑合学了点C
之后大二加的实验室学的是网站后端,javaweb
,期间还因为接触的语言比较乱,又学了Python
和易语言,易语言的程度只能算是了解。
再到大三,准备转行做硬件,学习Verilog
,准备做CPU
的设计,自学操作系统、帮同学做课设又学了shell
,参加比赛和课程要求,都学了一些汇编,单片机原理交了通信协议,微机原理学了寻址方式……
现在打工,做的工作在固件之上,内核之下,主要对文件系统和硬件适配比较了解,CPU
的设计工作,还是要考个研才行。
以上仅供参考。
写的比较乱,凑合看吧