怎么学好计算机专业?

论坛 期权论坛 金融     
hkls2   2022-6-20 10:21   3951   5
怎么学好计算机专业?
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
rmbo4  1级新秀 | 2022-6-20 10:22:05 发帖IP地址来自 中国
首先编程基础的知识主要有五个部分:


  • 数据结构
  • 算法
  • 计算机网络
  • 学习一门编程语言
  • 操作系统
一、数据结构怎么学?

打好C语言基础是在为学数据结构做准备,C语言学得差不多了,就可以开始学习数据结构。
数据概念
细分为以下这五个方面

  • 数据
  • 数据项
  • 数据元素
  • 数据对象
  • 数据类型
数据:
数据是信息的载体,是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型
数据项:
构成数据元素不可分割的最小单位
数据元素:
1.是数据的基本单位,在计算机程序中通常作为一个整体考虑而处理
2.也被称为元素,或称为记录,结点或顶点。
3.一个数据元素可由若干个数据项组
数据对象:
是性质相同的数据元素的集合,是数据的一个子集
列如:
整数数据对象是集合N={-1,0,1,23,4..}
人员表也可看做一个数据结构
它们四个之间的关系 数据>=数据对象>数据元素>=数据项
对 C 语言还不太熟练的时候,学习数据结构时可以找一本经典的数据结构书,看完一个数据结构后用 C 语言将其实现。开始时的实现肯定会有困难,那么请 google 下会有很多优秀的数据结构源码的。



小白轻松入门c语言13天 :C语言基础教程【源码,笔记,软件,案例全,初学者最值得收藏】
C语言数据结构 :C语言数据结构 培养架构师思维
二、算法怎么学?

一.入门系列
推荐理由:通过图片,打比方等通俗易懂的方法讲述算法的书籍让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。
1.1《啊哈!算法 啊哈磊》
1.2《算法图解》
1.3《妙趣横生的算法(C语言实现 第2版)》
1.4《趣学算法》
1.5《大话数据结构》

二.进阶系列
推荐理由:在基本入门算法书的调教和领悟下,渐渐懂得一些基础算法是什么,现在就是进阶系列可以参阅,力荐《算法导论》《编程原本》,经典款不解释,当然这些书最好是在入门后再看合适,还有王晓东那本算法书也很不错,有几个版本,可以挑选看还附有课后答案。

2.1《算法导论英文版第三版》
2.1《算法导论中文版》
2.2《算法 (第4版)》
2.3《数据结构与算法 Java版》
2.4《Algorithms算法概论中文版》
2.5《算法心得-高效算法的奥秘(原书第2版)》


三.算法题系列
推荐理由:一些题海讲解具体的算法思想应用在题目上是怎么求解的,想刷题的可以看看结合各大OJ+leetCode一起学习。多刷题总不会错。
3.1《挑战程序设计竞赛(第2版)》
3.2《算法艺术与信息学竞赛(清华大学出版社)》
3.3《算法谜题》
3.4《编程高手箴言》

四.实用工作系列
推荐理由:在面试和工作中经常要用到的算法讲解,以及一些过来人工程师的心血总结,建议在面试前翻看,提升思维广度,外加一些实操。
4.10《算法与数据结构-实用算法基础教程》
4.1《编程之法 面试和算法心得》
4.2《程序员代码面试指南 IT名企算法与数据结构题目最优解 》
4.3《算法Ⅰ-Ⅳ(C++ 实现)–基础、数据结构、排序和搜索(第三版)》
4.4《程序员实用算法》
4.5《编程珠玑(第2版)》

五.算法奇门遁甲系列
推荐理由:包括一些可能在图形学,游戏设计,数据挖掘方面的算法书,偏冷门,乃大佬可以赏读的系列书籍
5.1《matlab数学建模算法》
5.2《常用数据挖掘算法总结及ython实现》
5.3《机器学习十大算法》
5.4《计算机程序设计艺术 The Art o Comuter rogramming 第2卷(第3版)》
5.5《算法百科 Encycloeia o Algorithms》

总结:例如对于平衡树,可能你跟着书本的代码实现之后,过阵子你就忘记,不过这不要紧,虽然你忘记了,但是如果你之前用代码实现过,理解过,那么当你再次看到的时候,会很快就记起来,很快就知道思路,而且你的抽象能力等等会在不知不觉中提升起来。之后再学习红黑树啊,什么数据结构啊,都会学的很快。
https://visualgo.net/en 可视化学习网站
https://algs4.cs.princeton.edu/home/ 算法官网
三、计算机网络怎么学?

