软件工程师面试学习指南

作者:Ben Rogojan

为了帮助您跟踪进度,我们编制了一份综合清单,列出了下面列出的相同问题;该列表可以在这里找到。

经典热身

  1. Fizz Buzz
  2. 560.子阵列Sum Equals K.
  3. 数组:左旋转
  4. 字符串:制作字谜
  5. Nth Fibonacci

你怎么做的?花一点时间评价这些经典。在面试过程中的某些时候,我们已经被问过大部分这些问题 – 而且通常在早期就像清除风格问题一样。它们通常与算法和数据结构关系不大,但仍需要很好地理解循环和数组(是的,数组是数据结构)。

算法和数据结构

预研问题

在浏览有关数据结构和算法的视频内容之前,请考虑尝试以下这些问题。看看你是否可以回答它们。这将帮助您了解要关注的内容。

  1. 985.查询后偶数的和
  2. 657.机器人返回原点
  3. 961.尺寸为2N阵列的N重复元素
  4. 110.平衡二叉树
  5. 3.没有重复字符的最长子串
  6. 19.从列表末尾删除第N个节点
  7. 23.合并k排序列表
  8. 31.下一个排列

算法和数据结构视频

数据结构

  1. 数据结构和算法#1 —什么是数据结构? – – 视频
  2. 多暗淡—视频
  3. 动态阵列—视频
  4. 调整阵列大小—视频
  5. 数据结构:链接列表—视频
  6. 核心链接列表VS阵列—视频
  7. 指针指针—视频
  8. 数据结构:树木—视频
  9. 数据结构:堆—视频
  10. 数据结构:哈希表—视频
  11. 电话簿问题—视频
  12. 数据结构:堆栈和队列—视频
  13. 使用Stacks Last-In First-Out —视频
  14. 数据结构:速成价格计算机科学#14 —视频
  15. 数据结构:尝试—视频

算法

  1. 算法:图搜索,DFS和BFS —视频
  2. BFS(广度优先搜索)和DFS(深度优先搜索)—视频
  3. 算法:二进制搜索—视频
  4. 二进制搜索树评测—视频
  5. 面试的Python算法—视频
  6. 算法:递归—视频
  7. 算法:冒泡排序—视频
  8. 算法:合并排序—视频
  9. 算法:Quicksort —视频

