上大学时,计算机系里流传着这样一句话,我想你也一定听过:“如果计算机系只开一门课,那一定是:数据结构与算法。”
说数据结构与算法是计算机编程领域的基石,毫不夸张。数据结构与算法的应用无处不在:图像视频处理、数据库、游戏开发、编译器、搜索引擎、AR、VR、人工智能、区块链等领域,都需要扎实的数据结构算法功底。
但是,学好数据结构与算法,似乎也不是一件容易事儿。数据结构与算法复杂、深奥、难以理解,非常考验一个人的编程功底和长期积累,真的是令人又爱又恨。也正是因为这一点,数据结构与算法成为了大厂筛选人才的必备面试题。
数据结构与算法,让多少英雄“折腰”,遭遇面试滑铁卢。2015 年,开发了 Mac 平台的安装包管理工具--Homebrew 的作者被 Google 拒绝事件,在当时可是轰动一时,引发了不少热议的。
而他被拒绝的原因,正如 Google 的回应:“我们 90% 的工程师都在使用你写的 Homebrew 工具,你却不能白板编程一个二叉树的翻转,所以请滚蛋吧”。
大神也折在了数据结构与算法上,活生生的例子在告诉你:要想进入诸如 Google 这样的更大的公司,你必学迈过数据结构与算法这道坎儿。
想迈过这道坎儿,难吗?说难,也的确难;说不难,其实也是有方法可循的。我跟一位入行算法多年、同时也身为中科院博士的朋友深入讨论了这个课题。
这位朋友,不仅是中科院博士,更是资深算法专家。也是国内首批从事机器学习和数据挖掘工程师,深厚的一线代码开发经验,对数据结构、算法思想有很深刻的见解。
我整理了一下,朋友总结的入行十年,突破数据结构与算法的学习方法,大家可以参考一下:
一、强化记忆,夯实基础
对数据结构的基础知识扎实之后,才能灵活选用合适的数据结构。所以,记忆这一关不能偷懒,一定要攻克。比如,被问到“堆栈”,“平衡二叉树”,要能够清楚表述出来。毕竟有 Homebrew 作者的前车之鉴!
二、梳理逻辑,化劣为优
这部分便是上升一个层次的要求了,学习仅凭死记硬背花蛮力是走不远的,还要“灵”与“巧”。把“烂”代码优化为高效率的代码,优化方法框架。一些巧妙方法可以不改变数据的组织方式,便计算出代码复杂度。
这部分凭自己领悟的确有些难度,最好还是有大佬来指点。所以,我也请这位中科院的大佬朋友把其中奥妙一一总结出来了,想探知奥妙的朋友可以进一步学习。
三、刻意练习,百战百胜
想突破,刷题是不能少的。但是,刷题不能盲目,没有方向的乱刷都是在做无用功。有道是“知己知彼,百战不殆”,大厂面试题的套路若是被你摸出来了,那么他出什么新题也都是万变不离其宗,你可以得心应手地从容应答。
所以,你一定要刷 BAT 高频面试真题,深入剖析高频真题的解题方法和思路。没有全部的 BAT 高频面试真题怎么办?哎,我只好帮人帮到底啦!求着我那中科院朋友动用他的人脉总结出来了。题有了,想不想学,看你自己啦~
四、了解套路,一一避雷
我朋友另外提醒大家,大厂面试看的是综合素质。你必须在面试里体现出综合能力。首先言语表达要过关,不能生涩害羞,“肚里有货倒不出来”。然后,关于现场手写代码、问题分析等必备考察环节,也要做到得心应手。
当然,面试软素质这部分,如果你心里没底,建议跟我朋友来学习一下,手把手教你如何在大厂面试现场完美发挥。
进大厂的那道坎儿--数据结构与算法,到底该怎么迈过去?


上一篇:乌鲁木齐5G网络新进展
下一篇:兄弟打印机 恪守初心
“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!
共0条 [查看全部] 相关评论