码农放入自我修养之必备技能学习笔记
基本功一----typing
作为一个合格的码农,码字速度肯定不能卖,手指得能跟上我们思维的速度.
基于此,一个合格的码农,究其根本,也是一个飞速的打字员
为了练就这"一指禅"的功夫,我们平时也是要多敲才可以,这里推荐国外的一个打字练习网站--TypingClub,速度可能有点慢,有条件的同学可以那啥,对吧.
基本功二----精通一门语言的IDE
我们经常看到国外的大神用vim乃至windows自带的notepad进行编码工作.vim固然强大,但是对于我们一些大型项目的开发,任不能满足我们的需求,至于使用notepad进行编码,个人感觉值就是个噱头.
因此,作为一门语言的精通者,我们需要掌握乃至精通一个IDE的使用.
我走的是java方向,因此首推IDEA.IDEA的功能十分强大.我们可以在其本就丰富的功能的基础上再安装一些插件来满足我们的复杂开发环境的需求
有了集成开发环境,我们还需要有一个小型编辑器---VsCode.VSCode是微软家开发的一款轻量级开发工具.麻雀虽小五脏俱全,vscode对各个语言的支持是通过开发者发布的插件扩展包来实现的.
一些常用的VsCode的快捷键:
- ctrl +O/K 打开关闭文件夹
- Ctrl+F 关闭工作区
- Ctrl+N/W/S 新建文件/关闭文件/保存文件
- Ctrl+F 搜索
- Ctrl+H 替换
基本功三----vim
熟悉Linux的同学对vim都不陌生,vim是一般Linux发行版都会预装的一款文本编辑器,编辑器的鼻祖系列之一
vim在使用过程中有三种形态我们要搞清楚:
-
命令模式
vim打开的时候就是命令模式.在这个模式下.键盘动作会被识别为指令而不是字符
-
输入模式
在命令模式下按
i
进入输入模式,按ESC
退出输入模式 -
底线命令模式
在命令模式下,按
:
进入底线命令模式,比如你要退出编辑过的文件时,先按ESC
回到命令模式,然后按wq
,保存并退出
Vim常用的一些命令:
-
删除
- x/X 向后或者向前删除一个字符
- nx 向后连续删除 几个字符
- dd 删除一整行
-
复制粘贴
- yy 复制一行
- p/P 复制粘贴光标所在行的下一行或者上一行的内容
- nyy 复制n行
-
撤销/重做
- u 撤销
- Ctrl+r 重做
-
搜索
在底线命令下:
- /内容 向光标之后的内容匹配字符串
- ?内容 向光标上匹配字符串
- n 继续向下匹配字符串
- N 反向匹配
基本功四----正则表达式
正则表达式常用于匹配字符串,替换文本以及提取字符串etc.入门门槛相对较高,若是熟练,会成为你开发工作中的一大利器
基本功五----版本控制工具Git
我们有了合适的代码开发工具,有了飞一般的coding速度,但是我们还少了一样东西-Git
Git不可谓不重要,它是世界上最先进的分布式版本控制系统,也是程序必会的一项技能.
基本使用
git inin #初始化一个本地版本库
git status # 查看工作区状态
git add 文件 #将文件加入工作目录
git log #查看日志
git push #将本地文件推送到远程仓库
git pull # 将远程的分支拉取到本地并进行合并操作
git clone # 克隆远程的某个分支
git merge #合并分支
git fetch # 将远程分支拉取到本地但是不进行合并
作业一
- 将远程的仓库拉取到本地
D:\se2020
λ git clone https://github.com/zh2333/AdvancedSoftWare.git
Cloning into 'AdvancedSoftWare'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
- 新建
Dev
分支
D:\se2020\AdvancedSoftWare (master -> origin)
λ ls
README.md
D:\se2020\AdvancedSoftWare (master -> origin)
λ git checkout -b dev
Switched to a new branch 'dev'
-
对README.md进行编辑
修改内容为
A B C
D:\se2020\AdvancedSoftWare (dev -> origin)
λ vim README.md
D:\se2020\AdvancedSoftWare (dev -> origin)
λ git log
commit bea0eea35f17ec6795bd952442613fbcddf13808 (HEAD -> dev, origin/master, origin/HEAD, master) Author: zh2333
Date: Sun Mar 29 17:18:03 2020 +0800
Initial commit
-
在远程同样对此文件进行修改
修改内容为
A B D
-
本地切换回master分支,pull
出错,提示我们先提交修改
D:\se2020\AdvancedSoftWare (master -> origin) λ git pull remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From https://github.com/zh2333/AdvancedSoftWare bea0eea..6cbb221 master -> origin/master error: Your local changes to the following files would be overwritten by merge: README.md Please commit your changes or stash them before you merge. Aborting Updating bea0eea..6cbb221
提交修改,再pull
D:\se2020\AdvancedSoftWare (dev -> origin) λ git checkout master Switched to branch 'master' Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded. (use "git pull" to update your local branch) D:\se2020\AdvancedSoftWare (master -> origin) λ git pull Updating bea0eea..6cbb221 Fast-forward README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
pull成功
-
合并修改
切换回dev分支
D:\se2020\AdvancedSoftWare (dev -> origin) λ git checkout dev Already on 'dev' D:\se2020\AdvancedSoftWare (dev -> origin) λ git rebase -i master Auto-merging README.md CONFLICT (content): Merge conflict in README.md error: could not apply e0b4872... change from local Resolve all conflicts manually, mark them as resolved with "git add/rm
", then run "git rebase --continue". You can instead skip this commit: run "git rebase --skip". To abort and get back to the state before "git rebase", run "git rebase --abort". Could not apply e0b4872... change from local again 提示出错,文件不一致,需要先修改冲突,再进行提交
重新打开文件,发现git已经为我们标注了冲突发生的地方
# AdvancedSoftWare A B <<<<<<< HEAD D ======= C >>>>>>> e0b4872... change from local ~
将冲突修改后,重新提交
D:\se2020\AdvancedSoftWare (HEAD detached at 6cbb221 -> origin) λ git add * D:\se2020\AdvancedSoftWare (HEAD detached at 6cbb221 -> origin) λ git rebase --continue [detached HEAD f8f6771] change from local last time! 1 file changed, 4 insertions(+) Successfully rebased and updated refs/heads/dev.
回到master分支,合并Dev分支
D:\se2020\AdvancedSoftWare (dev -> origin) λ git checkout master Switched to branch 'master' Your branch is up to date with 'origin/master'. D:\se2020\AdvancedSoftWare (master -> origin) λ git merge dev Updating 6cbb221..f8f6771 Fast-forward README.md | 4 ++++ 1 file changed, 4 insertions(+)
合并成功!
-
推送回远程
D:\se2020\AdvancedSoftWare (master -> origin)
λ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 325 bytes | 325.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/zh2333/AdvancedSoftWare.git
6cbb221..f8f6771 master -> master
大功告成!