面试宝典 - 他山之石

【总结】零基础学习JAVA一年拿到BAT三家offer

作者:小、麦
原文链接:https://www.nowcoder.com/discuss/188241?type=2&order=0&pos=12&page=4


引言

1、本文没有公众号和博客推广,请放心

2Java后台开发的经验,其他岗位没有借鉴意义

3、纯发经验攒人品,不装逼不宣传,私信不回复,有问题留言大家一起讨论,互帮互助!!

4、个人学习方法,并不一定适合每个人。不喜欢看视频学习的就不用继续往下看了。

5、 由于读研都是自己挤时间的,过程不表,实验室的内容就没叙述了。

 

背景

1、本人本科一本双非垫底的那种,硕士211。本硕电子通信,完全0基础,转行一年。

2、研一上第一学期上课+外派到老师合作公司写MATLAB。去年4月开始学习Java

 

起步

1、实话说,刚决定转行的时候完全零基础一开始真的啥也不会,甚至不知道怎么去学习。的确,计算机资源很多,自学足够的但是完全不知道怎么去用去学习啊!

啥是leetcode

啥是github

啥是IDEA

各种疑问,怎么操作啊?点哪个啊?身边没有人教啊。

有时候真的只是懂的人点两下的事情,自己搞要一下午。妈个鸡,第一个月真是完全浪费时间,差点原地放弃。

 

过程

1、战略上坚定信心: 既然那么多人都可以做程序员,甚至高中生都可以,别人可以我肯定也可以。

2、战术上制定计划: 培训班看视频我也看视频咯,对,就是各种视频。(现在想想自己甚至就是培训班出来的)

视频的好处是快速入门,犹如身边有老师手把手教,一步一步操作给你看。很重要一点,培训班老师上课非常认真,真的是面向高中生水平讲课。完全不用担心有卡顿,看不懂。记得某门课老师还在讲啥是二进制和排列组合。

Java入门(4-7月):

我在 阿里云大学 上找了 李兴华老师 Java就业班,看了部分,走完了Java SEJava EEMYSQLSSMGit的使用,跟着敲一遍,耗时大概3个月时间。学会了Java基本语法,懂得了什么是编辑器和Git,第一次知道了还有github这玩意,不容易啊。。

 

感觉入门视频选哪个老师的都可以,有推荐黑马和尚硅谷,我觉得看视频的主要好处是快准狠,把握重点。比自己啃完Java编程思想快多了。

 

狠补基础阶段(7-12月):

这一阶段,我觉得对于人均本科的大家没啥大问题,主要是时间问题。就当作本科期末考试来就行,有紧迫感,十天一门课过一遍非常足够了,然后看公开课视频,再做一下练习题(我做的是王道)。七 ***三个月我过完了 计算机网络,操作系统,数据库原理,数据结构。(过完,有个大概印象,相当于期末考60分水平吧)。

 

其中,我觉得帮助很大的是七八月的时候,关注了 CyC大佬 的github,当时惊为天人,这人是真的牛逼啊能写这么多,啥时候能看完???然后就没啥方法,直接硬核地从头开始看。后面证明半年其实也就能看完他github的所有内容了。 他的博客可以算是新手入门的最佳指南了。

 

下面就是我这一阶段的学习步骤和对应的资料:

 

大纲:

CyC大佬Github(说实话看了半年多才看完)

计算机网络: 

教材:谢希仁老师 计算机网络, 图解HTTP协议

视频:韩立刚老师 计算机网络原理视频,

习题:王道

操作系统: 

教材: 汤小丹老师 计算机操作系统

视频: 陈向群老师 操作系统原理

习题: 王道

数据库原理: 

教材: 萨师煊老师 数据库原理与应用

视频: 萨师煊老师 数据库原理与应用

习题: 王道

数据结构:

教材: 大话数据结构、剑指offer

视频: liuyubobobo 老师,三门算法课视频(吹爆)。

习题: + leetcode。九月份才注册leetcode的我。。

MySQL

教材: 高性能MySQL(吹爆)

视频: 打造扛得住的MySQL架构

Java高并发:

教材: Java编程思想

视频: Java并发编程入门与高并发面试

Java虚拟机

教材: 深入理解Java虚拟机(吹爆)

突击效果不明显,但是好书推荐(没看完)

书籍: 码农翻身,数学之美,编程珠玑,深入分析Java Web, 深入理解计算机系统

 

项目(10月):
学到九月份多还是虚的很,啥也不会啊,没做过东西。。于是去慕课网找了一个秒杀的免费项目:https://www.imooc.com/u/2145618/courses?sort=publish (其实这个项目根本没有秒杀。。也没有高并发),就跟着大概过了一遍,敲了一敲代码。就当作自己的项目好了。当时跟着敲完也不知道干啥,也不知道啥是DTO,怎么就想到这么处理的,一脸懵逼。稀里糊涂就做完了。。。

 

实际上,后来去面试的时候,这个项目基本就没问过我,面试官一看就知道很水。

 

第一次实习

12月的时候内心OS:当时真的是非常虚,感觉学的都是屠龙之术,也没怎么写过代码。真的菜到自己发慌。。

11月底,12月初的时候就开始尝试找日常实习了。感谢北邮人论坛,里面有非常多的实习机会。过程不表了,面经大同小异。最终入职了百度实习。一直实习到四月多。

刚进去实习的时候,Linux不会,Spring Boot不会,RPC不会,Redis不会,消息队列不会,微服务架构都没听过,Docker部署啥意思。。。

反正就是压力很大,还好一开始让看了一个月代码和熟悉环境。每天疯狂查看资料,买书看书看视频。回家过年的时候还把ZookeeperDubbo刷了一下。。

煽情段:只想说说找实习很看和面试官的缘分,遇到好人真的很难得。我有过一面就被面试官鄙视离场的心酸(新浪微博问了两个问题就让走了),也有过碰到师兄耐心指导(头条一面是师兄,很和善,但是三面主管挂了),也有过几个offer。很感激百度面试的两位面试官,有些问题都是他们自问自答就让我过了(后面进去实习的时候是说仿佛看到了他们当年自己很菜的样子。。。后面也是亦师亦友,非常感激!)

 

实习过程中的补充内容:

Redis

教材: Redis实战

视频: 一站式学习Redis 从入门到高可用分布式实践

Zookeeper

教材: Paxoszookeeper分布式一致性原理与实践

视频: 尚硅谷大数据之Zookeeper

Dubbo

教材:

视频: 尚硅谷dubbo

Spring Boot

教材: Spring Boot实战

视频: 尚硅谷Spring Boot

消息队列:

最近在看kafka,还没看完不好推荐。

 

春招

实习了三个月左右,年后回到学校就三月多了,各大厂也开始了暑期实习,我也跟随大流一起投简历。

 

薄弱点:前面可以看到因为基础太差,花费了大量时间看书和看视频,导致算法比较薄弱,只会一些非常基础的(200题不到,而且刷两题,忘一题)。所以春招开始的时候也是很紧张的,巩固基础和兼顾实习的工作,还有实验室要发小论文非常焦虑。

后悔点:实在是没有办法,算法真的不是一下子就能学会的,而且也有一些懒惰,期间经常玩乐,如果能把每天休息玩耍的时间用来刷算法题。。

结果:最终春招只投了腾讯和阿里,也运气比较好的拿到了offer,没有考太难的算法题。

 

一些补充

学习错觉: 

上述感觉每一块内容我就列了一两行,实际上要吃透非常困难,比如高性能MySQLJava虚拟机相关的内容我就看了好几遍。而且需要好多博客内容加以辅助理解。

我列的不可能覆盖所有的面试点,还需要保持好奇心多学习。比如大数据题思路,智力题,架构设计题等等,这些要说的内容太多了。保持好奇&互相学习!

学习方式:

我比较喜欢视频快速入门-->书籍慢慢深入-->再动手实操。

个人认为,学习不分方式,适合自己的就是好的,有些人比较歧视培训班出来的,我关注的某画仓鼠漫画的技术大佬就是培训班出来的,感觉非常强。

为什么考研看张宇视频和肖秀荣视频就不会受歧视呢?

搜索资源:

有些人学的不够快是找的资源方式不对。

多向师兄师姐打听

多加技术QQ群讨论

尾言

写了这么多,放个二维码愉快一下氛围吧!支持的点赞收藏回复三连吧~

登录后发表评论