纯自学转行互联网四大厂技术路径

来源 :大学生 | 被引量 : 0次 | 上传用户:feihuaxp
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读

说说路子


  对于转行互联网的同学来说,最缺的是环境。周围没有战友,所以很多信息需要自己去摸索,很容易走弯路。因此,我首先从整体的角度,按照时间轴说一说我的历程。
  研一期间自学了部分算法,主要用C 做一些信息学竞赛的题目,靠这个,对后来的笔试,我基本可以拿到一个进面试的分数。

  研二上我以最快速度發了小论文,从寒假开始系统地看书。由于我只会C 的基础语法,所以首先看了C 的继承派生、封装、多态、模板等内容。刚开始自学效率很低,很多知识看过就忘,因此后面开始做例题,记笔记。一本书看下来,做了20几页的笔记,大概花了3周时间。
  转眼到研二下,算法方向注重数理基础,这对工科生来说是一个优势。周围的同学大多选择了算法,我因此也跟风看了一点机器学习相关的书籍,还在网络上找各种实战视频对照练习。3月末各个大厂开始招暑期实习生,我尝试投递了蚂蚁金服、字节跳动、百度等公司。由于准备并不充分,基本都是一面凉。原因在于我大大低估了暑期实习面试的难度,另一方面,暑期实习往往与转正挂钩,竞争非常激烈,而我对此毫无心理准备。暑期实习的失败让我一度想放弃转行。
  4月到6月一方面忙着毕设,一方面实验室活也比较多,一直没能静下来看书,更没有机会如室友一样去找日常实习。6月初端午节回了趟家,好好地复了一下盘,觉得不能放弃。回校后,继续拿起书本。这时,我改变了之前读书记笔记的做法,开始跟着视频来走,速度和效率都提高了很多。
  7月实验室搬到沙河,我也进入暑假模式。每天除了下楼买点吃的,就宅在宿舍学习。在7月下旬终于把邓俊辉的《数据结构与算法》学完,8月上开始刷《剑指offer》和Leetcode。虽然《剑指offer》只有66道题,但非常经典,其中一些题目在面试中都考烂了。

  原本按部就班往下应该看算法书了,但是看了牛客上提前批的大佬履历,以及室友对今年算法岗的判断,我觉得在人人深度学习的今年,自己既没有专业背景,也没有实习项目加持,总不能指望靠看几本算法书就拿到offer。因此,我决定转向后端开发,既能发挥编程的优势,竞争又相对温和。
  于是,我从8月初开始看操作系统和计算机网络。操作系统看“学堂在线”上向勇的公开课,计算机网络看韩立刚的教学视频。由于时间紧迫,这两个都没能好好地跟着做实验,只能理解一下原理。8月底快面试的时候,看面经发现对Linux和数据库等方面知识考查的比较多。因此,利用一周的时间入门了数据库,熟悉了Linux的基本操作。
  9月开始面试。第一个面试是9月1号上午的网易游戏研发。那个时候我连OSI七层模型都说不全,但所幸C 相关的都回答出来了,过了一面。当天晚上腾讯视频面试,面试官基本按照C ,计算机网络,操作系统的顺序提问。当问到poll和epoll的区别时,我坦言不会,面试官直接脸就沉了。果然,面试结束后我的校招进度条就灰了。
  9月2号上午面美团。经过昨天的两场,我面试心态平和了许多。美团一面问得很全,但也很基础。由于简历上没什么可以聊的,于是开始考算法题。一共问了五道,前四道都是《剑指offer》上的,第五道是一道类似于整数拆分的动态规划,顺利写完了代码。面试官看时间还有剩余,于是问了一道概率题。当天下午,美团HR通知我一面通过,约了9月5号的现场二面。   9月5号的美团二面在望京。二面主要还是考察算法基本功,如手写一个堆排序。不同的是,面试官问了项目:项目背景是什么;有哪些挑战;你在完成项目的过程中起了哪些作用,有哪些创新点;如果再给你一次机会,你会怎么做。这4个问题是关于项目的基本面试套路,因此简历里面有相关的项目一定要提前组织好语言。
  9月中旬做了一些笔试,如滴滴、京东等,一直没有消息。接着投了几个外企,但外企招人很少,且竞争激烈,面试机会都没拿到。那段时间有点沮丧,因为投一个挂一个,甚至对自己产生了怀疑。
  9月21号字节跳动给了面试机会,可以选择视频和现场面。我选择了现场面,而且特意选了9点的第一批。我觉得现场面的效果更好,而且面试官会对第一个面试者一般要仁慈一些。
  字节跳动效率很高,一上午走完了三面。一面是广告推荐的后端,带着我写了几段Linux的指令,然后考了一道括号匹配,顺利通过。二面是互娱直播,上来问了死锁,然后考了一道链表排序。我先无脑用了哈希排序,面试官马上问能不能原地,我表示要想想,后来在提示下写完了代码。结束后,面试官说待会儿加你微信,我心里窃喜。
  三面是财经部门,面试官看上去年纪较大,部门Leader的感觉。开始考设计题,分析红包的提现过程,如何在不加密的前提下保证安全,提现的瞬间服务器崩溃怎么处理等。由于没有经验,我只能硬着头皮往数据库相关的方向去靠;在说的过程中涉及一些知识点,面试官会顺着往下问,最后问了发展规划。有意思的是,当我表示想去一个技术强的部门时,面试官笑着说那你应该去蓝翔啊。
  面完后,HR让我去吃了午饭,很丰盛。饭后,我当面问了HR结果,HR告诉我面试通过。这是我秋招第一个面试通过的公司,也是体验最好的一次面试。
  9月22号下午面百度。由于过了字节,所以百度面得比较佛系。一面是基础知识和难度较低的算法。面试官非常友好,在我回答完之后立即给予反馈,因此我越答越放松,顺利过了一面。
  二面面试官来自百度地图,这是整个秋招最有压力的一场面试。上来就问B 树,然后让我在纸上手写B 树,我直接懵了。他看我不动弹,说那写一下二叉树吧,包含增删改差。我写了半个小时,马马虎虎。写完给面试官看,他淡淡地说了一句怎么没有平衡啊?我心里想你之前也没讲啊。然后开始考设计,题目是不同的终端登录微信时,数据库怎么处理。比如PC端登录需要手机确定,不同的端登录会将其他端踢下线。这种题目我自然是陌生的,于是又是硬着头皮上。整个过程中面试官不给我任何确定的反馈,比如会给你看似二选一的问题,最后告诉你其实两种都选。因此面完十分心累,还好给过了。三面是部门主管,问了InnoDB和MyISAM的区别就结束了。
  一周后,收到百度录用的短信和美团的意向书。9月28号在北京面了网易的二面,当天晚上发了offer邮件。9月29号现场集中发带薪offer,但是只给了初级游戏研发工程师,在我表示已经被百度和字节录取后仍不能调整职位,于是现场拒绝了offer。
  至此,互联网秋招结束。

