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

一、写在前面的话

很多老读者都知道,我 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

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

四、我的学习书单

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

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

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

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

  1. 程序员求职:选择大公司还是小公司

    很多计算机专业的学生在第一次求职的时候几乎都会遇到"到大公司还是到小公司"的问题.他们认为大公司的薪水高.工作稳定.技术水平高.升迁机会多,但是,大公司要求高,竞争激烈,自己怕进不 ...

  2. 清华应届程序员同时被5家公司录取,晒出工资,网友:羡慕

    一般来说,名校毕业可以让你有更多的选择机会,公司给的待遇也更好,即使你水平只有一般,但也比那些普通大学还是要好很多. 最近在职场论坛上看到这样一个帖子:清华毕业生同时被5家公司录取,晒出工资名称和工资 ...

  3. 程序员是该选择大公司,还是小公司?你会如何抉择呢?

    [回复"1024",送你一个特别推送] 这是一篇我想了很久,想写一直都没写的一篇闲谈,但是我仍旧认为对大家应该很有帮助. 其实一直想写这个话题,关于程序员是选择大公司,还是小公司, ...

  4. 42岁程序员面试,为什么大公司一定要使用微服务

    说实话,一万六的工资是毕业生工作两年的价格,还不是985.年轻气盛终归英雄暮年,能有工作机会已经不错,大厂只给工资,不给规划,误人.尽管就业市场对大龄程序员来说确实不太友好,但是程序员工资要高一点,我 ...

  5. 拼多多是PHP还是java,应届程序员收到拼多多offer 表情瞬间爆发

    应届程序员吐槽:拿到了拼多多最低档的offer,感觉有些侮辱! 一名应届程序员在就职互助论坛如此吐槽自己的遭遇,称被拼多多补录了,但给的是最低档的offer,感觉有些侮辱:很难受,补招收到了拼多多最低 ...

  6. 程序员在互联网公司和行业软件公司工作,有什么区别?

    原文为 luckystar 在程序员在程序员在互联网公司和行业软件公司工作,有什么区别?问题下的回答. 日常的工作是帮程序员跳槽,常常会遇到想从软件公司跳槽到互联网公司的,也有想从互联网跳到软件公司的 ...

  7. 大专程序员面试了25家公司,总结出来的痛苦经验!

    最近换了个公司,从五月底开始面,面到7月初,面了有快二十五家公司.我是一个喜欢总结经验的人,每经过一场面试,我都会记录知识点,哪里有错的.往往机会都是留给有准备的人.到现在已经找到满意的工作了,对自己 ...

  8. 程序员离职后收到原公司 2400 元,被告违反竞业协议赔 18 万

    点击上方"阿拉奇学Java",选择"置顶或者星标" 每天早晨00点00分,与你相约!整理 | 李雪敬 出品 | 程序人生(ID:coder_life) 据微博用 ...

  9. 程序员必知8大排序3大查找(三)

    前两篇 <程序员必知8大排序3大查找(一)> <程序员必知8大排序3大查找(二)> 三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表(以后谈) 一.顺序查找的基 ...

  10. 网传京东某程序员因压力太大,在商品页面置入骂人代码!京东辟谣:不关我们的事,外部商家干的!...

    程序员压力太大,能干出什么事?除了删库跑路,还能偷偷骂人. 前几天,网传京东某程序员因为压力过大,在商品介绍的代码里嵌入了一段骂公司的话. 据爆出的聊天记录中得知,这段代码只有在夜间模式下才能看见.虽 ...

最新文章

  1. 如何有效的准备Java面试?
  2. Deep Learning 26:读论文“Maxout Networks”——ICML 2013
  3. win7设置自动开机时间_电脑可以设置自动开机时间,您知道吗?
  4. ASP.NET 3.5核心编程学习笔记(55):自定义扩展程序控件的创建
  5. 高可用+负载均衡 方案
  6. potplay显示服务器关闭,PotPlayer怎么关掉左上角显示的播放时间?PotPlayer关掉左上角显示播放时间的操作步骤...
  7. C++获取exe文件版本号
  8. 关于MySQL存储过程异常处理的一点心得
  9. rancher单节点离线安装_Rancher花里胡哨的部署方式
  10. android gridvie item,Android开发―解决自定义GridView高度第一个item高度异常问题
  11. rh php70 php fpm,CentOS 7 配置php语言开发环境
  12. 二阶系统响应指标图_二阶系统单位阶跃响应.ppt
  13. 小管家进销存_管钱、管货、管顾客,“北漂”京东便利店主点赞掌柜管家
  14. 记一次hive 报错NoViableAltException(-1@[215:51: ( KW_AS )?])
  15. 【计算机网络】网络安全 : 数字签名 ( 数字签名简介 | 数字签名实现 | 数字签名功能 | 保密数字签名 )
  16. GitHub创建仓库
  17. Windows 使用命令行修改密码
  18. php中如何获得当前周数,PHP中根据输入的周数获取到该周的日期范围
  19. gif怎么做成html,gif动态图片制作方法 附带电脑版和手机版制作gif动图教程
  20. 关于karabiner的设置

热门文章

  1. 阿里云——杭州云栖大会
  2. 手机指北针 + Python绘制徒步路线图
  3. 科大讯飞语音开发包上手体验(1)
  4. 阜阳师范学院java,刘冬冬 - 阜阳师范学院 - 计算机与信息工程学院
  5. Android 应用换肤功能(白天黑夜主题切换)
  6. iCollections—桌面管理工具
  7. 【思维题】Bazinga
  8. 鸿运当头凤梨花怎么养 凤梨花养殖方法及注意事项
  9. PEANUT-WF模块开发-HslCommunicationEx
  10. H264 概念之 I P B 帧