背景

  • 1、本人本科一本双非垫底的那种,硕士211。本硕电子通信,完全0基础,转行一年。
  • 2、研一上第一学期上课+外派到老师合作公司写MATLAB。去年4月开始学习Java。

起步

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

  • 啥是leetcode?
  • 啥是github?
  • 啥是IDEA?
  • 啥是牛客网?

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

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

过程

  • 1、战略上坚定信心: 既然那么多人都可以做程序员,甚至高中生都可以,别人可以我肯定也可以。
  • 2、战术上制定计划: 培训班看视频我也看视频咯,对,就是各种视频。(现在想想自己甚至就是培训班出来的)

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

Java入门(4-7月):

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

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

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

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

其中,我觉得帮助很大的是七八月的时候,关注了github:https://github.com/gzc426/Java-Interview,然后就没啥方法,直接硬核地从头开始看。后面证明半年其实也就能看完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群讨论
  • 常刷牛客

作者:小、麦
出自:https://blog.csdn.net/WantFlyDaCheng/article/details/100569954
觉得文章不错的欢迎关注我的WX公众号:程序员乔戈里
我是百度后台开发工程师,哈工大计算机本硕,专注分享技术干货/编程资源/求职面试/成长感悟等,关注送5000G编程资源和自己整理的一份帮助不少人拿下java的offer的面经附答案,免费下载CSDN资源。

觉得文章不错的欢迎关注我的WX公众号:程序员乔戈里
我是百度后台开发工程师,哈工大计算机本硕,专注分享技术干货/编程资源/求职面试/成长感悟等,关注送5000G编程资源和自己整理的一份帮助不少人拿下java的offer的面经附答案,免费下载CSDN资源。

零基础一年拿下BAT三家offer的更多相关文章

  1. 猎豹上市(猎豹的广告收入中有70%来自BAT三家公司,总收入中有58%来自BAT)

    发表日期: 2014 年 5 月 9 日 From 网易专题 文/赵楠 村里那点儿事 猎豹移动上市之夜,我挺激动. 激动除了因为有好朋友在这家公司外,也因为猎豹移动在历史上的几次起承转合非常不易,在巨 ...

  2. BAT三家互联网公司哪家更注重用户体验?

    这几天百度的用户体验又成了设计圈关注的对象,李彦宏好不容易刷出来的好感度一下子被打入了冰点,通过此次事件,不难看出现在的互联网用户对于产品的体验要求越来越高,作为一名美图秀秀级别选手,很难领悟“好设计 ...

  3. 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)   salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...

  4. 马云专访二:点评阿里雅虎交易、BAT三家、互联网巨头与政府关系

    记者:我们不得不要说到你和雅虎之间的事情了.你知道,雅虎对整个互联网业的意义不只是一家公司,它有它象征的意义,重要的是,雅虎对阿里巴巴的意义更加非同寻常,当你最后决定用76亿美元从雅虎“赎身”的时候, ...

  5. 从零基础到拿到网易Java实习offer,谈谈我的学习经验

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  6. 从零基础到拿到网易Java实习offer,我做对了哪些事

    作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间.本文将会讲到我在这 ...

  7. 「浙江理工大学ACM入队200题系列」问题 H: 零基础学C/C++18——三位数反转

    本题是浙江理工大学ACM入队200题第二套中的H题 我们先来看一下这题的题面. 由于是比较靠前的题目,这里插一句.各位新ACMer朋友们,请一定要养成仔细耐心看题的习惯,尤其是要利用好输入和输出样例. ...

  8. salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesforce中的数据库使用的是Force.com 平台的数据库,数据表一行数据可以理解成一个sObject变量 ...

  9. 零基础Python知识点回顾(三)

    元组 元组是用圆括号括起来的,其中的元素之间用逗号隔开.(都是英文半角)tuple(元组)跟列表类似是一种序列类型的数据,特点就是其中的元素不能更改 既然是有序的,那么,嘿嘿,不错,它也可以有索引,能 ...

随机推荐

  1. WPF中ComboBox控件绑定键值对操作

    WPF中下拉框将键值对作为其数据源的具体操作.本实例以枚举类型以及枚举特性描述字符串生成键值对来进行. namespace ViewC { /// <summary> /// View.x ...

  2. TensorFlow Data模块

    模块作用 tf.data api用于创建训练前导入数据和数据处理的pipeline,使得处理大规模数据,不同数据格式和复杂数据处理变的容易. 基本抽象 提供了两种基本抽象:Dataset和Iterat ...

  3. TP5使用API时不可预知的内部异常

    最常见的错误形式例如 controller不存在或者 action不存在之类的 我们第一时间想到的 就是 使用 try{}catch(){} 来捕获 例如: /** * show方法在common里定 ...

  4. Unity移动游戏加载性能和内存管理-学习笔记

    前言 正在学习Doctor 张.鑫大佬的移动游戏加载性能和内存管理,内容非常非常的干,所以我烧了很多开水,边喝边看,一边拿小本几做好笔记 本文只是关于前2章的内容笔记,关于各种资源的加载耗时 纹理资源 ...

  5. 番茄日志发布1.0.3版本-增加Kafka支持

    番茄日志(TomatoLog)能做什么 可能你是第一次听说TomatoLog,没关系,我可以从头告诉你,通过了解番茄日志,希望能帮助有需要的朋友,番茄日志处理将大大降低你采集.分析.处理日志的过程. ...

  6. Python day01 课堂笔记

    今天是第一天学习Python课程,主要从计算机基础,Python的历史,环境 ,变量,常量,注释,用户交互,基础数据类型 ,简单的if条件语句和while循环语句这几个来学习,重点的掌握内容是pyth ...

  7. 【持续集成】GitLab CI + Docker 实现持续集成

    GitLab CI + Docker 实现持续集成 一.持续集成(Continuous Integration, CI)的基本概念 概述 在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后 ...

  8. spring-boot-plus V1.2.2 发布,5 Minutes Finish CRUD

    更新日志 CHANGELOG [V1.2.2-RELEASE] 2019.08.26

  9. DBUtils框架的使用(下)

    刚才讲了使用QueryRunner插入.修改.更新数据,现在来学习一下使用QueryRunner进行数据库表查询. 通过QueryRunner类的query()方法即可完成数据库表的查询操作,但是在查 ...

  10. 记录一则LOCAL_LISTENER的问题

    有网友反映,他在一套Oracle的测试环境中配置有两个监听,分别监听不同端口. 目前想把环境上的一套数据库同时注册到这两个监听,他将数据库参数local_listener和tnsname.ora文件配 ...