说说干货


  下面细致地讲讲怎么准备。从个人经验出发,可以分为语言、数据结构与算法、操作系统(包括Linux系统)、计算机网络、数据库(关系型和非关系型)这几块基础内容。后續可以继续看系统设计、工具等进阶内容,这个可以根据岗位的需要有针对性地看。前一部分的基础内容资料网络上都很成熟,而后一部分的进阶内容则比较分散,我主要看博客或者GitHub上的总结。
  语言,我选择的是C ,原因有三,第一我本科学的C语言,C 的语法与C很像,学习成本低;第二我在做算法题的时候,官方语言是C ,所以一脉相承;第三个人觉得C 较为底层,对代码的细节要求较高,对代码基本功有好处。在刷Leetcode的时候,看到很多“高手”用Python一行代码AC来显示自己的水平,我觉得这样虽然走了捷径,却耽误了基本功的建设,这在面试的时候无疑是吃亏的。事实也正是如此,有的人Leetcode刷了不少题,但是面试的时候连快排都不会写,自然一面就挂了。
  C 的学习,我建议跟着“学堂在线”上郑莉老师的课去学。郑老师的课清晰易懂,例子充分,能很好地将容易混淆的概念讲清楚。我不建议上来就抱着“C Primer”啃。人都有畏难情绪,容易半途而废。“C Primer”把各方各面讲得很全,但是过于厚重。我先跟着视频学完了一遍,然后重点看了“C Primer”关于多继承和多态的内容。由于时间比较充足,所以做了笔记,在面试前,复习非常有效。
  数据结构和算法其实是两块内容。我先学的算法,然后学数据结构。算法总结来看,包括分治、搜索、贪心、动态规划等几个大的方面。分治如二分、归并、快排等;搜索包括深度优先搜索、广度优先搜索,是算法题最基本的方法;贪心和动态规划的题目都有一定难度,一般很难直接想到思路,所以必须要有一定量的题目积累。做题除了牛客网和Leetcode,洛谷网站也可以试试。
  数据结构方面我是跟着“学堂在线”上邓俊辉的课。邓的课非常精巧,获誉无数。数据结构总体来看,包括栈、队列、链表、向量、堆、树、图、集合(并查集)、哈希表等。其中链表、堆、树(重中之重)、哈希表是重点。图虽然经典,但是感觉考察的不多,知道最短路径基本就可以了。这部分题目可以看《剑指offer》。但相比题目,面试官更喜欢考察某种数据结构的实现,如用数组实现链表,写二叉树的接口,用数组实现堆,并查集等。比较有挑战性的是实现红黑树、B 树等,但属于极少数。
  操作系统我看了多个版本,最后还是觉得“学堂在线”的向勇讲得好。课程包含讲解和实验,由于时间有限,我只学了讲解的部分。操作系统的主要内容有:进程与线程、死锁和内存管理。进程是重点,包括进程与线程的概念与区别,进程控制,进程同步,进程通信等问题;死锁面试基本都会问,但是内容不多,主要围绕是什么,为什么,怎么办三个方面;内存管理主要是段页式存储、虚拟内存、页面置换等方面,这个找一篇总结性的博客看懂就基本可以了。   操作系统另一个方面是Linux系统,是面试的一个重点。这方面我仅仅入门,所以面试的时候非常吃亏。Linux系统相关的实战课网上很多,如果能够学完,且有一些作品,即使是造轮子,面试也会非常加分。
  计算机网路我看的是韩立刚老师的课。课程虽然久远,但是非常经典,B站和六纬上都有资源。韩擅长用画图的方式来讲网络关系。内容基本按照TCP/IP五层模型展开,即物理层、数据链路层、网络层、传输层、应用层。前两层了解即可,网络层必须要掌握IP协议,传输层包括TCP和UDP,几乎面试必问,考得也比较细致,比如TCP的可靠传输、流量控制、拥塞避免等。因此必须理解工作原理。应用层主要是HTTP,问得较多的是get与post的区别。
  韩的课由于比较老,没有讲Socket和I/O模型,这部分可以看B站上的黑马程序员。I/O模型主要考阻塞/非阻塞、同步/异步五种I/O模型,尤其是I/O多路复用中poll、select和epoll的区别。
  数据库看得较匆忙,主要分为关系型数据库(MySQL)和非关系型数据库(Redis),个人觉得MySQL是重点。关系型数据库的基本内容包括:ACID属性,数据库的基本概念(如范式)和基本操作指令(虽然一般不会直接考察写指令)、隔离级别、锁和并发一致性问题、存储引擎InnoDB和MyISAM、索引(重点)、切分、主从复制和读写分离等。总的来看,数据库需要花充分的时间去学习。这部分我为了快,直接看的Github上的总结。非关系数据库看的较少,重点看了持久化(RDB持久化和AOF持久化),同样也是基于Github。在此,我建議还是跟着视频课程走,多做点题,这样学比较扎实。
  最后,我看了一点缓存、集群、分布式方面的总结,便匆匆忙忙投入秋招了。看到这里大家会发现,上面的几块其实就是计算机考研的课程。大家学完了这些基础知识,根据面试经验实时调整和补充一些知识点,基本就可以去面试了。如果想要拿到SP,需要再做更多的积累。
  2019届秋招接近尾声时,我在互联网方向拿到的offer有百度、字节跳动、美团和网易,岗位均为后端开发方向。我给今年正在求职的同学,讲讲我的互联网转行之路。
  先介绍一下自己的背景,北航本硕,保研,专业方向是航空宇航科学与技术,学习成绩中上,有两个学科竞赛奖项,一篇SCI。
秋招就像一场考试。招聘企业有上市公司,有独角兽,也有初创企业和国企外企;时间跨度长,从7月提前批就开始;变数多,企业和个人都是双向选择。因此,经历过秋招的人都会脱一层皮。未来方向的迷茫,被拒绝的沮丧,等待结果的焦虑,拿到offer的喜悦和选择的纠结,未来发展的担忧,这些大部分人都或多或少会经历。也正因为如此,我才决定详细地写下我的历程,为后来者,特别是那些迷茫的转行者,提供一个真实的案例。

  计算机方面,没有实习,只有一个略微相关的项目能写到简历里面。专业知识全靠自学,所以过程也异常痛苦。准备时间从2018年寒假开始,到2019年8月底结束,前后跨度不到两年。
  秋招期间,包括互联网和航天院所,总共投递20多份简历,笔试8次,面试9次,5家单位给出明确录用意向,最终的结果比自己的预期理想。
  秋招就像一场考试。招聘企业有上市公司,有独角兽,也有初创企业和国企外企;时间跨度长,从7月提前批就开始;变数多,企业和个人都是双向选择。因此,经历过秋招的人都会脱一层皮。未来方向的迷茫,被拒绝的沮丧,等待结果的焦虑,拿到offer的喜悦和选择的纠结,未来发展的担忧,这些大部分人都或多或少会经历。也正因为如此,我才决定详细地写下我的历程,为后来者,特别是那些迷茫的转行者,提供一个真实的案例。
  责任编辑:王新伟
