Skip to content

Latest commit

 

History

History
181 lines (160 loc) · 8.17 KB

capability-checklist.md

File metadata and controls

181 lines (160 loc) · 8.17 KB

实习生能力检查清单

这个清单的目的是为了在实习生内训结束时,检测实习生对于接下来的开发工作需要掌握的各项基础能力。 其中,git 操作能力、 Linux Commands / Bash Scripting、 Python Programming、ROS 是所有开发类实习生都需要掌握的基础能力。前端类(Web、Android、iOS)开发需要掌握 git 操作能力、 ROS Web Tools、 以及各自前端开发需要的基础知识。

Linux 命令行操作

我们Linux命令的门槛要求是《The Linux Command Line》(TLCL)。可以自由下载阅读(TODO links)。

  • date 命令能够显示任意天的时间,并选择格式。例如 2018-06-26 或者 20180626。
  • df 命令能够按照KB、MB、GB显示磁盘容量大小。
  • free 命令能够按照KB、MB、GB显示内存容量大小;能够知道
  • pwd、cd 知道,会用。
  • ls 知道 -a -l -t -F -r -h 每一个参数如何使用;知道如何使用通配符(glob)。
  • file 会使用;
  • less 会使用搜索和翻页快捷键。
  • /rootfs 知道linux的常规文件系统目录。
  • cp 会使用 -i -v -f -r 参数。
  • mv 同 cp。
  • mkdir 会使用 -p 参数。
  • rm 会使用 -r -f -i -v 等信息。
  • ln 理解链接的意思,理解 -s 的差别。
  • wildcard 会使用这则表达式和常用的通配符展开。
  • type 理解 TLCL 中的 command 的概念。
  • which 会使用。
  • man 会使用,会翻页,会搜索。
  • alias 会创建别名来提高自己的效率。
  • cat 会用;会添加行号。
  • sort 重要:能够按照列进行排序,能够按照数值进行排序,能够去重,能够倒排。
  • uniq 能够搭配 sort 使用。
  • grep VIP 要求熟练各种参数的使用 -nirIlE 。
  • wc 几个参数都会使用,结果能保存在变量中。
  • head 能够输出任意行,能够跟 tail 搭配输出任意行。
  • tail 能够连续查看日志文件输出。
  • tee 结合管道使用;
  • 管道 VIP 能够理解shell中的管道的概念。
  • echo VIP 熟练使用 echo 命令。
    • 理解命令行中不同场合出现的星号通配符的概念,如何被展开。
  • 理解反引号表达的 subshell 的概念,以及如何使用。
  • 会使用 $((expr op expr)) 计算。
  • 会使用 {a,b,c}{1,2,3} 展开。
  • 会使用 env | grep 查找环境变量。
  • export 会使用,能理解。
  • unset 理解并使用。
  • 理解并区分单引号和双引号在变量展开上的区别。
  • 换行 能够理解windows和linux以及macOS中换行符的区别。
  • 能够利用vim将windows换行和linux换行来回切换。
  • 有能力探查文本文件的换行是否混杂,并fix。
  • clear 会使用快捷键。
  • history 会查看,会使用惊叹号重复调用。
  • 光标快速移动 会使用 ctrl + a e p n w u 以及 alt + f b 快捷方式(这些就够了)。
  • 自动补全 理解自动补全原理。
  • script tools(optional)能够使用script工具录制和回放命令行工作。
  • chmod VIP 理解文件系统权限模型,能够修改。
  • umask 知道umask的用途和原理。
  • sudo/su 会使用。
  • chwon 会使用,会批量/递归的修改子目录。
  • chgrp 会使用。
  • passwd 会修改自己的密码。
  • usermod 会修改。
  • adduser 会添加用户。
  • id 知道显示出来的每个字段是什么意思。
  • > 知道这个在命令行中的意思,会使用。
  • &> 理解并会使用。
  • 2>&1 理解并会使用。
  • rwxrwxrwx 理解权限模型并能通过 a+x or 755 两种方式修改权限。
  • ps 会看全局的进程并结合grep寻找自己想要的进程
  • top 会使用,理解显示的内容,知道快捷键用法。知道批量模式搭配grep使用。
  • jobs/bg/fg 知道是什么概念并会使用即可(我们主要使用tmux/screen)。
  • kill 会使用,知道SIGTERM和SIGKILL。
  • shutdown/reboot 会使用。
  • cat /proc/cpuinfo 会使用这个命令查看CPU信息。
  • nano 会使用nano编辑文本文件。
  • od 会使用od查看文件,搭配 -c -x 等参数,搭配head等命令使用。
  • vim 会用vim打开文件和退出vim。
  • vim 会进入编辑模式,修改文件内容,并保存。
  • vim 能够理解 normal ex 和 insert 以及 visual 模式。
  • vim 熟练使用搜索功能。
  • vim 熟练使用 :s 替换命令。
  • vim 知道如何跟系统剪贴板交互 "+y
  • PS1 能够将自己的命令行提示符改成笑脸。
  • color 能够理解和查询用 \\033[0;30m 这样的命令改变颜色。
  • apt-get install 能够安装工具包。
  • apt-cache search 能够搜索需要的工具包。
  • dpkg -i 能够安装离线下载的deb包。
  • mount 能够在指定挂载点挂载常见格式(FAT、NTFS、EXT2、ISO)的分区/镜像。
  • mount -ro 能够用readonly模式挂载分区/镜像。
  • umount 知道如何卸载分区/镜像。
  • md5sum/sha1sum/sha512sum 能够计算和检验文件的校验和。
  • /dev/sd* 能够理解 /dev 目录下都是什么东西。
  • ping 能够检查网络是否联通。
  • netstat 能够查看本机开了哪些端口。
  • curl 能够用curl下载文件/发送HTTP请求。
  • wget 能够使用wget下载文件/镜像整个站点。
  • ssh 熟练登陆远程主机。
  • ssh/pubkey 理解并能够使用公钥登陆远程主机。
  • ifconfig/route/resolv.conf 有能力在命令行修改自己机器的IP地址和路由器、DNS服务器。
  • ssh/MITM 理解MITM攻击的原理,并能够正确判别主机RSA指纹冲突是否误报。
  • scp 会使用scp在两台机器间通过网络拷贝文件/目录。
  • rsync 能够在两台机器间通过网络拷贝文件/目录。
  • locate 能够使用locate命令寻找文件。
  • find VIP 要求熟练使用find寻找各种约束条件的文件,包括文件名、大小、访问/修改时间等。
  • xargs VIP 熟练xargs跟各种命令的搭配使用。
  • touch 熟练使用。
  • gzip/gunzip 能够命令行解压缩文件。
  • bzip2/bunzip2 能够命令行解压缩文件。
  • tar 能够命令行压缩文件和解压缩文件。
  • grep -E VIP 要求熟练掌握grep中的正则表达式。
  • cut 熟练使用。
  • sed 熟练使用替换命令。
  • diff/vimdiff 理解diff文件的概念和原理,能够使用diff对比两个文件的差异。
  • source 理解source命令和 bash subshell 的差别。
  • bash 能够编写if-then-else命令。
  • bash 能够编写for循环。
  • bash 能够比较两个字符串是否一直,是否是空字符串。
  • bash 能够比较两个整数的大小。
  • bash 能够使用 (()) 计算数值表达式。
  • &&/|| 能够灵活使用控制操作符(前提是理解程序/命令的返回值的概念)。
  • bash 能够使用 read 命令读取用户输入并给出提示符/提示信息。
  • $* 理解并能够使用。
  • $@ 理解并能够使用。
  • $? 理解并能够使用。
  • ${abc##a} 理解并能够使用。
  • ${abc%%b} 理解并能够使用。
  • bash -x 能够打印bash的执行记录调试错误。
  • | 管道符号的理解使用
  • 理解什么是子网掩码,并能够正确的配置IP地址和掩码。
  • 理解什么是端口,并能够正确的配置代理服务。

Git 常用操作和规范

Python 开发和调试能力

ROS 开发和调试能力

网络操作和调试能力

Web 前端开发能力

Android 开发能力

iOS 开发能力

机器人算法工程师开发能力(C++、Python)

社区经理的运营能力

云端机器人大脑服务实习生的能力

机器视觉方向实习生

自然语言处理(NLP)方向实习生

SLAM算法实习生

语音识别(ASR)方向实习生

大数据算法实习生

统计数据分析实习生