拿下阿里,百度,头条,美团,华为,拼多多等15家一线互联网Offer,一个本硕非科班码农的后台开发之路!(1)

调整心态

我的秋招之路,始于牛客,也在此终于牛客。在牛客上找到了学习路线,学习资源,也明白了自信与坚持的重要性,在这里放一段(@XiaoTeng  )牛客大佬在面经中的一段话:

offer = 心态 * (实力 + 面试技巧) + 缘分运气

1、心态

  • 首先是要正视自己的能力,不轻视,不高估。不轻视:对自己有信心,机会那么多,怎么都能有个差不多的offer,不至于失业 。不高估:清楚自己的能力范围,保持好心态,面试是有偶然性的。

  • 不要总给自己消极的暗示,心态差了积极调整,一个乐观向上的态度是非常重要的,提高效率,专注寻找自己的方向。

  • 多交流,不比较。对于每一次面试,只跟自己比有提高就已经很好了,每个人适合的方向和技术栈都不一样。

2、硬实力是关键

我是从2018年3月底开始准备校招,因为是在18年春招实习的时候获得了两次面试机会,分别是网易游戏和去哪儿,下面给大家还原一下真实面试场景,其实我也是和各位非科班的同学一样,基本是零基础开始准备秋招,但希望大家相信只要努力,永远不晚

2018.03.27  ——  网易游戏研发工程师实习面试(下面以Q代表面试官,A代表我)

Q:C里面内联有什么作用

A:不知道…

Q:struct和class有什么区别,和union有什么区别

A:不知道…

Q:虚函数有什么作用

A:不知道…

Q:智能指针听说过吗

A:没听说过…内心os(啥,这玩意是啥…)

就是在这种情况下,面试官还拿着准备好的题目一直面了我40分钟,面试体验很棒,QAQ

2018.04.某天   ——  去哪儿后台开发实习面试

Q:知道二叉树的各种遍历顺序吗?

A:知道,前序中序后序,分别说了下怎么遍历的

Q:好,那你手写一下中序遍历…

A:拿笔挣扎了好久…一个字没写

Q:要不你再好好想想,你都知道遍历顺序了,应该可以写出来的

A:我真不会写…

Q:那今天就到这吧…

总结:相信很多同学在开始的基础都比我好,所以一定要有自信,然后坚持学习,秋招肯定是收获满满(不仅仅是offer上的收获,还有很多关于自主学习能力、个人自律以及自信上的收获)。

#学习路线

毕竟以前没刷过题,没看过书…写的大部分都是C#代码,于是决定开始着手秋招,从语言开始系统学习,关于学习的几个建议(个人觉得算法开发通用,且可能比学习路线更实用!!!

1、一定要做笔记!!!好记性不如烂键盘,知识温故而知新,每次回顾总结再原来基础上再引申一些新学到的知识,如果能达到这样的效果,就相当于自己在给自己面试!做到面试效果好,还不会紧张

2、笔记可以选择很多可在线编辑的软件,个人在用的是Evernote,可能已经积累了数十万字的笔记

3、可以先在网上看看相关的面经,记录常见的考点,在读书过程中及时总结自己的答案,这样既高效,面试时的答案又有自己的理解,绝对加分项!

4、talk is cheap,show me the code. 无论是算法还是开发,只要你是计算机编码相关从业人员,能刷题都是很重要的,这里面不仅可以反映你写代码的速度和质量、思维的灵活性、对常用算法的掌握与迁移以及将抽象的问题具体化的能力,一定要刷题

下面是各方面知识体系的学习资料和路线,大部分是书籍,少部分是我推荐的一些公开课或者b站视频

