首页 存档 技术 查看内容

阿里巴巴、美团等公司在 Java 类校招中有什么要求?

2018-3-30 13:00 |来自: 互联网 430 0

摘要: 文 |张育博 来源 |知乎 我知道的国内技术栈以Java为主的公司是美团和阿里,百度和腾讯是C 。 今年拿到了美团的offer,现在在美团实习。从找工作到现在对这些大概有了一点点体会,来谈谈自己的想法。简单说下我的经 ...



文 |张育博

来源 |知乎


我知道的国内技术栈以Java为主的公司是美团和阿里,百度和腾讯是C 。


今年拿到了美团的offer,现在在美团实习。从找工作到现在对这些大概有了一点点体会,来谈谈自己的想法。
简单说下我的经历,我就是个普通的本科生。暑假什么都没干,开学申请支教一直到9月底才参加校招。当时大部分牛逼的互联网公司笔试都结束了,我只参加了百度和美团的笔试,感觉很差,因为没复习很多东西都不会。到后面面试的时候我的简历上是没有项目的!

校招看重基础,就是语言掌握如何,算法题做的怎么样,计算机网络的基础(TCP三次握手,和UDP区别,HTTP协议),后台开发的话还会问些数据库的东西。有项目的话最好,没有的话本科生应该也可以吧(我就没有项目)

必备技能:
1.Java基础(JavaSE):多线程(这个必考,美团3次技术面两次问到了多线程),String,集合(HashTable和HashMap区别,迭代器,快速失败等等)…… 网上应该能搜到很多,牛客网上有一个Java面试的120个知识点,感觉很全面
推荐书籍:《Java核心技术》 《Java编程思想》
我学Java是看视频自学的,能写之后再看的《Java编程思想》,感觉事半功倍。不过也有人说看视频学的不系统,这个看个人喜好吧。不过书是一定要看的

2.算法数据结构
链表,二叉树,堆(10亿个数找topk)。红黑树可能比较复杂没见考过,图算法就阿里电话面试的时候问过。有时间还可以去看一些大数据操作的算法(topk),面试也问到过。
推荐书籍:《算法(谢路云译)》《剑指offer》等
推荐网站:牛客网,leetcode
《算法》这本书学算法的时候看很棒,尤其是关于红黑树那里讲的很好。网上大部分讲红黑树的博客感觉都是抄来抄去,一个插入删除操作复杂到根本不想看。这本书把红黑树和2-3树(也可以是2-3-4树)做了一一对应,方便理解。
如果是临时抱佛脚准备笔试面试,那直接看面试题吧。我准备的晚就只做了《剑指offer》上的题
,leetcode都没做过。值得一提的是看这种书最好拿到题目先去做,然后再看后面的答案。其实你会发现《剑指offer》上面大部分的题目你都是可以自己解决的。

3.计算机基础知识(操作系统,网络,数据库,Linux)
如果学校的课还有印象的话,看学校专业课的书吧。操作系统和网络术语很多还是比较难理解的。单纯准备面试的话问的多的也就是:TCP协议,线程和进程,cache替换算法等等
推荐网站:
慕课网(IMOOC)-程序员的梦工厂里面讲解Linux的视频感觉不错,也涵盖了一些操作系统和网络的基础推荐书籍:《鸟哥的Linux私房菜》

下面的内容了解过的话我认为还是很好的,应该会给你加不少分。而且也不难。
1.Servlet
这应该是JavaEE的基础了吧,其实并不难。学习servlet对理解HTTP协议是非常非常有帮助的(Session,Cookie等)。HTTP协议只看计算机网络书上那一点肯定是不行的。
2.Spring IoC和AOP,设计模式,面向对象
现在正在学习Spring。Spring的Ioc和AOP有了JavaSE的基础就可以学习了,不过你最好之前写过一定量的代码,否则可能并不能理解使用Spring的好处。
Spring IoC,控制反转,背后的实现就是工厂模式,学习Spring IoC你可以较为深入的了解什么是工厂模式,单例模式。这和你直接去走马观花的看设计模式的书是完全不同的。
Spring AOP,面向切面编程。不知道你在学校写代码的时候有没有记录过程序的执行时间,你通常会在main方法里调用前记录时间调用后记录时间然后相减。记录完成之后把加载记录时间中的代码替换掉再去测。如果是排序算法的话一共有五六个算法所以你要替换五六次(有重载替换更多)。AOP就是解决这个问题的。
AOP的实现是代理模式,要去学习下JDK的动态代理。
学习框架最大的收获就是更深入的理解面向对象编程。在学校写的那些代码用的虽然是面向对象语言,可你的思维可能还是C语言那种面向过程的。如果你写代码经常使用ctrl c和ctrl v,或者添加一个小功能需要更改许多个地方,那说明你还不够了解面向对象。
推荐视频:马士兵
由于我们是学习Spring IoC和AOP的原理,所以不必拘泥于版本。马士兵的课是我听到过讲的最好的,毕竟人家是清华毕业的,水平摆在那里。

还有两个是不得不说的:
1.github
如果你活跃于github上面有自己的项目还有许多星,我觉得这样的水平参加校招应该会被抢着要
如果你没做过什么项目,你可以把自己在学校做的实验代码发到github上来,fork一些别人的项目(贡献不了自己的代码起码要看一看,只是fork了不去看我觉得就是作死了……),读一读人家的代码了解下是怎么实现的。面试的时候能说出这些我觉得也是很大的加分项了
2.博客
博客就是自己的总结,我觉得这体现一个人的学习习惯,也能让面试官快速知道你学习过那些东西,掌握到了什么程度。博客一定要原创,抄来抄去真的很没意思。

其实有项目的话还是最好的,因为企业也知道大家准备招聘的时候回去看各种面试宝典突击一下,面试的结果其实并不能反映一个人的真实水平。在项目中做了什么才是最好的衡量标准。不过本科生可能有项目的人很少,那除了这些算法题,你应该要让面试官知道你是有真本事不是临时抱佛脚的。所以github和博客就是你一个很好的说明。

祝大家都拿到理想的offer。



今日话题:

同学们有什么问题,

可以在文章下方留言啊~


文章著作权归张育博所有 抄袭必究

关注FutureTour

查看更多干货

本文转载于微信公众号: FutureTour(futuretour2013),更多微信文章请扫描关注公众号:

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部