MCPcopy Index your code
hub / github.com/AndyBRoswell/cs-first-aid

github.com/AndyBRoswell/cs-first-aid @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
19 symbols 162 edges 128 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CS 自救指南 CS First Aid: A Vital Guide for CSE Students

最后更新:2025/05/17

主要目标人群: - (将)在中国内地就读计算机类专业的,有或无留学意向 - (准备)自学计算机的人员

计算机类专业包括但不限于:计算机科学与技术、计算机科学与工程、软件工程、网络工程、信息安全、网络安全、网络空间安全、智能科学与技术、人工智能,等等。 - 大数据方向的专业,如 “数据科学与大数据技术” 等,除了划归计算机学院之下,一些学校也可能将其归入数学学院或商学院等。不同学院开设的此类专业代表发展方向的不同。 - 有学校的计算机类专业颁发文学学位(如:文学学士)而非理学或工学学位,这代表该计算机类专业属于与文科的交叉专业,需要修读较多的文科课程。 - 信息管理与信息系统、商业分析等专业,虽可能含有较多的计算机类课程,但通常不认为属于计算机类专业。 - “信息与计算科学” 是数学类专业。 - 如果你无法决定方向,请选软件工程。虽然一些学校的软工方向授课质量不够高,但这一条启发式经验适用于大多数情况。 - 与大数据、人工智能、图形图像等有关的专业,对数学的要求往往高得多。信息安全等安全方向的专业,由于涉及密码学(信安等专业必修)等学科,也对数学提出了相当的要求。另一方面,软件工程对数学能力的要求相对较低。 - 近年出现了一些 “披皮” 的专业,例如 “智能制造” 实为机械工程,“智能建造” 实则土木工程。

公告

2026/04/03

本《自救指南》并未停更。由于作者身体原因,2025 年以来未及时依照就业市场变化继续修订。随着作者的恢复,修订现已继续,不久将有重大更新发布。

拟进行的部分修订: - 降低数学难度 - 同步参考资料(书籍、文档等)的最新版次 - 引入新课程与新参考资料 - 考虑当下就业情况,本项目将全面 ECE/EECS 化 - 新增数学与 ECE/EECS 选修课 - 添加参考学习路线 - 按读者水平为课程内容分层 - 新增近期积累的大量实用建议 - 按章节添加 FAQ - 更改格式,增强可读性

新版预览: - main: - ⭐https://cs-first-aid.pages.dev/ - https://cs-first-aid.netlify.app/ - dev: - ⭐https://cs-first-aid-dev.pages.dev/

前言 在那内卷时代,没有置身于事外

本章最后更新于:2024/08/29

相信许多人都有着高考失利未能进入理想大学的遗憾,也深知自己在大学里能够获得的资源远远少于本校和名校的各路学霸。即便侥幸进入名校,也总是很容易因为各种各样的不可抗力,走上许多弯路。

无数同学如履薄冰、步步为营,生怕在某个将自己导向不同世界线的关口做出令自己后悔一世的选择;好不容易下了决定赌一把,却只有在很久之后才有机会判断这一步棋是否走对;终于到了能发现走错了的时候,又早已无法选择退路。

行业乃至社会的容错率越来越低: - 学历歧视 - 一本、211/985、23 所、C9、还有所谓的 C7,甚至有只收清北、计算所、自动化所的。 - 年龄危机 - 我上初中的时候就算有年龄限制也还是普遍要求不超过 45 岁左右,当时除了这个词以外还有另一种流行的说法叫做 “中年危机”。上大学的时候就看到很多卡 35 岁的了。读研了以后多次看到卡 25 岁(可在各社交媒体搜索)的了。 - 往往只能找到无偿加班严重、全年无休的岗位 - 缺乏具有技术含量的实战经验,找第一份实习都困难,更别说日后的工作 - 大规模缩招、停招、裁员,就业卷情进一步恶化 - ……

