码农的自我修养之必备技能 学习笔记
一、Typing
更快的打字速度和更高的准确率能显著地提高程序员的写代码效率。
因此,程序员需要训练打字的技巧。可以到 https://www.typingclub.com 进行训练。
共684关,循序渐进。训练一段时间后,可以打开 https://www.typingclub.com/sportal/program-3/8832.play 直接进行最后一关的测评。
二、Visual Studio Code
Visual Studio Code(以下简称vscode)是⼀个轻量且强大的代码编 辑器,⽀持Windows,OS X和Linux。内置JavaScript、TypeScript和 Node.js⽀持,⽽且拥有丰富的插件生态系统,可通过安装插件来⽀持 C++、C#、Python、PHP等其他语言。
1.前期准备
1. 首先在微软官网下载并安装好visual stdio code
2. 因为vscode只是一个代码编辑器,没有自带有C/C++的编译器,因此我们需要安装一个C/C++编译器,打开终端依次输入,确保安装好gcc/g++和gdb
sudo apt-get update [有密码则输入密码] sudo apt-get install gcc [有密码则输入密码] sudo apt-get install g++ [有密码则输入密码] sudo apt-get install gdb [有密码则输入密码]
3. 安装必要的插件,打开vscode,点击左面竖排第五个按钮,搜索并安装上如下两个插件
- C/C++
- Code Runner
安装好以后重启一下vscode,为避免出现其他问题,先暂时不要安装其他插件界面给你推荐的插件
2.编译运行程序
编译运行程序将介绍两种方法
- 使用之前安装好的
Code Runner插件一键编译运行程序 - 打开vscode的
集成终端使用命令行编译和运行
点击:文件>新建文件,出现一个空白文档,我准备了一段测试用的代码,请复制粘贴到空白文档中
#include <stdio.h>
int main(){
char name[100];
printf("What is your name?\n");
scanf("%s",name);
printf("Hello,%s,nice to meet you!\n",name);
}
然后按Ctrl+S并将文件后缀名改为.c或.cpp后保存到电脑上,然后点击右上角的三角形按钮(原本这个位置没有,是安装Code Runner插件后新增的一键编译运行程序的按钮),或者按Ctrl+Alt+N就能编译运行当前程序
这就是使用Code Runner插件运行程序的方法,点击右上角的垃圾桶图标可以直接结束程序运行
同时可以按ctrl+~打开集成终端在其中输入命令行指令来编译运行

下面开始正式配置调试环境
首先在电脑上你习惯的位置新建一个文件夹,用于存放编写的代码,接下来配置好的调试环境,仅会对存放在这一个文件夹以及文件夹的子目录里程序生效!
新建好文件夹后,在vscode界面,点击:文件>打开文件夹,打开刚刚新建的文件夹(我的文件夹名叫CODE)
再点击新建文件夹在打开的文件夹下新建一个 .vscode文件夹(注意前面的"."号)
然后在.vscode文件夹下新建两个json文件分别叫做
- launch.json
- tasks.json
然后将下面的代码复制到对应的json文件中去并保存
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"preLaunchTask": "compile",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
tasks.json
如果需要是c语言也就是gcc将下面的command项由g++改为gcc
{
"version": "2.0.0",
"tasks": [{
"label": "compile",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
事实上现在已经可以正常调试了
并且此时可以按 ctrl+shift+b 直接调用配置好的g++ task 编译程序而不运行程序,类似于一些IDE的编译选项
3.快捷键
VScode基本快捷键一览。

三、Git
首先需要在电脑上安装git,从官网上下载,

创建GitHub仓库
创建一个GitHub仓库,

克隆到本地
复制网址,克隆到本地,

在本地新建文件夹,以此路径打开cmd,输入命令:git clone https://github.com/kuanghf1012/kkkhf.git

拉取
pull 用于取回远程主机某个分支的更新,再与本地的指定分支合并
先在 GitHub 网页上手动对文件进行修改,再在本地执行 git pull

分支
分支(branch)可以在不影响主线(master)的同时继续工作
git branch查看分支git branch (branchname)新建分支git push origin (branchname)推送新分支git checkout (branchname)切换分支
新建分支
使用命令git branch (新分支名)在本地新建分支,然后输入命令git push origin (分支名)推送分支

切换分支
切换到新分支,修改文件,然后推送

推送文件修改需要这几步:
- 添加需要推送的文件到暂存区
git add .监控工作区的状态树,会把工作时的所有变化提交到暂存区,包括文件内容修改和新文件,但不包括被删除的文件
- 将暂存区里的改动给提交到本地的版本库
git commit -m "add file to testBranch"
- 推送
git push origin testBranch


此时,新分支上出现了新文件,主线没有变

合并分支
接下来将新分支合并到主线,并推送。

在网页端创建拉取请求(Create pull request)并合并(Merge pull request)


可见,主线上也更新了

四、正则表达式
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
语法
匹配备选列表中的某个字符,比如abcd:[abcd],- 符号标识区间,如0-9 a-z A-z。
由这条可以推出以下几条语法:
匹配一个数字:[0-9],因为这条很常用,所以提供了简化符号\d(java中\\d)来表示一个数字
匹配一个字母:[a-zA-Z]
匹配一个字母或数字:简化符号\\w
匹配特殊字符,如空格和Tab符:\s 换行符:\n 制表符:\t
不匹配某个字符,如不想匹配x:[^x], [^aeiou]匹配除了aeiou这几个字母以外的任意字符。同样可以和上面的符号进行组合,[^0-9],[^d],[^w]用于表示排除这个范围。
对于简化符号\d,\w的否定可以用大些来替代,如\D,\W
或条件,x|y匹配x或y。例如,"z|food"能匹配"z"或"food"或"zood"(此处请谨慎)。"(z|f)ood"则匹配"zood"或"food"
位置限定,$限定字符串开头,^限定字符串结尾,如$t[abcd]t^ 匹配tat,tbt,tct,tdt。不匹配rtat,tatr。
个数描述
*匹配0次或多次
. 匹配任意一个字符
+ 至少一次
? 至多一次
{n} 准确匹配n次
{n,}至少匹配n次
{n,m}匹配n到m次
组的概念
在正则中所有的个数描述符的作用对象都是前一个单位,这个单位通常是一个字符,但是组的概念可以把多个字符组成一个单位,也就是组。在正则中用()来表示。
例如:(text){3}匹配texttexttext,(text)把text看成一个整体。这里还有一个小问题,如何匹配()这一类的元字符,在正则表达式中想要匹配元字符统一用\进行转义。
贪婪非贪婪匹配
非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。当?字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。例如,对于字符串"oooo","o+?"将匹配单个"o",而"o+"将匹配所有"o"。
五、总结
课堂上学习了VSCode、Git等程序员实用的工具,学习了正则表达式等实用的技巧。但仅仅是在课堂上听课是远远不够的,除了要把学习过程记录下来,时而温故,还要把这些工具和技巧应用在平时写代码中,使用多了才能更加熟练。

浙公网安备 33010602011771号