为什么很多大学教的软件技术都是过时的,还乐此不疲的继续教学生这些淘汰的课程?

其他昵称11314611


我们国家的本科教育阶段有两个任务,一个任务是为企业培养应用型人才,另一个任务是为培养研发型(研究生)人才打基础,所以大学本科阶段的课程既注重基础学科的教育,同时又兼顾实用技能的培养。

对于专业课的设置也分成两个部分,一部分是基础专业课,以计算机专业为例,包括操作系统、数据库、计算机网络、算法设计、数据结构、编译原理、计算机网络等内容,另一部分是实用技术,包括编程语言、开发工具等内容。

目前大部分高校开设的编程语言类课程以C和Java比较多,实际上这两门编程语言在实际的开发场景中也是应用比较多的。对编程语言的讲解大部分情况下都属于比较基础的介绍,因为编程语言本身就是工具,也并不是很复杂。

有的高校会开设Java Web开发课程,课程中会涉及到JSP、JavaBean、Servlet这些内容,这些内容在Java Web开发领域已经使用了多年,有大量的项目案例,虽然目前在大型项目中采用JSP已经比较少了,但是学习JSP技术本身对理解前后端开发还是有一定帮助的。

纵观整个大学的课程体系,我们会发现基础课程占据了大量的比例,留给编程语言的课时本身并不多,而且由于编程语言的技术体系更新比较快,所以即使在学校学习了目前流行的技术,也难免不会在工作中重新学习新的技术框架。所以大学教育的根本在于打下一个扎实的基础,而编程语言本身就是一个工具而已,只要多使用,总会熟练的。

如果想在某一个方向做深入的研究,那么可以读研,读研会进入到课题组,课题组从事的研发内容往往都具有一定的前瞻性。

我的研究方向是大数据和人工智能,目前也在带大数据方向的研究生,我会陆续在头条写一些关于大数据方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。

如果有软件开发方面的问题,或者是读研方面的问题,都可以咨询我。

谢谢!


IT人刘俊明


作为计算机科学来说,各种语言层出不穷,更新快,门类多,不可能跟上形式发展,d大学设立课程也不可能紧跟流行,那是速成班干的事儿!大学教的是学习方法,教大家打的是基础!但是,只要基础打好了,学习方法掌握以后,想学习语言还是比较轻松的!


比如,大学教大家BASIC,这东西很多人认为过时了,现在都是VISUAL STUDIO了,还学这么老掉牙的?但是,正因为简单所以才专注!BASIC很简单,但是作为入门语法来说,可以让大家轻松掌握计算机语言的基本逻辑。比如C语言,现在都c++,为什呢学C?而实际来看,学好C语言正是为以后打基础,的确c++功能强大,但是当你进行深入的高质量编程以后,你就会发现最基本的条件循环、判断、才是编好程序的基础,而所谓的可视化面向对向编程基本上只是个框架而已。实际上,当计算机语言学习到后期基本理论都是一样的,c、basic、pascal、等等只不过长得样子不一样,核心还是循环、条件、判断等组合,因此,当你工作以后就会发现,从c转到java很难,明明语法长得样子都差不多为什么难,关键还是各种框架和类库的融汇贯通,不要认为学会了C++会做jsp、asp就称为高手了,windows底层又了解多少?计算机这东西,越学到高深就越觉得渺小!


大学里学的数据库原理,表面上没什么实际意义,但是,当以后在工作中很多基础的原理性的定义都会在这门科学里找到理论支持!

数据结构、算法、这些都很枯燥,很多人毕业以后参加各种招聘会,你会发现考的题目都是最基本最最容易忽略的。。很多做大项目的资深程序员,让他做一个冒泡排序却不会,这样的高能人才我国比比皆是!这其实是整个程序员界的悲哀。

举个例子,国外研发出一款游戏引擎,没有美工之前,可能只是个框架,但是卖到国内经过腾讯一美工就成了王者荣耀,开心消消乐、天天爱消除这类游戏,除了界面风格不同,基本上的算法都大同小异,为什么?大家思考!

