TOC
进程上下文
上文:JVM 实验
下文:SICP 习题 & 白砂的 Aquatope
时间片
2020.9 —— 2021.6
表情地址
📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍
前情提要
- 2020.7.24 高考出分 😨
- 2020.8.17 得知被 NJUSE 录取 🥰,痛失 NJUAI 和 NJUCS 🥴
时间如此精确是因为翻了好久的相册
其实被录取前我就做好了搞计算机的准备,那段时间在小破站看 Python 的视频教程(其实就看了两天 🤣),在原来的台式机上还装了 PyCharm(划重点,之后会考 👇),至于这台高中的台式机(各种搞机技巧),挖个坑以后再讲 🤣。
期间其他的事件:
- 全网最适合中国人的免费音标课(英语口语太差 🎤)。
- 常州天目湖(第一次去水上乐园 🌊)
- 游戏科学新作《黑神话:悟空》13 分钟实机演示(国产单机游戏之光 ☀️,我与单机游戏的渊源,继续挖坑 🤣)
- 京阿尼的京吹(番剧方面会另开一个随笔,再挖一个坑 🤣)
- 现在的主力机,拯救者 Y7000P 2020 款,(京东抢购 ¥8499,手速自信,键盘鼠标等配件就不提了)
- Dynamite(音游史也要挖一个坑 🤣)
- 计算机文化(差点忘了)
NJU 小蓝鲸
宿舍负载
3 / 4
舍友示意港澳台选手已不见踪影 🤣
朋辈导师
有点厉害 🧐
预定 2020 年花旗杯全国第⼀名
2021 软工一大作业图灵机作者
- ……
主要作品(面向小蓝鲸):开学第 0 课
、开学第一课
、课、题、书
、大一下学期生存指南
引用朋导在 开学第 0 课
中说过的一段话,当时我的表情是这样的 🥺
插入图片好麻烦啊 ⚠️
大一过后再看,我的表情是这样的 🤣
军训 & 祈雨
NJU 的军训挺 🌊,教官人好心善 🤣
也是宿舍作息最阳间的一段时间 🤣
寻找音游组织
认识了一个 AI 的学长 🥰
软院有个 arc ⭐ 人
面基不带设备,真有我的 🤣
相逢 SICP
下次重逢就在考试周后了 🤣
相逢难,重逢更难
宿舍间团建
自助火锅 & 二刷信条
朋导的课、题、书
害人不浅
网课两部曲
舍友:我要杀穿 OJ
朋导:这两门课吃透后基本不需要再专门上 C 或者算法的课了
军训完上了一周课然后就是国庆小长假咯 🤣
头铁去翻 CSAPP,晃过了第一章(划重点,之后会考 👇)和第二章,不知所云 🤣
于是就去刷网课了 🤣
大一上
大计基 🤣
第一个吐槽的是计基,大一上 2020 级软院小蓝鲸们唯一的专业课
于是 2021 级的新生就多了两门专业课 🤣(C 语言程序设计基础、Linux 系统基础)
先吐槽教材计算系统基础,内容简介如下(摘自豆瓣):
采用自顶向下和自底向上相结合的方式介绍计算系统,主要分为三部分:程序设计基础,计算机硬件和系统软件基础知识以及函数、指针、数组、递归等深入主题。力求涵盖教育部软件工程专业教学指导分委员会制订的《软件工程专业规范》中对该课程的相关要求。
首先这个封面就绿不拉几的,其实平心而论,融合 C 语言和 DLX(MIPS 的一个子集)进行教学像极了 CSAPP,但是两者之间的衔接不够自然(归根结底 DLX 抽象的过头了)。另外,教材 C 语言程序设计的部分味如嚼蜡,不如去看谭浩强。
再吐槽讲师,主要是九头龙(九头龙:不要说我的坏话 🤣)
- 计基第一课进行哲学思考
Thinking as Computation
,直接把我讲困了 😑 - 计基第二课用英文漫游了计算机系统
A Tour of Computer Systems
,直接把我讲晕了,后来才知道那是 CSAPP 第一章 😑 - 计基中的 C 语言程序设计,有什么难的,然后九头龙就真的一本正经的讲起来了 😑
- 计基中的硬件,硬件总得好好讲吧,我还想知道时序电路是啥呢,然后九头龙说不考也不讲 😑
2021 级的计基已经把九头龙换下去了 🤣
信息与计算科学导论🧑🎓
开局用[罗素悖论](https://zh.wikipedia.org/wiki/ 罗素悖论)把我骗了进去 🤣,趁别人退课后火速选课 🤣
软院离散集合论的终点,仅仅是信计的起点 🤣
列一下教学内容:
- 集合及其运算;
- 关系及其性质,Warshall 算法;
- 无限集合、对角线方法、Cantor-Bernstein 定理及其证明;
- 偏序、全序和良序,良序定理、良序原理;
- 选择公理、Zorn 引理、基数和序数、超限归纳法;
- 广义连续统假设;
- 算法及其复杂度,渐进分析及其记号;
- Karatsuba 算法及其分析,递归算法与递归方程;
- 齐次递归方程与特征多项式,非齐次递归方程;
- Master 定理;算子与 Annihilator。
最后一半也没听懂 🤣,期末考试倒挺良心,保底就有 65'
,一共五题,一题 10'
,上限 100'
然后这课没有教材啊,我就去网上搜,先后找来了:
以上只是集合论部分,递归方程部分讲师提了许多线代中的概念(信计学了,但软院大二才学 😨),于是又找来了线性代数及其应用,当时没做习题有点伤 🤣。
差点忘了还有具体数学,看了其中的生成函数部分。
微积分 I
xym yyds
老师选的好,考试没烦恼 🤣
其他的教材:
- 数学分析 (第二版)(数学系的教材)
- 数学分析八讲(修订版)(xym 倾情推荐 🤣)
英语
英语读写:洗衣机的故事 & 舍友的四格漫画
英语听说:Presentation & Dubbing
剪影
部分摘自每日小结与计划,差点都忘了 🤣
- 参观校史展览馆、ITSC
- 小蓝鲸之夜
- 七日情侣、校园美食节,科创月,校园十佳歌手(都与我无关 🤣)
- 电竞部新人大会
- 1013 事件(O 泡时间到 🤣)
- 后摩尔定律时代的计算与智能(讲座好嘞 🤣)
- C 位出道(火速报名,写了一个很丑的推箱子,然后上机还是去年的计基期末题 🤣)
- Web 兴趣小组(看不懂啊 🤣)
- Party Animals(第一局就拿了第一 🤣)
- L4D2、DG(传统项目 🤣)
- 幽灵行者试玩
- 赛博朋克 2077 发售
- 美国大选(川宝 🤣)
- 上海名媛
- 马保国
番剧
- 京吹回顾
- 安达与岛村(看一半被封了 🤣)
- 全员恶玉(高开低走 🤣)
- 约定的梦幻岛 第二季(原创番 🤣)
- 堀与宫村(いただきます 😋)
课程论文
- 软件工程导学:人机交互
- 形式与政策:美国大选
- 走进数学:拓扑学大杂烩(纽结理论、希尔伯特曲线、斯梅尔悖论)
- 什么是数学:黎曼猜想,参考了素数之恋
- 走进地理信息世界:定位与导航
- 中国近代史:近代以来的中日关系发展及其未来
随便看看 🤣
模电 & 数电 & 机组
汉明码
硬核社会学
【硬核社会学】996、内卷、打工人:马克思为什么是对的(上)
硬核人类史
【硬核人类史 1】文明从何而来?让人类史帮你洞悉文明的起源与本质
【硬核人类史 3】阶级、魔法、战争、科技,人类历史的底层逻辑
游戏社会学
【游戏社会学】赛博朋克是资本主义的终极形态吗?控制论革命的残酷真相
学习观
书 🤣
- 计算机程序的构造和解释:大一上看了几页,没有程序设计环境,习题做不了啊
- 编码 : 隐匿在计算机软硬件背后的语言:这书比计基的教材写的好,虽然有些内容太陈旧了
- 汇编语言 (第 3 版):当时准备去挑战 CSAPP 第三章,先热热身,搞来了 DOSBox 的环境,看了几章
- 算法设计指南:这竟是我的第一本算法书,看了许多面试题 🤣
- 数据结构与算法分析 C 语言描述:深刻,但翻译较差 🤣
- C Primer Plus:当时问计基的讲师考试用 C 还是 C++,讲师说用 C++ 干甚,于是就搞来了这本(网课缝合了 C 和 C++,害人不浅 🤣),在思修课上看 🤣
- labuladong 的算法小抄:快进到投简历 🤣
- 新标准 C++ 程序设计教程:网课配套 🤣
- C 和指针:你的第二本 C 语言书 🤣
寒假❄️
计基考完就联系了 CS 的同学,准备速通 SICP Python Version,同时结束程序设计与算法(三)的学习(没想到网课两部曲还有续作,快去写魔兽世界大作业 🤣)
期间又搞到了[问题求解](http://cslabcms.nju.edu.cn/problem_solving/index.php/ 首页)的 OJ,写了 T1 和 T2,T3 是个数学题
回城后光速读完 A Byte of Python,然后被 SICP 暴打 🤣(当时还没装 PyCharm,抱着个 VSCode 配置半天。至于为啥要装 VSCode,是嫌 Visual Studio 2019 太过臃肿,想用轻量级的 VSCode 替代写 C,然后失败了 🤣)
继续挖坑 🤣,首先果断放弃 Java,然后:
- 计算机系统基础:本土 CSAPP 🤣,二倍速看网课爽啊
- 数据结构(第 2 版):本土数据结构与算法分析 C 语言描述 🤣,主要是看图的部分
- C++ Primer:砖头
- Python 学习手册:两块砖头
- 算法竞赛入门到进阶:然后混迹各大 OJ 平台 🤣
- 概率导论:我当初为啥要看这个 🤣
- 白话机器学习的数学:机器学习入门
- Python 数据科学手册:看了一点就要开学了
中途表姐推荐了燃烧吧!天才程序员 😎,看的挺爽
期间头太铁,未带反甲,只得去商店买了魔法药水,常驻于道具栏,于 2021.2.23 起生效
之后会考虑把一些笔记整理为博客(挖坑 🤣)
大一下
软工一
本以为的内容:软件工程与计算
实际的内容 🤣:
- Python
- Java
- 软件工程理论
- 函数式编程
- 计算理论
下面逐一讲解
Script from scratch
讲解前先把 Git / Jupyter Notebook 给装上,上个软工一怎么这么多事啊 🤣
大一上又不讲 Linux,于是强烈建议学习计算机教育中缺失的一课
Python
因为在寒假❄️就已经把 Python 的基础学的差不多了,于是就看下面的两本书:
- 流畅的 Python:看了一半
- Python Cookbook:看了前三章
个人认为 Python 在软工一的教学体系中处于一个比较尴尬的位置 🤣,首先 Python 编程体现在 67 编写的 Programming Tutorial
中,Programming Tutorial
的前几章较为基础,可以在计基 C 语言编程中找到对应。后面几章涵盖了 Composite Data / IO / FP 等主题。由于 Python 简明轻快的风格,这些较为进阶的内容可以在 Python 中轻松实现(甚至直接内置),从而让课堂的内容得到体现。
然而,这对于当时阶段大多数软院学生来说是没有必要的 🤣。大多数 Python 的上机练习在 Java 中都重现了。另外最重要的一点是,Python 的上机练习极其依赖于 IO 流的具体细节,很多时候在命令行输出相同的内容,其 IO 流却完全不同。于是就过不了用例 🤣。这便是 Python 的高度抽象带来的弊端,在不熟悉内部具体实现的前提上,想要正确的 debug 难度很大。
另外吐槽一点,FP 讲了,Python 也用了,为啥上机考试不考啊 🤣
SICP 警告
Java
从零开始的 Java 学习之旅:
- Head First Java(第二版 · 中文版):指定教材,适合光速入门
- Java 核心技术 · 卷 I(原书第 11 版): 基础知识:砖头,Swing 没看
- Java 核心技术 · 卷 II(原书第 11 版): 高级特性:另一块砖头,只看了流和 IO
- Java 编程思想(第 4 版):这本是考试周看的,发现 67 的课件的许多内容都是这本书上的,经典 🤣
- 深入理解 Java 虚拟机(第 3 版): JVM 高级特性与最佳实践
还没来及看的:
- On Java 8:Thinking in Java 续作
- Java 8 实战:Core Java 中关于流和函数式接口讲的不太清晰,听说这本不错
- Java 并发编程实战
据说 Java 是 NJUSE 的主力语言,所以 Java 占了软工一很大一个篇幅,包括大作业的部分。
来说说朋导写的图灵机大作业,说到图灵机就要说到计算理论,但是大作业与此无关 🤣。做完两个阶段大概需要 10h,其中一半时间都是在 debug,开始的时候测试用例有一些小 bug 🤣,后来都做了处理。总体看来比去年的 JVM 大作业简单了不少(复杂度不是一个量级 🤣),个人感觉图灵机大作业的难点设置有些奇怪 🤣,就是那个诡异的 snapshot。
悄悄说一句,67 还讲了实现模式里的内容
软件工程理论
副院长上了一次课就不见了 🤣
这是我参考的书籍:面向对象是怎样工作的(第 2 版)
函数式编程
67 曾经在课上推荐了 The Little Schemer - 4th Edition,我迅速就 影印 了一本,感概我终于能看懂英文原版书籍了。这本**儿童程序入门读物** 🤣 都讲了什么呢:
- 定义的递归(S-expression)
- 过程的递归(树形、非树形、多重化、可计算性)
- 数据结构(set / pair)
- Currying
- Partial function
- Collector
- Continuation-passing style
- Applicative-order Y Combinator
- Interpreter
- ……
其实 67 能讲函数式编程,还参考了计算机程序的构造和解释的内容,着实让我惊喜 🤣,于是我就翻出了尘封已久的 SICP,摸索着去配置 VSCode + Scheme 的环境,后来嫌麻烦直接装了一个 Racket 的 IDE,开始刷 SICP Scheme Version 的习题,大概做完了前两章。
后来听说了 Scheme 不是纯的 FP,于是去搞 Haskell 🤣,配置了 Haskell Stack,Haskell 趣学指南看了一半,放出一部分笔记给博客做测试。
计算理论
说到函数式编程,就不得不提 lambda 演算,参考的资源如下:
https://github.com/txyyss/Lambda-Calculus/releases
然而我 PRED 都规约不出来 🤣
说到 lambda 演算,又不得不提计算理论,这是我参考的书:计算理论导引
然后成功把整个英语小组拉上贼船 🤣
后来头铁搞了本研究生教材计算模型导引,发现并不适合自学 🤣
离散 🤣
软工理论老研究者、龙书译者 vs. 中国十佳优秀博士
上了一节课果断投奔另一个班 🤣
私以为教材用上面提到的离散数学教程已经足够了,细分来讲的话:
-
数理逻辑:Logic in Computer Science,这一本介绍了数理逻辑究竟有啥用
-
集合论:集合论,直接引用副标题,对无穷概念的探索
-
图论:图论导引,这本还没来得及看 🤣,信计的教材是 Graph Theory
-
群论:Visual Group Theory,Dr. Wei 倾情推荐 🤣,另外这本小册子近世代数基础也不错
什么,离散数学结构,那书的证明能看吗 🤣
数据结构 & 算法 & 设计模式
军理课上看网课数据结构,就是之前数据结构(第 2 版)的 MOOC,还有配套 OJ,发现自己写 C 真烂 🤣
算法的话,既然学了 Java,那当然得看红宝书了
其实软工一学的面向对象设计并不深,自知无力看 GoF 🤣,于是用图解设计模式作为替代
微积分 II
学到曲线积分和曲面积分突然就感觉很爽 🤣,因为发现有外微分:浅谈外微分形式
英语
畅谈计算理论 & 摸鱼 🤣
随便看看 🤣
知乎
理论物理的几何解剖讲座
【双语字幕】【理论物理的几何解剖讲座】【FAU】导论 / 命题与谓词逻辑 01 - Frederic Schuller
【双语字幕】【理论物理的几何解剖讲座】【FAU】集合论公理化 02 - Frederic Schuller
【双语字幕】【理论物理的几何解剖讲座】【FAU】集合的分类 03 - Frederic Schuller
12 枚硬币称量问题
算法设计指南中的面试题 🤣
彷徨い ❤️
单手里 FD 🤣
颠覆认知的进化!全球首位达成 Cytus-FREEDOM D ↓ VE(HARD)(里 FD)- 单手 MILLION MASTER!!!
散户 vs. 华尔街 🤣
太燃了!散户 vs 华尔街世纪大战,一夜 8 次熔断,拔网线、禁止交易都用上了!
考试周破防
两本书
刘新宇:我只是想打开那些黑盒子,告诉人们里面有什么
听书人
主阵地从小破站转到了喜马拉雅 🤣
听了些名著和悬疑小说,时间算下来还挺长 🤣
暑期学校
Linux
教材硬是把 Linux 上成了文科,PPT 也是照搬书本,于是翘课 🤣,自学鸟哥的 Linux 私房菜 基础学习篇
NLP
不错哦 🤣,快去看这些书:
道阻且长,数学菜鸡的我还是放弃吧 🤣
开坑 🤣
范畴论
Category Theory for Programmers
程序设计语言
- 程序设计语言原理:这本不太行 🤣
- 程序设计语言 实践之路
- 软件基础
软件分析
现在才知道朋导感兴趣的软件分析是什么 🤣