Java教程

进了小公司的应届程序员如何翻身进入大公司?

本文主要是介绍进了小公司的应届程序员如何翻身进入大公司?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我就是小公司应届程序员翻身进的大厂。

一、写在前面的话

很多老读者都知道,我 2018 年年底从携程旅行网离职与人合作创业,项目于 2019 年 8 月正式上线运营,8 月后到 12 月初系统针对之前的一些问题做了第二版的优化和重构。从 12 月初开始工作就不是太忙,于是更新了一下简历,出去面试一下保持自己对技术的敏感度(当然,如果有合适的职位也是可以考虑的)。我求职的职位是资深开发或者系统架构师级别,开发语言优先选 Java,其次是 C/C++。老的读者应该知道,我是 C/C++ 出身,后面由于工作需要开始做 Java,并且专门去携程历练了一段时间自己的 Java 技术。因为厌倦某些小公司的各种不规范和不公开套路操作以及老板的画饼,所以这次只投递了一些大的互联网公司,先后去了字节跳动、360、腾讯、阿里巴巴、饿了么、哈喽单车等。

二、高级面试会问哪些东西?

我期望的薪资是年薪 50W+,当然具体的待遇会综合考虑的,薪资不是主要考虑因素。很多读者可能想知道:这样级别的面试一般会问些什么东西?这里可以大致的给大家做个简单的总结:

1. 如果是业务相关的公司或者部分会问一些业务细节,比如我做的是互联网金融,那么有关联的职位会问一些业务关联的问题;

2. 对于大多数大的互联网企业至少会有三轮技术面试,一般的面试官的情况分为两种:

第一种情况:前两轮是你将来入职所在部门的两位同事,第三轮是所在部门的主管,这种岗位一般是资深开发或者架构师级别,这样的话,前两轮的面试官是与你将来共事的平级同事,三面是你将来的 leader。

第二种情况:第一轮面试官是你将来的共事的同事,第二轮的面试官是将来所在部门的 leader,第三轮面试官是大部门的 leader 或者 CTO,这种岗位一般是架构师或者开发经理,进去后可能会带团队。如果一面二面是你将来入职的平级同事,一般会问一些比较常用或者基本的开发原理,例如对于 Java 来说,jdk 的一些东西,jvm 一些东西,多线程的一些东西,这个其实是简单的考察,如果答得不好可能会直接被 pass 掉,因为基础不行,但是如果你答得好,一面二面(第一种情况)或一面(第二种情况)根本 hold 不住你,会在简单的走过过场后让更高级的二面(第二种情况)或三面(第一种情况)直接来面你。此时的三面(第一种情况)或者二面(第二种情况)会详细的和你聊系统架构方面的,有具体技术细节,也有大的框架组织、开发策略等等。如果你从没真实设计过一个大的框架,自己“杜撰”或者“编造”很容易“惨淡收场”。这里建议想往这方面进步的读者,平常要多站在全局的高度去思考一些架构的设计,理清业务流和信息流,同时多自己造一些基础轮子或者认真的研究一些通用轮子背后详细的原理。对于第一种情形的三面或者第二种情形的二面在聊完技术之后会问一些非技术相关,如你的职业规划、离职原因等等。同样,第二种情形的三面,一般也不会再问你技术方面的问题,更多的也是业务相关的或者其他一些东西,相对来说,这轮面试只要不犯一些低级错误,还是很好过的。3. 如第 2 点所说,在第一轮或者第一二轮面试中,除了特定技术相关的,大公司最喜欢问的就是一些算法和数据结构方面的问题。这里列举几个大家可以感受一下:

字节跳动问我的算法题有两道:

算法一:

一个单链表,实现按给定的步长进行对折,举个例子,对于链表 1->2->3->4->5->6->7->n-1->n,如果给定的步长是 2,那么对折后是 1->n->2->n-1->3->n-2。

算法二:

假设一个有一个栈的 sdk,提供了栈的出栈、入栈、和长度方法,请利用栈的数据结构和方法实现一个队列功能。(这个题目其实就是实现队列的出队、入队和长度方法,栈的操作是先进后出的,而队列是先进先出的,如何利用栈的先进后出实现队列的先进先出)。

腾讯的算法题:

算法一:

现在只有一个计算能力为 1 W的机器,如何较快的从 400 W的帖子中找到热度值最高的 100 个帖子,帖子有热度值、发布时间和 ID。

算法二:

两个长度不一样的链表,从某个节点开始有公共节点,如何高效的找到第一个公共的节点。(是不是很眼熟?)

360 的算法题:

一个无序数组,如果找到数组中所有元素值为 v 的元素,要求实现的时间复杂度不能大于 O(N),空间复杂度必须是 O(1)。

阿里的算法题:

对于给定的 x 对左右括号,请设计出一个函数打印出所有的括号组合形式,举个例子,当 x = 2 时,括号形式为 ()(),(()),当 x = 3 时,括号形式为 ((())),()()(), ()(()),(())(),(()())。

(如果知友对上面的某个算法题有疑问,可以留言)。

三、算法和数据结构是万年不变的基础

这些算法题说不难也不难,说容易也不容易,此话怎讲呢?

对于校招学生或者刚毕业没多久的开发人员来说,他们可能会经常为了面试刷一些题目,所以相对来说,就比较容易;但是对于一些高级职位工作有些年头的社会人士来说,可能很多算法或者数据结构已经忘记得差不多了。但是根据前面描述的几轮面试,正所谓“阎王好过,小鬼难缠”。如果你在一轮二轮面试中这些算法题答得不好,可能就没机会通过前几轮面试见到后面的面试官。

如果你是非科班出身,或者觉得算法和数据结构很难,推荐《算法(第四版》这本书):

链接: https://pan.baidu.com/s/1Hz_XPZ_syCC1g8nUObu9Vg 提取码: woka

BAT 等国内的一线名企,在招聘工程师的过程中,对算法和数据结构都会重点考察是普遍现状。但算法易学难精,我的很多读者技术实力其实不错,但面试时总败在算法这一关,拿不到好 Offer。但说实话,数据结构和算法花点时间,用对方法,很容易解决。

刷算法题也讲究思路和技巧的,推荐《剑指 offer》和《程序员代码面试指南:IT名企算法与数据结构题目最优解》:

链接: https://pan.baidu.com/s/1bZAqakYqlI2ETZ4PbmU-dg 提取码: 15rh

链接: https://pan.baidu.com/s/1dXXSMjGSllMnIYv7ZwZzBQ 提取码: 8hj4

总之,克服恐惧,提高技术内功,功到自然成。

四、我的学习书单

分享下我学习的书单(书不多,更多的注重内功的修炼):

计算机必看经典书籍(含下载方式)​

原创不易,如果有帮助的话,记得点赞和关注 @张小方 哦~

这篇关于进了小公司的应届程序员如何翻身进入大公司?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!