最后
最后,强调几点:
- 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
- 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
- 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。
面试答案
还有十几天就要毕业,面临着身份从学生到社畜的转变,未来的一切捉摸不定,但凡心中万千情绪,也只能「但行好事,莫问前程」。此篇文章记录我去年社招的一些历程。
本人背景:计算机本科大四,刚进大三时还是个没有实习、没有项目经历的小白,经过一年时间的刻意练习,最后在校招中拿到了一些大厂offer,标题中30k的offer已经拒掉了,有了更好的去处,只是用来举例。
作为阅读福利,我也把我的学习资料整理了一下,需要的小伙伴可【点击此处】领取
以下经验根据个人的经验来谈,有一定的局限性,仅供参考。
1.为什么不选择算法
计算机专业的就业方向很多,对于应届生来说,工种大概可以分为移动端、前端、后端、算法、运维、测试。
由于近年来ML和DL的快速发展,特别是16年AlphaGo以及视觉检测、自然语言处理方向的进展,人工智能方向成为了继大数据之后的又一个学术热点。
周围接触到的同学,大部分集中于算法和后端方向。我最开始就是准备深入后端方向,并且决定本科直接就业。但是我有两点纠结:
-
后端是否不如算法?
-
对于后端,本科学历是否适合职业发展预期?
-
本科生以算法作为工作目标难度太高,和字节跳动的面试官交流,目前字节AI Lab的成员组成是大部分硕博,以及少部分优秀的本科生(acm区域金作为参考)
-
算法需要的三点:实习、竞赛和paper,我都没有信心和诸多转专业的工科硕士抗衡
-
个人对于算法没有强烈兴趣,发展空间不明朗,行业未来搭上5G的车,可能会有比较大的想象空间,风险和收益并存。
2. 为什么选择Java后端
如果认定了后端,后端语言这么多,如何选择适合自己的方向?
业界有一种说法:『语言只是工具,数据结构和算法是解决问题的根本』。这种说法本身是没有错的,但是从普遍来看,本科生从有工作的想法到秋招,只有(或者不到)一年的时间,泛泛了解多个方向不如深入特定方向,更有助于求职。
后端主要的开发语言有Java、C++、Python、PHP、Go,PHP目前除了百度和腾讯部分部门之外,使用范围不广,不予讨论。另外,Golang作为高并发场景的常见支持,在云计算领域使用比较广泛。
互联网和其他资本市场没有本质区别,既然是市场,就存在供求关系。 对于算法这种供远远大于求的情况,就是买方市场,卖方(求职者)需要更好的产品(技能)来获得同等的价格。对于应届生来说,找到一个良好的买方市场,更加有利。
调研基于两个预设条件:
-
岗位数目越多,市场的需求越大。
-
高薪岗位越多,该方向的发展前景越大。
随着互联网从业人数越来越多,竞争也呈现白热化。科班学生不仅要和同专业同学竞争,也会感受到转专业同学(大部分是硕士)带来的压力。参考同系讲师的数据,我航15年时6系本科同学比较容易就能去BAT,到了19年BAT头条对于大部分同学不是想进就进了。
从宏观意义上来看招聘,企业需要找到适配岗位的员工,学生需要谋取职业生涯的第一份工作。对于学生来说,秋招和高考在本质上是相似的,都是一种选拔,需要证明自己的能力比别人更强。
在准备的时候,定量的标准往往更加具有说服力,『我守望先锋玩的很厉害』远远不如『我守望先锋全国天梯4000分』,『我学习Java花了很多时间』不如『我阅读了《Java核心思想》和《Effective Java》以及…,并且复现了书中的代码,在github仓库xxx』。
我是从2018.8月下旬(进入大三)开始准备,到找到工作总共花了一年的时间,基本上分为三个时期:
-
2018.8 - 2018.12 :基本素质培养
-
2019.1 - 2019.8 : 百度智能云实习
-
2019.7 - 2019.8 : 秋招提前批
整个秋招的核心思路 = 基础+实习+项目
1.基本素质
第一次认清自己的水平,是在大二下学期结束的暑假。当时投了百度暑期实习,毫无准备的前提下,只用了20分钟就挂在了一面。
面试惨跪之后,我分析了自己的处境,当时的我GPA排名40%,没有参加过ACM程序竞赛,没有实习经验,除了OO课程,没有写过"大型"项目。从编程能力上看,大一数据结构60分酱油飘过,算法课程也限于理论,只能说能够应付考试不挂科,Java只会语法,web框架更是没有项目经验。
这时候的我深刻意识到自己在编程方面还是个在新手村找不到北的green hand,记得刚上大一的时候,哪位神仙说我校混的差躺着也能去BAT?梦想很美好,现实很骨感。
相对于隔壁北邮,我航更加注重学生的深造(校内读研和出国留学),对于工作方面的指导甚少。我大部分的时间都是一个人准备,所以经常陷入迷茫orz,这期间主要的问题是:
-
选择什么方向? (前面已经对市场进行了就业分析)
-
要学习什么内容?(算法太高级了,玩玩可以,找工作水平不够)
-
要学到什么程度,才能找到实习/工作?
-
整个秋招的过程,就是我解决这三个问题的过程。
于是,首先我使用Hexo + Github.io 搭建了个人博客
博客有两个作用:
-
能够体系化自己的学习,方便复习
-
量化自己的学习成果,面试的时候,给面试官带来好印象
其次开始有针对性的训练自己的编程能力,
Java程序员的基本素质有:Java基础(语法+JVM+多线程),Spring框架(SSM/SpringBoot,进阶可以SpringCloud),算法能力(刷题)
2. BAT实习
找工作本身就是一个经验和需求矛盾的过程:
找实习,认准BAT TMD,其中BATT(头条)基本属于一个档;外企的话,ms/hulu/airbnb认可度也很高。
拿周围同学举例,即使是小厂开了一个月8、9k的实习补助,也不要因此放弃BAT的实习机会。
虽然近几年百度已经明显掉队于BAT,但是就我个人体验来看,外界对于百度的技术还是很认可的。对于实习来说,镀金的效果完全够用。【2020.5 update:目前应届不满一年没有晋升和普调资格,除非部门极好,否则不推荐转正】
在2019.1月,托研二直系学长的福,内推经过三面通过了百度智能云计算部的后端实习
到8月结束了实习,半年的实习时光对于工业届有了更深入的了解。
3. 秋招面试
离开baidu主要有两个原因:
-
工作内容不算满意:在baidu的工作语言主要是php,大厂目前使用php的很少,不利于职业长期发展;另外实习负责的模块也不算核心。
-
薪资不够预期:baidu本科白菜价15k*15,每个月的工资扣掉五险一金和税,只剩下11k,再加上北京动辄3、4k的房租,过于艰难。
因为花了接近一年时间准备,所以在提前批就结束了秋招,9月大部分企业刚开通秋招正式批通道前,我就歇了,真正准备校招的时间不足两个月。【2020.5 update: offer这种东西当然是越多越好,去年的我太佛系了,腾讯、微软、快手这些公司甚至没投简历,现在觉得去年还是naive】
AI四小龙面过了两家,都是sp | ssp,云从当时没听说所以没投,商汤提前批四道题A了三道解题报告,结果居然没有不给面试机会Excuse me?
写在最后
还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…
外链图片转存中…(img-S4gYilc5-1715237247159)]