大O符号

  1. 大O表示法和时间复杂性介绍(数据结构和算法#7)—视频
  2. 哈佛CS50 —渐近符号—视频
  3. 浅析算法复杂性分析— Post
  4. 备忘单—邮政

动态编程

  1. 动态编程(像程序员一样思考)—视频
  2. 算法:记忆和动态编程—视频
  3. 6.006:动态编程I:Fibonacci,最短路径—视频
  4. 6.006:动态编程II:文本对齐,二十一点—视频
  5. 动态编程—发布

字符串操作

  1. 编码面试问答:最长的连续角色—视频
  2. Sedgewick —子串搜索—视频

面试问题演练

  1. 谷歌编码访谈—通用价值树问题—视频
  2. 谷歌编码面试问题和答案#1:第一个重复出现的角色—视频
  3. 在二叉搜索树中查找min和max元素—视频
  4. 找到二叉树的高度—视频
  5. 检查二叉树是否为二进制搜索树—视频
  6. 什么是尾递归?为什么这么糟糕? – – 视频

研究后问题

既然你已经学习了一些,并观看了一些视频,让我们尝试更多的问题

  1. 更大更大
  2. 6. ZigZag转换
  3. 7.反向整数
  4. 40.组合总和II
  5. 43. Multiply Strings
  6. 拉里的阵列
  7. 短回文
  8. 65.有效数字
  9. 更大更大
  10. 完整计数排序
  11. 莉莉的作业
  12. 普通儿童
  13. 459.重复子串模式
  14. 27.删除元素
  15. 450.删除BST中的节点
  16. 659.将数组拆分为连续的子序列
  17. 具有有界最大值的子阵列数
  18. 组合总和IV
  19. 最佳购买和卖出冷却股票的时间
  20. 最长重复字符替换
  21. 成对交易所节点
  22. 二叉树右侧视图
  23. 展平嵌套列表迭代器
  24. 二叉树级别订单遍历
  25. 二叉搜索树迭代器
  26. 对链的最大长度
  27. 拆分部件中的链接列表

操作编程问题

有些公司不会问你算法问题。相反,他们可能更关注实施和运营问题。这些通常更为利基,涉及实际问题,如循环数据和执行某种任务。这些类型的问题通常不需要那么多练习,因为它更多的是采用数组和HashMaps等基本概念,并跟踪你对它们做了什么。

  1. 袋鼠问题
  2. 打破记录
  3. 找一个Stringiter
  4. 不知道
  5. 程序员的日子
  6. 排行榜
  7. 词序
  8. 夏洛克和Square
  9. 均衡数组
  10. 苹果和橘子
  11. 更多操作风格问题

系统设计视频

系统设计问题是表明您不仅仅是编码员的关键问题。你需要能够像工程师一样思考大局。某些服务属于哪里,您需要什么样的服务器,如何管理流量等等。所有这些想法都表明您能够设计软件,而不仅仅是人们告诉您代码的代码。

  1. 停车场系统—视频
  2. 应用程序—视频
  3. 优步设计—视频
  4. Instagram的—视频
  5. 火种服务—视频

操作系统

操作系统问题稍微少见,但是对线程,调度,内存等概念有充分的理解是好的,即使它只是一个基本的理解。得到一个进程和一个线程之间的差异而不知道答案是非常尴尬的。

  1. 常见问题操作系统访谈问题
  2. 什么是翻译后备缓冲区?
  3. 为什么Round Robin会避免优先级倒置问题?
  4. 中断与系统调用—文件系统中的“inode”是什么?
  5. 操作系统访谈问题与解答 – 第一部分
  6. 什么是内核—加里解释说
  7. 循环算法教程(CPU调度)
  8. LRU缓存的魔力(谷歌开发100天)—视频
  9. MIT 6.004 L15:内存层次结构—视频
  10. 中断—视频
  11. 调度—视频

主题

  1. 用户级线程与内核级线程
  2. 流程和主题简介—视频
  3. 流程与线程的区别—佐治亚理工学院—高级操作系统—视频
  4. 分叉和多线程之间的区别

面向对象

与操作系统类似,并非每次访谈都会询问有关面向对象编程的内容,但您永远不会知道。您想确保从计算机162价格中记住您的基础知识。

  1. Java编程教程— 49 —继承—视频
  2. Java编程教程— 55 —多态性介绍—视频
  3. Java编程教程— 58 —抽象和具体类—视频
  4. Java编程教程— 57 —覆盖规则—视频
  5. Java编程教程— 59 —保持对象的类
  6. 面向对象编程—视频

设计模式

如果你像我们一样,我们没有被告知所有各种设计模式。因此,了解它们的工作原理以及使用它们的原因是很好的。一些面试问题可以简单,“你为什么要使用工厂级?”

  1. 工厂设计模式—视频
  2. 观察者设计模式—视频
  3. 适配器设计模式—视频
  4. 立面设计模式—视频
  5. 责任链设计模式—视频
  6. 口译员设计模式—视频
  7. 单身设计模式教程—视频
  8. 第6章(第1部分)—模式(视频)—​​视频
  9. 首先设计模式—视频

SQL

这是最后一节。很多人可能不会被问到很多SQL问题。但是,我一直认为放在后面的口袋里很好。

SQL问题—

  1. 262.旅行和用户
  2. 601.体育场的人流量
  3. 185.部门三大薪水
  4. 626.交易所席位
  5. 黑客rank报告
  6. 177. Nth最高薪水
  7. 对称对
  8. OccupationsPlacements
  9. 奥利凡德的股票

SQL —影片

  1. IQ15:6 SQL查询面试问题—视频
  2. 了解ROW_NUMBER和分析函数—视频
  3. 分析函数的高级实现—视频
  4. 分析函数的高级实现第2部分—视频
  5. 智能猫头鹰SQL视频—视频

发布SQL问题

  1. 二进制树节点
  2. 天气观测站18
  3. ChallengesPrint Prime数字
  4. 595.大国
  5. 626.交易所席位
  6. SQL面试问题:3次技术筛选练习(适用于数据分析师)

面试可能很艰难,因为你可能觉得自己没有进步。拥有本学习指南将帮助您跟踪进度并更好地了解您的工作方式

祝好运

此外,如果您希望阅读/观看更多精彩的帖子或视频:
在SaturnCloud上使用Jupyter笔记本连接到大查询第2部分

Hadoop与关系数据库
算法如何变得不道德和有偏见
如何改进数据驱动策略
如何开发鲁棒算法
4必须掌握数据科学家的技能
SQL最佳实践 – 设计ETL视频

资讯来源:由0x资讯编译自DEV,原文:https://dev.to/seattledataguy/the-interview-study-guide-for-software-engineers-764 ,版权归作者所有,未经许可,不得转载
你可能还喜欢