乔戈里粉丝的读者投稿,不错的文章,和这位兄嘚相聊甚欢,这位兄嘚最后去了微软,乔戈里感觉是个不错的选择。

大家好,我是小E。今天和大家分享一下自己最近一年找工作的经验。

先交代一下本人背景,本人是电子工程类硕士,学习的课程也都是偏电路等,在研一下觉着自己更对计算机编程感兴趣,于是开始了自学转行之路。

今年因为疫情影响,工作着实不好找,虽然听起来各大厂扩招了,但据身边同学的反馈来看,还是比去年困难许多。小E侥幸拿到多家国内互联网大厂(BATTMD中多家)和微软意向书,也是得益于之前的比较好的学习路径。

根据面试经验,小E发现一般大厂面试主要分四个部分:计算机基础(计网,操作系统,数据库)+语言特性相关(看你是java/c++/python/go…)+数据结构与算法(常见概念+leetcode题)+自我介绍(项目经历,比赛经历,奖项等等)。

由于每个人个人经历不同,在自我介绍准备部分可能有千差万别,但对于计算机基础和数据结构与算法这两块大家准备方式都很类似,并可以形成一个完整的学习路径。在这里我就分享一下自己的一个学习路线,为学弟学妹们提供一个学习思路。

  • 计算机网络:

教材:谢希仁的计算机网络

视频:计算机科班考研的视频

一般来说大厂计算机网络面试题也比较常规,如TCP3次握手四次挥手,HTTP等,一般也集中在传输层以上,大家可以重点看这个。一般数据链路,物理层问的就特别少了,针对高频知识点准备就可以了。

  • 操作系统:

教材:《operation system three easy piece》《操作系统真象还原》

视频:B站Up主Y4NGY

《operation system three easy piece》。这本书写的很好,拿来入门是最好不过了,网上有对应中文版。除了这本书,有时间的话推荐《操作系统真象还原》,配合有老哥上传到github的代码,手动敲一遍,理解会更深。

  • 数据库:

教材:《MySql必知必会》《Redis设计与实现》

视频:B站尚硅谷MySQL基础+高级,尚硅谷Redis

数据库的话分sql和nosql, sql的话一般来说学习Mysql就行了,这部分资料比较齐全,可以针对b站相关视频学习,看完尚硅谷视频后,着重根据博文整理索引,MVCC,事务,锁的知识点(后期本公众号也会搬运自己的整理工作)。

nosql的话比较火的有redis, hbase,mongodb等等,推荐大家有时间学习redisredis的话内容比较少,有些面试官会问跳表实现,但一般也就问问哨兵,主从,缓存雪崩穿透击穿,redis的数据结构等等。

一般面试官有的还会问你手写mysql,这部分可以针对leetcode的数据库题和题解多练一练。

  • 数据结构和算法

教材:《剑指offer》(leetcode上可以动手练习)《程序员代码面试指南》(牛客网上可刷)

视频:慕课网liuyubobobo 玩转算法面试-- Leetcode真题分门别类讲解  算法与数据结构-综合提升 C++版

大家别看见bobo老师用的编程语言和你用的编程语言不一样就不看了,语言不重要,主要是把bobo老师讲的方法弄明白就行了。bobo老师绝大多数题都带了leetcode题号,视频看完可以对着题号再刷一遍加深印象。

按这个顺序刷完,一般大厂的面试题都能轻松解决,但个别大厂诸如微软,还需要再精进一些,推荐花花酱leetcode刷题视频,参加一些周赛查漏补缺。

到这里基本上针对字节这样针对语言特性不是很要求的公司都可以解决了。针对语言特性的要求高的公司,由于我本人学的是java,后面会出一期专门讲java学习路线的。

  • 面经相关(划重点)

国内互联网火了这么多年,网上也有很多面经,对每个知识点有个概括性整理,这里推荐github搜索fullstack-tutorial。但是市面上上知识点整理很多都千篇一律,其实面试官听了这么多重复答案后也想听一些新的,更深入的知识,这样会有一种眼前一亮的感觉,增加面试的通过概率。

举例子来说,大家背面经的话,很容易就有盲点,诸如UDP和TCP区别,面经往往忽视了udp多播和广播这一功能。进程线程区别上,往往忽视MMU,内存布局,mm_struct, fs_struct, file_struct,copy on write,子进程和线程区别等等。如果能在面试的时候讲到这些,能让你和普通八股文选手迅速拉开差距。

大家好,我是Encoder。上期和大家分享一下自己最近一年找工作的学习经验。主要讲了计算机基础的学习方法,这期咱接着往下讲,讲一下语言特性方向的学习建议。

Java基础:

书籍:《疯狂Java讲义》

