CSBasicKnowledge
"Open Source allows people to build on a solid base of previous knowledge, without some silly hiding."
- Linus Torvalds
欢迎来到这个专注于计算机科学基础知识的仓库。本仓库的目标是补充计算机专业教育中可能缺失的知识点,提供广泛、优质的学习资源。
我们鼓励并期待有缘人加入我们,共同维护和丰富这个仓库。无论是添加新内容,还是改进现有内容,您的贡献都将使这个仓库变得更好。
CS
- CS 自学指南: [zh-cn] [en]
- OI Wiki(ACMer必备): [zh-cn]
- The Missing Semester of Your CS Education: [en] [zh-cn]
- CS免费编程书籍:[Github]
- Crash Course Computer Science(个人觉得值得观看的计算机知识速成科普课程): [Origin_YouTube] [CN_Bilibili] [CN_Source]
- 在有用和没用之间徘徊的速查网站:[zh-cn]
本章的内容是Programming Language,期待大佬补充内容。
gleam
- 函数式编程语言,用于编写可维护和可扩展的并发系统,属于BEAM家族,和Erlang和Elixir等基于Actor的并发模型和持久运行时,擅长低延迟、高并发、网络应用程序。
- 没有图形库不适合GUI程序,也不适合命令行程序。
代码速查表
Program Synthesis & Automated Reasoning
-
相关课程:
-
Satisfiability Modulo Theories:[Paper]
-
PySMT:可与多个SMT求解器进行交互的符号模型检验和约束求解的Python库:[Page]
-
程序修复:[Paper]
-
香蕉空间:
Program Analysis
- 静态分析:
- 动态分析:
- 程序分析工具:
- LLVM:[Book]
CG
- Ray Tracing in One Weekend 系列 [en]
- LearnOpenGL [en] [zh-cn]
- 太极图形课第一季 [Github]
- GAMES 系列课程 [主页]
- CGPC2023 [Bilibili]
- Rendering 渲染相关
本章的内容是Computer System,涵盖sys的各个方面,包括arch/os/storage/db等等,期待大佬补充。
HPC
- 高性能计算学习路线:[Github: zh-cn]
- 高等数值分析(高性能计算,并行计算): 华东师范大学高等数值分析(高性能计算,并行计算)
- 超算习堂:[zh-cn]
- UTAustinX UT.PHP.16.01xLAFF-On Programming for High Performance, 一个基于mpi编程的入门课程,可以作为高性能计算的入门课程,资料完善(视频、文档、字幕都很全),课后作业也很合适。
- 并行计算课程:
- Labs:
- 其他资源:
- Rolf Rabenseifner拓扑算子的一种仿真实现,根据Optimization of Collective Reduction Operations给出的拓扑图完成的不同逻辑拓扑的Allreduce算子。
OpenMPI的安装
更多内容可以查看:https://docs.open-mpi.org/en/v5.0.x/installing-open-mpi/quickstart.html
- OpenMPI的下载及解压: 在OpenMPI官方主页找到合适版本的OpenMPI下载并解压
wget https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.5.tar.gz tar xf openmpi-5.0.5.tar.gz cd openmpi-5.0.5
- 配置安装路径,编译并安装,安装路径自定义
./configure --prefix=/usr/local/openmpi make -j $(nproc) all make install
- 设置环境变量,路径为自己安装的路径
MPI_HOME=/usr/local/openmpi export PATH=$MPI_HOME/bin:$PATH export LD_LIBRARY_PATH=$MPI_HOME/lib:$LD_LIBRARY_PATH export MANPATH=${MPI_HOME}/share/man:$MANPATH
System
-
机器学习系统:设计和实现: [page] [Github: zh-cn]
Security
- ctf-wiki: CTF wiki
- awesome-ctf-resources: A list of Capture The Flag (CTF) frameworks, libraries, resources and software for started/experienced CTF players 🚩
AI这一章节有太多可以津津乐道的内容,期待各位大佬补充。
PyTorch
Installation
根据OS和cuda选择适配的torch版本
https://pytorch.org/get-started/previous-versions/
pip
安装最新版
pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
指定版本(preffered)
创建名为pytorch310的虚拟环境
conda create -n pytorch310 python==3.10
激活环境
conda activate pytorch310
设置清华源,加速安装
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
指定版本安装
pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html
conda
添加清华镜像源
# 若不含有`~/.condarc`,生成它
ls ~/.condarc || conda config --set show_channel_urls yes
# 之后配置镜像源(南科大提供的额外软件包镜像可以加速安装CUDA版Pytorch)
tee ~/.condarc > /dev/null << EOF
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
nvidia: https://mirrors.sustech.edu.cn/anaconda-extra/cloud
envs_dirs:
- your-path/anaconda3/envs # 替换为您的路径(另外,若安装的是miniconda3,请自行替换),不设置此项有可能安装在`~/.conda/envs`中
EOF
安装最新版
conda install pytorch torchvision torchaudio cudatoolkit=10.2
指定版本
conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4 cudatoolkit=10.2
Tutorial
- pytorch examples
- pytorch tutorials
- pytorch模型性能分析和优化: weixin
- pytorch handbook: [Github:zh-cn]
- datawhale/thorough-pytorch: [Github:zh-cn]
- 杂七杂八的收集DL相关的东西: [Github:en]
Framework
- pytorch-lightning: Pretrain, finetune and deploy AI models on multiple GPUs, TPUs with zero code changes.
Visualization
- wandb: 🔥 A tool for visualizing and tracking your machine learning experiments. This repo contains the CLI and Python API.
- PyTorch tensorboard: How to use tensorboard in PyTorch.
- SwanLab: ⚡️SwanLab: track and visualize all the pieces of your machine learning pipeline. 跟踪与可视化你的机器学习全流程
HuggingFace
- 高速下载 huggingface 的超大体积的模型和数据集:
Dataset下载
NLP(Natural language Processing)
- CS224n:Stanford 的 NLP入门课程 [Main Page] [Slides, Notes & Assignments] [Bilibili]
- funNLP NLP民工的乐园: 几乎最全的中文NLP资源库
- zibuyu/research_tao
- sebastianruder/NLP-progress: Github:en | online Tracking Progress in Natural Language Processing
CV(Computer Vision)
- CS231n: Stanford 的 CV 入门课程 [Main Page] [bilibili] [Assignments]
- Awesome-Vision-Attentions: Summary of related papers on visual attention. Related code will be released based on Jittor gradually.
- Transformer-in-Computer-Vision: A paper list of some recent Transformer-based CV works.
- rese1f/Awesome-VQVAE: A collection of resources and papers on Vector Quantized Variational Autoencoder (VQ-VAE) and its application
object detection
- open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark
- facebookresearch/detectron2: Detectron2 is a platform for object detection, segmentation and other visual recognition tasks.
- facebookresearch/detr: End-to-End Object Detection with Transformers
- IDEA-Research/detrex: detrex is a research platform for DETR-based object detection, segmentation, pose estimation and other visual recognition tasks
segmentation
Vision-Language Model
- VLM_survey: Vision-Language Models for Vision Tasks: A Survey
- LLM-in-Vision: Recent LLM-based CV and related works. Welcome to comment/contribute!
Audio & Speech
- Speech-Resources: 语音方向实验室/公司/资源/实习等,欢迎推荐或自荐
- metame-ai/awesome-audio-plaza: Daily tracking of awesome audio papers, including music generation, zero-shot tts, asr, audio generation
- SpeechTasks: This is a list of speech tasks and datasets, which can provide training data for Generative AI, AIGC, AI model training, intelligent speech tool development, and speech applications.
- ai-audio-startups: Community list of startups working with AI in audio and music technology
- speech_rankings: A CSRankings-like index for speech researchers
- INTERSPEECH-2023-Papers: INTERSPEECH 2023 Papers: A complete collection of influential and exciting research papers from the INTERSPEECH 2023 conference.
SSL
- Awesome-Speech-Pretraining: Paper, Code and Statistics for Self-Supervised Learning and Pre-Training on Speech.
- facebookresearch/fairseq: Facebook AI Research Sequence-to-Sequence Toolkit written in Python.
ASR
- kaldi: Kaldi Speech Recognition Toolkit
- next-gen kaldi
- k2-fsa/icefall: The icefall project contains speech-related recipes for various datasets using k2-fsa and lhotse.
- lhotse-speech/lhotse: Tools for handling speech data in machine learning projects.
- openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision
- awesome-whisper: Awesome list for Whisper — an open-source AI-powered speech recognition system developed by OpenAI
Generation
- open-mmlab/Amphion: Amphion (/æmˈfaɪən/) is a toolkit for Audio, Music, and Speech Generation.
- facebookresearch/audiocraft: Audiocraft is a library for audio processing and generation with deep learning.
- NVIDIA/NeMo: NeMo: a framework for generative AI
Audio/Speech LLM
- QwenLM/Qwen-Audio: The official repo of Qwen-Audio (通义千问-Audio) chat & pretrained large audio language model proposed by Alibaba Cloud.
- awesome-large-audio-models: Collection of resources on the applications of Large Language Models (LLMs) in Audio AI.
- Large-Audio-Models: Keep track of big models in audio domain, including speech, singing, music etc.
Dataset
- speech-datasets-collection: a curated list of speech datasets (110+ datasets, 75+ easy to download)
- ai-audio-datasets: This is a list of datasets consisting of speech, music, and sound effects
- ULCA-asr-dataset-corpus: asr dataset corpus collection
- coqui-ai/open-speech-corpora: A list of accessible speech corpora for ASR, TTS, and other Speech Technologies
- voice_datasets: A comprehensive list of open-source datasets for voice and sound computing (95+ datasets).
- audio-datasets: open-source audio datasets
- speech_dataset: The dataset of Speech Recognition
- k2-fsa/libriheavy: Libriheavy: a 50,000 hours ASR corpus with punctuation casing and context
- facebookresearch/libri-light
Recommendation System
- datawhale/fun-rec: [Github:zh-cn]
Large Language Model
- LLM-action: Github: zh-cn
- LLMSurvey: Github
- LLM-Agent-Paper-List (Fdu NLP): Github
- llamafia.github: [Github] 一个中文前沿 AI / LLM 开源讨论空间
- Large Language Model Course: [Github]
- 中文LLaMA&Alpaca大语言模型+本地CPU/GPU训练部署 (Chinese LLaMA & Alpaca LLMs): [Github]
Tutorials
- 一些国内的广为人知的视频教程,适合边睡边看:
- 一篇不太专业的如何读论文的小文档:[pdf]
- paper with code:[page]
- 算法知识应知应会:[Github]
- Microsoft AI-EDU: [zh-cn]
- 机器学习入门指南: [zh-cn]
- CS229机器学习技巧和秘诀速查表: [zh-cn]
- 科学空间(苏剑林): [zh-cn]
- 深度学习500问: [Github: zh-cn]
- awesome-ai-tools: [Github: en]
- Learning Research: [Github: zh-cn]
- Stanford HowToReadpaper: [page] [pdf]
- 有关迁移学习的一切的资料: [Github]
Prompts
- ChatGPT 中文调教指南: [Github: zh-cn]
- Awesome ChatGPT Prompts: [Github: en]
- 🤖 ChatGPT 中文指南 🤖:[Github: zh-cn]
- Openprompt(Create. Use. Share. Chatgpt prompts): [zh-cn]
- understand-prompt: [Github:zh-cn]
CUDA & Nvidia
- CUDA C++ Programming Guide: The programming guide to the CUDA model and interface.
- NVIDIA/CUDALibrarySamples: The CUDA Library Samples are released by NVIDIA Corporation as Open Source software under the 3-clause "New" BSD license.
- pybind11 documentation
- Using pybind11
- Use pybind11 for a detailed but simple example
- 查看你的显卡的情况:
-
- 切换CUDA版本步骤
- 删除软连接
cd /usr/local ls -l cuda # 查看cuda的软链接 sudo rm -rf cuda sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda # 更换为对应的cuda
- 添加环境变量
在完成上述步骤后,你需要# 如果使用的是z-shell请替换`.bashrc`为`.zshrc` tee -a ~/.bashrc > /dev/null << 'EOF' # CUDA export PATH=${PATH}:/usr/local/cuda/bin export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64 export CUDA_HOME=/usr/local/cuda # 通过设置软链接`/usr/local/cuda`,可以做到多版本CUDA共存 EOF # 或者 # 修改`/etc/profile`以做到多用户、多Shell解释器通用 sudo tee -a /etc/profile > /dev/null << 'EOF' # CUDA export PATH=${PATH}:/usr/local/cuda/bin export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64 export CUDA_HOME=/usr/local/cuda # 通过设置软链接`/usr/local/cuda`,可以做到多版本CUDA共存 EOF
source ~/.bashrc
(或source /etc/profile
)刷新环境变量或者reboot
重启
本章节主要讲一些学术相关的知识,包括文献搜索,科研经验、读博体验等,期待大佬补充内容。
Academic常用知识
论文写作
- learning_research: 科研经验总结
- English-Writing: Enhance Your English Writing for Science Research 写论文英语素材
- ML Visuals: 🎨 ML Visuals contains figures and templates which you can reuse and customize to improve your scientific writing.
常用工具
- Google Scholar:谷歌学术
- 计算机科学文献数据库:DBLP [en]
- SCI期刊查询和scihub各种科研导航: [Page]
- ACM数字图书馆:ACM Digital Library [en]
- IEEE学术数据库:IEEE Xplore [en]
- SCI论文检索:Web of Science [en]
- EI论文检索:Engineering Village [en]
- 中文文献检索:中国知网 [zh-cn]
- 中国计算机学会(CCF)推荐国际学术会议和期刊目录(2022版)[pdf]
- CCF会议投稿截止时间汇总:[zh-cn]
- CCFrank: 在相关网站的搜索结果中显示 CCF 评级的浏览器插件 [Github] [Chrome] [Edge] [FireFox]
- 清华大学计算机学科推荐学术会议和期刊列表 (TH-CPL)
- CSRankings: Computer Science Rankings
- 国家自然科学基金查询
- The-PhD-Grind(“研”磨记)英文版
- The-PhD-Grind(“研”磨记)中文版
- 对phd一年级新生有什么建议?
Tenure-Track Asst. Professors and PhD students
- Awesome Lists for Tenure-Track Asst. Professors and PhD students: [Github: en & zh-cn]
- 一个博士生在科研大组的生存指南: [pdf]
- Collection of advice for prospective and current PhD students: [Github: en]
- A Survival Guide to a PhD: [en]
- nlp-phd-global-equality: A repo for open resources & information for people to succeed in PhD in CS & career in AI / NLP
(Special Issue)专业代码那些事儿
1. 专业代码是什么?
专业代码是教育部用于标识和管理不同学科专业的一种编码,通常由6位数字组成。专业代码在本科专业设置
和研究生专业设置
上是分离的。需要注意的的一点是⚠️:两者并不相关,需要分情况说明,不可以混为一谈。
1.1 研究生教育学科专业目录(研究生专业代码)
目前研究生教育学科专业目录最新版本为2022版,并从2023年起开始实施。可通过研招网下载附件📎查看:研究生教育学科专业目录(2022年)
其中“研究生教育学科专业目录”中对于专业学位代码非常模糊,具体的专业学位代码请查看:关于电子信息等8种专业学位类别专业领域指导性目录的说明
通过两份文件,我们可以总结出与计算机学科相关的专业代码,如下表:
计算机学科相关专业研究生代码汇总
学位类型 | 专业代码 | 专业名称 |
---|---|---|
学术学位 | 081200 | 计算机科学与技术 |
学术学位 | 083500 | 软件工程 |
学术学位 | 083900 | 网络空间安全 |
学术学位 | 140500 | 智能科学与技术 |
专业学位 | 085400 | 电子信息 |
专业学位 | 085404 | 计算机技术 |
专业学位 | 085405 | 软件工程 |
专业学位 | 085411 | 大数据技术与工程 |
专业学位 | 085412 | 网络与信息安全 |
其中,有几点需要强调:
- 专业代码中,第三、四位被划分成了上下两个半区,上半区为01-50,下半区为51-99。上半区对应学术学位,下半区对应专业学位。
- 专业代码中,第五、六位对应二级学科,对于专业学位而言,需要特别注意,因为 0854(电子信息) 里同时包含计算机、自动化、电子、信息、生医、仪器等方向的专硕,无法表明到底是哪个学科的专硕。
下面是两个计算机类研究生专业代码的示例:
学术学位专业代码示例
专业学位专业代码示例
1.2 普通高等学校本科专业目录(本科专业代码)
普通高等学校本科专业目录最新版本为2024版,可通过教育部官方网站下载附件📎查看:普通高等学校本科专业目录(2024年)
其中,与计算机类有关的专业代码如下表:
计算机类相关专业代码汇总
计算机学科相关本科专业代码汇总
序号 | 门类、专业类 | 专业代码 | 专业名称 | 学位授予门类 | 修业年限 | 增设年度 |
---|---|---|---|---|---|---|
397 | 计算机类 | 080901 | 计算机科学与技术 | 理学、工学 | 四年 | |
398 | 计算机类 | 080902 | 软件工程 | 工学 | 四年 | |
399 | 计算机类 | 080903 | 网络工程 | 工学 | 四年 | |
400 | 计算机类 | 080904K | 信息安全 | 管理学、理学、工学 | 四年 | |
401 | 计算机类 | 080905 | 物联网工程 | 工学 | 四年 | |
402 | 计算机类 | 080906 | 数字媒体技术 | 工学 | 四年 | |
403 | 计算机类 | 080907T | 智能科学与技术 | 理学、工学 | 四年 | |
404 | 计算机类 | 080908T | 空间信息与数字技术 | 工学 | 四年 | |
405 | 计算机类 | 080909T | 电子与计算机工程 | 工学 | 四年 | |
406 | 计算机类 | 080910T | 数据科学与大数据技术 | 理学、工学 | 四年 | 2015 |
407 | 计算机类 | 080911TK | 网络空间安全 | 工学 | 四年 | 2015 |
408 | 计算机类 | 080912T | 新媒体技术 | 工学 | 四年 | 2016 |
409 | 计算机类 | 080913T | 电影制作 | 工学 | 四年 | 2016 |
410 | 计算机类 | 080914TK | 保密技术 | 工学 | 四年 | 2017 |
411 | 计算机类 | 080915T | 服务科学与工程 | 工学 | 四年 | 2019 |
412 | 计算机类 | 080916T | 虚拟现实技术 | 工学 | 四年 | 2019 |
413 | 计算机类 | 080917T | 区块链工程 | 工学 | 四年 | 2019 |
414 | 计算机类 | 080918TK | 密码科学与技术 | 工学 | 四年 | 2020 |
2. 为什么需要专业代码?
害,还不是有单位会看要求,不然谁会来看这些东西?专业代码会在考公、国企招聘等位置不经意的出现。当然,对于打算进入私企就业的同学来说,专业代码就不是那么重要了。
举个例子🌰,以“广东省2024年考试录用公务员”为例,0812相比0835在可报考岗位上有着绝对的优势(1405的同学😭):
0812可报考岗位
0835可报考岗位
3. 常见问题
3.1 专硕的专业代码是否可以更改?比如从085400(电子信息)更加细化?
这个问题通常取决于学校,要符合学校的一些要求,比如只能细化到特定的一两个代码之中。ZJU SE就曾发过这样的公告,供大家参考:软件学院专业学位领域代码调整通知
3.2 0812XY例如(0812Z1)这类专业代码是0812吗?
以0812Z1为例,这类专业代码一般来说是可以算作0812的,也就是一级学科是“计算机科学与技术——学术学位”,所以大多数情况下依然是0812。
3.3 以后有考公的打算,该怎么在计算机类学专硕的各个专业中选择?
答案很明确,0812就是神。所以能够拿到计科学硕对于考公是最有利的,0812也的确是认可度最高的万金油专业(卷成这样不是没有道理的)。而对于最近很多学校把AI学硕挪到140500这样的迷惑操作,实在是对于考公过于不友好了,需要谨慎考虑一下。至于其他的专业包括0835(软件学硕)、0839(网安学硕)、085404/5(计/软专硕),最好还是亲自调研一下目标省份的岗位要求。
本章节包含与写作有关的知识,欢迎大佬补充。
CV & Resume
- Awesome Resume for Chinese
- cv_emuluate: Academic CVs that you can (hopefully) emulate
- Awesome-CV: 📄 Awesome CV is LaTeX template for your outstanding job application
LaTeX & Markdown
- latex codebook
- Latex公式识别
- Overleaf(在线Latex编辑器)
- Typora 伪装 LaTeX 中文样式主题
- latex-templates
- Latex 常见的数学符号
- awesome-latex-drawing: Drawing Bayesian networks, graphical models, tensors, technical frameworks, and illustrations in LaTeX.
- LaTeX教程,篇幅较大,但是好用:[官网][镜像][Github]
- \(\LaTeX\) 在线表格生成工具:[工具1] [工具2]
LaTex Beamer tutorial
Markdown
- Markdown 基本语法
- Markdown 基本语法:README文件语法解读,即Github Flavored Markdown语法介绍
- Github Star历史
- 静态徽章绘制
- Markdown emoji cheatsheet
- moffee: moffee: Make Markdown Ready to Present
Typst
- Typst Web App
- Typst官方文档
- Typst Github Repo
- Typst sildes:polylux
- Awesome Typst 中文版
- Typst非官方的中文文档
- brilliant-CV: 💼 another CV template for your job application, yet powered by Typst and more
本章节包括了CS中的实用工具和技能,欢迎大佬补充。
Linux
- 中科大 LUG 基础 Linux 教程: [zh-cn]
- 南京大学计算机科学与技术系计算机系统基础: Linux入门教程
- 鳥哥的 Linux 私房菜:[zh]
- 从 Socket error 丢失网络连接的 Linux SSH 恢复 pts 会话:[zh-cn]
下次记得运行长时间程序前先使用
screen
或tmux
- Update GCC
Shell
- Linux命令搜索
- explainshell
- Bash scripting cheatsheet
- The art of command line
- bash.academy: This guide is an introduction to basic and advanced concepts of the bash shell.
- Shell学习与开发的资料
Vim
vimtutor
关于 vim 最基础的教程,安装 vim 之后自带的命令- 聪明地学习 vim: [GitHub: en]/[GitHub: zh-cn]
- Vim命令速查表: 简介:Vim 命令速查表,注释化 vimrc 配置文件,经典 Vim 键盘图,实用 Vim 书籍,Markdown 格式,目录化检索,系统化学习,体系化配置工具集,快速熟悉使用。✨
- Vim Cheat Sheet
- vim-galore-zh_cn:Vim 从入门到精通
Git & Github
- Learn Git Branching(强推): [zh-cn]
- Pro Git 中文版
- Git lfs install
- Gitchat: [zh]
- Git规范化提交
- 第一次参与开源项目,如何提交pr: [Github: zh-cn] | [mmcv contribution]
- 给 Github Desktop 设置代理
- clone远程仓库的指定分支
git clone -b + 要clone的分支名 + 仓库地址 # eg: git clone -b dev git@github.com:CS-BAOYAN/CSBasicKnowledge.git
- SSH key的生成:
- 检查SSH key是否存在:
ls -al ~/.ssh # Lists the files in your .ssh directory, if they exist
- 生成SSH key, 会在/your_home_path/.ssh/生成id_rsa和id_rsa.pub
ssh-keygen -t rsa -C "your_email@example.com" # Creates a new ssh key using the provided email Generating public/private rsa key pair. Enter file in which to save the key (/your_home_path/.ssh/id_rsa):
- 检查SSH key是否存在:
- 下拉/提交远程仓库
- 查看远程仓库的信息:
可以看到远程仓库的名字和地址。git remote -v
- 查看当前分支名:
可以看到当前代码分支的名字git branch
- 从远程仓库下拉:
git pull <远程仓库的名字/地址> <代码的分支名>
- 冲突处理(苯人的笨方法)
然后使用git pull <远程仓库的名字/地址> <代码的分支名> --allow-unrelated-histories
查看冲突文件,手动解决冲突。git status
- 提交本地代码到远程仓库:
git push <远程仓库的名字/地址> <代码的分支名>
- 强制推送(苯人的笨方法,高风险,慎用):
git push -f <远程仓库的名字/地址> <代码的分支名>
- 推送tags到远程仓库:
git push --tags
- 删除远程分支:
git push origin --delete <分支名>
- 同步本地分支到远程仓库:
git push origin <本地分支名>:<远程分支名>
- 同步远程分支到本地仓库:
git checkout -b <本地分支名> <远程分支名>
How to Debug
gdb
- gdb-dashboard: 使用 Python 在命令行中可视化使用 gdb 的小工具
pdb & ipdb
debugpy
- vscode python设置debug: [zhihu]
vscode debug setting
- Debug C++ in Visual Studio Code: [Document: en]
- Configure C/C++ debugging in VSCode: [Document: en]
Conda
- miniconda环境配置以及jupyter notebook使用指南: [zhihu]
- micromamba: miniconda 的平替,同时依赖解析等基础操作更快: [GitHub]
- 清华大学开源镜像站-miniconda的下载
# 下载安装脚本 wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh # 修改权限 chmod 777 Miniconda3-latest-Linux-x86_64.sh # 执行安装脚本 bash Miniconda3-latest-Linux-x86_64.sh # 删除安装脚本 rm Miniconda3-latest-Linux-x86_64.sh # 刷新环境变量 source ~/.bashrc
Docker
- Docker-从入门到实践: [zh-cn]
- How to Install PyTorch on the GPU with Docker: [en]
- Vscode连接远程服务器中的docker容器进行开发: [CSDN]
- docker权限问题:[CSDN]
- 如何临时退出一个正在交互的容器的终端,而不终止它? 按 Ctrl-p Ctrl-q。如果按 Ctrl-c 往往会让容器内应用进程终止,进而会终止容器,如果没有在IDE里面没有成功,请去除IDE对应的快捷键。
- docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
- https://github.com/NVIDIA/nvidia-docker/issues/1238
- https://github.com/NVIDIA/nvidia-docker/issues/1243
- Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
sudo chmod 666 /var/run/docker.sock
程序员指南
- 程序员延寿指南: [Github: zh-cn]
- 程序员做菜指南: [Github: zh-cn]
- 颈椎病腰突康复指南: [Github: zh-cn]
- 超赞合集 awesome list chinese: [Github:zh-cn]
MISC
- 如何设置代理: [PDF]
- 耗时很长的程序忘加nohup就运行了怎么办?: [zhihu]
- linux 多线程下载工具-aria2c: [zhihu.com]
- 你的指法真的标准吗?打字练习一下:[zh-cn]
- 利用学生身份可以享受到的相关学生优惠权益: [Github]
- 论文常用词汇i.e.,e.g.,etc.,viz.,et al.的前世今生: [zhihu]
- 中国程序员容易发音错误的单词: [Github: zh-cn]
- 图吧工具箱: [page]
- 文献管理软件 Zotero:安装设置教程及各插件配置(知网支持、影响因子、被引数): [zh-cn]
- 阿里巴巴矢量图标库: [page]
- Paper Picture Writing Code: Github
- 魔盾安全分析(可疑软件在线分析):[zh-cn]
- 崔庆才 Python3 网络爬虫学习教程: [zh-cn]
- youtube下载工具:[Github]
- 掘金翻译计划:[Github:zh-cn]
- 桌面管理工具:[Github:zh-cn],推荐1.0.4.1release的免费版!
- 论文代码查找网站:[page]
- one-api: OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用
翻译软件
- Pot: 跨平台划词翻译和OCR,支持大模型API,支持windows,mac和linux
- Easydict:一个简洁优雅的词典翻译 macOS App。开箱即用,支持离线 OCR 识别,支持有道词典,🍎 苹果系统词典,🍎 苹果系统翻译,OpenAI,Gemini,DeepL,Google,Bing,腾讯,百度,阿里,小牛,彩云和火山翻译。
Front End
- HTML & CSS [Bibilili]
- float布局不用学,熟悉flex和grid即可
- 自测:能完成基本的静态页面
- JavaScript [Bilibili] [现代JavaScript]
- Vue [Bilibili-尚硅谷] [Bilibili-小满]
- 小满的比较难,需要有vue2基础,看自己情况
- 项目实战 [Bilibili]
- 到这时候,已经能够承担前端工作了,如果bg比较好的话,可以找到实习
进阶
实际上这些是必需品,如果面试的时候就会这些的话,可以有效提高竞争力。不过虽然大厂一般都需要这些,但也会允许实习生到岗再学习。
- TypeScript [Bilibili-小满]
- 实际中用不到这么复杂的ts,一般去掘金上看几篇教程就够用了。不过小满的教程看明白的话,可以和面试官掰扯很久。
- React [官网] [Bilibili-小满]
- 抠字眼的话,
Vue
是前端框架,而React
只是JS库。也就是说,React
并没有很复杂的语法和API,只是对JavaScrip
的熟练程度要求较高。不要在教程上面纠结太长时间,把生命周期看明白之后就去看项目。
- 抠字眼的话,
- Node [Bilibili-小满]
- 前端就是全栈!有的大厂会用Node搭建
BFF
(Backend For FrontEnd),还会搭配上Nest
、GraphQL
等技术。到这里就比较难了,有了解即可。
- 前端就是全栈!有的大厂会用Node搭建
Front End
- HTML & CSS [Bibilili]
- float布局不用学,熟悉flex和grid即可
- 自测:能完成基本的静态页面
- JavaScript [Bilibili] [现代JavaScript]
- Vue [Bilibili-尚硅谷] [Bilibili-小满]
- 小满的比较难,需要有vue2基础,看自己情况
- 项目实战 [Bilibili]
- 到这时候,已经能够承担前端工作了,如果bg比较好的话,可以找到实习
进阶
实际上这些是必需品,如果面试的时候就会这些的话,可以有效提高竞争力。不过虽然大厂一般都需要这些,但也会允许实习生到岗再学习。
- TypeScript [Bilibili-小满]
- 实际中用不到这么复杂的ts,一般去掘金上看几篇教程就够用了。不过小满的教程看明白的话,可以和面试官掰扯很久。
- React [官网] [Bilibili-小满]
- 抠字眼的话,
Vue
是前端框架,而React
只是JS库。也就是说,React
并没有很复杂的语法和API,只是对JavaScrip
的熟练程度要求较高。不要在教程上面纠结太长时间,把生命周期看明白之后就去看项目。
- 抠字眼的话,
- Node [Bilibili-小满]
- 前端就是全栈!有的大厂会用Node搭建
BFF
(Backend For FrontEnd),还会搭配上Nest
、GraphQL
等技术。到这里就比较难了,有了解即可。
- 前端就是全栈!有的大厂会用Node搭建
【重要】For contributers
鸣谢
衷心感谢以下参与者对本指南的贡献。
Made with contrib.rocks.
贡献指南
若希望对CSBasicKnowledge进行贡献,请以SUMMARY.md
为大纲,在src
文件夹下进行markdown文件的添加即可。
目前,mdbook对数学公式的支持还不完善,如您需要使用数学公式,请参考下面的数学公式支持部分。
(可选) 如果您在部署了mdbook并运行后,可以直接在SUMMARY.md
中添加章节,例如:
# CSBasicKnowledge
- [example](./example/example.md)
mdbook会自动创建example
文件夹和example.md
文件。
当然,mdbook依赖于rust语言开发,如果您不喜欢rust相关内容,可以无视可选项及后续的本地部署部分。
数学公式支持
注意: MathJax 目前仍不能使用
$$ ... $$
作为分隔符,并且\[ ... \]
分隔符需要额外的反斜杠才能工作。 希望这个限制很快能解除。
注意: 当您需要在 MathJax 块中使用双反斜杠(例如
\begin{cases} \frac 1 2 \\ \frac 3 4 \end{cases}
等命令中)时,您需要添加两个额外的反斜杠(例如,\begin{cases} \frac 1 2 \\\\ \frac 3 4 \end{cases}
)。
行内公式
行内公式由 \\(
和 \\)
包围。例如,要渲染以下行内方程
\( \int x dx = \frac{x^2}{2} + C \),可以这么写:
\\( \int x dx = \frac{x^2}{2} + C \\)
块公式
块公式由 \\[
和 \\]
分隔。 要渲染下面这个块公式
\[ \mu = \frac{1}{N} \sum_{i=0} x_i \]
可以这么写:
\\[ \mu = \frac{1}{N} \sum_{i=0} x_i \\]
本地部署
CSBasicKnowledge的bookfy基于mdbook实现,该工具基于Rust开发,是markdown文件书本化非常值得推荐的工具。Rust的圣经 The Rust Programming Language 便是利用了mdbook生成的。
要安装mdbook请安装Rust相关工具链。随后,通过Rust的包管理器cargo进行mdbook的安装:
cargo install mdbook
通常,mdbook会安装在$HOME/.cargo/bin
,请将该目录添加至PATH
mdbook的运行非常简单,只需要:
# For detail, run `mdBook serve -h`
mdbook serve # default 127.0.0.1:3000
mdbook serve -p 8080 # 127.0.0.1:8080