03.07 如果让你选择计算机本科最重要的三门课,你会选什么?


首先,我先就题目中的问题做一个明确的回答,然后再做一下详细的分析。

我认为本科阶段计算机专业最重要的三门课程分别是:高等数学、线性代数、概率论与数理统计。如果是最重要的三门专业课,我认为是:计算机体系结构、计算机网路、算法分析。

作为计算机专业的学生一定要有一个扎实的数学基础,说白了计算机问题归根到底就是个数学问题,这就是为什么我要把高等数学、线性代数和概率作为最重要的三门课程列出来。计算机最常见的解决方案在金融、通信、管理领域和工业控制,这些领域无一例外都对数学有较高的要求,如何通过计算机软件实现算法进而来完成问题的求解,这是计算机解决问题的一般过程。

2018年颇为流行的领域集中在人工智能和区块链上,很多人都认为区块链技术将迎来其出现到现在以来最大的风口,2018年区块链将迎来很多落地项目。

人工智能从大的方面包含语言处理、知识表示、自动推理、机器学习、计算机视觉以及机器人学,从知识结构分为:问题求解、推理与规划、不确定知识与推理(概率推理)、学习(样例学习、学习概率模型等)、通讯、感知与行动等几个大的方面。这些内容的基础就是各种算法的实现及应用,通过对算法实现的大量训练来完成针对各种场景的实际应用,所以在人工智能领域数学扮演的角色是毫无疑问的主角,程序设计往往只是一个工具而已。

说到这里不得不提一下大数据,在大数据领域数学也是主角。这让我想起了鄂维南院士曾经在一次会议的发言中提到:做大数据不是知道如何使用Hadoop、Spark就可以的,真正的难点和重点在算法上。

区块链技术的核心问题就是算法的实现,做为区块链技术的代表应用比特币本身就是一个算法的解。很多人提到的“挖矿”,就是利用计算机在求解的过程,所以说要想搞清楚区块链要有一定的数学思维和数学知识。

作为计算机专业的学生来说,计算机体系结构和网络是重要的基础课程,对计算机的整体结构和通信有深入的了解对日后的工作和科研都至关重要。

说到这里,很多非计算机专业的同学可能会感到困惑,为什么没有提到一个编程语言呢?因为编程语言在计算机课程体系中是比较简单的内容,完全可以自学。

当然,计算机专业的其他课程同样重要。计算机领域需要各种类型的人才,并不是所有的人都需要跟数学打交道,比如前端设计几乎用不到数学知识。所以,对数学不感兴趣的同学也可以从事计算机行业。

关注我,了解更多计算机领域的知识,我是悟空问答的签约作者,我是奋斗在互联网领域的IT人。


IT人刘俊明


我已经离开大学的校园10多年了,说实话,大学的课程已经无法全部记得。而且我读大学的时候,计算机还并不是一个普及的家用设备。

我记得我的第一台电脑配置是:赛扬533M、64M内存,2M TNT2显卡,56K猫,20G硬盘。这个是在我高三的时候买的。

虽然现在记不住有哪些专业课程了,不过,大学一直是我觉得很后悔的一个时间段。

因为我的大学时间80%都是浪费了的。真正在自己懂事以后,才会明白,时间是多么重要。大学的时间对一个人真正的意义。

在大学以后,我们再也不可能有那么多自由的时间,那么多学习的机会,那么多志同道合之人了。

所以,如果我的大学时间能够再来一次,我一定不会放过学习任何一个课程的机会,因为他们都非常的重要。任何一门课程,都会成为我们未来成长的基础。

如果让我一定要在大学的课程中选择3个我觉得最重要的课程的话,我相信我会这样选择!

英语

这其实并不是计算机专业的专业课,但是,我觉得这个是想要学好计算机专业知识的基础。因为,不管是Java还是C++,或者其他语言,他们都并不是中国人创造的,我们需要了解这些知识的话,有些时候就一定需要去阅读一些外国人的博客,浏览外国论坛或者读一些英文专业书籍。

我可以很负责人的说,国内的这些技术论坛和国外的相比,还是有很大差距的。

如果你用百度,输入一段你的疑问或者遇到的问题,然后你会搜索到很多同样的提问,但是很多时候要不是没有答案就是错误的答案。