卷,也要讲究方法。作为在 “大内卷时代” 摸爬滚打的一员,私以为:有必要将自己踩过的坑以及总结出来的经验与方法提供给后来者,帮助各位减少那些纯粹给自己的发展之路设下绊脚石且浪费社会资源的无效内卷,尽可能利用好最珍贵的在校时光;能运用自己的真才实学获得理想的职位并完成层次更高的任务,比如挤掉那些身居要职却尸位素餐的,或者为本行业乃至其它行业作出重大贡献,自然再好不过;即便没能卷赢一众卷王,也至少能减少光阴的浪费,并为日后的自己积累更多的选择筹码。俗语有云 “一步错,步步错” ,希望这份《自救指南》也能给到大家一些及时止损的机会,充分降低做错选择并继续错下去的概率。虽说 “普通人的人生,怎么选都是错的”,但至少也可以错得不那么离谱。

本《自救指南》长期更新。也欢迎大家批评指正。

注意

目的

撰写本《自救指南》的主要目的,是为了让大家真正学到有用的知识与技能。考研等各类考试并不是本《指南》主要针对的场景。

【📢劝退!劝退!】

本章最后更新于:2024/08/17

有意向转入计算机类专业的同学(本科就读期间转专业、跨专业转学境外本科、重读计算机类本科、跨专业考研、跨专业申请境外高校的研究生等,均计入此类情形),一定要三思而后行。选择专业事关前途大业,万万不要头脑一热就跟着大家一窝蜂挤进来! - ⚠️本行业的卷情进展已经极其迅速,而且仍在猛烈加速,完全没有看到任何减缓趋势,就业形势相当危重(都不可以用“很差”之类的词来描述)! - ⚠️Senior(高级,一般不少于 5 年工作经验)受影响相对小一些。但 Junior(初级,一般 0 到 2 年工作经验)以及新毕业生(new grad,NG)的就业率早已惨不忍睹。 - 即便是顶校科班毕业+多段大厂实习(甚至还有对知名开源项目的贡献和/或高分期刊/顶会的科研成果)的也不能幸免! 大把顶校学生 / 毕业生连那些钱少事多烂简历的外包也进不去。 - ⚠️中🇨🇳、美🇺🇸、加🇨🇦等 IT 岗位较多的地区已经无一例外出现了非常大规模的招聘冻结(hiring freeze),并且依然在蔓延。预计未来相当长的时间内都不会有好转。 - ⚠️欧🇪🇺🇬🇧🇳🇴🇮🇸🇱🇮🇨🇭、日🇯🇵、澳🇦🇺、新🇳🇿🇸🇬、港🇭🇰等地区 IT 岗位相比中美等地相对较少,难以承载疯狂涌入的求职者。这些地区的就业市场亦受到经济不景气的冲击,求职难度陡然上升。比如荷兰🇳🇱,2022 年理工类毕业生找工作号称 “有手就行”(当然薪资未必好看);然而,自从 2022 秋冬(或 2023 年伊始),一下子全面崩盘千里冰封式招聘冻结;裁拿了永久合同的;越来越多具有资质却仍旧拒绝担保 Kennismigrant(KM)工作签证的;白嫖 Zoekjaar(search year)签证的;2500 欧一个月的前端岗位至少 100 多号人抢的…… - ⚠️人工智能(AI)的落地,并非就业的风口: - 相关岗位要求通常非常高,比如:博士学位 + 顶刊顶会(而且完全有可能同时要求业界的实习 / 工作经验)。 - 虽然 AI 在自动驾驶等领域已经遇到瓶颈,但目前 AI 已经能够取代极其多的岗位。翻译、客服、美术等行业为重灾区;本行业也不例外:无数初级程序员正在因为 AI 而失业。典例:GitHub Copilot 代码补全的正确率虽不特别高,但完全可以应付各种各样的课程作业、个人的课外软件项目,乃至工作任务中的相对简单的部分。总之,AI 创造的岗位数量远远少于消灭的岗位数量。 - 翻到了18年的校招 我破大防了 - 请在确认自己具有极大的兴趣的条件下,再进入本专业。编程不是一件容易的事情,而且对你的耐心提出了相当高的要求。如果你只是看重高薪🤑💰而不是发自内心热爱❤️,那么你迟早会发现自己在这条路上根本走不下去。 - 事实上,目前只有中🇨🇳、美🇺🇸的 IT 岗位的平均 / 中位薪资远远甩开其它行业。其它国家和地区的 IT 岗位,薪资水平不会比多数行业高出太多。由于经济下行、维持高息,以及本行业的各个泡沫相继破裂,许多 IT 岗位的工资必将接连跳水,招聘数量持续俯冲。 - ⚠️⚠️严重警告!由于信息传播的滞后性,目前每年冲入计算机类专业的本科生的数量仍然是天文数字,并且几何级数增长的趋势难以刹停全球的就业市场根本无法消化天量的毕业生!不要再盲目攻读计算机类专业了!按照目前的卷情,别说总体工资被冲到低于其它行业了,整个行业能否在未来多年仅仅将现有的 Junior 大致消化完毕都是个大问题!别问能不能勉强糊口了,再这么不顾一切地冲,直接就是铁定要一直都一点饭也没得吃了!

