作者并不只搞硬件,也不只搞软件,作者什么都喜欢插一手。
——来自令人无奈的作者Tacu Lee
现在人人齐呼Computer Science大法好,高举Computer Science大旗,各行各业的人都加入CS大军中;且听说现已分崩离析,“雄风”不在(有没有过“雄风”还有待考证)的“大”IROI的李**老师其75%研二学子转行当了码农;最后,再看IC行业上惊呼摩尔定律终结,各家IC大头搞起了资本家手段,资本操作频繁。于是乎,搞硬件的人人自危,艳羡Coding Man。
然而,在作者看来,硬件和软件的这种差异虽然明显存在,找工作的难易虽然软件易于硬件,但更多是对于大众来说的,也就是对那些电路、硬件就只是入门级的,浅尝辄止的人而言的。软件行业的人员需要量大,人力多于技术力;而硬件行业上,人员需要行相对较少,对于模拟与射频从业者更是如此,技术力多于人力。本来,搞模拟和射频也不是人人都可以搞得动的,搞不动的就别来趟浑水,电路岂是而等可以后期慢慢修BUG弄好的?
“软件,写代码,需要什么技术?多看看书,多写写代码,谁都可以干!”“只要软件有要求,就一定能实现,这就是做一个码农的信心!”欲为码农易,码农所做的工作说不上搞科研,只是谋生工具而已。做电路,才是真正的搞技术,只是这门槛有点高,流程有点多,而且搞通了之后,大有垄断之势(Bram Nauta为例),如果要用一个名词来形容的话,属于“技术驱动”。而程序属于“需求驱动”。需求就在那里,一直很多,即使技术参差不齐,也并没有关系的,因为其本身实现途径就很多。
对于软件而言,成本低,照我程序员舍友而言,开发成本与调试时间成本各占一半。在我看来,前期开发时间短,时间集中,后期程序bug修复时间长,但分散,且程序也不是有bug就不工作了,可以边运行边改进。若不是搞算法级的,走的是流程级的设计,其程序运行理解起来容易,容易说得通,不需要深入学习也可以理解,基本上就是已经理解了再去实现,网上资源多,可复用资源也多,开发起来难度低得多了。(啊哈,不服,不服来战啊,码代码还能输你不成,我码的代码比你吃的盐还多!)
对于硬件而言,成本高,软件这种方式并行不通,并不能边运行边改bug,特别是高速电路的设计,进而IC设计,前期的仿真验证很重要,讲求设计即成功,First Pass Success。由此引出了一些设计的方法论,自底向上,自顶向下,层次化设计等。设计电路,基本概念的了解便很重要,然而入门上手不易(看大家模电水平即知);设计流程复杂,能把流程搞明白的人也少;对于实践要求高,没有实际动过手的,只是看书搞仿真的,其设计出来的东西只是中看不中用的花瓶而已。
此外,拿IC来举例,其整个设计流程线相当长,从电路原理图设计,到电路原理图转化为版图,加工制造后在片测试、PCB键合测试,直至后面的封装等。各个步骤都包含了非常多复杂、冗长的步骤。就拿一开始的IC设计环境而言,整个环境的配置就较为繁琐。现在的研究生水平,一般也没办法实现深入了解整个流程,就算是博士,也不能。所以电路搞不好也就有因可循了。
说到这里,就可以得出一个结论了“我电路没做好,也是有原因的,不是我的水平差,是电路真的好难!”。好了,不说了,我要码代码了!
未经允许不得转载:TacuLee » First Pass Success 设计即成功