计算机专业如何系统自学?编程指北

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2023.09.21

大家好,我是小北。

写公众号以来有很多同学向我提问,问题基本都是大同小异,核心就是刚转到CS或者刚上大一不知道怎么学编程,还在背代码、背语句......

所以今天聊聊计算机专业的学习以及一个升级打怪路线。

我一直的观点就是,在具备基础之后,学习任何新东西,都要抓住主线,突出重点。

对于关键理论的学习,要集中精力,速战速决。

而旁枝末节和非本质性的知识内容,完全可以留给实践去零敲碎打。

战线拉得越长学习效果越不好。

就是核心内容,就是不会这些东西,你就不能算懂XX,比如C++,我觉得核心就是C系的语法(iffor那种)+类、继承、虚函数+STL+RAII

如果C++11,那就还要加上auto、右值引用、lambda这些。

其它类似怎么输入输出、怎么读取文件、map、vector有哪些方法都属于支线,用到的时候再去学也无妨。

原因很简单,对于重点知识,只有集中学习其理论,才能确保体系性、连贯性、正确性,而对于那些旁枝末节,只有边干边学能够让你了解它们的真实价值是大是小,才能让你印象更加深刻。

比如Unix编程中各种系统API,就属于细枝末节,对于Unix的各个内核子模块的整体实现、IPC通信机制、IO模型等才是重点。

(说个题外话,最近在制作一个《CSGuide》,会包含学习资料、路线、课程等等内容,到时候弄好了会同步到Github去的:

上面说的是具体某个技术的核心,那么CS学习的核心有哪些呢?

大概是下面这些:

高级语言程序设计、数据结构与算法、电路与电子技术、集合论与图论、代数与逻辑、数字逻辑、计算机组成原理、操作系统原理、数据库原理、编译原理、软件工程、计算机网络。

学习计算机最核心的方法,也是小北一路走来总结的,按照学长推荐的这个路线走,大学毕业成为Offer收割机,去BATTMD这些都没啥问题:

入门看视频+不断编码+深入看源码和经典大黑书+做国外计算机硬核Lab

大黑书有哪些?

学习计算机一定不要想着速成,要下苦功夫,去啃那些经典书和源码,然后自己动手写代码。

至于科班的课程,我们可以看下网易云课堂这个计算机科班的课程体系,虽然不是每个学校都一样,但是大同小异:

比如计组、汇编、体系结构等课程会让我们明白计算机的构成、运行机制,以及典型的冯诺依曼结构,也会对于内存和指针这样两块在任何编程语言中都是极其重要的概念理解非常深入(不要扯Java这类语言没指针,你完全可以把引用当做受限指针)。

另外,像数字逻辑、模电这样的课程主要是让你明白数字:浮点数、整数都是如何在计算机内部表示和存储的,以及一些门电路的知识。

操作系统则让你明白「一个程序是如何跑起来的」,一个它是如何编译、链接、加载、运行的,在这一整个过程几乎会涉及到操作系统的所有环节,学了这个你就会明白synchronized关键字在OS层面到底是如何保证的。

而计算机网络则是让你明白「一个数据包是如何从一台主机发送到另外一台主机的」,这里面涉及到路由算法、差错检测、寻址、重试策略等等,包括TCP/IP整个协议栈

编译原理则是让你明白高级语言都是如何被编译程序识别、转换为另外一种语言的,我认为编译器的本质就是做转换。

很多人觉得平常用不到编译原理,其实,,,真的用不到哈哈,但是在一些DSL方面还是会有用武之地的。

把操作系统、组成原理、系统编程这些学了,认认真真的把计算机基础打扎实了,那你其实就是一个「计算机科班学生了」。

接下来说下我认为对一个「计算机知识体系完整的毕业生」最重要的课程,你至少得把下面这些课都学了:

1、编程语言:C/C++(学好了这两门,基本其它编程语言一周就上手了)

2、《系统级编程》(我们教材是CSAPP,这是我本科上过最值的课!SystemPrograming)

3、《数据结构与算法》

4、《组成原理和体系结构》

5、《操作系统》

6、《编译原理》

7、《计算机网络》

8、《数学课》:线代、离散、高数

首先,送大家一句话~:

万丈高楼平地起,勿在浮沙筑高台。

所以一定要在大学期间把基础打牢固,整扎实,这是科班的核心竞争力!

而且非科班同学学完这些课,也可以说是科班了!

看书+看视频+实践

接下来推荐一些我觉得特别好的资料,尽量保持精简:

没有比C语言更适合用来理解计算机系统了,科班学生一定要学好C语言。

推荐:《C程序设计语言》、《C与指针》、《C++Primer》、《C++对象模型》、《EffectiveC++》

具体参考:

不用说肯定推荐《深入理解计算机系统》

其实它的简介和第一章《计算机系统漫游》已经写得非常清楚了:

从一个简单的helloworld程序在计算机上的执行过程:

预处理->编译->汇编->链接->可执行文件->装载->数据流->屏幕输出显示

汇总成一句:信息=位+上下文。

另外还有一本就是《程序员自我修养》+《Unix环境编程》。

《算法第四版》、《算法导论》、《剑指offer》

不过这里说一下,算法导论不建议新手入门使用,容易被劝退,可以作为进阶阅读使用。

《计算机组成与设计:软硬件接口》、《编码》、《CSAPP》

操作系统我推荐看书+做lab的方式,比如MIT6.828xv6

书可以看《现代操作系统》,如果你想学个os,可以看《操作系统真象还原》

我当时应该是看了不少网课,然后自己跟着教程”抄了“一个minios。

学习操作系统一定不要去死看书,最好跟着那种有配套实验完成一个os的课程或者书。

就像这种:

推荐《计算机网络自顶向下》、《TCP/IP详解》

直接看龙书(就叫《编译原理》)就好了,想写脚本可以看看《自制脚本语言》

说实话,把上面这几门课学好了,国内大厂offer几乎随便拿了。

但是很多人忽视了基础,往往在大学最该打基础的时候去追求所谓的新技术。

所以不如谈谈到底「如何才能成为一个计算机知识体系完整的毕业生」吧?

在这里,我粗浅的把计算机编程领域的知识分为三个部分:

我推荐大家花在「基础:领域知识:技能」接近7:2:1。

不要大一、大二一上来就扎进JavaWeb、Python爬虫这种东西,这些可以学,但不是重点。

那么如何检验学得如何呢?

想必你一定听说这个计网面试题:

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

这个问题换个表达就是「一个数据包是如何发送到另外一台电脑的」,如果你能完整的说出整个过程,那么计网你一定是学懂了!这就是为啥面试这么喜欢问这个问题的原因。

那么我们依葫芦画瓢提一个问题

“从代码被写下到程序运行起来到底发生了什么?”

这个问题回答得越详细越好,基本上能说清,你就理解了编译原理、操作系统、组成原理这三座大三。

THE END
1.计算机基础知识教程我要自学网-免费视频教程,提供全方位软件学习,有3D教程,平面教程,多媒体制作教程,办公信息化教程,机械设计教程,网站制作教程,电脑培训https://www.51zxw.net/List.aspx?cid=354
2.电脑高手必懂75个知识(最基本的电脑知识)零基础入门到精通,收藏这篇就本篇文章给大家谈谈电脑高手必懂75个知识,以及最基本的电脑知识对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、电脑硬件的基本常识有哪些? 2、实用电脑技巧大全 3、使用电脑必须掌握的基本知识? 4、要成为一名电脑高手 必须了解和掌握的知识 https://blog.csdn.net/leah126/article/details/142845435
3.如何自学电脑基础知识如何自学电脑基础知识篇一 一、电脑的基本构成 一般我们看到的电脑都是由:主机(主要部分)、输出设备(显示器)、输入设备(键盘和鼠标)三大件组成。而主机是电脑的`主体 ,在主机箱中有:主板、CPU、内存、电源、显卡、声卡、网卡、硬盘、软驱、光驱等硬件。 https://www.unjs.com/z/1519973.html
4.电脑办公基础知识教程自学.docx电脑办公基础知识教程自学指南前言在现代办公环境中,电脑已经成为不可或缺的工具。无论是处理文档、制作图表、收发邮件还是进行数据分析,掌握基本的电脑办公技能都是非常必要的。本教程旨在为初学者提供一套系统的自学指南,帮助您快速掌握电脑办公的基础知识。电脑基础知识硬件组成了解电脑的硬件组成部分是学习电脑办公的https://www.renrendoc.com/paper/334923839.html
5.电脑办公基础知识教程自学入门(7页)电脑办公基础知识教程自学入门.docx 7页VIP内容提供方:朱素云 大小:14.84 KB 字数:约3.82千字 发布时间:2024-07-03发布于江苏 浏览人气:12 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)电脑办公基础知识教程自学入门.docx 关闭预览 想预览更多内容,点击免费在线预览https://max.book118.com/html/2024/0630/8031134032006105.shtm
6.电脑基础知识视频教程——我爱自学网本套计算机基础知识教程从电脑开关机开始教起,学习文字输入法、上网聊天、下载和安装软件、网上购物、网上娱乐、图文编辑、电子相册制作等内容,非常适合没有接触过或刚刚接触电脑的学员观看学习。http://www.52zxw.com/kecheng_117.html
7.电脑电脑知识学习教程mysql数据库视频教程 数据库基础讲座教程 Oracle 10G数据库视频教程 access数据库全集视频教程 硬件维修 更多>>>·台式电脑cpu风扇拆装视频 ·电脑水冷系统安装教程 ·笔记本清理灰尘视频 ·自学组装电脑视频 ·如何保护笔记本硬盘视频 ·主板维修实用技术教程 ·固态硬盘分区4k对齐教程 ·电脑的组装与维修知识教程 ·http://www.51xuexi8.com/diannao/
8.零基础学电脑的自学软件如果你是一个零基础的电脑使用者,想要学习如何使用电脑,那么自学软件可能是一个很不错的选择。通过学习自学软件,你可以根据自己的步伐自由学习,不用考虑其他人的进度。此外,自学软件通常拥有一系列的课程,可以从基础的电脑知识开始,逐渐深入,帮助你建立坚实的基础。你甚至可以在自己的时间安排中随时随地进行学习,无需顾https://www.hxsd.com/content/32748/
9.计算机基础教程知识点6篇(全文)计算机基础知识教程 在当下,计算机成为一个不可或缺的工具,无论是学习、工作,还是生活中,都离不开它。为了让广大的学员了解计算机、用好计算机,进一步普及计算机基础知识。我要自学网特别准备了这一套计算机基础知识教程。课程主要从三个方面进行介绍:计算机的躯体-硬件系统、计算机的灵魂-软件系统以及计算机的精彩世界-https://www.99xueshu.com/w/filei7fimh15.html
10.写给自学者的入门指南51CTO博客首先初学者要具备一些非常基础的知识,这些知识在你踏上工作岗位后能被实际的用到,比如计算机运行原理、网络的传输、常用数据结构和算法等。这部分属于计算机科学,也是应该被计算机专业本科课程涵盖的,不要伤心错过了大学本科的相关课程,我会分享一些有用的资源。 https://blog.51cto.com/u_15127595/2737915
11.济宁市人民政府教学教研济宁第一职业中等专业学校专业建设人才面向幼儿园及其他幼教机构学前教育专业领域,培养拥护党的基本路线,适应学前教育专业领域管理、教学、服务第一线需要的,德、智、体、美等方面全面发展,具有良好的教师职业道德和先进的幼儿教育理念,掌握学前教育专业必备基础理论知识和保教专业技能,具有较强的保育能力、活动设计与组织能力、反思与自我发展能力,善于沟通与合http://www.jining.gov.cn/art/2023/11/30/art_81890_2794562.html
12.电脑自学ps教程免费VPS1、零基础学后期|Ps自学怎么做? 2、初学者ps抠图步骤 3、如何零基础学习ps? 零基础学后期|Ps自学怎么做? 1、学习基本电脑自学ps教程的图像调整技巧:在掌握了图层电脑自学ps教程的概念和管理后,你可以开始学习一些基本的图像调整技巧,如调整亮度、对比度、色彩平衡等。这些技巧可以帮助你优化图像的视觉效果,使其更https://www.zovps.com/article/index.php/post/185866.html
13.计算机基础知识教案(精选13篇)计算机基础知识教案(篇3) 教学目标: 第一课时 一、导入新课,激发读书兴趣: 同学们,有人说:“学会英语和电脑,是进入二十一世纪的通行证。”新世纪已经到了,你了解电子计算机吗?你知道多媒体吗?让我们来学习课文《电子计算机与多媒体》(板书课题) 二、自读课文: http://www.jiaoyubaba.com/jiaoan/84181.html