第零章 提升效率的工具与思想

本章最后更新于:2025/05/10

计算机

多花一点必要的钱,换来随后若干年的效率提升,是一本万利的。

如果你不想: - 很多网页或程序不能同时开着,否则会卡,干起活儿来(尤其是需要同时参考、核对、整理大量资料的场景)巨麻烦。 - 卡顿到作业都不好做。

那么,还犹豫什么呢?想尽办法搞到一台能用的机子吧。

选机提示: - 假如想给老机器升级: - 首选部件是内存或 SSD。这对用户体验的提升是非常明显的。如果无法添加内存或硬盘,那么只能购入新机。 - 升级 CPU 和 GPU 的优先级位于增加内存与硬盘容量之后。除非硬性要求,例如:需要二级地址转换(SLAT)运行高版本的虚拟机监视程序(VMM,如 Hyper-V、VMWare Workstation、VirtualBox),或需要 Tensor Core 加速推理与训练。 - 不玩单机游戏,三四千来块(预算多一点的可以放宽到不低于五千)的机器通常也够做开发了。但是, - 内存和硬盘的容量一定要管够。 - 内存容量: - 不推荐:不少于 16 GB。 - 最低:不少于 32 GB。 - 次低:不少于 64 GB。 - 推荐:不少于 128 GB。 - 硬盘容量: - 不推荐:容量不少于 500 GB。 - 最低:容量不少于 1 TB。 - 次低:容量不少于 2 TB。 - 推荐:容量不少于 4-8 TB。 - 大量软件的体积都在不断膨胀。在 Windows 下,有的软件还会强制安装到 C 盘,或将自己产生的数据记录到 C 盘(且无法更改这些目录)。为使 C 盘空间尽量大,避免对硬盘划分过多的分区;只建立单个分区最好。 - 需要在本地运行机器学习训练任务的,配置需要高不少(CPU、显卡、内存、硬盘)。 - 不优先选择采用低压 U 的笔记本。除非你确实十分在意轻薄、续航、发热。 - 近年来,低压 CPU 提升不少,日常的轻负载应用的性能表现往往不错,且同时能维持相对低的功耗。 - 高分辨率屏幕(如:4K)是有用的:在小字体的条件下,高分屏能够显示更清晰的文字。这意味着能够同时在同一屏显示更多的内容,对效率有益。 - 一屏同时显示 2 页双列排版的论文的 PDF。 - 一屏同时显示多个文件乃至多个项目的代码。

如果经济实在困难,考虑常去学校机房或电子阅览室。

这里特别要说一下,有的同学的家里明明是有经济能力的,但是不知道为什么,家长就是不肯让子女用稍微贵一点的机子: - 我看到过一些读机械、建筑之类的专业的学生的家长,又不是没钱,却非得逼着子女卡死两三千的预算。这样的后果就是作业都难以做完,因为要用到的行业软件相当吃配置。总是不交作业或不按要求完成作业会是什么结局,不用我多说了吧。 - 有的家长呢,买奢侈品随随便便四五万就出手了,但允许子女买台几千的 PC 却万般不愿意。真不知道说什么好。 - 就算子女自己攒钱买机器,被家长发现了还要挨一顿臭骂,也都算轻的。

