2018秋招回顾&总结(java&android&测开)
序言
我的秋招起于7月初,终于9月中旬,拿到的offer如下:vipkid提前批测试开发(感谢第一个给我发offer的公司),海康威视java研发,oppo colorOs,华为优招安卓研发,百度测试开发,瓜子二手车java研发。
这一路有过心酸,有过自我怀疑,有过焦虑,感觉每个找工作的人都会有这么一个心理过程,大概是一开始的初生牛犊不怕虎,连连受挫的怀疑人生,再到offer选择的纠结。
比起我的同学我还是太渣了,大神们在提前批收割offer的时候,我还是一个连hashmap的底层都说不利索的人,身边的朋友接连面试的时候,我连笔试都做不好,9月份秋招战役打响之后,连面试都寥寥无几,Spring只能说出AOP和IOC。
到现在都记得贝壳一面挂的那个星期天,我一个人在博物馆迷茫的四处走,想哭都哭不出来的委屈,跟二姐发微信的时候手都是颤抖的,我记得那天的阳光很大,但是我的手和心都是冷的,那一刻的我不知道我会不会没有工作了,那个星期真的是我最凄惨的一个星期,面啥挂啥,还都是一面挂,远景,去哪,途牛,用友,大疆终面,贝壳的六连挂真的把我打击到怀疑人生。贝壳面试官问我要不要转产品的时候我真的都有点崩溃了,当时想我可能技术真的很差劲吧。
感谢那段时间一直陪着我的二姐,这是一个很毒舌的女人,她说话总是一阵见血,那天的我,决定咬牙放弃一周的笔面试,沉下心去学习,我告诉自己,这个年纪一定要有壮士断腕的勇气。
那一个星期大概是我秋招的转折点,在这周之后面试就顺利了很多。拿到的offer除了vipkid和华为都是这周之后拿到的(也没几个。。。2333333)。
找工作其实真的心态很重要,相信自己,坚持努力,天道酬勤。
准备工作
我找工作的时候一开始有点杂,大概是什么都想做的那种,觉得测开可以培养一个人的全面思考的思维,java又是本身学过的东西,还想做android觉得很酷,然后就三个都投,一开始还投了一家大数据,感谢他把我简历刷了,不然我真的不知道面试怎么尬聊。
测开
测开我就推荐一本书《软件测试的艺术》
因为只看过这本,233333。
java研发
首先呢,是一定要有项目经验的,我就是吃亏在没有项目经验上了,所以一开始面试的时候呢,就一直是处于“背书”的状态,其实如果书背的好的话,也是可以的,毕竟校招,面试官对动手能力的要求也不是很高,基础好的话好培养么。
项目经验的话我是这样的,看慕课网,这个真的是一个超级赞的网站,基础和项目都有,可以跟着敲一下代码,然后呢,我就是读源码(这个吧,正好当时要做实验,我就每天读实验框架的源代码)。
其实比较推荐读github上star数多的项目源码,然后自己给自己划定一个需求自己实现。(这些我都没做到,我觉得能做到的应该是大佬sp级别的了)
基础的话比较推荐下面的书目。
《java编程思想》《java核心技术》(这俩看一本就行)
《深入理解java虚拟机》(重点是GC,内存模型,双亲委派机制)
《java程序员面试宝典》(这本很重要,最好能背下来,就是看着目录就能说出内容的那种熟练度)
《剑指offer》(面试的手撕代码半数以上都缘于这本书啊)
数据库和高并发是属于扩展加分项。SQL一定要熟练。(但是下面这两本书我都没有怎么看,只是推荐了经典书目)
《高性能MySQL》《SQL技术内幕》《redis设计与实现》
《java并发实战》
框架的话我觉得把《Spring源码解读》读完就好了,重点理解AOP和IOC就好了,spring这个框架其实大概算是java项目的典范了。
网络方面的话,我是看天勤的考研书,我真的觉得那本书讲的挺好的,当然,也有人推荐图解系列(日本)这就见仁见智了,内容都差不多。
设计模式的话,重点是单例模式,用在哪里,三种线程安全的写法。其他模式了解定义和如何使用就好了。
如果了解微服务器,MQ,Dubbo,区块链的话更好了,加分项。
安卓
安卓大概就是在java研发的基础上加两本书
《第一行代码》《android权威指南》
面经
其实很佩服那些能把面经写出来的人,我一开始还会记自己面试都问到了什么,后来面的太多,要提升的东西太多了,都没有时间记下来,就把常问的和印象深刻的写下来吧给大家做参考。
测开
1.为什么选择做测试开发?
2.测试各种东西(水,电梯,冰箱,程序balabala)
3.在项目中都进行了什么测试?
4.测试方法的分类
5.情商类:出现bug如何与程序员沟通之类
java研发
1.基础类。《java程序员面试宝典》上的问题,就不赘述了
2.各种集合类。hashmap源码(问的最多) 和hashtable的区别
arraylist和linkedlist的区别
还有各种线程安全比较和扩容机制的对比
3.如何使用框架(ssh,spring,mybatis,springmvc)?
4.spring 的AOP和IOC如何实现?
5.如何实现并发?线程的实现方式?并发解决的问题?各种锁的问题
6.数据库:SQL语句,索引,引擎,并发级别和可能出现的问题
7.jvm:GC,内存模型,内存分配机制
8.网络:tcp三次握手四次挥手,和udp的区别,http的头部(get和post的区别),输入url之后会出现的过程,和https的区别,cookie和session
安卓
1.四大组件(生命周期)
2.安卓虚拟机
3.linux相关知识
4.矢量图和位图以及各种单位
5.view的绘制相关问题
6.显式和隐式intent
7.handler机制
8.网络/数据以及开源框架
9.动画相关
所有以上,都会手撕代码。
emmm,面大疆终面的时候,终面面试官问我,怎么编写程序节能(不是时间复杂度也不是空间复杂度,节约电能,emmmm),问的我一脸懵逼,大疆其实挂我挂的我挺忧伤的,就是感觉我俩鸡同鸭讲,最想去的公司把我挂了,而且是我认识的终面全过了的情况下,心塞啊。
尾声
秋招就算结束了,给自己一个总结,然后彻底翻篇。
上面写的如果想起来之后会回来补充的,祝所有看到这篇文章的人都能找到心仪的工作,前程似锦~!