重新规划大学低年级生活

虽然现在也不晚

Posted by WYX on April 20, 2022

重新规划大学低年级生活

博客断更是因为前段时间找工作去了,结合最近几个月的经历写写这么一个主题:对于计算机学院的低年级(大一、大二)普通学生,如果要以求职为目的,应当怎么安排学习。

说明:

  • 我 19 年秋季入学,是 19 级/23 届,我写这篇博客时(2022 年 4 月份)正好是 22 届春招金三银四大幅缩水,考研人数每年增加 80w 人的情况,因此本文无法作为高考报志愿、投资理财(?)的建议。
  • 在我看来巨佬的经历往往具备不可复制性,作为一个 GPA 完全无缘保研,也不是 ACM 校队竞赛生的普通菜鸡,本文能提供的是“可复制性建议”,目标是提高动手能力、代码能力、团队协作能力。
    • 要巨佬经验的去我的友情链接看看

大一

课程是按 19 级计算机科学与技术培养计划写的,如有变动请以课程名称为准

首先最好在这个阶段确定目标,你是想工作?还是继续深造?

如果目标是保研/大一下学期转专业/留学深造,首先恭喜你,学校安排的讲座基本都是讲这个的,目前也是 BJTU 的主流思潮,除了每门课都得卷赢,没有缺点;

如果不是就继续看这篇

  1. 微积分和线性代数是需要好好听的,专业课和大学物理会用到,学好了才能省出写作业时间学计算机;
  2. 工图、工科化学、交通运输概论、电工技术这几个及格就行,纯属 BJTU 培养计划的失误
  3. 大学英语课密度远低于高中,最好尽快考英语四六级,越晚越不会
  4. 本学年的重中之重:C 语言

C 语言程序设计

为什么 C 语言很重要?因为这往往是很多大学低年级同学开始对编程有恐惧抵触心理的课程。

这门课的教师授课水平比较参差不齐,但建议你无论如何还是要听讲,一旦对一门课的教师产生厌恶就很难学好课程了。C 语言在这时候一定要充分理解指针和引用,最好做到能给你的外行家人讲明白的程度,听不懂就去问同学和老师答疑,老师答不明白就自己学着用搜索引擎和网络公开课资源。

顺便强调一件事:任何一门专业课的大作业都绝对不要 cheat,cheat 就是作弊抄袭,抄代码一时爽,被抓火葬场。抓一个学生有没有 cheat 实在是太容易了,全看老师想不想查。即使你 copy 了一份作业也没有被抓,你也会因为少写了几百行,少搞明白几个 bug,在实践上逐渐落后于亲自写作业的同学。

程序设计基础训练

在我上这门课的时候,这门课程是一学期分几个步骤用 C 语言完成一个电梯模型,可能是网课的原因,那学期一周也就写俩小时代码……建议阅读一些代码规范的教程,让自己的缩进、变量函数命名易懂一些,养成写注释习惯,这方面我没有专门读过书就不打广告了。

强烈建议在这个时候学习 C++ 的 STL 容器,接下来《计算思维综合训练》要用。

Web 应用基础

大一暑假小学期的两门魔鬼课程之一,一周实现几个网页,但难度并不大,一般用 PHP 边学边就过去了,主要锻炼搜索引擎使用能力

计算思维综合训练

大一暑假小学期的两门魔鬼课程之一,对竞赛党非常简单,但对普通人非常难,每天上午讲课下午用 OJ 做题,上这课急的我一周下来轻了七八斤……

之前学的 C++ STL 在这时候能用上,没学过就尽量挑挑自己会的脑筋急转弯题做吧

大二

这个学年结束时的理想状态是,具备自己开荒一个语言/框架的能力,自己解决 bug 的能力,小组作业协作开发的能力。

C++ 和 Java 选修课不是二选一

这门课介绍上是可以选一个,但实际并不是

为什么不是二选一:

  1. 后续课程中存在教师只使用 C++ / Java 授课、或者你只能用 C++ / Java 的课程
  2. 如果你只选一个,《算法设计与实现》就从选修课变成必修课了,凑这一类专业课的学分会异常艰辛
  3. 就算你想在大三大四回来学,可不要小看了 BJTU 教学平台,这两门课只在第 3 学期和第 4 学期好抢

面向对象程序设计与 C++

课内只教面向对象程序设计的封装、继承、多态

但如果你想有班上,一定要同时学习 modern C++,了解 C++11 和 C++14 特性,可以看《C++ primer》

如果教师不讲,一定要了解这三个特性分别是如何实现的

JAVA 语言程序设计

课内只会给你安排每周一定量的 OJ 题目,一定要在规定时间内完成

我没学明白李强的强子语,所以也不是主要写 Java 的

经验应该类似于 C++,如果你想有班上,你需要在课外补齐老师课上没教的底层实现和新标准性质

数字系统基础

俗称数电,教的难,考的简单,虽然数电课程组都不太会讲课,但跟着写作业就没啥问题

学期末的大作业绝对不要抄,可以问同班 dalao 的思路,但绝对不要抄

计算机组成原理

反正我没学明白这个,但这是后面大三很多原理课程的前置课程

计组课程组教师水平比较参差不齐,建议尽早打开 MOOC 和 B 站大学开始自学

计算机综合训练、计科专业实践

对于计科,大二的暑假有《计算机综合训练》、《计算机科学与技术专业实践》两门课程,基本形式都是组队完成一定的实践项目。

一定要提前学习 Git 使用,这两门课开始的专业课就必须做团队任务了,期末考试完学一下 Learn Git Branching

如果能提前了解到题目,也需要提前学习相应的编程语言框架。

如果还学有余力

可以在每年二三月份开始关注 GSoC 的合作组织,如果有本事给这些开源项目提 issue 就参加一次 GSoC

可以在 之前的网站推荐 找点想学的,学 CS 多捣鼓多动手,横竖不亏;

如果时间充裕、精力充沛,跟着 TeachYourselfCS 提到的高质量公开课程,做点底层原理项目;