至如Google、Amazon、Meta等巨擘,其技术面试多聚焦于编码与算法之题。学子多怀忐忑,盖因此与寻常学试迥异。然则洞悉面试之序,则备之易而效显矣。
大抵软件工程之面试,试者授一题或二题以编程,而期其解之同时,能道其思虑之由。面试者非惟验其终局之对错,亦察其思辨、言谈、及应难之方。
面试者所察
面试者大抵重五要之域:
分析之能
- 此乃编程面试之要义。面试者察其如何析题,辨其模式,择其善策。
- 譬如,若问应试者于数组中求重元素,粗法或可应之,然以哈希集为用之优化术,则显其解难之能愈强。
例证
nums = [1, 2, 3, 2, 4, 5, 1]
seen = set()
for num in nums:
if num in seen:
print("Duplicate:", num)
else:
seen.add(num)
输出
复制:2
复制:1
2. 编码之能
洁而可读之码,甚为要也。面试者期乎正名之变量,结构之逻辑,及少语法之谬误.
佳之编码风格,其要者:
有意义的变量名
格式井然
處理錯誤
逻辑优化
纵有小错,但若应试者能明其理,亦在可容之列。
三、计算机科学基础
数据结构算法之识,于面试尤有益。数组、链表、栈、队列、树、图、排序、搜索诸理,常为所问。
譬如,二分搜索乃面试之常题,以其显效搜索之术也。
f(n)=log2n
二分查找屡减其域,较之线性查找,速甚。
编码面试之重要数据结构与算法议题
四、经世与著述
面试者亦评其所任之项目。实事之业,显实用之识与解难之能。
譬如,开发一医约系统,具如下之能:
约时
病患之管理
数据库之理
認證之系統
显于开发之理,涉实甚深。
五、沟通之艺与文契
言辞明晰者,常能得佳绩。面试官尤重能协群力、善沟通之人。
面试之际:
出声以思
道其术
论他策
需时则问以明义
善沟通者,常能留佳印象。
企业何以重用编程面试?
多士疑企业何故偏重算法与黑板编程,此中缘由,实有数端。
解难之能
诸公司信,解难算法之才者,多具明辨之思。慧解之者,常能速应新技之变与挑战。
明其本源
格物致知,计算机之理,能助开发者于世事应用中择善而从。譬如,明乎何时而用散列表(hash map)或二叉搜索树(binary search tree),则软件之效可大增。
白板编程,能促讨论之兴。
虽白板编程似有矫饰,然助面试者识其思路。亦励沟通解说,非徒恃语法或IDE之建议。
面试之要义
须知面试之评,在于相较。面试者较尔之绩,与他应者同题所解者。
遇难题非败也。若一题之难于尔,则众人亦难之矣。
面试者主要观之:
- 汝之思虑过程
- 解难之道
- 优化之能
- 言谈之艺
- 临危不乱之勇
编程面试非尽善尽美,然犹为诸公司评量软件工程师之常法。其成与否,非惟在技业之识,亦在言谈、自信与条理之思。
持恒练习,根基牢固,兼有实务经验,则面试之能大进。非畏编程面试,应聘者当视之为展其解难之能、技之长之机也。
*引据*












