如何在编程面试中脱颖而出——21 个解决问题的课程

简介: 如何在编程面试中脱颖而出——21 个解决问题的课程
  1. 解决问题的技巧=了解技术工具箱+在不同情况下应用它的实践
  2. 理解问题是解决问题最重要的一步。
  3. 不要急于解决。在那之前问:
    我可以简化问题吗?
    我可以把问题分解成更简单的问题吗?
  4. 当卡在问题上时。保持好奇,不要沮丧。
  5. 花一些时间思考问题的更多示例和边缘案例。
  6. 先忘记代码。考虑一个人如何“系统地”解决问题。
  7. 暂时忽略困难的部分并稍后再接近它们是可以的。
  8. 在白板上解决比键盘容易 10 倍。
  9. 没有计划地钻研代码只会给你带来压力。
  10. 在采用一个解决方案之前,请考虑多种解决方案。
  11. 从蛮力解决方案开始,然后修复次优部分。
  12. 逐步创建高级计划并验证它是否会引导您找到所需的解决方案。
  13. 尝试简化解决方案。更简单的解决方案更容易编码。
  14. 如果您正在努力实施您的计划,请先编写伪代码。
  15. 使用伪代码作为程序注释,在编码时将每个注释翻译成代码。
  16. 在进行任何改进之前,先专注于让解决方案发挥作用。
  17. 验证您的解决方案是否适用于所有可能的场景和边缘情况。
  18. 你只有解决很多问题才能变得更好。陈词滥调是有原因的。
  19. 对于面试,优先练习公司问得最多和问得最多的问题。
  20. 不要停留在工作解决方案上。了解解决同一问题的其他方法。
  21. 放松并将失败视为反馈。它只是告诉你什么不该做。

沟通

  涉及到编码问题的时候,沟通是关键。一个在工作时需要帮助却能和人正确沟通的求职者比那些能轻松解决问题的求职者甚至更好。    了解这是哪种问题。有两种类型的问题:    1、编码。面试官希望你能针对问题写出简洁高效的代码。    2、闲聊。面试官希望能和你聊一聊。话题通常是(1)高水平的系统设计(“如何克隆Twitter?”)或(2)琐事(“Javascript中的hoisting是什么意思?”)。有时候这些琐事中也会引入“实际”问题,例如,“如何迅速排序整数列?好的,如果不是整数,是其他类型的呢…… ”。     如果你开始编写代码,并且面试官并不想多说废话,只想尽快过渡到“实际”问题,那么如果你罗哩叭嗦太多的话,她可能会觉得厌烦。不妨直接问,“是不是为这个问题写代码?”    让人感觉你有团队精神。面试官想知道和你一起工作是什么感觉,会有什么问题,所以要让他们看到你的团队合作性。使用“我们”来代替“我”,例如,“如果那个时候我们做广度优先搜索的话,就能及时/准时得到解决方案。”如果让你选择在纸上还是在白板上编码的话,选白板。这样,你就可以接近面试官,直接面对他提出的问题(而不是和她在桌子两边遥遥相望)。    把自己的想法大声说出来。不是开玩笑,比如说:“我不知道这样做是否有效——但请让我试一试。”如果你不知道怎么办,不知道这个问题该如何解决,那么就说一说你现在的想法。说一说你认为怎么做可能会有效。说一说你认为哪些会有用,以及为什么没用的原因。这同样适用于琐碎的闲聊问题。当面试官要求你解释Javascript闭包的时候,“这与范围有关,不妨把它放到一个函数中”可能会让你得到90%的分数. 不知为不知。如果正在谈论的话题(例如,具体的语言事务,具体的琐事,运行时分析)的确是你不曾涉猎的内容,那么不要不懂装懂。相反,你可以直接说:“我不知道,但我猜$thing,因为……”,因为后面可以通过分析排除其他选项,还可以拿其他语言或问题做例子

说话不要不经大脑。不要自信地将答案脱口而出。如果是正确的,那么你还是需要时间来考虑如何解释,如果是错的,那会显得你冲动鲁莽。你不是在和人比速度,而且你这么做更有可能因为打断她的话或者妄下结论而惹恼她。


相关文章
|
4月前
|
Java 开发者
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
55 0
|
4月前
|
存储 缓存 监控
Java面试题:在Java中,对象何时可以被垃圾回收?编程中,如何更好地做好垃圾回收处理?
Java面试题:在Java中,对象何时可以被垃圾回收?编程中,如何更好地做好垃圾回收处理?
68 0
|
5月前
|
算法 Java 调度
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
71 0
|
3月前
|
Java
【Java基础面试三十五】、谈谈你对面向接口编程的理解
这篇文章讨论了面向接口编程的概念,强调接口作为一种规范和实现分离的设计哲学,可以降低程序模块间的耦合度,提高系统的可扩展性和可维护性。
|
3月前
|
人工智能 大数据 云计算
开启第二增长曲线!副业必备6000+课程、免费算力、编程实践助你飞速成长!
阿里云为高校学生提供全方位学习计划,含6000+免费精品课程与自测题,及免费在线编程练习。学生可免费获2.68亿小时算力,包括云服务器ECS、对象存储OSS等资源。同时,参与阿里云天池竞赛赢取高额奖金,并通过训练营获得实践经验和证书。借助这些资源,学生能紧跟信息化与AI潮流,为职业发展奠定坚实基础。
98 2
|
4月前
|
设计模式 安全 Java
Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
106 0
|
4月前
|
存储 并行计算 安全
Java面试题:请解释Java并发工具包中的主要组件及其应用场景,请描述一个使用Java并发框架(如Fork/Join框架)解决实际问题的编程实操问题
Java面试题:请解释Java并发工具包中的主要组件及其应用场景,请描述一个使用Java并发框架(如Fork/Join框架)解决实际问题的编程实操问题
30 0
|
4月前
|
安全 Java 数据库连接
Java面试题:解释Java内存模型的无锁编程支持,并讨论其优势和局限性,解释Java中的CompletableFuture的工作原理,并讨论其在异步编程中的应用
Java面试题:解释Java内存模型的无锁编程支持,并讨论其优势和局限性,解释Java中的CompletableFuture的工作原理,并讨论其在异步编程中的应用
29 0
|
5月前
|
安全 Java API
《面试专题-----经典高频面试题收集三》解锁 Java 面试的关键:深度解析并发编程基础篇高频经典面试题(第三篇)
《面试专题-----经典高频面试题收集三》解锁 Java 面试的关键:深度解析并发编程基础篇高频经典面试题(第三篇)
40 0
|
6月前
|
前端开发 程序员 开发工具
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略