迷茫的起点
2017 年,我从一所二本院校毕业,学的信息安全。编程水平并不算强,只会一些 Windows 应用开发、C 语言基础。拿到一家安全公司的 offer,本来说好 13 万年薪,结果入职被削成了 7500 一月。
刚毕业的我,被安排接手公司一堆屎山代码。每天十点、十一点才下班,还要承受责骂。那段时间,我抑郁到夜里不敢睡,因为一旦醒来就要面对噩梦般的工作。早上闹钟响起,我会盯着天花板发呆,不愿起身。就这样持续了半年多,直到春节前实在受不了了,提了离职,收拾好东西走出公司时,我第一次觉得天空如此晴朗。
第二次跌撞
之后我进入另一家公司,负责分析崩溃 dmp、,编写一些边角程序,然后会涉及一些windows平台的驱动开发,没有人带,唯一的组长每天自己都忙的团团转,几乎没有时间教我,在此之前我一行windows驱动代码都没写过,甚至不知道怎么运行测试一个sys,毕竟和exe直接双击启动差别很大,于是乎每天自己在网上不停的找资料,看论坛,去摸索,效率及其低下效率低到被领导不断批评。三个月试用期后,不出所料没能转正。更离谱的是,公司甚至劝我再投一次简历,重新试 3 个月。那时自信心已被打击到谷底,差点真的答应,最后还是婉拒了。
短暂的安稳
第三家公司依旧是安全开发,做远控和免杀。这里强度不大,每天六点就能下班,也是开心了一段时间。可安逸一段时间之后我心里越来越焦虑:公司小、没有晋升制度,涨薪全看老板心情。更糟糕的是,市场上免杀、逆向的岗位少之又少。未来在哪里?我开始思考转型。
转折
一次Windows驱动项目成了契机。那次我被指派去打下手,主力是一个大学师兄。他技术扎实,又乐于分享。在几次向他请教后,他帮我梳理出了一条学习路线。
我的师兄是一个钻研技术并且乐于分享的人,我在几次向他求教之后,总结出了一个操作系统内核学习路线,首先是要了解熟悉汇编语言,这个因为我是做逆向的,已经会了,直接跳过,那么来到下一步,通过汇编熟悉操作系统底层机制,《X86汇编语言---从实模式到保护模式》这本书是他推荐的,这本书现在已经出到第二版了,红色封面,我当时看的第一版还是蓝色的,通过这本书对整个操作系统有一个概念,这本书的缺点是仅限于32位,对于很多64位的特性和扩展并没有涉及,这个我通过看《一个64位操作系统的设计与实现》来弥补了,而后我又看了《深入理解计算机系统》、《操作系统真相还原》,不过这两本都是后话了,关于核心的windows驱动编程,我是看的《windows内核安全与驱动开发》,《windows核心编程》,而为了熟练掌握windbg调试(当时用vs调试驱动还是颇为麻烦的),我又看了《格蠹汇编》(这本书现在也出第二版了,叫做格蠹新编)和《软件调试》这两本书,作者都是张银奎老师。
前文提到过,在这家公司经常可以6点准时下班,所以我也能每天抽时间来看书学习,并且自己在家编程练习,虽然偶尔偷懒玩游戏去了,但是整体进步还是比较快,一晃2、3年过去了。
意外的机会
某天,我接到猎头电话,说 Intel 在招 Windows 驱动工程师。我第一反应是骗局:一个普通二本毕业、没大公司背景的人,怎么可能被 Intel 看上?论如何,我还是同意了面试。
但是从没专门面试过windows驱动的我,甚至不知道该怎么准备面试,我只能把之前关于windows内核书拿出来看一遍又一遍,然后到网站上看我要面试的岗位要求,google对应的知识,当时还没有chatgpt和诸多AI,只能用此办法,而后就是面试了,我原本想约在周末,毕竟我不确定真实性,还没提出离职,怕耽误工作,但是对方说周末不上班,实在不方便可以周中的中午,我也同意了,一面问了我一些windows内核的知识,诸如介绍下虚拟内存,为什么要有虚拟内存?怎么通过虚拟地址找到真实的物理地址等等,面试了大约1小时,对方让我等待结果,我心怀忐忑的回到工位上,想问猎头我的一面结果,但是又怕显得太急切,强迫自己继续工作,过了一天,猎头联系我说一面结果不错,问我什么时候约二面,我既兴奋又激动,说明天就行,于是约在了第二天,二面没有问太多技术问题,更多问了一些个人对Intel的感觉,想不想去工作,距离远不远之类的,最后让我概述了一下用windbg如何调试一些crash就结束了,结束之后我觉得表现挺好,但是想着这么大公司,肯定很多人竞争,我这水平真能过吗?在接下来几天都无心工作了,终于在第二周,我收到了面试通过的消息,并且开出的薪资达到了32万,几乎是当时我年薪的一倍了,我开心的不能自已,当即打电话告诉了我家人,然后规划何时入职何时离职....
我想说的是,机会可能随时都会来,在此之前需要一直努力学习,才能在机会来临时把握住,不要妄自菲薄
PS:进入Intel愉快的工作几年之后遇到了裁员,而后我进入了高通,也是我目前正在工作的地方,就我的感受来看,外企的福利待遇和工作环境真的很好,具体的我下期再讲