干啥
step 1
至少完整看完与练习好一本书
至少过一遍官方文档
python
- 处理文本文件,或者csv (关键词 python csv, python open, python sys) 读一个本地文件,逐行 处理(例如 word count,或者处理log)
- 遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果
- 跟数据库打交道 (python sqlite),写一个小脚本统计数据库里条目数量
- 学会用各种print之类简单粗暴的方式进行调试
- 学会用Google (phrase, domain, use reader to follow tech blogs)
- 编辑urllib2的do_open里的h.set_debuglevel改为h.set_debuglevel(1),这时可以清晰看到请求响应数据,包括https
《python参考手册》
《python基础教程》
Python Challenge
](//- python官方手册
- The Hitchhiker’s Guide to Python
- Pyth](// of the Week
- PEP 8
- 硬悟学蛇
《Python核心编程2》
- 第4章 Python对象
- 6.8 Unicode
- 8.11 迭代器和iter()函数
- 第9章 文件的输入和输出
- 第10章 错误和异常
- 第11章 函数和函数式编程
- 第12章 模块
- 第14章 执行环境
- 第15章 正则表达式 idea
- 调试工具
- Kodos](//
- RegexBuddy](//
- 正则图解](htt
- 正则表达式30分钟入门教程
- 正则表达式操作指南
《精通正则表达式》
- 第18章 多线程编程
- 20.2 使用Python进行Web应用:创建一个简单的Web客户端
linux
鸟哥的Linux私房菜
《Unix环境高级编程》
《UNIX系统编程》
- 学会使用man来查看帮助
- 文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
- 学会使用一些文本操作命令 sed/awk/grep/tail/less/more …
- 学会使用一些管理命令 ps/top/lsof/netstat/kill/iptables/dd…
- 了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息
- 了解正则表达式,使用正则表达式来查找文件。
前端
- 学习HTML基本语法
- 学习CSS如何选中HTML元素并应用一些基本样式(关键词:box model)
- 配置Apache
- 学习使用Javascript操纵HTML元件。
- 学习PHP,让后台PHP和前](//交互,对服务器相应浏览器请求形成初步认 识。实现一个表单提交和反显的功能。
- 把PHP连接本地或者远程数据库 MySQL(MySQL 和 SQL现学现用够了)
- 跟完一个名校的网络编程课程 不要觉得需要多于一学期时间,大学生是全职一学期选3-5门课,你业余时 间一定可以跟上
- 学习一个javascript库(例如jQuery 或 ExtJS)+ Ajax (异步读入一个服务器端图片或者数据库 内容)+JSON数据格式。
《HTTP: The Definitive Guide》
读完前4章你就明白你每天上网用浏览器的时候发生的事情了 (proxy, gateway, browsers)- 跳转
- 302
<?php header("Location: 3.php"); ?>
- 301
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: 2.php"); ?>
- u=urllib2.urlopen(url)后,u.url能得到服务端跳转后的地址 urllib2自己的特性 所谓的会跟进去
- 浏览器跳转
- 302
- 实战至少3回合:http://coolshell.cn/articles/5426.html User Link
- 配置代码补全
- 外观
- 外部命令
- Source Insight(ctag)
](//Git](//
- Pro Gi
- GotGitHub](h
- tryGit](http://t
- GitImmersion](http://gitimmersio
- visual-git-guide](http://marklodato
- a-successful-git-branching-model
- Everyday GIT With 20 Commands Or So
step 2
](//
翻墙
- shadowsocks + 一台海外 VPS + Chrome(SwitchyOmega)/Firefox(AutoProxy) 我是如何优雅且靠谱地翻墙
- SSH 隧道
前端进阶](//
DOM](//
库
- 重新学C语言,理解指针和内存模型,用C语言实现一下各种经典的算法和数据结构。推荐
《计算机程序设计艺术》
、《算法导论》
和《编程珠玑》
。 - 学习(麻省理工免费课程)计算机科学和编程导论
- 学习(麻省理工免费课程)C语言内存管理
- 学习Windows SDK编程(
《Windows 程序设计》
,《MFC程序设计》
) - Java 的学习主要是看经典的Core Java
《Java 核心技术编程》
和《Java编程思想》
(有两卷, 我仅链了第一卷,足够了,因为Java的图形界面了解就可以了) - 学习JDK,学会查阅Java API Doc
- 了解一下Java这种虚拟机语言和C和Python语言在编译和执行上的差别。从C、Java、Python 思考一下“跨平台”这种技术。
- 学会使用IDE Eclipse,使用Eclipse 编译,调试和开发Java程序。
- 建一个Tomcat的网站,尝试一下JSP/Servlet/JDBC/MySQL的Web开发。把前面所说的那个 PHP的小项目试着用JSP和Servlet实现一下。
关系型数据库
- 你可以安装MSSQLServer或MySQL来学习数据库。
- 学习教科书里数据库设计的那几个范式,1NF,2NF,3NF,……
- 学习数据库的存过,触发器,视图,建索引,游标等。
- 学习SQL语句,明白表连接的各种概念(参看
《SQL Join的图示》
) - 学习如何优化数据库查询(参看
《MySQL的优化》
) - 实践任务:
- 设计一个论坛的数据库,至少满足3NF,使用SQL语句查询本周,本月的最新文 章,评论最多的文章,最活跃用户。
开发工具
- 学会使用SVN或Git来管理程序版本。
- 学会使用JUnit来对Java进行单元测试。
- 学习C语言和Java语言的coding standard 或 coding guideline。(我N年前写过一篇关C语言非 常简单的文章——
《编程修养》
,这样的东西你可以上网查一下,一大堆)。 - 推荐阅读
《代码大全》`
《重构》《代码整洁之道》`
](//](//web 安全](//
](// - 学习Web](//考新浪微博被攻击的这个事](htt,以及Ruby的这篇文章)
- 零基础如何学习Web安全
- 8+1:一图胜千言哎:)
- 钟馗之眼 大量样例
Web安全标准
- OWASP
- WASC
实战环境
- XSS
- 内部平台:ks-xsslab_open CSRF ClickJacking
- http://xss-quiz.int21h.jp/ 答案:xss_quiz.txt
- http://prompt.ml/0 答案:https://github.com/cure53 XSSChallengeWiki/wiki/prompt.ml
- http://escape.alf.nu/ 答案:http://blog.nsfocus.net/alert1-to-win-write-up/
- SQL
- http://www.ichunqiu.com
- http://sebug.net
- http://zoomeye.org
- https://www.exploit-db.com/
- https://www.shodan.io/
Firefox 插件
- Firebug
- Tamper Data
- Live Http Header
- Hackbar
- Modify Header
- GreaseMonkey http://userscripts.org/scripts/show/119798
- NoScript
- AutoProxy
Chrome
- F12
- SwichySharp
- CookieHacker
Fiddler
- watcher
- 浏览器代理
- 拦截请求或相应
- 抓包
- 重放
- 模拟请求
- 编码解码
抓包
- Wireshark
- Tcpdump
Web2.0 Hacking
- XSS’OR
- 常用其中加解密与代码生成
- http://evilcos.me/lab/xssor/ User Link
- 源码:https://github.com/evilcos/xssor User Link
- XSSEE 3.0 Beta
- Monyer开发的,加解密最好用神器
- http://evilcos.me/lab/xssee/ User Link
- Online JavaScript beautifier
- JavaScript美化工具,分析JavaScript常用
- http://jsbeautifier.org/ User Link
- BeEF
- The Browser Exploitation Framework
- http://beefproject.com/ User Link
HTTP代理
- Fiddler 非常经典好用的Web调试代理工具
- Burp Suite 神器,不仅HTTP代理,还有爬虫、漏洞扫描、渗透、爆破等功能
- mitmproxy Python写的,基于这个框架写神器实在太方便了
漏洞扫描
- AWVS 不仅漏扫方便,自带的一些小工具也好用
- Nmap 绝对不仅仅是端口扫描!几百个脚本
- Python自写脚本/工具
漏洞利用
- sqlmap SQL注入利用最牛神器,没有之一
- Metasploit 最经典的渗透框架
- Hydra 爆破必备
Unix/Linux
《Unix编程艺术》`
《Linux Shell脚本攻略》《Software Design 中文版》`
- 用这些系统知识操作一下文件系统,用户(实现一个可以拷贝目录树的小程序)
- 用fork/wait/waitpid写一个多进程的程序,用pthread写一个多线程带同步或互斥的程 序。多进程多进程购票的程序。
- 用signal/kill/raise/alarm/pause/sigprocmask实现一个多进程间的信号量通信的程序。
- 学会使用gcc和gdb来编程和调试程序。
- 学会使用makefile来编译程序。
- IPC和Socket的东西可以放到高级中来实践。
爬虫进阶
- 代理池
- 爬虫「稳定」需要
- 网络请求
- wget/curl
- urllib2/httplib2/requests
- idea scrapy
- 验证码破解
- crontab是最原生的定时调度
- 基于redis实现的分布式调度
- 基于rpyc实现的分布式调度
- celery/gearman等调度框架
并发
- 线程池
- 进程内优美的并发方案
- 协程
- 进程内另一种优美的并发方案
- gevent
- 多进程
- JSON
- cPickle
- protobuf
数据存储及处理
- 数据库
- MySQL
- MongoDB
- Cassandra
- Hadoop体系
- Redis
- Sqlite
- bsddb
- ElasticSearch
- 大数据处理
- Hive
- Spark
- ELK
- SSH证书
- Fabric
- SaltStack
- puppet
- pssh/dsh
- 运维进阶
- 运维工程师必须掌握的基础技能有哪些?
- http://www.zhihu.com/question/23665108/answer/25299881 User Link
调试
- pdb
- logging
- Sentry
- strace/ltrace
- lsof
- 性能
- Python内
- timeit
- unittest
- cProfile
- Python性能分析指南:http://www.oschina.net/translate/python-performance-analysis User Link
- Python外
- Python内
- 分词
- 贝叶斯
- 神经元
遗传算法 - 聚类/分类
持续集成
- 自测试
- nose
- Jenkins
书
黑客与画家
浪潮之巅
重构
代码整洁之道
Rework中文版
高效程序员的45个习惯
黑客攻防技术宝典(Web实战篇)
白帽子讲Web安全
Web前端黑客技术揭秘
Web之困
SQL注入攻击与防御
自私的基因
失控
环境
- pip
- Vagrant
- tmux/screen
- vim
- Markdown](//
- zsh + oh-my-zsh](//
- Python2.7
- Django1.4
- http://djangobook.py3k.cn/2.0/
- Django Debug Toolbar
- web.py
- Flask
- Tornado
- node.js
- Ubuntu/Gentoo/Centos
- ipython