其实学Java的话大家都听过《疯狂Java讲义》,对这本书看一下就可以了,但是他上面写的一些扩展库可以不看,然后面试中一些盲点刁钻问题我也会后期做个整理发到我的公众号上。

java多线程:

书籍:《Java多线程编程实战指南(核心篇)》

一般来说面试这一本就够了,书里讲的比较细,大家看书的时候对照以下知识点重点看:重点synchronize关键字的使用及原理,CAS锁,volatie关键字使用及其原理,线程状态线程实现方式,sleep wait notifynotifyAll,join,interrupt, condition,AQS简介,使用AQS的组件ReentrantLock,CountDownLatch,CyclicBarrier,Semaphore,线程池相关如executor框架,线程池参数,submit,execute方法,线程池状态,threadlocal实现原理。

java虚拟机:

书籍:《深入理解java虚拟机》

Java虚拟机包括jvm内存模型与gc,一般大家会推深入理解java虚拟机这本书,这本书确实不错,但是推荐大家挑章节阅读即可,重点看章节:自动内存管理机制,垃圾收集器与内存分配策略,虚拟机性能监控与故障处理工具,虚拟机类加载机制。

java框架:

视频:B尚硅谷雷丰阳老师 Spring SpringMVC MyBatis,SpringBoot

框架的话,分为javaweb框架和java collection框架,对于javaweb框架,大家可以去b站看雷丰阳老师的ssm springboot视频。collection框架的话,重点了解map全家桶。

前期资料:

慕课网liuyubobobo算法与数据结构-综合提升 C++版

慕课网liuyubobobo玩转算法面试-- Leetcode真题分门别类讲解

慕课网剑指Java面试

书籍:剑指offer ,程序员代码面试指南,Java多线程编程实战指南(核心篇),深入理解java虚拟机,MySQL必知必会

公众号:小林coding 

网站:github,cyc2018

10月-11月中旬

确定自己主攻的语言,如java/c++/js….把基本语法过一遍

11月中旬-11月底

慕课网liuyubobobo算法与数据结构-综合提升 C++版(主要看数据结构,不要在意这个是C++写的)看完,并做笔记

12月-1月

慕课网liuyubobobo玩转算法面试--Leetcode真题分门别类讲解,并把他讲解的题和布置的题全部做一遍,leetcode hot100,(保持1天5题+)并把自己认为的好题记下来

2月

剑指offer每天刷3题,之后保持每天做3-4题的速率刷程序员代码面试指南

3月

主要学习目标:数据库(剑指Java面试,MySQL必知必会),java多线程(剑指Java面试,Java多线程编程实战指南(核心篇),Cyc2018)

4月

主要学习目标:计算机网络(剑指Java面试 , 小林coding,Cyc2018),java虚拟机(剑指Java面试,深入理解java虚拟机,Cyc2018)

5月

主要学习目标:操作系统(小林Coding,Cyc2018 )

java框架(B站尚硅谷SSM)

6月-7月

主要学习目标:项目,java框架(B站尚硅谷SSM)

然后开始你的offer收割之旅吧

当然这是必做版,之前在前两篇推荐文章中提到的视频和书籍,也希望除了完成这些必备工作后,也学习一下。春招实习JAVA后端, C++版时间点敬请期待!

大家好,我是Encoder,先简单做个自我介绍,我是非科班出身,通过自学的方式,拿到了BATTMD多家和微软offer。今天给大家分享一下自己的算法的经验。

写在前面

随着互联网的发展,各大厂的招聘要求水涨船高,几年前,做算法题还不是必备项,有的公司最多要求写个链表插入,二叉树遍历这种课本上的模板题。但如今由于投身互联网的人太多,国内公司也向硅谷大厂招聘看齐,推行了代码考察。按形式来讲,代码考察的难度和广度可能还会随着时间增长。因此,掌握算法能力不仅仅是外企所需,更是拿到国内互联网厂的基本功。

但很多同学开始接触算法的时候直接硬刷,通过做题学习知识点,虽然这不失为一种学习方法,但是这种方法往往效率偏低,而且学习的知识点偏琐碎,比较难形成一个体系。由于本人非科班,学习算法也算是从零开始,这里分享一下自己在算法学习的路径,给大家做个参考。

第一阶段(1-2个月)

掌握一门面向对象语言,能熟悉它的语法规则和常用包。以java为例,java是一门面向对象的程序语言,我在这阶段做的工作有:

  • 找一本市面上好评较多的教材熟悉语法规则,这里我用的是《疯狂java讲义》。

  • 下载 IDE对着敲一下,巩固自己对语言的书写。

