计算机专业这么热,将来还会热吗?只会更热!
(图源:Unsplash)
本文转自微信公众号:刘鹏看未来(ID:lpoutlook)
你学计算机的吧?来来来,我电脑出了点问题你帮忙修一下···
其实我们是学编程的,并不是...
不一样吗?
额···
一千个读者眼中有一千个哈姆雷特,一千个亲戚眼中也有一千种“程序猿”。相信不少计算机专业学生都遇到过上述情况,其实学习计算机专业不一定就会修电脑,就好比学习物流专业并不就是送快递。
对于计算机专业的理解可能大同小异,但是其火热程度却毋庸置疑。1988年我考大学的时候,计算机专业就热得很,我当时还担心它能不能一直热下去。现在看来,计算机专业的火力值丝毫未减,甚至比当时热多了。未来世界,一切皆与计算机有关。
此前,致力于全美知名高校信息整理分析的《普林顿评论》,通过专业前景、薪资水平等调查,评选出了2016年美国最热门的十大类专业,而计算机科学(Computer Science)位居榜首。
同时,国内外知名高校竞相开设计算机专业,报考人数持续走高。从华盛顿大学发布的本科生十大首选专业可以看出,计算机科学和工程专业(Computer Science & Engineering)从2010年开始报考人数直线上升,去年已经超过商业管理跃升为本科生青睐的第一专业。
计算机相关专业如此受欢迎,主要还是顺应社会需求与企业发展需要,Amazon、Google、Facebook以及BAT等行业风向标,对于计算机人才仍然是求贤若渴,激增的人才需求同时也直接抬高了计算机专业毕业生的薪资水平。
美国薪资调查机构PayScale调查显示,2016年美国本科专业薪水前20中计算机相关专业就占了五个名额,毕业生年薪收入在62,900~115,000美元之间,其中计算机科学与工程高居第六,职业早期年薪达到$69,100,中期可以达到$115,000。
在国内,参考麦可思研究院发布的2017年中国大学生就业报告(就业蓝皮书)可知,“互联网开发及应用”(5679元)在本科毕业生半年后从事的主要职业类月收入中排名第一,“计算机与数据处理”(5636元)紧随其后,同时软件工程、网络工程与通信工程位列需求增长型的绿牌专业。
提到计算机科学,远非简单研究架构、学习操作使用这么简单,它延伸出来许多分支,比如计算机理论、计算机工程以及具体的计算机应用等。
计算机理论既包含计算性以及计算复杂度等相关理论,也包括对算法和信息理论的研究。其中算法是创建程序的基础,它独立于编程语言以及硬件,可以帮助找到更佳的问题解决方案;信息理论则是研究信息如何被接收、储存以及传播等,其中编码理论与加密理论都是信息理论的重要组成部分。
计算机工程作为计算机科学的又一重要分支,需要面临从硬件到软件的诸多计算机挑战,比如通过CPU进行任务调度,通过GPU进行图像处理,应用FPGA高度执行狭窄任务等,都是计算机工程中体系架构设计需要面对的任务与问题。
与此同时,编程语言与软件工程同样是计算机工程的重要组成部分。程序员通过汇编语言直至Java等高层编程语言,即可在硬件之上打造不同软件层,给计算机下达不同命令,并完成多种多样的任务;而软件工程师通过软件设计,以操作系统及其互动告诉计算机应该做什么。
计算机应用,顾名思义,主要是通过计算机解决各种现实问题,特别是在大数据、物联网、人工智能等前沿技术的影响之下,计算机应用的外延以及细分领域都得到了极大的拓展。比如,在计算机应用下,越来越多如同Alphago一般的人工智能,挑战并提高了我们的认知能力;通过海量的大数据分析挖掘,我们找到了更多有价值的信息;与此同时,在大量传感器以及物联网的包围下,世界正在逐渐实现万物互联。
面对不断拓展的计算机科学研究,如今对于计算机人才的预期与要求也水涨船高。对于计算机专业毕业的同学而言,至少应该对计算机的体系结构、系统设计了然于心;具备较强的算法以及数据处理能力,能够熟练求解相应问题;同时熟练掌握软件设计思想与流程以及相应的方法与工具。由于设计课程繁多,在此列举一些可看作为计算机专业根基的必学方向与课程:
1、线性代数、概率与统计以及离散数学:对于理工科学生而言,没有一定的数学功底怎么搞科学。通俗点说,即学会数理化,走遍天下都不怕,而数学始终是第一位的,在这儿罗列的三门数学课程都尤为重要,也是计算机专业学生的必修课。在数学学习过程中,也应注重逻辑能力的培养和提高。
2、计算机组成原理与计算机体系结构:这是硬件基础课,计算机组成原理帮助同学们学习如何用数字元件搭建计算机系统,而学习计算机体系结构则是时代进步的潜在要求。此外,“数字逻辑与数字系统”这一先修课程也同样重要。
3、数据结构与算法:对于大多数人来说,算法学习更多是基本知识,只需要掌握和应用基本算法即可,而对于计算机专业的学生而言显然要求更高。同时学好了数据结构与算法这门基础课,对于理解程序编译也是大有益处。(在此推荐MIT出版的《算法导论》)
4、操作系统与编译原理:编译原理可能是本科生普遍觉得很枯燥难懂的一门课,包括词法与语法的分析等,但却是基础中的基础,也有助于理解各种编程语言。最好能在学习期间实现一个小型的编译器,如果语言能自创就更好了。此外,操作系统也是计算机专业学生根基性的课程,学完可以尝试自己实现一个小型操作系统。
5、一门常用的编程语言和编程技术:比如C语言、Python、Java、C++ 程序设计等,毕竟纸上得来终觉浅,能用你熟悉的语言编写大部分的程序,才不至于面对陌生程序手足无措。
如果你已经或者准备学习计算机专业,数学与逻辑能力的培养与提高十分关键,只有具备逻辑与数学建模能力,才能更好地以计算机思维去思考各种事物与流程。当然,英语作为工具,水平也不能太差,毕竟英语与数学都是技术人员必学的两大基础课程。如果这两样技能不过关,很多资料根本无从下手。
计算机仍然在高速发展,几乎各行各业都与计算机建立了直接或间接的联系,甚至未来会有越来越多职位被计算机以及人工智能所替代,计算机如何发展仍然是科学家们关注的热门问题。所以,在相当长的时间内,计算机专业还会持续迸发强大的生命力,我们都会或多或少依赖计算机而存在。
(完)
更多精彩:
专业课的创新创业能力培养实践——以Android应用开发课程为例