1 提问的智慧
如何提问很重要, 在学习任何知识之前, 需要先学会正确地提问.
2 vim学习
ruby编程不允许使用任何IDE
您可以选择Vim, Emacs等编辑器, 我们推荐使用 vim
学习手册: vim7.2学习手册
您可以参考或者使用我的vim配置
3 Linux操作
建议推荐学习鸟哥私房菜础篇
3.1 基础命令
ls history su/sudo mkdir/rmdir touch chmod chown apt-get/apt-cache, tar date cat cp mv pwd cd grep man, ps aux|grep kill/pkill whereis alias df/du rm echo diff wget ifconfig netstat top crontab scp curl tail -f ssh yum
关于每个命令的具体用法,可以查询下方给出的网站: Linux命令便捷查询手册。 需要了解linux的标准输入,标准输出,标准错误。
3.2 资料
4 git和git-flow
4.1 git
4.1.1 常用命令
git --help usage: git [--version] [--help] [-C <path>] [-c name=value] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>] The most commonly used git commands are: add Add file contents to the index bisect Find by binary search the change that introduced a bug branch List, create, or delete branches checkout Checkout a branch or paths to the working tree clone Clone a repository into a new directory commit Record changes to the repository diff Show changes between commits, commit and working tree, etc fetch Download objects and refs from another repository grep Print lines matching a pattern init Create an empty Git repository or reinitialize an existing one log Show commit logs merge Join two or more development histories together mv Move or rename a file, a directory, or a symlink pull Fetch from and integrate with another repository or a local branch push Update remote refs along with associated objects rebase Forward-port local commits to the updated upstream head reset Reset current HEAD to the specified state rm Remove files from the working tree and from the index show Show various types of objects status Show the working tree status tag Create, list, delete or verify a tag object signed with GPG
4.1.2 问题
- Git的三颗树:
working dir
,Index
,HEAD
分别是什么? -
git add
,git commit
,git stash
做了什么操作,文件是如何标志和转移的?
4.1.3 资料
4.2 git-flow
4.2.1 工作原理
4.2.2 常用命令
- git flow init
- git flow feature start
- git flow feature publish
- git flow feature track
- git flow feature finish
- git flow release [start|publlish|track|finish]
4.2.3 问题
- Git Flow 解决了什么问题, 其基本思想是什么?
- Git Flow中的分支从哪里而来,最后到哪里去?
- Git Flow中的命令和Git中的命令是如何对应的?
5 Ruby语言
5.1 基础语法
推荐书籍: Ruby基础教程
5.2 类库
- String
- Array
- Hash
- Numeric
- File
更多请参考ruby官方类库: ruby-doc
5.3 元编程
阅读完ruby元编程之后, 才会有醍醐灌顶的感觉.
请尽量阅读原版.
5.4 Ruby底层实现
5.5 提高篇
推荐Working With XXX系列
Working With Unix Processes, TCP Sockets, Ruby Threads
6 代码规范
7 Rails框架
7.1 调试技术
- pry
- 获取日志中的信息
7.2 测试技术
- Rspec
7.3 应用层
- MVC结构
- 常用类库
- Rails guide
- 源码
8 服务间通信
- 设计原则及实例
- 接口
- 队列
- sidekiq
- kakfa
9 Web前端
- 浏览器:firebug、渲染模型
- html
- css
- javascript
- ajax
- 提高篇
- Web流行框架
- node
- react
- angular
10 数据库
- 数据库表结构设计
- 如何建立高效索引
- 慢查询优化
- 主从
- 高可用
11 网络安全
- 白帽子讲web安全
- 黑客攻防技术宝典
- 数据库注入
- XXS攻击
12 设计原则
- Head first设计模式
- ruby面向对象编程
- 重构
- 敏捷软件开发:原则、模式与实践
13 计算机基础
- 操作系统
- 深入理解计算机系统
- 算法结构
- 编程珠玑
- 框架核心算法
14 HTTP协议
TCP/IP详解:卷一
15 缓存框架
- 浏览器端
- CDN
- varnish
- nginx
- Rails:object,partial,page,action
- redis
16 异步处理框架
- redis
- kafka
17 搜索框架
ElasticSearch
18 服务器框架
- nginx
- passenger