首页 > 秋招我是如何七进五的
头像
Yellowei
编辑于 2020-08-25 14:30
+ 关注

秋招我是如何七进五的

秋招我是如何七进五的

想了很多天想要以怎样的方式来分享些我的秋招经验,但是每次有了想写些什么的冲动的时候,又觉得自己实在是才疏学浅,写不出什么好的东西或者没有这个能力去分享些自己的经历,所以打算单纯的以此篇文章记录我的整个秋招过程。

投了battmd和快手,有幸拿到了滴滴字节快手的意向书了,而百度也已经三面完在等发意向了(吐槽下百度真的慢 气鼓鼓),阿里昨天也三面结束了约了四面了,希望会有个好结果!

一、背景

1.1 菜鸡的开始

与很多人一样,我来自一个双非一本学校,在学校中规中矩的上课,参加着各种社团、学生会,参加着各种各样的比赛,想着这就是我的大学生活,稍微好一点的是在学校的基础课程的学习中还算是比较认真,这也为我后来的飞速成长提供了一定的基础,众所周知,大学的课程比较偏入门化基础化,而我本身在学校的日子虽然不是每天上课睡觉下课玩游戏,也算是比较积极向上认真对待,会主动去参加些比赛,去接触些新的东西和知识,但是也没有想过往哪方面去深度研究过,直到今年的三月决定找工作,还担心自己技术不行所以投了产品经理,但是很快我也意识到了产品经理我更加不行,我好像更喜欢做技术有关的事情,于是在四月份的时候我打算放弃春招了(因为我当时找春招也的确比较晚了,大家都快结束了),打算沉下来去学习技术,准备来年的秋招。

1.2 菜鸡的机遇

转回技术之后,突然又迷茫该做什么,前端、后台还是客户端,那个时候的我觉得秋招能够有一份差不多的offer,比如海康对于当时的我都觉得是很难进去的公司,从一开始看到很多人做后台,想着大家都在做后台那我也做后台吧,看了几天springboot的视频,什么都没学到只学会了发呆,我又陷入了沉思,到底哪里是我的出路,后来学校有做前端的同学被阿里录取了,说不羡慕是假的,就和他聊了聊前端大概需要学什么,该怎么学习,学了一段时间前端,始终觉得少了点什么,然后这个时候看到群里有学长问有没有做安卓的,突然像是什么被唤醒了,自己大二好歹是跟着老师学过一学期安卓的人,为什么不做安卓呢,然后发挥了自己厚脸皮的本领去问学长该往哪方面学习以及该有怎样的一个学习目标,学长很不错,很有耐心的告诉了我们学习安卓的每个阶段该掌握什么知识,于是每天的学习开始变得充实起来,白天七点起来学习安卓,晚上要求自己刷三道力扣然后玩玩手机大概十二点入睡,那段时间过的很充实,就像一学期浑浑噩噩的过了,到了期末老师划了重点,突然你就像开窍一样,之前学了一期都学不会的东西在期末突然都学会了。记得当时学长和我刚接触的时候我甚至搞不清楚jvm,后来这样学习了一段时间之后,能够很明显的感觉到了自己的飞跃提升,我想说的是并不是说你在大学啥都不学一下子就可以提升,前提是有尚且不错的基础,所以如果有人抱着学校上课没用,天天睡睡觉,期末老师画画重点反正也能过,自己也不主动去学的想法的话,我想说如果地基都没有又怎么造房子呢。

在之后学长和周围小伙伴的鼓励下投了滴滴的实习,在一面的时候几乎面试官问什么我就能够接什么,那个时候的我知道了,我真的比以前进步了太多了,起码在理论这一块是有了些成长,在这个过程中我还发现了周围一些同学的问题,在我周围,不缺少比我有资质有基础的同学,但是在这个过程中他们却很少坚持下来,或者说他们缺少了一些勇气。他们就跟我开始一样觉得海康可能都是奢望。

1.3 在滴滴的成长

来到滴滴之后,部门是新成立的部门,安卓团队就我和我的导师,而iOS和小程序都是只有一个人的团队。没有太多的技术文档,没有前人指路,甚至连个分享的小伙伴都木有,跟导师说过最多的话就是什么时候给我找个小伙伴啊,导师总说小伙伴在路上了,而我现在要走了,也没等来和我一样的实习生小伙伴。在一开始的时候没有文档没人指导,我们负责的模块的代码我一开始都找不到,我看了别人的模块看了一两天,直到后来终于找到了我们的模块,然后从首页开始逐渐搭建了一个自己的模块体系,也算是原有老的模块的代码有了一个认识,但是不妙的是我刚熟悉了老代码,这一块的东西就全部要被抛弃,“对不起,传统公交被砍掉了,现在我们要做信息公交。”,人手不足,我被迫去造垃圾代码了,一下子把首页的两个入口的所有子模块都交给了我,我内心:我是谁我在哪?但是既然交给了我我就一定要完成,也不能拖团队后退呀,每天在如果项目因为我delay了的担忧下一点点的理清自己的思路,那段时间每天打车回到家已经十二点甚至一点了,虽然很累但是也很充实,记得有几次回到家坐在床上突然半夜起来发现自己灯也没关澡也没洗的已经睡着了。在这次开发中起码对我负责的所有模块,我能够很清楚的跟别人说清楚我的思路,在后续的几个版本迭代中,我涉及的模块越来越多,甚至到后来,我已经能够清楚的跟后来的社招同事讲清楚每个功能对应哪一段代码了。

