数据结构和算法几乎是程序员面试中都要考察的部分。
重要程度不需要多解释,这些也是非常值得花时间去学习的。
这篇文章不仅能给你提供一些学习数据结构和算法的思路,还能给你在面试机器学习岗位时提供一些建议。
如果你对数据结构和算法并不了解,可以通过网上的视频和书籍来进行学习,大多都是免费的。
最好的教材和内容往往也都是免费的!
想要系统的学习数据结构和算法,我推荐《算法4》和《算法导论》,这两本书能帮助你系统的学习数据结构与算法。
《算法4》是一本非常实用的算法书籍,里面的问题大多都是工作中的实际问题,非常偏应用。
《算法4》另外一个突出的点就是代码的书写,里面的代码简洁且完整,更重要的是这些代码都是工业级别,可以拿来直接用的!
《算法导论》是学习算法的圣经,被很多大学用作教材,这本书主要是学习算法的思想。
像《算法4》中没有动态规划部分,而《算法导论》能很好的弥补了这一点,推荐两本书结合实用。
当对数据结构和算法内容都大致了解,你还需要一本能面对面试问题的书。
这里推荐《 Python 中的数据机构与算法》,作者是 Michael T. Goodrich。
这本书是基于 Python 语言,语法简单且灵活,在面试中能够帮助你快速实现代码。
并且学习规范的 Python 代码书写格式。
这里推荐基于 Python 语言并不是对其他语言有偏见。
上面关于面试问题的书各自还有 Java 和 C++ 版本,根据自己的能力范围和喜好选择。
一个常见的问题。
选择哪种语言做代码练习呢?
没有最好的语言,选择语言取决于你的岗位需求和你的喜好。
在面试中,你只要能实际解决问题,并且规定时间内写出代码就好。
如果你会多种语言,在选择语言之前先听一听问题。
它表明您理解不同的语言是为不同目的问题构建的,适合一项任务的语言对于另一项任务可能不是最佳的。
另外,把你会的所有语言都写在简历上,但不要在面试时炫耀。
面试官可能更愿意雇佣一个擅长一门语言的人,而不是需要一个擅长多种语言的平庸的人。
根据你选择的语言,面试官可能会推断出你对什么感兴趣。
例如,一位招聘经理告诉我,如果程序员选择用Python实现数据结构,他知道这个人可能不会太关注性能。
下面说以下面试中机器学习岗位有关的:
Python已经成为事实上机器学习的通用语言,大多数机器学习框架都有对应的 Python API,大多数开源项目都是用Python编写的。
这是一门很有用的语言,如果面试机器学习岗位,大多数面试官都希望你能掌握它,但不意味着在面试中必须使用它。
如果你对另一种语言更熟悉,那就使用其他语言。
有时用另一种语言编写复杂的模型会让人印象深刻,并帮助你脱颖而出。
由于 Python 语言的性能并不是很好,了解一门面向性能的语言也是很有必要的。
如 C++ 或 Go,大部分用在开发机器学习平台的过程中。
C++ 更加受欢迎,Go 学起来更简单,对他们的选择完全由你自己而定。
再提一下,选择什么语言可以根据你的喜好,然后是工作需要,根据喜好你会有源源不断地动力去精通它。
像我们之前文章说的很多机器学习模型都被开发成网页应用,如果你会一些前端技能也很加分。
机器学习岗位需要学习很多内容,有些时候比较杂,你不能只会调节模型。
但学习这些内容都是值得的,你会进步很快,不断成长,更多的知识也能帮助你学习一个产品中的体系。
机器学习开发需要的其他一些技能,我会在之后的文章中列出,这次就这么多。
最后就是在哪练习数据结构和算法问题?
以上提及的书不需要都看过来,哪些内容忘了回来查就可以了,很多东西不是记住的,而是理解,另外不要背,你需要不断复习。
对于练习平台,力扣非常好的练习代码的平台,这个不用多解释,里面的问题都有难度等级排列,最重要的是每个问题都有相应的答案和解决思路。
最后,最好的练习编码的方式就是每天练习。



