“程”风破浪的开发者|慢慢踏上算法学习之旅
前言
📫 作者简介:「Aion」,专注于运维开发,就职于某科技型公司,担任后端中级开发工程师
🔥 三连支持:如果此文还不错的话,还请 ❤️关注、👍点赞、👉收藏三连,支持一下博主~
算法学习写作背景
「编写博文」
科幻作家刘慈欣在其科幻小说《三体》中虚构了一个“三体世界”,也向公众科普了牛顿 1687 年提出的这个著名“三体问题”。事实上, “三体问题”正是历史上悬而未决的著名科学问题。暨南大学副教授李晓明在国际杂志《新天文学(new astronomy)》发表论文,将“机器学习”与其发明的极高精度数值算法相结合,提出了求解“三体问题”周期轨道的路线图,在数量级层面大大提高了计算效率,为获得“三体问题”海量、精确的周期轨道铺平了道路。如下图所示:
从上面的描述的字里行间,我们是不是对算法由心底产生了深深的敬佩之意。而当前,我正在阅读我比较喜欢的小说——《三体》。也是由于这个原因,我报名并参加了算法的学习。
「书籍介绍」
跟着主讲老师一起学习算法。书籍大体分为三部分:
第一部分:第一章节 算法之美第二部分:第二章节~第七章节 经典算法第三部分:第八章节(新增内容,实际应用中的算法合和高频面试题)
首先根据老师的介绍,第二版比第一版更简洁,增加了一章节关于实用算法的应用的内容。便开始了我的学习之旅~ (此处不该安静的听讲,掌声激烈 👏👏👏)
学习算法的好处
工作:可以拿高薪,挑战高薪必备
工作:基本功,可以在工作中快速给予解决方案
工作:面试中和工作中提升自我核心竞争力
个人:学习力强,让人思维清晰
个人:视野开阔,使人心智成熟
所以,学习算法是否燃起了你的激情之火,蠢蠢欲动的小手开始痒痒的,要开始敲打着键盘编写算法了呀~
常见的招聘要求
至少熟悉一门编程语言
良好的基础、熟练运用数据结构和算法
熟悉数据挖掘算法
熟悉机器学习理论知识
以上要求层层递进,基础的基本功(基础算法和数据结构)是算法工程师的必备要求,当然越往上你的钱包会越来约鼓鼓的~
如何高效学习算法
老师的经验告诉我们,首先要学习数据结构和算法,这两个是 IT 从业人员的基本内功。系统学习,刷题实战,循序渐进,一步一步来掌握知识。其中,经典算法、实用算法和面试算法是我们的学习的步骤的一个大体的架构。
👉 经典算法:数据结构和基础算法
👉 实用算法:利用算法解决实际问题
👉 优化算法:熟练使用优化已有算法
学习算法方式
看书 + 视频 (高效)
看书(最好是图解较多的入门级别的书籍)提供思考,
视频动态解析
题解 + 刷题
专业刷题网站,专项练习
查看别人的题解,学习解题方法和思路
刷题 + 总结
刷题(不要拷贝,尽量手写,多写几次)
反思(灵活运用)
总结(可以使用博文记录或者一些小册子记录)
如何进行刷题训练
「什么时候刷题」
掌握一种算法之后,举一反三,找相对应的题目进行练习,不要复制粘贴,从简单到复杂,从容易到困难,多练习几次,多敲打几次。
「在哪里刷题」
这里非常感谢老师,提供了一些刷题网站,提供的刷题网站主要有比赛类、找工作类、在线测试等一些刷题网站来刷题和测试。
「提交算法时遇到问题」
冷静分析问题,分析哪里可能会出问题、逻辑算法错误、易错点、选择算法是否合理、是否有死循环等,一定要关注、学习和分析时空复杂度。
「做笔记」
记录错误点、坑点。
如何进行算法面试
老师讲课很幽默风趣,听课过程中看到屏幕中学生对老师都是喜爱之意。老师说,在面试时:首先,是平时的积累,一般情况时 1~2 年的时间(我感觉用这几个字概括比较好:算法要趁早);其次,准备面试,大约 1~3 个月时间(我感觉用这几个字概括比较好:准备要充足);然后,模拟面试,检查学习情况,查缺补漏(我感觉用这几个字概括比较好:考前练习);最后,储备知识,了解面试公司,多刷一些要面试公司的算法题目
总结
非常感谢陈老师给予算法的讲解,让我对算法有一个初步的认识。学习是一个充实、快乐的过程,他能让我们在生活中充满乐趣。最后用老师的话来结束第一天的学习:
版权声明: 本文为 InfoQ 作者【Aion】的原创文章。
原文链接:【http://xie.infoq.cn/article/ab19bd77ad471663466704e84】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论