在这一部分,很多人就会在意语言的选择,有的程序员说php是世界上最好的语言,又有人说人生苦短,我用 Python 。有人学了 C++,又去学了 Python , Go 语言,陷入了语言的学习不能自拔。在这里我给出自己的一个建议:只要是面向对象语言,针对算法来说,学一门足以。 你也可以选择小众语言 Go, Rust...只要工具包多,教程多都可以,关键是多练习,熟悉这门语言的语法规则。这是这阶段最重要的。

第二阶段(1-2个月)

熟悉常见数据结构,并且熟悉这个数据结构在你的语言中的使用规则。以java为例,相当多的数据结构在Java的collection框架下,我在这个阶段做的工作有:

  • 找一个市面上较好的教程入门,这里我采用的是慕课网《算法与数据结构-综合提升 C++版》视频,由于他采用的语言是C++,我在他的基础上对照着写了个Java版本。

  • 了解自己熟悉语言的常见数据结构使用,包括了解二叉树,字典树,哈希表,集合,并查集等等的基本概念。

这阶段,重点在数据结构的学习,重点掌握的数据结构有:链表、哈希表、集合、栈、队列、堆、二叉树、二叉搜索树、图。 这部分需要做到时间空间复杂度,性质,了如指掌。其次掌握并查集、字典树,这部分会写就行。最后稍作了解B树,B+树,红黑树,AVL树。了解部分的话,知道他们的定义和概念即可。

第三阶段(1个月左右)

熟悉常见的算法,如 DFS 、 BFS 、 DP 、排序等等,并在你使用的语言中加以练习。在前两阶段的学习中,我们已经熟悉了语言语法规则,常见数据结构,为后续的算法打下了基础。以java为例,我采用的学习方法是:

  • 找一本算法书入门,这里推荐 Robert Sedgewick 写的《算法(第四版)》这本书实现语言是 Java 。

  • 找一个系统性的视频,进行学习,这里推荐《算法(第四版)》配套视频, coursera 上可看, Bilibili 有搬运版本。

这阶段,很多知识点会在第二部分学过了。所以这部分的重点在于针对各个算法有一个系统性,体系性的了解。 如果大家不喜欢《算法(第四版)》的风格,推荐大家看一下《大话数据结构与算法》。其中《算法(第四版)》课后题大家可以不做,对他讲述的内容理解即可。

第四阶段(1-2个月)

在前三个阶段的学习中,我们了解了常见的数据结构和算法,并针对算法进行了系统学习,接下来就可以开始我们的刷题之旅了。这里推荐的资料有:

  • 慕课网 liuyubobobo 《玩转算法面试-- Leetcode真题分门别类讲解》针对他所列举的例题和作业题,进行练习。

这一阶段,我们终于进入了刷题环节,大家记得注册 leetcode 力扣网账户,然后开始自己的刷题之旅吧!

第五阶段(2-3个月)

这一阶段希望大家多刷题,达到见多识广的地步。这里推荐两本书:

  • 《剑指offer》这本书大名鼎鼎,不用多说。这些题在leetcode网站上可刷。

  • 《程序员代码面试指南》这本书罗列的题目也很不错,牛客网可刷。

这个阶段希望大家多做题,多见新题。 这样的话在见新题的过程中做个整理,慢慢的,大家就会发现很多题就是新瓶装旧酒了。

第六阶段(1个月以上)

这一阶段的目的是熟能生巧,多刷好题,经典题。这里推荐的题是:

  • leetcode hot 100,hot100

  • leetcode 精选top面试题

  • 《剑指offer》

这阶段的关键点在于多刷,刷遍数。 这个就像背单词一样,多做几遍,对常见题的理解和他的衍生题,都会有一个烂熟于心的程度。针对我这边列举的题单,做到见题目,秒想思路。但是大家也不用太苛求,有几个hard题的corner case比较难写,大家思路对就行。

第七阶段

进阶高级算法。这部分其实如果不是面试 Google 这种公司,完成第六阶段的学习就ok了。如果还想继续精进,可以参考书籍:

  • 《挑战程序设计竞赛》这本书极好,无论是列举的习题还是例题都值得反复玩味。

  • 各大OJ平台刷题。

各大神在完成这阶段的学习,可以去打打程序设计竞赛了。

写在最后

学习算法关键是坚持,按这套流程走下来,相信大家能顺利通过各大厂互联网笔试了。我个人在 leetcode 上做的题一共是450题,算上二刷,三刷的题一共1k+左右,虽然看起来数字挺多,其实按每天三题算,也就一年而已。无论是校招小伙伴还是社招的朋友,坚持刷题,总会有收获。祝大家早日拿到理想的Offer!

