高校学生如何学习软件设计才能符合企业要求?

本文探讨了当前高校计算机教育中存在的问题,即理论与实践脱节,导致计算机专业毕业生难以满足企业需求。文章分析了问题根源,并提出了改进措施,强调最新技术和实践的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多计算机专业出来的学生(包括研究生),往往是理论基础很扎实,但是动手能力不能说不扎实,如果犀利一点的话,可以说是根本没有.为什么?

我想了想,决定写这篇文章.

前一段时间,优快云做了一次访谈,采访的是清华大学的几位在计算机程序设计教学中比较有成绩的老师,在他们的谈话中,我或多或少的听出来一点这样的意思:就是现在高校实施的计算机教育确实存在着一些问题。虽然说的很含蓄,但这的确说明了一些问题。问题就是:为什么高校每年都送出那么多的计算机专业的技术人才,而无法满足企业的需求,使得计算机这个本来很有前途的专业,变成了这样一个专业:就是大家都承认计算机很有前途,但是就是科班学计算机的人很大程度上找不到对口的工作。从而,导致了计算机专业成了一个“鸡肋”。

问题基本已经明了了。我个人认为:某些高校现行的计算机教育的确存在很大的问题。那就是过多的从学科研究的角度出发,去实施专业教学。但仔细一想,到底社会上会需要多少学科研究的人才呢,我相信应该是多了好,但问题就是究竟有多少人适合学科研究呢,是不是有一些人(硕士,博士)就够了呢。我认为是这样的。计算机作为一种工具,从这个层面上,我认为能够让计算机在各个行业跑起来的人,才是整个社会需要最多的。

哈哈。其实国家早就认识到了这一点:所以才会在各个高校接二连三的建立软件学院。所谓软件学院很明显就是要专攻软件开发!!以适应社会需要!

但是在前一段时间优快云举办的一次技术交流会上(陈黎夫老师那个)。我问到了一个问题:就是能不能把一些业界流行的先进技术拿到高校课堂上去讲。结果别人的回答:让我很诧异!说这个想法很独特新颖。这说明了什么?我想从某种程度上体现了他的知识的片面性,不知道现在有些高校就是这么做的(例如我们就已经这样做了);还有一方面就是反映了绝大多数业界的技术人员(感到很诧异的那个是一个资深的软件工程师)是怎么样看待高校的计算机教育的,我大概可以揣测的到:那就是学校里面学习的东西都是花架子!这不能不说明一些问题!

但是顺着这个问题,我又想了一下,他(其实还有很多人)为什么会感觉到诧异,他要表达的是不是这样的想法:就是业界流行的技术是不是只有在企业已经从事软件开发的人才关注的呢???又或者说,是不是这些技术必须要等到在企业做了一段时间的软件开发才可能关注的呢??那么倒过来说的话,他是不是认为:在学校里面是不适合学这些(软件开发新技术和方法)的呢?

那么我就想了,既然业界最新的技术拿到学校的课堂上,受到了很多人(的确,很多)质疑,那么专业的课程是不是真的培养目标出现问题了呢?

其实针对我上面想的问题,我很快想到了答案:那就是学校的培养目标没有出现问题,你可能会诧异,既然学校的培养目标没有出现问题,那么课程就没有出现问题,那为什么还有那么多学生不能从事软件开发呢?

对!这就是症结所在!的确,学校的培养目标没有问题,从软件设计和开发的角度,但凡业界的人都知道,软件开发首先是要又思想和算法,那么回头看看学校的课程是这么设置的,从数据结构到算法,讲了很多原理,这都是为从事软件开发准备的必须的基石。但是我刚才提到的是首先,那么就有然后,就是用思想和算法去实现(就是真正的去做开发),再看看学校的课程,也有某某设计语言,最后还来个软件工程什么的。大家想一下,某某语言和软件工程(特别是工程二字,太确切了,工程就是要真做),不就是实践(或者叫实战)吗?

这样一分析,可能你认为我所谓的高校的培养目标没有问题这个论断了。(呵呵,如果你又高见,不妨回帖交流)。

你可能被我绕迷糊了,那么症结到底在哪呢(勿庸置疑,肯定存在)?

