入坑之路
作为一名传统工科的硕士,身边同学的就业选择大多都是房地产和设计院,而我却作死选择互联网的技术岗。从去年9月份开始自学到5月份拿到了恒生开发岗的暑期实习offer,结束了3月份以来痛苦的找实习的历程。一路走来,都是坎坷与艰辛。
自学历程
从18年9月份开始接触到python,看完了黑马程序的python基础教学视频和一些相关的基础书籍之后,转而开始学C语言。
过了一遍谭浩强的C语言教材之后,开始在牛客网刷算法题。时间转眼来到了11月份,考虑到自己是非科班,平时也没有相关的项目经历,面试的时候没有拿的出手的经历,于是报名了18年12月份的PAT甲级的考试。
从报完名到考试只剩一个月的时间,期间入手了一本《算法笔记》,这本书对于我这样的小白来说还是很不错的,书中涵盖了数据结构和一些基础算法知识。这一个月的时间都是在看书和刷题中度过的,期间也学会了用C++来刷题但是只限于STL库,关于C++的面向对象的知识没有学习过,因为C++自带的STL库对刷题来说,还是很方便的。
考完PAT之后,结束了之前一个月的紧张备考状态,刷题也刷了累了,于是开始学习JAVA了,毕竟了解了各大公司对JAVA的需求还是最大的。有过Python的面向对象的基础的和C语言基础,JAVA的学习过程的轻松多了,走马观花的看完了java的基础书籍《第一行代码》,也算是对JAVA有了一个初步的认知。
面试历程
互联网的实习开始的时间都比较早,过完元宵节,2月末来到学校之后,bat的一些暑期实习提前批已经开始启动了。通过内推投了阿里和腾讯。内推反应还是挺快的,投完马上就安排面试了,阿里电面感觉问题都回答出来了,不知道为什么就挂了。其实阿里的电话面试感觉问的东西还是比较基础的,指针数组和数组指针的区别、C++的内存内存管理之类的。不知道是不是因为我不是科班的原因,所以问的比较浅。关于语言的话,可以选C++或者JAVA,我选的C++。基础问题结束之后就是手撕代码了,具体的题目不太记得了,题目都感觉挺简单的,比平时刷的题目要简单。当时只是写了大致思路,关于细节部分没有过多思考,因为怕耽误太长时间。所以现在想想可能是因为没有注重细节,所以可能才挂的。
腾讯前后一共电面了三次,每次面挂都会有人把简历捞起来。第一次是视频面试的,自我介绍完之后就直接撕代码。寻找二叉树两个节点的最近公共父节点,当时思考了10分钟没啥思路,感觉很复杂,平时关于二叉树的题目练习的比较少。然后就直接跟面试官说没啥思路,想着快点做下一题,天真的我还以为还会有下一题,谁想到直接就问我有啥想问了没……就这样凉了……心塞。后面又陆续被腾讯的其他部门捞起来面试,有一个听了自我介绍之后就直接说不合适。还有一个问了一些常用排序算法的复杂度,C++的深拷贝和浅拷贝,这些问题都不会,直接凉凉。
阿里和腾讯的提前批的面试虽然都失败了,但是也知道了自己的不足之处。后来又投了拼多多的提前批,通过了笔试之后,3月23号现场面试。有了之前的经历,特意把C++面向对象的一些知识恶补了一下。技术面问的问题我之前都在网上看过,有所准备,感觉回答的还可以,以为会通过,没想到还是凉了。后来又投了拼多多的正式批,同样是通过笔试没过面试,面试的时候手撕代码通过了,又问了设计模式,没回答出来,可能因为这个挂的吧。
这段时间打击挺大的,越找心里越没谱,感觉自己学的太水了,项目经历又为零,没有实际的开发经验,担心自己找不到实习。没办法,既然选择了,那就只有坚持,针对面试出现的问题,继续各种找视频看书刷题。
后来又投了字节跳动,网易、蘑菇街等各大互联网公司,网易蘑菇街直接表刷,字节跳动笔试没过,各种凉,凉到怀疑人生。
5月份到了,各大互联网公司的实习招聘都基本结束了,自己可能凉了,去互联网的计划可能要破灭了。直到接到了恒生的笔试和宣讲会通知,了解了恒生的业务是互联网金融,公司规模也挺大的,于是就趁着宣讲会开始的前几天补了一下关于数据库的知识,跟金融相关的,肯定离不开数据库,果不其然,笔试的时候考了一些基础的增删改查相关的sql语句。顺利通过了笔试之后便是面试了,恒生的面试形式第一次见,2个面试官,一次进去一组一起面,我那组有六个人,每个人轮着自我介绍,介绍完轮着讲自己的项目,跟我一组的都有项目经历,就我没有。最后面试官问了一个统一的问题,为什么要来恒生,吹完一波之后,然后就到了提问环节。整个面试持续了2个小时。两天后收到了offer,超级开心,现在想想,可能是因为准备的比较充分,还有可能是因为跟我一组的都不会数据库,就我会数据库吧,临时抱佛脚,学了三天的数据库居然这么给力,帮我拿到了第一份暑期实习offer。
总结
从18年9月份开始自学,到5月份拿到第一份offer,一路走来,感觉自己走了不少弯路。首先学的东西都只是停留在表面,其实关于语言,只要能够学通一门C++或者JAVA就可以了,真的没必要贪多。其次就是没有必要一直刷题,适量就可以了,还是应该把更多的时间放在学习关于开发的框架和一些实际应用层面的东西上面。还好最后拿到了offer,但是学习之路才刚刚开始,之前所有的学习都是为了工作所做的准备。
