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