跨专业的我如何收获BAT微软等大厂意向书(学习路线分享)相关推荐

  1. 跨专业的我如何拿到微软offer

    大家好,我是Encoder.今天和大家分享一下自己最近一年找工作的经验. 先交代一下本人背景,本人是电子工程专业硕士,在研一下觉着自己更对计算机编程感兴趣,于是开始了自学之路.今年因为疫情影响,工作着 ...

  2. 计算机考研复试会问什么专业问题,跨专业考研复试会问哪些问题

    1.专业面试会问到哪些内容? 专业课的基础知识永远少不了,时间允许的话,招生院校以及导师的一些专著,以及本专业的核心期刊都看一下. 2.复试中,专业课到底考哪方面的内容? 有的学校有参考书目,有的学校 ...

  3. 跨专业考取上海交大计算机研究生其实并不难,跨专业考取上海交大计算机研究生其实并不难...

    1.明天就要举行毕业典礼了,意味着从某种程度上要与交大来个了结,所以有种迫不及待想留下什么的感觉.下面我结合自身经历来谈谈我对跨专业考研的看法,希望或多或少能让某些人"顾虑"少一点 ...

  4. 从Java小白到收获BAT等offer,分享我这两年的经验和感悟,BAT 面试官 如何面试

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 微信 ...

  5. 从Java小白到收获BAT等offer,分享我这两年的经验和感悟

    我 常想,人生最有趣莫过于前路未知.于是我常常羡慕那些个"金梁古温"笔下随遇而安.随性而为.随缘而爱的浪子们.比如陆小凤,比如叶开. 写在最前 我写过很多篇秋招总结,这篇文章应该是 ...

  6. 从普本到北大:我的跨校跨专业考研经验

    首先做一个我考研情况的简介. 经历了2013年考研的混战,据说是史上考研人数顶峰的年份,因为2014改革,不再有自费生之后,人民群众对于所谓学术硕士的需求量激减,继 而投奔价格费用相当,读书年份较少的 ...

  7. [综合面试] 跨专业大牛的IT求职面试经验分享以及学习知识路线图梳理

    百度三面,跪了,最中意的一家公司的最后一面,结束了我的校招应聘.总结经验和教训,希望能帮助一些人. 个人背景: 本科:大连理工信管专业,本科毕业代码量<500行.中科大读研,专业是管科,学的全是 ...

  8. 多年心路历程见证从技术小白到收获BAT等大厂研发offer,分享一些经验和感悟...

    写在最前 写过很多篇面试总结,这篇文章应该是最后一篇总结,当然也是最完整,最详细的一篇总结.算是人生中一段宝贵的经历,不仅是我研究生生涯交出的一份答卷,也是未来职业生涯的开端.仅以此文,献给自己,以及 ...

  9. 复旦计算机可以跨专业吗,I直达录取现场I2020,还能跨考计算机吗?

    原标题:I直达录取现场I2020,还能跨考计算机吗? 2019跨考计算机简直就是大型灾难现场!是否跨计算机专业让很多2020的考研人犹豫不决~ 下面惊呼君根据对肖同学跨考计算机的心路历程的采访给你们分 ...

最新文章

  1. 万字长文,一文搞懂TCP/IP和HTTP、HTTPS
  2. java day10(续day9)
  3. Bootstrap-table 部分浏览器显示不出来
  4. linux-用户与组的概念
  5. 字符串在Java中_字符和字符串在Java中的旅程
  6. 2.7 RMSprop
  7. 【微软之--起源】(转载自腾讯科技)
  8. VM14Pro下打开虚拟机黑屏及其衍生问题的解决方案
  9. 2021-09-13 《鸟叔Linux私房菜》阅读纪录 第一章-Linux是什么如何学习-Linux 是什么Torvalds的Linux 发展
  10. Java 编程技术中汉字问题的分析及解决
  11. 无法保存在此处,请选择其他位置
  12. [架构]MVC/MCP/MVVM三个框架模式
  13. 5步教你成功求职进入BAT
  14. 新浪微博授权登录 文件不存在C8998
  15. 人脸活体检测、红外人脸数据集下载
  16. ROS-Ardunio 点亮LED灯
  17. 用友u8服务器无法自动启动,u8服务有的没有启动,启动服务,没有反应-用友U8...
  18. 如何把视频分屏?教你轻松学会视频分屏
  19. iPad投影到Windows电脑屏幕上的方法【亲测,均为免费软件,均可用,仅供学习使用】
  20. 敬业乐群,笑谈人生!

热门文章

  1. 世界十大免费电子书网站地址
  2. python爬虫 requests模拟百度翻译
  3. Python读取docx文档的内容
  4. idea安装proto插件后不能识别.proto文件解决方案
  5. WebService技术简介
  6. 织梦 dede TAG 标签调用 大全
  7. WIN7 X64下成功安装HP LASERJET 3015网络打印机驱动
  8. ssm预先加载数据的四种方式
  9. (分享)15款工具合集网站
  10. SpringBoot整合Dubbo报错: java.lang.ClassCastException