乐趣区

关于后端:从外卖员到拼多多30K程序员我付出了三年的青春

前言

先来自我介绍:

老家农村,家里好不容易把我送到大城市读书,大学非 985,211,但在咱们老家,能出一个本科大学生也是十分不容易的。因为农村信息的绝对灵通,我对大学业余无所不知,加上分数并非前茅,最初被调剂一个我并不喜爱的业余,这里就不走漏本人是什么学校了,只能说毕业之后为了能多赚点,抉择了送外卖,这一送就送了将近 3 年的工夫。

为什么学编程?

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

下文,我会对我的自学方法、自学材料以及我的面试经验进行一个分享

拼多多服务端开发三面还原(一二面 +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 分钟):

  • 对拼多多有什么理解?给拼多多做一个画像?
  • 家是哪儿人?对于将来的待业城市有什么想法?
  • 有女朋友吗?
  • 目前面了哪些公司?对于目前投的公司有什么偏好吗?
  • 有设想过在拼多多工作的一天吗?对薪资有什么要求?
  • 从哪些渠道理解互联网相干的讯息?
  • 如果拼多多把你挂了,你感觉会是什么起因?我和你聊了二十分钟,你感觉你的哪些非技术性的综合素质可能不如其余候选者?
  • 薪资
  • 你有什么想问的吗?

拼多多三面面试题答案:

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

(1)观看零根底学习视频

看视频学习是最快捷也是最有成果的形式,跟着视频中老师的思路,首先学习 Java 语法根底,再到框架,从根底到深刻,还是很容易入门的。至于视频,网络上实际上有一大堆,我这边是学长给我的珍藏版,应该是搜寻不到,如果你须要,当然我也能够收费分享给你。

Java 零根底视频(五十五个阶段)

(2)浏览前辈的一些书籍和笔记

当我学到肯定根底,有本人的理解能力的时候,会去浏览一些前辈整顿的书籍或者手写的笔记材料,这些笔记具体记录了他们对一些技术点的了解,这些了解是比拟独到,能够学到不一样的思路。

书籍和笔记

SpringBoot 核心技术笔记

(3)入手实操做一些小我的项目

光学实践是没用的,要学会跟着一起敲,要入手实操,能力将本人的所学使用到理论当中去,所以当我把框架学完之后,就本人去入手去做了个小的商城我的项目。对于这个商城我的项目的教程,你有须要我也能够分享进去。

(4)加一些社群,找一个好徒弟

如果真思考要转行学习 Java,那就多交一些气味相投的敌人,甚至是去找一个好的徒弟带带你,这是我给你最实在的倡议。退出一些社群,参加到一些技术探讨时,可能极大地晋升我本人的学习积极性,另外找一个徒弟带带本人,学习和实操过程中遇到的很多问题就比拟好解决一些,整个效率也就晋升得比拟快了。

总结

对于转行做程序员,我能胜利靠什么?两个关键词,信心和毅力!

如果你下定决心,做了抉择,就肯定要保持到最初。
文章中所波及到的一些学习视频、学习材料或是我的项目,都能够收费分享进去,若你须要这些:
https://gitee.com/biwangsheng/personal.git

现在我已胜利转行,当初在这个行业只算得上一个新人,但随着岁月增长,我会缓缓成为一名“老猿”,但我也会仍然把本人这颗学习的心放弃到老。同样的,我也心愿你在青春迷茫时,能不要放弃,因为每个人,都有柳暗花明的那一刻。

退出移动版