如果让你重新开始学计算机,你的学习路线会怎么选择?

首先声明一下,任何一行都会有各种各样的具体情况,作为一个个体很难绝对完善的覆盖各个方面,笔者亦不能免俗。这篇文章的某些观点仅代表个人意见,具体情况还希望多加调查以确保不要陷入个人偏见。

信息技术是当今信息社会非常基础的存在和生产力,也正因此,在很长的一段时间里计算机学科都显得很吃香,也成为了诸多学生选择专业的首选。

但和很多其他专业一样,计算机这个学科有着自己的特点、适应人群和并不简单轻松的职业发展路径。因此,本文将试图从专业学习、未来出路和生涯规划三个方面来介绍一下计算机专业的全貌。

本文作者:LR,清华大学交叉信息研究院本科毕业,博士在读

(P.S. 计算机 CS 之外的三个专业介绍在这里

电子信息:电子信息类的就业前景真的不如计算机类吗?

自动化:自动化是不是很坑的专业?

软件工程:「软件工程」专业是一门怎样的专业?)

关于学科本身

计算机是一门非常年轻的学科,其历史至今还不足百年。但是作为第三次工业革命的主要技术,计算机依然是这个时代最核心的学科之一。

简单来说,最狭义的计算机学科,研究的是如何通过现代的各种电子元器件(如最早的电子管、晶体管、集成电路)的组合,使得它可以按照人类预先设定的流程工作,从而完成各种计算问题。这是抽象到最抽象的计算机学科,也是其原本最根本的出发点和整个学科的基础核心。

事实上,计算机这个学科是一个非常特殊的存在,因为它是如此的包罗万象,以至于从各个不同的侧面和不同的层级看去,计算机科学可以呈现出各类学科的特点。例如,在最底层的实现部分,计算机学科是一门妥妥的工程学科,如何搭建电路以完成基本逻辑运算、如何提高效率、如何大规模集成,这些和设计精密的机械仪器和汽车发动机别无二致;然而到了抽象层面,算法、数据结构这些组织数据和解决问题的方法论,却是满满的理论研究的味道,到处充满了组合数学;在中间的各种应用层级,计算机学科又像是材料、建筑或是生物,在有限的抽象层级和有限的工具范围内进行组合,在某一特定应用领域中发现一些算不上是基础突破、但又不完全纯粹是技巧的技术和知识(例如优化计算机网络结构等)。

现如今,因为信息系统已经深度融合进入了各个学科行业,所以计算机学科也变得格外重要,其下属的具体方面也愈加丰富多元。有硬件层面的不断精益求精、试图突破摩尔定律的极限,有软件应用层面的工程代码的设计、网络系统设计,有交叉学科的人机交互、图形学,有试图破解人类智慧的人工智能,有在理论上探究更加算法与计算本质的理论计算机科学和量子计算等等。

学科的知识结构

本科课程体系

计算机学科的培养方案比较庞杂,不同学校也有各自的特点,不能一概而论,但大体上以下部分是几乎所有的培养方案都会包含的:

  • 数理基础课:大一基本上都是上这些,一部分课程可能要到大二。其主要内容除去理工科基本必须的各项现代数学(微积分、线性代数、概率论)等之外,还有程序员必备的核心本领——代码能力,以及一些比较特色的、只有在计算机这个世界里显得格外重要的一些分支(如离散数学等)。部分学校会要求修大学物理
    • 数学课程:高等数学/微积分、线性代数/高等代数、概率论、复变函数、离散数学、数值分析
    • 代码课程:程序设计基础、面向对象程序设计、算法设计
    • 物理课程:大学物理

  • 核心专业课:课程分布在大二、大三两年,据我所知,无论是哪个大学,计算机核心专业课都是十分之多的,因为计算机本身包含的内容确实太丰富了。不然怎么都调侃计算机系是熬夜脱发院系呢(摊手)
    • 代码进阶:汇编,Java,图像化编程,软件工程,数据结构
    • 硬件课程:电路原理,模拟电路,数字电路
    • 计算机系统:编译原理,计算机组成原理,操作系统
    • 计算机应用:网络原理,人工智能原理,信号原理,计算机图形学,数据库

  • 可选方向的专业选修课:这些选修课的内容为计算机应用的最前沿,覆盖计算机各类子学科,一般会要求学生选修若干学分。很多课程会有一线的科研内容,以下是一些例子
    • 密码学,网络安全,数据挖掘,人工智能,神经网络,图像处理,软件开发,嵌入式系统,模式识别,高性能计算,多媒体,数字系统,博弈论,复杂度分析……

其中数理基础课和核心专业课程都属于必修内容,而后续的选修课程则与各类细分的专业方向相关。

细分方向

计算机有很多细分方向,不同方向之间也并非泾渭分明,大致归类如下

  • 人工智能:可能是最近最火的方向了,致力于用计算机系统和算法来重现、模拟甚至超越人类的智能,从而解决各种实际问题。其具体领域包括机器学习、模式识别、计算机视觉、自然语言处理、强化学习等等。
  • 高性能计算:致力于充分发挥计算机强大的计算能力、追求其极限,最广为人知的例子就是超级计算机了,如何设计并使得超大的计算集群得以运转并解决规模庞大的任务、尽力将每一个计算过程的效率发挥到极致、降低能耗、设计全新的计算架构(包括硬件和系统组织层面)是这个学科的核心问题。
  • 计算机系统:在执行最基本运算的硬件和实现各种纷繁复杂应用的软件之间,计算机系统是一个至关重要的平台和桥梁,你很难想象像先人那样用命令行操作你的电脑,用 0 和 1 编程。好的系统需要快速、安全、稳定,这其中涉及到大量的底层问题,而这也正是计算机系统的研究内容。
  • 网络技术:我们现在已经很习惯于网络了,但是互联网的到来是一件非凡的事情,其遗留的问题和未来的发展一直在继续。网络结构如何优化?远隔重洋的计算机如何安全的完成互相的身份确认和信息传输?黑客是怎么一回事、又该如何防范?这些都属于网络技术的范畴。
  • 多媒体:多媒体技术包括图像和视频的处理,人机交互过程中可能出现的问题等等。因为其跟新闻传媒、社会科学以及人体工程有很多交集,所以是计算机学科中「人文味」相对比较浓的一个领域。
  • 理论计算机:一切现在存在的计算机本质上都是图灵机,或者更确切的说,是基于冯诺依曼架构体系设计而成的计算机。这一理论本质带来一系列有趣的问题,例如计算能力的边界在哪里?面对一类问题,如何设计更好的算法,或者证明不存在更好的算法?对于一些本质十分困难的算法问题,如何设计好的近似或者随机算法?量子计算机真的在理论上可以完成传统计算机几乎不能完成的任务吗?为什么我们认为我们现在使用的密码系统是安全的?这些都属于理论计算机的范畴。
  • 图形学、编译器、软件工程等………

交叉学科

计算机学科与其他学科的交叉非常之多。例如与经济学交叉的算法经济学和算法博弈论,研究各种定价和拍卖的问题;与社会科学结合的数据(AI)伦理;与数学结合的计算数学和理论计算机;与生物结合的计算生物学和生物统计,用计算机的力量帮助破解基因密码,又比如 alphafold 可以用于破译蛋白质结构……

可以说,只要一门科学里涉及到数学、并可以将某些核心问题转化成数学问题,计算机学科就可以用计算发挥其威力。

计算机专业怎么学?

前面两个部分对计算机专业的知识结构与关注的主要方向做了基础的介绍,但很多同学关注的除了「计算机专业学什么」之外,更多是「怎么学」以及「难不难学」两个问题,这里会针对这两个问题,简单给出一个回答。

在展开介绍之前,有必要先明确一个十分根本的认识问题:计算机学科到底在干啥?很多人怀揣着对于信息时代黑科技的向往或是对高薪资的追求,就非常热切的选择了计算机专业,这种本质上基于浪漫的想象和功利的眼红的动机,在本科的学习中很容易出现落差或者不适应,即使是在笔者所在的清华大学,计算机类专业学习过程中出现不适应、跟不上的学生也比比皆是。

计算机学科最原始的初衷是用机械代替人力计算,后来机械装置变成电路,即使用复杂的电路完成预先规划的计算行为。因此,从本质上说,计算机学科是一个研究「如何设计并使用电子器件收集、存储、处理信息进行计算以达成某种目的」的学科,而如何控制此种计算或处理流程的预设逻辑,即为大家所熟知的「程序」或「代码」。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

 三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、Python练习题

检查学习结果。

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
计算机与技术专业是一个广泛且深入的领域,以下是一般的学习路线和一些建议,帮助您在这个领域取得成功并有机进入大厂: 1. 基础知识学习:首先,建立坚实的计算机基础知识。学习数据结构、算法、操作系统、计算机网络等核心课程,理解计算机底层原理和工作机制。 2. 编程语言掌握:熟练掌握至少一门主流编程语言,如C++、Java、Python等。通过实践项目和解决实际问题,提升编程能力。 3. 实践项目经验:参与开源项目、个人项目或校内外实习等,积累实践经验。这有助于展示您的技能和对于解决问题的能力。 4. 深入专研:选择自己感兴趣的方向进行深入研究,如人工智能、网络安全、大数据等。通过阅读论文、参加研讨等方式,不断拓宽自己的知识面。 5. 实习与实践:尽可能多地参加实习,获得实际工作经验。通过实习,您可以学习到实际项目开发流程、团队协作等技能,同时增加与大厂接触的机。 6. 提升软技能:除了技术能力,大厂也看重沟通、团队合作和领导能力。发展自己的软技能,如沟通技巧、解决问题的能力、项目管理等,能够提高自己在求职中的竞争力。 7. 多方面准备:大厂对于求职者有着较高的要求,包括技术面试、算法题、系统设计、逻辑思维等。除了技术准备外,多参加面试模拟、刷题等活动,提前准备面试所需的各项能力。 8. 学习资源利用:利用各种学习资源,如在线课程、教材、技术博客等。参与技术社区,与其他人交流学习经验和观点。 请注意,以上是一般的建议,不同的大厂对求职者的要求可能有所不同。因此,您可以根据目标公司的需求和招聘信息来调整自己的学习和准备方向。最重要的是保持学习的态度和对技术的热情,不断提升自己的能力和知识储备。祝您顺利毕业并实现进入大厂的目标!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员二飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值