面试官|30天完成60多场技术面试,我学到了什么?( 三 )
如何解决问题
优秀的候选人知道如何解决问题(比如排序问题) , 但最好的候选人知道一个问题的多个解决方案 , 并且理解一个解决方案与另一个之间的权衡 。 我表现最好的面试是那些我不仅解决了算法难题的面试 , 而是还提供了替代解决方案并讨论了权衡的面试 。
你要以提供问题的多个解决方案为目标 , 要乐于讨论权衡 , 并且至少要能实现其中一种方案 。
对于技术面试而言 , 要写出清晰的代码 。 大多数面试官既关心你的代码质量 , 也关心你的解决方案的正确性 。 你要尽可能地写模块化代码 , 将可复用的逻辑适当地划分为实用函数、名称变量和方法 , 就像你是 boss 一样 。
如果你被一个问题难住了该怎么办?
有时候你会被难住 。 原因可能有很多:你缺乏必要的知识、你的假设不正确、你遗漏了细节等等 。
我过去以为 , 在这样的时候 , 面试官会基于我想出解决方案的快慢来评价我 。 所以我会很安静地思考 , 不与面试官交流 , 只是思考 。
这就是我们大多数人出错的地方 。 我也明白 , 你需要一个人思考的时间 。 但很抱歉打破你的幻梦 , 你在接受面试时不是你的个人时间 。
是的 , 如果你能自己想出一个解决方案 , 面试官当然喜闻乐见 , 但不要忘了他们也希望看到你能与其他同事合作构想解决方案 。 尽管公司想要技术明星 , 但他们也想要团队合作者 。
因为你的面试官是一个朋友、一个伙伴、一个团队成员 , 他和你是一边的 , 也就意味着你在思考解决方案时应该与他们交谈 。
你应该分享你的思维过程 , 直到你卡住为止;你要充满自信地寻求帮助 , 而不是哭泣般请求帮助 。 这样做时你可能就会揭示出解决方案 , 就像我在接受 Coda 面试时那样 。
如何应对编程挑战
这里的经验教训适用于以在 Hackerrank 和 Codility 等平台上执行编程挑战形式的面试 。 通常这些挑战都是限时挑战 , 比如 45 分钟或更长时间 。
我前面分享的一些经验教训在这里也适用 , 但其它一些却并不适用 , 比如让别人澄清问题 , 因为这里没人可问 。 这里我推荐一些步骤:
- 通读并完全理解问题 。
- 首先写出能工作的代码 , 即便是暴力搜索算法也行 。 这可能无法通过所有测试案例 , 但优先事项是拿出可工作的代码 , 最好能在前 15-20 分钟完成 。
- 使用不同的输入类型测试你的代码 , 因为这有助于你处理边缘案例 。
- 优化效率 。
- 重复 4 和 5, 直到最后一分钟 。
如何应对居家编程项目
居家编程项目能让你有机会更好地展现自己的才能 , 因为你有更多时间 。 这也意味着这类项目更耗时间 。
一家面试我的公司还为从事居家编程项目的时间提供了大约 68 美元一小时的薪资——说明这个任务很严肃 , 你也应该严肃对待 。 不过在你花时间搞居家项目之前 , 你一定要相当确信你希望进入这家公司 。
永远不要在居家项目的代码质量上松懈自己 。 要针对性地进行你的设计决策 , 即命名规范、代码结构等等都要好好考虑 , 并且要做好准备为你的选择辩护 。
你应该使用什么工具?
在我接受 Course Hero 的面试时 , 我使用了 regex 来解决我本可用更简单的字符串解析算法来解决的问题 。 事实证明 , 这是个糟糕的决定 , 我也没通过面试 。
经验教训:仅使用你非常熟悉而且经验丰富的工具 。
如何进行现场面试
在面试前一晚好好睡一觉 。 面试当天提前到达 , 然后保持微笑(这有助于你展示信心 , 而且更重要的是能让你保持放松并感觉一切都在控制中) 。
直面你的恐惧并接受它——即使失败 , 也不是世界末日 , 毕竟这只是又一场技术聊天而已 。 然后进门 , 开始聊天 。
推荐阅读
- |沪上医生成功使用首台国产骨科手术机器人完成全膝关节置换术
- 癌症肿瘤|全球首例!中国抗癌突破:30天彻底治愈肿瘤,同时攻克红斑狼疮
- 汽车知识|朗逸最终输给它!号称“移动大沙发”,油耗4.9L,30天卖53761台
- 老年人健康,白内障|昆明普瑞眼科成功为112岁老人完成白内障手术
- |远程完成两台手术!“马栏山数字医疗体系”合作共建跨出第一步
- 爱车扒圈|30天甩出15096辆!哈弗又一“爆款”,动力带T+独悬,不足6万
- 豪车|宝马要逼死奔驰奥迪!价格跌到25.1万,油耗才6.3,30天卖15910辆
- 39健康网|全球首例!中国抗癌新突破:30天彻底治愈肿瘤,同时攻克红斑狼疮
- 汽车知识|又一大奔跌到14万,买不起5系就看它,30天甩8306辆,迷倒一片
- 关节骨头|「技术突破」聊城市人民医院东昌府院区完成两例颈椎前路减压手术