书籍入门可参考以下:




如果你是非计算机专业的小白,对于计算机网络一窍不懂,连最基本的HTTP都没听过,那我建议你先去看看《网络是怎样连接的》。



网络是怎样连接的

这本书会从总体为你讲清楚计算机发送请求的整个过程!



图片收集网络

四、学一门编程语言

推荐java和python,java怎么学都不会错,想在学习时间上短点选python。
java相关:
下面是实用的Java自学路径。保存好这张图就可以开始备战了!





Java基础语法-面向对象-集合-IO-线程与并发-异常-网络编程
java基础传送门:Java基础入门视频教程,零基础小白自学Java必备教程


Java进阶
java进阶13天:Java13天进阶教程,深入学习Java编程核心思想
API: Java基础教程2020新版JDK8日期API解析


技术框架 Spring:Java进阶教程spring框架,深入浅出讲解细致
SpringMVC+mybatis:Springmvc+Mybatis由浅入深全套视频教程
mybatis plus:MybatisPlus深入浅出教程,快速上手Mybatis-Plus
spring data:java进阶教程数据层全栈方案Spring Data高级应用


分布式架构
Zookeeper+Dubbo:Dubbo快速入门,Java分布式框架必会的教程
Springcloud:SpringCloud从小白到精通教程
Skywalking:java基础教程全面的深入学习Skywalking
服务器中间件
Rabbitmq:RabbitMQ全套教程,RabbitMQ消息中间件到实战面试
Rocketmq:RocketMQ系统精讲,电商分布式消息中间件,硬核揭秘双十一
Kafka:Kafka深入浅出,快速玩转分布式发布订阅消息系统
Mycat:Kafka深入浅出,快速玩转分布式发布订阅消息系统
Redis:Redis入门到精通,Java企业级解决方案必看
MongoDB:java必备基础教程-MongoDB基础入门到高级进阶
Apollo分布式:轻松入门Apollo分布式配置中心-服务中间件
服务器技术
Tomcat:Java进阶教程Tomcat核心原理解析
容器技术
Docker:Docker容器化技术,从零学会Docker教程
Kubernetes:Kubernetes(K8S)超快速入门教程


练手项目合集
1.传智健康项目https://www.bilibili.com/video/BV1Bo4y117zVa
2.iHRM 人力资源管理系统https://www.bilibili.com/video/BV18A411L7UXa
3.Java项目《万信金融》企业级开发实战https://www.bilibili.com/video/BV1Ub4y1f7rka
4.好客租房项目https://www.bilibili.com/video/BV1sZ4y1F7PDa
5.品优购V1.3.1项目实战https://www.bilibili.com/video/BV1mi4y1L7Hta
6.Java大型分布式微服务闪聚支付项目https://www.bilibili.com/video/BV17v411V79c/a
7.Java集信达短信平台实战https://www.bilibili.com/video/BV1J


面试题:
深入解读阿里等一线大厂java面试必考HashMap技术点
Java面试热点问题,synchronized原理剖析与优化
Java面试热门内容精讲之——并发编程volatile
MySQL优化教程,超详细的MySQL数据库优化,Java面试热点必考问题
觉得有帮助可以抓紧收藏,说不定啥时候失效了

python相关:python web 开发+爬虫 阶段学习和时间分配

合理分配时间学习阶段学习教程
40个小时第一阶段:Python基础--从入门到精通https://www.bilibili.com/video/BV18J411W7cE
70个小时第二阶段:Python进阶--Web核心技术https://www.bilibili.com/video/BV19441137xy
5个小时Python的mysql数据库精讲,要仔细研读呦https://www.bilibili.com/video/BV1vi4y137PN
3小时第三阶段:Python数据采集
180分钟轻松获取疫情数据,Python爬虫入门课
https://www.bilibili.com/video/BV1464y1c7Eq
4.2小时Python爬虫基础,快速入门Scrapy爬虫框架https://www.bilibili.com/video/BV1jx411b7E3
82个小时第四阶段:Python企业实战项目
python企业级开发项目-手把手从0到1开发《美多商城》
https://www.bilibili.com/video/BV1nf4y1k7G3

五、怎么学操作系统?


