640?wx_fmt=gif
本文列出了一个涵盖许多热门面试题的清单,相信会对你有所裨益。
640?wx_fmt=jpeg
作者 | Ben Rogojan
译者 | 谭开朗,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
以下为译文:
与其他技术面试一样,软件工程师的面试也需要大量的准备工作。为了应对关于算法、数据结构、设计、优化以及延伸主题等的轰炸式问题,我们需要的学习的还有很多。
因此,针对终面,我列出了一个涵盖许多热门面试题的清单(https://docs.google.com/spreadsheets/d/19hSRrL4l3gRiJ5ucH9q4iwFo2QHgic9gGMNUrcn1mm0/edit?usp=sharing)。
前排提示:文中所有标蓝部分均可在此清单中获取详细链接。
 
640?wx_fmt=png
温习基础知识
 
  • Fizz Buzz

  • 560. Subarray Sum Equals K

  • 数组:左移问题

  • 字符串:构建Anagrams

  • n次Fibonacci

 
 
 
 
 
以上知识点,你掌握得怎么样?花点时间来自评一下吧。在面试过程中,我们经常会被问到这些问题,而且通常是在初面时遇到的。通常,它们与算法和数据结构关系不大,但仍需要对循环和数组有很好的理解(是的,数组是一种数据结构)。
 
640?wx_fmt=png
算法和数据结构
 
预习问题
在浏览有关数据结构和算法的视频内容之前,请思考以下问题。你能否回答出来?这将有助于找到重点内容。
  • 查询后偶数的总和

  • 机器人返回原点

  • 长度为2N的数组中重复N次的元素

  • 平衡二叉树

  • 最长不重复子序列求解

  • 从列表末尾删除第n个节点

  • 合并k个排序列表

  • Next Permutation算法

算法和数据结构视频

数据结构

640?wx_fmt=jpeg

  • 数据结构和算法#1——什么是数据结构?

  • Multi-dim

  • 动态数组

  • 调整数组大小

  • 数据结构:链表

  • 核心链表vs数组

  • 指针到指针

  • 数据结构:树

  • 数据结构:堆

  • 数据结构:哈希表

  • 电话簿问题

  • 数据结构:堆栈和队列

  • 使用堆栈后进先出

  • 数据结构:计算机科学速成课程#14

  • 数据结构:实践

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
算法

640?wx_fmt=gif

  • 算法:图形搜索,DFS和BFS 

  • BFS(广度优先搜索)和DFS(深度优先搜索) 

  • 算法:二进制搜索

  • 二叉搜索树回顾

  • Python面试算法

  • 算法:递归

  • 算法:气泡排序

  • 算法:合并排序

  • 算法:快速排序

 
 
 
 
 
 
 
 
 
大O符号
  • 介绍大O符号和时间复杂度(数据结构和算法#7) 

  • 哈佛CS50-渐近符号

  • 简单介绍算法复杂度分析

  • 备忘录

 
 
 
 
动态编程
  • 动态编程(像程序员一样思考)

  • 算法:记忆和动态编程

  • 动态编程一:Fibonacci,最短路径

  • 动态编程二:文本对齐,BlackJack规则

  • 动态编程

 
 
 
 
 
字符串操作
  • 编码面试问答:最长连续字符

  • Sedgewick算法——子字符串搜索

 
 
面试问题演练
  • 谷歌编码面试——通用值树问题

  • 谷歌编码面试问答#1:第一个循环出现的角色

  • 在二叉搜索树中找到最小和最大元素

  • 求二叉树的高度

  • 检查二叉树是否是二叉搜索树

  • 什么是尾部递归?为什么这么复杂?

 
 
 
 
 
 
温习问题
现在你已经掌握了一定的知识,并且观看了许多视频,让我们来看更多的题目吧!
  • 越大越好

  • Z字形变换

  • 整数反转

  • 组合之和之二

  • 字符串相乘

  • 拉里阵列

  • Short Palindrome

  • 有效数字

  • 越大越好

  • 全计数排序

  • Lily's Homework

  • 最长公共子序列

  • 重复子字符串模式

  • 删除元素

  • 删除BST中的节点

  • 将数组分割为连续子序列

  • 有界限最大值的子数组数量

  • 组合之和之四

  • 买股票的最佳时间含冷冻期

  • 最长重复字符串置换

  • 成对交换节点

  • 二叉树右侧视图

  • 扁平嵌套列表迭代器

  • 二叉树的层次遍历

  • 二叉搜索树迭代器

  • 链对的最大长度

  • 拆分链表成部分

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
640?wx_fmt=png
操作编程问题
 
有些公司不会问你算法的问题。相反,他们可能更关注实现和操作问题。这些通常是更小众的,涉及实际问题,比如循环数据和执行某种类型的任务。这类型的问题通常不需要太多的实践,因为它更多的是使用数组和hashmap等基本概念,并跟踪你对它们所做的操作。
  • 袋鼠问题

  • 打破纪录

  • 找到Stringiter

  • No Idea !

  • 程序员的日子

  • 排行榜

  • 词序

  • 夏洛克和广场

  • 平衡数组

  • 苹果和橘子

  • 更多的操作风格问题

 
 
 
 
 
 
 
 
 
 
 
系统设计视频
系统设计问题是重中之重的问题,它证明你不仅仅是一个程序员。作为一名工程师,你需要有大局观。某些服务属于何处,你需要什么样的服务器,你将如何管理流量,等等。所有这些想法都表明,你能够设计软件,而不只是编写让你编写的代码。
  • 停车场系统

  • Whats App 

  • Uber设计

  • Instagram 

  • Tinder服务

 
 
 
 
 
操作系统
操作系统问题比较少见,但是对线程、调度、内存等概念有一个扎实的理解是有好处的,即使这只是一个基本的理解。如果有人问进程和线程之间的区别是什么,而你不知道答案,这是非常尴尬的。
常见的操作系统面试问题
  • 什么是旁路转换缓冲?

  • 为什么轮询可以避免优先级反转问题?

  • 中断Vs系统调用——文件系统中的“inode”是什么?

  • 操作系统面试问答——第一部分

  • 什么是内核——Gary的解释

  • 循环算法教程(CPU调度)

  • LRU缓存的魔力(谷歌开发的100天)

  • MIT 6.004 L15:内存层次结构

  • 中断

  • 调度

 
 
 
 
 
 
 
 
 
 
线程
  • 用户级线程Vs内核级线程

  • 进程和线程介绍

  • 进程和线程的区别——佐治亚理工学院——高级操作系统

  • 分叉和多线程的区别

 
 
 
 
 
640?wx_fmt=png
面向对象
 
与操作系统类似,不是每次面试都会问你关于面向对象编程的问题,但你无法琢磨面试官的想法。你要确保你记住了计算机162课程的基础知识。
  • Java编程教程——49——继承

  • Java编程教程——55——多态性介绍

  • Java编程教程——58——抽象和具体类

  • Java编程教程——57——重写规则

  • Java编程教程——59——类来保存对象

  • 面向对象编程

 
 
 
 
 
 
 
640?wx_fmt=png
设计模式
 
如果你和我们一样,没有学习过各种各样的设计模式。所以了解它们是如何工作的,以及为什么要使用它们是很有好处的。有些面试问题可以很简单,比如“你为什么要使用工厂类?”
  • 工厂设计模式

  • 观察者设计模式

  • 适配器设计模式

  • 立面设计模式

  • 责任链设计模式

  • 解释器设计模式

  • 单例设计模式教程

  • 第6章(第1部分)——模式(视频)

  • Head First设计模式

 
 
 
 
 
 
 
 
 
 
640?wx_fmt=png
SQL
 
这是最后一部分。很多人可能不会被问到SQL问题。然而,有备无患。
SQL问题
  • 旅行和用户

  • 体育馆的人流

  • 部门前三名

  • 交换座位

  • Hackerrank报告

  • 第n高薪水

  • Symmetric Pairs(连接,分组,聚合)

  • OccupationsPlacements

  • Ollivander's Inventory(连接查询,单表双实例,子查询)

 
 
 
 
 
 
 
 
 
SQL视频
  • IQ15:6个SQL查询面试问题

  • 学习ROW_NUMBER和解析函数

  • 解析函数的高级实现

  • 解析函数的高级实现第2部分

  • Wise Owl SQL视频

 
 
 
 
 
发布SQL问题
  • 二叉树节点

  • 天气观测站18

  • ChallengesPrint质数

  • Big Countries

  • 交换座位

  • SQL访谈问题:3个技术筛选习题(供数据分析师使用)

 
 
 
 
 
 
面试会很艰难,因为你始终觉得自己没有取得任何进展。有了这份学习指南,你就可以跟踪自己的学习进度,更好地了解自己的学习情况。
祝你好运!
原文:https://dev.to/seattledataguy/the-interview-study-guide-for-software-engineers-764
本文为 CSDN 翻译,转载请注明来源出处。

 

【END】
640?wx_fmt=jpeg
 热 文 推 荐 
 
 

 

 

 

 

 

640?wx_fmt=gif 点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
640?wx_fmt=png
你点的每个“在看”,我都认真当成了喜欢
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