C++:
  • C++Primer  基础书籍,初学者建议精读,可重点关注一些C++11的新特性,比如智能指针、移动构造等在面试中常考的特性

  • 深度探索C++面向对象模型,这是一本建立起C++面向对象模型观的好书,个人收益良多,另附一份此书总结的技术博客,写的很好,读完本书再读一遍博客,绝对收获满满,以至于我后面复习C++面向对象观,直接对着博客看了

  • STL源码分析,主要看各种STL容器的底层实现方式、内存管理方式,看完自然会对这些容器内部对象到底分配在堆上还是栈上,迭代器失效情况,内存是连续还是非连续等各种问题都有一个很好的掌握

  • Effective C++More  Effective C++,需要对C++有一定了解和使用经验后阅读,里面主要是介绍各种安全管理、效率提升的小细节,可以参考阅读,有些小细节可以在手写代码时体现,给面试官很好的印象!

操作系统 :
  • 清华大学  陈渝老师的公开课(b站和网易云课堂上都有),非常系统的讲述操作系统的一些实现原理,也把包括生产者消费者、读者写者、哲学家就餐等经典问题讲得非常透彻,作为清华的公开课,又不失知识的广度和深度,推荐 。

  • 深入理解计算机系统(CSAPP),这本书真的是讲解整个计算机系统的一部神书,短短的篇幅内能涵盖到这么多的技术点(看完公开课后再来读效果应该会更好),我翻来覆去读了三四遍,每次读都有新的收获,极力推荐 。

  • 现代操作系统,详细讲述操作系统的基本概念,其实我并没有读过,因为没有找到这本书的电子资源…但是很多人推荐,应该也是一本好书!

  • Unix环境高级编程(APUE),详细讲述Unix环境下的各种编程机制和接口,建议书上的代码都自己敲一遍执行,才能有更好的理解。(尤其是以腾讯为目标的同学们,此书必读

计算机网络 :
  • 图解TCP/IP,图解系列的书籍都是比较浅显易懂,但是作为入门或者第一本相关书籍,可以看到全貌却有不打击大家的学习积极性,可以快速阅读 。

  • 图解HTTP,建议同上,但是我其实对HTTP了解并不多,因为实际上C++开发很少与http打交道,基本是C++与Java通信,Java再与前端通信,但是还是应该扩充自己的知识面 。

  • 计算机网络,这本书是本科上课时我们选用的教材,对于计算机网络有一个比较深入的讲解,包括网络协议中的各种设计细节以及相关算法的原理,值得阅读 。

  • UNIX网络编程(UNP),同前面操作系统一样,可以配合Allen大佬的技术博客,学习一些底层的网络编程知识,尤其是打算准备网络相关的项目时,建议细读本书 。

  • TCP/IP详解,非常详细讲述了TCP/IP协议栈下的各个技术细节,建议大家挑自己感兴趣的阅读,都是拔高点,体现个人技术深度的点 。

数据结构:
  • 大话数据结构,入门书籍,把每个抽象数据类型(ADT)的实现方式都讲得比较透彻,也涉及了相关的算法,可以仔细阅读,后面面试可能也会涉及一些让你在某个应用场景下的适用数据结构,应该详细掌握 。

  • 清华大学 邓俊辉老师的公开课,详细细致讲述了数据结构与算法相关的内容,因为算法和数据结构密不可分,在讲述基本的数据结构与算法同时,包含一些时间复杂度的推导,课程又有一定的深度,老师讲课也非常有趣!值得深入学习 。

  • 网易云浙江大学 数据结构公开课  ,课程感觉不如邓俊辉老师的有趣,但是优点是有配套的学习平台和练习题,配合课程刷题,效果更佳!

算法(这块其实是我的薄弱点,我大概只刷了200道题+剑指offer):
  • leetcode2016,这本书是在北美找工作的国内同学总结的,将leetcode上的一些经典题目按照各种方法总结在一起的,大约有200题,建议按照专题开始刷!这本电子书我会在后面给出百度网盘的链接,大家可以自己下载 。

  • 剑指Offer,不多说了,哪里不会刷哪里 。

  • 算法图解,一本适合刚开始接触算法的初学者,用通俗易懂的语言说明了一些常用的算法 。

  • 程序员代码面试指南,左神神书,适合算法进阶,题的数量和质量都有保障 。

数据库:
  • Mysql必知必会,介绍了sql查询相关的用法,读完之后可以配合牛客上的SQL查询相关练习进行熟悉 。

  • 高性能Mysql

  • MySQL技术内幕  InnoDB存储引擎

  • Redis设计与实现,前面几本书都是sql相关的知识储备,而详细了解一款nosql也是很有必要的,因为各自有不同的应用场景,面试中也常考一些Redis相关知识 。

  • Mysql:Mysql技术内幕和高性能Mysql侧重于数据库本身的底层实现,而这套视频则是从实用的角度出发,讲解了数据的查询到优化等方面的知识,配合使用效果更佳 。

设计模式:
  • 大话设计模式,描述了二十多种设计模式的使用场景,设计模式只有了解了概念以后,在实际项目中去加深理解,单例模式、工厂模式、***模式、中介者模式等都是在实际项目中常用的设计模式 。
Linux与编译原理:
  • 鸟哥的Linux家常菜,基本就是讲一些Linux下的命令操作,C++必然是跟Linux结合在一起的,所以如果对Linux不够熟悉,可以粗读一遍,熟悉相关的命令 。

  • Linux内核完全注释,采用早期Linux内核0.11或0.12版本的代码进行完全注释讲解,作者是同济的一名老师,阅读本书需要有一定的汇编基础、硬件基础和操作系统基础,适合对Linux内核机制比较感兴趣,想了解底层源码的同学 。

  • 程序员的自我修养——链接、装载与库,校招面试过程中发现,只要面试一深入,就经常会讨论到编译和链接过程中的一些问题,虽然对开发并没有太大的作用,但是掌握过程中发生的情况,可以帮助分析和解决一些问题 。

面试相关 :

(下面这两本书中都有很多常见的面试题,可以细读当做个人知识的一个查漏补缺,也需要关注一些常见的智力题,比如头条有时候就会问一些相关的智力题):

  • 程序员面试笔试宝典

  • 王道程序员面试宝典

##项目面试问题

在具体的面试中,一些技术问题可能因为公司或者面试官的不同而不太一样,但是经过大大小小几十场面试发现,关于项目上,有几个问题经常被提及,能够看出一个人的项目深度以及是否在项目过程中有自己独立的思考:

(1)项目中的难点以及解决方法

建议项目做完一定要及时总结,回顾过程中踩过的坑,走过的弯路,回答这个问题时,可以给出一些参考的解决方式,最后结合实际需求,给出自己的方案。

(2)与现有的一些类似产品,有什么优势?或者说为什么在你们的使用场景下,要用这种方案 。

因为主要的项目经历是推荐场景下的分布式KV存储,所以经常被问到与Redis相比的优势在哪,为什么不用这些现有的KV存储方式。在做项目过程中,就要培养自己的好奇心,多问自己Why,而不是一味的只是How。

(3)如果再给你一次重新做的机会,你觉得哪些方面会有改进和提高?

做完项目以后,一定要去复盘,想想这里面可能存在的问题,或者说哪些方面可以被改进

##总结:以上几个问题都是在各大厂面试中经常提及的问题,希望各位做项目时,一定要保持充分的好奇心,对自己的方案有绝对的把控力,然后及时总结和复盘。

###最后

上面大概就是我个人的一个学习路线,基本是书籍+公开课+网课为主要学习路线,当然对于硕士来说,准备秋招的过程中肯定免不了会穿插有实验室的一些工作,这就得看个人的时间规划和安排了,另外效率是很关键的一点,如果遇到了心浮气躁学不下去的情况,建议找个适合自己的方式去放松一下,保持好自己的学习效率。接下来想说一些秋招过程中的一些奇葩经历:

##字节跳动的十一轮面试经历,是的你没有看错,我从春招到秋招一共面了十一轮字节跳动!!!

最后送福利了,现在关注我可以获取包含源码解析,自定义View,动画实现,架构分享等。
内容难度适中,篇幅精炼,每天只需花上十几分钟阅读即可。
大家可以跟我一起探讨,有flutter—底层开发—性能优化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿

录播视频图.png
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿**

[外链图片转存中…(img-Veh1h4sq-1715314929474)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值