操作系统的核心,就是由下面这些东西构成的:

  • 管理程序运行:线程管理、进程管理
  • 管理内存资源:内存管理
  • 管理硬盘资源:文件系统
  • 管理网卡资源:网络协议栈
  • 管理输入输出:中断管理、同步与异步
  • 为应用程序提供接口:系统调用
转csdn:一名教师的建议:
想学操作系统的同学,推荐以下教材供选择:
概念和理论:《现代操作系统》、《操作系统概念》
基于Unix:《Unix操作系统设计》
基于Linux:《深入理解Linux内核》
基于Windows:《深入解析Windows操作系统》
操作系统设计:《操作系统设计与实现》
源代码分析:《Linux内核源代码情景分析》

相关教程:

Linux系统操作教程2天快速入门linux项目搭建_哔哩哔哩_bilibiliwww.bilibili.com/video/BV11t411M7uZ?spm_id_from=333.999.0.0
允许别人和自己不一样,允许自己和别人不一样。理解了前半句,就能做到包容。理解了后半句,就敢活出自我。持续输出惊喜回答,喜欢可以关注我哟 @小扎一下
3#
郭玉小川  1级新秀 | 2022-6-20 10:22:47 发帖IP地址来自 北京
计算机学科的特色主要体现在:理论性强,实践性强,发展迅速。
按一级学科培养基础扎实的宽口径人才,体现在重视数学、逻辑、数据结构、算法、电子设计、计算机体系结构和系统软件等方面的理论基础和专业技术基础,前两年半注重自然科学基础课程和专业基础课程,拓宽面向。后一年半主要是专业课程的设置,增加可选性、多样性、灵活性和方向性,突出学科方向特色,体现最新技术发展动向。至今已覆盖所有二级学科课程。加强数学基础和分析能力,高等数学改上数学分析,增加计算机数学基础课程,体现在假设组合数学,增加离散数学的课时,并在计算机后续课程(如算法与数据结构、编译等课程)中体现数学应用不断线。更重视实践性教学环节,增加实验课程、课程设计比重,注重自主性实践环节,上机实践贯穿于四年的学习中,加强知识综合运用能力的培养。
计算机的特点主要体现在以下方面:
运算速度快。计算机内部的运算是由数字逻辑电路组成的,可以高速准确地完成各种算术运算。当今计算机系统的运算速度已达到每秒万亿次,微机也可达每秒亿次以上,使大量复杂的科学计算问题得以解决。例如:卫星轨道的计算、大型水坝的计算、2 4小时天气预报的计算等,过去人工计算需要几年、几十年,如今用计算机只需几天甚至几分钟就可完成。
计算精确度高。科学技术的发展特别是尖端科学技术的发展,需要高度精确的计算。计算机控制的导弹之所以能准确地击中预定的目标,是与计算机的精确计算分不开的。一般计算机可以有十几位甚至几十位(二进制)有效数字,计算精度可由千分之几到百万分之几,是任何计算工具所望尘莫及的。
逻辑运算能力强。计算机不仅能进行计算,还具有逻辑运算功能,能对信息进行比较和判断。计算机能把参加运算的数据、程序以及中间结果和最后结果保存起来,并能根据判断的结果自动执行下一条指令以供用户随时调用。用户可以根据需要,事先设计好运行步骤与程序,计算机十分严格地按程序规定的步骤操作,整个过程不需人工干预。
存储容量大。计算机内部的存储器具有记忆特性,可以存储大量的信息。这些信息,不仅包括各类数据信息,还包括加工这些数据的程序。
4#
zhoro  2级吧友 | 2022-6-20 10:23:28 发帖IP地址来自 中国
首先是课内的知识要抓好(数据结构,算法,计算机系统),这是基础,一定要重视。
还有一个亲测很好的方法可以让自己变强,那就是参加一些比赛,一开始肯定是菜,可以找大佬带的嘛。不过像ACM这样硬核的确实天赋很重要。
给你推荐个公众号吧,叫计算机赛事资讯,会推给你最近的一些比赛,省的你去找啦。
加油噢
5#
6874512231  1级新秀 | 2022-6-20 10:23:43 发帖IP地址来自 CNNIC
(现在大二了对之前的回答更改一下,感觉以前的回答太长了,大一还是太青涩了)
----------------------------------------------------------------------------------------------------------我是分割线----------------------------
怎么学好计算机专业,难道是靠天赋吗?有天赋的毕竟是少数,主要是靠刷题。
怎么提升编程水平?多做题。在评论区里分享了我做题的网站,最好加入学校的ACM训练队,它可以系统的帮助你学习算法,另外编程能力强的人大部分都在ACM训练队,不会了题目还能找到人问。还有在ACM训练队里更容易找到和你一起打比赛的队友。
匿名答主:没有天赋的人每天花十个小时在上面都不如别人一个小时得到的多
我感觉是题目刷的越多,做题越快。
怎么有效的做题?多思考,从简到难,不要太快看题解,也不要不看题解 (*)
踩过的坑:
1、不要太看中基础知识,掌握了一部分知识后就可以去刷题去了。
2、做不出来的题目不要浪费太多的时间。
3、即使自己提交的答案过了也一定要看题解。
6#
gvs  1级新秀 | 2022-6-20 10:24:40 发帖IP地址来自 中国
这个问题  我得分两个部分来回答,一个是学,一个是学好。

