博主本专业电气,今年3月下定决心转向互联网行业,本来想依仗自己比较自信的学习能力自学成才的,不过学了一段时间感觉还是需要一个人来指点,不仅仅是指点一些技术性的问题,更是需要有人来指点一下方向性的问题。后来狠了狠心花了大价钱报了一个培训班------达内,当时也真的很担心被骗呀,因为知乎上各种黑,不过好在身边有鲜活的从达内出来后来取得成功的例子,以及咨询老师真诚的态度,才下定了决心进去学习。几个月,学完了java基础、javaweb、框架以及和分布式系统相关的一些技术,最后还顺利参加了达内举办的项目峰会,8个人6天完成了一个完整的项目,具体的项目已经部署到了我的阿里云上,访问www.haoj.club(PC端效果比较好)就可以访问到,这个项目是仿照今日头条做的,基本上今日头条有的功能:新闻浏览、新闻推荐、短信注册登录等等这些功能都有了,而且就用了6天。怎么说呢,这几个月的成长个人感觉是非常迅速了,因为几个月之前java一点不懂,而现在已经可以独立的完成数据库设计、前台编写、后台编写、环境搭建和项目部署这一整套的流程了,虽然完成的项目和企业真正的大型分布式项目还是没法比(毕竟一个人的能力是有限的),但是基本的开发能力已经具备了。培训班就是这个好处吧,可以带你迅速入行,少走很多弯路,一些基本的配置不用自己花一些不必要的时间去摸索,一些很实用的开发经验和开发窍门都可以迅速获得。

  之后博主就凭借这个项目以及已有的一些技术去参加面试了,心里也很明确,全中国的IT公司只想去阿里,因为阿里真的是中国程序员的朝圣地,进去真的能学很多。最终经历了5轮面试,顺利拿到了offer。这里和大家分享一下我的面试经验。

  首先是一次不记名面试,这里我也真的很感谢这场不记名面试了,如果没有这场不记名面试,我可能真的一面就结束了。因为我之前是没有任何找工作的面试经验的,再加上去阿里对我来说真的是一件几个月做梦都会梦到的事情,我把它看的太重了,所以在面试之前我经历人生中最紧张最紧张的一段时间,导致这次面试基本是全面GG。我先来说一下这次面试的过程吧。

  面试我的是一位小姐姐(这是我之前没想到的,因为我觉得肯定是个男生),我先是自我介绍,然后我感觉我介绍的很着急,而且没有逻辑性(充分暴露了我的准备不足),介绍完就感觉很不好,此时已经感觉有点凉了。然后就问了第一个问题:springcloud的三个原则是什么?我不知道啊,springcloud我才学了一天啊,只会用啊,所以第一个问题就GG了,我更紧张了。之后小姐姐问我,你对哪块有比较深入的研究,我因为之前对redis看了不少,所以我就说redis还仔细研究过一点,然后就又问了一个问题,那个问题中关于redis的名词我都没听过,这个时候我已经完全慌了,两个问题都没答出来。后来又聊着聊着说到了多线程,第三个问题:一个线程销毁之后还能再start嘛?我:能吧?(我没有注意过啊)所以相当于问了三个问题都没答出来,小姐姐似乎感觉到我的水平了,所以就没再多问了,就讲起了我这几个月的生活,早起看算法,白天听课,晚上调电路还得复习白天的,每天已经用尽了我最大的力气了,我也说到了自己面的不好,(事实上第一是因为我很紧张,第二我确实有的地方掌握的不是很深入)。她很亲切的说没关系,几个月能成这样已经不错了。然后最后聊了聊别的就结束了。其实后来我才知道这个小姐姐是清华的,更加坚定了我去阿里的决心,我渴望去一个周围都是大神的地方磨炼自己!

  结束之后我仔细分析今天的面试,总结了一些经验,而且深刻的明白是要稍微准备一下,尤其是并发编程这块的知识点,所以接下来的几天我疯狂弥补之前的一些知识漏洞,等待接下来的正式面试。

  几天后是一面,一面整体的节奏比较缓,主要是以技术问题为主,没有加入太多的聊天内容,面的也比较久,一共面了一个多小时,下面是一面的题目:

  1、线程实现的方式

  2、线程池的理解

  3、hashmap的底层,你怎么了解的

  4、jvm底层

  5、垃圾回收机制

  6、怎么理解mvc

  7、排序算法选一种(我选的快排)

  8、单点登录引出来的一个问题,如果通过A域名访问了A系统,通过B域名访问了B系统,B系统如何知道此客户端也访问了A系统

  9、类加载机制

  10、说一说ThreadLocal的理解

  11、爬虫用什么做的,怎么做的

  12、如果爬取到的数据格式不一致怎么办(针对我的那个新闻网站)

  13、你对你这个项目的数据有没有一些其他想法?如果让你重新做,你会有哪些改善

  14、你这个项目的架构说一说

  整体来说,一面的基础性问题比较多,所以博主基本都答出来了,准备过还是有些用处的。所以一面完了感觉还不错,接着第二天下午就二面了。

  二面是我最慌的面试,因为二面是最关键的,是最大的主管面试,所以非常关键,整体来说,二面的节奏非常快,和一面完全不同,面试官很希望我言简意赅的说完答案,所以面的不算很好,当时完了又以为GG了,好在最后还是幸运的过了,面试问题如下:

  1、静态方法和实例方法的同步有什么不同?

  2、future类的作用

  3、红黑树比平衡二叉树的优势

  4、知道最大堆,最小堆嘛?描述一下堆排序

  5、redis是单线程还是多线程的,说说redis的优势

  6、了解AOP嘛,基于什么原理的

  7、3点15分的夹角是多少度

  二面面试官问的很急,我答的也快,所以有两个问题答的不好,但是面试官让我觉得有一种肃然起敬的感觉,因为他说话比较快,但是都能说到点子上,最关键的说的话非常让人容易接受。二面过了,当天晚上我就接到了三面的电话(阿里的效率真的让我瞠目结舌)

  三面是交叉面试了,基本都围绕我的项目展开,我经过前面几次的面试之后,这个时候已经拥有了很高的面试经验值了,所以三面的时候我一点不慌了,回答问题非常稳重(一面刚开始的时候腿在抖。。。),三面的问题如下:

  1、介绍以下你项目的特色

  2、说说你这个项目的分工,以及在团队协作之间遇到的问题

  3、用java爬虫有什么不好

  4、谈谈你对mycat的理解以及如何进行数据库的双机热备

  5、谈谈redis如何构建集群,数据在底层是如何进行同步的

  6、网络连接和断开的过程?为什么是4次挥手不是3次?

  7、数据库事务的四个特性

  8、volatile关键字的作用

  9、估算一下7的128次多少位(这个数学问题,我当时没想出思路,只估算了个100,虽然蒙对了,但是思路没给出,事实上这个题的思路有点难的)

  三面还算比较顺利,基本都是我在说,所以也很快过了,第二天早上就收到了HR终面,两天4面,鬼知道我那两天经历了什么。。。

  HR就基本问一些基本情况了,没有技术问题,只要人不是不正常感觉都没啥问题。

  总结一下面试经验吧,虽然我只经历了阿里的面试,但是这几场面试足以让我总结出面试的门道了:

  1、自我介绍非常重要,基本上是主导你的整个面试的过程的东西了,一定要好好准备自我介绍,把面试官往你熟悉的地方引

  2、见机行事,如果面试官不急,你就不要急,回到的时候多说一点,尽量把只是穿起来,往你熟悉的地方引,比如博主的1面,问我HashMap的底层,我就不仅说了它底层是一个数组加链式栈,还说了链式栈的目的是解决哈希冲突,还说了解决哈希冲突有两种方法:一种拉链法,一种线性探测法,hashmap采用了前者,(我现在还知道了ThreadLocalMap采用后者,这个知道的人不多,如果你顺着引出来,加分很多)。如果面试官比较急,证明他有很多人面,他希望在最短的时间里让你说出关键的东西,比如博主的二面,我们就不需要扩展说,言简意赅即可

  3、一定要好好准备,对一些常用的内容进行深入的探究,比如现在面试必问的多线程高并发,JVM底层,数据结构和算法,一定要 挑一些进行深入的探究

  4、最好有一个完整的项目或者有一个担任重要角色的项目,对这个项目非常熟悉,并且要想好项目开发过程中遇到的问题以及如何解决的

  5、不装,会就是会,不会就是不会,不要猜,我二面就犯了错,面试官问我redis单线程还是多线程,我随口一说:多线程吧?面试官:猜的吧?我:是。。。。面试官:不会不要猜!所以我当时慌的一批!

  大概就是这么多吧,这次转行对我个人而言,除了提升了知识之外,更多的是磨炼出了一种敢于从原有的圈子跳出来的勇气、决心和毅力以及迅速适应新的环境的能力,今后的生活不确定性仍然很多,但是我现在反而很期待这种不确定性带给我的一种紧张和兴奋的感觉,以及成功之后的那种走路脚下生风、激动的睡不觉的兴奋。

