内容简介
1 “Hello,World”写下第一个程序
选择文本编辑器
核心功能
做出你的选择
Sublime Text
TextMate
Notepad++
Gedit
Vim
Eclipse
IntelliJ
Xcode
Visual Studio
创建项目目录
从小处着手:创建测试文件
HTML和1avaScript如何在浏览器中一起工作
小幅修改的意义
乘胜追击
在manifest.json中引用JavaScript
让它运行起来
能力越大,责任越大
总结
2 软件如何工作
什么是“软件”
软件生命周期
源代码——一切开始的地方
一组指令
编程语言
从源代码到0和1
编译型语言与解释型语言:源代码何时变成二进制码
运行环境
处理器执行
输入和输出
输入让软件更实用(可重用)
输入从哪来
软件如何获得输入
输出类型
GIGO:垃圾进,垃圾出(Garbage In,Garbage Out)
状态
给kittenbook添加状态
内存和变量
变量
变量存储
有限的资源
内存泄漏
总结
3 认识你的计算机
计算机很笨
计算机有魔力
站在巨人的肩膀上
计算机内部
处理器
短期存储器
长期存储器
使用计算机
文件系统
命令行:取得控制权
总结
4 构建工具
(几乎)全部自动化
安装Node
安装Grunt
帮你创造软件的软件
避免错误
更快地工作
自动化的任务
编译
测试
打包
部署
构建你自己的构建过程
Gruntfile.js
使用Grunt插件
加载Grunt插件
注册任务
看好了
总结
5 数据(类型)、数据(结构)、数据(库)
数据类型
为什么存在不同的数据类型
基本数据类型
组合数据类型
动态和静态类型语言
数据结构
集合
栈
树
图
如何选择高效的数据结构
数据库
长期(持久化)存储
关系型数据库
SOL简介
总结
6 正则表达式
Ctrl+F组合键:寻找模式
在JavaScript中使用正则表达式
重复
?
+
*
特殊字符和转义字符
{1,10}:创造属于你的超能力
匹配任意字符的“.”
不要太贪婪
从[A-Za-z]理解方括号
字符列表
范围
排除
电话号码模式
我需要\s
方括号的快捷方式
限制条件
提取标签
高级查找和替换
(一行的)开头和结尾
标记
全局匹配
忽略大小写
多行
什么时候会用到正则表达式
grep
代码重构
校验
数据抽取
总结
7 何时使用if、for、while
操作符
比较操作符
逻辑操作符
一元操作符
二元操作符
三元操作符
“真”和“假”
“语法糖”
循环遍历一个数组
遍历图片
嵌套循环
你需要停下来
无限循环
再停一下
当你不知道什么时候停下
何时执行
事件
监听器
定时任务
超时
在事情出错前接住它
编写健壮的代码
总结
8 函数和方法
函数结构
定义
调用
参数
调用栈
代码封装
一次做好一件事
分而治之
物尽其用
代码重用
解决通用问题
用更少的代码做更多的事情
不要做重复的事(DRY)
作用域
全局变量
本地变量
变量查找是怎么工作的
总结
9 编程标准
编码惯例
设定标准
黑科技,用还是不用
立即付款还是先用后付款
写可维护的代码
代码格式化
保持一致
空白字符
规则不会自己出现:要制定规则
使用其他人的成果
更快地构建
开源软件
由社区建立
什么时候该自己写
最佳实践
文档
计划
测试
总结
10 文档
文档化意图
自文档代码
不要将显而易见的东西写入文档
过时文档的危险性
用文档来找bug
为自己写文档
你的记忆力有多好
为了学习而记录文档
超越注释的文档
给别人写的文档
记录你的决定
记录你的资源
为了教学而写文档
总结
11 计划
三思而后行
创建规格说明
设计架构
画示意图
尝试破坏你的系统
迭代式计划
为扩展设计
你的优先级是什么
用户体验
性能
安全
伸缩性
截止日期
平衡的艺术
识别并创建限制条件
知道可以做什么,不可以做什么
总结
12 测试和调试
手工测试
边做边测
尝试些疯狂的事
吃你自己的狗粮
自动化测试
单元测试
给Kittenbook配置测试
失败时代
间谍喜欢我们(我们也喜欢间谍)
集成测试
尽早发现问题
调试
错误
日志
断点
查看、监控和控制台
单步执行代码
调用栈
找到根本原因
编码、测试、调试、不断重复
总结
13 授人以渔:如何用一生学习编程
如何搜索
找到正确的关键字
以终为始
识别高质量资源
个人博客:隐藏的宝藏
什么地方、什么时候,以及怎么问编程问题
什么地方
什么时候
怎么问
通过教别人来学习
总结
14 构建你的技能
做你自己的kittenbook
给Facebook重新设计风格
添加新功能
分享你的kittenbook专属版本
找到你自己的项目
解决你自己的问题
志存高远
获得帮助,提供帮助
开源项目
GitHub
找项目
贡献的不同方式
创建你自己的项目
免费在线教育
欧拉项目
Udacity
Coursera
codeacademy
Khan Academy(可汗学院)
教程
付费教育
读书
Udacity和Coursera
Treehouse
总结
15 高级主题
版本控制
为什么使用版本控制
和团队一起工作
Subversion
Git
OOP(面向对象编程)
类
继承
实例
设计模式
发布订阅
中间人
单例
总结