当然,事实上也存在着老师知识更新慢、课程设立有待改善的问题!


众口说车


很多大学教的软件技术都是过时的,还乐此不疲的继续教学生这些淘汰的课程,是由于教师能力和学校条件所限!

由于IT技术现在真的是日新月异,因而作为培养适应市场人才的大学,按道理应该要教给学生最新的技术。但是,由于很多教师即使以前是从IT市场的从业人员,但是由于从事教学以后,就开始远离市场,从而不需要用几年时间,他们就完全脱离了IT技术的最前沿。从而使得学生不能只能学习已经落后的技术。这也是很多IT毕业生,不能适应市场,不能找到好工作的主要原因!

还有一点就是即使有的教师能够掌握最新的IT技术,很多学校也未必有很好的配套条件来进行最好的教育。毕竟很多学校都是有一整套比较僵化的体制,人才培养方案和课程教学大纲,都要做到整个学校统一标准,从而也不能适应IT教育需要的极速变化。再加上很多电脑、软件方面更新的滞后,从而使得学校也不能提供真正适应形势的IT教育!

而解决这一问题的方法就是,学校要和相关企业协同培养学生,将很多专业课程交给发展比较迅猛的IT企业,而企业可以从中找到自己需要的实习生,甚至优秀的还可以为公司所用。最终达到产、学、研、用相结合,达到学生、学校、企业和社会的四赢!


地震博士


先说一个真实的例子吧:我一同事的孩子,2000年左右在北方某大学上学,后来知道还是所985高校。他学的是材料与冶金专业,当时所用的教材据说还是六七十年代,源自苏联,教授所讲的冶金工艺也是六七十年代的。当时,我听了之后吓了一跳,这么落伍?

再来看看我们的小学课本,以综合实践为例,十年前编的。关于手机的图片,都是十五六年前的。学生都吐槽,这手机还有人有用吗?我告诉学生,是为了让你们认识古董。智能机都普及多少年了,这内容也该更新了。类似的还很多,也就不举例了。

从小学到中学,许多教材的内容确实应该与时俱进,当然大学也不例外。一线教师知道教材落伍,特别是进入人工智能时代,电子技术更新速度加快,软件技术落伍了,教师有时只能反映一下,谁理你呢?凑合着用呗!


虚无品人生


可别说大学,小学教计算机课了。我碰见过3件事。第一件,我朋友网吧(2001年左右)来了一上网的人,问他有软驱吗。他说,网吧里哪有安装这东西的。又回问他要这个软驱干嘛。他说,中学增加了计算机课。他负责教授。他的软盘是有课程,他要学习。我那朋友一听,来兴趣了。也想学学。恰好他真有一块软驱。就给安装了。在那老师身后看了一会儿就看不下去了。老师正看着课件,学习怎么把一个文件复制或剪切到另一个目录。朋友说,老师,你们就学这个啊?老师回答,是啊。朋友说,我们这儿上网的小孩都会。。。。第二个,公司原先一同事。也算是我一个徒弟。有点关系。后来,进入大学教计算机。后来碰到他。他说,在学校里懂电脑的老师几乎为0。他不止要教学生C语言。还得帮其他老师修电脑。他说,本来就是一写代码的,来到大学硬是被逼成硬件高手。。。第三个,一关系单位,是教plc的。他们与学校口对口的教学。学校学生来这儿定期实习和考试。他说,也有学校愿意自己教。就派老师来学习。他们教的自然是专业,因为将来面向的就是这一行。那些老师却不愿意跟他们系统的学习。拿出课本来说,你就按着上面的课来叫我们就行。我那朋友竟然没看懂那本plc教学的书。。他说,书里面教的东西东一撇西一捺。按那书学出来的还不如不会的好。


打死vcduhv




首先有两点:

1、大学确实有很多过时的技术课程,大部分应该是选修课

2、计算机行业技术更新太快了