的确我承认,培养目标没有问题,但是又目标不一定就能实现,关键看过程!!!!我所了解的(通过高校毕业生)很多高校往往在讲授这些课程是,过多的偏向了理论介绍,当然前面的思想和算法,理论的比例偏大一些也可以理解,但是后面的语言和工程,如果还是那样纯粹的理论介绍,很少实践,或者根本就没有实践。那就出问题了!然而,据我了解,很多学校都是这么做的,上来就是理论(说实话,看有的学校的视频,那个理论都是好多年之前的,汗呀!),然后还是理论,讲到最后还是!这样教的话,除非学生是天才,代码才能写出来!代码写不出来,就靠理论(幻想着,说说理论代码就能自动出来),可想而知,哪家单位会用你!

我想,写到这,大家可能就知道了,症结所在!

可能有的人会反驳了,你的问题是不是:程序设计在课堂是教不出来的,或者说教也只能教一个皮毛,因为在软件公司内,要面对不同的业务场景,而在课堂上时间实在太有限了。太对了,我给你鼓掌!说明你深谙程序设计之道!!

如果看到这,我希望你能继续看下去,因为现在我要给出我的解决方案(用一个文词吧)了:

(1)第一,首先我承认,如果只靠课堂那点时间,就想掌握将来在企业所有业务场景的解决方案,那是根本不可能的!在软件设计这个领域,没有一个放之四海皆准的真理。但是又不能不实践,所以这就要求老师要把最新的业界用到的知识介绍给学生,扩大学生的知识面,让学生窥一斑能见全豹,最大程度上调动学生的思维,让其积极的思考,综合自己所学的思想和算法,寻找应对方案!

两个字概括:“引导”。要想有代码,先要有解决这个问题的思路,思路怎么来的?那就靠思考!怎么样让学生主动去思考?那就是“引导”。个人认为,逻辑还算缜密!臭屁一下。

我最深恶痛绝的就是灌输代码,让学生们只忙于敲代码,而没有时间去思考!表面上看,好像很又成效,大家都能“模仿”着把代码写出来,好像完成了任务。但是绝大多数时间都浪费了,成为敲代码的机器人!
(2)就是老师的原因。作为老师,我现在才刚刚体会到“如果你想给学生一杯水,那么你必须有一桶水”这句话有多么的深刻!!接着第一个建议,如果要引导学生去思考,首先要吸引学生,如果学生都听的昏昏欲睡了,那我想这堂课就没有意义!

那么怎么样去吸引学生,这的确是仁者见仁,智者见智的事情。我认为,吸引学生无外乎三点:最新的东西能吸引学生(比如美国911事件的新闻,哈哈);有用的东西(比如说,你学会开车,这车就送给你,同样类比,学会这个技术,你就能比别人多拿几K,我想大学生都有这个分辨力);不一般的东西,如果对一个场景,大家都熟悉了,你再反复的讲,就失去了吸引力;可以去多介绍一些独辟蹊径的解决方案。

不要小看这三点:新东西,要求老师有敏锐性;有用的东西,要求老师有实战能力;不一般的东西,要求老师知识面要广,要创新。呵呵,这其实正符合了的“创新”精神!

每想到此,诚惶诚恐!!

(3)就是学生的原因,为什么,因为一个很简单的逻辑:学生通过老师学习知识。知识是死的,人是活的。那么在这个逻辑中,学生和老师都是人,刚才提到了老师,现在就该从学生身上找找原因。

在老师正确引导的情况下,同时学生也思考了,如果还是没有学明白的话(就是自己还是写不出来代码),那就是一个最基本的条件没有保证:时间。刚才提到,课堂时间是非常有限的,只能够做引导学生思考用。然而,思考只能有思想和算法,那么实践怎么办?所以说课下的时间是关键,庆幸的是大学里都有充裕的课下时间。只有保证了时间,才能实践,才能检验你的思想和算法是否正确,才能在实践中积累越来越多的经验,反过来,经验再来指导你的思路。如此迭代,何愁不进步!

做软件开发的都知道,迭代的前提就是有足够的实践。所以建议学生不要浪费了自己的大好的青春年华!

总的解决方案,可以用一个公式来概括:时间+思考+实践=成功!

还有一个公式,来源于我的学生,更适合软件设计专业的学生:沉淀技术+构思产品+开发产品=效益!

看到这,希望对你有用。请留下您宝贵的建议!

最后要声明一点:本帖属作者原创。如若转载,请注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值