但是你如果在Google上,用英文去搜索你的问题,你大部分时候会找到你想要的答案的。

所以,学好英语,它会是你未来的利器。

软件工程

软件工程是我第二会选择,感觉软件工程在大学刚刚毕业的好像没有太大的用处,但是,他能够让你从全局来认识软件。

很多时候,我们会因为要赶时间,要抢市场,把软件工程中很多的理论知识抛之脑后,但是真正在我们完成工作后,我们发现,我们其实走了很多的弯路,我们的成本和时间并不比我们遵循软件工程的理论知识少,可能还会要高一点。

我们每个人都会成长,不可能永远作为程序员,从一个点来切入一个项目,为了自己未来的发展,让自己从全局来看到一个项目,能够在项目中给出自己的建议,这样,我们才能够体现自己的价值。

算法设计与分析

我当年读书的时候,其实完全没有去学算法设计,我认为自己以后应该不会去从事和算法有关的工作,所以,我的高数也是勉勉强强的程度。

虽然老师们常常说,数学是一切的基础,想要能够做好程序,就一定要学好数学,我曾经嗤之以鼻。

但随着科技的发展,这句话灵验了,AI来了,AI需要的并不是程序员,而是懂算法,数学好,能写程序的人。

对于人工智能编程来说,写程序非常简单,但是其中的算法是非常复杂的。当AI炒的火热的时候,我也去下载了TensorFlow,然后想做点demo,不过当我看了文档以后,我果断的放弃了。

那些算法公式我已经基本还给我的老师了,看的我头痛。

我相信,未来的计算机发展,肯定会从编程的需求慢慢的倾向于算法的需求。所以,算法一定是必备的基础知识了。

小结

当然,还有很多很多都需要好好学习的,类似通讯原理、信息安全等等。

我认为,大学学习的基础知识都是非常重要的,我们用不到,只是因为时候未到,但不要因此而忽视它们。


会技术的葛大爷


其实在计算机本科,想要深入,有很多门课都是比较重要的。

首先是那四门最重要的课 算法与数据结构 计算机操作系统 计算机网络 计算机做成原理。除此之外,还有一些比较重要的课,比如数据库系统概论和编译原理和四门数学离散数学,线性代数 高等数学 概率论。

除此之外,还要学一门语言,其实还是c和c++比较好,因为考研院校一般都会要求这门语言。

说了这么多,好像和题主的问题有所偏离,我也正面回答一下我认为比较重要的三门课

首先是算法与数据结构,这门课的重要性是学计算机的人都知道的。你可以不知道其他课,但是你这个必须会,因为你会算法,都可以靠这个吃饭了,而且面试中,考算法也是比较直接考察你的能力的一门课,所以他的重要性简直不言而喻。

其他排名不分先后。

剩下我认为是计算机网络和计算机操作系统,这两门在你做程序的时候都会接触到,会实际的碰到这方面的知识。

但是你说其他课不重要吗?不是的,你想专研计算机,了解计算机,其他的课程是你几乎必须要学的,要了解他们的原理。只是说相对一个普通的程序员,在你实际运用上,这三门课的知识相对容易遇到。

谢谢观看,喜欢的点个关注,如有不合适之处,请指出。


一个不正经的程序员


计算机涉及的课程很多,在这众多的学科中,选择三种,确实不容易。

1、计算机组成原理应该算一个,因为毕竟你是学计算机的,不理解系统总线、存储器、输入输出系统、指令系统、CPU原理等等内容,你不可能写出高深的程序,更何况对服务器,系统的优化。

还有一本神书。

2、一门编程语言,建议学习C++ JAVA 。这个不用多讲,如果计算机原来相当于枪支,那么编程语言就是子弹。

3、数据结构和算法。程序设计 = 算法 + 数据结构 这个是计算机工作者之间流传的一句名言。斗转星移,尽管新技术方法不断涌现,但是都是万变不离其宗。不掌握数据结构和算法如无源之水,走不了多远。


此心源自不由人


我是头条作者银魂的傀儡。

这个问题大V洋洋洒洒,都跑偏了好嘛。

注意楼主说的是本科阶段、本科阶段、本科阶段,是课程不是专业课。

首当其冲的是英语、英语、英语。

做了开发这么多年,英语太重要了。英语不好,你连个变量名都起不好,代码风格就先不过关,谁接手你的代码,肯定骂娘。

