2年6个月11天,外包到阿里的修仙之路







































































































































前言

估计有同窗会有疑问,为何要精确到天?是为了装逼吗?
答:仅仅是为了证实咱的严谨(其实就是为了装逼

确定有同窗内心会吐槽:真的是外包吗?估计又是个标题党,吹牛逼,*&¥%¥
答:真的是外包哈,可是不是阿里的外包。是某传统外包公司,主要作项目外包。还有就是若是从我离职的那天算起,应该是2月3个月24天。2年6个月11天是从我这条咸鱼忽然萌生了想翻身的想法那天算起,拒绝作标题党(づ ̄3 ̄)づ

当一条咸鱼多好,怎么忽然想不通,想要翻身了?
答:

外包也有厉害的,你是否是菜的没那么明显?
答:我当时连成员变量是啥都不知道,要比菜没怕过的。

面经都发了那么久(19年8月),如今才写这篇文章,最近半年也没有技术文章(水文)产出,是否是堕落了,又过上咸鱼的日子了?

答:其实19年就想着要写这篇文章,但愿能帮助到那些跟曾经的我同样的同窗(咸鱼)们,当时想着是找个有空的周末!有空的周末!有空的周末!写一下,结果到今年5月还没写,刚才业务还打电话找我对需求(周六),已经被榨干。。。java


文章介绍的修仙教程适合全部人吗?会不会走火入魔?

答:本教程仅适合单身狗修炼,有家室者请勿偷偷修炼,不然一切后果(轻则吵闹不休、鸡犬不宁,重则妻离子散...),本人概不负责程序员


我公交车都快到站了,你还不开始?面试

答:好嘞,容小弟为大爷您细细道来数据库



正文

修仙第一步:炼体(菜鸟期)


首先,我到网上搜了一堆 Java 基础面试题,啥也不说,先背了个几天几夜,这个方法看似粗暴,实在暗藏玄机。

当时的我菜的很真实,不少基础概念都不懂,背面试题能让我快速掌握 Java 核心基础知识。

放到如今来看,对于 Java 初学者,我仍是建议能够采用此方法,由于面试题基本都是比较重要的内容,也能起到必定的筛选做用,避免初学者漫无目的的学习(瞎搞)。

有些人可能会以背题为耻,垃圾才背题,我才不背,我要裸面,展现本身的实力。


结果大几率是二面挂、一面挂、简历筛选挂,而后默默的背题,而后。。。

我我的以为背题其实挺正常的,大部分人的平常工做基本就是CRUD,不少面试的知识点平常基本都用不到。我一个QPS不到10的系统,你问我高并发、熔断、降级、秒杀系统的设计?

在阿里,大多数人要出去面试时,我相信即便不是背题,确定也要温习准备一段时间 。阿里内网还有个老哥写了篇文章“那些年,为了进阿里背过的面试题”,截至目前获得487个点赞,1755个收藏。。

背完基础面试题后,估计有些同窗已经膨胀了,以为本身很能打了,就出去面试了,而后出去大几率被面试官一顿疯狂操做,最后收到那句已经听过无数遍的话:今天的面试就到这,若是有结果咱们会再通知您。

小结:该阶段主要作两件事:1)帮助本身快速掌握 Java 的核心基础概念;2)全部第二阶段要系统学习的东西在这边都要了解个大概,至少要知道核心概念。

通常花1个月左右的时间学习,能学习的时间有公交车上、地铁上、午休、晚上下班后、周末、带薪拉💩时,能利用的时间都要利用起来。可能有同窗说周末要陪女友,女友?不存在的。


修仙第二步:练气(学徒期)


熟悉了 Java 的核心基础概念后,第二阶段咱们要开始系统的学习一些 Java 核心知识点:集合、IO、反射、并发、锁、多线程、数据库原理、JVM基础、经常使用中间件(Dubbo、Kafka、Redis、Zookeeper)核心原理和框架(Spring、Mybatis、SpringBoot、SpringCloud)核心原理等。

学习方式我建议以看源码和看书为主,看博文和看视频为辅。可能有的同窗据说要看源码就懵了。

看源码是吃一手饭,其余几种方式是吃别人嚼过的饭,别人的东西咱们没法保证其质量,所以仍是优先吃一手饭。另外,看源码是对本身学习能力的一种锻炼,刚开始痛苦,可是摸清套路后,其实也没那么难,而且会让本身受用终身。

刚开始看源码的话我这边墙裂推荐 ArrayList,ArrayList 比较经常使用而且很简单,很是适合初学者。

JDK1.8 中 ArrayList 的源码有1400多行(注释估计占了一半),可是咱们不须要所有看,咱们只须要看其中重要的内容:基础属性、构造方法、get 方法、set 方法、add 方法、remove 方法、扩容方法等。

看完 ArrayList 以后再继续看它的老婆类 LinkedList,面试中这2个类通常会被拿来一块儿问。看完这两个类的源码后,再结合源码看看面试中会问的题目,这个知识点基本就掌握的差很少了。

看完 ArrayList 后,估计有同窗又膨胀了,源码也不过如此,渣渣。