已知在这样的经济开销无法太高的条件下,也希望大家能够集思广益,一同想想办法,摸索出最适合自己的方法来,并分享给大家,共同进步。

HARDWARE IS CHEAP. PROGRAMMERS ARE EXPENSIVE.

为了进一步提升生产力,可以考虑: - 选用大屏的笔记本,不要怕重(背着锻炼身体)。屏幕够大,也是生产力;硕大的笔记本,散热通常更好,有机会更多地减少降频程度、提升性能,也是提升生产力。有条件的同学使用台式机亦可,并搭配大尺寸的显示器。但要注意配置 UPS(不间断电源供应系统),防止宿舍停电导致丢失数据。宿舍经常停电在一些大学并不少见。 - 多个屏幕。 - 购买外接显示器作为第二屏。如果不搞设计之类的工作,没必要买很贵的。 - 只要你的住处还有空间,完全可以考虑放置多于两个屏幕。 - 免费软件 Splashtop Wired XDisplay 可以将 Android 平板作为第二屏,但会给 PC 带来额外的 CPU 占用率。 - 经济能力足够的同学,可考虑使用两台计算机:一台高性能,可以是又厚又重的游戏本(砖头本)或台式机,一般放在住处(宿舍 / 家 / 出租屋);另一台主打轻薄,带去课室或者其它地方,方便在上课或出差等场合做笔记或写代码。

让学习工作生活更方便的计算机配件

  • USB 集线器(分线器),即 USB Hub。扩展 USB 接口数量,使得可以同时连接多个 U 盘、移动硬盘、手机、平板电脑、读卡器等设备。建议配合 USB 延长线一同使用。
  • 置物架。充分利用 z 轴空间。
  • 排插。一定要买插座数量多的,省得插各类充电器之类的玩意儿的时候拔来拔去。
  • 数位板。打草稿、写材料、画作业的各种乱七八糟的图用。只要自己不是专业画画的,也没必要买太贵的板,不就写点作业和草稿嘛。
  • 存储,存储,存储!!!!大学生是典型的经济能力相对不足却又容易因为遭遇意外而导致损失极其惨重的群体:本身就差不多是零资产,一有闪失分分钟等效于疯狂累积负资产,而且这种累积根本不受限。一定要把金钱尽量花费在能够令自己避免概率不能忽略的极其重大损失的物品上。
  • 内置存储,尽量必选 SSD,防震;可选 HDD,相同价格下容量大。
  • 外置存储,SSD 或 HDD 均可。
  • 尽量购买大容量的产品
    • 大容量的产品的容量价格比往往更高。
    • 目前,SSD 的容量价格比在 2-4 TB 左右达到峰值,机械硬盘(HDD)则不低于 18 TB。
    • 虽然容量更高的 SSD 或 HDD 的容量价格比可能降低,但相当于能够使用更小的物理体积和更少的设备数量(也占用更少的接口)获得相同容量,何乐而不为?
    • 考虑到最近 SSD 再次集体涨价,想添置新 SSD 的,建议继续观望。
    • 不必要购买连续(大文件)读写速率特别高的 SSD,一般都用不上:2000 MB/s 左右的峰值(缓内)读写速率已经绰绰有余。有较高要求的,4000 MB/s 应该也足够了。
    • 不要购买使用 QLC 闪存颗粒的 SSD(少量写入的读取密集型使用场景除外)。不要购买杂牌的 SSD。不要在不正规的店铺购入。
    • 对存放重要数据的存储设备(换言之,不用于存储重要数据,专门买来折腾 / 玩儿玩儿的,随便)。
  • 根据本人数年来对存储市场的考察,U 盘基本不值得购买。
    • 移动 SSD、U 盘、TF 卡使用的闪存颗粒 / 移动硬盘使用的盘片等部件,通常比相同价位的内置硬盘有明显缩水,使得读写速率降低、寿命缩短。
    • 除非实在有特殊要求,比如存储设备占用体积极小、保修的高度省心。
    • 允许体积大一些的条件下,可购买内置的 M.2 2230 / 2242 SSD,然后使用硬盘盒转接作为移动 SSD,并通过 USB 接口连接到 PC。即便读写速率受限,也比 U 盘快得多。
  • 云盘:
  • Google Drive:单人免费 15 GB。
  • OneDrive:单人免费 5 GB。
    • 有用户反映:OneDrive 的同步机制不是高度可靠,导致自己的数据丢失。
    • 最近 3 年以来,笔者分别目睹了 OneDrive 未同步重命名操作 3 次及意外删除文档 2 次。好在有 Google Drive 的副本,否则丢失文件势必造成损失。
    • 订阅 Office 365 个人版,可获得 1 TB 的存储空间。相比其它云盘,此方案具有较高的容量价格比。
    • 使用 edu 邮箱虽然也能开通 1 TB 的存储空间,但所在高校或科研院所的管理员能够查看并修改存储内容
    • 不要去其它渠道购买所谓的 5 TB(或其它大容量)OneDrive 帐号。
    • 注意事项的详述
  • Mega 网盘。
  • Dropbox:单人免费 20 GB。
  • 百度网盘:5 GB + 1024 GB。
    • 有用户反映:百度网盘的 “秒传” 功能可能 “撞哈希”,导致误判不同文件为相同文件,进而丢失数据。不过,根据近年来的观察,此问题应该已解决。
  • 微云:单人免费 10 GB。
  • 支架及类似物。将计算机或显示器垫高,防止颈椎问题。

