新浪科技

决胜编程面试的142个资源!2000人点赞,软件工程师提升必备

捕捉翻倍美股

关注

想要收到心仪公司的Offer,面试过程怎么能不出彩。不知道从何下手也没关系,有人已经替你整理了。

Benjamin Rogojan和Shayan两位过来人,在Medium博客中长文整理了软件工程师的面试必备。

在这份资源中,他们将面试必备功课分类整理,并附上了相关知识的图表、文章和视频讲解地址,共计142个资源,在Medium上收获了近2000赞。

先马克,然后继续往下看。

都有啥?

面试问题一般都以“出其不意”的特点为人所知,要想在这个环节脱颖而出,极大的覆盖面是必须的。

所以,这套资源中,也置入了一位软件工程师各个方面的必备素养,共分为14大类,下面分别介绍。

热身阶段:回顾经典问题

面试的问题虽然千变万化,但总有几个为问题出现的概率奇高无比。

Leetcode中第560题,探讨Subarray Sum Equals K的问题,题目和解题思路如下:

https://leetcode.com/problems/subarray-sum-equals-k/

常见的数组中的左旋转问题也经常出现,最快的数组逆置和数组左旋算法不陌生吧:

https://www.hackerrank.com/challenges/ctci-array-left-rotation/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays

公认的简单却又复杂的矛盾交织体FizzBuzz问题,据说面试者有90%都会栽在这道题上面……

https://www.hackerrank.com/challenges/fizzbuzz/problem

先学习这些经典问题,面试开场准备出最好的姿态。

算法和数据结构

尝试回答下面的问题进行自测,帮助你知道自己应该重点关注什么:

leetcode第985题,Sum of Even Numbers After Queries,查询后的偶数和。

https://leetcode.com/problems/sum-of-even-numbers-after-queries/

再比如657题,探索机器人能否返回原点问题:

https://leetcode.com/problems/robot-return-to-origin/

类似的问题还有6个,先自测下leetcode中的薄弱之处,然后下一步就是查漏补缺。

算法和数据结构视频

这一部分包含了数十个视频,针对数据结构和算法两部分,附上了各种讲解资源。

部分视频可能需要科学前往,也可以自己按图索骥搜索其他类似资源。

视频画风不尽相同,大多都是免费资源,视频长度也不会太长。

渐进符号(大O符号)

渐进符号用来描述函数渐进行为,在计算机科学中,它在分析算法复杂性方面非常有用。

如果不太了解这部分,资源中有介绍视频:

https://www.youtube.com/watch?v=D6xkbGLQesk

渐进符号详解:

https://www.youtube.com/watch?v=iOq5kSKqeR4

基础知识集合:

http://bigocheatsheet.com/

动态规划

动态规划部分也需要储备点相关知识:

比如斐波那契数列,路径最短问题:

https://www.youtube.com/watch?v=OQ5jsbhAv_M&t=7s

文字证明和21点:

https://www.youtube.com/watch?v=ENyox7kNKeY&t=4s

字符串操作

包括谷歌编程面试问题及答案、在二叉树中查找最小和最大元素、求二叉树的高度、尾部递归及问题检查等。

后续学习问题

还有一些其他小知识点,其实是leetcode中众多题目中几个有意思的问题,比如“Lily的作业问题”:

https://www.hackerrank.com/challenges/lilys-homework/problem

成对交换节点问题(Swap Nodes in Pairs ):

https://leetcode.com/problems/swap-nodes-in-pairs/

不用再通刷leetcode了,择其重点即可。

好了,理论问题告一段落。有的公司不那么关注对算法的理解程度,可能更重视实际操作问题。

这些问题通常很专业很小众,涉及到具体的操作过程,也就是一些小技巧。

在操作编程问题部分,就重点挑去了一些小技巧。

此外,在系统设计视频、操作系统、线程、面向对象的编程、设计模式和SQL部分,也是择取相关的小知识点,针对不同部分进行讲解。

这份资源内分过类的大小知识点,共有142个,比直接刷leetcode更有条理性,并且也不用手动搜资源了。

作者介绍

整理出这份面试资料的人是什么来头?

Benjamin Rogojan是一名西雅图的数据科学家,华盛顿大学毕业后,Benjamin Rogojan在一家健康分析公司做数据工程师。

Shayan Oveis Gharan是华盛顿大学计算机科学与工程的助理教授,2013年还获得了ACM博士论文奖。

当时的获奖论文是,New Rounding Techniques for the Design and Analysis of Approximation Algorithms。

论文地址:
https://homes.cs.washington.edu/~shayan/thesis.pdf

传送门

加载中...