2024-11-13 19:31来源:本站编辑
这篇按要求写的文章很好骑在一辆车上25岁的亚马逊软件工程师拉梅尔·贝利(Rahmel Bailey)的对话我住在西雅图。为了篇幅和清晰度,本文经过了编辑。
我在亚马逊做软件工程师已经两年多了。我也是FYJump的负责人,FYJump是一个帮助早期科技工作者找到入门级职位、发展技能和准备面试的平台。我们的服务对象是那些在这个行业没有太多人脉,需要帮助才能进入这个行业的人。
几乎每个软件工程或相关的职位都需要某种形式的技术面试,所以对求职者来说,做好准备并表现良好是至关重要的。
我主持过许多模拟技术面试,帮助客户培养最终进入这个行业的技能。以下是我对如何通过技术面试并找到理想的技术工作的建议。
在你开始准备技术面试之前,你需要明确你的职业目标,明确你要申请的工作类型。银行编程面试的准备工作可能与大型科技公司的面试完全不同,所以确定你的目标可以帮助你制定准备计划。
我建议在小公司寻找入门级工作的新程序员掌握构成大多数技术编码问题的基本数据结构和算法。我建议掌握八种基本数据结构:数组、字符串、链表、哈希映射、集合、队列、排序算法和二进制搜索。你可以在YouTube上观看有关这些概念的视频,或者参加Coursera提供的谷歌免费数据结构和算法课程。
如果你申请的是像亚马逊或谷歌这样的大型科技公司,这些公司往往会有更深入的技术面试,你需要学习更高级的数据结构和算法,比如二叉搜索树和高级图算法。根据你的学习方式,你可以通过课程、教科书或YouTube视频来学习。
Leetcode是一个流行的编程面试问题在线数据库。很多人说准备面试的最好方法是在Leetcode上做几百个甚至几千个问题,但我不认为这是正确的方法。我认为彻底理解核心概念比尽可能多地解决问题更重要。
我告诉我的客户通过专注于重复来更聪明地学习,而不是更努力地学习。花尽可能多的时间彻底理解每个问题。
看一下解决方案,然后回溯,试着拼凑出你是如何得出那个答案的。当你第二天遇到一个新问题时,回到你之前的问题并尝试再次解决它。我还建议人们使用Blind 75和NeetCode来获得额外的练习问题和面试资源。
当你独自在家练习时,能找到解决方案是一回事,有无限的时间和资源,但现场采访完全是另一回事。你不仅需要对每个问题有一个概念性的理解,你还必须在限定的时间内与面试官讨论你的思考过程,并与他们合作。
因此,我建议人们准备模拟面试。联系工程师或朋友给你面试的机会,或者在网上观看其他人接受模拟面试的视频。给别人一个模拟面试甚至会很有帮助,因为你可以从面试官的角度了解它是什么样子的。你可以成为一名出色的工程师,彻底理解每个概念。但是,如果你进入面试并开始默默地编码,你并没有最大程度地证明你的能力。我认为沟通技巧是区分那些进入更先进的科技公司的人和那些没有进入的人的区别。
许多技术面试大约45分钟,包括1到5个编码问题。在简短的问候之后,你会遇到一个问题。
工程是关于正反两面的,或者是针对情况的最佳答案。面试过程并不容易,但如果你愿意花时间学习,并与愿意帮助你的人为伴,你就会成功。
如果你在一家大型科技公司工作,想分享面试技巧或经验,请发邮件给Tess Martinelli: tmartinelli@businessinsider.com