请问计算机类专业都有什么区别? 刚高考毕业,女,想学计算机,但不知道这些专业都有什么区别,请各位大神指教一下 (*´◒`*) (非常抱歉占用你们的时间啊哈哈 )
首先给你提个问:你以后想要过什么样的生活?做什么样的工作? 如果喜欢编程,想当程序员,轮子哥说得对。 。。。。。。 好吧,考虑到你刚刚高中毕业,根据你的问题,还是给你建立个认知。先给计算机及相关系统简单分个类吧,再简单说一下前几个专业,更多信息请学会使用搜索引擎。 现代计算机生态系统可以简单划分成如下概念: A、计算机硬件;B、计算机软件;C、计算机网络 (按规模还可以分成大型计算机[比如服务器]、个人计算机[如笔记本电脑]、掌上计算机[如智能手机]) ①硬件没有太多说的,就是组成计算机的物理条件,目前都是基于图灵系统构造的。包含了计算机、单片机等。当然还有相应的周边硬件也可以属于计算机硬件,比如打印机,路由器等。 ②计算机软件,分为计算机操作系统和应用软件。系统软件就是常说的如Windows\Mac OS\Linux\Android\iOS等,操作系统的功能简单说是帮助用户管理计算机硬件(详见《计算机操作系统》);应用软件就是为了实现某一功能/完成某一工作,开发的利用计算机完成该功能的软件,也就是常见的各种exe\dmg\pkg格式的APP、游戏等。 ③计算机网络,就是将各地N台独立计算机连接起来的通信通路,它是互联网的基础。它包含网络硬件(物理链接),网络软件(网络操作系统)。 那么,有了分类,就来具体针对你的问题进行回答(专业定义请百度,我只大概说一下前几个专业,毕竟太多了): 一、计算机科学与技术(CS) 这个专业会学习研究整个计算机的生态系统(硬件、软件、网络),一般来说偏理论一点,会非常系统地学习整个计算机方方面面的知识,是比较传统的计算机专业,可以说是比较全,但是本科阶段不够深,而且理论面太广,主要是为你建立其整个计算机系生态统的认知。你可以理解为大套餐,你也可以根据自己的口味专精某一方面。毕业可以继续深造从事计算机相关方面的科研,也可以从事硬件、软件、网络各细分领域的相关工作,可以说很万金油,但是精度可能不太够(靠自己学精某一方面吧,也看学校的教育水平)。 一般性工作:一切皆有可能…… 二、软件工程(SE) 顾名思义,就是主要学习研究软件开发的专业,一般来说主攻计算机软件中应用软件的开发。当然,也会学些计算机相关的基础课程(对计算机硬软件网络的基础认知,以下简称计算机公共课)。这个专业的应用性比较强,不光强调自身的软件开发能力,还会学习一个软件开发工程的管理/协同方法。主要就业也就是常说的码农(学不好就是码农,学好了是软件工程师,哈哈哈),从事软件架构、算法以及基础开发等工作。PS:也有可能做产品经理…… 一般性工作:敲代码,复制粘贴代码、指导别人敲代码,和PM撕逼…… 三、网络工程(NE) 顾名思义,就是主要研究计算机网络的专业,一般来说会除了计算机公共基础课外,较深入研究计算机网络的硬软件管理、应用、开发等。毕业了主要从事计算机网络的搭建、维护和安保等工作,一般工作就是搭建/维护企事业单位的服务器、内部网络之类的,称为网络工程师,俗称网管(开玩笑)。 一般性工作:搬服务器、搬路由器、搬电脑、拉网线、在机房偷偷耍手机…… 四、信息安全(IS) 顾名思义,就是主要研究计算机信息安全与保障的专业,一般来说除公共课外,会较深入研究计算机的信息安全(服务器、PC等)、网络安全方面的知识,主要对计算机及相关系统的安全负责(找漏洞,开发补丁……)。毕业了主要从事计算机安全方面的工作,保障企事业单位的计算机系统能够正常运行,不遭受/避免恶意攻击。一般称为信息安全工程师或网络安全工程师(按具体领域分),电影里演的黑客可以认为是这类,emmm……网警也算(2333) 一般性工作:搞渗透、审查别人的代码、看别人薅羊毛、防止被别人薅羊毛、吹牛逼…… 五、物联网工程(IoT) 物联网工程我不是特别了解,我理解的就是把任何终端都通过物联网技术连接起来,通过互联网进行链接控制的工程技术,最常见的就是共享单车的控制系统了,可控监控摄像头应该也属于物联网技术。它会同时涉及到终端硬件/软件,终端管理系统等方面。具体做啥……emmmm,你就假设有一堆自行车,要你开发出如现在共享单车的软件系统和硬件设施(车上的智能锁,扫码系统,轨迹、计费,管理网络等……),具体我真不太懂2333。 一般性工作:我猜是焊电路板、敲代码……反正不可能去搬自行车…… Emmm……再提一下电子与计算机技术,这个专业其实会较多与电路板打交道,也会涉及到单片机,计算机方面除了公共课也就学一下编程语言,不要被名字误导,当然,不同学校可能培养方向不同。还有数字多媒体,更倾向于视觉表达,比如前端设计开发,游戏动画设计之类的。 其他百度即可。 不同的学校对计算机类专业的认定是不一样的。 计算机类专业多热门无需多言,但是不同的学校对计算机类专业定义不同,在大类招生越来越多去情况下,还是要留心一下,万一因为粗心导致后来发现某学校的计算机类某具体专业并不是你想学的就晚了。 看了下《招生计划专刊》,被列为计算机类专业的基本上有以下专业。 计算机科学与技术 计算机工程(开设学校很少) 电子与计算机工程 (开设学校很少) 网络工程 物联网工程 电子商务 软件工程 数字媒体技术 信息管理与信息系统 信息安全\网络安全\网络空间安全\计算机网络安全与管理 (这几个专业基本上只是不同的学校名称不同,实质基本上是一样的) 但是不同的学校定义是不同的,下面举例说明 1、南京大学
比较奇葩,信息管理信息系统属于管理学,不知道为什么列入计算机类?按照惯例专业分流时总会有人去学这个,那当初冲计算机类报考的考生学了这个不知道做何感想?但这只是惯例,不排除南京大学有其它比较骚的操作。 2、东北大学
把计算机类分为1类和2类,分别对应不同的专业。 这个也比较奇葩,绝大部分学校是把软件工程、数字媒体技术单列的。 3、北京邮电大学
属于比较正常的比较纯粹的计算机类招生,计算机类、软件工程、网络安全、数字媒体技术等是分开的,很多院校,尤其是两电一邮以及其它电子信息类比较强势的院校都是这么做的。 4、浙江大学
不再单列,而是把计算机列为某大类中的一个专业,你没法直接报考该专业,只能报考该大类,等专业分流时才可能读到计算机,但是谁也不能保证你一定读到该专业,这就存在一定的风险,虽然风险肯定不会特别大。 很多名校比如复旦、上交也是这么操作的。 复旦
上交(可能信息有变化)
当然这里只是列举了几个学校几种类型, 不排除还有其它形式存在,此文的目的只是提醒大家留个心眼,注意看括弧内的专业名称,仔细看相关说明,别犯低级错误。非常有用:热门专业一本以上院校投档线排名–计算机类注意,关于计算机类专业的划分和认定,不同的学校情况不同计算机专业大类下,还有哪些细分的专业,分别是干什么的?学计算机的人越来越多,还值得学吗? 好像还是我在大学期间(1998-2002),大学都在推“专业合并”,就是不要把类似专业分得太细,以免影响就业。但我没在网上查到权威报道,只查到了现在大学在搞“大类招生”,应该是差不多的意思吧?实际上你了解这些近似专业区别,真的没有必要:首先各个专业学的都差不多,然后学校学的和工作中用的,差得太远,最后毕业能不能专业对口又是两说 其他大学的阴暗面就不说了,呵呵,免得你们家长伤心。 唯一有价值的,是别人说的,但没在这个回答下吧?我觉得真的是最佳策略: 报一门录取分数最低的! 反正到时候找工作其实是一样的。 @vczh ,是不是?o( ̄▽ ̄)d ++++++++++++++ 安利一个小广告,马上要开一门课程(想来其实应该是闲聊,免费的,免费的,放心):人人都是程序猿(一)课程介绍·一起帮 有想了解计算机编程开发相关知识的,可以一下。 这个我可是太清楚了!毕竟在计算机专业呆了够久! 说下背景吧:今年刚从 985 毕业的软工研究生学长,本科 CS 专业。 计算机类的本科专业是很多的,目前全国开设的主要专业有这么几个,分别是:计算机科学与技术软件工程网络工程信息安全物联网工程数字媒体技术大数据 这几个是本科阶段招生的主力专业,其他那些招收的都不太多。 下面我来详细介绍一下几个专业:计算机科学与技术是专业的一个总称,像软工、网络、信安、物联网、数媒这些都是它的细分。就像当年本科时我就读的是学校计算机科学与技术学院的计算机科学与技术专业。软件工程是上面说的计科的分支专业,主要研究的是软件工程,可以理解为偏软件开发的计算机科学。网络工程顾名思义专攻网络方面,主要研究网络,也分硬件和软件,硬件的话比如服务器维护、计算机安装维护,软件的话就类似计算机网络、安全等。信息安全主要研究的是网络信息安全,未来就是从事各类信息安全系统、计算机安全系统的研究设计开发管理等工作。物联网行业是个有前景的行业,物联网专业却是个我不太看好的,学的东西太多,编程,通信,网络,硬件,电子,基本就是把其它学科一些有用的课程拿来,降低一个 level 学一下,驳杂且多且不精… 其中软工的学费较贵,差不都1w一学期,计科的学费则正常一些,差不多接近软工学费的一半。 就我身边的同学,软工的同学毕业出来以后基本都从事了互联网行业,而计科出来的同学除了大多数在互联网行业,还有少部分的参与了选调和考公。 其实不管怎么说,这些学科出来基本就是混迹在各大互联网公司,这只是专业选择,代表你未来可能会从事的方向,但是没人规定说我计科出来的就不能去做网络,不能去做物联网,也没说我网络出来的不能去做开发。 计算机专业虽然学科分类多,但是各个专业很多知识是相通的,差异并不大。 如果非要选,建议无脑计科或者软工!!! 最重要的还是基础能力的培养,比如计算机基础、编程基础。 学习计算机最核心的方法,也是学长一路走来总结的,按照学长推荐的路线走,大学毕业后成为 Offer 收割机肯定是没问题的: 入门看视频+计算机经典书籍辅助+不断写代码。 计算机经典书籍哪里找,我花了好久整理好了,大多数书我都看过,质量有保证,自取。少走弯路,必读计算机经典书籍推荐(含下载方式)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rd 大学之前从来没接触过编程,一度以为计算机专业就是打游戏专业,正是靠着自己的努力,从一所二本院校考到了软工排名前三的 985 院校读研! 你首先要明白一件事:对于计算机科班学生来说,大学计算机主要靠自己自学。 大学的自学时间太多了,仅仅是靠上课听一下肯定是不够的。 当然对于自学这件事,需要能耐得住寂寞,需要长久的坚持,这个坚持不是一天两天,不是一个月两个月,而是以年为单位。 题主现在应该立马先思考一件事,在上大学的初期,想明白自己之后想要干啥。 认真思考未来,这个动作越早做越好,毕竟目标导向。 最好及早决定自己是要毕业直接工作还是要考研,因为虽然在学习内容上相差不大,但是重点努力的方向还是不同的!!! 1. 毕业直接工作 着重就业,那你的大一大二就玩命学,之后大三找机会进大厂实习,为你之后毕业找一个薪资炸的工作打下基础。 玩命学不是瞎学,把握住两方面就好了:玩转一门编程语言:c++、Java、Python 都行。计算机基础学好 玩转一门编程语言,玩转是啥,是熟悉,不是了解就行。 最好能做点工程项目,如果有机会进实验室跟着老师或者有额外的机会做点东西都行。 没有就自己去问,我不信个计算机专业没这个。 学校资源要用好。 实在没有,那就多刷题练感觉,刷题是啥,后面会说到。 校招来说,计算机基础重要的就这么几门:数据结构与算法、计算机组成原理、操作系统、计算机网络、数据库这几门。 你要找工作的话,首先保证数据结构与算法学的顶呱呱。 在这个基础上,多刷题,按照分类按照专题刷。 刷题上 LeetCode 上刷就好。 可以看下这个前字节大佬的刷题笔记:两个月斩获 70k star,前字节大神刷题笔记mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rd 针对 LeetCode,题的解法有很多,我们往往追求的是最优解,这里有一份清华学长整理的 LeetCode 最优解,强烈推荐:清华学霸的刷题笔记(leetcode最优解)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rd 两者配合起来应该非常舒爽。 除了数据结构的其余的课程的话,上课认真听,下课多琢磨,可能很多东西抽象懵懂,没事,你要你认真学了,认真琢磨了,你就超过 90% 的人了。 2.考研 着重考研的话,学习的内容和“着重就业”学习的差不多,但是就是不用玩命,平稳的学就好。 编程语言的话,那 C 语言好好学一下。 其余的计算机基础课程,还是那些,都好好学。 考研看学校的,不同学校的计算机考研课程不同。 有的考 408,有的只考数据结构算法,但这些都不是问题,你只要这些课都在你的学习之时学好,都不成问题。 除了编程语言和计算机基础课程外,你想考研,还要把数学(高数、现代、概率论)、英语、政治学好,这些都要考。 呃,政治的话就上课好好听就好了,反正到时候还是得背的,问题不大。 还有就是,最好大一大二能参加个竞赛,拿个有点分量的奖,还有像什么奖学金啦这种能争就争,对考研复试有好处。 其实不管你选了哪条路,都要做好下面这四点:学会自学。大学的自由时间一大把,只靠上课听讲远远不够,上课你不睡觉我都算你是条好汉,你是大学生了,不能只低头拉车,更要抬头看路!掌握一门编程语言好嘛。这个是必须,根据自己的规划,无论是选择 Java、C++、Python 都行,无论你以后是不是用这门语言,这都是你找工作的敲门砖。没事的时候多敲点代码。当个熟练工,才能显得你牛x,有机会跟着学校的老师或者进入到实验室做项目,一定要坚决跪舔,要跟着学习跟着做。学好数据结构、操作系统、计算机网络、计算机组成原理、数据库这些基础课程。以后不管你是走考研这条路还是面试找工作全都用的上!学好这些,走到哪里都不怕。 但是现在网上好的经验这么多,有多少人是能从头到尾看下来,这其中又有多少人是能认真跟着做的。 想学习计算机科学与技术,我感觉做好两点就够了:掌握一门扎实的编程语言。 编程语言是工具,是我们吃饭的家伙什。掌握是啥,是熟悉,不是了解就行。扎实的计算机基础知识。 计算机基础知识重要的基本上就是“数据结构与算法”“计算机组成原理”“操作系统”“计算机网络”“数据库”。 其实总而言之,对于学习计算机专业,技术才是最重要的。 如果你的目标是自己变得牛逼,那你大学四年可以这样。大一:学好计算机导论,学好入门编程语言(一般是 C 语言)大二:基本要学习面向对象编程语言,一般是 C++/Java,学好计算机基础课程:数据结构与算法、计算机组成原理。大三:学好操作系统、计算机组成原理、数据库这些基础课,现在课程该学的差不多了,有机会就出去找份实习,或者跟实验室老师做项目,或者下学期开始准备考研、保研。大四:更是没课,考研的考研,实习的实习,别闲着。 直接说下学习路线吧: C 语言 -> 计算机基础 -> 编程语言进阶。 下面都是很干的干货,麻烦动动小手帮我 @Rocky0429 点赞呀! 一、计算机导论 计算机专业导论是面向非计算机专业人员和学生介绍计算机基础知识的计算机基础教程。 内容涉及计算机应用,Internet,与计算机交互,音频、视频和打印,数据处理,存储数据,操作系统,应用软件,网络,在线世界,数据库管理,信息系统,软件编程和开发,以及计算机安全等内容。 呃,说到这,我推荐看一门《计算机科学速成课》。 这门 40 集的课真的包含了超多的基础知识:1 – 早期的计算 – Early Computing2 – 电子计算 – Electronic Computing3 – 布尔逻辑与逻辑电路 – Boolean Logic & Logic Gates4 – 二进制 – Representing Numbers and Letters with Binary5 – 算术逻辑单 – How Computers Calculate – the ALU6 – 寄存器 & 内存 – Registers and RAM7 -中央处理器- The Central Processing Unit(CPU)8 – 指令和程序 – Instructions & Programs9 – 高级 CPU 设计 – Advanced CPU Designs10 – 编程史话 – Early Programming11 – 编程语言 – The First Programming Languages12 – 编程原理:语句和函数 – Programming Basics: Statements & Functions13 – 算法初步 – Intro to Algorithms14 – 数据结构 – Data Structures15 – 阿兰·图灵 – Alan Turing16 – 软件工程 – Software Engineering17 – 集成电路、摩尔定律- Integrated Circuits & Moore’s Law18 – 操作系统 – Operating Systems19 – 内存 & 储存介质 – Memory & Storage20 – 文件系统 – Files & File Systems21 – 压缩 – Compression22 – 命令行界面 – Keyboards & Command Line Interfaces23 – 屏幕 & 2D 图形显示 – Screens & 2D Graphics24 – 冷战和消费主义 – The Cold War and Consumerism25 – 个人计算机革命 – The Personal Computer Revolution26 – 图形用户界面 – Graphical User Interfaces27 – 3D 图形 – 3D Graphics28 -计算机网络- Computer Networks29 – 互联网 – The Internet30 -万维网- The World Wide Web31 – 网络安全 – Cybersecurity32 – 黑客与攻击 – Hackers & Cyber Attacks33 – 加密 – Cryptography34 – 机器学习与人工智能 – Machine Learning & Artificial Intelligence35 -计算机视觉- Computer Vision36 -自然语言处理- Natural Language Processing37 – 机器人 – Robots38 – 计算机中的心理学 – Psychology of Computing39 – 教育型科技 – Educational Technology40 – (完结) 奇点,天网,计算机的未来 – The Singularity, Skynet, and the Future of Computing 像计算机的早期历史、编程的发展史,到二进制、指令和程序,到算法入门、数据结构,甚至是计算机安全、黑客、加密、机器学习 & 人工智能、计算机视觉、自然语言处理、机器人等等等等都有涉及,感兴趣的可以看下,链接在下面:【计算机科学速成课】[40集全/精校] – Crash Course Computer Science_哔哩哔哩_bilibiliwww.bilibili.com/video/av/www.bilibili.com/video/av/www.bilibili.com/video/av/ 刚上来先不用看多,看个 10 集差不多,看多了怕把你看劝退。 二、C 语言 计算机科班的同学,不出意外,进入编程世界的第一门的语言学的肯定是 C 语言了。 其他立志做技术行的同学,从 C 语言入门百利无害。 很多人都觉得 C 语言入门难,不能像 Python 这种编程语言一样快速获得成就感。 为啥现在还有这么多技术大佬建议学一下 C 语言呢? 因为 C 语言是一门面向过程的语言,运行速度极快,是计算机产业的核心语言,像操作系统、硬件驱动、数据库这些都离不开 C 语言。不学 C 语言,就很难深入了解计算机底层的运行机制。 现在常见的高级语言的底层几乎都是 C 语言实现的。 C 语言的学习其实就三个阶段就好了: (1) 入门阶段 这个阶段学习 C 语言的基础语法知识。 目标是可以开发一些简单的控制台小程序。 (2) 提高阶段 这个阶段学习 C 语言自带的库函数,形成 C 语言的基本知识框架。 目标是开发一些基本的应用程序。 (3) 应用阶段 这个是实战阶段,要具备一定的综合性应用软件开发能力。 目标是能够开发像贪吃蛇、图书管理系统、学生信息管理系统等项目。 具体的学习路线我就不在这细说,看我下面的文章就好了。Rocky0429:这才是你最想要的 C 语言学习路线!43 赞同 · 4 评论文章56 赞同 · 4 评论文章83 赞同 · 6 评论文章 三、C 语言实战项目 学编程除了理论外,更重要的是要应用,应用很好理解,前期多敲代码,之后慢慢去升华。 其实编程语言就是要多练,怎么多练,就是代码量。 自己多写,然后多观摩别人的项目,看人家的写法,模仿项目,学习其中的思想,一点点的积累,一步步形成自己的东西,厚积而薄发,慢慢你就会发现你也可以了。 1、C语言制作斗地主发牌器 通过本项目的学习,可以让学员掌握一些棋牌类的手机游戏中的发牌系统算法怎么编写,为学员就业后编写一些小的游戏类APP打下良好的基础。传送门:C语言:斗地主的发牌器 – 网易云课堂、 2、C语言实现通讯录/图书管理 这个课程将使用 C 语言完成一个简单的通讯录。会涉及到结构体、数组、链表等重要概念,需要对 C 语言有一定的了解。地址:C 语言实现通讯录_C – 蓝桥云课 3、C语言实现2048小游戏 2048是之前十分火爆的一款益智游戏,这个课程将使用 C 语言完成一个2048游戏。适合对C语言有一定基础,需要了解C语言,以及绘图库ncurses的实用。大大提高你的动手能力。地址:C 语言实现 2048 游戏_C 4、Tinyhttpd(7.3k+ star) 一个不到 500 行的超轻量型 HTTP Server,可以用来理解服务器程序的原理和本质。 C语言 的入门级项目!传送门:https://github.com/EZLippi/Tiny 5、db_tutorial(5.9k+ star) 用 C 从零创建一个简单的数据库。传送门:https://github.com/cstack/db_tu 四、计算机基础 重要的计算机基础课是下面这些:数据结构与算法计算机组成原理操作系统计算机网络数据库 之前写过这方面的学习路线,很详细:Rocky0429:2021 年计算机基础最全自学指南!24 赞同 · 2 评论文章30 赞同 · 2 评论文章 为了方便大家阅读,我把重要的内容摘下来。 虽然这几门课程都重要,如果有个排序,我还是要把数据结构与算法排在第一位。 1、数据结构与算法 程序 = 数据结构 + 算法。 数据结构经常与算法放在一起,在有些高校,会存在“数据结构”和“算法设计与分析”这样两门课。 这就造成很多同学懵圈,数据结构与算法有什么区别?甚至有些同学认为这就是一种。 其实吧:数据结构主要讲解数据的组织形式。就是我们要怎样把这些数据存储起来,所以有数组、链表、栈、队列、树、图,这是数据结构的重点。算法,则注重的是思想。比如数组里的素怎么排序、怎么找到最大的数和最小的数等等。说白了就是解决现实中问题的思想。所以才会有贪心、动态规划等这些算法。 数据结构与算法,不管你怎么想,一定要认真学!不管面试还是考研都是必考! 下面总结一些重要的知识点吧,这样才能有针对的学。 【复杂度分析】时间复杂度空间复杂度 学习数据结构与算法的第一课,我永远都选复杂度分析,在我看来,这是数据结构与算法中最重要的知识点,且不接受任何反驳。 文章推荐: 保姆级教学!彻底学会时间复杂度和空间复杂度 【数据结构】数组(Array)链表(Linked List)栈(Stack)队列(Queue)散列表(Hash table)堆(Heap)树(Tree)图(Graph) 【操作数据结构】查找插入删除修改排序 入门文章推荐: 蛋蛋惨遭数组滑铁卢,面试官建议回村养猪。 链表,画几下就整明白了! 呔!“栈”住,队列! 【数据结构书籍推荐】 《大话数据结构》、《数据结构与算法分析》 书籍地址:少走弯路,必读计算机经典书籍推荐(含下载方式)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rd 【算法】 学习算法的套路很简单,多看、多写、多上机。 算法的话,需要掌握以下内容:基本算法思想:回溯算法、分治算法、枚举算法、贪心算法动态规划查找算法:二分查找、散列表查找、树结构查找字符串匹配:暴力匹配、KMP算法10大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、堆排序、快速排序、计数排序、基数排序、桶排序 【算法书籍推荐】 《算法图解》、《算法(第 4 版)》、《算法导论》 书籍地址:少走弯路,必读计算机经典书籍推荐(含下载方式)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rd 【视频教程推荐】《数据结构》,浙大陈越和何钦铭教授联合授课,其大名在计算机领域可谓耳熟能详了。 链接:数据结构_浙江大学_中国大学MOOC(慕课)《数据结构与算法》,这门课程的最大特点是理论和实践的结合,你将学习到解决各种计算问题的算法技巧,并实现大约100个算法编码问题。 链接:Data Structures and Algorithms 【网站推荐】 如果还是觉得学起来很吃力,可以借助下面这个网站来学习。VisuAlgo,数据结构和算法动态可视化网站。 链接:数据结构和算法动态可视化 (Chinese)
【刷题】 数据结构与算法的学习,往往要伴随着“刷题”,如果没特殊情况,我建议大家刷 LeetCode 就好。 刷题按照分类来刷,如果不知道刷哪几道题,可以看下这个前字节大佬的刷题笔记:两个月斩获 70k star,前字节大神刷题笔记mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f189d0ab3a5faa4e224b6e3f2b485be1&chksm=7f22eb4f0fad0ec8f42dabc17abaf8b0acf92516dcdeee1b4dbbb#rd 针对 LeetCode,题的解法有很多,我们往往追求的是最优解,这里有一份清华学长整理的 LeetCode 最优解,强烈推荐:清华学霸的刷题笔记(leetcode最优解)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=3de887a586e8a6a0dee&chksm=7f22eb2e67fedbd30b1ca0fcdb46edaa4cb0899a0f2ff44210e829d125ade6#rd 两者配合起来应该非常舒爽。 我在大学的时候参加 ACM,拿过亚洲区预赛银奖,刷题贯穿了我的整个大学生涯,总结了一些刷题的经验,感兴趣的可以看下。Rocky0429:刷了几千道算法题,ACM学长的一些心得。53 赞同 · 6 评论文章 我最近也在重新刷 LeetCode,并把自己刷的题进行了图解,写的很清晰,如果时间允许的话,可以跟着我的进度,现在已经刷到栈和队列专题。 稳了,一题学会链表的 5 种操作! 反转吧,链表! 交换吧,链表! 链表,你有环嘛? 栈,你告诉我这个括号配不配! 栈,你给我玩这个字符消消乐! 当然这只是其中一部分,更多的有兴趣的话自己去看吧。Rocky0429:算法小白的 LeetCode 刷题顺序(持续更新2021/11/7)56 赞同 · 0 评论文章63 赞同 · 4 评论文章 2、计算机组成原理 计算机组成原理,即“计算机”“组成”的“原理”。 我觉得它是所有计算机基础课程中最难学的一门课,整个课程的核心就是使用数字逻辑电路和触发器搭建一个可以运行汇编指令的机器。 【书籍推荐】入门系列 《计算机是怎样跑起来的》、《程序是怎样跑起来的》深入系列 《深入理解计算机系统》 书籍地址:少走弯路,必读计算机经典书籍推荐(含下载方式)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rd 【视频推荐】视频首推卡内基梅隆大学的《深入理解计算机系统》系列课程,英语不好?没关系,有中英文字幕,看完这套视频,知识+六级顺利拿到手。 链接:【精校中英字幕】2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频_哔哩哔哩_bilibili 看这个视频的配套教材是《深入理解计算机系统》。
此外,国内的可以看下哈工大刘宏伟老师的课程(135讲) 链接:计算机组成原理(哈工大刘宏伟)135讲(全)高清_哔哩哔哩_bilibili 3、操作系统 无论你学习什么语言,都避免不了和操作系统打交道。所有语言的最后执行,都是靠操作系统。 比如你学习 Java,用到多线程技术,实际上操作系统才是负责管理进程和线程的。 不懂操作系统,你在未来学习编程语言的高级特性,涉及到线程进程调度,内存分配,或者是学习 Linux 相关的知识时,都会一头雾水。 只有学会了操作系统,才能够更好地学习其他语言和技术。 所以,操作系统是程序员进阶必会的知识。 【书籍推荐】入门推荐 《操作系统导论》、《现代操作系统》深入系列 《深入理解计算机系统》 书籍地址:少走弯路,必读计算机经典书籍推荐(含下载方式)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rd 【视频推荐】 操作系统,说实话,在刚开始学的时候不建议直接闷头看书。 因为书看起来是真没意思。这里推荐清华大学的操作系统课程,B站上可看。分上下。 链接:【清华大学】操作系统 陈渝 全113讲(上)_哔哩哔哩_bilibili 链接:【清华大学】操作系统 陈渝 全113讲(下)_哔哩哔哩_bilibili 看视频的时候可以结合着上面的【书籍推荐】。 看(上)的时候可以搭配《操作系统导论》 看(下)的时候可以搭配《现代操作系统》 4、计算机网络 计算机网络的相关知识在工作时使用的频率较多的。 学习计算机网络,你需要懂得Socket编程,知道TCP/IP网络模型,了解OSI七层网络架构,知道一个数据包是如何层层包装,再层层拆包,从客户端发送到服务端。 但是计算机网络好学的多,因为计算机网络不抽象,在现实生活中,都能找的到例子。 【书籍推荐】 《图解 HTTP》、《计算机网络》 绝大部分都在用谢希仁的这本《计算机网络》,讲的很好,浅显易懂,同样也是考研 408 的常用教材。 书籍地址:少走弯路,必读计算机经典书籍推荐(含下载方式)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rd 【视频推荐】首先必须强推湖大教书匠的计算机网络微课堂,yyds!!! 一个动图做的最好的计算机网络视频课程,老师讲课逻辑清晰而且特别容易懂,b 站上有视频,可以 1.5 倍速使用哟。 链接:计算机网络微课堂(有字幕无背景音乐版)(陆续更新中……)_哔哩哔哩_bilibili
5、数据库 数据库就是存储数据的地方,但也不只是这么简单。 学习数据库,不仅要懂得SQL语句,表设计结构这些基础部分,还要懂索引、慢查询优化,配置参数调优。 再深入点儿还要学习SQL优化、备份与恢复、架构优化等等进阶内容。 【书籍推荐】入门系列 《SQL必知必会》、《MySQL必知必会》、《SQL学习指南》、《数据库系统概论》
深入系列 《MySQL技术内幕——InnoDB存储引擎》 《Redis设计与实现》 书籍地址:少走弯路,必读计算机经典书籍推荐(含下载方式)mp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rdmp.weixin.sigusoft.com/s?__biz=MzI0NjAxMDU5NA==&mid=&idx=1&sn=f253bfb7a7263e0e2442f8f56c190b2d&chksm=7f22e1abfcb5c3bef151a38dd9563e1e4ba6fd11efc96ddab5#rd 【视频推荐】推荐人大王珊老师的《数据库系统概论》,别问,数据库领域 YYDS! 链接:【公开课】数据库系统概论(王珊老师)(完结)_哔哩哔哩_bilibili 五、编程语言进阶 我选的是 Python,那这里我就来说下 Python 的学习路线。 快速了解 Python 我们学任何东西学习之前,肯定要先快速的了解它是什么,大概做到心中有数,帮我们初步判断一下这个是不是想进一步学习的东西,帮助消解一下面对未知时的恐惧。 这里大家可以看一下GitHub上的这个项目,可以让你在短短几分钟之内了解一门技术:墙裂推荐:GitHub 上这个开源项目可以让你在短短几分钟之内了解一门技术mp.weixin.sigusoft.com/s?__biz=MzUxMTc3NTI4Ng==&mid=&idx=1&sn=e23086b7b4ba0e2f86380fa8e&chksm=f96fce58ce18474ed43bcfe6cb06ab3653e2f69a173e1812b232cccbfd404f68e929&token=&lang=zh_CN#rdmp.weixin.sigusoft.com/s?__biz=MzUxMTc3NTI4Ng==&mid=&idx=1&sn=e23086b7b4ba0e2f86380fa8e&chksm=f96fce58ce18474ed43bcfe6cb06ab3653e2f69a173e1812b232cccbfd404f68e929&token=&lang=zh_CN#rdmp.weixin.sigusoft.com/s?__biz=MzUxMTc3NTI4Ng==&mid=&idx=1&sn=e23086b7b4ba0e2f86380fa8e&chksm=f96fce58ce18474ed43bcfe6cb06ab3653e2f69a173e1812b232cccbfd404f68e929&token=&lang=zh_CN#rdmp.weixin.sigusoft.com/s?__biz=MzUxMTc3NTI4Ng==&mid=&idx=1&sn=e23086b7b4ba0e2f86380fa8e&chksm=f96fce58ce18474ed43bcfe6cb06ab3653e2f69a173e1812b232cccbfd404f68e929&token=&lang=zh_CN#rdmp.weixin.sigusoft.com/s?__biz=MzUxMTc3NTI4Ng==&mid=&idx=1&sn=e23086b7b4ba0e2f86380fa8e&chksm=f96fce58ce18474ed43bcfe6cb06ab3653e2f69a173e1812b232cccbfd404f68e929&token=&lang=zh_CN#rd Python 视频推荐 不管是零基础学习 Python 或者其他的编程语言,在刚开始的时候还是建议视频为主,书籍为辅。 毕竟啥也不了解,直接上来就看书,立马从开始到放弃。 Python 视频推荐 【Python 基础】 1、[小甲鱼]零基础入门学习Python 我大二的时候有一段时间想转去 Python,当时也没买书,就想先了解一下,不知道怎么就搜到了小甲鱼的论坛,当时跟着他的视频学过一段时间,觉得讲的挺有意思,还专门去他网站冲了个永久的会员,好像一百多来着,后面好像再也没登陆过… 后来看到小甲鱼的这门课在 B 站上已经 1500w+ 的播放量,搜索排名第一(不过第一的那个应该别人发的,他们自己的账号是200w+播放)。
这个课程看起来有点老了,但是内容差别不大,后来又搜了一下,他们又录制了最新版的《零基础入门学习 Python》,现在是更新到了序列,觉得不错的小伙伴可以追一下,对新手还是比较友好的。旧版传送门:https://www.bilibili.com/video/av 新版传送门:https://www.bilibili.com/video/av 2、微软 Python 入门课程 这是微软放出的一门免费的 Python 教程,名字叫 Python for Beginners,专为初学者打造,一共有 44 个视频,每个视频的时长大概在 2-6 分钟之间,只有极少数的几个时间在 10 分钟以上。 整个课程由两位讲师共同讲解,分别是微软高级项目经理Christopher Harrison和微软的 AI Gaming 开发经理 Susan Ibach,英文配中文字幕,食用起来极佳,同时课程的示例代码和 PPT 微软也同步到了GitHub 上,只能一句卧槽走天下了…
如果你觉得这个教程不错,学完了基础可以看一下后续的微软官方的进阶教程,其实也是基础语言的一部分。传送门:https://www.bilibili.com/video/BV1nE41127zQ 代码&PPT传送门:https://github.com/microsoft/c9-python-getting-started Python 书籍推荐 【Python 基础】 1. 《Python编程 从入门到实践》 这是我买的第一本 Python 书,当然也是刚开始学的时候看了别人的推荐,加之也是豆瓣评分 9.1 的书,就买来看看。理论 + 实践,前面是基础知识,后面是实战项目。 前面的基础知识讲的很详细,以至于给我当时的感觉有点过于啰嗦了,不知道其他人看会是什么感觉。每个知识点后面都带着“动手试一试”,我感觉这点比较好,学编程之初,就是要多练,多敲代码… 至于后面的实践部分,包括一个简单的 2D 游戏、数据可视化和 web 项目,可能是当时我太菜了,或者之前没有做过项目的原因,我觉得这三个项目出现的太突兀了,2D 那个游戏做完我就直接被劝退了,倒是没觉得有啥提升,没甚意思,sad… 而且跟着书做项目,因为书出版的时间太长,很多用法都变了,照着书上做,大概率会有运行错误的时候,可能心态有点崩… 2. 《零基础入门学习 Python(第2版)》 我大二的时候有一段时间想转去 Python,当时也没买书,就想先了解一下,不知道怎么就搜到了小甲鱼的论坛,当时跟着他的视频学过一段时间(现在看来当时的视频比较老),还专门去他网站冲了个永久的会员,好像一百多来着,后面好像再也没登陆过…去年他的书出了第二版,就买来看了一下…
怎么说呢,算是为当初看的视频充值了… 非计算专业的同学可以拿来一看,如果你想系统学习一下的话,就别花这钱了,内容有点乱,这个得真的配合他的视频食用了,不然真的难顶,但如果一本书需要配合视频才能看懂,那也就不太推荐了… 3. 《Python基础教程(第3版)》 这本书是我朋友送我的,书到了以后一直在吃灰,因为那时候 Python 学的差不多了膨胀了… 翻开也是很偶然,那天刚好很无聊,就随手拿出来翻了翻,然后就翻完了,怎么说呢,这本书的内容给人一种很舒适的感觉,我很少有觉得读起来很舒服的技术书… 整个的结构很清晰,内容简单但是不肤浅,整个基础知识的讲解简洁明了,一点也不啰嗦,很容易就看懂了,不会有那种我看了好几遍才理解的情况(os:我什么时候也能写成这样),各种小的代码片段比比皆是,在练习的过程中反过来再加深对概念的理解。而且作为实践部分,它后面带了十个小项目,按照实际开发的步骤介绍Python 项目的过程。 如果实在让我推荐一本,我是会推荐买这本书的… 希望对你有所帮助 现在网上好的经验这么多,有多少人是能从头到尾看下来,这其中又有多少人是能认真跟着做的? 希望大家能有自己的思考,对自己的选择有自己的判断。 既然你选择了计算机专业,希望你能把握住机会,努努力,光明的未来在向你招手。 最后呢,希望大家不要忘记动动小手帮我 @Rocky0429 点赞呀,谢谢么么哒。 985 CS科班学长,这题我太会了! 从截图来看,大同小异:
因为很多高考完和大一下分流的同学在问,所以我之前写过一篇计算机大类专业的分析文章 计科,软工,大数据,物联网,网络工程这些该选什么? 一、专业如何选? 首先给出我的一个排序: 软工 ≈ 计科 > 网络工程 > 大数据 ≈ 物联网 计科和软件从就业、上的课程来说都是非常接近的。 非要说差别的话,大概是计科考公或者走选调选择会更多一些,软件工程的学费会贵一倍左右(我们学校软件接近1w,计科就和大部分专业一样的学费 4k-6k 的样子) 从上的课程来说,软件会多出一些软件设计、软件工程、软件建模这样的课程,计科则会多一些偏硬件设计的课程,比如 微机原理与系统。 但是无论计科还是软件、物联网这些专业,在课程设置上基本上跳不出这个框架(大同小异):
不管咋说,这些学科出来的归属大概率都是互联网公司码农,我学计科一样可以去做大数据、物联网,学物联网一样也可以去做 Java。 这里的 > 不是说网络工程就比大数据和物联网好,而是更适合大部分人,除非你有特别爱好,否则不要去选物联网、网络安全、大数据这类,虽然说上的课和计科、软甲都差不多,但是会学得更杂一点。 计算机科学与技术(Computer Science and Technology)是国家一级学科,下设信息安全、软件工程、计算机软件与理论、计算机系统结构、计算机应用技术、计算机技术等专业。 大家可能现在还会听到物联网、人工智能、大数据等专业,不管叫什么,这些专业要学的核心主干课程就是那些CS基础课,只是专业方向侧重不同而已! 而且这些专业出来大概率最终就业归属都是:互联网公司(BATTMD等)码农 而且这些细分的二级学科方向不会限制死你的方向,比如你学软件工程,你一样可以研究大数据、人工智能。 所以如果问大家常说的计算机到底选哪个专业,我的建议是:计算机科学与技术软件工程 基本上核心课程 90%都是一样的,大概是下面这些: 高级语言程序设计、数据结构与算法、电路与电子技术、集合论与图论、代数与逻辑、数字逻辑、计算机组成原理、操作系统原理、数据库原理、编译原理、软件工程、计算机网络。 学习计算机最核心的方法,也是小北一路走来总结的,按照学长推荐的这个路线走,大学毕业成为offer收割机,去BAT TMD 这些都没啥问题: 入门看视频 + 不断编码 + 深入看源码和经典大黑书 + 做国外计算机硬核Lab 大黑书有哪些? 可以看看这篇高赞文章: 计算机必读经典书籍 学习计算机一定不要想着速成,要下苦功夫,去啃那些经典书和源码,然后自己动手写代码。 看书方法可以参考这篇文章: 计算机看书小建议~ 二、CS 如何学? 接下来,从我科班踩的坑出发,给还在上大学的学弟学妹们一点学习建议以及划重点。 这是我其中一个学期的成绩单,可以看到很多课程都是上面 这些课程:
img 在大学,首先树立一个观念,那就是学习靠自己,要培养自学能力。 虽然我是985 CS 科班出身,即便是所谓的科班,但任然认为自己是”自学编程“。 为什么这么说呢? 因为我想了下,很多东西、编程知识都是我自学的,而学校上的CS基础课也仅仅是满足考试而已。 大一上完C语言课,我的水平几乎停留在做课后习题,自己对于内存、指针都是看似懂了,实际没有领悟到精髓。 而后我依靠看大量C语言和系统底层方面的书籍,比如《CSAPP》、《汇编语言》《程序员自我修养》、《C和指针》、《深入理解C指针》等,才勉强说对于内存、指针这些彻底搞懂了。 所以我说认为自己是「自学编程的科班生」,相信这样的同学还不在少数。 过去几个月,我、知乎收到很多学弟学妹私信,问通信、电子、机械这些专业的同学转码要怎么学? 是不是很难追上科班? 如何才能减少和科班的差距? 我们可以看下网易云课堂这个计算机科班的课程体系,虽然不是每个学校都一样,但是大同小异:
比如计组、汇编、体系结构等课程会让我们明白计算机的构成、运行机制,以及典型的冯诺依曼结构,也会对于内存和指针这样两块在任何编程语言中都是极其重要的概念理解非常深入(不要扯Java这类语言没指针,你完全可以把引用当做受限指针)。 另外,像数字逻辑、模电这样的课程主要是让你明白数字:浮点数、整数都是如何在计算机内部表示和存储的,以及一些门电路的知识。 操作系统则让你明白「一个程序是如何跑起来的」,一个它是如何编译、链接、加载、运行的,在这一整个过程几乎会涉及到操作系统的所有环节,学了这个你就会明白 synchronized 关键字在OS层面到底是如何保证的。 而计算机网络则是让你明白「一个数据包是如何从一台主机发送到另外一台主机的」,这里面涉及到路由算法、差错检测、寻址、重试策略等等,包括 TCP/IP整个协议栈 编译原理则是让你明白高级语言都是如何被编译程序识别、转换为另外一种语言的,我认为编译器的本质就是做转换。很多人觉得平常用不到编译原理,其实不然。 我一直觉得有件事是很美妙的,就是: 你清楚的知道你写下的每一行代码都会做什么,会调用到哪些系统资源,它会占用、依赖哪些系统资源。 比如一条SQL,哪里会慢、会遇到锁会有并发问题。 虽然不了解原理,也不妨碍使用,但是往往在设计和排查问题的时候,原理非常重要,因为原理就是理论,理论可以帮助我们排查掉各种明显错误的分支,而留下少数理论验证通过的分支,会大大降低我们的工作量。 也就是剪枝。 否则我们排查系统错误或者设计方案可能只能一个个去试。 三、科班很神秘? 那么计算机科班学生该如何学习呢? 把操作系统、组成原理、系统编程这些学了,认认真真的把计算机基础打扎实了,那你其实就是一个「计算机科班学生了」。 接下来说下我认为对一个「计算机知识体系完整的毕业生」最重要的课程,你至少得把下面这些课 都学了: 1、 编程语言:C/C++ (学好了这两门,基本其它编程语言一周就上手了) 2、《系统级编程》(我们教材是CSAPP,这是我本科上过最值的课!System Programing) 3、《数据结构与算法》 4、《组成原理和体系结构》 5、《操作系统》 6、《编译原理》 7、《计算机网络》 8、《数学课》:线代、离散、高数 计算机科班刚毕业一年,我觉得大学如果知道这些,可能会少走很多弯路! 首先,送大家一句话~:万丈高楼平地起,勿在浮沙筑高台。 所以一定要在大学期间把基础打牢固,整扎实,这是科班的核心竞争力! 而且非科班同学学完这些课,也可以说是科班了! 那么怎么学? 看书 + 看视频 + 实践 接下来推荐一些我觉得特别好的资料,尽量保持精简: 一、编程语言:C/C++ 没有比C语言更适合用来理解计算机系统了, 科班学生一定要学好 C语言。 推荐:《C程序设计语言》、《C与指针》、《C++ Primer》、《C++对象模型》、《Effective C++ 》 具体参考:如何系统地学习 C++ 语言? 如何系统学习 C 语言? 二、系统级编程 不用说肯定推荐《深入理解计算机系统》 其实它的简介和第一章《计算机系统漫游》已经写得非常清楚了: 从一个简单的hello world程序在计算机上的执行过程: 预处理->编译->汇编->链接->可执行文件->装载->数据流->屏幕输出显示 汇总成一句:信息 = 位+上下文。 另外还有一本就是《程序员自我修养》+ 《Unix环境编程》。 三、数据结构与算法 《算法第四版》、《算法导论》、《剑指offer》 具体参考:如何系统学习数据结构与算法? 四、组成原理与体系结构 《计算机组成与设计:软硬件接口》、《编码》、《CSAPP》 五、操作系统 操作系统我推荐 看书 + 做lab的方式,比如 MIT6.828 xv6 书可以看《现代操作系统》,如果你想学个os,可以看《操作系统真象还原》 我当时应该是看了不少网课,然后自己跟着教程”抄了“一个 mini os。 学习操作系统一定不要去死看书,最好跟着那种有配套实验完成一个os的课程或者书。 就像这种:
img 具体参考: 如何系统学习操作系统 六、计算机网络 推荐《计算机网络自顶向下》、《TCP/IP详解》 具体参考:如何系统学习计算机网络 七、编译原理 直接看龙书就好了,想写脚本可以看看《自制脚本语言》 说实话,把上面这几门课学好了,国内大厂offer几乎随便拿了。 但是很多人忽视了基础,往往在大学最该打基础的时候去追求所谓的新技术。 所以不如谈谈到底「如何才能成为一个计算机知识体系完整的毕业生」吧? 在这里,我粗浅的把计算机编程领域的知识分为三个部分:基础知识特定领域知识框架和开发技能 具体可以看下这个文章: 如何成为一个计算机知识体系完整的毕业生? 我推荐大家花在「基础 : 领域知识 : 技能」 接近 7 : 2 : 1。 这也是我推荐你在大学期间分配学习时间的比例,至少学习基础知识的时间不少于 50%,当然,这些东西你都学完了那可以去找找感兴趣的方向专研一下。 不要大一、大二一上来就扎进 Java Web、Python 爬虫这种东西,这些可以学,但不是重点。 这篇文章也没写到具体该如何去学,有哪些好的资料,由于篇幅限制,我准备把这个单独再写一个 《How 篇》,持续我哟~ 那么如何检验学得如何呢? 想必你一定听说这个计网面试题: “从 URL 输入到页面展现到底发生什么?“ 这个问题换个表达就是「一个数据包是如何发送到另外一台电脑的」,如果你能完整的说出整个过程,那么计网你一定是学懂了!这就是为啥面试这么喜欢问这个问题的原因。 那么我们依葫芦画瓢提一个问题 “从代码被写下到程序运行起来到底发生了什么?” 这个问题回答得越详细越好,基本上能说清,你就理解了编译原理、操作系统、组成原理这三座大三。 推荐阅读: 四大基础课网课:CS经典课程,起飞!
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/21077.html