为什么说大学还有很多过时的技术呢?像答主本人是计算机科学与技术专业,在武汉住了4年冰箱和烤炉。确实选修过多媒体技术、visual basic等课程。



首先:这些课程并不是让我们毕业后就去从事这方面的工作的,它是让我们对计算机行业有个更全面的认识,恐怕现在很多IT行业的都没听过vb、pascal等吧

其次:大学课程系统还是比较庞大的,没办法跟着技术发展的步伐,技术更迭太快太快,学校的教课材料跟不上的,教师力量也跟不上的,他不像一个公司,今天这个技术,明天可以立马迁移到其他技术的,好在我也发现大学课程在变化了。

最后:一个精彩说的话题,大学应该是一个学术的地方还是一个技能学校?计算机专业课程一般有编程语言、数据结构和算法、操作系统、汇编、编译原理、计算机网络、数据库、计算机组成原理、还有很多数学课程,计算机专业同学应该都接触并学习过。你会发现很难直接去应聘Android、ios、前端、python等,对吧,需要自己业余时间去学习这些技术,计算机技术这么多,学校教不完的,学校能教的是你对计算机有个全面完整的认识,教你学的方法,认知。还是有很多有社会责任感的大公司还是愿意去培养有优秀计算机基础的应届大学生,去学习更多社会技术,去接受更多锻炼。

所以,我们能看到大学很多过时的技术,学校还是要去教的,至少大学在改变了,但不是一时半刻的。

在学校就应该学习扎实的计算机基础,业务时间去学习培养自己的兴趣方向。


编程教育布道师


作为大学教计算机的老师,我来回答这个问题吧。软件技术是一个更新很快的技术,但软件技术的基础知识却没有多少变化。冯诺依曼体系,七十年前提出的,现在仍然适用。TCP/IP协议也有几十年了,现在的互联网依然基于这个协议。计算机的新语言很多吧?但他们实现的冒泡排序算法和几十年前的冒泡算法还是一样啊。大数据技术很牛吧?但大数据用的SQL语句还是几十年前的东西。腾讯阿里很牛吧?你看看他们的笔试题目,考的还是数据结构、操作系统、数据库、计算机网络中的几十年前的基本技术。所以大学教给你的是基本功,是为了你今后能更快地掌握时髦的技术打下坚实的基础,是教给你透过现象看本质的洞察力。


一个有态度的大学教师


我是02年毕业,大学专业是化学工程,自己喜欢计算机在校时自学的计算机,跟了一些课。当时学校数据结构教的是pascal,自学c语音。毕业设计是给我们化工实验室设计一套自动处理实验结果的软件然后打印处理结果,用的vb。

毕业出来找到第一份工作很艰难,但是很庆幸在第二份工作时遇到一个好师傅,他大学是机械系的。他是硬件画板到软件开发都精通,我是跟他学的嵌入式软件开发。现在工作主要平台是嵌入式arm m0~3,c51类,linux,Windows,Android,语音主要是c/c++,Python,Java。个人觉得自己有资格评论这个话题。

过时的软件技术?提这个问题的人基本上我可以断定其眼高手低,自己不努力就怨天尤人而已。大学教的是软件基础。就说说vb吧,vb和.net差多少呢?就我看来差仅仅是语言,其原理都是一样的,事件驱动,写响应事件代码。何为过时?Windows失去市场前都不会过时。

你喜欢什么语言什么平台,你完全可以自学,连一点自学能力都没有的人今早离开IT行业,你不自学随时被淘汰,工作后还会有人教你?


Darkise


第一次回答,不好请见谅。

