一些感想和回忆
进入漫漫求职季,也没有耐心认认真真做完CLRS的习题了。如果有幸得入不错的IT企业的话,下半年我会认真将力所能及的习题和代码补上。否则恐怕只能先搁置一段时间了,我相信我自己是不会放弃这条路的。我自己的专业方向,linux嵌入式我还是有些兴趣的,可惜木有项目经验。现在还是尽量努力学习软件设计方向,今年硕士毕业后,我不会再呆在学校了。即使进不了好的IT企业,我也会尽我的能力去不断学习,争取向这个方向发展。
今天写网易策划的简历的时候,我确切的感受到自己人生的空白。大学以前,我并无什么志向。进了大学以后,自己的专业也不喜欢,大一大二还有些高中的精神,为了GPA还能努力一下,到了大三大四,很多课一点意思没有(自控、线控之类的,电拖之类的,强电相关的),渐渐也就蒙头消遣去了。及至大四,除了基本的C编程之类的什么都不会,不知道能找什么工作。再加上2009年经济危机,很多同学决定考研,我也随了大流。可惜我当年的精神状态实在是太幼稚,像一只鸵鸟一样将自己封闭在自己的世界里,对于学习毫无兴趣。大四那年的考研失利,根本就是在我计划之内,因为我那时候确实无法调整自己的心态去拿起课本。我打算第二年再认真准备,并且换专业到计算机系。
直到现在我仍然讨厌那时候懦弱的我自己,对于自己的人生仿佛第三者一样旁观不语。像是消耗自己生命般打发着弥足珍贵的时光,我似乎陷入了虚无主义,对于大部分事情毫无兴趣,只是盲目的玩着游戏,让自己不去想任何未来。这样,我不仅完全忘了这几年学过的哪些知识,而且身体状况也越来越不好,头发掉了很多,现在还有后遗症。另外,我还很对不起我的一个室友,他本来打算认真考研的。但是因为我的缘故,最后也完全和我们一起玩游戏去了,最后也没有考上。
考完研回到家,我用自己早已找好的借口说感觉自己考的不好——其实我知道肯定考不上。爸爸还安慰我说还可以再考,我心里很惭愧,决定大四下学期认真准备,准备换专业到计算机。
可惜,我性格的最大弱点就是很容易受周围影响。我记得有人说过软件公司每个人的努力程度不会超过人均值的2.5倍,那么对我来说,这个值应该下降到1.5。大四下学期本来就是最闲的一个学期,虽然有个毕业设计,但是本科论文又不查重,加上有师兄的论文作参考,随便抄抄基本就毫无压力的毕业了。我选的课题是用matlab对心电图做小波分析,这个方向其实还是很实用的,对应硕士的模式识别这个方向,和机器视觉也有一定程度的关系。托毕业设计的福,我会用matlab了(虽然现在很久没用也忘的差不多了,不过复习总比上手快)。可惜从3月到6月,我认真做毕业设计的时候不超过3个星期。其他时间——那些本来打算认真看书的时光——都在和几个朋友打游戏。是的,我又没有努力。
毕业后,我回到家中,开始正儿八经的复习准备考研。父亲这次用了很长的时间教育了我,我终于对自己心态的幼稚有所觉悟了。那时候的我完全没有目标,但是却明白自己讨厌的东西是什么。我明确地知道自己心里是绝对不愿意自己混一个毕业证,然后找一个研究所在里面养老的。我必须离开这个体制,我必须让自己的孩子不要再接受这种荼毒人生的教育方式,必须让她离开中国。所以我必须努力学习,努力出国。
我对于学习还是有些天赋的,毕竟在河南这个高考大省能脱颖而出是需要一些能力的。但是当我决意转到计算机系,开始查看计算机系的教材后,我发现自己落后太多了,编译原理、操作系统、数据结构、离散数学等等等等,都木有学过。半年的时间并不长,我的数学一向不好(这也是我一直很纠结成为工科生的原因之一吧),自认为没有那个天分能够在短短的时间内掌握这么多从来没有接触过的东西。所以最终我还是屈服了,选择了本专业,至少专业课只有自控和线控两门。
现在想起来,当初真不如破釜沉舟下定决心去考计算机(但是一旦失利恐怕后果也是难以承受的)。还算努力的复习以后顺利考取了华中科技大学,倒不是我特别喜欢华科,只是当时随着室友一块选的学校。现在看起来虽然有些儿戏,不过华科还是不错的学校,但是由于经验不足,我在这时又做了一个错误的决定。
昨天Amazon宣讲的时候,副总裁说了一句话我很认同:我们在人生的路口上,不要总想着能做出最好的决定,而一定要做出不要让将来后悔的决定。正确的决定只有智者才能每次都能看得清楚,但是不后悔的决定其实很简单:做你想要做的事情,遵从内心的选择。无论将来遇到多大的困难,这都是我自己选择的道路;无论有多少罪,我都自己背负。
一开始我就说了我想学计算机方向,那么我应该选的实质上就在做计算机方向工作的系统所,而不是现在自己十分讨厌的信息所。那么我为什么最终选择了这个所呢?很简单,我当时试图做出“最好的选择”。我对自己的能力并无自信——即使是现在,我也觉得自己太菜——所以对于选择系统所和计算机系的同学们抢工作这种结果并不是十分看好。而信息所名义上的方向——嵌入式系统开发——既能够继续认真学习软件设计,也能发挥一定程度的专业优势:我们还学过数电、模电和信号这些硬件相关的学科,嵌入式驱动开发更是以难度大竞争小而著称。所以最终我自作聪明地找了信息所。
虽然现在看来信息所无论选择哪个老师我现在必定会后悔,但是当时我还是义无返顾的作出了最差的选择。我前一个研究生导师,我不想提他的名字,是一个JP导师。(比较搞笑的是,他是我现在的导师推荐给我的。当时我盲目寻找信息所还没有招满学生的导师,被现在的导师推荐给此人。)没有经验的我被他忽悠的自以为留在那里可以学到不少东西(正好他手里有一个项目是ARM开发的),而且正适合我这种起点低的人(说到底,我的自卑心理一直影响我的各种选择)。没有收集足够的信息,我就匆匆签下了一年后被我又亲手毁掉的导师协议书。
在我上课的上半个学年内,我就察觉到一些问题。同在一个实验室的导师,对他的学生指导详尽,而我的JP导师则是对我不闻不问,任我没头没脑的自学C/C++。学长们后来直白地跟我说,不要指望导师指导,自学吧。我觉得很诧异,同在一个实验室,老师的风格差的太远了吧!一个学长见怪不怪,反而说那个导师指导的事无巨细,不利于学生自我思考。我当时就腹诽这要因材施教啊,如果学生水平已经有了,当然不用指导的太详细,如果像我这样什么都不会,你不指导我要导师做啥呢?
到了下学期,学长们纷纷毕业,我的JP导师只剩下我一个学生了。他也不指导我,我陪一个废物导师在那里继续消耗我所剩不多的青春?当然不可能,果断转导师(事详见另外一篇日志“空寂明灭幻虚无”)。转导师的时候我就想转到系统所了,但是课已经上完,如果要跨所的话必须在下学年继续补课,而且奖学金的参评资格取消。所以终究还是要在信息所里面挑。
说句实话,信息所里面还是有好导师的。但是要么是搞理论的,要么是某些军工类的(如今找工作开始,信息所都是苦逼)。鸡蛋里面挑鸡蛋,最后选择了现在的导师。签之前他就跟我说现在有个项目缺人搞PLC,愿不愿意学。我急于学习新的知识,就答应了,这个决定我现在也不后悔。在我看来,学习一门新的知识,只要它是实用的,有价值的,我个人不讨厌的,那么就是可以学的。虽然我现在找的工作基本都是软件研发方向,但是PLC程序设计有它自己的特点,我不介意掌握一门对自己有帮助的技术。
但是接下来就坑大了…学校lab的弊端最最突出的一点逐渐显露:效率之低简直令人发指,估计和国企有的一拼。PLC选型从4月到6月搞了三个月才搞定,先是用三菱,学了两个月居然又改用欧姆龙…运动控制平台是6月到货的,我7月学了一个月,在8月1号的时候完成了PLC程序的初步框架(这个版本有个极严重的错误,直到当年的11月才被修正)。接下来的事情非常无聊,我们做了连续4个月的实验。PLC程序写完后我用了5天左右写完了人机界面的程序,下面就是非常没有技术含量的各种实验,非常琐碎和无聊,我在这期间几乎没有学习任何新的知识(除了看完了MFC编程和windows程序设计,但是自己动手写的数量很少)。
后来和我合作的同学写完了上位机图像处理程序,我就试着写了串口通信部分,最后写完了,但是很可惜没用上。因为清洗机计划最终被证明不可行,项目失败。第一年年末,导师跟我说让我学习DSP,以此为内核完成一个智能相机。我答应了,学习了TMS6710的开发板,也写了一些玩具程序。到了第二年开春(研二下学期),智能相机计划被推迟,导师又让我接手一个师兄未完成的PCB板,我心里很不情愿,还是勉强答应了。
但是事实证明我的硬件学的很糟糕,再一边学习QT一边学习protel的过程中,我发现自己对于protel本身掌握的还算快,但是对于各种EMC完全一窍不通——毕竟我们本科根本没有学习高速电路设计。EMC方向是一个大坑,不认真学习和实践一年是不可能有长足进步的。我既然决意学习软件设计,对于这个完全无意涉足——这世上或许存在软件硬件都精通的人,但是我现在不可能成为这种人。况且我学习的方向逐渐高层化,对于底层程序设计的复杂在没有好的项目技术总监和编码规范的前提下也无意深入研究——这样容易长歪。
再后来lab里面来了一个保送生,他替我完成了这项任务,我在此表示感激。此事过后,已是6月有余,开始写小论文了。
眼瞅着要找工作,我的计算机知识还很匮乏,更不说项目经验严重欠缺了。8月到现在,我一直忙着看各种书,每天写一些代码和小的题目训练一下。但是自己的水平自己心里最清楚,没有参加好的项目,没有系统的训练,也没有去实习。如今和计算机抢工作,拿到好offer的几率恐怕不是很大。如今我也是尽人事安天命,虽然尽量投了技术研发的职位,但是也开始考虑测试和技术支持了。
这一步,我一定不能后悔。