流水账
理解完链表以后,队列和栈就很好理解了,自己也能敲一敲了,当时觉得自己可以写一写程序了,满足。想着该往arm和linux上发展了啊,一块arm开发板几百块钱了,还不知道能不能坚持下来学习,算了,先学成本低一点的吧,学学linux吧。于是自己跟着视频装了个虚拟机,撸了几个简单的命令,能日常操作一下了,觉得电视上的黑客都是这样操作的,特别牛逼。但是不能光会用吧,得学的深入一点,于是去图书馆开始借书了,在图书馆找书,但是又不懂到底该看哪方面的书,于是看着封面上写着linux几个字的就来一本,当时抱了一大摞回来,最后从里面选了一本linux系统编程相关的书开始看了,为什么选它呢,因为它里面的程序都是c语言,我还能看懂一点点。于是,在我还没有进程的概念的时候,我开始学fork,管它进程是什么,不就是一个有特殊功能的函数吗,直接调用就好了啊,然后一边看一边实现书上的demo,把系统编程的知识看了个大概。当时还没发现我已经离arm越来越远了。
在学系统编程的时候我发现了知乎,这个带我入坑的东西。因为学系统编程的过程中我感觉到很迷茫,不知道接下来要学些什么东西,就会在百度,贴吧搜一些找工作的经验(当时还不知道牛客),搜着搜着就搜到了一个培训班的学习路线图,是c++开发工程师的技能树的那种形式,就先让你学c语言,数据结构,然后学c++,再学linux,系统编程,网络编程这些。我一看,这不对啊,这上面很多不都是我已经学过的东西吗,于是那晚我失眠了,开始考虑到底要走什么方向,当初本来也只是看着嵌入式系统的高薪来的,对嵌入式也不是真的有兴趣,现在学c++前景更好,还好玩,为什么不呢!就这样,在那个夜晚,伴随着室友的呼噜声,我决定做c++后台开发了。这次我学聪明了,得先做好规划,不能走一步看一步,得知道c++后台开发需要学什么,别又跑偏了。然后我发现了牛客,牛客上面什么都有。c++,操作系统,计算机网络,数据结构与算法,数据库。大佬们都说有这五项基础就够了。于是我开始跟着慕课网的视频撸c++,但是视频太花时间了,等我撸完视频发现很多细节又忘了,像张无忌学武功一样,学完都忘了,但是好歹是对c++有个大致的映像了吧。接着是数据结构和算法,跟着大佬们的建议,刷题呗,我最开始只能刷刷那种a+b的题,刷完还觉得特有成就感,但是一个网站上就那几个入门题啊,刷完了就不得不刷刷链表这些了,硬着头皮刷,在lintcode上刷了几十道吧,感觉自己对数据结构的理解就更深刻一些了。在看操作系统的书的时候,重点就看了进程线程这些东西,因为有之前的linux系统编程的基础这些看起来比较轻松,其它章节相比起来就有些看不懂。计算机网络看的时候就觉得很有意思(主要是应用层和传输层,物理层数据链路层这种我都没看),结合着网络编程一起看的,还能写一些小demo,在自己的虚拟机上开两个终端,一个做客户端一个做服务端,然后通信,感觉特别牛逼。基础方面大概就准备了这些吧,数据库我觉得比较枯燥,所有到现在为止只会一些select,from这些,期间其实看了很多书,但是很少有完完整整的看完一本的,每次去图书馆都是背一书包书回来,然后一个方面的书会有好几本,比如c++有xx天精通c++这种国产书,也有c++primer这种经典,然后我就会交叉着看,方便自己理解。对于那些经典书确实写的很好,但是不是所有的都适合自己。反正我是挑自己喜欢的部分看吧。
差不多快过年的时候吧,我了解到春招马上要开始了,然后开始准备复习,期间看网上很多做http服务器的,我也写了个简单的http服务器,不过写的很简单,所以项目很少被问到。然后就是刷剑指offer,复习基础知识。寒假过的很快,因为过年那几天天天打麻将,斗地主。快乐的日子总是很短暂的。开学之后,我开始疯狂投简历,当时心里很虚,因为是非科班,简历上面又什么东西都没有,像挤牙膏一样挤了几天才挤出来一份简陋的简历,想着能有个公司要我就很满足了,所以不管大公司小公司,内推网申,投了大概30家吧。当时以为小公司会好进一点,后来发现小公司都gg了,大公司至少还有笔试机会。当时投完简历之后,睡觉手机都不敢静音,生怕漏接电话,然后过了两个星期一个电话都没有,那几天感觉都有点绝望了。后来富途来我们学校招聘,线下笔试第二天直接面试,当时还问了一个有点难的算法题,我也不知道是怎么了居然做出来了,然后就过了。富途的面试给了我一些信心,至少有个地方可以去了。再之后就接到了链家的面试通知,去北京现场面的,差一点点就过了,当时很遗憾,不过也在这个过程中发现了自己的一些不足,然后发现大公司(当时觉得链家已经非常好了,如果能去就特别满足)的面试也没那么难,好好准备一下还是很有希望的,那时候虽然链家的面试挂了,但是心情还是很好,并且跟着面试官的建议去看了点nginx。连着两场面试让我有点飘了,我觉得面试好像不难。接着两个星期我参加了七八场笔试,一个面试通知都没有,心情又跌到了谷底,偷偷安慰自己能去富途也挺好的。然后过了一个清明节,好好休息了几天,调整了一下心态,突然就收到了360企业安全,携程,京东,招行卡中心的面试通知,就像坐过山车一样。然后360企业安全一个上午面完了三面,感觉挺水的。接着去了武汉,住了一个星期,因为携程,招行卡中心,京东都在武汉面试。招行卡中心和之后面的华为一样,都是玄学,都挂了。携程面的感觉挺好的,等了好久之后挂了。从武汉回来之后就每天等着京东的offer,当时觉得差不多该结束春招混吃等死了(结果等到今天京东offer还没来)。过了几天接到腾讯的面试通知,腾讯诶,我最想去的公司诶,当时都没想着能过,只想先去试试水吧,就当为秋招做准备了。结果一面被虐了,每个问题都深入底层问到我说不会为止,面完查状态,意外的通过了。等了三天才给我约二面,那天原计划是早上腾讯二面,中午奇虎360面试,下午去哪儿面试的。结果腾讯二面完面试官让我等着直接给我安排hr面,我当然不敢拒绝啊,这一等就等到了下午,两三点才面完hr。360直接鸽了。然后赶着去了去哪儿那里,去了之后发现前面排了好多人,等了一个小时发现没面几个,加上那天感觉很累,就放弃了去哪儿的面试机会了。不过比较意外的是360又帮我约了第二天的面试。360一面的时候我跟面试官提了一下我看过一点nginx,然后他开始和我讨论nginx,顺便说他没看过,所以我当然是瞎吹一波啦,然后我们大概讨论了二十分钟nginx吧,后面他又问了我图的最短路径我没答上来,还是让我过了,完了二面面试官还跟我说一面面试官对我评价很高哈哈哈。
面完360春招基本上就结束了。感觉找实习的过程真是太累了,估计秋招会更累。等到今天,京东和360还在池子里,腾讯昨天打完电话,不过现在还没收到邮件。春招的结果已经比我想象中好太多了,也发现了自己的一些不足的地方。现在开始收拾心情为秋招做准备了,春招的这两个月都没有好好学习。这两天在看linux内核设计与实现,发现有些操作系统底层的问题在里面可以得到解答,秋招又可以和面试官吹一吹了。再之后的计划大概是补一补数据库的知识,然后深入的看一下网络,看一点nginx源码,再就是刷题吧。