小鲁本科学硕,在IC Design House写过几年FW
分享自己的经验以及一点浅见
要进这行的顺序:
1. C练熟,至少要有大一计概与程设课程等级
具体目标是用C写出八皇后、河内塔...等经典问题
这个阶段主要是让你熟悉C语言
包括基本语法、编译与执行的方式、如何Debug
还有最重要的: 撑过去并且愿意继续写C
如果你遇到了一堆Segmentation Fault,或是各种Compile不过
上Stack Overflow也不见得可以在五分钟之内就找到bug的解法
你依然愿意继续找下去依然不放弃这行
那你再往下看其他步骤,否则压力只会更大
2. 修大学部的作业系统概论
目标就是跟着修完一学期的课就对了
无论是上开放式课程或是直接去学校旁听都好
一定要跟着交作业/Project
如果跟着写作业的话应该会更加熟悉C
以及遇到更多坑
我预期作业应该会让你熟悉以下几点操作
a. 装VM
b. Linux File System
c. Linux 内的基本Command,例如ls、cat、grep...
d. 用gcc 写/编译 C code
所以要记得先完成第一点熟悉C到一定程度
否则这时候写作业会有更多问题
更加复杂更不容易找到Solution
3. 修大学部的计算机架构/计算机结构 概论
课名上可能EE/CS 会有不同,但授课范围都大同小异
目标一样是修完大学Level一学期的课
一样请跟着写作业/Project
这堂课主要是对应到原Po提到的"硬件知识"
就是熟悉CPU的Cache、Write through/Write back、TLB...等等内容
我当年在修的时候有一部分会和OS的内容重叠
所以其实可以两堂一起修,看你时间分配
另外这堂课作业也许会需要你写Verilog
如果有遇到的话就跟着学,以后可以自己玩FPGA
4. 准备面试
网络上应该有相关的介绍
你在修完上述两门课之后面试会问到的东西应该都看得懂了
或至少有基础知识,要再继续上Google查也会更有方向
我认为一般人要能面试进这行至少要完成上面4个步骤
当然如果你有任何特权 (身份/血统/...) 就可以无视
如果有钱有闲想再更进阶的话可以再进修以下几点
1. 嵌入式系统概论
我建议可以修个大学部的课
应该可以让你compile kernel,熟悉一下kernel module、Makefile等等
当然你要自己买个板子来玩也是ok
反正就是熟悉以后的开发环境
2. Linux
就跟着鸟哥的课
有空就加减看一下练习练习
熟悉Linux环境跟Bash Script,以后上班会很好用
祝福原Po顺利找到理想工作
我个人是不想继续写C 就是了XD