现在越来越多的大厂在面试的时候,或多或少的会问到算法,因为算法可以考察一个人是否聪明,还有基础能力是否扎实。但是算法却受到了程序员的冷落。
因为大部分程序员在一些公司的招聘需求中看到,要求应聘者要有XX编程语言、XX技术等,这就使得他们认为,学习最新的语言、最新的技术、标准等就是最好的铺路方法。其实大家都被误导了。
编程语言虽然应该学习,但是计算机算法和基本理论更为重要。
从事多年计算机教育行业的胡光船长认为:
“算法、数据结构这些基础原理好比内功修炼,而语言、技术、标准等好比是外功,那些江湖高手,都是内功深厚,才称霸武林的。”
算法学好了,才能在计算机界有更好的发展!
那么,算法应该如何学习?我前一段时间见到了胡光船长,作为曾经是百度高级研发工程师的他,对算法的学习和教育有着自己的认识。
01
算法学习,就是不断的练习
先来简单介绍一下胡光老师,妥妥的一位学霸,高中保送哈尔滨工程大学,本硕博连读,在校期间还曾拿过ACM亚洲区金牌,进过两次全球总决赛。
胡光老师ACM获奖证书
PS:计算机专业的同学基本都知道ACM竞赛,它是公认最顶级的算法竞赛,被称为『算法竞赛的奥林匹克』。
胡光船长曾就职于百度知识图谱部,直接推动百度NLP推理引擎开发和落地,曾获百度“黑马奖”、“年度英雄奖”等,后在美国硅谷从事人工智能相关工作。编程和算法功力非常深厚。
那么,胡光老师是如何理解算法的呢?两个字:练习,四个字,那就是:不断练习。
胡光老师刷题简直做到了“走火入魔”的程度,就连做梦都在思考解题方法,他从不认为自己是学霸,他认为自己是“努力型”选手。有一次刷题遇到了困难,刷着刷着就睡着了,在梦中,他突然找到了独一无二的解题方法,万万没想到,第二天醒来就真的会了。
最好的证明:胡光老师ACM奖牌
胡光船长认为,大量的练习,可以激发出人脑中“开窍”的时间点,就像修炼武功要打开任督二脉一样,有的人10道算法题就打开了,有的人需要20道,但这些并不重要,重要的在于坚持练习,谁能抵挡枯燥的练习,谁就能成功。
“提前放弃是最可惜的,刷题和做事一样,不要怕慢,不要太焦躁,多给自己一些耐心,更大的收获就会随之而来。”
——胡光
02
一次招聘,反思算法教育
胡光老师在百度工作的时候,有一次招聘会,面试遇到一个学生,简历上面写了一堆Windows下的小型项目经历,像贪吃蛇、纸牌游戏等。看似炫酷,实则没有技术含量,有的培训班经常拿一些华而不实的项目拿来教学,这种培养受伤的一定是学生。
“教育的作用,除了提升社会的上限以外,最主要的是提升社会的下限。”培训机构也是如此,要