首页 web前端 js教程 通过练习题提升面试游戏水平

通过练习题提升面试游戏水平

Aug 21, 2024 am 06:18 AM

Level Up Your Interview Game with Practice Problems

介绍

对于那些不认识我的人来说,我是一名拥有 10 多年经验的前端工程师,他还创建了 BigDevSoon - SaaS(下一代代码学习平台,您可以通过从第一天开始构建东西来学习。)很快就会有 10k+ 用户/本月 MRR 为 1,000 美元。

尽管我很喜欢在 React 中构建现代 UI,但多年来“前端”角色的转变迫使我多次成为全栈开发人员、创建 BFF(前端的后端)、分析和思考大量的数据结构并使用数据库。从其他方面来说,我们不再是“网站”开发者,为了跟上步伐,我们需要一直学习和适应。

在当今艰难的市场时期,我花了一个多月的时间才找到最新的工作,您可以在这里阅读这一历程。通过通常 10 多个阶段的马拉松式面试,我了解了新模式以及我们需要如何更轻松地适应陆地工作。

我注意到的模式之一是沟通和软技能,例如“录制您的欢迎视频并向我们介绍一下您自己。”或 3 次以上行为/文化访谈“在某种情况下你会做什么,为什么,请解释一下。”但这是另一天的主题,我不会在这篇文章中讨论。

上面我只会提到一件事,如果您还不是“影响者”,那么值得做的就是尝试记录自己,甚至尝试做您创建的演示功能、副项目或介绍您自己和您的职业(例如,最多 3-5 分钟总结您的简历、经验、过去的项目)。听完这个后,您可能会发现自己的声音太小了,或者您在镜头前压力太大了。这是一个很好的练习,可以克服这种恐惧,想象一下通过 9/10 阶段,却因为没有练习而未能与 CEO/TL/经理交谈。那就可惜了。

另一个主题是众所周知的练习问题,但相信我,你不需要掌握整个 DSA,包括 Dijkstra 算法或红黑树之类的东西(尽管这对你下次面试有帮助)。

所需要的只是一点点的磨练和准备,这样你就不会措手不及,并且可以解决这些现在许多公司用来筛选候选人的“小问题”,而不是在长时间的面试上浪费时间通过投入资源(例如需要采访的人等等)

新兵训练营/课程后的许多“瀑布”开发人员缺乏的是解决问题的能力,这些程序经常牵着你的手,不允许你自己思考太多 - 不是说这是错的,而是要变得更好需要不同的技巧,要在压力下顺利进行面试,能够快速拿出 10 分钟前承认的问题的解决方案,并且面试官希望它在不到一小时内解决,这是一个巨大的改变。

让我们从我经历过的一个例子中进一步了解这一点,然后我将分享一个在面试中帮助我的日常习惯,并提出一些有价值的解决问题的练习题。

回文问题

所以回文是一个从向后或向前读取相同的值。例如。 Racecar 是回文,但 hello 不是回文,因为当你反转该值时,它会变成 olleh。

我正在与我所申请的一家公司的招聘人员通电话,我们进行了冷静的闲聊,因为这是该公司的第一阶段之一。现在,面试的最后 10 分钟“嘿,最后一个问题,你能为回文问题编写一个代码解决方案吗?” ……我有点措手不及。

但是我们得到了这个,立即跳入 https://jsfiddle.net/ 并写道:

function isPalindrome(string) {
  return string.split('').reverse().join('') === string;
}
登录后复制

为自己感到骄傲,但招聘人员说“请不要使用内置方法。”。

好的,没问题,我们很快就没有时间了,但我明白了。

花一些时间想出一个愚蠢的解决方案,如下所示:

function isPalindrome(string) {

  let isValid = true;

  for (let i = 0; i < string.length / 2; i++) {
    if (string[i] !== string[string.length - i - 1]) {
      isValid = false;
    }
  }

  return isValid;
}
登录后复制

当然,招聘人员开始谈论大 O 表示法。我们又聊了一会儿,我又崩溃了,措手不及。

假设一个可接受的解决方案是这样的:

function isPalindrome(string) {
    const normalizedString = string
    .toLowerCase()                    // Convert to lowercase
    .replace(/[^a-z0-9]/g, '');       // Remove non-alphanumeric characters

  for (let i = 0; i < normalizedString.length / 2; i++) {
    if (normalizedString[i] !== normalizedString[normalizedString.length - i - 1]) {
      return false;
    }
  }

  return true;
}
登录后复制

我们在这里做了两件事,首先,我们标准化了一个字符串,因此对于一个男人,一个计划,一条运河:Panama,我们得到了 amanaplanacanalpanama,并且我们提前退出循环,而不是总是迭代“半通过字符串值”。

这只是一个例子,但让我们了解一下发生了什么错误。

  1. 缺乏沟通,我什至没有问招聘人员是否意味着伪代码,想要制作像 TypeScript 这样的严格类型,或者小提琴是否是正确的选择。
  2. 我没有验证是否可以使用 Google/ChatGPT(嗯,这是一件超级容易解决的事情,但我几乎没有时间,写完一行字后我更加心烦意乱)。
  3. 我提到我的上一个解决方案可以改进,但我们没有时间把它写下来。也许这是一个奇怪的面试问题最终抓住了我,但通过提出适当的问题,例如“我可以使用内置方法吗?我应该使用循环吗?我应该编写伪代码还是可行的解决方案,我可以用谷歌搜索吗?” /聊天GPT?”肯定会节省我很多时间。

吸取教训,我开始了 leetcode 的磨练。每天总是 1+ 个问题,但大多从简单/中等难度中进行选择,并尝试专注于“人性”的问题,因为招聘人员通常会使用这些问题,例如买卖股票的最佳时机 我在接下来申请的一家公司中接到了一项任务,并解决了这个问题。我喜欢向 ChatGPT 询问我正在申请的公司的情况,并推荐可能相关的练习问题,甚至添加招聘人员的一些信息作为额外的背景信息。 (是的,如果他们解释得不太清楚,你可以通过电子邮件询问他们在面试过程中会发生什么)。

一段时间后,您将开始看到模式、数组问题、字符串问题、连接部分,并且会变得更好,因为即使测试用例不同或问题性质不同,您用于解决这些问题的方法也可以共享完全不同。

值得检查的问题

随着我们向平台添加越来越多的功能,我将在 BigDevSoon 上无耻地提前插入练习题(目前有 41 个),试图让事情变得简单 (KISS) 并策划最相关的问题+ 还有一些热身(简单级别)。

我在下面列出了其中 10 个我认为值得解决的问题。

1. 回文

2. 找到最大值

3. 买卖股票的最佳时机

4. 盛水最多的容器

5. 数韵律

6. 组字谜

7. 字符串压缩

8. 子集

9. 最常用的 N 个单词

10. 查找数组中的所有重复项

概括

就是这样!从这些练习题中可以学到很多东西,每一个都是激活大脑的有趣方式。

长期以来,我的目标是在社区中传播基于项目的学习方法,并启动并运行 BigDevSoon,这是我们在过去 3 年里一直致力于开发的应用程序。这对我们来说是一项伟大的成就。

继续编码! ?‍♂️

以上是通过练习题提升面试游戏水平的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1675
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在行动中:现实世界中的示例和项目 JavaScript在行动中:现实世界中的示例和项目 Apr 19, 2025 am 12:13 AM

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

了解JavaScript引擎:实施详细信息 了解JavaScript引擎:实施详细信息 Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python vs. JavaScript:社区,图书馆和资源 Python vs. JavaScript:社区,图书馆和资源 Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python vs. JavaScript:开发环境和工具 Python vs. JavaScript:开发环境和工具 Apr 26, 2025 am 12:09 AM

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C/C在JavaScript口译员和编译器中的作用 C/C在JavaScript口译员和编译器中的作用 Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

Python vs. JavaScript:比较用例和应用程序 Python vs. JavaScript:比较用例和应用程序 Apr 21, 2025 am 12:01 AM

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

See all articles