在这里,同事对我十分照顾,实习时的一面面试官每次在我遇到问题的时候都会耐心的帮我解答,甚至给我发了十多本书,每次见到我都会问我最近学习了没看书了没,我来考考你,我也是有什么事都会跟他一吐为快,真是一个很棒的人,而我旁边的小程序同事,是能够两个人从乐高、奶茶聊到技术的人,对待生活的乐观态度也一直是我学习的榜样,即使整个小程序团队到现在还是几乎只有他一个人,即使很多时候他做了一个团队所做的事,但是也没见他说一句脏话或者一直愁眉苦脸过。而我的导师在我心里一直就是一个完美老师,有着很棒的技术,虽然仅有一次他看过我的垃圾代码,但是也在这一次里体会到了我们之间的差距,也暗暗告诉自己要向他学习,在生活中,对待自己的老婆孩子温柔有担当,喜欢健身热爱生活,还有着有趣的灵魂,记得有一次在看程序员小灰的一个动画故事,他看了一眼就知道我在看什么,真是一点代沟都没有呢。其他的同事也对我很好,有吃的会跟我分享,有技术上的问题会给我耐心解答,甚至在后来我秋招的过程中,也是他们一直听我分享我的每次面试经历并且告诉我该在哪一块上有改进。

二、秋招浅谈

1.1 扎实的基础

感觉这是被无数前人说的不说的的一句话,可是很多人恰恰连这一点都没有,他们使用了很多高大上的框架,使用了很多看起来高级的技术,看了很多源码,可是当你问起他,java的基本类型是什么?可能会答得磕磕绊绊,在面试的过程中我问的最多的问题就是请问你们公司对校招生会有一个怎样的期许或者怎样的校招生才是你们想要的?听到最多的答案是我们首先想要这个人有着扎实的基础,其次才是项目经验,有没有项目经验不是那么重要,毕竟在以后的时间里是可以积攒的。作为安卓开发这个岗位,我个人觉得需要掌握的基础如下:

一、Android基础

1. Activity

Activity的四大启动模式,以及应用场景?

Activity中onStart和onResume的区别?onPause和onStop的区别?

2. 屏幕适配

# 平时如何有使用屏幕适配吗?原理是什么呢?

3. Android消息机制

# Android消息机制介绍?

# Looper在主线程中死循环为什么没有导致界面的卡死?

# IdleHandler介绍?

4. View事件分发机制和View绘制原理

为什么UI更新要放在主线程中而不是子线程?

5. Bitmap

# Bitmap的内存计算方式?

# Bitmap的高效加载?

二、Android进阶

1. Binder

# Binder的介绍?与其他IPC方式的优缺点?

# Binder的通信过程?Binder的原理?

2. 序列化

# Android有哪些序列化方式?

3. Framework

Zygote孕育进程过程?

# App的启动过程?

# Activity启动过程跟Window的关系?

# Activity、Window、ViewRoot和DecorView之间的关系?

4. 性能优化

# 平时做了哪些性能优化?

三、Java基础

1. Object

# equals和==的区别?equals和hashcode的关系?

#object有哪些公用方法?

2. String

# String、StringBuffer和StringBuilder的区别?

#String为什么是final的?

3. 面向对象的特性

# Java中抽象类和接口的特点?

4. 集合

5. 泛型

# 说一下对泛型的理解?

# 什么是类型擦除?

6. 反射

# 动态代理和静态代理

7.static

#Static class与non static class的区别

8.异常

#异常的结构,运行时异常和非运行时异常

四、Java并发

1. 线程

# 线程的状态有哪些?。。。。。后面还有一系列常见问题

2. 线程池

3.

# 死锁触发的四大条件?

#在java中怎么保证多线程的安全?

# synchronized关键字的使用?synchronized的参数放入对象和Class有什么区别?

# synchronized的原理?

# synchronized和Lock的区别?

。。。。

4. 线程间通信

# notify和notifyAll方法的区别?

5. 多线程间的特性

# 多线程间的有序性、可见性和原子性是什么意思?

五、Jvm

