计算机专业,暑假需要提前自学吗?

软工大四刚毕业一年,拿到各大厂 offer 的学长来分享下我的经验,希望对后来的学弟学妹们有用~

首先,大一开始你要思考自己是毕业就业还是继续升学,升学的话最好把绩点弄高点,GPA保证在:


  1. 重点要理解Servlet的原理以及生命周期。在完成这一部分的学习后,可以简单的做个小网站,包括注册登陆,增删改查等功能。如果想继续折腾,可以考虑将项目部署在阿里云或者腾讯云上,一个完整可供他人访问的项目,所获得的成就感是非凡的。

这是大二最重要的一门课,说说这门课怎么学:

  • mooc 上浙大的《数据结构》: .
由知乎「陈越姥姥」和何钦铭教授联合授课,其大名在计算机领域可谓耳熟能详了。
这门课程对每一种重要的经典数据结构都从实际应用问题出发,导出其定义、实现(存储)方法以及操作实现,并以更丰富的综合应用案例和练习题帮助学员增强对理论的感性认识,从而明白这些数据结构为什么存在以及在什么情况下可以最好地解决什么样的问题。手把手教授小白如何将解决问题的抽象算法用具体的代码实现,从而引导初学者更好地入门。
  • 学堂在线上清华邓俊辉老师的《数据结构与算法》
邓俊辉教授讲课,非常的深入浅出,强烈推荐

这两个是我看过觉得不错的才在这推荐,第一个是初学数据结构时跟着看,第二个是大三复习时刷的。

这本书强烈推荐,难度适中,但是全面。
这个量力而行就好了。。。

详细版的路线,请看我另外一个回答:

到了大三,有几门重要的专业课,其中最为重要的就是操作系统和计算机网络

下面分别说说这两门课该怎么学:

需要掌握的网络协议和知识:

  • IP地址、MAC地址、OSI七层模型(或者 TCP/IP 五层模型)
  • HTTPS安全相关的:数字签名、数字证书、TLS

计网知识比较繁杂,很多同学都反映网络很难学,一大堆的网络协议,依次学完后,还是不知道网络是怎么构成的。

这就是没有用对学习方法,导致只见树木,不见森林。

学习时,推荐你抓住一条主线 「一个数据包是如何发送出去的?」

带着这个问题依次去学应用层、传输层、网络层、链路层,思考这些层之间是如何串联起来的。

这就是自顶向下的思路,那自然要推荐:

  • 《计算机网络:自顶向下方法》
这本书从我们最常接触的 HTTP、FTP、SMTP 等应用层协议讲起,可以清晰看到引入各个层的作用。

比如为了区分同一个主机的不用应用,引入了传输层,并使用不用的端口号作为区别;

为了在不同子网间传输数据引入了网络层,并使用 IP 地址寻址路由;

网络层解决了不同子网间路由的问题,但是同一个局域网内确定主机却是通过 MAC 地址,所以引入了链路层来承载 IP 数据包;

同时为了将 IP 地址和 MAC 地址做转换映射又产生了 ARP 协议。

层层递进,逐层揭开网络,非常推荐!

非常浅显易懂的描述了「一个数据包是如何发送出去的」,也不费时间,看惯了机工社的大黑书,看这种反而有种看小人书的感觉,有基础的话,一天左右就过完了。

只有把握住了整个网络脉络主线才不至于被纷繁复杂的网络协议所搞晕,剩下的就是不断的细化,填充这些主干上的细枝末节。

那么有哪些细节可以去填充呢?

比如 ARP 工作过程、IP 地址、IP 分片、NAT(UDP 打洞)、链路层访问控制协议等等。

还有最重要的 TCP 协议,TCP 也是面试和计网中最重要的概念:

  • 三次握手、四次挥手、状态转换、TCP 状态中 TIME_WAIT、拥塞控制、快速重传、慢启动等

