昨天有一位家长向我咨询说,别人向她推荐了Web 开发课程,说是对学生的升学比较有帮助,她对这个课程不太理解,想问我是否有价值?其实我之前收到过很多类似的咨询信息,有的是Web开发,有的是人工智能课程,有的是网络爬虫,还有办公自动化等培训,对于大部分家长来说,他们根本无法分辨这些课程的价值,仅从课程介绍来看,都觉得挺有用的,但是否适合学生学习,就不知道如何评价了。
存在即真理,以上所提到的这些课程其实都是比较有价值的课程,这些课程从不同的应用场景出发,能够帮助学生针对性的提升某个方面的技能。例如网络爬虫课程,这个课程就能帮助学生掌握爬虫类应用的开发,很多公司的商业模式就建立在网络爬虫之上。而Web 开发,更是大部分公司所需要的技能,不管是做一个网站,还是开发一款App,都需要Web 开发人员。
但从另外一个角度来看,这些课程都属于技能型的课程,如果学生马上面临着就业问题,或者是从非计算机专业想要转行到计算机行业就业,那么应该优先考虑参加这些课程,学会了这些课程,就可以立刻在公司干活了,这些技能都是直接面向工作岗位的,每学会一项技能,就相当于离某类型岗位又近了一步。
但如果学生的目的是为了升学的话,那这些技能性的培训就未必适合了。相比于这些技能型培训而言,使用计算机解决问题的能力,即算法能力是更重要的。算法是大学计算机专业最核心的一门课程,这门课程的目标就是培养学生使用计算机解决问题的能力,是否具备这样的思维能力可能是计算机专业和非计算机专业人员最本质的区别,这也是USACO竞赛为什么能够得到大学认可的原因。
即使从就业的角度来说,一流的互联网公司应聘员工的时候,核心的考核基本上也都是算法能力,特别是针对于应届毕业生,他们不会要求这些学生在某个应用领域方面多么精通,而是会通过考核底层算法能力,从而确定学生是否具有算法思维,一个具有算法思维的学生,参与任何一个领域的应用开发,都是能很快上手的。
综上可以看到,顶级的大学和一流的公司都在强调学生的算法能力,这已经能从另一个维度说明算法的核心价值了。所以针对初高中学生来说,性价比更高的应该还是算法的学习。先集中精力把算法掌握到一定程度,这相当于掌握了计算机专业的底层思维,后续可以再深入到某一个有兴趣的应用领域。
当然,如果学生学有余力,基本算法都已经掌握的比较好了,例如USACO已经到了金组,那么学习下Web开发也是不错的选择。Web是互联网最基础的连接方式,你常常浏览的网页,最频繁使用的App,这些都是通过Web的方式进行开发和部署的。掌握了Web 开发的同学,就能有机会把自己的想法变成系统,提供给更多的人使用,很多互联网的创业不就是这样开始的吗。
古人说开卷有益,对于这些技能型的培训课程也是一样,每套课程都会有它的价值,如果有时间有精力的话,接触一下总是不错的。但对于学生来说,也需要有重点的进行学习,在能够抽出大块时间的时候,去啃一些比较难的硬骨头,学习一些最核心的底层思维,这样会对后续的学习和工作帮助更大!