电子书

  • 方便做笔记,增加、修改、删除、查找内容及笔记的速率极大提升。
  • 节省住处的空间。
  • 易于携带。
  • 易于备份。

有条件的情况下,建议对电子书做 OCR(光学字符识别)。不过,各大软件的 OCR 功能一般都是收费的。

有的教材难以买到电子版,可以先买纸质版,然后在网上找店家扫描成电子版并识别文字(可将教材在下单后直接寄给店家进行扫描)。

如需在 PDF 上做笔记: - 推荐 Drawboard PDF(可从 Microsoft Store 获取)。有免费和收费的版本,但免费版本已经够用。 - 选用这个软件的一个重要原因是:其它很多软件有一个严重问题——如果增加了笔记又删除,保存的 PDF 文件的大小不会减小。Drawboard PDF 虽然默认情况下亦如此,但可以通过在保存 / 另存为时调节选项来压缩其大小。 - ABBYY FineReader PDF 在保存时会自动压缩到尽量小,但该软件在未输入序列号时只能保存少量页面(貌似 100 页?)。笔者购买了这个软件的长期授权,当时花了一大笔 RMB($210,折合¥1???.??)。但因为需要扫描的书非常多,相比之下,这笔一次性的购买很值得,即便无法升级大版本。不过,现在该软件只支持订阅制,不能再通过一次性付款买到永久授权了。

然而,PDF 并不是被设计为方便进行编辑的格式。因而对 PDF 的编辑并不如一些常见格式(如 DOCX、Markdown)来得方便。

备份

做好多重备份(本地 + 网盘、乃至异地备份),特别是学习资料和其它重要数据。

免费的云服务

主流云厂商提供了一些长期免费(always free)的服务。 - Azure - AWS - GCP - Oracle Cloud - IBM Cloud - DigitalOcean

其它软件

Mathpix Snipping Tool

可以识别数学公式,准确率较高。成功注册帐户后,每月可以免费识别 50 条。邀请其它用户成功注册后,自己和该用户都可以再获得 50 条免费识别公式的机会。

一些重要思想

