avatar
Alex Sun
SJTU 信息工程 22级本科

最新编辑:2025.3.3

Hallo~ 我是一名来自上海交通大学22级的本科生,专业是信息工程(电子系),欢迎来参观我的博客!

这个博客空间,主要是记录我学习计算机相关的csdiy open source courses和校内课程的地方,以及我从本科硬件尝试转码的心路历程,也是希望能够通过在此发布自己的学习&Coding笔记,帮助到更多想要学习CS的人!

也欢迎来关注我的Github! 我大多学过的课程项目仓库都在上面!

个人篇

兴趣爱好

  • 足球(上港队迷,奥斯卡人迷)
  • 台球 斯诺克(塞大师yyds!)
  • 骑公路车(最近骑得少了 要复健了)
  • 美剧

最近虽然比较忙,但是在努力刷跑。大二的时候还能跑10km呢,荒废了好久该复健了!

个人志向/规划

我本科属于电子系,本专业的课学的都是硬件相关。我决定转码最重要的原因是兴趣所在,第二点也确实是硬件太难学🤣,本科那些课真的感觉学不到什么东西。在Coding的时候,尤其是做一些底层的系统编程的时候,我在抽象的代码中能够有种很真实的触感,能够真的靠自己的头脑,突破各种难题bug,build起来一些能够work的东西的感觉,真的不是什么别的东西可以比的。

就目前来看,我现在每天自己学的都是我真心感兴趣的东西。虽然从硬件转码很困难,既要兼顾本专业的课,又要自学CS,但是一定要坚持下去,把计算机基础打打牢,每天提升一点Coding能力!

然后就是坚持先在国内找实习,积攒工作经验,同时也是为了多试错,找到自己真正想要做的事业。

从长远来看,我的规划应该还是会出国读研,然后争取一边念书一边实习,毕业后能找到工作在当地留下来。上学期我在加拿大交换了一个学期,感觉我还是挺喜欢北美的。但是谁知道呢?以后会去哪里还不一定呢,保持未知也挺好的!

学习篇

我学过的…(安利优质课程篇)

CS61B是一门极好的数据结构入门课!语言是java。遗憾的是我没有完整学完。我完成了所有java语法和data structure部分lectures的学习,即lecture1-25(前9周),以及写完了coding作业部分的lab 1- 8和project 0, 1。这门课的精华其实是project2手搓gitlet,希望以后有机会把这个project写完。

这是我的计算机系统入门课,就是这门课让我爱上了系统编程!这门课的特点就是lecture notes写的非常简明扼要,虽然没有课堂videos可以看,只要你有一定的体系结构基础(学过一点计组或嵌入式),notes会看得很舒适!

课程的内容重点讲的都是计算机系统中(我认为)最有趣的部分:计算机的内存分配,操作系统(入门),多线程,还有一点网络相关。

这是一门典型的动手实操编码占比极大的一门课!lab和project相当的多,知识点覆盖范围大。特别是project难度不小。可以说notes看得有多舒适,coding就有多折磨,但是折磨过后就是舒爽。

我目前学完了所有的lecture notes,lab 0-4和project 1-3(其中project3我还在优化的过程中,怎么写个缓存加速都这么难啊,菜菜😢),后续空下来的话我计划把最后一个project5 kvstore写完。同时我也计划将project 1-3的coding复盘笔记发布于此。

这是我在UBC交换的时候选修的操作系统课。这门课要在一个原始的操作系统OS/161中实现各种组件,系统调用。其中最后三个Assignment一个比一个重量级,详尽可以看我的博客,其中Assignment6 虚拟内存的Coding复盘我到现在还在整理的过程中,后续也会发布。这门课的学习笔记我也已经完整发布在博客上了。

这是我刚刚完结(就差checkpoint7了)的一门计算机网络课。8个Checkpoint一步步用C++循序渐进地搭建一个能够正常工作的TCP/IP协议栈。其中整个lab是一个非常优秀的cpp code base,我后续计划发布几篇深入CS144源码的文章来梳理一些你光写lab无法窥探到的代码逻辑,更好地理解你搭建的TCP/IP协议栈的工作原理。

  • 其他

其他我还学过NTU C++ Programming NotesSTL Tutorial,UBC ELEC331(Computer Networking)……,详尽都可以看我的博客。

正在推进的…

我这学期选修了交大软院的ICS课程,想要再更系统地学一下Computer Systems,以及拜读一下大名鼎鼎的CSAPP。选这门课完全没什么功利的原因,就是对计算机底层的东西感兴趣。我会在博客上同步更新我的课程笔记和Lab的Coding复盘笔记。

  • LeetCode

可以看我的博客,我目前的安排是每天CodeTop上刷两题,从面试出现频度从高到低刷,而且是精刷。每天2题都要花我大量的时间,毕竟刚开始刷题太菜了😢

列一个当前的to do list吧(不包含学校的课):

  1. 整理完OS/161 Virtual Memory Assignment,深入解析OS/161源码
  2. 深入解析CS144源码
  3. 每日两题Leetcode
  4. 申请GSoC开源项目

未来计划

之所以现在正在推进的学习计划比较少,因为除了前面CPEN331,CS144,包括CSCI0300还有收尾工作要做,而且还有我信工本专业的专业课要上之外,我目前的重心放在了刷题背八股找第一份实习上,因此我后续应该也会在此博客上同步更新我的面试受拷打记录复盘,以及针对面试做的各种准备和学习。

当然,不管找不找得到实习,后续csdiy肯定还是要继续推进新的课程的(只不过可能要等到暑假甚至下学期了),我目前计划想要新学的课程list:

这门课是教modern cpp的,内容有限应该很快可以学完。目前我几乎完全不会写modern cpp,如果面试受拷打可能要提前来补这块。

这是我早就想学的大名鼎鼎的数据库入门课,但是因为他的前置课程是CSAPP,所以我打算在学完这学期的ICS之后再启动。学完了可以作为又一个优质的C++项目。