码农的自我修养之必备技能 学习笔记

一、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.编译运行程序

编译运行程序将介绍两种方法

  1. 使用之前安装好的Code Runner插件一键编译运行程序
  2. 打开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 (分支名)推送分支

 

 切换分支

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

推送文件修改需要这几步:

  1. 添加需要推送的文件到暂存区
    • git add . 监控工作区的状态树,会把工作时的所有变化提交到暂存区,包括文件内容修改和新文件,但不包括被删除的文件
  2. 将暂存区里的改动给提交到本地的版本库
    • git commit -m "add file to testBranch"
  3. 推送
    • 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等程序员实用的工具,学习了正则表达式等实用的技巧。但仅仅是在课堂上听课是远远不够的,除了要把学习过程记录下来,时而温故,还要把这些工具和技巧应用在平时写代码中,使用多了才能更加熟练。

 

posted @ 2020-03-30 21:18  _khf  阅读(300)  评论(0编辑  收藏  举报