
招聘
学算法、刷题本质上是一种取巧行为。对于算法岗位而言,真正需求的并非是那些通过学习才能掌握算法的人,而是那些能够自发思考并设计出算法的人才。然而,大厂在
招聘时往往难以精准筛选,只能采用广泛撒网的方式,即便容忍一万个刷题选手进入,也甘愿为找到那个无需学习就能创造算法的天才。作为架构师,至少需要了解各种排序算法,以便根据实际场景选择合适的算法及其预期复杂度。例如,若计算耗时超过0.1秒,需与前端UI异步处理以避免界面卡顿;超过1秒则应加入进度条让用户随时终止操作;十亿次以下的计算可在CPU中运行,而更大规模的运算则需考虑GPU加速;排序后的数据是否缓存到内存以供下次调用,或者重新计算节省内存?至于常见的几种排序算法,我从未专门学习过,但第一次面对相关场景时,却能自然而然地构思出解决方案。这些内容根本不应归类于学算法的范畴。在我看来,像RSA加密和签名、快速傅里叶变换这样的技术,才是值得深入学习的算法。而ECC椭圆加密、BP反向传播等底层算法,则因其复杂性更需要系统研究。