我大学是计算机专业的,全称计算机科学与技术。个人对计算机很感兴趣所以选了这个专业,但上了四年大学我都没太明白我到底学的是什么?编程语言有c有java,有汇编有算法,有硬件有软件,但老师也是照本宣科,只是讲了理论却忽视了实际应用场合,以至于上学的时候考试成绩不错,但写个程序完全不会,学习方法依旧停留在高中的死记硬背阶段。现在在做前端开发,工作了也需要不断的学新知识,自己看文档学习的时候明白了一个道理,文档上的原理和简单的实例与真正开发过程中遇到的问题完全不是一个级别的。文档上会告诉你遇到问题alert,但不会告诉你实际应用场合你需要的不是原生的alert,而是一个功能很全的自定义弹窗,需要考虑水平垂直居中,要考虑里面的内容和操作按钮的交互以及回调函数,需要考虑封装成组件调用,这么一个组件其实需要html,css.,js等多个语言结合在一起做,而文档上只会告诉你怎么alert。编程需要的是多维度全面思考,并不是照本宣科就行。

其次,说说题主的问题。这个问题很巧的是上学的时候我也问过我们老师,而老师也很负责的跟我说了实话。他们也没办法,因为这是教育部规定的。学校在开一门专业课的时候需要先制定教学大纲并呈报教育部审批,通过了才能开课。教育部有个不成文的规定,教学大纲不能频繁更改,因为会显得制定的时候很不严谨。于是你知道2010年的时候计算机专业的教学大纲多长时间更新一次吗?答案是十五年!对,你没看错,在这个信息技术高速发展的时代,产品技术几乎三个月更新一代的环境下,我们的教学大纲十五年才更新一次!(当然我不确定现在学校里是什么情况)这只能说是国内教育的悲哀,用过时的思想来教育新时代的学生。

另外,老师们乐此不疲的教这些也是有原因的,因为他们只会这些。。。计算机专业的老师有的是科班出身,有的是一线公司退下来的研发人员,不管哪一种,由于长期生活在校园的教学环境中,他们已经与最新的技术发展脱节了,已经跟不上最新技术了。你问他们为什么不主动跟进技术发展?因为他们大部分时间要忙着写教案,制定教学计划,为了评职称写冗长的论文,参加各种政教活动已经让他们分身乏力了。再说就算跟进了新技术发展又能怎么样,最终他们还是只能按照那份过时的教学大纲来讲课。这依然还是教育体制的悲哀。

总结一下,很多大学的计算机专业教的不是技术而只是课本内容。基础知识体系固然重要,但我仍不相信一本九十年代版本的c语言课本和一个几乎没啥用的计算机二级证对我以后找工作和技术发展职业规划有什么实际意义的帮助,因为那课本的版本跟我的年龄差不多大。。。在大学里要学的第一件事就是学会独立思考,不要一切听老师的,学校教的内容还是得学,毕竟不能挂科,但要学会自己去思考和寻找自己想学的只是和应该学的最新技术。想学好技术知识的话,自己多上网了解一下学校外面的情况,多了解现在的市场环境和未来的发展方向,然后根据这些来制定自己的学习路线,多去实践练习,网上有一大堆很棒的教程和开源项目的。学会摆脱老师教什么我们学什么的固化思维,尝试自学新知识才是大学里最重要的。因为等毕业了,工作了,没有人会像老师那样教你,最终一切还是要靠自己。

纯手打,有说的不对的地方多多体谅,谢谢~


想尽139262182


楼主这个问题举例非常不当,计算机学科在大学,教授的内容,不以某种特定的语言,特定的面相社会工程实践为主,例如你说到的jsp,如果以这种角度看待,那大学就是一个职业培训机构而已,这与大学应该传授的内容不符合 。难道学校缴比较时髦的python或者应用广泛的java就是合理的?这些东西应该是职业培训机构的事儿,比如前两年的北大青鸟这样的培训机构,大学计算机学科,侧重的基础学科,而不是具体到用哪个编程语言,如果是jsp,在大学应该侧重它的基本原理,对于mvc软件红工程孰优孰略的,而不是jsp过时与否。所以你对大学里计算机学科的理解有偏差,理解成蓝翔技校了,想想计算机学科,高数,线性,离散,计算机导论,汇编原理,软件工程,算法导论,编译原理,当然,还有很多研究的分支,所以在定位上,大学用那个编程语言不重要,因为他不是蓝翔技校,这是普通大学和普通技校的区别


分享到:


相關文章: