笔下文学

笔下文学>如果想学计算机从哪里起步? > 3 章(第1页)

3 章(第1页)

出现不适应、跟不上的学生也比比皆是。

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

以此脉络展开,就不难理解世界上各个大学惊人一致的计算机专业的培养方案了:除去是一个理工科学生都必须要学的微积分、线性代数、概率论之外,一个计算机专业的学生首先需要理解基本的电路的工作原理、以及如何使用电路进行逻辑运算,所以就会有一系列的硬件课,包括电路原理、数字电路、计算机组成结构;

其次,计算机专业的学生一定要十分熟悉并且喜欢一种「安排」感,

即从一个策划者的角度、像设计多米诺骨牌或哥德堡装置一样,环环相扣、如何一步步完成某一个目标的流程,这些本质上即「代码思维」,是一个在我国基础教育中相对较为缺失的一环,大学有关的课程是程序设计、算法设计、数据结构等;

接下来,是如何沟通抽象的逻辑流程设计(程序)到具体实践的电路操作,就有一系列的系统课:编译原理、汇编、操作系统、计算机组成原理、网络原理等。

以上是计算机这个学科的绝对核心,也是学起来最为硬核的部分,还有一些剩余的技术领域如人工智能、网络安全、高性能计算、图形学、软件工程等等,是由这些核心所延展出的具体应用。

所以,其实诸如重装系统、恢复硬盘、黑客技术等等,本质上其实是计算机具体应用层面(如计算机系统硬件、网络安全等)非常具体细化的专业知识技术,学习计算机主干学科内容的同学不会修电脑,实在是再正常不过的事情了。

从上面不难看出,想要学好计算机这个学科,其实在思维上要特别适应并且擅长「程序化流程思考」的模式,很多人常问学好计算机是不是需要很好的数学,答案当然是肯定的,不过和实分析复分析代数拓扑泛函分析这些数学系的「数学」不同,计算机专业学生需要特别拥有的数学思维能力,是偏组合的、偏概率的、面向某一个具体问题的流程的能力,习惯于从算法程序的角度思考、分析问题。

线性代数、离散数学、概率论、组合数学是计算机学生的数学基础核心,而面向对象的体系化程序设计,学会分析和操作一个极高复杂性的系统(包括装环境、de一些谜之bug),并忍受该过程中的繁难、没有线索、牵一发而动全身的复杂性,是成为一个好的计算机专业的学生必备的基本素质,面对全新的知识和事物能够迅速把握关键、迁移自己已有的知识快速学习,也是计算机专业的学生必须具备的能力。

在这个角度上,我认为大学之前从来没有写过代码的同学,最好还是相对慎重的选择计算机专业;如果选择了,则程序设计、面向对象、数据结构、算法设计、软件工程这之类的代码基础课一定要把基础打的极其扎实,否则一定会苦不堪言,将来在具体岗位上的可替代性也会很大。

总之,在计算机的专业课程方面,我的建议是:一定要动手做。对计算机学科内容充分的掌握=熟练理论知识+自己动手写(改)过一遍代码+de过一遍bug+最终跑通。

这个过程一定要独立、千万不要耍滑,可以寻求指点,但一定不要去找大佬直接复制他们的代码或者结果,一定要自己结结实实吃下所有shit并最终趟过去、完全理解自己写了什么,只需要经过几次这样的艰苦流程之后,基本就会在代码能力和专业素养上有质的提升,渐渐上道,很多在大学之前完全没有编程经验的同学度过了这一难关之后,和那些一直参加编程竞赛的大佬的专业水平差距小到基本可以忽略不计。

一个小技巧和建议是,国外的很多大学(如四大:MIT,CMU,Berkeley,Stanford)有质量很高的网课和材料,国内的许多大学课程抄的邯郸学步、深入深出、讲的云里雾里,如果有时间可以去把英文原版的课程啃透,对于整体提升自己的理解「内功」有奇效。

专业前景

计算机行业的出路大体上其实就两条路,一条是学术,一条是就业。前者的主要去向是大学高校,角色是大学老师,而后者则是进入企业(俗称大厂)成为一名码农。但这一点也不绝对,也有一些不是教职、但在工业界从事科研的人,像各种大厂包括微软的研究院,其工作核心更接近于学术的创新、而非工业界的开发和「出活儿」。

以下,我将简要介绍这两大出路的工作内容、选拔侧重、优劣分析。

学术道路

学术这条路主要的归宿是成为一名大学老师,少数是在某些有技术研发的公司中成为研究员。

想要走上这条路基本上都得读博士,并在博士期间积累论文产出,想要获得比较好的教职坑位往往还需要出国读博士后(进入工

已完结热门小说推荐

最新标签