由于算法工程师的热度,现在很多非计算机专业的同学以及从事工作的程序猿们都想学习算法,或将来找到一个待遇不错的工作,或提高自己在工作岗位的竞争力。当然,也有很多单纯对算法感兴趣的小盆友。
那么,这篇文章我们来介绍一下如何入门算法。
嗯哼,首先学习算法你得知道算法是什么吧。算法可以说是一种 策略机智。比如一个程序猿,是否精通算法写出来的程序绝对是不一样的,在效率和复杂度上会千差万别,或许别人代码十行,秒运行,而你数百行,运行几分钟(别问我怎么知道的,我就是那个被暴击的人)。所以,我们有必要学习一些算法知识。
算法,不为过的说,是程序的 灵魂。好了,既然是程序的灵魂,那你学算法之前,至少得会写程序吧,不然谈何算法(数学系大佬们我,,,我没说你们,,,我知道你们用公式就可以学习和设计优雅而高效的算法了)。谈到程序,可以选择c语言或c++,个人感觉比较适合设计算法。
嗯,准备工作基本就到这里了(什么???都要学写程序了,你告诉我只是准备工作?没错,确实是准备工作)。后面,你需要学习一些基本的数据结构(我学到头疼了,所以你们头疼的时候不要怕)。当然有了上述基础的盆友们就更好啦。
NEXT,我觉得学一些基本的算法是有必要的,比如贪心,最短路,动规,,,因为有了数据结构的基础,还是很快的。不过这是个慢功夫,要慢慢积累。
“啊,我学了好多算法了,我可不可以去做算法工程师了” 答曰:貌似不可。
算法工程师一般是指人工智能方面的(视觉,自然语言处理,机器学习),在学这些东西之前你需要有一些数学基础(数学分析不必了,高数得会吧;矩阵论不学算了,线性代数要了解吧)。然后分视觉和自然语言等方向可以去选择。
学习计算机视觉之前,我劝你学一些图像处理的知识(我不,我就要深度学习炼丹,你管我干啥?。。。俺不管你,俺惯着你,行了吧)。
学习自然语言之前,我建议你了解下信号系统。
完了。怎么这么多东西要学,那我什么时候才能成为算法工程师啊,我看网上说两个月入门,你这个至少一年吧。没错,是要很久,或许不止一年(数学系大佬们请再次饶过我,我知道你们厉害)但是,但是,请动脑子想一下,《二十一天速成 ***》,你觉得靠谱吗?
好了,要说的就这些,想学习的小盆友赶紧行动起来吧!
其实,你可以接着看下去
~~~~~~~~华丽分割线~~~~~~~~~
关注公众号算法与数学,每天学算法(我们欢迎也鼓励零基础的小盆友一起学习哦)