绝对不要报读培训班!绝对不要购买收费课程!

  • 你应当具备足够的能力和恒心(其实也可以算是能力的一种,不是吗?)依据包括本《自救指南》在内的高质量自学指导进行自学,并至少达到一个计算机名牌大学科班出身的毕业生的水平。如果你必须通过收费课程 / 培训班才能进行学习,那么,很遗憾,你不适合这个行业。
  • 培训班与收费课程质量根本无法保证,且收费不菲;有的甚至是骗子。
  • 价格动辄上千的网课,其往往是一些简单的视频教程或毫无挑战性的练习题。
    • Google first!请善用搜索引擎。
    • 1000 多人民币,足够按照本《自救指南》购买大量高质量的书籍📚。
    • 很多时候,往往是买了一门课以后才能发现,并不是全部课程内容都解锁了:如果想继续学习,依然需要不断支付(更高昂的)费用。
  • 至少 2 万起步(且不包吃住)的培训班,往往也没有多少干货,纯粹割韭菜。
    • 2 万多块人民币,能做的事情非常多,包括但不限于下列之一:
    • 一台高配(甚至顶配)计算机🖥️💻,让你在本地训练机器学习模型、执行大型编译任务、多开虚拟机、运行大量容器等等都游刃有余。你还可以同时购买很多硬盘和其它零配件,或者很多收费软件,或者足够长的云主机使用期限。
    • 如果你是游戏🎮🕹️发烧友,PS / Xbox / Switch 外加一大堆游戏,不香吗?这样买完恐怕还能剩一大笔。又或者,你甚至还可以买到相当不错的赛车模拟器🏁🏎️ / 飞行模拟器✈️。
    • 你是二次元?你想想够买多少光碟💿(数字版也成)或者手办等周边。有的还是限量版。某知名歌姬(虽然也不是只出二次元的歌)的 Fan Club 年会费在 2023 年涨了一次以后也就 4000 日元。
    • 想做音乐?音频接口(只有你一个人做的话,几乎没必要买好几千甚至是过万的,音质没多大提升,主要是接口多很多等对个人而言不紧要的提升)+监听耳机🎧(耳机这个行业非常暴利,价格主要靠吹,贵的也未必好,尤其是所谓的 Hi-Fi 耳机),零头都花不完。监听音箱都能买了(当然,想买个更好的,也许得接着加💰)。麦克🎙️(如果你经常在户外录音,也可以是录音笔,买个旗舰产品轻轻松松)也不在话下。你甚至可以买到调音台。也可以选择买个很不错的电子琴 / 合成器🎹。
    • 可以买一辆二手车🚗了。虽然很多人都有驾照🪪,但事实上绝大多人 / 家庭都是没有车的。如果你骑摩托车🏍️,全套装备应该能够搞定了。还没驾照的话,都够报 VIP 班了,一对一的那种(发达国家倒不一定)。
    • 更严重的是,培训班通常会通过夸大乃至作假等方式要求你对简历进行包装。
    • 项目严重同质化。点名:××点评、××商城、××外卖、××管理系统。它们不但很难使你的简历具有亮点,有时甚至是污点。一个合格的计算机系毕业生必须能够在许多场景中挖掘需求。你需要自己思考可以做什么项目。
    • 面试时,若对方根据你的简历所写的项目询问整体思路与实现细节等方面的问题,则十分容易露馅。按现在的找工行情,指不定还进黑。
    • 有些更离谱的,一期超过五六万。
  • 非科班出身的简历极大概率被机器直接过滤,无法进入笔试或面试。培训班于事无补。

如有来自培训机构的一些书籍,价格比较正常的(比如几十块),可以购买用于参考,不建议用于主修。

用钱换时间

对于能够提升学习效率的物件,确实有需要就不要犹豫,尽快买。不要老是等什么 618、双十一、双十二之类的活动。 - 现在很多商品,特别是数码产品,在这些活动之前经常会悄咪咪涨价,活动一开始再降下来,制造大力度打折的假象,进而使得实际上在这些购物节期间价格并不便宜多少。 - 软件上想省钱的,可以多找找(开源)免费的软件。 - 对于一门课,仅学习一本教材但需要多本参考书或其它参考资料是很常见的。多数时候,没有必要省去这些买参考资料的钱,即便这些资料只被自己偶然查阅。

