从外卖员到程序员,自学5年终于转行成功,三面“拿下”阿里

前言

先来自我介绍:程序员

老家农村,家里好不容易把我送到大城市读书,大学非985,211,但在咱们老家,能出一个本科大学生也是很是不容易的。由于农村信息的相对闭塞,我对大学专业一无所知,加上分数并不是前茅,最后被调剂一个我并不喜欢的专业,这里就不透露本身是什么学校了,只能说毕业以后为了能多赚点,选择了送外卖,这一送就送了将近3年的时间。面试

为何学编程?算法

接触到编程是一次很偶然的机会,有一次送外卖,对方是本身的学长,他是计算机专业的,毕业后就进了一线互联网公司,那以后就偶尔有跟他聊人生聊将来,一次契机,他劝我何不自学编程,来作程序员?后来考虑了好久,本身也综合对比了各行各业的发展,最后决定学习编程,选择了Java方向。编程

下文,我会对个人自学方法、自学资料以及个人面试经历进行一个分享,如有须要自学资料的朋友,能够添加i小助理vx:kaixindian331获取资料包进行下载。数组

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

 

 

拼多多服务端开发三面还原(一二面+HR面)

拼多多一面(大约1h左右):网络

  • 讲一讲 final / finally的区别框架

  • try-catch-finally在不一样状况下的执行顺序?异步

  • finally里return和外部的return谁覆盖谁?性能

  • wait / notify / notifyAll说一说?学习

  • notify唤醒线程以后能够马上执行吗?

  • sleep / wait的区别?

  • Java 的线程有哪些状态?

  • Java 堆的分布?

  • 为何要分出两块 survivor?

  • Mark-Copy 的流程?

  • 什么状况下会触发 Full GC?

  • Full GC 和 Minor GC 的耗时比例?

  • 老年代和新生代的空间大小比例?

  • HTTP 状态码列举一些?

  • connect 失败会报什么异常?

  • IO 分类?NIO 是阻塞的仍是非阻塞的?

  • 汇集索引、联合索引、覆盖索引解释一下?

  • 口头设计一个表和索引,而后说一说哪一种查询会走联合索引,哪一种会走覆盖索引?

  • 聊项目,以及项目的困难点?

  • 手撕算法环节:有序数组 / 链表转平衡二叉树

拼多多二面(大约50分钟左右):

  • 自我介绍

  • 聊聊项目

  • TCP 的流量控制和拥塞控制说一说 查问:接收窗口的空间是怎么分配的?是否是多个 TCP 链接共用一块内存仍是各自有独立的?

  • TCP 和 UDP 的区别

  • 网络的五层模型,每一层有什么协议?

  • PING 命令用的是什么协议(是 ICMP,我没答上来)

  • OS 的内存管理、进程管理说一说

  • 物理内存空间、虚拟内存空间?

  • 虚拟内存的做用?

  • 内存的连续空间不够分配的时候怎么处理?全局内存的空闲空间不够分配的时候怎么办?

  • 快排和归并的复杂度,快排的退化

  • 平衡二叉树各类操做的时间复杂度

  • AVL 树和红黑树的区别?

  • 红黑树的应用?JavaTreeMapAPI 为何不用 AVL 树?

  • B 树和 B+ 树的应用?有什么区别?为何 MySQL 用 B+树?

  • Redis 和 memcache 的区别?Redis 何以高性能?(这里我暴露了本身的菜鸡水准,面试官耐心地指正了我对于他俩的错误认知)

  • 异步非阻塞 IO 了解吗?(扯了点事件分发器的 Proactor 模型,面试官承认了)

  • 手撕算法:二分查找变形题,浮点数的等差数列,一开始公差是1.0,在某一个位置公差变为0.1,找到该位置

  • 看你写的以前送外卖?为何毕业以后没有从事本身本专业内的工做?(我回答的想多赚钱)

  • 你的Java是自学的?怎么坚持下来的?期间遇到什么困难吗?

  • 手头上有哪些 offer ?

拼多多三面(HR面大约30分钟):

  • 对拼多多有什么了解?给拼多多作一个画像?

  • 家是哪儿人?对于将来的就业城市有什么想法?

  • 有女友吗?

  • 目前面了哪些公司?对于目前投的公司有什么偏好吗?

  • 有想象过在拼多多工做的一天吗?对薪资有什么要求?

  • 从哪些渠道了解互联网相关的讯息?

  • 若是拼多多把你挂了,你以为会是什么缘由?我和你聊了二十分钟,你以为你的哪些非技术性的综合素质可能不如其余候选者?

  • 薪资

  • 你有什么想问的吗?

拼多多三面面试题答案:

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

 

 

这三年来,我是如何自学的?

(1)观看零基础学习视频

看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,首先学习Java语法基础,再到框架,从基础到深刻,仍是很容易入门的。至于视频,网络上实际上有一大堆,我这边是学长给个人珍藏版,应该是搜索不到,若是你须要,固然我也能够免费分享给你。

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

 

Java零基础视频(五十五个阶段)

(2)阅读前辈的一些书籍和笔记

当我学到必定基础,有本身的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,能够学到不同的思路。

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

 

书籍和笔记

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

 

SpringBoot核心技术笔记

(3)动手实操作一些小项目

光学理论是没用的,要学会跟着一块儿敲,要动手实操,才能将本身的所学运用到实际当中去,因此当我把框架学完以后,就本身去动手去作了个小的商城项目。关于这个商城项目的教程,你有须要我也能够分享出来。

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

 

 

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

 

 

(4)加一些社群,找一个好师傅

若是真考虑要转行学习Java,那就多交一些志同道合的朋友,甚至是去找一个好的师傅带带你,这是我给你最真实的建议。加入一些社群,参与到一些技术讨论时,可以极大地提高我本身的学习积极性,另外找一个师傅带带本身,学习和实操过程当中遇到的不少问题就比较好解决一些,整个效率也就提高得比较快了。

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

 

 

总结

对于转行作程序员,我能成功靠什么?两个关键词,决心和毅力!

若是你下定决心,作了选择,就必定要坚持到最后。

现在我已成功转行,如今在这个行业只算得上一个新人,但随着岁月增加,我会慢慢成为一名“老猿”,但我也会依然把本身这颗学习的心保持到老。一样的,我也但愿你在青春迷茫时,能不要放弃,由于每一个人,都有柳暗花明的那一刻。