这时候建议能够开始看复杂一点的,优先推荐 HashMap,HashMap 是如今面试中被问的最多的基础知识点应该没有之一,HashMap 的源码比 ArrayList 复杂的不是一点半点,再加上 JDK 那写的贼不规范的源码,看着就脑袋疼。

固然,一手饭当然香,可是难度会比较大,因此咱们也要适当吃一些二手饭(软饭,阿姨,我不想努力了)。

若是要吃二手饭,咱们也要有选择,否则你吃到的可能不是饭,而是泔水。在这些中,书通常比较有保障,特别是那些豆瓣评价不错的书都是通过不少人检验的。还有就是一些坚持原创的优质公众号/博客,例如公众号程序员囧辉(老脸一红)。

看书的话,我当时最早看的是那本在大学时候买的,被我垫在枕头下面,陪伴了我无数个夜晚的《Java 编程思想》,可是说句实话,我我的感受这本书不是很适合初学者读,给我带来的帮助也没那么大,因此若是时间不是不少的话,我这边不推荐先看这本书,可是用来垫枕头仍是香的,贼厚。

我看过的书中,在这个阶段,我我的推荐的是:《Java 并发编程的艺术》、《Java 并发编程实战》、《深刻理解 Java 虚拟机》(最近出了第三版)、《Redis设计与实现》。当时的我仍是个小菜鸡,可是读这几本书,并不会以为有读不下去的感受,所以我以为适合在这个阶段去读。

小结:本阶段的学习是持续不断,在这个阶段咱们主要把一些重要的知识点进行了系统的学习,夯实本身的基础,提高本身的知识广度。

源码学习集中在 JDK 源码(JDK 1.8),其余的主要是学习其核心原理。若是不知道某个知识点的核心原理,则能够对照着面试题去学,面试题问的通常就是核心的东西。

若是你当前在外包公司或者是一些传统公司,修炼完本阶段以后,能够尝试先跳一波。从外包直接跳阿里也不是没有,可是少。所以,咱们要先找一个平台来看成跳板,最好是独角兽,就是喊出来你们至少能知道有这么个公司的。


修仙第三步:筑基(入门期)


本阶段主要在第二阶段的基础上,进一步提高本身的知识深度和项目实践。说的直白点就是提高本身的亮点,让本身在面试时有装逼的资本。
编程


本阶段咱们会挑选一到两个经常使用的中间件或框架,来深刻学习其源码,例如:Spring、Mybatis、SpringBoot、SpringCloud、RPC(Dubbo、gRpc、公司自研)、MQ(Kafka、RocketMQ、公司自研)、Redis、Zookeeper、JVM、数据库中间件(TDDL、MyCat)等。浏览器


JDK 源码直接肉眼看的话问题不大,可是若是你直接肉眼看中间件和框架源码的话,你会知道什么叫作残忍。比较合理的的学习方法是反复debug源码+作笔记,我通常是把源码下载到本地,而后直接在源码上作笔记。微信


除了源码,本阶段另外一个重要的内容是要提高本身的项目亮点。估计大部分同窗在面试时都被问到过这个问题:你在项目中有什么亮点吗?此时本身心里的OS是:我TM一个QPS不到10的项目,有个鸡儿亮点。多线程


若是你的项目自己就有高并发、大数据量的状况,那么找亮点应该不难。不然,咱们能够从如下几个方向去找:1)比较复杂的场景方案设计;2)系统稳定性保障方面的设计:限流、熔断、降级等(6位数的密码保护2位数的存款);3)线上问题的排查和解决:死锁、宕机、Full GC 频繁等。并发


除了列举的这几个,还有不少其余的,只要咱们在碰到项目难题时,能迎而上,找到本身的项目亮点是顺其天然的事。框架


小结:本阶段主要是集中于提高本身的知识深度和项目中的亮点。让本身在面试的时候,能有装逼的资本。可是切记,装逼要把握好尺度,切勿过火,毕竟咱们是来讨饭恰的,不是来装逼的。



总结


修仙之路很苦,无数个寂寞的夜晚,无数的诱惑(马路对面的洗脚城是我不敢奢求的梦)。若是能坚持下来,我相信大多数人都能轻松的讨一口饭恰,混我的模狗样也是颇有可能的


可是要坚持下来真的不容易,囧辉如今回忆起那无数个寂寞的夜晚,眼角不由湿润了。这边有本武林秘籍可能对坚持学习有一点帮助:如何养成学习的习惯,但愿能助你成功。


有同窗可能会有疑惑,修仙不是有十层,怎么只介绍了三层?

答:小弟才疏学浅,自认为目前在第四层修炼中。


怎么判断本身有没有走火入魔?

答:若是你以为本身在这过程当中学到了很多东西,可是发现不懂的东西更多了,说明你大几率是走正确的修仙路上,祝你们早日修成正果。


囧辉你变了,你不再是那个安静的美男子了。

答:听到这句话,囧辉的眼角又一次湿润了。囧辉曾经励志要作一个有骨气的技术博主,不搞花里胡哨的,可是后来偶然的机会囧辉回看了一篇本身1年前的博文时,心里的OS是:这是什么狗屎,又臭又长。

所以,后续囧辉在创做时,会尽可能避免通篇源码分析,尽可能以更通俗易懂(骚气)的文字和图片来呈现。

本文分享自微信公众号 - Java建设者(javajianshe)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索