先说怎么学计算机专业,抛开兴趣等因素,我说一下我的个人看法。
首先,你得保证最低限度学习时间,每天分配两个小时在计算机相关的课程中(包含上课的时间)  这个时间得是有效学习时间,而非我在教室睡了90分钟就算一个半小时,打开书刷了半小时微博,今天的营养目标就达成了。   
对于学生而言。每天花上两个小时,不管你是看《c++从入门到放弃》还是《计算机基础》亦或是《操作系统》  真的不算难,最少  保证每天认真上课  下课巩固半小时左右就算完成目标了。

当然 ,以上是最低限度,毕竟很多人是因为爹妈听说这个专业很火 帮忙报的,有些人甚至大学之前office的一些基本操作都不知道,这个很正常。 但是 只要能保证到以上的最低标准,在专科院校中,本专业前五,二本院校中,本专业前十,普通一本中中偏上应该没啥问题的,对于没有兴趣,却又想要学这个的,对于这个成绩,应该是还算满意了(自我感觉)

然后,我们再来说说怎么学好计算机。
说到学好这个词,就不得不提到天赋这个东西,有些人对某些人,可能只需要付出平凡人十分之一的时间,就能掌握平凡人几倍的量,所以天赋,我们先抛开不谈,默认大家都是同一起跑线的小盆友。

想要学好,基本的学习态度得有吧,每天两小时的基本营养目标得达成。
然后就是关于代码的理解,代码的理解不是说能分清i++和++i的区别
而是知道代码在干嘛。
先定一个小目标,学会编码。(根据简单的需求 能写出对应的函数)
可能这里,我们可爱的杠精同学就会问了,我都考年级前十了,你说我不会编码?

很抱歉的告诉你,你不会,因为大学考试的东西,只要你听了课,啃了书,基本上考个前十没多大问题,但是这并不代表你就会写代码了。最少,在我看来,会写代码,最低限度的要求是能实现简单的需求。例如“你看一下我的某某结构,我等下传给你一个信息集合  你统计某些数据之后 分好组返回出来给我”这种很明确,很简单的需求,能有思路实现,这就勉强算会编码了,可是很抱歉的是,很多人看到需求,一头雾水。

完成这个小目标之后,下一个目标,学会调试,关于调试,不同的编译器会有不同的调试技巧,但是这个小目标的最低要求是,能找到错误地,并看懂错误信息同时能有改错的能力。

总不可能一个空指针异常,你去找是不是逗号大小写写错了吧(这是我大学同学的真事)

学会调试,你还得知道代码是怎么跑的,这一步跑了,下一步怎么跑,用c#举例,属性的get  set啥时候会跑get里面执行啥时候跑set执行,委托代码啥时候执行,多线程代码执行的时候怎样的等等,不说理解原理,你总得知道打到这里的断点,啥时候能击中吧,而不是等他自己击中断点。  这算是基本要求了嘛

最后,学好这玩意儿比较重要的,执行力跟兴趣,可能你在学习的时候,脑袋灵光一闪,自己有某某某想法,那么你就去做就行了,而别光想,不会的就百度谷歌(说到这里,学会搜索也是一个重要的技能,这个技能点要点满),等你自己把想做的做出来了,基本就有兴趣了,成就感这个东西会让你有兴趣的。有兴趣之后的求知欲执行力都会有的。
草草结束答题吧,我得吃饭了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP