1. 学习内容
2. 学习计划
- - - -2.1 linux 命令行工具
- - - -2.2 linux 端开发:必备工具
- - - -2.3 计算机科学与编程类经典书籍
3. issue 记录
SMART | 原则 | 解释 |
---|---|---|
specific | 具体性 | 切合实际行为,避免笼统不清晰 |
measurable | 可度量 | 可数量化或行为化 |
attainable | 可实现 | 符合现实情况,避免过低或过高 |
relevant | 相关性 | 多个目标之间的关联性 |
timebased | 时限性 | 截止时间 |
1 学习内容
毕业学期要事有俩:实验室(毕业论文与导师项目)与工作技能,基于此总结出下面主要学习点。
- 1. 工作技能:
- 工程基础: linux 端工具使用,
- 编程基础:计算机与编程类经典书籍阅读,
- awesome C++ 开源项目实践;·
- 2. 课题组项目:
- 加油机源码(正星/稳牌/加油车)与对应设备,
- git 与 github 在课题组项目管理中的应用;
- 3. 大论文:
- 多加油站的 web 云管理平台,
- OpenCV 身份验证等;
2 学习计划
2.1 linux 命令行工具
liujun@Lemon:/$ which reboot ls cmake
/sbin/reboot
/bin/ls
/usr/bin/cmake
liujun@Lemon:/$ ll /bin /sbin /usr/bin -h --sort=size > ~/linux_cmd_list.txt
liujun@Lemon:/$ cat ~/linux_cmd_list.txt | wc -l
1178
暂缺少/usr/sbin
目录下的约130个命令!
得到1178条信息,即约有 1200 条命令(或其他二进制文件),按照linux_cmd_list.txt
中的顺序学习 linux 命令。
-
时间/具体:
- 时间线:2020.1.21~2020.4.30
- 5+2 原则:7 天为单个 lesson,前5天平均每日 20 个 命令,即单个 lesson 需至少 100 个命令。后2天回顾整理与归纳总结。共
(1200/100=)12
个阶段,约(12*7/30=>)3
个月。
-
度量/实现:
-
每个 lesson 至少一篇博客。遇到感兴趣知识点或有时间另开一篇博客,如
loadkeys
与dumpkeys
的键盘转译实现机制与应用。 -
过 man 手册与 help 信息。理解命令的作用,熟悉高频参数与操作,
-
自我检验:
- ① 需求式:如
删除某大型文件中的质数行
; - ② 提问式:如
tail/head/sed/more/less/cat 等文本查看命令的特点与区别
;
- ① 需求式:如
-
-
补充:
- 在回顾总结时,根据综合情况(个人时间,学习效果等)调整计划,如在学习
btrfs
命令时,后续碰到相关命令 10 余条,可归纳并整合到之前含有btrfs
的 lesson, vim/git/gcc/gdb/cmake/grep正则...
等较大型工具辅以相关书籍或教程;
- 在回顾总结时,根据综合情况(个人时间,学习效果等)调整计划,如在学习
2.2 linux 端开发 必备工具
Linux 端开发必备工具:vim 编辑器/shell 脚本/gcc-g++编译器/gdb 调试器/make 工程管理/git 源码管理与协同合作/vscode
- vim
- shell
- linux 命令大全
- 脚本教程
- gcc
- 工具背景与说明
- 参数使用与实践
- 编译流程(加解密)
- gdb
- 基本命令与使用
- core 调试
- 多线程
- make
- git
- vscode
- 原理
- 跨平台桌面应用框架(基于 node.js 与 chromium 的 Electron)
- 源码解析
- 配置
- 配置参数
- 配置解析
- 插件
- 插件使用
- 插件开发
- 原理
2.3 计算机科学与编程类经典书籍
书籍阅读不受此阶段的时间限制,即后面每个学习阶段都包括书籍阅读,也包括下面列出的书籍。
- 基础入门篇
- 计算机基础
- 《深入理解计算机系统》
- 操作系统/计算机网络
- 《Unix 环境高级编程》
- 《Unix 网络编程》
- 《Linux 高性能服务器设计》(游双 著)
- 《Linux 内核设计与实现》
- 编程基础
- 《编写可读代码的艺术》
- 《head firs 设计模式》
- 计算机基础
- 进阶篇
- 《深入理解 Linux 内核架构》
- 《程序员自我修养》
- C++编程
- 《C++ primer 》(第六版)
- 《Effective C++ :改善程序与设计的 55 个方法》
- 《深入探索 C++对象模型》
- 《STL 源码剖析》
- 其他
- 《金字塔原理》
- 《麦肯锡方法》
3 issue 记录
学习过程中遇到的相关或其他知识点,做个记录,后续填坑
- WSL 在 Linux 学习中的应用;
使用WSL(Windows for subsystem Linux)
在 win10 平台下构建 Linux 开发环境,学习与使用 linux 命令行工具。 - Linux 文件系统:
/proc
目录解析, - GNU 核心工具组:GNU coreutils,List of GNU packages,coreUtils 常用工具
- 其他