其他文献
重庆大学学生们针对解决城市小区中家庭用车停车难问题和很多地区人工采摘水果容易伤害果实问题,创新地设计了小型停车装置和小型辅助人工采摘机械装置,这几项设计在第八届全国大学生机械创新设计大赛上获得了一等奖。  轻便的草莓采摘小助手:  草莓分类采摘一体助力装置  组员:刘巍 沈宇博 马嘉禾 杨正洁 李硕  指导教师:任红 王芳  使用时,装置的采摘机构将采摘器正对草莓,用V型刀槽对草莓梗进行切割后将草
眨眼间,各大公司的秋季招聘都开始了,在一个个选择面前,我推迟了这个在工作之间徘徊的难题,转去考了研。好在功夫不负有心人,总算顺利地在国内一流的传媒学校读上了编导专业的研究生。  原来并不悠哉  其实按照我的性格,倘若本科的学校符合我的期待,我很可能就直接投入工作了。但高考失利进入一所省内普通一二本院校的我,几乎从未在大学得到一种归属感。后来真的来到中传读研,发现很多同班同学都抱着和我一样的心态考研
我的家乡桂平,是广西南部一个小县城。小学时候家庭经济条件并不是很好,一家四口人挤在父亲单位一室一厅的小套房里。虽说生活不那么富裕但邻里之间的  关系却是非一般地友好。  那时候的桂平人淳朴,退了休的爷爷奶奶们总会养着一片小小的菜地,多余的菜早晨整理了拿到菜市场卖,每天收入也有五块十块,钱不多但是大家都乐此不疲。夏日的夜晚大人们则拿上自家的小板凳,摇着蒲葵扇谈论家常......  那时候最喜欢的是骑
小雷幼时曾随父母去过印度,东方文明的神秘悠远像一颗种子,在他童年的世界里埋藏下来。后来读到一本俄罗斯译本的《中国文明》,作者以游记的形式,介绍了中国各地不同的风土人情。书中轻松的笔调和生动的场景让小雷产生了一个强烈的念头 ——要学中文,要到中国看一看。  几经周折,小雷拜入一位俄罗斯著名汉学家、语言学家——耿华教授门下,开始学习汉语。在耿华老师家里,小雷第一次尝到了中国月饼,第一次学着烹茶品茗,最
12月某一日的新闻中,新冠疫情的消息铺天盖地席卷而来,但当时的我并没太在意,只当普通新闻左耳进右耳出。因为在不久前,离家50公里的镇子闹了鼠疫,也是来势汹汹,甚至严重到了“封城”,可没过几周,一切又恢复了原来的样子。  翌日一早,下了早读课,班主任急冲冲地赶到教室,神情慌张地告诉我们,“疫情暴发地在武汉同学们要做好自我保护,千万不要放松警惕。”我愣了一下,不过很快缓过了神,小脑瓜里飘的都是“我吃在
2020年10月26日,北京航空航天大学召开2021届毕业生秋季线下大型综合双选会,  120家用人单位在北航体育馆设展台“相亲”。  毕业生亮相时“相”靓不靓,用人单位心里有本账。  记者与几个用人单位看“相”人一聊,感到这本账有三个字:高、能、通。  “高”就是在所学专业上站位高  有的毕业生眼界低、窄、短,只知道自己专业上的“一畝三分地”,看不到专业前沿瞬息万变的“敌情”“动态”,心里没有全
前一阵子,看到一篇某名记做的关于剑桥的访谈,文章的很多地方仔细看看都觉得有点儿不自然,她描述了一个看起来不食人间烟火、仿佛每个人都住在云端俯览凡尘的圣地。2015年夏末,我来到这个距离伦敦相隔50分钟火车车程的英国小城读艺术教育的研究生。我双眼所见、双脚走过的剑桥,是不太一样的,它更加活生生、热腾腾、平易近人、十分可爱而自然,而非刻意地透出知识和书卷的厚重之气,把孩童般对大千世界的好奇心无限投入到
彝汉互译,走出大山  作为家乡与外界的联系纽带,勒苦有着无法说出的苦恼:上大学后,勒苦老家的一些亲戚来成都看病、办事,但他们不会说汉语,也对山外的一切都感到陌生,所以总要把勒苦喊上做翻译,导致他常在学业和亲情之间奔波。  后来勒苦也回忆道:“初中毕业后,我考上了西昌的高中,妈妈平时想要给我打电话,只能去村委会找人帮忙。高中离家不远,还能在想念母亲时回家。大学离家太遥远了,我思乡情切。智能手机对妈妈
在对遇村遗址的发掘过程中,我们发现了东西向独立的墓群,出土的鬲、豆、罐等器类的形制皆为西周时期,其中陶鬲卷沿、敞口、高裆的特点明显具有西周时期特色,这表明曾经有西周人群在此地生活。与此同时,遗址区内发现的南北向墓葬出土的如口部呈小喇叭形的陶罐等,皆具有东周时期的特点。据此,我们确认了西周与东周两类人群的存在。这是一个大发现!  在遇村遗址进行考古挖掘初见乍欢 久处仍怦然陇东地区前期发掘以墓葬为主,
2016年底,我应聘了麦肯锡调研员的实习工作,也因此有机会踏上非洲大陆,对在埃塞俄比亚的中资企业的经营情况进行调研和采访。对我来说,每一个调研机会都来之不易,在首都亚的斯亚贝巴站稳脚跟之后,我开始考虑向外地拓展一下调研工作,关注起南方一些城镇上的企业。因为地理位置偏远,它们所涉及的行业更加因地制宜,有屠宰场、木板厂、机电维修厂、废品回收厂等等。  《动物世界》里面的非洲大草原仿佛永远是那么干燥,可