1. Java内存模型

# Jvm内存区域是如何划分的?

2. GC机制

# 如何判断对象可回收?

# GC的常用算法?

# 说一下四种引用以及他们的区别?

3. 类加载

# 类加载的过程?

# 类加载的机制,以及为什么要这样设计?

六、网络

1. HTTP和HTTPS

# HTTP是哪一层的协议,常见的HTTP状态码有哪些,分别代表什么意思?

# HTTP 1.1 和HTTP 2有什么区别?

# HTTP和HTTPS有什么区别?

# HTTPS传输过程中是如何处理进行加密的?为什么有对称加密的情况下仍然需要进行非对称加密?

2. TCP相关

# TCP的三次握手过程,为什么需要三次,而不是两次或者四次?

。。。。。几乎大家的面经也比较常见,但是面试官想听的往往不是说背的答案,而是你看完答案消化后的一个自己的理解

七、设计模式

单例模式(很重要,注意几种单例的写法,以及一些细节,为什么要这样写之类的)

工厂模式

。。。。

八、MVP、MVC、MVVM

大概的一个内容就如上面所列的,虽然内容看起来不多,但是可以衍生的问题是很多的,而且面试官在问这些问题的时候不是想听你背答案,他想听的是你自己的一个理解和思考,比如说你知道单例模式怎么写,这个时候我问你为什么要加volatile关键字呢?静态内部类一定是安全的吗?这些都是需要我们自己去深度理解的,而不是看看面经而不去深究。

其次如果有着还算不错的项目和实习经验也是加分项,这个项目不是说跟着视频或者其他的一些学习资料敲一遍就行了,应该在做项目的过程中加入自己的思考,项目背景是什么,技术路线是什么等一系列的思考,而不是敲一遍就完事了。机器能做的事为什么需要人来做,恰恰是人有着自己的思维,可以去思考去变通,去创造自己想做的东西。

1.2 尝试的勇气

我周围很多同学都缺少了一种尝试,我不知道是温水煮青蛙的心态,还是他们真的不着急,很多人都不愿意跳出自己的舒适圈,还没有尝试过就觉得自己不行,就像当初的自己也没想过有一天会进大厂更加没想过秋招会如此顺利,我记得当初知道本部门没有hc之后,每天都焦虑的早上六七点醒了,想着要是秋招找不到跟滴滴一样的公司了该怎么办,但是焦虑是解决不了事情的,还是得有所尝试,在之后我投了字节的提前批,尽管挂了,但是在面试的过程中也了解了自己相比之前有所进步,自己不是之前我自认为的那个很菜的我了,虚心的和面试官请教了自己要在哪方面努力,然后沉下来去学习,与其焦虑,不如踏出自己的舒适圈和外面的人多交谈下。

1.3 面试总结和技巧

面试的一个总结我觉得是一件很重要的事情,对于我来说,每次面试都是一次学习的过程,都是一次查漏补缺的机会,而且在和面试官的交谈中,他们也会给你一些不错的建议,甚至你能够在他们身上看到榜样的光芒,在每次面试完之后除了和周围的人讨论下面试的一些小趣事,还会对刚才的面试做一个回顾,自己没回答好的题没回答上的题目赶紧去记录下来,然后进行一个学习。

除此之外,在面试的时候要保持自信和乐观的心态,和你交谈的人可能也只大你几岁,可能甚至是你最后的同事,虽然在这一点上我也没有完全做好,每次面试前都会跟朋友吐槽好紧张啊,但是奇怪的是一旦进入面试状态,就会对答如流,可能这一点主要还是因为自己的知识点掌握到位,不过在面试的过程中我也出现过有些问题不知道的情况,这个时候不要慌张,面试官并不会因为你的一点点问题抛弃你。

image.png

1.4 运气和心态

我的秋招之路的确有很多运气成分在里面,一家家的流程快速走完,和每个面试官都能够像聊天一样,到最后都是哈哈哈哈哈笑到不行的那种,但是担心和紧张也不是没有的,这个时候调整心态是很重要的,记得最开始的时候美团和腾讯两家接连挂,滴滴也没有出结果,就感觉一切都回到了原地一样,当时走在去西二旗地铁站的路上,下着雨看着周围来来往往的年轻人,想想大家都这么拼,为什么我要畏惧,既然找到了自己的不足,为什么不去克服这些不足呢!说句俗气的话,你笑对人生,人生也会笑对你啊。

在秋招中还有一点就是要抱着学习的心态,虚心的把每次面试当作一次学习的机会,而不是认为自己在大厂工作或者有着这样牛逼的背景就觉得自己有多厉害了,人外有人天外有天的话从小听到大了,比自己厉害的人有很多,沉下来去虚心的进行平等的交流也是一件很重要的事!

全部评论

(0) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