计算机学科的经典书籍,几乎全是国外大佬的,翻译质量不敢恭维,能看原文是最好的。

顶会的paper集中了最有用的知识,英语不好怎么看?开源社区英语不好怎么参与,社区文档怎么阅读?

英语不好,基本是告别了成为顶尖高手的可能。

其次是数学。

这个楼里那个大V讲的很好了。数学是算法的基础,还能锻炼严谨的思维。学好了,无论是工作求职,还是学术科研,都是很有优势的。

第三我就不提了,因为我认为最重要就英语和数学。

其他的看你的爱好,喜欢算法就钻研算法,喜欢Linux就钻研体系结构操作系统。属于术业有专攻的范畴了。


银魂的傀儡


我说下自己的观点吧,主要是自己以后想朝什么方面发展吧,比如我java开发的


1、c语言

因为你读计算机专业,多半会进入软件开发行业,而开发行业中必须要学一门编程语言,而我觉着最好的入门编程语言学习就是c语言,为什么尼?

c为解释型编程语言,不像其他面向对象语言一样,通过c语言的底子,可以更好的看出编程的基础有多扎实,然后学一些面向对象型的编程语言,如java,PHP,Python等等


2、java

学完语言后,再去学习java,只知道当时学的非常轻松


3、MySQL

MySQL数据库,目前为止最受欢迎的中小型项目必备的数据库,主要特点就是轻便、免费等


以上三门是基础学科,许多人为了快速挤进开发行业,直接找培训机构整完三四个月,和别人读完四年大学的人,各种基础知识根本没法比,以后再高的楼房也会倒的很快。


一滴水的世界丶旋


这个我也来答上一答

不能笼统的说哪三门课,因为计算机专业的就业面特别广,三门课实在是太过笼统,有很大的局限性,应该分方向细说

1,如果搞硬件开发,底层设计,我认为最重要的三门课为,组成原理,汇编语言,C语言程序设计

2,如果搞软件开发,数据结构,C语言程序设计,面向对象程序设计

3,如果网络运营,则操作系统,计算机网络,C语言程序设计?Linux?(这方面了解的不多)

4,如果以后搞网络编程,则C语言程序设计,面向对象程序设计,JAVA

想起来的就这么多,不一定准确,但我认为C语言应该是编程的九阳真经。

看抛砖引玉………………


909135138


我觉得最重要的三门课,Linux,数据库,C语言,通过Linux把计算机体系结构,操作系统,计算机硬件结构,软件结构都能学到,数据库基本上是软件开发躲不开的一门课,C语言不仅仅是编程,更多是编程思维,距离硬件比较近,使用最广泛的,底层系统离不开的语言。当然,TCP/IP也是计算机离不开的,网络编程,集群架构都需要深厚的网络功底。


苏尚停at漫天遍野的雨


本人大学本科是计算机科学与软件工程专业,从大一到大四学了几十门课程学的时候并没有比较哪一门比较重要当然潜意识都会认为专业课程是最重要的,确实也是,那么专业课程里选三门的话我会选《数据结构》、《编译原理》《操作系统》简单说下我的理由,仅供参考。

《数据结构》会让你在今后的工作中知道算法有哪些,数据存储方式有哪些,使用正确的算法能起到事半功倍的效果。

《编译原理》帮助开发人员理解程序执行的一般原理和技术方法,当你知道它的原理后往往能很快的对故障问题针对性的快速解决。

《操作系统》对于开发程序的人来说,开发一款软件是需要一个平台来支撑的,这个平台就是基于操作系统而言的,因此了解各种操作系统也是很有必要的。


醋拌柠檬不酸


首先要看你侧重那一方面,是偏硬件还是偏软件,偏硬件的话我觉得计算机组成原理、操作系统、还有微机原理;如果你更偏重于软件的话,那就是数据结构、算法、还有就是c语言。

其实不仅仅是这六门课程,在整个的学习过程中还有一些比如编译原理、线性代数、离散数学这些课程也非常重要。这其中有些课程是另外一些课程的先修课程,比如说数据结构和线性代数还有离散数学三门课程相比较,你会发现数据结构就是用编程语言来描述线性代数和离散数学的一门学科。


分享到:


相關文章: