涨薪70%,面试官该懂的你都懂?真朋友一针见血:这题不难!
2023-11-20 12:50:56
前言
曾经一度,面试成为程序员进阶学习最直接的途径。通过面试,你可以直面自己薄弱之处,从而有的放矢地查漏补缺。不过,随着招聘市场的变化,面试也不再像从前那样具备普适性。如今,不少面试官热衷于考察一些偏门知识或奇技淫巧,导致面试者为了应付面试而东拼西凑,却忽视了真正重要的技术。
面试官的考题,真的偏门吗?
为了验证这一点,我特意从自己的字节跳动面试经历中,摘取了4道题目。朋友看过之后,却直言这些题目并不难。那么,事实究竟如何呢?
题目 1:Promise.all 实现
实现一个 myPromiseAll
函数,功能与原生的 Promise.all
一致。
题目 2:有过期时间的 localStorage
实现一个有过期时间的 localStorage
,要求在指定时间后自动清除数据。
题目 3:reduce 实现 map
使用 reduce
实现一个 myMap
函数,功能与原生的 map
一致。
题目 4:寻找最近公共父节点
给定一颗二叉树和两个节点,找出这两个节点的最近公共父节点。
朋友的点评
朋友看完题目后,表示这些题目都是基础知识,并不难。他认为,面试官考察这些题目,可能是为了筛选出对基础知识掌握扎实的候选人。
我的思考
朋友的点评有一定道理。这 4 道题目确实都是基础知识,但它们并非传统意义上的死记硬背,而是需要对语言特性和数据结构有深刻的理解才能解决。
尤其是在实际工作中,很多问题都可以通过灵活运用基础知识来解决。例如,使用 localStorage
来存储用户数据,就需要考虑数据过期的问题。再比如,使用 Promise.all
来处理异步任务,就需要考虑任务执行顺序和错误处理。
面试官的意图
我认为,面试官考察这些题目,可能是出于以下几个方面的考虑:
- 考察候选人的基础功底。 这些题目虽然基础,但可以反映出候选人对编程语言和数据结构的掌握程度。
- 考察候选人的问题解决能力。 这些题目都需要候选人独立思考和解决问题,体现了候选人的逻辑思维能力和编程能力。
- 考察候选人的学习能力。 这些题目虽然基础,但需要候选人对语言特性和数据结构有深入的理解。通过考察这些题目,面试官可以判断出候选人的学习能力和潜力。
程序员的进阶学习密码
从这 4 道题目中,我们可以窥见程序员进阶学习的密码:
- 扎实的基础知识。 基础知识是程序员进阶的基石。没有扎实的基础知识,很难深入理解和运用高级技术。
- 灵活运用基础知识。 学会灵活运用基础知识,才能在实际工作中解决复杂的问题。
- 持续学习和探索。 编程技术日新月异,需要程序员不断学习和探索,才能跟上时代的步伐。
结语
面试官考察的题目,不一定都是偏门知识。很多时候,基础知识才是检验候选人能力的关键。程序员要时刻保持学习的状态,不断强化基础知识,并灵活运用到实际工作中。只有这样,才能在激烈的竞争中脱颖而出,实现进阶发展。