谨以此文纪念大学毕业五周年。
我尝试过为了完毕一个程序而废寝忘食后就爱上了这个职业,即使知道这是个加班如家常便饭的工作也义无反顾。而且后来我发现材料project的学习经历并没有白费。不少
在此专业会收获很多其它。所以跨领域实践中我反而会在某些方面具有优势,这个后面会再提到。 我的程序猿生涯起始于校园招聘。那时我的第一个东家来我学校宣讲。它是做笔记本电脑代工的台企,世界500强之中的一个。在校园网看到有要求材料project的职位我就去了,但是在宣讲会上却被告知无机材料project的岗位已招满。在大家准备走的时候,我看到还有招聘“软体project师” (台企的称呼,即软件project师) 的岗位。由于不想白来,我就在简历顶部写了这段话然后投了这个岗位:熟悉计算机底层的人会知道,BIOS是PC机架构中驱动程序和硬件的中间层,所以工作内容也会多和相邻的这两层有交集。
依旧是无心之举带来惊喜,常常装系统和买卖硬件的我对上下这两层的基础知识非常熟悉,学BIOS也就相对于其它同事轻松多了。更幸运的是。我遇到四个非常好的师傅,给予了我非常多的指导。加上我疯狂地补习汇编语言和阅读硬件的规范文档(specification,可理解为电路级的说明书)。对这工作非常快就上手了,得到大家的肯定。
虽名为研发,实则是从測试做起。刚開始时没权限接触BIOS代码,但要写工具来辅助測试,还须要去生产线澄清各种无法开机或蓝屏的问题。硬件的软件端測试案例都是数以万计的,出现Failed的情况就得协助真正写代码的老员工去定位问题。这些案例我如今大多数忘记是什么了,但其精细程度却让我印象非常深刻。硬件不同于软件能够非常easy升级。出厂以后非常可能会保持原样直到报废。所以必须在交货前通过无数的測试。在我后来的职业生涯中,我发现我必须感激这个经历,由于计算机生产的严密性深深印在我脑海,在我日后写代码时都会习惯性地想出多个測试案例来。从而在编码阶段防御了bug——这是我写代码少bug的原因之中的一个。
入职半年后的某天。我在宿舍里继续看英文的硬件文档,看着看着认为非常烦躁。我发现这并非我想象中的软件世界。由于看文档学习到了新知识而非常兴奋。但是手痒了想实践却无法动手。想调试硬件当然就须要硬件了,但所需的东西出了公司大门就没有了。简单来说。做底层开发的成就感不如做高层软件来得快和直接,所以那时起我萌生了退意。
即使后来我做了纯软件的工作,这第一份工作学到的硬件知识没白费。我比一般程序猿对底层有更清晰的认知,从而对软件怎样工作有更深刻的理解,这样的理解正是编写高效程序的基础。
当时我做好了最坏的打算,假设找不到。我就去參加北大青鸟之类的软件培训班,即使半年脱产我也要坚持。
为了留多点钱去应对最坏的情况,我离职时没有请全然部的同事吃个饭,如今想想还有点遗憾。