我的转行之路(电气转IT)------2018阿里校招面经的更多相关文章

  1. 开坑,Unix环境高级编程,转行之路又得缓缓了

    不要问我基础,我用了近6年的Linux系统,最早的版本可以追溯到Ubuntu 8.04,常用的命令 VIM基本上是没压力,遇到问题google 配置环境变量 网络环境也不在话下, C语法基本熟练,过去 ...

  2. 小白的springboot之路(十七)、阿里云OSS 的使用

    0-前言 项目中,文件服务必不可少,常用的有各云服务商的OSS服务(如阿里云OSS,腾讯云OSS,七牛云).自建(fastDFS.minio): 推荐:如果用云服务的话,阿里云OSS很方便,如果自建的 ...

  3. 我是如何从零开始自学转行IT并进入世界500强实现薪资翻倍?

    本部分内容对应视频链接. 熟悉我的朋友应该知道,我本科及硕士期间所学的专业都是机械相关,毕业两年之后才从零开始自学转行成为一名程序员.当时我写了一篇文章,介绍我的转行经历,很多小伙伴因为我的这篇文章, ...

  4. 专访Facebook HipHop作者/阿里研究员赵海平:生物与计算机交织的独特人生

    3 月 26 日,杭州的天阴沉沉,这是一种山色空蒙雨亦奇的美丽,还是雾霭笼罩下的怪异,对于来访阿里巴巴西溪园区的人们来说,没人关心这些.人们行色匆匆,兴奋地往各自目的地奔赴而去.我也来不及细思这些,因 ...

  5. 求职-如何选择offer

    如何选择offer呢?下面我们从这几部分一起聊聊: HR问你目前拿到哪几个offer了怎么回答好? 选择小公司还是大公司? 为什么刚入行不要去没有人带的部门? 正式员工.合同工和外包人员有什么区别? ...

  6. NLP | 算法 学习资料整理

    UPDATE TIME: 2019-12-12 17:06:32 NLP: 对话系统: [ ] https://www.cnblogs.com/jiangxinyang/p/10789512.html ...

  7. Product - 产品经理 - 知返

    特别说明 本文是已读书籍的学习笔记和内容摘要,原文内容有少部分改动,并添加一些相关信息,但总体不影响原文表达. - ISBN: 9787568041591 - https://book.douban. ...

  8. Facebook程序员跳楼事件:技术路线会越走越窄吗?

    这是小川的第417次更新,第450篇原创 这几天有个刷屏的文章,讲的是Facebook有位程序员跳楼了,这位程序员的一些信息也"被曝光",比如年轻时是浙大的学霸,后来又赴美读硕,中 ...

  9. 拿到这份 Java、C++ 软件开发完整学习路线图,我面试再也没挂过..

    大家好,我是柠檬. 柠檬哥作为一个普通大学.非计算机专业,自学后端技术进入腾讯做后端开发工作,我自己也是非科班自学计算机成功转行软件开发(有想听柠檬哥转行之路经历的吗,可以留言告诉我,人多就写写),体 ...