不要去抢那些零碎的优惠。比如: - 学校附近某个奶茶店开张,为了几块十来块的优惠去排队一个下午。真的很没有必要。况且,奶茶喝多了也对身体不好。 - 笔者做志愿活动期间(18Q4),看到过有商家在某小区门口搞活动,奖品无非是粽子或者其它一些简单的吃的,或者一二十块这种程度的返现,结果那小区里外好多人(特别是老人家)就在那里挤着来参加,折腾了一上午。真替他们觉得累。 - “瓜分XX亿”?收皮啦你!

经济条件不错的,不建议勤工俭学。 - 与志愿活动不同。勤工俭学会有少量的工资(如,每月 400 块),因此不可以算作志愿活动。 - 实在有闲的情况除外(按照现在的卷情,已经几乎不可能,除非是有条件继承资产与人脉的各种二代)。

开通自己学校或科研机构的 edu 邮箱

具体方式一般可参见就读单位的官方网站,或询问本单位的相关人员。

许多软件使用教育邮箱注册可享受极大优惠。例如: - Visual Studio Community只有通过教育邮箱才可以使用,并且免费。另外两个版本 Professional 和 Enterprise 都是收费的。 - Windows 平台的 VS 主要使用 C# 开发,GUI 框架为 WPF(也有一部分 WinForms 或老旧的 C++ GUI 部件,猜测使用了 MFC)。大量实践表明,在 Windows 系统中,其运行速度显著快于 JetBrains 系列 IDE(Java / Kotlin + Swing)。美中不足的是,Visual Studio 尚不支持在 Linux 系统中运行。 - SQL Server 已经可以运行在 Linux 上。可能在未来的某一天,我们也会等来 Visual Studio 或 Microsoft Office 的原生 Linux 版本。但我个人感觉概率不大。 - Visual Studio for Mac 已经停止开发,最后一个版本的支持将于 2024 年 8 月 31 日结束。详情 - 请及时升级到 Visual Studio 2022 新版本。因为 VS2022 是 64 位的,允许使用超过 4 GB 的内存,并提升运行于 64 位环境下的性能,有利于顺利打开超大规模的解决方案(solution,VS 里面一个 solution 包含若干个工程或项目,也就是 project,很多 IDE 都只有 project 的概念)。另外,代码补全的改进也获得了较多来自开发者的好评。 - 非教育用户需要付费使用的 JetBrains 全家桶,对教育用户免费,免费,免费(不要再去找破解版了)!! 举例: - CLion:跨平台 C++ IDE,通过 CMake 完成构建自动化(CMake 已成为跨平台构建自动化的事实标准)。 - 2023 年 11 月,CLion Nova 进入早期访问(early access),虽然还有很多 bug,但性能提升明显。 - IntelliJ IDEA:最流行的 Java IDE,并支持 Kotlin、Groovy、Scala 等需要 JVM 的语言,支持使用 Spring 全家桶等知名 Web 框架的开发。 - Rider:跨平台 C# IDE,能够打开 Visual Studio 的 C# 解决方案(sln 文件)。 - PyCharm:广受好评的 Python IDE,支持 Django 等框架。 - WebStorm:相当不错的 Web 开发 IDE,支持 Angular、React、Vue 等主流的前端框架。 - DataGrip:支持操纵众多主流的数据库,包括成熟的关系型数据库和新兴的非关系数据库。 - Fleet(正在公测):有望挑战 Visual Studio Code 的文本编辑器。 - RustRover:新鲜出炉的 Rust IDE。 - Microsoft Office Home & Student

GitHub 学生开发包需要通过教育邮箱注册。

顺带一提,不仅仅是计算机行业的软件,其它领域也有机会充分享受教育优惠。例如: - Sonarworks SoundID Reference:校正监听音箱和监听耳机的频响曲线和延迟。教育优惠的折扣力度经常都在 40% 以上。

千万不要高估自己的记忆力

