各花入各眼,没有下一个谷歌,就没有下一个苹果,下一个微软…
不过在很多人眼里,谷歌=创新开放,微软=垄断封闭,这一点其实也受到了创始人风格的影响,所以谷歌在程序员文化方面更胜一筹,导致微软在程序员眼中的口碑较低,谷歌如愿成为一部分北美程序员的Dream Company。
从产品业务角度来说
谷歌:
专注做搜索引擎,天生具有强大的开放性,而强大的引擎垄断地位也带着谷歌越走越高,用足够的利润支持其他项目“烧钱”。比如元宇宙,无人驾驶技术,3D数据感知等。
微软:
拥有多年垄断地位,但吃老本现象严重,虽然现在依旧很能挣钱。最近一次【土豪】行为可以体现在收购暴雪上,相当于吃掉了一个网易。
从企业文化来说
谷歌:
以用户为中心,注重研究用户体验,主要体现在简洁的页面,强大的搜索功能上。并且专心将一件事做到极致,不断优化和升级。
微软:
愿意接受和吸纳不同的人才,同时希望员工可以不断的突破,承担风险与挑战。同时真正的倾听客户需求,更好地为客户服务。
从员工薪资待遇上来说(区别最大,感知更明显)
谷歌的薪资远远大于微软,福利啥的肯定也是谷歌更胜一筹,不然为啥谷歌是大家心中的Dream Company。
反正我还没毕业就开始研究怎么进谷歌了,一开始是想通过抱大腿直接内推拿到面邀,结果HR根本不理我。所以我只好去论坛看面经,刷谷歌算法高频题,好在最后不负众望,成功上岸。
总结下来谷歌面试主要看重以下两点:
算法面:要实力,也要代码质量,更要communication
扎实的算法基础可以通过打比赛,刷谷歌算法高频题来获取。快速提高代码质量可以搭配硅谷资深面试官令狐冲的算法与数据结构免费讲座做进一步提升。
算法常考知识点
二分搜索 Binary Search
分治 Divide Conquer
宽度优先搜索 Breadth First Search
深度优先搜索 Depth First Search
回溯法 Backtracking
双指针 Two Pointers
动态规划 Dynamic Programming
扫描线 Scan-line algorithm
快排 Quick Sort
数据结构常考知识点
栈 Stack
队列 Queue
链表 Linked List
数组 Array
哈希表 Hash Table
二叉树 Binary Tree
堆 Heap
并查集 Union Find
字典树 Trie
除此之外,在家用白板练习也很重要,而且需要尽可能的将时间控制在30分钟之内,我是前期基础比较薄弱,所以我就通过《九章算法班》来提升算法能力的,主讲老师是FB出身,能帮我解决很多算法上的难题,包括如何提升我的代码质量。真心推荐,感兴趣的可以免费试听一下。
2、项目面:必考系统设计,要有拿得出手的项目
主要考察你是否能独立设计一个大型系统,我之前被问道的是秒杀相关的问题,套用了我在《系统架构设计讲座》中学到的【理想化流程】来作答的,面试官说看起来还不错。
当然如果你有时间,可以沉下心从0到1去做一套工业级项目,即使不翻墙,去面FLAG也绝对加分!
可以跟着Facebook资深架构师免费学习《Twitter项目课》,带你从零设计Twitter,最终搭建一个P8(L5)水准的项目。项目涉及万行代码,最终成果是一个可上线的工业级别的项目,而不是像市面大多数项目课程简单做个demo。
最后,附上谷歌面试流程及面试常考图库
谷歌面试大致流程如下
一般谷歌是有4-6轮的面试,按照考试类型可以简单分为算法、设计和BQ
- Coding轮(50%-80%):简单来说就是考算法题,除了面试官出的题要做出来,还要应对面试官的follow up,一般能把题目做出来,且和面试官进行流畅的沟通,这轮基本就稳了。
- Design轮(20%-30%):按照类型可以简单分为系统设计和面向对象设计。面向对象设计(OOD)主要面向应届生和工作1-3年的程序员,系统设计则主要面向工作3年+的资深工程师。
- Behavioral Question轮(10%-30%):即行为面试问题,简单来说就是不考技术相关的知识,而是考验你与人沟通、合作、处理问题等职场软技能。
最近搜集的新题都整理好了,需要自取:
- 最长回文子串
- 字符串解码
- 员工的重要度
- 最长字符串链
- 小行星的碰撞
- 等差切片 II - 子序列
- 最短的唯一单词缩写
- 统计全为 1 的正方形子矩阵
- 满足要求的子串个数
- 基础计算器
- 会议室4
- 合并区间
- 直方图最大矩形覆盖
- 赛车
- 课程表
九章算法,国内外一线工程师在线直播授课,已经帮助30000+人成功拿到心仪offer。
系统设计课程正在火热招生中,随时报名随时开课。
更多课程信息请访问:九章算法