这么多东西肯定需要背,但不要死记,最好带着问题去思考为什么要这样做。

  • TCP 如何实现可靠传输的(画外音:如何基于 UDP 实现可靠传输
  • TCP 连接建立为什么不是两次握手(画外音:三次握手的充分必要性说明
  • TIME_WAIT 的存在解决了什么问题,等待时间为什么是 2 MSL

整个 TCP 的核心就是围绕着 可靠传输 + 高效传输(流量控制和窗口管理)

由于 TCP 的细节实在太多,自顶向下那本书有点不太够,所以你需要去看看:

  • 《TCP/IP详解卷1:协议》
这本书不要从头看,而是挑出其中涉及到 TCP 的章节

到这里,对于整个网络以及 TCP 都应该有了一个全面而细致的认识。

但是计网中还是有一些有意思的问题,如果你没思考过,也许回答不出来。

  • 为什么有了 MAC 地址还要 IP 地址,IP 地址和 MAC 地址的区别是什么?
  • 如何理解广播域和冲突域?
  • 路由器和交换机有什么区别?
  • TCP 连接的本质是什么,真的是“链接”吗?(曾经被问过:Java socket 创建的 TCP 连接,对于主机挂了和 JVM 挂了有什么区别?

这些问题只有当你真正理解了才能回答出,仅仅记住协议的话,估计很难应对灵活的面试题。

此外,网络部分还需要准备 HTTP、HTTPS,推荐:

最后别忘了自己回答一遍那被问烂了、写烂了的问题:

  • 从 URL 输入到页面展现到底发生什么

越细越好,五百字以上吧,哈哈哈

操作系统这门课,我的感觉是易学难精,但是掌握到日常编程和面试够用还是比较容易的。

那么毕业生或者说你去准备校招面试应该达到怎样的水平:

  • OS 四大模块的理论知识: 进程与线程管理、内存管理、IO与文件系统、设备管理
  • 了解 Linux 内核部分实现原理,如内存管理、进程管理、虚拟文件系统等

其中内存、进程、IO 是重点,这几块也是和编程关系最密切的,这里推荐先挑本偏理论的书看看,了解操作系统的全貌:

  • 《操作系统—精髓与设计原理》

不必全看,两者任选一本都不错,我自己是仔细看了第二本,因为是我们教材,同时挑着看了现代操作系统部分章节。

这部分看完你应该对下面这些话题有一个清晰认知了:

  • 进程的状态、切换、调度
  • 进程间通信方式(共享内存、管道、消息)
  • 线程的实现方式(一对一、多对一等)
  • 互斥与同步(信号量、管程、锁)
  • 并发经典的问题:读者写者、哲学家就餐问题
  • 为什么需要虚拟内存,MMU 具体如何做地址转换的
  • 虚拟文件系统(VFS)是如何抽象的

除了学习理论以外,还需要懂一些Linux内核原理,而学习Linux内核的最好的方式是看书,书的脉络给你理得很清晰。

  • 《Linux内核设计与实现》
这本书恰到好处,即讲清楚了内核实现的要点,又不会通篇源码。

当然,还要强烈推荐几门国外的OS课程,绝对一级棒!

  • MIT 6.828,这门课会带着你去基于xv6完成一个mini os的各个模块,比如文件系统、线程管理等

都是有视频有lab的好课

数据库首先要学会 SQL 的使用,这里推荐《MySQL必知必会》。

数据库原理方面可以看看《数据库系统概念》,这本书挺厚的,包含了从 SQL 到数据库设计再到数据库原理、分布式数据库都有,可以挑着看,比如关系模型、数据库设计(三大范式)、数据磁盘存储和组织方式、索引、并发控制等。

当然了整个数据库最重要的还是索引和并发控制(锁、MVCC等),这部分也是面试常考的:

  • 索引存储结构:B树、B+树索引、Hash索引
  • 索引的使用:主键索引、覆盖索引、最左前缀原则、索引下推等
  • 锁:乐观锁、悲观锁、表锁,行锁,意向锁,读锁,写锁等等
  • 存储引擎:InnoDB、MyISAM等,各自的优缺点
  • 《MySQL技术内幕》
这两本主要对索引、innodb存储引擎、锁、并发控制讲得比较清楚,建议挑对应章节看。

内容持续更新中......

码字不易,觉得不错麻烦三连哟~

大学怎么预习啊?以下文字资料是由(历史新知网)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

大学怎么预习啊?, 大学环境工程预习

高中毕业以后玩好。乐好就可以!

而且大学每学期学的都不一样,你想看的话,可以在网上查你的哪个专业需要学以什么科目,然后你可以去书店看看!

如果你真的想学点什么,可以学车,背背单词,准备英语四级考试,学学计算机,准备计算机二级考试!

去一些比较大型的书城都能够买到的,有大学英语这本书的,你可以去看看。高数A的话也是啊。最好咨询一下相同专业的师兄师姐们用的是哪一版的书,确保没有买错。

很勤奋用功的孩子哦,刚高考完,好好放松下先吧!不急的,其实预不预习不是很要紧的,要明白,大学不像高中了,评定一个学生的优劣不只是凭学习成绩的哦。

等上了大学,上课是认真听,有预习,再针对学科自己进行拓展学习比现在的预习更重要的哦。

我建议,你好好利用这个暑假补充多一点关于专业的基础知识还有常识。

预习的话你可以提前做一下家庭作业呀,然后就可以了解下一节课所讲的题型,然后在思考一遍,这样就能达到做题的效果。如果提看不懂,再去翻翻书,看看书上的例题,应该就能明白了。这是我的学习经验,数学主要靠做题,题型都了解了,问题就不大了

预习大学数学尽量在网上找些大学数学的教学视频,并且买些辅导书在家自己看。

《高等数学》是根据国家教育部非数学专业数学基础课教学指导分委员会制定的工科类本科数学基础课程教学基本要求编写的·内容包括: 函数与极限,一元函数微积分,向量代数与空间解析几何,多元函数微积分,级数,常微分方程等,书末附有几种常用平面曲线及其方程、积分表、场论初步等三个附录以及习题参考答案·本书对基本概念的叙述清晰准确,对基本理论的论述简明易懂,例题习题的选配典型多样,强调基本运算能力的培养及理论的实际应用·本书可用作高等学校工科类本科生和电大、职大的高等数学课程的教材,也可供教师作为教学参考书及自学高等数学课程者使用·

分数提高到100,给你几个课件,高数,精品课程~

到底什么叫预习?大学怎样预习是可行的?

预习就是课程还没开始之前,你自己先看看了解一下,你这大学上的,真坑

预习是学生学习新知识的首要环节。它是学生在学习新课之前自己预先对有关内容进行自学,以掌握知识,了解重、难点,为上好新课作准备的阶段。通过预习可以将要听课的内容有初步领会,扫除知识障碍,对难点和重点经教师的讲解,启发指点能更深刻的领会,可以改变学习的被动局面,促进自学能力的提高。不同学科的预习方法不同,本文介绍数学课文"读、查、思、比、记、练"六字诀预习方法。

读:就是阅读课文,学生要逐字逐句地阅读下一节课的授课内容,弄清中心问题,明确目的要求,力求了解新知识的基本结构(如定义、定理、解题方法等),从总体上作概要性把握。

数学知识连续性强,前面的概念不理解,后面的课程无法学下去。预习的时候发现学过的概念不明白,不清楚的,一定要在课前查阅有关内容搞清楚,力争经过自查不留问题。例如预习《立体几何》P.44的例2(已知两条异面直线a、b所成的角为?%a,它们的公垂线段AA的长度为d,在直线a、b上分别取点E、F,AE=m,AF=n求EF),对什么叫异面直线的角,异面直线的公垂线和距离等概念有些模糊,就要查阅课本P14~P16上的相关内容,扫除绊脚石。

学起于思,思源于疑,对所预习的内容要多问几个为什么?从引入方法到概念的内涵和外延,从证题的方法到证题的依据等。预习时应思考:这一节的重点和难点是什么?概念,定理,公式有什么含义?有什么条件?公式如何运用(正用,逆用,变用)。数学课本上有大量的公式,不管有无推导过程,学生预习的时候应当暂放下课本,思考如何推导对照,或在课堂上和教师推导的过程相对照,以便发现自己有无推导错的地方。对于课本的例题,也尝试先做一做,再与课本的解答对照,思考这个问题有没有其他的解法或更简捷的做法(一题多解),如此既是自己在独立地分析问题和解决问题,又是在检查自己的学习情况。一般地,公式推导不下去或推导错误,例题不会做或做错,是由于自己的知识准备不够,要么是学过的忘记了,要么是有些内容自己还没有学过,只要设法补上,自己也就进步了。总之,预习的时候要多思考,要学会质疑,巴尔扎克说过:打开一切科学的钥匙,都毫无疑问的是总问号。

比的含义,是对照阅读,把该知识与有关知识的相同点,类似和差别找出,并纳入相应的知识链中。如学生在学了等差数列的定义,通项公式和前几项求和公式等,在预习等比数列这块内容时,可类别学习。从两种数列定义可看出,等差数列与等比数列的区别是差(和)转化为比(积),两种数列,可用表格方式对比。

在比较中熟悉两种数列的特点,加强结构的记忆。

记指做好预习笔记,做预习笔记有助于提高预习的效果。简短的可以直接在书上圈画,批注,难点、疑点及复杂的内容则要写在笔记本上。对于在预习中,遇到不懂的地方,要结合新旧知识进行纵横分析,思考,若寻求出答案的,可把答案记下来,上课的时候,老师讲到这些地方时,应把自己预习时的理解和老师讲的相对照,看自己有没有理解错的地方。若想不出答案的,也要把问题记下来,待老师讲课时,再听其所以然。

在预习过程中,动手写一写,做一做,概念是否明白,方法是否掌握,可通过练习进行自我检测。数学课本上的练习题都是为巩固所学的知识而出的。预习中可以试做那些习题,之所以说试做,是因为并不强调定要做对,而是用来检验自己预习的效果。预习效果好,一般书后所附的练习是可以做出来的

要注意理解,最好有个可以随时问问题的人,数学如果有不理解的可能无法进入下一个阶段的学习

说实话化学真的不好预习,本人认为最有效的办法就是按章节写其化学方程式。特别是常用的,而且是考试常考的。

在写的时候想想有关实验,然后就是看看实验现象什么的。

要是有错题本就看看以前的错题吧,这样肯定会受益匪浅。就算以前考试写错的题目都可以。

这个问题问我就对啦!最近刚好整理了一些 CS 入门的视频和书籍。

毕业于某985高校,校招拿到了腾讯、美团、京东、百度等大厂的 offer。

大学那会基本全靠自学,学校里教的东西真心很有限!

下面这个视频的UP主讲了你可以利用进入大学的这个暑假学习什么CS相关的课程以及计算机专业大学四年通常会学习什么。推荐你看看!

如果你是编程新手或者学习编程一段时间还未入门的话,可以看看中国大学Mooc上的国家精品课程:。

这门课程就是专门面向大一新生的,当然,如果你能在上大学之前看完的话,就更好了!

我一个报考了计算机专业的学霸妹妹都在家里看这门课程,据她所说,这门课真心赞!

这门课程的主要目的是培养你的程序思维,带你走进程序世界。

这门课程一共有 3 部分:

  1. 计算与程序 :带你了解计算机最本质的内容。
  2. 计算系统 : 带你了解程序是如何被执行的。
  3. 算法思维 :带你了解如何在程序中使用算法解决问题。

如果你比较喜欢看书的话,可以看看 这本书。

你从这本书的名字就能看出,其定位就是作为一本计算机科学方面的入门教材,内容涉及计算机科学的各个方面。

像各个大学的CS专业在大一的时候,一般都会有这门课程。

不过,这本书也有一个比较明显的缺点,那就是年代有点久,少部分知识比较过时。

非常非常建议你在入门之前看看上面推荐的视频或者书,真心比你在课堂里听老师念ppt强太多了!

打好了基础之后,我建议你可以开始学习一门编程语言。

几乎所有的大学刚入学第一年就会开设一门编程语言课,一般是 C 语言偏多。

不论你的学校是否开设了 C语言这门课,我建议大家最好还是学一下 C 语言。 拿我从事的 Java 后端开发来说,很多 Java 从业者单纯觉把 Java 学好就完全足够了,并不需要再学习像 C、C++这种稍微更难一点的编程语言。我觉得对于刚能写好 CRUD 的 Java 程序员来说确实是这样的,但是对于想要成为比较顶尖的 Java 程序员来说肯定是不行的。很多开源项目都调用了C语言库,所以,作为Java程序员,不需要你 C 编码能力多强,至少能够看懂 C代码。

刚开始学习一门编程语言的时候,大部分人都挺吃力的。有时候一个环境搭建就折腾大半天。我记得,我那时候刚开始学,很多非常非常简单的控制台程序都写不出来。 不过,随着后面学习的慢慢深入,我慢慢发现自己的编程思维和能力在变得越来越好。

在这里我想鼓舞一下初入计算机编程的各位小伙伴:万事开头难,你见过的所有大佬都是从懵懵懂懂的阶段摸爬滚打过来的。 当你在C语言课上看着前面的老师在编译器中飞快地输入着代码,自己却连编译器都配置不好的时候,心中难免会有失落,但这决非放弃的理由,只要坚持住,解决了一个又一个的难题,你也会成为曾经心中的大佬。

如果想要看视频提前学习或者上课没学好 C 语言的话,推荐去 B 站搜索 C 语言郝斌。这个老师的课程很不错,非常适合拿来作为初学者学习 C语言的教程。并且,视频中老师还会给你分享一些他自己的编程学习心得。

另外,翁恺老师的国家级精品课程 也非常不错。这门课程得到了大部分同学的认可,大家看这门课程的评价以及同学们的留言就可以看出来了!

另外,如果你觉得谭浩强 老师的 《C语言程序设计》 这本书比较难理解的话,可以看一下 《啊哈C语言!》,这本书非常通俗易懂,非常适合之前没有学习过编程的新手。

还有开设C++课程的高校也比较多。初学者可以先通过网上的一些课程先了解 C++ 的一些基础操作,基本掌握基础语法后,为了进一步提高自己的编程开发能力,还可以读一读《C++ Primer》、《C++ Primer Plus》和《Effective C++》。

实际上,大一初学编程的小伙伴在刚开始学编程语言的时候都会很吃力,以上推荐教材的正确使用方法有两个要点:

  1. 结合课上老师所讲和书上所讲,在实际应用中去感悟“为什么”
  2. 把教材当成工具书、参考书,而非“教程”,结合参考书和网上搜索资源,来解决在实际编程中遇到的问题

顶尖中文大学计算机专业课程体系

如果你还想要继续深入学习的话,我建议你一定要看看网易云课堂的 。

这个课程体系汇总了全国多家知名大学里广受学生好评的计算机老师,然后将它们对应的课程整理一个体系。并且,里面的课程都是免费的!!!

是的,你没听错!可以陪伴你度过整个大学的硬核课程统统都是免费的!你可以自由选择喜欢的课程进行学习!

如果你想要获得课程对应的证书的话,你需要完成相关学习内容,包括观看视频,提交作业,参与互评和讨论等等。你需要及时查看课程大纲及公告,了解获得课程证书的具体要求。课程团队将根据你的最后得分判断是否颁发证书。

讲师阵容也是非常强大,有哈尔滨工业大学计算机学院教授战德臣老师、还有计算机博士翁恺老师......。

转载自:一个不是很了解CS(计算机科学)的人,该从哪里开始自学CS? - CS指南的回答 - 知乎

我整理的计算机学习路线已经开源,欢迎指正,互相学习!

  • 码云地址: (Github 无法访问或者访问速度比较慢的小伙伴可以看码云上的对应内容)

Github掘金计划由3位志同道合热爱开源的小伙伴维护,我们想让 Github 和 Gitee 上优质的开源项目被更多人看到!如果有帮助的话点个在看或者赞就是对我们最大的鼓励!


欢迎关注 ,持续分享优质开源项目!

我要回帖

更多关于 计算机专业难学吗 的文章

 

随机推荐