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

打个广告:欢迎投递我们组,菜鸟网络大快递技术部。业务包括 菜鸟裹裹,消息推送和智能语音。主要接收Java开发和移动端开发。实习感受可以看我帖子。详细的可以加我微信了解 18501181822

引言

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

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

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部署啥意思。。。

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

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

实习过程中的补充内容:

  • Redis:
    • 教材: Redis实战
    • 视频: 一站式学习Redis 从入门到高可用分布式实践
  • Zookeeper:
    • 教材: 从Paxos到zookeeper分布式一致性原理与实践
    • 视频: 尚硅谷大数据之Zookeeper
  • Dubbo:
    • 教材: 无
    • 视频: 尚硅谷dubbo
  • Spring Boot:
    • 教材: Spring Boot实战
    • 视频: 尚硅谷Spring Boot
  • 消息队列:
    • 最近在看kafka,还没看完不好推荐。

春招

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

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

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

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

一些补充

  • 学习错觉

    • 上述感觉每一块内容我就列了一两行,实际上要吃透非常困难,比如高性能MySQL和Java虚拟机相关的内容我就看了好几遍。而且需要好多博客内容加以辅助理解。
    • 我列的不可能覆盖所有的面试点,还需要保持好奇心多学习。比如大数据题思路,智力题,架构设计题等等,这些要说的内容太多了。保持好奇&互相学习!
  • 学习方式

    • 我比较喜欢视频快速入门-->书籍慢慢深入-->再动手实操。
    • 个人认为,学习不分方式,适合自己的就是好的,有些人比较歧视培训班出来的,我关注的某画仓鼠漫画的技术大佬就是培训班出来的,感觉非常强。
    • 为什么考研看张宇视频和肖秀荣视频就不会受歧视呢?
  • 搜索资源

    • 有些人学的不够快是找的资源方式不对。
    • 多向师兄师姐打听
    • 多加技术QQ群讨论
    • 常刷牛客

尾言

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

#暑期实习##阿里巴巴##腾讯##百度##春招##面经##笔经##Java工程师#
全部评论
楼主,我研一下即将研二,打算下半年找个java日常实习,现在学习进度是简单的把java、mysql、ssm、springboot、linux指令看了一遍,还没有做项目、没有深入底层源码、没有针对面经知识点复习背诵。请问:只剩下几个月了,选项①把前面的基础知识点针对面经深入底层的开始复习背诵;选项②做一个好点的分布式/微服务项目,针对面试深入理解里面的技术点。哎,感觉项目这一块真的太耗时了,光是简单的业务逻辑代码我都只能照着视频慢慢打,打完也不会自己复现或者举一反三,而且同时完成选项①和②感觉时间非常吃紧。看前辈并没有做很高深的项目就拿到offer了,所以想问问前辈我这个情况应该怎么做呢?  还有就是如果直接为了面试去看基础知识点,多线程、jvm、集合等,确实看了后 面经里的题可以迎刃而解,但很多东西没有使用就直接学习,感觉很迷茫,比如多线程,之前看了一本多线程的书,看完后一直没遇到要使用的地,结果又忘的差不多了……自己非科班,对it领域的学习方式感觉很不了解。。各方面问题有点杂,烦请前辈以及各位看到的大佬能解答一下~万分感激
3 回复 分享
发布于 2019-06-21 15:16
为什么每次这种帖子有个共性就是之前都有一段不错的实习经历,感觉这帮助非常大。。。。。我酸了,你导师真好。
点赞 回复 分享
发布于 2019-05-14 13:12
大佬能不能加个好友分享一下你用的视频资源,我现在是研一非科班正在自学java,目前也是视频+看书自学
1 回复 分享
发布于 2019-05-10 21:12
楼主,北邮人论坛能邀请么
1 回复 分享
发布于 2019-05-09 18:34
1 回复 分享
发布于 2019-05-08 23:20
牛逼牛逼😄
点赞 回复 分享
发布于 2019-05-08 21:52
恭喜哈,不过你把我的昵称写错了,应该是 CyC,这个昵称一方面和我的名字谐音,另一方面更像是一个吐舌头的表情。😋
72 回复 分享
发布于 2019-05-08 23:36
这是我唯一看到最后笑出声的学习指南了
7 回复 分享
发布于 2019-05-08 19:59
学到了。收获满满
2 回复 分享
发布于 2019-05-13 09:07
北邮的
2 回复 分享
发布于 2019-05-08 20:08
tql😋😋😋向大佬学习
点赞 回复 分享
发布于 2024-10-29 09:32 北京
楼主,向你请教一下学习方法,我也喜欢看视频快速入门,但是比如像我在学习消息队列,redis,shiro,单点登录等知识的时候,总感觉学不到精髓,找不到入门到实践的好视频,请问你是怎么解决这个问题的呢。
点赞 回复 分享
发布于 2021-09-14 11:21
请问王道习题是买的卷子还是网上有啊 木有找到 求分享
点赞 回复 分享
发布于 2020-03-24 11:41
大神,liuyubobobo老师的视频有免费的吗?
点赞 回复 分享
发布于 2020-03-20 12:43
我主要就是看视频,就是对一些网站的资源不是很会利用,比如博客啊,网站啊,包括git啊,总感觉别人搜一搜就能找到一些比较好的东西,或者是最新有变动的技术啊等等,请问有没有一些探索的方式呢?
点赞 回复 分享
发布于 2020-03-03 18:07
楼主,请问下 你找的实习是大数据方向吗?😂
点赞 回复 分享
发布于 2020-01-03 20:29
研二,还没看完s***😥
点赞 回复 分享
发布于 2019-12-01 12:26
很优秀的帖子,不过答主能不能把视频写具体点,或者贴下视频链接.
点赞 回复 分享
发布于 2019-11-30 20:50
大佬,我能不能看看你简历呀学习一下,生活太难了
点赞 回复 分享
发布于 2019-11-28 21:33
哈哈哈哈,你说的那某画仓鼠漫画的技术大佬不就是程序员小灰吗?😂😂😂
点赞 回复 分享
发布于 2019-11-26 21:13

相关推荐

找到实习就改名4月17日下午更改:1600一个月?
点赞 评论 收藏
分享
从输入URL到页面加载发生了什么:总体来说分为以下几个过程: 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束。简述了一下各个过程的输入输出作用:以下是对从输入 URL 到页面加载各过程的输入、输出或作用的一句话描述:DNS 解析: 输入:用户在浏览器地址栏输入的域名(如 www.example.com)。输出:对应的 IP 地址(如 192.168.1.1)。作用:将易于记忆的域名转换为计算机能够识别和用于网络通信的 IP 地址,以便浏览器与目标服务器建立连接。TCP 连接: 输入:浏览器获得的服务器...
明天不下雨了:参考一下我的说法: 关键要讲出输入网址后涉及的每一个网络协议的工作原理和作用: 涉及到的网络协议: HTTP/HTTPS协议->DNS协议->TCP协议->IP协议->ARP协议 面试参考回答: 第一次访问(本地没有缓存时): 一般我们在浏览器地址栏输入的是一个域名。 浏览器会先解析 URL、解析出域名、资源路径、端口等信息、然后构造 HTTP 请求报文。浏览器新开一个网络线程发起HTTP请求(应用层) 接着进行域名解析、将域名解析为 IP 地址 浏览器会先检查本地缓存(包括浏览器 DNS 缓存、操作系统缓存等)是否已解析过该域名 如果没有、则向本地 DNS 服务器请求解析; 本地服务器查不到会向更上层的 DNS 服务器(根域名服务器->顶级域名服务器->权威域名服务器询问)递归查询 最终返回该域名对应的 IP 地址。(应用层DNS协议)DNS 协议的作用: 将域名转换为 IP 地址。 由于 HTTP 是基于 TCP 传输的、所以在发送 HTTP 请求前、需要进行三次握手、在客户端发送第一次握手的时候、( 浏览器向服务器发送一个SYN(同步)报文、其中包含客户端的初始序列号。TCP头部设置SYN标志位、并指定客户端端口 同时填上目标端口和源端口的信息。源端口是浏览器随机生成的、目标端口要看是 HTTP 还是 HTTPS、如果是 HTTP 默认目标端口是 80、如果是 HTTPS 默认是 443。(传输层) 然后到网络层:涉及到(IP协议) 会将TCP报文封装成IP数据包、添加IP头部,包含源IP地址(浏览器)和目标IP地址(服务器)。IP 协议的作用: 提供无连接的、不可靠的数据包传输服务。 然后到数据链路层、会通过 ARP 协议、获取目标的路由器的 MAC 地址、然后会加上 MAC 头、填上目标 MAC 地址和源 MAC 地址。 然后到物理层之后、直接把数据包、转发给路由器、路由器再通过下一跳、最终找到目标服务器、然后目标服务器收到客户的 SYN 报文后,会响应第二次握手。 当双方都完成三次握手后、如果是 HTTP 协议、客户端就会将 HTTP 请求就会发送给目标服务器。如果是 HTTPS 协议、客户端还要和服务端进行 TLS 四次握手之后、客户端才会将 HTTP 报文发送给目标服务器。 目标服务器收到 HTTP 请求消息后、就返回 HTTP 响应消息、浏览器会对响应消息进行解析渲染、呈现给用户
点赞 评论 收藏
分享
评论
369
2282
分享

创作者周榜

更多
牛客网
牛客企业服务