随机推荐

  1. python3绘图示例2(基于matplotlib:柱状图、分布图、三角图等)

    #!/usr/bin/env python# -*- coding:utf-8 -*- from matplotlib import pyplot as pltimport numpy as npim ...

  2. input-file类型accept 属性对性能的影响

    上传图片的时候,有时会加一些限制,如下,进行上传类型的过滤,如 <input type="file" name="pic" id="pic&qu ...

  3. COGS 146. [USACO Jan08] 贝茜的晨练计划

    ★☆   输入文件:cowrun.in   输出文件:cowrun.out   简单对比时间限制:1 s   内存限制:32 MB 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运 ...

  4. java调用dll库

    1.dll叫动态链接库,作用是用某种语言封装好某些函数生成可供不同语言调用的.dll文件,通常是用C++编写生成,因为C++可以对很多硬件操作方便而其他高级语言不行 2.dll生成参考:http:// ...

  5. PHP获取系统时间不对的解决办法(转载)

    原地址:https://blog.csdn.net/u012124764/article/details/51450958 使用PHP获取系统时间,发现时间不对,是因为PHP默认的时区是UTC,应该将 ...

  6. vue中列表的过渡

    <style> .v-enter,.v-leave-to{ opacity: 0; } .v-enter-active,.v-leave-active{ transition: opaci ...

  7. Python 连接、操作数据库

    使用python3+pymysql 一.安装python3 a)         从网上下载安装吧 二.安装pymysql https://pypi.python.org/pypi/PyMySQL h ...

  8. 2017.11.6 JavaWeb-----第七章 JavaWeb常用开发模式与案例

    JavaWeb-----第七章 JavaWeb常用开发模式与案例 (1)单纯的JSP页面开发模式 通过在JSP中的脚本标记,直接在JSP页面中实现各种功能.称为"单纯的JSP页面编程模式&q ...

  9. open cv & vs

    原来基于vs和msdn一起读视频,结果发现现在的函数不能用了.找不到合适的解码器了,只好转战opencv. 具体怎么用,网上查吧,不过opencv读视频的例子,可以见这个. http://blog.c ...

  10. 1、webpack安装

    1.局部安装: npm i -D (npm install --save-dev的简写) 安装指定版本:npm i -D webpack @version 安装最新版:npm i -D webpack ...