能记下来的就记下来,特别是那些主要靠记忆的、零散的知识点。 - 有可能因为失眠或者其它各种古怪的身体原因,而使得记忆受影响。 - 又或者,发现自己其实不是很适合这一行,或者兴趣没有预想中的高,进而使得相关的知识不是很好记。 - 还有一个重要理由:许多书的信息密度其实比较低。自己整理笔记,提高信息密度,日后复习查阅会很高效。

记笔记的效率

对于信息密度较低的书,可以开一个新的文档去记笔记。如果书的信息密度比较高,那么应当直接在书上画重点。

如何判断书的信息密度?每个人对信息密度的感觉不同,只能通过多读书来积累自己的直觉。 - 以本人为例,一般而言,数学类书籍的信息密度对本人来说比较高;而许多专业课教材的信息密度较低。 - 也可以尝试语音输入。但本人感觉语音输入的准确率还不够高,本专业的术语较难一次识别成功,导致语音录入的文段需要修订,使得语音输入不一定比通常的打字要快。

但无论采用何种笔记方法,笔记都不应过长。否则,需要考虑自己是否没有使用合适的方法记笔记。

优先使用文字材料学习而不是视频

  • 文字方便查阅,而视频则不然。
  • 养成看文字的习惯,有助于提高阅读速率;同时,由于其高信息密度的特点,学习效率得以提升。
  • 文字材料易于备份,有利于预防来源被撤下导致无法再访问的尴尬境地。
  • 自学者噩梦(UCB将公开课车门焊死)

本《自救指南》提供的教程亦多以文本为主。

不要光学不练

尤其是学习编程语言期间,必须通过做项目来巩固知识,否则很快会遗忘

想不到要做什么项目的,至少还可以: - 每天做一些数学题,微积分、线性代数、概率统计之类的。 - 提前去刷 LeetCode 或 HackerRank,或者到各大学校的 Online Judge(OJ)上做算法题。算法大佬可以刷 Codeforces。 - 在开源站点上找一些具有自己感兴趣的功能的软件,模仿它们的实现。 - 常见开源网站:GitHub、GitLab、BitBucket、SourceForge、Gitee …… - 并不是所有高 Star⭐ 的开源项目都具有良好的代码结构。每个程序员都应当形成最适合自己的一套代码风格。

了解行业,获得积累

你是否有经历过: - 做课设的时候,任课老师没有将需求限定得比较死,甚至直接来个内容不限、自由发挥;或者自己在课下想额外练习一下编程的时候,总是想不到要做些什么功能、使用怎样的技术? - 框架 / 库这么多,不知道怎么选、从哪里开始学。 - 不清楚自己是否只是在拙劣地重复:会不会正在做的东西其实老早就被前人做得更好了? - ……

是的,相信你也猜到了:只是完成课内的要求,是远远不够的。在平日,就需要不断地进行各种各样的积累。不熟悉计算机的同学(比如,因为出身边远地区,经济比较困难;或者因为初中和高中的学业问题而被管得死死的,结果大学之前一直都很少接触计算机)更要对此引起高度重视。方法有很多,这里按照个人经验提出一些较为可行的:

Extension points exported contracts — how you extend this code

Name_Variable (Interface)
(no doc)
src/types/CSL_data.ts
Date_Variable (Interface)
(no doc)
src/types/CSL_data.ts

Core symbols most depended-on inside this repo

canonical_ID
called by 2
src/data/materials/catalog.ts
add
called by 2
src/data/materials/catalog.ts
_cite
called by 2
src/content/docs/bib.ts
import_course_materials
called by 1
astro.config.ts
is_ISBN
called by 1
src/types/CSL_data.ts
randomMessage
called by 1
src/components/greeting.jsx
resolveId
called by 0
astro.config.ts
load
called by 0
astro.config.ts

Shape

Function 17
Interface 2

Languages

TypeScript100%

Modules by API surface

src/data/materials/catalog.ts6 symbols
src/types/CSL_data.ts4 symbols
src/content/docs/bib.ts4 symbols
astro.config.ts3 symbols
src/components/greeting.jsx2 symbols

For agents

$ claude mcp add cs-first-aid \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact