Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
65 lines (37 sloc) 5.31 KB
layout title date categories
post
阿里巴巴实习生面试后感
2018-02-08 21:00:05 +0800
面经

机会

得益在阿里工作的师姐内推机会,不用笔试,直接进入面试,面试阿里-淘宝技术的工程师。美中不足的是内推的岗位是测试工程师,但是我还是想从事 web 后端的研发的,但是对方是阿里-淘宝,测试就测试吧,在阿里测试肯定也学到很多东西。

今天下午接到电话约今晚 8 点电话面试……

捉紧时间补补,对着简历猜测:

  • 我应该怎么介绍我自己和做过的项目
  • 面试官会问什么问题

过程

这个古老又神圣的问题,之前面试过几次,说是能说点什么东西,但是说实话自身没有什么亮点,没法打动人。

然后找一个最乐意的项目出来分享,很后悔找了一个自己第一次做外包的项目,这个项目确实让我学到了很多东西,但是含金量确实是很低。

当他问到我遇到了哪些技术问题,以及解决方案的时候我就知道部应该说这个项目,这个项目虽然遇到了很多问题,但是都是因为是 Green hand 的原因,说出来会显得我太菜了。但是做了一个错误的选择,得硬着头皮继续下去。

就其中一个问题,我说第一次做外包的时候没有了解到很多架构的知识,没有合适地使用到缓存,所有的请求都下放到 DB,那么他问我有没有想到其他方案可以解决这个问题?

我当然不傻,知道有 redis、memcache 做缓存。

后来他问我是否知道 Hibernate 可以做二级缓存,单机情况下 Hibernate 做缓存已经足够了。(PS:单机意味着不会有太大的访问量)

他一直顺着问到,问除了 Hibernate 我还有没有用到其他的 ORM,而他们之间有什么区别?

除了 Hibernate 我就了解过 MyBatis 了,而两者对比我感觉就是 Hibernate 有自己的规范,JPA 接口等,对于开发来说更加规范,MyBastis 需要管理大量的 SQL 语句,多了以后不好管理,但是 SQL 能够解决的问题,MyBatis 实现起来都很方便,但是有可能会使得项目更加凌乱。我确实对 Hibernate 不熟悉,也不能够说出什么来,平时开发时候也就是照葫芦画瓢,具体如何优化,配置文件为什么这么写之类的一概不了解。

此刻,我深刻感受到如果找工作,最好深入了解某一技术,比如经典的 java 的内存模型等,这样虽然在一般开发中用不到这么高深的知识,即使用到也可以通过临时 Google 解决问题,但是如果在公司做大项目,技术方面遇到了不是随便 Google 就能解决的问题的时候,就很考技术深度。而且如果深入了解某一个领域,和面试官能够一步一步深入,聊得很 high,因为我感觉面试一般也就根据一两个方向深入问。

当我提到我其实有大半年不写 java,现在主要搞 Python 和 Golang 的时候(当然这可能会显得自己不务正业,亦或者在面试官看来这小伙子还挺有活力),他就问我如果学习这两个有没有想过找工作难问题,可能公司里面主流还是 java 、C系列吧。

我当然回答说,我秋招的时候留意过就业市场,ofo 和斗鱼都有招募 Golang 的,而且 Python 是目前很热门的脚本语言,很多公司招聘要求都是要求应聘者熟悉一门脚本语言。而且现在公司不是流行 DevOps 吗?Python 在运维方面也很有帮助啊。

一开始的时候,我提到其实我更想应聘研发岗位,我面试的是测试岗位。这时,其实我已经感觉凉了,因为面试我的是测试工程师,他怎么可能能够决定我能够去研发部门实习呢?或者有奇迹呢,Who knows.

他最后问了我熟悉 Python 的内存模型不?

从实,我不了解,java 内存模型是一个很经典的问题,但是 Python 我确实不够了解它的底层,虽然我用它已经很溜了,但对 Python 底层不是很了解,读的书还是少啊!!!

最后给了我一个 Python 题目:如何有序去重输出 list 中的元素?

我就应该想到这是一个考语言的题目,但我太天真,给出了两个答案都跟语言无关:

  1. 排序
  2. Hash Set

但是最后他提示 Python 有一个内置函数可以实现这个供能,可惜我实在没想到,因为平时写算法太少,即使最近写算法的时候也自己造轮子,没有使用内置函数。至今没有找到 list 中有函数可以实现这个功能,遗憾。

总结

我以为会问道算法题的,我最近在刷算法题目,可是没有,可能对实习生要求没那么高吧。

Anyway,面试官很 nice,最后我问他问题的时候,我请求他给我一点学习发展上的建议。他说,最好找和自己方向匹配的,比如我想学习 Python 和 Golang 就最好找一个公司是使用 Python 和 Golang的实习,这样我成长也比较快。(我知道已经凉了)

其实我更加想知道对于框架、语言底层(我很不熟悉),他会给我什么建议。

我认为在面试前一定要好好地审视自己的项目经历,找出其中一个能够拿得出手,自己也最熟悉的项目出来和面试官分享,在多次磨炼之后,这个项目一定会越来越熟练,回答得越来越得心应手。