[
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.sass-cache\nnode_modules\n*log\n*logs\n.publish\n"
  },
  {
    "path": "README.md",
    "content": "# 程序员技能图谱\r\nGithub 开源项目地址：**[https://github.com/TeamStuQ/skill-map](https://github.com/TeamStuQ/skill-map)**，欢迎 **Star** :)。\r\n\r\n## 简介\r\n\r\n程序员技能图谱是由极客邦科技 Geekbang（[https://www.geekbang.org/](https://www.geekbang.org/)）发起的一个技术社区开源项目，志在汇集、整理、共建泛 IT 技术领域（人工智能，前端开发，移动开发，云计算，大数据，架构，运维，安全，后端开发，测试，智能硬件等）及互联网产品、运营等领域学习技能图谱，帮助程序员梳理知识框架结构，并尝试提供路径指导和精华资源，方便技术人学习成长。\r\n\r\n除非特别声明，本开源项目所有领域技能图谱内容均只代表所参与贡献的技术人员个人立场，与其公司背景无关。本项目出发点旨在抛砖引玉，有任何不同意见和反馈，请提交 [Issue](https://github.com/TeamStuQ/skill-map/issues) 讨论，或发送邮件至 sean@geekbang.org，编辑会及时跟进或组织讨论，并持续更新内容版本。请理解并支持，感谢！:)\r\n\r\n目前技能图谱已有如下领域，点击标题可以预览文本文件（.md），也可以在[『图片预览版』](https://github.com/TeamStuQ/skill-map/blob/master/data/Preview-source-skillmap-PNG.md)以技能树形式预览图片文件（.png）：\r\n\r\n|**领域**（[点击预览](https://github.com/TeamStuQ/skill-map/blob/master/data/source-skillmap-PNG-DesignByStuQ.md)）| **核心贡献者 ID** | **原创链接** |**学习资源**|\r\n|------- | ---- | ---- | ---- |\r\n|[**# 人工智能 AI**]()||||\r\n|[- 机器学习](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MachineLearning.md)|[@徐英凯](https://github.com/kevinhsu)｜闪银机器学习工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/26)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-MachineLearning-by-StuQ.png)\r\n|[- Apollo 自动驾驶](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Apollo.md)|[@Apollo 技术布道师团队](http://apollo.auto/index_cn.html)|[原创链接](https://github.com/ApolloAuto/apollo)|[推荐](https://github.com/TeamStuQ/skill-map/issues/26)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Apollo.png)\r\n|[**# 大数据**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-BigDataEngineer.md)|[@祝海林 ](https://github.com/allwefantasy)｜丁香园大数据技术专家|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/12)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-BigData-by-StuQ.png)\r\n||@高扬｜欢聚时代资深大数据技术专家|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/12)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-BigData-by-StuQ.png)\r\n|[- Hadoop ](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Hadoop.md)|[@张丹](http://blog.fens.me)｜况客创始人|[原创链接](http://blog.fens.me/series-hadoop-family/)|[推荐](https://github.com/TeamStuQ/skill-map/issues/22)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Hadoop-by-StuQ.png)\r\n|[**# Web 前端**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-FrontEndEngineer.md)|[@jayli（拔赤）](https://github.com/jayli/)｜阿里巴巴前端技术专家|[原创链接](https://github.com/jayli/jayli.github.com/issues/16)|[推荐](https://github.com/TeamStuQ/skill-map/issues/9)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-FrontEnd-by-StuQ.png)|\r\n| |[@Jackson Tian ](https://github.com/JacksonTian)｜阿里巴巴前端技术专家|[原创链接](https://github.com/JacksonTian/fks)|[推荐](https://github.com/TeamStuQ/skill-map/issues/9)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-FrontEnd-by-StuQ.png)|\r\n|[- 移动性能优化](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobilePerformanceOptimization.md)|[@刘恒兵（河伯）](https://github.com/herbertliu)｜腾讯前端技术专家、IvWeb 负责人|[原创链接](https://github.com/herbertliu/OMS)|[推荐](https://github.com/TeamStuQ/skill-map/issues/9)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-MobileOptimization-by-StuQ.png)|\r\n|[- HTML5 开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-HTML5.md)|[@Phodal（黄峰达）](https://github.com/Phodal)｜ThoughtWorks 高级咨询师|[原创链接]()|[推荐](https://github.com/TeamStuQ/skill-map/issues/76)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-HTML5-by-StuQ.png)|\r\n|[- Angular 2](https://github.com/TeamStuQ/skill-map/blob/master/data/map-AngularJS2.md)|[@汤桂川](https://github.com/lightningtgc)｜广发证券前端技术专家|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/9)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Angular2-by-StuQ.png)\r\n|[**# Server 后端**]()||||\r\n|[- 架构师](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Architect.md)|@沈剑｜58到家技术委员会主席／技术总监|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/53)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Architect-by-StuQ.png)\r\n|[- OpenResty](https://github.com/TeamStuQ/skill-map/blob/master/data/map-OpenResty.md)|[@温铭](https://github.com/moonbingbing)｜OpenResty Inc. 合伙人|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/29)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-OpenResty-by-StuQ.png)\r\n|[- 直播技术](https://github.com/TeamStuQ/skill-map/blob/master/data/map-LiveTelecast.md)|[@李雨来](https://github.com/blacktear23)｜SpeedyCloud 迅达云技术 VP|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/55)｜[脑图]()\r\n|[- CDN 技术](https://github.com/TeamStuQ/skill-map/blob/master/data/map-CDN.md)|[@李孟](https://github.com/x8s)｜SpeedyCloud 迅达云首席架构师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/72)｜[脑图]()\r\n|[- DNS 排查](https://github.com/TeamStuQ/skill-map/blob/master/data/map-dns-troubleshoot.md)|[@李孟](https://github.com/x8s)｜SpeedyCloud 迅达云首席架构师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/72)｜[脑图]()\r\n|[**# 云计算**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-CloudComputing.md)|@费良宏｜AWS 首席云计算技术顾问|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/11)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-CloudComputing-by-StuQ.png)\r\n|- OpenStack|@夏艳｜UnitedStack 公共关系总监|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/19)｜脑图\r\n[- 容器 Container](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Container.md)|[@林帆 ](https://github.com/linfan)｜阿里巴巴研发效能部技术专家|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/20)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Container-by-StuQ.png)\r\n[- Serverless](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Serverless.md)|[@林帆 ](https://github.com/linfan)｜阿里巴巴研发效能部技术专家|-|推荐｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Serverless-by-StuQ.png)\r\n[- 微服务 MicroService](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Microservice.md)|[@王磊 ](https://github.com/wldandan)｜西安尚度元科技技术总监|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/23)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-MicroService-by-StuQ.png)\r\n|[**# 安全**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-SecurityEngineer.md)|[@余弦 ](https://github.com/evilcos) ｜知道创宇技术 VP|[原创链接](http://blog.knownsec.com/Knownsec_RD_Checklist/v3.0.html)|[推荐](https://github.com/TeamStuQ/skill-map/issues/13)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Security-by-StuQ.png)\r\n|[**# 智能运维**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-IntelligentDevOps.md)|[@Tanky Woo ](https://github.com/tankywoo)｜知道创宇资深运维工程师|[原创链接](http://blog.knownsec.com/2015/03/how-many-basic-skills-should-a-operation-and-maintenance-engineer-get/)|[推荐](https://github.com/TeamStuQ/skill-map/issues/10)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-IntelligentDevOps-by-StuQ.png)\r\n|[- DBA](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DBA.md)|[@杨一 ]()｜杭州有赞科技有限公司 DBA 专家|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/77)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-DBA-by-StuQ.png)\r\n[- DevOps](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevOps.md)|[@林帆 ](https://github.com/linfan)｜阿里巴巴研发效能部技术专家|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/107)｜[脑图](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-DevOps-by-StuQ.png)\r\n|[- Kubernetes](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Kubernetes.md)|[@张磊](https://github.com/resouer)｜阿里巴巴高级技术专家 & CNCF 官方大使|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/10)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Kubernetes-by-StuQ.png)\r\n||[@李响](https://github.com/xiang90)｜阿里巴巴资深技术专家 & CNCF 技术监督委员会成员|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/10)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Kubernetes-by-StuQ.png)\r\n|[**# 测试**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-testing.md)|[@TesterHome 社区](https://testerhome.com/)|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/15)|脑图|\r\n|[- 移动无线测试](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileWirelessTesting.md)|[@陈晔 Monkey](https://github.com/monkeytest15)|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/15)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-MobileTesting-by-StuQ.png)\r\n|[**# 移动开发**]()|||||\r\n|[- iOS 开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-iOSDev.md)|[@唐巧](https://github.com/tangqiaoboy) ｜猿题库小猿搜题产品技术负责人|[原创链接](https://gist.github.com/tangqiaoboy/5fadd9ba398277680b87)|[推荐](https://github.com/TeamStuQ/skill-map/issues/14)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-iOSDev-by-StuQ.png)\r\n|[- Android App 开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-AndroidDev.md)|[@anly_jun](https://github.com/mingjunli) |[原创链接](http://www.jianshu.com/p/39c63eff3c36)|[推荐](https://github.com/TeamStuQ/skill-map/issues/85)｜脑图\r\n|[- Android ROM 开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-AndroidROMDev.md)|[@anly_jun](https://github.com/mingjunli) |[原创链接](http://www.jianshu.com/p/0a4a33e63338)|[推荐](https://github.com/TeamStuQ/skill-map/issues/85)｜脑图\r\n|[- Android 架构师](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-AndroidArchitect.md)|[@顾浩鑫（ASCE1885）](https://github.com/ASCE1885)｜ 平安金融科技移动研发工程师 |-|[推荐](https://github.com/TeamStuQ/skill-map/issues/85)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-AndroidArchitect-by-StuQ.png)\r\n|[**# 智能硬件**]()|||||\r\n|[- 嵌入式开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-EmbeddedEngineer.md)|[@Phodal（黄峰达）](https://github.com/phodal) ｜ThoughtWorks 高级咨询师|[原创链接](https://github.com/phodal/eks)|[推荐](https://github.com/TeamStuQ/skill-map/issues/21)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-EmbeddedEngineer-by-StuQ.png)\r\n|[**# 开发语言**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Total.md)|[@吴坚 ](https://github.com/jamsonwoo)  ｜南航软件工程师|[原创链接](https://github.com/jamsonwoo/StuQ_skill-map)|[推荐](https://github.com/TeamStuQ/skill-map/issues/18)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-ProgrammingLanguage-by-StuQ.png)\r\n|[- Golang](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Golang.md)|[@谢孟军 ](https://github.com/astaxie) ｜Apple 资深技术专家|[原创链接](https://github.com/astaxie/build-web-application-with-golang)|[推荐](https://github.com/TeamStuQ/skill-map/issues/17)｜脑图\r\n|[- Clojure](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Clojure.md)|[@Loretta ](https://github.com/lorettahe) ｜SwiftKey 软件工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/25)｜脑图\r\n|[- Python](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Python.md)|[@ZoomQuiet（大妈） ](https://github.com/ZoomQuiet) ｜猎豹移动技术专家|[原创链接](http://wiki.zoomquiet.io/pythonic/Path2Pythoneer)|[推荐](https://github.com/TeamStuQ/skill-map/issues/30)｜脑图\r\n|[- Haskell](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Haskell.md)|[@张淞 ](https://github.com/HaskellZhangSong) ｜网易杭州研究院高级开发工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/36)｜脑图\r\n|[- Node.js](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Nodejs.md)|[@桑世龙（i5ting） ](https://github.com/i5ting) ｜阿里巴巴前端技术专家|[原创链接](https://github.com/nodeonly/stack)|[推荐](https://github.com/TeamStuQ/skill-map/issues/35)｜脑图\r\n|[- Ruby](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Ruby.md)|[@张汉东（Alex） ](https://github.com/ZhangHanDong) |-|[推荐](https://github.com/TeamStuQ/skill-map/issues/40)｜脑图\r\n|[- Java](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Java.md)|[@Zhang Wei](https://github.com/zhangwei217245)|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/43)｜脑图\r\n|[**# 开发工具**]()||||||\r\n|[- Git](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Git.md)|[@吴坚 ](https://github.com/jamsonwoo)  ｜南航软件工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/48)｜脑图\r\n|[**# 技术管理**]()||||||\r\n|[- CTO 技能](https://github.com/TeamStuQ/skill-map/blob/master/data/map-CTO.md)|@黄勇｜特赞科技 CTO、EGO 会员|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/103)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-CTO-by-StuQ.png)\r\n\r\n以及**正在建设中**的领域：\r\n\r\n- 服务端开发\r\n- 分布式数据库开发\r\n- IoT 物联网\r\n- PHP 语言\r\n- Swift 语言\r\n- Objective-C 语言\r\n- C++ 语言\r\n- C# 语言\r\n\r\n欢迎**贡献**新领域技能图谱，或**推荐**学习路径与资源，有任何改进意见和建议，也可以建立 issue 讨论或发送邮件至 sean@geekbang.org。所有参与该项目的社区朋友均有机会获赠礼品／技能图谱纸质印刷 A1 版。\r\n\r\n## 改进目标\r\n\r\n1. 继续细化各领域的技能节点\r\n2. 提供各领域的参考学习路径\r\n3. 推荐各知识点相关优质资源\r\n\r\n## 图谱 MarkDown 分级规范\r\n\r\n为了便于编辑和纠错更新，现统一图谱 MarkDown 文件**分级规范**如下：\r\n\r\n1. 根据内容考虑用\" #,##,### \"依次表示高级别主干分级\r\n2. 次级别分支用\" -,*,+ \"三种符号区分\r\n3. 所有“-”的优先级高于“*”\r\n4. 所有“*”的优先级高于“+”\r\n\r\n## 加入我们\r\n- 提交图谱：直接提交 Pull Request，或者联系项目负责人 Sean，可发邮件至 sean@geekbang.org\r\n\r\n## 版本信息\r\n\r\n### V 1.0\r\n- 更新稳定版本，新增 IT 职业技术重要领域\r\n\r\n### v 0.2.0\r\n- IT 技术各主要领域基本覆盖\r\n\r\n### v 0.1.2\r\n- 云计算领域新增：OpenStack，容器技术\r\n- 移动开发领域新增：iOS 开发\r\n- 测试领域新增：移动无线测试\r\n- 智能硬件领域新增：嵌入式开发\r\n\r\n### v 0.1.1\r\n- 程序员技能图谱第一版发布\r\n\r\n## 版权声明\r\n本技能图谱遵循 **[CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)** 协议。_*商业转载必须征求极客邦科技 Geekbang 授权同意，转载请务必注明[出处](http://www.stuq.org/subject/skill-map/)。*_ **极客邦科技 Geekbang** 保留最终解释权及法律追究权力。\r\n\r\n欢迎关注极客邦科技 Geekbang 推出的「极客时间」App，获取更多技术干货。\r\n\r\n![极客时间](https://github.com/TeamStuQ/skill-map/blob/master/img/GeekTime-QRCode-200X200.png)\r\n\r\n## 特别鸣谢\r\n\r\n「程序员技能图谱」开源项目能有精美的展示图片，背后是设计同学在百忙之中配合内容编辑不厌其烦的设计、更新和修正，在此特别鸣谢以下设计同学的贡献（排名不分先后）：\r\n\r\n陈接（Jack）、杨旸（Tammy）、谢汝冰（Ice）、王慧娟（Amy）、王硕映（Ray）、张卓（Leslie）。\r\n\r\n## 赞助声明\r\n\r\n程序员技能图谱项目接受企业或者个人赞助，赞助经费主要用于覆盖图谱编辑、设计、印刷和运营成本。\r\n\r\n赞助合作请发邮件至 sean@geekbang.org 。\r\n\r\n\r\n"
  },
  {
    "path": "css/style.css",
    "content": "* {\n  box-sizing: border-box; }\n\nhtml,\nbody {\n  display: block;\n  position: relative;\n  margin: 0;\n  padding: 0;\n  background-color: #eee;\n  font-family: \"Source Han Sans SC\", \"Helvetica Neue\", Helvetica, Arial, \"Lantinghei SC\", \"Hiragino Sans GB\", STHeiti, \"Microsoft Yahei\", \"Microsoft Sans Serif\", sans-serif;\n  font-size: 16px;\n  word-wrap: break-word;\n  word-break: break-all; }\n\nul {\n  margin-top: 1px;\n  margin-bottom: 1px;\n  margin-left: 0;\n  padding-left: 3%;\n  list-style-type: square; }\n  ul li {\n    line-height: 1.5em; }\n\np {\n  line-height: 1.5em;\n  margin: 0; }\n\nh1,\nh2,\nh3 {\n  margin: 10px 0; }\n\n.hide {\n  display: none !important; }\n\n.root {\n  margin: 10px;\n  padding: 10px 40px 80px;\n  background-color: #fff;\n  border-width: 1px;\n  border-style: solid;\n  border-color: #ddd;\n  border-radius: 5px; }\n  .root h1 {\n    font-size: 1.7em; }\n  .root p span {\n    color: #c00; }\n  .root .join-us {\n    width: 100%;\n    padding: 0;\n    margin: 1em 0 1em -6%;\n    list-style: none;\n    text-align: center; }\n    .root .join-us li {\n      display: inline-block; }\n      .root .join-us li:first-child {\n        margin-right: 5%; }\n  .root ul h2 {\n    font-weight: 400; }\n  .root ul .node li {\n    margin: 0.5em 0; }\n    .root ul .node li h3,\n    .root ul .node li h4,\n    .root ul .node li h5 {\n      margin: 0;\n      padding: 0;\n      font-weight: 400; }\n    .root ul .node li h5 {\n      font-size: 0.95em; }\n\n#intro h2,\n#end h2 {\n  font-size: 1.17em;\n  font-weight: 500; }\n\n#frontEndIndex h2,\n#cloudComputingIndex h2,\n#securityIndex h2,\n#IOAMIndex h2,\n#bigDataIndex h2,\n#language h2,\n#IHIndex h2 {\n  display: inline-block;\n  color: #17f; }\n  #frontEndIndex h2:focus, #frontEndIndex h2:hover,\n  #cloudComputingIndex h2:focus,\n  #cloudComputingIndex h2:hover,\n  #securityIndex h2:focus,\n  #securityIndex h2:hover,\n  #IOAMIndex h2:focus,\n  #IOAMIndex h2:hover,\n  #bigDataIndex h2:focus,\n  #bigDataIndex h2:hover,\n  #language h2:focus,\n  #language h2:hover,\n  #IHIndex h2:focus,\n  #IHIndex h2:hover {\n    color: #00f;\n    text-decoration: underline; }\n\n#frontEndIndex h3 span,\n#cloudComputingIndex h3 span,\n#securityIndex h3 span,\n#IOAMIndex h3 span,\n#bigDataIndex h3 span,\n#language h3 span,\n#IHIndex h3 span {\n  font-size: 0.85em;\n  font-weight: 400; }\n\n#IH h2 {\n  display: inline-block;\n  color: #17f; }\n\n.to-top, .to-top::before {\n  display: block;\n  position: fixed;\n  opacity: 0.98; }\n  .to-top::before {\n    content: '';\n    right: 2em;\n    bottom: 2em;\n    width: 4em;\n    height: 4em;\n    background-image: url(\"../img/top.svg\");\n    background-size: contain;\n    background-repeat: no-repeat; }\n  .to-top:focus, .to-top:focus::before, .to-top:hover, .to-top:hover::before {\n    cursor: pointer; }\n\nli.closed {\n  list-style-image: url(\"../img/plus.png\"); }\n\nli.opened {\n  list-style-image: url(\"../img/minus.png\"); }\n\nli.normal {\n  list-style-image: none; }\n\n.expand-collapse {\n  display: block;\n  position: fixed;\n  top: 0;\n  right: 2em;\n  width: 8em;\n  height: 2em;\n  padding: 0.5em;\n  background-color: #fff;\n  border-width: 1px;\n  border-style: solid;\n  border-color: #ddd;\n  border-top: none;\n  font-size: 0.8em;\n  text-align: center; }\n  .expand-collapse a {\n    color: #17f; }\n    .expand-collapse a:focus, .expand-collapse a:hover {\n      color: #00f;\n      cursor: pointer;\n      text-decoration: underline; }\n\nfooter {\n  margin-left: 10px;\n  margin-bottom: 10px; }\n\n/*# sourceMappingURL=style.css.map */\n"
  },
  {
    "path": "data/Preview-source-skillmap-PNG.md",
    "content": "# 程序员技能图谱（图片预览版）\n\n### 项目简介\n\n「程序员技能图谱是由极客邦科技 Geekbang（[https://www.geekbang.org/](https://www.geekbang.org/)）发起的一个技术社区开源项目，志在汇集、整理、共建泛 IT 技术领域（人工智能，前端开发，移动开发，云计算，大数据，架构，运维，安全，后端开发，测试，智能硬件等）及互联网产品、运营等领域学习技能图谱，帮助程序员梳理知识框架结构，并尝试提供路径指导和精华资源，方便技术人学习成长。\n\n「程序员技能图谱」Github 开源项目地址：**[https://github.com/TeamStuQ/skill-map](https://github.com/TeamStuQ/skill-map)**，欢迎 Star :)。\n\n### 版权声明\n本技能图谱遵循 **[CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)** 协议。_*商业转载必须征求极客邦科技 Geekbang 授权同意，转载请务必注明[出处](http://www.stuq.org/subject/skill-map/)。*_ **极客邦科技 Geekbang** 保留最终解释权及法律追究权力。\n\n## SkillMap 图片预览（Design by Geekbang）\n\n- ![机器学习工程师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-MachineLearning-by-StuQ.png)\n\n- ![大数据工程师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-BigData-by-StuQ.png)\n\n- ![架构师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-Architect-by-StuQ.png)\n\n- ![前端工程师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-FrontEnd-by-StuQ.png)\n\n- ![云计算工程师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-CloudComputing-by-StuQ.png)\n\n- ![CTO 技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-CTO-by-StuQ.png)\n\n- ![DevOps 技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-DevOps-by-StuQ.png)\n\n- ![移动性能优化技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-MobileOptimization-by-StuQ.png)\n\n- ![HTML5 技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-HTML5-by-StuQ.png)|\n\n- ![Angular2 技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-Angular2-by-StuQ.png)\n\n- ![Hadoop 技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-Hadoop-by-StuQ.png)\n\n- ![OpenResty 技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-OpenResty-by-StuQ.png)\n\n- ![Container 技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-Container-by-StuQ.png)\n\n- ![微服务技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-MicroService-by-StuQ.png)\n\n- ![Web 安全技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-Security-by-StuQ.png)\n\n- ![智能运维技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-IntelligentDevOps-by-StuQ.png)\n\n- ![DBA 工程师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-DBA-by-StuQ.png)\n\n- ![Kubernetes 技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-Kubernetes-by-StuQ.png)\n\n- ![移动无线测试技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-MobileTesting-by-StuQ.png)\n\n- ![iOS 工程师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-iOSDev-by-StuQ.png)\n\n- ![Android 架构师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-AndroidArchitect-by-StuQ.png)\n\n- ![嵌入式开发工程师技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-EmbeddedEngineer-by-StuQ.png)\n\n- ![开发语言综述技能图谱](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-ProgrammingLanguage-by-StuQ.png)\n\n以上设计图片会持续更新，欢迎**贡献**新领域技能图谱，**推荐**学习路径与资源（赠礼品），有任何改进意见和建议，也可以建立 issue 讨论或发送邮件至  Raymond@geekbang.org。\n\n## 图谱 MarkDown 分级规范\n\n为了便于编辑和纠错更新，现统一图谱 MarkDown 文件**分级规范**如下：\n\n1. 根据内容考虑用\" #,##,### \"依次表示高级别主干分级\n2. 次级别分支用\" -,*,+ \"三种符号区分\n3. 所有“-”的优先级高于“*”\n4. 所有“*”的优先级高于“+”\n\n## 加入我们\n- 提交图谱：直接提交 Pull Request，或者联系项目负责人雷蒙德，可发邮件至 Raymond@geekbang.org\n- QQ群讨论：254521819，加群时请备注“姓名+职业角色”，如“Ray+前端”\n- 微信群讨论：请加StuQ小助手（StuQxiaozhushou）并备注“技能图谱”，小助手会邀请您入群\n\n## 版本信息\n\n### V 1.0\n- 更新稳定版本，新增 IT 职业技术重要领域\n\n### v 0.2.0\n- IT 技术各主要领域基本覆盖\n\n### v 0.1.2\n- 云计算领域新增：OpenStack，容器技术\n- 移动开发领域新增：iOS 开发\n- 测试领域新增：移动无线测试\n- 智能硬件领域新增：嵌入式开发\n\n### v 0.1.1\n- StuQ 技能图谱第一版发布\n\n## 版权声明\n本技能图谱遵循 **[CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)** 协议。_*商业转载必须征求极客邦科技 Geekbang 授权同意，转载请务必注明[出处](http://www.stuq.org/subject/skill-map/)。*_ **极客邦科技 Geekbang** 保留最终解释权及法律追究权力。\n\n欢迎关注极客邦科技 Geekbang 推出的「极客时间」App，获取更多技术干货。\n\n![极客时间](https://github.com/TeamStuQ/skill-map/blob/master/img/GeekTime-QRCode-200X200.png)\n\n## 特别鸣谢\n\n「程序员技能图谱」开源项目能有精美的展示图片，背后是设计同学在百忙之中配合内容编辑不厌其烦的设计、更新和修正，在此特别鸣谢以下设计同学的贡献（排名不分先后）：\n\n陈接（Jack）、杨旸（Tammy）、谢汝冰（Ice）、王慧娟（Amy）、王硕映（Ray）、张卓（Leslie）。\n\n## 赞助声明\n\n程序员技能图谱项目接受企业或者个人赞助，赞助经费主要用于覆盖图谱编辑、设计、印刷和运营成本。\n\n赞助合作请发邮件至 Raymond@geekbang.org 。\n"
  },
  {
    "path": "data/map-AngularJS2.md",
    "content": "# Angular 2 技能图谱\n\n## 模块\n\n### 自定义模块\n\n- 根模块\n\n- 特性模块\n\n- 共享模块\n\n- 核心模块\n\n### 内置模块\n\n- ApplicationModule 模块\n\n- CommonModule 模块\n\n- BrowserModule 模块\n\n- FormsModule 模块\n\n- ReactiveFormsModule 模块\n\n- RouterModule 模块\n\n- HttpModule 模块\n\n### 元数据\n\n- providers\n\n- declarations\n\n- imports\n\n- exports\n\n- bootstrap\n\n- id\n\n- schemas\n\n- entryComponents\n\n## 指令\n\n### 组件\n\n### 结构指令\n\n- 改变 DOM 树的结构，如 NgIf\n\n### 属性指令\n\n- 改变元素的外观和行为，如 NgStyle\n\n### 生命周期钩子\n\n- OnInit\n\n- OnChanges\n\n- DoCheck\n\n- OnDestroy\n\n### 内置指令\n\n- 通用指令\n\n    * NgClass\n    \n    * NgStyle\n    \n    * NgIf\n    \n    * NgSwitch\n    \n    * NgFor\n    \n    * NgTemplateOutLet\n    \n    * NgPlural\n\n- 表单指令\n\n    * FormsModule 模块\n\n        + NgForm\n        \n        + NgModelGroup\n        \n        + NgModel\n        \n        + InternalFormsSharedModule 模块\n\n    * ReactiveFormsModule 模块\n    \n        + FormControlDirective\n        \n        + FormGroupDirective\n        \n        + FormControlName\n        \n        + FormGroupName\n        \n        + FormArrayName\n        \n        + InternalFormsSharedModule 模块\n\n    * InternalFormsSharedModule 模块\n\n        + 表单元素访问器指令\n        \n        + 表单选择框选项指令\n        \n        + 表单验证指令\n        \n        + 控件状态指令\n\n- 路由指令\n\n    * RouterLink\n\n        + RouterLinkWithHref（a[routerLink]）\n\n        + RouterLink（:not(a)[routerLink]）\n\n    * RouterLinkActive\n\n    * RouterOutlet\n\n### 自定义指令\n\n## 组件\n\n### 元数据\n\n- selector\n\n- moduleId\n\n- inputs\n\n- outputs\n\n- host\n\n- exportAs\n\n- providers\n\n- viewProviders\n\n- changeDetection\n\n- queries\n\n- entryComponents\n\n- templateUrl\n\n- template\n\n- encapsulation\n\n- styles\n\n- styleUrls\n\n- animations\n\n- interpolation\n\n### 生命周期钩子\n\n- OnChanges\n\n- OnInit\n\n- DoCheck\n\n- AfterContentInit\n\n- AfterContentChecked\n\n- AfterViewInit\n\n- AfterViewChecked\n\n- OnDestroy\n\n### 模板\n\n## 模板\n\n### 表达式操作符\n\n- 管道（|）\n\n    * 内置管道\n    \n    * 自定义管道\n    \n    * 纯管道\n    \n    * 非纯管道\n\n- 安全导航（?.）\n\n### 数据绑定\n\n- 属性绑定 - []\n\n    * 插值 - {{}}\n    \n    * Property 绑定\n    \n    * Attribute、 class 与 style 绑定\n\n- 事件绑定 - ()\n\n- 双向绑定 - [()]\n\n### 表单\n\n- 模板局部变量（# 或 ref-）\n\n- 表单校验\n\n* 内置校验器\n\n* 自定义检验器\n\n- 表单状态\n\n- 表单指令\n\n### 内置元素标签\n\n- \\<ng-container>\n\n- \\<ng-content>\n\n## 路由\n\n### 路由指令\n\n### 路由策略\n\n- PathLocationStrategy\n\n- HashLocationStrategy\n\n- PreloadingStrategy\n\n    * PreloadAllModules\n    \n    * NoPreloading（默认）\n    \n    * 自定义预加载策略\n\n### 路由拦截\n\n- CanActivate（激活拦截）\n\n- CanActivateChild（激活子路由配置项）\n\n- CanDeactivate（反激活拦截）\n\n- CanLoad（模块加载拦截）\n\n- Resolve（数据预加载拦截）\n\n### 路由跳转\n\n- 指令跳转\n\n    * RouterLink\n\n- 代码跳转\n\n    * navigateByUrl()\n\n    * navigate()\n\n### 路由状态\n\n- ActivatedRouteSnapshot\n\n- RouterStateSnapshot\n\n## 依赖注入\n\n### 注入器（树）\n\n### Provider\n\n- 类 Provider（useClass）\n\n- 值 Provider（useValue）\n\n- 别名 Provider （useExisting）\n\n- 工厂 Provider（useFactory）\n\n### forwardRef()\n\n### 可选依赖 - @Optional\n\n## 服务\n\n### 内置服务\n\n- JsonpModule 模块\n\n    * Jsonp\n    \n    * BrowserJsonp\n    \n    * RequestOptions\n    \n    * ResponseOptions\n    \n    * JSONPBackend\n\n- HttpModule 模块\n\n    * HTTP\n    \n    * BrowserXhr\n    \n    * XHRBackend\n    \n    * XSRFStrategy\n    \n    * RequestOptions\n    \n    * ResponseOptions\n\n### 自定义服务\n\n## RxJS\n\n### Observable\n\n### Observer\n\n### Subscription\n\n### Subject\n\n### operators\n\n- 创建操作符\n\n- 转化操作符\n\n- 过滤操作符\n\n- 组合操作符\n\n- 错误处理操作符\n\n- 工具操作符\n\n- 条件操作符\n\n### Scheduler\n\n## 装饰器\n\n### 类装饰器\n\n- @Component\n\n- @Directive\n\n- @Pipe\n\n- @Injectable\n\n- @NgModule\n\n### 属性装饰器\n\n- @Input\n\n- @Output\n\n- @HostBinding\n\n- @HostListener\n\n- @ContentChild\n\n- @ContentChildren\n\n- @ViewChild\n\n- @ViewChildren\n\n### 参数装饰器\n\n- @Inject\n\n- @Optional\n\n- @Self\n\n- @SkipSelf\n\n- @Host\n\n- @Attribute\n\n## 动画\n\n- AnimationKeyframe\n\n- AnimationPlayer\n\n- AnimationSequencePlayer\n\n- AnimationGroupPlayer\n\n- AnimationQueue\n\n- AnimationTransition\n\n- AnimationTransitionEvent\n\n## 变化检测\n\n### Zone.js\n\n- ngZone\n\n    * onUnstable\n    \n    * onMicrotaskEmpty\n\n    * onStable\n\n    * onError\n\n### 异步操作\n\n- 用户事件：Click/Change...\n\n- 通信：XHR/WebSocket\n\n- 定时任务：setTimeout/requestAnimationFrame\n\n### ChangeDetectorRef\n\n## 测试\n\n### 单元测试\n\n- Jasmine 测试框架\n\n- Karma 管理工具\n\n### 端到端测试\n\n- Protractor\n\n- Benchpress\n\n###  内置工具集\n\n- TestBed\n\n- inject\n\n- ComponentFixture\n\n- fakeAsync\n\n- flushMicrotasks\n\n- tick\n\n- discardPeriodicTasks\n\n## 升级\n\n- UpgradeAdapter\n\n- UpgradeAdapterRef\n\n## 模板编译器\n\n- 动态 - JIT\n\n- 静态 - AoT\n\n    + ngc\n\n## 调试\n\n- Augury\n\n- 断点调试\n\n## 质量检查工具\n\n-  TSLint\n\n- Codelyzer\n\n## 构建工具\n\n- webpack\n\n- Gulp\n\n- RollUp\n\n- System.js\n\n## 编码工具\n\n- VS Code \n\n- WebStorm\n\n- Atom\n\n- Sublime Text \n\n- Vim\n\n## 开发语言\n\n- TypeScript\n\n- ES6 / ES5\n\n- Dart\n\n## 周边生态圈\n\n- Angular Material 2\n\n- Universal\n\n- Angular-CLI\n\n- Ionic 2\n\n- NativeScript\n\n- Angular Mobile Toolkit\n\n- AngularFire 2\n\n- Angular Electron\n\n\n"
  },
  {
    "path": "data/map-Apollo.md",
    "content": "# Apollo 自动驾驶工程师技能图谱\n\n本图谱核心贡献者：Apollo 技术布道师团队\n\n> 基于 Apollo 技术框架的自动驾驶工程师技能图谱：跟公布的技术框架结构保持一致，强调了 Apollo 软件之外的硬件能力。\n\n## Toolbox（Basic）\n- Bazel\n- Protobuf\n- Docker\n- ROS\n- OpenCV\n\n## Language（Basic）\n- C++\n- Bash \n- Python\n    + Keras\n- JavaScript\n    + Node.js\n    + React\n\n## Machine Learning Frameworks（Basic）\n- PaddlePaddle\n- Caffe\n- TensorFlow\n\n## 硬件（芯片）编程 （Basic）\n- CPU\n- GPU(CUDA)\n- FPGA\n\n## Cloud Service Platform（Apollo）\n- HD Map\n    + OpenDrive\n- Simulation\n    + Matlab/Simulink\n    + GameEngine(UE4)\n- Data Platform\n    - 虚拟化\n    - 异构计算\n    - 分布式计算\n    - 分布式存储\n- Security\n- OTA\n- DuerOS\n\n## Open Modules（Apollo）\n+ Localization\n+ Perception\n    - Deep Learning:CNN\n    - Low-level Vision\n    - 图形学与视觉几何\n    - 状态估计与滤波\n    - 最优化问题求解\n+ Planning\n    - Smoothing Curves\n    - Vehicle Kinematics\n    - Station-time 2D Model\n    - Optimization Algorithms:Dynamic Programming\n    - Quadratic Programming\n    - Smoothing Spline\n    - A*\n    - Probability Math Models:Bayesian\n    - Markov Process\n    - MDP\n    - Machine Learning:\n        + CNN\n        + RNN\n        + Reinforcement Learning \n    - Motion Planning Background:Sampling Based Motion Planning\n    - Optimization Based Motion Planning\n    - ComputerScience:Parallel Programming\n    - For Planning Focused:Basic Motion Planning Technique\n    - Dynamic Programming\n    - Computation Geometry\n    - 深度学习算法、BP 算法\n+ Control\n    - Basic Control Theory\n    - Linear-Quadratic Regulator (LQR)\n    - Model Predictive Control(MPC)\n    - PID Basic Control Theory \n+ End-to-End\n    * Deep Learning\n    * CV\n    * 逆向汽车动力学模型\n    * 端到端驾驶模型：\n        - 横向模型：CNN\n        - 纵向模型：Convolutional-LSTM\n        - 横 + 纵向模型：LRCN\n\n## Hardware & Sensors （Apollo）\n- Computing Unit\n    + IPC（Intel Nvidia ...)\n    + 专用自动驾驶计算单元(PX2 TX2 ...)\n- Perception\n    + Camera(单目／双目)\n    + LiDAR\n    + Radar\n    + Ultrasonic Radar\n- Localization\n    + GPS\n    + IMU\n    + other perception sensors\n- CAN Card\n- HMI Device\n- V2X Device\n- Safety\n    + Black Box\n- 传感器知识与技能\n    + 搭建方式\n    + 配置流程\n    + 数据形式\n    + 能够通过数据判断传感器是否正常工作\n- 无人车知识与技能\n    + 基本的硬件组成\n    + 各 Sensors 流程\n    + 通讯信息接口\n    + 各个传感器优点、能力与局限\n    + 知道本模块对于硬件的需求\n    + 算法对于硬件的依赖、瓶颈\n    + 硬件的基本参数性能、调参方法\n    + 熟悉上车开发调试环境\n\n## Vehicle（Apollo）\n- 线控车辆\n- 车辆电子控制系统\n    + Protocol\n      - Can\n      - Lin\n      - FlexRay\n    + 动力系统控制\n    + 制动系统控制\n    + 转向系统控制\n- 车载语音交互系统\n- AUTOSAR\n"
  },
  {
    "path": "data/map-Architect.md",
    "content": "# 架构师技能图谱 V1.2\n \n## 系统架构能力\n\t\n### 基本理论\n- 扩展性设计\n- 可用性设计\n- 可靠性设计\n- 一致性设计\n- 负载均衡设计\n- 过载保护设计\n- 灾难恢复和备份\n \n### 协议设计\n- 二进制协议\n- 文本协议\n \n### 接入层架构设计\n- DNS 轮询\n- 动静态分离\n- 静态化\n- 反向代理\n- LVS\n- F5\n- CDN \n \n### 逻辑层架构设计\n- 连接池\n- 串行化技术\n- 影子 Master 架构\n- 批量写入\n- 配置中心\n- 去中心化\n- 通讯机制\n\t* 同步与异步\n\t* MQ\n\t* Cron\n\t* RMI\n\t* RPC\n- 数据层架构设计\n\t* 缓存优化\n\t\t+ 高可用\n\t\t+ 允许 cache miss\n\t* DAO & ORM\n\t* 双主架构\n\t* 主从同步\n\t* 读写分离\n\n## 架构性能优化\n\n### 代码级别\n- 关联代码优化\n- Cache 对齐\n- 分支预测\n- Copy on Write\n- 内联优化\n\n### 工具优化\n- OProfile\n- Gprof\n- JDK 工具\n\n### 系统优化\n- Cache\n- 延迟计算\n- 数据预读\n- 异步\n- 轮询与通知\n- 内存池\n- 模块化\n- 并发\n\n## 工程架构能力\n\n### 开发语言\n- 站点开发\n- 服务开发\n- 脚本处理\n\n### 设计模式\n### 数据结构与算法\n### 开发工具\n### 调试工具\n\n### 测试工具\n- 单元测试\n- 接口测试\n- 性能测试\n- 集成测试\n- 自动化测试\n\n### 运维与监控\n- 监控\n\t* 系统监控\n\t* 日志监控\n\t* 流量监控\n\t* 接口监控\n\t* 数据库监控\n- 告警\n- 日志\n\n### 应用技术\n- 硬件知识\n\t* CPU\n\t* MEM\n\t* Disk\n\t* Net\n- 第三方库\n- 数据结构与算法\n- 操作系统\n\t* Linux\n- 接入层\n\t* Nginx\n\t* Apache\n\t* Lighttpd\n\t* Tomcat\n\t* Node.js\n- 框架\n\t* SpringMVC\n\t* Dubbo\n\t* Thrift\n- 缓存\n\t* Redis\n\t* Memcache\n- NoSQL\n\t* MongoDB\n\t* HDFS\n\t* Cassandra\n- 存储\n\t* MySQL\n\t* SQL Server\n\t* Oracle\n- 中间件\n- 消息总线\n\n## 架构师软素质\n- 沟通能力\n- 解决问题能力\n- 学习能力\n- 创新能力\n- 项目管理能力\n- 文档论文阅读能力\n- 总结归纳能力\n\n"
  },
  {
    "path": "data/map-BigDataEngineer.md",
    "content": "#  大数据工程师技能图谱\n## 大数据通用处理平台\n- Spark\n- Flink\n- Hadoop\n- Drill\n  \n## 分布式协调\n- ZooKeeper\n\n## 分布式存储\n- HDFS\n- Alluxio(tachyon)\n- Ignite\n\n## 存储格式\n- Parquet\n- ORC\n- CarbonData\n- Kudu  \n\n## 数据库\n- HBase\n\n## 资源调度\n- Yarn \n- Mesos\n- Kubernetes  \n  \n## 工作流调度\n- Oozie \n- Azkaban \n\n## 机器学习工具\n- Mahout\n- Spark Mlib\n- TensorFlow \n- DeepLearning4J\n- Torch\n- Theano\n- Caffe\n- MxNet\n- Keras\n- CNTK\n- Amazon Machine Learning\n- DMTK (微软分布式机器学习工具) \n\n## 数据安全\n- Sentry\n- Apache Eagle \n\n## 部署工具\n- Cloudera Manager\n- Ambari\n\n## 数据分析/数据仓库(SQL类)\n- Pig\n- Kylin\n- Presto\n- Impala\n- Hive\n- Spark SQL／DataFrame／DataSet\n- Phoenix\n- ELK\n   - ElasticSearch\n   - Logstash\n   - Kibana\n\n## 消息队列\n- Kafka(纯日志类，大吞吐量)\n- RocketMQ \n- ZeroMQ\n- ActiveMQ\n- RabbitMQ\n\n## 流式计算\n- Storm/JStorm\n- Spark Streaming\n- Fink\n\n## 日志收集\n- Scribe\n- Flume\n- Sqoop\n\n## 编程语言\n- Java／Scala\n- Python\n- R\n\n## 数据分析挖掘\n- MATLAB\n- SPSS\n- SAS\n\n\n## 数据探索／可视化\n- R\n- D3.js\n- ECharts\n- Excle\n- Tableau\n- Zeppelin\n- Hue\n\n\n## 机器学习\n\n### 机器学习基础\n- 聚类\n- 时间序列\n- 推荐系统\n- 回归分析\n- 文本挖掘\n- 决策树\n- 支持向量机\n- 贝叶斯分类\n- 神经网络\n\n## 算法\n### 一致性\n- paxos\n- raft\n- gossip\n\n### 数据结构\n- 栈，队列，链表\n- 散列表\n- 二叉树，红黑树，B树\n- 图\n\n### 常用算法\n- 排序\n   - 插入排序\n   - 桶排序\n   - 堆排序\n   - 快速排序\n- 最大子数组\n- 最长公共子序列\n- 最小生成树\n- 最短路径\n- 矩阵的存储和运算\n\n## 云计算\n- 云服务\n    - SaaS\n    - PaaS\n    - IaaS\n- OpenStack\n- Docker\n\n"
  },
  {
    "path": "data/map-CDN.md",
    "content": "# CDN 技能图谱\n\n## 服务\n- Potal\n- 客户管理\n- 频道管理\n- GSLB配置\n- SLB配置\n- 设备管理\n- 监控平台\n- 告警平台\n- 计费系统\n- 日志系统\n\n## 调度\n - 调度方式\n  - DNS\n     - ECS\n  - 二层\n     - LVS\n     - 隧道\n  - 三层\n     - Anycast\n     - LVS\n     - SDN\n     - 隧道VPN\n  - 四层\n     - 四层负载均衡\n  - 七层\n     - HTTP 302 redirect\n     - 七层负载均衡\n  - 内置于应用端\n     - HTTPDNS\n\n - 调度范围\n  - 全局级别 GSLB\n  - 节点级别 SLB\n\n - 调度依据\n  - 网络位置远近\n     - 地理位置\n     - ISP\n    - 链接质量好坏\n     - RTT\n     - 带宽\n     - 链接质量\n    - 设备状态\n     - 连接数\n     - 负载\n     - TCP建联时间\n     - 首包时间\n     - 传输速度\n    - 节点带宽单价\n    - 业务重要性\n\n## 分发系统\n - Cache\n     - 反向代理\n - 分发方式\n     - 反向代理被动式拉源信息\n     - 预加载主动推送\n     - 视频拉流\n     - 视频推流\n\n## 技术\n - DNS\n\n\n## 评判指标\n- 主要质量指标\n     - 域名解析时长\n     - TCP建连时间\n     - 首字节时间\n     - 传输速度\n     - 回源率\n- 主要性能指标\n     - 网络吞吐\n     - 并发连接数\n     - CPU负载\n     - 磁盘IO吞吐\n     - 缓冲命中率\n     - 主要质量指标变化\n\n## 业务性质\n - 文件性质\n     - 小文件\n     - 大文件\n     - 流文件\n - 资源分发缓冲特征\n     - 动态资源不可分发不缓冲\n     - 静态资源可分发可缓冲\n     - 直播可分发不缓冲\n - 协议\n     - HTTP\n     - HTTPS\n     - 视频流\n - 连接使用\n     - 一次性 短连接\n     - 复用长连接\n     - 多路复用 SPDY\n - 主要业务性质\n     - 页面\n     - 图片\n     - 下载\n     - 点播\n     - 直播\n\n## TCP\n  - 单边优化\n  - 双边优化\n\n## 第三方测试\n  - 基调\n  - 博瑞\n  - ......\n\n## Cache关键附属功能\n  - 刷新\n  - 预加载\n\n## 开源软件\n  - 测试工具\n     - curl\n     - wget\n     - ab\n     - nc\n     - ping\n     - dig\n     - nslookup\n     - traceroute\n     - mtr\n     - iperf\n     - ......\n  - Cache\n     - nginx\n     - squit\n     - ATS\n     - varnish\n     - ......\n  - 负载均衡\n     - Haproxy\n     - LVS\n     - ......\n  - DNS\n     - BIND View geo\n     - powerdns+geo backend\n     - ......\n  - 告警\n     - Zabbix\n     - ......\n\n\n"
  },
  {
    "path": "data/map-CTO.md",
    "content": "# CTO 技能图谱\n\n### 岗位职责\n* \t建立技术团队文化\n* \t规划技术发展路线\n* \t落地产品研发成果\n* \t宣传公司技术品牌\n* \t吸引优秀技术人才\n\n### 基本素质\n* \t正直诚实的道德修养\n* \t谦虚谨慎的工作态度\n* \t随机应变的处事风格\n* \t统领全局的战略思维\n\n### 硬技能\n\n#### 技术能力\n* 具备一定的技术深度\n* 具备较强的技术广度\n* 追求技术选型合理性\n* 对技术发展嗅觉敏锐\n\n#### 业务能力\n* 能深度理解业务本质\n* 能用技术来帮助业务\n* 让技术驱动业务发展\n\n#### 架构能力\n* 能站在业务上设计架构\n* 架构规范合理且易落地\n* 能为架构设计提出意见\n\n#### 产品能力\n* 具备一定的产品价值观\n* 能准确地抓住用户刚需\n* 能为产品设计提出意见\n\n#### 管理能力\n- 团队管理\n   * 招人：知道如何吸引所需的人？\n   * 识人：知道如何识别已有队员？\n   * 育人：知道如何让队员们成长？\n   * 开人：知道如何请人愉快离开？\n   * 留人：知道如何留住该留的人？\n   * 挖人：知道如何挖到需要的人？\n- 项目管理\n    * 估算：知道项目成本如何估算？\n    * 分工：知道工作任务如何分配？\n    * 排期：知道项目计划如何制定？\n    * 实施：知道项目实施如何开展？\n    * 发布：知道项目发布如何执行？\n    * 回顾：知道项目回顾如何进行？\n- 绩效管理\n    * 制定：知道如何制定考核标准？\n    * 执行：知道如何执行绩效考核？\n    * 优化：知道如何提升团队绩效？\n- 时间管理\n    * 制定：知道如何制定团队计划？\n    * 管理：知道如何管理团队任务？\n    * 权衡：知道如何权衡优先级别？\n- 情绪管理\n    * 控制：知道如何控制自我情绪？\n    * 转化：知道如何化悲观为乐观？\n    * 使用：知道如何善用自我情绪？\n\n### 软技能\n\n#### 领导能力\n- 决策能力\n    * 不要害怕做决定\n    * 做出正确的决定\n    * 敢于为决定负责   \n- 影响能力\n    * 不要改变别人而是激发别人\n    * 用自己的行为和态度去激发\n    * 持续不断提高自己的影响力\n- 沟通能力\n    + 向上沟通（与公司创始人）\n        * 领会老板真实意图\n        * 站在老板角度思考\n        * 不要强迫改变老板\n    + 向下沟通（与本部门同事）\n        * 是沟通而不是命令\n        * 站在下属立场沟通\n        * 不要吝啬夸赞队员\n- 横向沟通（与跨部门同事）\n    * 突出对方的重要性\n    * 先要共识才能共赢\n    * 懂得圆满大于完美\n\n#### 执行能力\n* 理解执行目标\n* 提高执行效率\n* 确保执行效果\n\n#### 学习能力\n* 对新知识充满好奇心\n* 能够快速学习新技能\n* 拥有触类旁通的能力\n\n#### 组织能力\n* 积极主动并有活力\n* 做事情敢于放得开\n* 能够调用所需资源\n\n#### 洞察能力\n* 善于抓住事物本质\n* 善于观察人性心理\n* 善于预见未来变化\n\n#### 抗压能力\n* 学会释放压力\n* 化压力为动力\n* 化消极为积极\n\n#### 自省能力\n* 能够不断自我反省\n* 能够从失败中总结\n* 能够在总结中提高\n\n#### 战略能力\n* 能够深刻理解公司战略\n* 能够站在更高层次思考\n* 结合战略形成技术壁垒\n\n#### 社交能力\n* 善于表达自己\n* 善于结交朋友\n* 善于公众演讲\n\n#### 谈判能力\n* 能够通过谈判得到对方认同\n* 能够从谈判中找到共赢方式\n* 能够在谈判场合中保持镇定\n\n#### 政治能力\n* 能够对政治持有敏感度\n* 能够处理办公室小政治\n* 能够主动避免政治风险\n\n"
  },
  {
    "path": "data/map-CloudComputing.md",
    "content": "# 云计算工程师技能图谱\n\n## 运维\n### DevOps\n- 持续交付\n- 持续集成\n\n### 部署\n- 蓝绿部署\n- 灰度发布\n- 金丝雀发布\n- Canary 部署\n- PHOENIX 部署\n- AWS CloudFormation\n\n### 配置\n- Chef\n- Puppet\n- Ansible\n- AWS OpsWorks\n\n## 开发\n\n- 流程\n\t- Scrum\n\t- Crystal\n\t- FDD\n\n- 语言\n\t- Java\n\t- Python\n\t- Go\n\t- JavaScript\n\t- PHP\n\t- Ruby\n\t- Clojure\n\t- Julia\n\n## 架构\n\n- 分布式消息\n\t- 消息队列\n\t\t - ZeroMQ\n\t\t - ActiveMQ\n\t\t - RabbitMQ\n\t\t - AWS SQS\n\t\t\n\t- 事件/消息驱动\n\t\t - AWS SWS\n\t\t - AWS Lambda\n\t\t - AKKA\n\t\t\n\t- RPC\n\t\t - Thrift\n\t\t - Protobuf\n- Microservices\n- RESTFull\n- CAP 理论\n\n\n## 应用\n- 前端应用\n    - Web 应用\n      - JavaScript/Ajax\n      - HTML/CSS\n    - 桌面虚拟化\n    - 移动应用\n    - IOT\n\n- 后端应用\n    - 高性能计算\n    - 渲染\n\n- 行业应用\n    - CRM\n    - ERP\n    - 生物科学\n\n## 基础架构\n- 计算\n    - 自动扩展\n      - AWS Autoscaling\n      - OpenStack/Hoo!\n\n    - 负载均衡\n      - AWS ELB\n      - HAProxy\n      - Nginx\n\n    - 虚拟化\n      - Hypervisor\n        - Xen\n        - KVM\n        - Hyper-V\n\n    - 容器\n      - Docker\n      - CoreOS\n      - UnixLXC\n\n- 网络\n    - TCP/IP\n    - VLANs\n    - DNS/CDN\n    - HTTP/HTTPS 协议\n\n- 存储\n    - 网络存储\n      - AWS EBS\n      - NFS v4\n      - Ceph\n      - Apache CloudStack\n\n    - 对象存储\n      - AWS S3\n      - OpenStack Swift\n\n    - 块存储\n      - SAN\n      - AWS EBS\n      - RAID 概念\n\n    - 灾难恢复\n    - 文件系统\n      - ext4\n      - XFS\n\n## 平台\n- 操作系统\n   - Linux\n      - RedHat/CentOS\n      - Ubuntu\n      - Debian\n      - SUSE\n   - Windows Server\n\n- 数据管理\n  - SQL\n\t    - AWS RDS\n\t    - MySQL\n\t    - PostgreSQL\n\n  - NoSQL\n\t    - DynamoDB\n\t    - MongoDB\n\t    - Cassandra\n\n  - 缓存\n\t    - Memcached\n\t    - Redis\n\t    - AWS ElastiCache\n\n  - 检索\n\t    - Solr\n\t    - Elasticsearch\n\t    - AWS Elasticsearch\n\n  - 大数据\n\t- 语言、工具\n\t\t- R\t\n\t\t- Python\n\t\t- Java\n\t\t- Scala\n\t\t- Clojure\n\t\t\n\t- MapReduce\n\t\t- Hadoop\n\t\t- HDFS\n\t\t- HBase\n\t\t- Hive\n\t\t- Spark   \n\n\t- 数据流\n\t\t- AWS Kinesis\n\t\t- Storm\n\n  - 机器学习\n\t\t- Spark ML\n\t\t- scikit learn\n\t\t- AWS ML\n\n- 身份认证\n    - SAML\n    - OpenID\n    - Microsoft AD\n    - AWS IAM\n\n- 管理\n    - 日志\n      - AWS CloudTrail\n      - Logstash\n      - Fluentd\n\n    - 监控\n      - ZABBIX\n      - OBSERVIUM\n      - INICGA\n      - AWS CloudWatch\n\n## 安全\n- Firewall\n- DDoS\n- iptables\n- WAF\n- IDS/IPS\n- VPN\n\n## OpenStack\n- 核心功能\n    - 计算：NOVA\n    - 网络：NEUTRON\n    - 对象存储：SWIFT\n    - 块存储：CINDER\n    - 认证：KEYSTONE\n    - 镜像：GLANCE\n\n- 可选功能\n    - 仪表板：Horizon\n    - 数据库：Trove\n    - 大数据：Sahara\n    - 编排：Heat\n    - 监控：Ceilometer\n    - 消息服务：Zaqar\n    - 裸机配置：Ironic\n    - 密钥管理：Barbican\n    - DNS服务：Designate\n    - Governance Service：Congress\n    - Shared Filesystems：Manila\n    - Container Service：Magnum\n    - Workflow Service：Mistral\n    - Application Catalog：Murano\n\n"
  },
  {
    "path": "data/map-Container.md",
    "content": "# Container 技能图谱\n\n## 容器化工具\n\n- [Docker](https://www.docker.com/)\n- [LXC](https://linuxcontainers.org/)\n- [RunC](https://github.com/opencontainers/runc)\n- [Rkt](https://github.com/coreos/rkt)\n- [Systemd-nspawn](www.freedesktop.org/wiki/Software/systemd/)\n- [Garden](https://github.com/cloudfoundry/garden)\n- [Vagga](https://github.com/tailhook/vagga)\n- [VMWare Photon](https://github.com/vmware/photon)\n- [gVisor](https://gvisor.dev)\n- [Pouch Container](https://pouchcontainer.io)\n- [Kata Containers](https://katacontainers.io)\n\n## 监控和数据收集\n\n- [Sysdig Monitor](https://sysdig.com/products/monitor)\n- [cAdvisor](https://github.com/google/cadvisor)\n- [Weave Scope](https://www.weave.works/oss/scope/)\n- [Prometheus](https://github.com/prometheus)\n- [TICK-Stack](https://influxdata.com)\n- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd)\n- [Grafana](https://grafana.com)\n- [Cockpit](http://cockpit-project.org)\n\n## 基础设施集成\n\n- [Magnum](https://github.com/openstack/magnum)\n- [Boot2Docker](https://github.com/boot2docker/boot2docker)\n- [MaestroNG](https://github.com/signalfuse/maestro-ng)\n- [CloudFoundry Containers Service Broker](https://github.com/cf-platform-eng/cf-containers-broker)\n\n## 编排和调度\n\n- [Crane](https://github.com/michaelsauter/crane)\n- [Mesos](http://mesos.apache.org/)\n- [Marathon](https://github.com/mesosphere/marathon)\n- [Compose](https://docs.docker.com/compose/)\n- [Yarn](https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html)\n- [Kubernetes](https://github.com/kubernetes/kubernetes)\n- [Openshift Origin](https://github.com/openshift/origin)\n- [Rancher](http://www.rancher.io)\n- [K3s](https://k3s.io/)\n- [Nomad](https://github.com/hashicorp/nomad)\n- [SwarmKit](https://github.com/docker/swarmkit)\n- [Nebula](https://github.com/nebula-orchestrator)\n- [Dokku](https://github.com/progrium/dokku/)\n- [Flynn](http://Flynn.io)\n\n## 商业平台\n\n- [AWS Container Service](https://aws.amazon.com/ecs/details/)\n- [Google Container Engine](https://cloud.google.com/container-engine/)\n- [Azure Container Service](https://docs.microsoft.com/en-us/azure/container-service)\n- [阿里云容器服务](https://www.aliyun.com/product/containerservice)\n- [腾讯云容器服务](https://cloud.tencent.com/product/tke)\n- [华为云容器引擎](https://support.huaweicloud.com/cce/index.html)\n\n## 容器镜像仓库\n\n- [Repository](https://github.com/docker/distribution)\n- [Nexus](http://www.sonatype.org/nexus)\n- [Habor](http://vmware.github.io/harbor)\n- [Portus](https://github.com/SUSE/Portus)\n- [Dragonfly](https://github.com/alibaba/Dragonfly)\n\n## 服务发现和容器\n\n- [Consul](http://www.consul.io/)\n- [Etcd](https://github.com/coreos/etcd)\n- [ZooKeeper](https://zookeeper.apache.org/)\n- [Eureka](https://github.com/Netflix/eureka)\n- [Traefik](https://traefik.io)\n- [Registrator](https://github.com/gliderlabs/registrator)\n\n## 容器日志收集处理\n\n- [Splunk](www.splunk.com)\n- [Elastic Stack](https://www.elastic.co/products)\n- [Fluentd](www.fluentd.org/)\n- [Flume](https://flume.apache.org/)\n- [Graylog](https://www.graylog.org/products/open-source)\n- [Rsyslog](https://www.rsyslog.com/)\n\n## 容器相关的系统发行版\n\n- [Container Linux (CoreOS)](http://coreos.com/)\n- [Project Atomic](http://www.projectatomic.io/)\n- [RancherOS](https://rancher.com/rancher-os/)\n- [ClearLinux](https://clearlinux.org/)\n- [VMWare Photon](https://vmware.github.io/photon/)\n- [Talos](https://github.com/talos-systems/talos)\n- [k3os](https://k3os.io/)\n- [LinuxKit](https://github.com/linuxkit/kubernetes)\n- [SmartOS](https://www.joyent.com/smartos)\n\n## 容器网络\n\n- [Pipework](https://github.com/jpetazzo/pipework)\n- [Flannel](https://github.com/coreos/flannel)\n- [Calico](http://www.projectcalico.org)\n- [Weave](https://github.com/zettio/weave)\n- [Kubenet](https://www.kubenet.net)\n- [Contiv](https://contiv.io)\n- [OpenContrail](www.opencontrail.org)\n- [MacVlan](https://docs.docker.com/network/macvlan)\n- [Canal](https://github.com/projectcalico/canal)\n- [Romana](http://romana.io)\n- [Submariner](https://submariner.io/)\n\n## 容器安全\n\n- [Anchore Engine](https://anchore.com/engine)\n- [Aqua Microscanner](https://github.com/aquasecurity/microscanner)\n- [Clair](https://github.com/coreos/clair)\n- [Dagda](https://github.com/eliasgranderubio/dagda)\n- [Twistlock](https://www.twistlock.com/platform/vulnerability-management-tools/)\n- [OpenSCAP](https://www.open-scap.org)\n- [Notary](https://github.com/docker/notary)\n- [Twistlock](https://www.twistlock.com)\n- [SELinux](https://selinuxproject.org)\n- [AppArmor](http://wiki.apparmor.net/index.php/Main_Page)\n\n## 容器数据持久化\n\n- [Ceph](http://ceph.com/)\n- [Convoy](https://github.com/rancher/convoy)\n- [REX-Ray](https://github.com/codedellemc/rexray)\n- [Netshare](https://github.com/ContainX/docker-volume-netshare)\n- [OpenStorage](https://github.com/libopenstorage/openstorage)\n\n## 容器相关标准\n\n- [OCI Runtime Spec](https://github.com/opencontainers/runtime-spec)\n- [OCI Image Spec](https://github.com/opencontainers/image-spec)\n- [OCI Distribution Spec](https://github.com/opencontainers/distribution-spec)\n- [Container Network Interface](https://github.com/containernetworking/cni)\n- [Container Storage Interface](https://github.com/container-storage-interface/spec)\n"
  },
  {
    "path": "data/map-DBA.md",
    "content": "# DBA技能图谱\n\n## 网络\n- TCP/IP协议\n- 工具\n    * tcpdump\n    * ss\n\n## 数据库类型\n- 关系型\n    * Oracle,MySQL,DB2,SQLserver\n- KV型\n    * Redis,RocksDB\n- 文档型\n    * MongoDB\n- 列存储\n    * HBase,Cassandra\n- 内存数据库\n    * SQLite,TimesTen\n\n## 运维工具\n- 部署\n    * saltstack,puppet,ansible\n- 监控\n    * cati,zabbix,nigos\n\n## linux基础\n- 常用命令\n    * ![alt 常用命令](https://github.com/MiliOnE/skill-map/blob/master/data/map-DBA-comands.png?raw=true)\n- 文件系统\n    * ext4\n    * xfs\n- io调度\n    * deadline,noop,cfq\n    * The Linux  I/O Stack Diagram\n    * ![alt io调度](https://github.com/MiliOnE/skill-map/blob/master/data/map-DBA-io.jpg?raw=true)\n\n## 硬件\n- RAID卡\n    * 读写策略\n        + WB\n        + WT\n        + FORCE WB\n    * BBU\n- SSD\n- 网卡\n- PCI-E/NVMe\n\n## 开发语言\n- python,shell,perl\n- java,C/C++,go\n\n## 数据库技能\n- 理论知识\n    * B*树/B-树/hash/索引原始结构等\n    * 事务ACID\n    * MVCC\n    * 锁机制 行锁/死锁/mutex锁等\n    * innodb读写相关操作的原理\n    * 分布式事务\n- 备份/恢复\n    * xtrabackup\n    * mysqldump\n    * mydumper/myloader\n    * mysqlpump/mysqlimport(5.7版本）\n    * rsync/qpress压缩\n- 高可用\n    * HA\n        + MHA\n        + keepalive\n        + PXC\n        + zookeeper\n    * sharding\n        + 水平拆分\n        + 垂直拆分\n- 中间件\n    * TDDL\n    * Cobar\n    * OneProxy\n    * Atlas\n    * mango乐视\n    * Mycat\n    * fabric\n- 优化\n    * 原则 空间换时间\n    * 业务逻辑设计\n    * 库/表结构 索引设计\n    * 慢查询\n    * 拆分\n- 工具集\n    * pt-tools\n    * orzdba,iotop,ytop\n    * pstack\n\n## 关联软件\n- 消息队列\n    * nsq\n    * RabbitMq\n    * kafka\n- 缓存\n    * memcache,tair,redis\n- DNS\n- 搜索\n    * ELK,Solr\n\n## 软技能\n- 能说\n- 会写\n\n"
  },
  {
    "path": "data/map-DevLang-Clojure.md",
    "content": "# Clojure 技能图谱\n\n## Clojure语言环境搭建\n   - Clojure安装\n   - 新建Clojure项目\n   - 命令行运行-main（Java main方法）函数\n   - 使用REPL\n   - Clojure开发工具\n\n## Clojure语言编程基础\n   - 语法（S-expression)\n   - 函数 (function)\n   - 命名空间 (namespaces)\n   - 流程控制 (flow control)\n   - 数据结构 (data structures)\n   - 读取器宏 (reader macro)\n   - 惰性序列 (lazy sequences)\n   - 递归 (recursion)\n   - 使用java类库 (call java libraries)\n   - 面向对象 (OO)\n   - 多重方法 (multimethods)\n   - 宏 (macros)\n   - 测试 (testing)\n\n## Clojure并发编程\n   - Refs\n   - Agents\n   - Atoms\n   - core.async\n\n## 其余Clojure编程方式\n   - core.typed （类型系统）\n   - core.logic （逻辑编程）\n   - core.match （模式匹配）\n   - algo.monads\n\n"
  },
  {
    "path": "data/map-DevLang-Golang.md",
    "content": "# Golang 开发技能图谱\n\n## Go 语言环境搭建\n- Go 安装\n- GOPATH 与工作空间\n- Go 命令\n- Go开发工具\n\n## GO 语言编程基础\n- 关键词和语法（Language Syntax）\n- 数据类型（Arrays, Slices and Maps）\n- 流程控制（if/else，for/range）\n- Go 函数（Function）\n- 面向对象（Methods, Interfaces and Embedding）\n- 包处理（Packaging and Exporting）\n- Go 指针（Using Pointers）\n- 程序测试（Testing and Debugging）\n- 对象合成（Composition）\n- 错误处理（Error Handling）\n- 标准库（Standard Library）\n- 反射（Reflection）\n\n## 并发编程\n- Go 并发基础（Concurrency, Race Conditions and Channels）\n- 并发模式（Concurrency Patterns）\n\n## Go Web 编程\n- Web基础\n  - Web工作方式\n  - Go 搭建一个简单的web服务\n  - Go 的 HTTP 包详解\n- 表单\n  - 处理表单的输入\n  - 验证表单的输入\n  - 预防跨站脚本\n  -  防止多次递交表单\n  - 处理文件上传\n- 数据库\n  - database/sql接口\n  - 使用MySQL数据库\n  - 使用PostgreSQL数据库\n  - 使用beedb库进行ORM开发\n  - NOSQL数据库操作\n- Session 和数据存储\n  - Session 和 Cookie\n  - Go 如何使用 Session\n  - Session 存储\n  - 预防 Session 劫持\n- 文本文件处理\n  - XML 处理\n  - JSON 处理\n  - 正则处理\n  - 模板处理\n  - 文件操作\n  - 字符串处理\n- Web服务\n  - Socket 编程\n  - WebSocket\n  - REST\n  - RPC\n- 安全与加密\n  - 预防 CSRF 攻击\n  - 确保输入过滤\n  - 避免 XSS 攻击\n  - 避免 SQL 注入\n  - 存储密码\n  - 加密和解密数据\n- 国际化和本地化\n  - 设置默认地区\n  - 本地化资源\n  - 国际化站点\n- 错误处理，调试和测试\n  - 错误处理\n  - 使用GDB调试\n  - Go怎么写测试用例\n- 部署与维护\n  - 应用日志\n  - 网站错误处理\n  - 应用部署\n  - 备份和恢复\n- 如何设计一个Web框架　\n  - 项目规划　\n  - 自定义路由器设计\n  - Controller 设计\n  - 日志和配置设计\n  - 实现博客的增删改\n- 扩展Web框架\n  - 静态文件支持\n  - Session 支持\n  - 表单支持\n  - 用户认证\n  - 多语言支持\n  - pprof支持\n\n## Go 应用\n- Docker\n- Bee Go\n- NSQ\n- NewSQL\n\n## Go 实战案例\n\n"
  },
  {
    "path": "data/map-DevLang-Haskell.md",
    "content": "# Haskell 技能图谱\r\n\r\n## Haskell语言编程基础\r\n   - 类型 (type)\r\n   - 函数 (function)\r\n   - 类型类 (type class)\r\n   - Prelude中的类型与函数的使用\r\n   \r\n## Haskell语言初级部分\r\n   - 递归 (recursion)\r\n   - 列表内包 (list comprehension)\r\n   - 高阶函数 (higher order function)\r\n   - 定义类型 (define types)\r\n   - 定义类型类 (define type class)\r\n   \r\n## Haskell语言中级部分\r\n   - 使用Monad\r\n   - 使用IO Monad\r\n   - 使用State, Writer, Reader Monad\r\n   - 使用Monad转换器 (monad transformer)\r\n   - 使用更多的Monad\r\n   - 使用Monad, 再使用Monad ... \r\n   - MonadIO, MonadBase ... \r\n   - 使用Monad与Monad转换器管理代码\r\n   \r\n## Haskell进阶部分\r\n\r\n### 类型系统\r\n   - 类型系统 (type system)\r\n   - 类型推断 (type inference)\r\n   - Kind推断 (kind inference)\r\n   - 多态Kind (kind polymorphism)\r\n   - 可类型化 (typeable)\r\n   - 单一同态限定 (monomorphism restriction)\r\n   - 类型家族 (type family)\r\n\r\n###通用编程\r\n   - 代数数据类型通用编程 (algebric data type generic)\r\n   - 摒弃模板化代码 (Scrap you boilerplate (SYB))\r\n   \r\n### 元编程\r\n   - 模板元编程 (meta template programming)\r\n   - 准引用 (quasi quotes)\r\n   \r\n## 在工程中使用Haskell\r\n\r\n### 并行、并发还有异步\r\n   - 确定性并发\r\n   - 微线程\r\n   - Semarphore\r\n   - 软件事务内存 (software transactional memory)\r\n   - 通信顺序式进程 (communicating sequential process)\r\n   - 分布式编程 (distributed programming)\r\n\r\n### 外部函数接口\r\n\r\n### 数据库\r\n### 前端\r\n### 网络库\r\n\r\n\r\n### 测试\r\n#### 正确性测试\r\n   - 单元测试 (unit test)\r\n   - 随机测试 (QuickCheck)\r\n   - 穷举测试\r\n   - 反例搜寻测试\r\n   - 完全性测试\r\n   - SMT精化类型\r\n   \r\n#### 性能测试\r\n   - criterion库\r\n   - threadscope的使用\r\n   \r\n## Haskell理论部分\r\n   - Arrow\r\n   - 函数反应式编程\r\n   - Haskell的依赖类型\r\n   - 编程语言原理\r\n   - 范畴论 (category theory)\r\n"
  },
  {
    "path": "data/map-DevLang-Java.md",
    "content": "# Java Software Engineer Skill Map\n## Basic\n### Core Java\n- Java The Complete Reference Ninth Edition.pdf\n\t* Core\n\t\t+ Basic Language Characteristics\n\t\t\t- Data Types\n\t\t\t- Syntax\n\t\t\t- Control Flow\n\t\t+ Object-Oriented\n\t\t\t- Class\n\t\t\t- Object\n\t\t\t- Method\n\t\t\t- Interface\n\t\t\t- Inheritance\n\t\t+ Miscellaneous\n\t\t\t- Generics\n\t\t\t- Autoboxing\n\t\t\t- Enumerations\n\t\t\t- Annotations\n\t\t+ Parallelism\n\t\t\t- Multithreaded Programming\n\t\t+ Functional Programming\n\t\t\t- Lambda Expression\n\t\t\t- Stream API\n\t* Commonly-used Libraries\n\t\t+ String Handling\n\t\t\t- java.lang.String\n\t\t\t- StringBuffer and StringBuilder\n\t\t\t- Regular Expression\n\t\t+ java.lang.*\n\t\t+ java.util.*\n\t\t\t- Collections Framework\n\t\t\t- Concurrency Framework\n\t\t\t- i18n or g11n\n\t\t\t\t* Currency\n\t\t\t\t* Data & Time\n\t\t\t\t* Language Locale\n\t\t\t- Miscellaneous Utilities\n\t\t+ java.io.*\n\t\t+ java.nio.*\n\t\t+ java.net.*\n\t\t+ java.rmi.*\n\t\t+ java.sql.*\n\t\t+ javax.sql.*\n\n### Algorithms & Data Structure\n- Algorithms *\n\t* https://www.coursera.org/learn/java-data-structures-algorithms-2\n\t* https://www.coursera.org/learn/introduction-to-algorithms\n- Data Structures *\n\t* https://en.wikipedia.org/wiki/List_of_data_structures\n\t* http://www.tutorialspoint.com/data_structures_algorithms/\n- Object Oriented Programming *\n\t* head_first_design_patterns.pdf\n\t* Effective Java 2nd Edition.pdf\n- Computer Architecture\n\t* Memory Hierarchy\n\t* Parallelism\n\t* Multiprocessor Systems\n- Operating System\n\t* Memory Management\n\t* MemProcess Management\n\t* MemFile System *\n- Computer Network\n\t* OSI Model\n\t* TCP/IP\n\t* HTTP / HTTPS\n\t* HTTP 1.X / HTTP 2\n\n### Essentials\n- Linux/Unix\n\t* Shell commands (bash) (http://linuxcommand.org/index.php)\n\t\t+ Text Processing\n\t\t\t- AWK / SED\n\t\t+ File Operation\n\t\t\t- cd/ls/find/ (Pipe and I/O Redirection)\n\t* VIM / Emacs ( Either of them)\n\t* Shell Script(bash)\n- Java Commonly-used 3rd-party Libraries\n\t* Logging\n\t\t+ log4j\n\t\t+ slf4j\n\t\t+ logback\n\t* Unit Test\n\t\t+ Junit\n\t\t+ Mockito\n\t\t+ TestNG\n\t* Code Coverage\n\t\t+ jacoco\n\t\t+ Clover\n\t\t+ EMMA\n\t* Apache Commons\n\t\t+ commons-io\n\t\t+ commons-lang\n\t\t+ commons-math\n\t\t+ commons-codec\n\t\t+ commons-collections\n\t\t+ commons-beanutils\n\t\t+ commons-logging\n\t\t+ ...\n\t* Apache HttpComponents\n\t* Google Guava\n- Software Engineering\n\t* Project Organization\n\t\t+ Maven\n\t\t+ Gradle\n\t\t+ Ant + Ivy (Optional)\n\t* Versioning\n\t\t+ git\n\t\t+ svn\n\t* UML\n\n### Front-end (Web)\n- Web Development (http://www.w3schools.com)\n\t* HTML\n\t\t+ HTML4\n\t\t+ xhtml\n\t\t+ HTML5\n\t* css\n\t\t+ css2\n\t\t+ CSS3\n\t* Data Representation\n\t\t+ XML\n\t\t+ JSON\n\t\t+ JSONP\n\t* Javascript\n\t        + ECMAScript 6\n\t\t+ Basics (https://developer.mozilla.org/en-US/docs/Web/JavaScript)\n\t\t+ Ajax\n\t\t+ AngularJS (plus)\n\t\t+ JQuery (plus)\n\t* TypeScript\n\t* Responsive Web Page development (plus)\n\n###\tBack-end Development(Server side)\n- JavaEE\n\t* JSP *\n\t* JSTL\n\t* Java Servlet *\n\t* JavaServer Faces *\n\t* JPA *\n\t* JTA *\n\t* JAX-RS *\n\t* Managed Beans / CDI 1.1/ DI /IOC\n\t* Bean Validation\n\t* JAX-WS\n\t* JavaMail\n\t* JACC\n\t* JASPIC\n\t* Java WebSocket\n\t* Java JSON Processing\n\t* Concurrency Utilities for JavaEE\n\t* Batch processing framework\n- Java Containers\n\t* Tomcat / TomEE\n\t* GlassFish\n\t* Jetty\n- Java mid-ware\n\t* Spring\n\t\t+ Spring-Framework (Dependency Injection & AOP)\n\t\t+ Spring-Web\n\t\t+ Spring-Data\n\t\t+ Spring-security\n\t\t+ Spring-boot (Micro-service Architecture)\n\t* Struts(MVC)\n\t* SpringMVC\n\t* Hibernate/JPA (Data Persistency)\n\t* MyBatis\n- Java Performance Tuning\n\t* java performance the definitive guide.pdf\n- Database\n\t* MySQL\n\t* SqlServer\n\t* Oracle\n\t* Nosql\n\t\t+ Memcache\n\t\t+ Redis\n\t\t+ MongoDB\n\t\t+ Neo4j\n- Serialization\n\t* Google protobuf\n\t* Apache Avro\n- Java RPC\n\t* Apache Thrift\n\t* Motan\n- MessageQueue\n\t* AMQP - RabbitMQ\n\t* Apache ActiveMQ\n\t* Apache Kafka\n- Messaging\n\t* XMPP\n- Searching/Indexing\n\t* Apache Lucene\n\t* Apache Solr\n\t* Elasticsearch\n\t* CoreNLP\n- Big Data(Optional)\n\t* Hadoop\n\t\t+ Yarn (MapReduce)\n\t\t+ HDFS\n\t\t+ HBase\n\t\t+ Hive\n\t\t+ Mahout\n\t* Spark\n\t\t+ Spark-Core\n\t\t+ Spark-SQL\n\t\t+ Spark-machine learning\n\t\t+ Spark Streaming\n\t* Apache Storm\n- Cloud\n\t* Scalable Architecture\n\t\t+ VM\n\t\t\t- OpenStack\n\t\t+ Container\n\t\t\t- Docker\n\t* Hands-on\n\t\t+ Amazon AWS\n\t\t\t- EC2\n\t\t\t- S3\n\t\t\t- DynamoDB\n- JVM-based Programming Language\n\t* Scala\n\t* Groovy\n\t* Clojure\n\t* Kotlin\n\t* http://www.oracle.com/technetwork/articles/java/architect-languages-2266279.html\n\n###\tIDE\n- IntelliJ IDEA\n- NetBeans\n- Eclipse\n\n###\tTypical Java Applications\n- Online Chatting (Web/Desktop System)\n- Library Management System (Web System)\n- Ticket Booking System(RESTful Web Service)\n- HTTP File Downloader (Console / Desktop)\n- P2P File Sharing (Console / Desktop)\n- Blogging System (Web / REST)\n- RDBMS UI Toolkit (Web /Desktop)\n\n###\tDesktop Development\n- awt\n- Applet\n- swing\n- Netbeans Platform\n- JavaFX\n- swt\n\n###\tMobile Development\n- Android\n- JavaME\n"
  },
  {
    "path": "data/map-DevLang-Nodejs.md",
    "content": "# Node.js 开发技能图谱\n\n## Node.js 语言环境搭建\n\n- Node.js 安装(3m大法：nvm、npm、nrm)\n- Node.js 命令\n- Node.js开发工具(推荐vscode)\n\n## Node.js 语言编程要点\n\n- 使用Node.js 4.x或5.x里的ES 6特性，如果想玩更高级的，可以使用[babel](babeljs.com)编译支持ES 7特性\n- 合理使用[standard](https://github.com/feross/standard) 代码风格约定\n- ES 6语法\n- 需要大家重视OO（面向对象）写法的学习和使用\n\n## 核心模块\n\n- Buffer\n- Child Processes\n- Cluster\n- Crypto\n- DNS\n- Domain\n- Events\n- File System\n- HTTP\n- HTTPS\n- Net (TCP)\n- OS\n- Path\n- Process\n- Punycode\n- Query Strings\n- Readline\n- Stream\n- String Decoder\n- TLS/SSL\n- TTY\n- UDP\n- URL\n- VM\n- ZLIB\n\n## Koa Web 编程\n\n- koa 1.0 && 2.0 （koa2.0刚发布不久，喜欢折腾的可以考虑）\n- mongoose（mongodb）\n- bluebird（Promise/A+实现、Generator、Async）\n- jade（视图层模板）\n- ava（测试）\n- vscode(调试)\n\n### 了解http协议，尤其是表单和ajax传值，在req里如何接收\n\n- 绝对地址和相对地址\n- querystring\n- url 和 uri\n- http status code\n- http verbs\n- req取参数的3种方法\n- 3种不同类型的post\n- 命令行玩法\n- supertest用法\n- what is rest?\n\n### 了解db相关操作，先以mongoose为主\n\n- crud（增删改查）\n- 了解分页\n- 了解关系（1对1，1对多）在mongoose里如何实现\n- 了解statics方法和methods的区别\n- 了解pre和post的差别\n- 了解mongoose的插件机制\n- 了解mvc里m的作用，以及什么样的代码该放到模型里\n- 了解索引优化\n- 了解mongodb的部署\n\n### 了解Generator、Async和Promise/A+规范，合理规避回调陷阱\n\n- 了解的node的异步、generator和async(ES7)\n- 了解异步的恶心\n- 了解异步基本场景，比如waterfall这样的路程使用async如何处理\n- 了解q和bluebird用法（如果有angularjs经验，推荐q，其他只推荐bluebird）\n- 了解bluebird的promisifyAll用法\n- 了解如何重构流程，以及代码的可读性\n\n### 使用tdd/bdd测试，最小化问题\n\n- 理解最小问题思想，培养程序员该有的强大的内心\n- ava的基本用法\n- 理解断言的用法（注内置断言，不需要assert/should/expect等）\n- 理解测试生命周期\n- 理解箭头函数、generator、promise等用法\n- 理解如何模拟数据\n- 理解http下的supertest测试\n- 理解测试覆盖率\n- 理解基于gulp自动化测试方法\n\n### 你无论如何都要会的：调试\n\n- node debug(太挫了，如果不是c，了解gdb、adb之类的人不推荐用)\n- node-inspector(推荐4※)\n- tdd/bdd(推荐5※)\n- vscode编辑器(推荐5※)\n\n## Node.js 应用\n\n- 网站（如express/koa等）\n- im即使聊天(socket.io)\n- api（移动端，pc，h5）\n- http proxy（淘宝首页）\n- 前端构建工具(grunt/gulp/bower/webpack/fis3...)\n- 写操作系统（NodeOS）\n- 跨平台打包工具（nw.js、electron）\n- 命令行工具（比如cordova）\n- 编辑器（vscode）\n\n## Node.js 实战案例\n\n"
  },
  {
    "path": "data/map-DevLang-PHP.md",
    "content": "# PHP 工程师技能图谱\n## 基础知识\n\n- HTTP\n    - HEADER\n    - REQUEST\n    - RESPONSE\n    - GET/POST/PUT/DELETE/PATCH/CONNECT/OPTIONS\n    - HTTPS\n- TCP/UDP\n- DNS\n- SESSION/COOKIE\n- CGI/Fast-CGI/PHP-FPM\n- 重定向\n- Restful API\n- 基础语法\n    - 命名空间\n    - 生成器(Generator)\n    - 引用\n    - 魔术常量\n    - 类与对象\n    - 魔术方法\n    - 重载\n    - Trait\n\n\n## 框架\n\n- Yaf/Phalcon\n- Swoole\n- Laravel\n- Symfony\n- Yii/CI/THinkPHP\n\n## PHP手册&代码规范\n\n- [PHP手册](http://php.net/manual/zh/)\n- [php-langspec](https://github.com/php/php-langspec)\n- [PHP-FIG](https://github.com/php-fig/fig-standards)\n\n\n## Extentions\n\n- PHP 扩展开发\n- 常用扩展\n    - mysqli\n    - pdo_mysql\n    - phpredis\n    - yaf\n    - swoole\n    - opcache\n\n## PHP Debugging\n\n- print_r/var_dump/var_export/debug_zval_dump\n- Xdebug\n- error_reporting/display_errors/error_log/log_errors\n- XHProf\n- Chrome Console\n\n## 技术周边\n\n- Nginx/Apache\n- Mysql/Redis/MongoDB/Memched\n- Composer\n- Lvs/Haproxy\n- Docker\n- Thrift/Grpc/Yar\n- Sphinx/Solr/Elasticsearch\n\n## 开发工具\n\n- zsh/shell\n- VIM/Sublime\n- SVN/Git\n\n## PHP源码 & 内核\n\n- PHP生命周期\n- SAPI\n- 词法分析和语法分析\n- 内存管理\n- Opcode\n- 线程安全\n- Zend\n\n"
  },
  {
    "path": "data/map-DevLang-Python.md",
    "content": "# **Python 工程师技能图谱**\n\n## **入门**\n- 笨办法学Py\n- 官方教程\n- Hitchhiker\n- coursera\n  * codeskulptor.org\n  \n## **进阶/脚本**\n\n### Pythonic\n\n### docopt\n- pocoo\n  * Werkzeug\n  * click\n  * Flask\n    + RESTful\n  * Jinja2\n    + RESTful\n  * Sphinx\n    + txt2tags\n    + AsciiDoc\n    + Pelican\n    + moinmoin\n  * Pygments\n\n### CLI\n- docopt\n- x/84\n- Twilio\n- Urwid\n- Ncurses\n\n### IPython\n- IP[y]:NB\n\n### UTF-8\n\n### virtualenv\n- pyenv\n  * PEX \t   \n\n## **高级/工程**\n\n### 专家\n- Pythonic\n- PyPy\n- Cython\n  * Psyco\n  * pyrex\n  * Pyston\n  * PyParallel\n- PEP\n- FP\n  * lambda\n  * functools\n  * toolz\n  * fn\n  * pp\n- pdb\n  * pyperform\n  * Profiling\n  * FlameGraph\n\n### Web\n- Flask\n  * RESTful\n- Jinja2\n  * RESTful\n- Django\n  * RESTful\n- Bottle\n  * RESTful\n- Tornado\n  * RESTful\n  * gevent\n  * uWSGI\n  * gUnicorn\n  * Twisted\n\n### DevOps\n- Werkzeug\n- TDD\n  * nose\n  * pytest\n  * mock\n- DB\n  * SQLAlchemy\n- PEP8\n  * PyLint\n  * PyFlakes\n- Hg\n- Bazaar\n- CI\n  * Ansible\n  * Bitten\n  * Fabric\n  * SaltStack\n  * Buildout\n  * pip\n\n### IDE\n- IP[y]:NB\n- Anaconda\n- PyCharm\n- Ulipad\n- NetBeans\n- IDLE\n- SublimeText\n- Komodo\n\n### PIL\n- 3D\n  * terry\n  * RenderMan\n  * Tractor\n- gnuplot\n- Game\n  * PyGame\n  * PySonic\n\n### GUI\n- Tkinter\n- wxPython\n- PyQt\n- PyGTK          \n\n### Mobile\n- Kivy\n- QPython \n\n### DataScience\n- Visualizaion\n  * matplotlib\n  * bokeh\n  * ggplot\n  * searborn\n- Pandas \n  * Scikit-lean\n  * numpy  \n    + Theano\n  * scipy\n  * NLTK\n  * Networkx\n- PySpark\n\n### Zope\n\n### Jython\n\n### IronPython\n\n### Leo\n    "
  },
  {
    "path": "data/map-DevLang-Ruby.md",
    "content": "# Ruby 技能图谱\n\n说明： 本图谱只捡重点的列举，并非包含全部。文中所列举或没有列举的资源信息都可以在[awesome-ruby](https://github.com/markets/awesome-ruby)中找到。\n\n## Ruby应用生态\n\n* [Web开发](#Web开发)\n* [自动化测试](#自动化测试)\n* [安全](#安全)\n* [云计算基础](#云计算基础)\n* [嵌入式](#嵌入式)\n\n### Web开发\n\n- Rails全栈式Web框架\n- 轻量级Web开发框架（Sinatra，Cuba等）\n- 异步无阻塞Ruby Server框架：Goliath\n\n### 自动化测试\n\n- RSpec： BDD测试框架\n- Cucumber: BDD验收测试框架\n- Watir: Web应用测试工具\n\n\n### 安全\n\n- Metasploit：也许是最好的渗透测试框架\n- Gitrob: Github敏感信息收集工具\n\n### 云计算基础\n\n- chef:   自动化运维工具\n- puppet: 自动化运维工具\n- fog: 强大的云服务库\n\n### 嵌入式\n\n- mruby:  Ruby的轻量版本，为嵌入式开发而生\n- [mruby-cli](https://github.com/hone/mruby-cli): 为linux等平台构建本地命令行应用\n\n## Web开发需要学习的主力框架\n\n- Rails: 全栈Web开发框架\n- Sinatra: 轻量级的Web开发框架\n- Goliath: 异步非阻塞Ruby Server框架\n\n## 彻底掌握Ruby所需要的「道」与「术」\n\n### 「道」\n\n- 面向对象基础\n- 深入理解Ruby背后的设计哲学和设计原则\n- 深入理解Ruby对象模型\n- 深入理解block和闭包\n- 深入理解Ruby的作用域\n- 深入理解Ruby的方法查找机制\n- 深入理解Ruby的内存管理（变量和对象内存布局，GC算法和工作机制）\n- 进阶：有余力的可以研究Ruby底层的实现\n- 进阶：通过学习lisp（Elixir亦可），来反观Ruby中block（函数式编程风格），以及元编程的实现（Lisp是暴露AST的宏，Ruby是利用Block和作用域隐式操作AST的宏）\n\n\n### 「术」\n\n- 各种具体类型的处理方法和方式，比如字符串和相关编码、正则表达式、IO等处理\n- 并发与并行：\n  - 彻底了解Ruby的GIL及其机制\n  - 彻底了解Ruby线程的发展变化及其工作机制（从用户线程到本地线程）\n  - 彻底了解Fiber及其应用（重点在Goliath中的应用，终结异步回调地狱）\n  - 彻底了解进程相关（重点在各种Ruby多进程应用服务器的工作机制）\n  - 尝试了解基于actor模型的Ruby并发库Celluloid。\n- 社区中各种Gem的实现原理及其用法\n\n## 学习资源\n\n\n- [「诱人的Ruby」视频教程](http://edu.51cto.com/lecturer/index/user_id-140924.html)\n- [Ruby Weekly订阅](http://rubyweekly.com/)\n- 其他请自行Google: Ruby books\n"
  },
  {
    "path": "data/map-DevLang-Total.md",
    "content": "# 开发语言综述\n \n## 范式\n\n### 声明式\n- 函数式\n   - Common Lisp\n   - Clojure\n   - Haskell\n   - Erlang\n   - Scala\n   - LISP\n   - Logo\n   - F#\n- 逻辑式\n   - Prolog\n\n### 命令式\n- 非结构化\n   - COBOL\n- 结构化\n   - 面向对象\n     - Visual Basic\n     - Objective-C\n     - Smalltalk\n     - Python\n     - Ruby\n     - Eiffel\n     - Java\n     - C++\n     - C#\n   - 过程式\n     - Delphi/Object Pascal\n     - Fortran\n     - BASIC\n     - Pascal\n     - Go\n     - C\n   - 原型\n     - IO\n\n### 元编程\n- 泛型／模板\n   - Eiffel\n   - C++\n   - D\n- 反射化\n   - ECMAScript\n   - Python\n   - Java\n   - Ruby\n   - PHP\n   - Perl\n   - R\n\n## 移动\n- IOS\n  - Swift\n  - AppleScript\n  - Objective-C\n- 黑莓\n  - JAVA\n  - HTML\n  - C/C++\n  - Adobe Air\n- Android\n  - JAVA\n- windows phone\n  - C#\n  - VB\n  - C++\n  - javascript\n\n## 平台\n- .NET框架\n  - Visual Basic .NET\n  - Visual C#\n  - ASP.NET\n  - C#\n  - F#\n  - J#\n\n- Java VM\n  - Groovy\n  - Clojure\n  - JRuby\n  - Ceylon\n  - Jython\n  - Scala\n  - Kawa\n  - Java\n\n## 脚本语言\n- Lua\n- Perl\n- JSP\n- PHP\n- ASP\n- Shell\n  - sh\n  - csh\n  - ksh\n  - sed\n  - awk\n  - bash\n- Ruby\n- Tcl/Tk\n- Python\n- VBScript\n- AppleScript\n- ECMAScript派生\n  - Dart\n  - JScript\n  - JavaScript\n  - ActionScript\n  - CoffeeScript\n\n## 其他\n- Ada\n- Forth\n- AAuto\n- 易语言\n- ALGOL\n- 汇编语言\n  - x86/amd64汇编指令\n      - Intel汇编\n      - AT&T汇编\n\n## 专业工具\n- 标记\n  - Curl\n  - SGML\n      - XML\n      - SVG\n      - XSLT\n      - SSML\n      - SGML\n      - HTML\n      - XHTML\n      - DHTML\n      - XML Schema\n- 数据库\n  - LINQ\n  - T-SQL\n  - XQuery\n  - PL/SQL\n  - Visual FoxPro\n- 样式格式描述\n  - XSL\n  - CSS\n- 工业与辅助设计\n  - AutoCAD\n- 科学与统计计算\n  - R\n  - MATLAB\n  - FORTRAN\n  - Mathematica\n\n"
  },
  {
    "path": "data/map-DevOps.md",
    "content": "# DevOps技能图谱\n\n\n## 方法和文化\n\n### 核心文化\n- CALMS原则\n- The Three Ways\n- 自动化\n- 可视化\n- 度量化\n\n### 敏捷方法论\n- 以人为本\n- 敏捷宣言\n- 极限编程\n- SCRUM方法\n- 迭代改进\n- 需求管理\n\n### 精益方法论\n- 最小可行产品\n- 单一关键指标\n- 精益画布\n- 精益看板\n- 风险管理\n- 超越预算\n- 投资组合\n\n### 持续集成和持续交付\n- 流水线\n- 版本控制\n- 依赖管理\n- 内建质量\n- 环境管理\n- 零停机发布\n- 灰度发布\n\n\n## 设计和架构\n\n### 云原生架构\n- 十二要素\n- CAP理论\n- BASE理论\n- 云基础设施\n- 无状态服务\n- 高可用设计\n- 自动扩缩容\n- 平台即服务\n\n### 微服务架构\n- 康威定律\n- 服务治理\n- 服务发现\n- 配置管理\n- 故障熔断\n- 日志管理\n- 性能监控\n- 链路监控\n- 服务网关\n\n### 领域驱动设计\n- 统一语言\n- 业务实体\n- 值对象\n- 聚合\n- 工厂\n- 仓储\n- 领域服务\n- 限界上下文\n- 上下文地图\n- 分层架构\n- 事件风暴\n\n### 设计思维\n- 以用户为中心\n- 发散性思考\n- 头脑风暴\n- 交互原型\n- 测试反馈\n\n\n## 技术和工具\n\n### 版本控制\n- Subversion\n- Mercurial\n- Bazaar\n- Git\n- Gitlab\n- Gogs\n- SourceTree\n- Visual SourceSafe\n\n### 基础设施自动化\n- Ansible\n- Chef\n- Puppet\n- SaltStack\n- Fabric\n- Terraform\n- StackStorm\n- Docker\n\n### 交付流程可视化\n- Jenkins\n- Buildbot\n- Drone\n- GoCD\n- TeamCity\n- Gitlab CI\n- Bamboo\n- Travis\n- CircleCI\n- Shippable\n\n### 团队协作和项目可视化\n- Jira\n- Redmine\n- Trello\n- Basecamp\n- Teambition\n- Confluence\n- Gitbook\n- Team Foundation\n\n### 测试和质量管理\n- SonarQube\n- Fortify\n- Swagger\n- Cucumber\n- RobotFramework\n- Selenium\n- Gauge\n- JMeter\n- Gatling\n- LoadRunner\n- Tsung\n\n### 日志和监控\n- Zabbix\n- Nagios\n- Prometheus\n- TICK Stack\n- Grafana\n- Elastic Stack\n- Flume\n- Splunk\n- Scribe\n- Fluentd\n- Chukwa\n- OneAPM\n- 听云\n\n### 安全和密钥管理\n- Threat Modeling\n- OWASP ZAP\n- OpenTPX\n- Passive Total\n- Critical Stack\n- Vault\n- BlackBox\n- Transcrypt\n- Keybase\n- Git Secrets"
  },
  {
    "path": "data/map-EmbeddedEngineer.md",
    "content": "# 嵌入式工程师\n\n## 硬件核心(Hardware Core)\n \n### Controller(控制器)\n - CPU\n   - AMD x86 x64\n   - Intel x86 x64\n - MCU\n   - MCS-51\n   - HCS12\n   - AVR XMEGA\n   - ESP\n   - Coldfire\n   - ARM\n   - STM32\n   - FreeScale K60 K40\n   - PIC32 PIC12/14/16\n   - TM4C123 TM4C129X\n   - Stellaris lm4f120\n   - CC3200\n   - Renesas R-Car Boards\n   - MIPS Creator CI20\n - MPU\n - SOC\n   - OMAP\n   - BCM2835(Raspberry Pi A+、B、B+)\n   - BCM2836(Raspberry Pi 2B)\n - CPLD\n   - Altera EPM7128S\n   - Lattice LC4128V\n   - Xilinx XC9500\n - FPGA\n   - Altera Cyclone\n   - Lattice MachXO2 MachXO3  \n - PowerPC\n   - MPC505、821、850、860、8240、8245\n   - QUICC ⅡMPC826\n   - QUICC Ⅲ MPC8560\n - DSC\n   - TMS320F28x\n   - MC56 F83x\n - MIPS\n\n### Actuator(执行器)\n - 直流电机\n   - 有刷直流电机\n   - 无刷直流电机\n - 交流电机\n   - 单相电机\n   - 三相电机\n - 步进电机\n - 直线电机\n - 舵机\n - 伺服电机\n\n### Sensor(传感器)\n - RIP(人体红外)\n - Temperature(温度)\n - humidity sensor（湿度传感器）\n - geomagnetic sensor（地磁传感器） \n - acceleration transducer（加速度传感器）\n - optoelectronic switch （光电开关）\n - pneumatic sensor (气流传感器)\n - current sensor (电流传感器)\n - soil sensor (土壤传感器)\n - llumination sensor (光照传感器)\n - laser sensor (激光传感器)\n - Motion(运动)\n - Moisture sensor (土壤温度传感器)\n - 电压传感器\n - three-axis gyroscope（三轴陀螺仪）\n - Camera 感光元件（图像传感器）\n - baroceptor（气压传感器）\n - gas sensor（气敏传感器）\n - Dust concentration sensor（粉尘浓度传感器）PM2.5\n - Water level sensor（水位传感器）\n - Pulse sensor（脉搏传感器）\n - EEG sensor（脑皮质电位传感器）\n - Flex Sensor (弯曲传感器）\n - proximity sensor (近距离传感器)\n - Atmospheric Pressure Sensor （气压传感器）\n\n## Electronic Component(电子元件)\n- 电容\n- 保护装置\n- 端子与连接器\n- 电线\n- 开关\n - Switch\n - Keypad\n - Relay\n- 电阻\n - Thermistor (热敏电阻)\n - Varistor(压敏电阻)\n - Photosensitive resistance(光敏电阻)\n- 电磁感应装置\n- network\n - 电阻排\n- 忆阻器\n- 压电装置、晶体谐振器\n- 电源\n- 二极管\n- 晶体管\n\n## MCU/CPU/DSP/SOC peripherals\n- ADC / DAC\n- RTC\n- Timer / Watchdog Timer (定时器)\n- Flash / NAND Flash\n- ROM / EEPROM\n- RAM\n - SDRAM\n - DDR1 DDR2 DDR3 DDR4\n- Cache\n- PWM\n- I/O / GPIO\n- UART\n- Modem\n- DTMF\n- CAN\n- SPI\n- I2C\n- IEEE\n- CRC\n- Interrupt (中断)\n\n## Communication(通信)\n- 硬件间无线通信\n - Bluetooth\n - Xbee / Zigbee\n - Z-Wave\n - 6LoWPAN\n - NFC\n - Wifi\n - Radio\n - IR (红外)\n - 802.11\n - Sub-GHZ 1Ghz以下RF\n- 硬件通信\n - UART\n - I2C\n - RS232C/RS485\n - HDLC\n - SPI/SCI/SI\n - CAN\n - USB\n - FireWire\n - 1-wire\n- 网络协议\n - HTTP\n - CoAP\n - MQTT\n - XMPP\n - WebSocket\n - UDP\n - TCP\n\n## 软件编程\n- Common\n - ISR\n - Driver\n - DMA\n - I2C\n- OS\n - uCOS\n - Contiki\n - TinyOS\n - VXWorks\n - FreeRTOS\n - mbed OS\n - emOS\n - Salvo\n - MQX\n - RIOT\n - rt-thread\n - Linux\n   - uCLinux\n   - openWRT\n - Windows\n   - Windows CE\n   - Windows 10 IoT Core\n- non-OS\n - LwIP\n\n## 电路\n- 基础\n - 焊电路\n - 模拟电路\n - 数字电路\n- PCB设计\n - 设计工具\n\t   - Eagle\n\t   - Cadence\n\t   - Protel\n\t   - Altium\n\t   - Mentor\n\t   - Kicad\n\t   - gEAD\n\t   - ZUKEN\n\t   - PADS\n\t   - FreePCB\n\t   - Fritzing\n\t   - PCBmodE\n - 布线/布线\n- 电路仿真\n - 原理仿真软件\n\t   - Multisim\n\t   - Proteus\n\t   - Pspice\n - 信号仿真软件\n\t   - ADS\n\t   - HFSS\n\t   - HyperLynx\n\t   - Sigrity\n\t   - MATLAB\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "data/map-FrontEndEngineer.md",
    "content": "# 前端工程师技能图谱\n\n## 浏览器\n\t  - IE6/7/8/9/10/11 (Trident)\n\t  - Firefox (Gecko)\n\t  - Chrome/Chromium (Blink)\n\t  - Safari (WebKit)\n\t  - Opera (Blink)\n\n## 编程语言\n\t  - JavaScript/Node.js\n\t  - CoffeeScript\n\t  - TypeScript\n\n## 切页面\n\t  - HTML/HTML5\n\t  - CSS/CSS3\n\t  - Sass/LESS/Stylus\n\t  - PhotoShop/Paint.net/Fireworks/GIMP/Sketch\n\n## 开发工具\n\n### 编辑器和IDE\n\t- VIM/Sublime Text2\n\t- Notepad++/EditPlus\n\t- WebStorm\n\t- Emacs EmacsWiki\n\t- Brackets\n\t- Atom\n\t- Lime Text\n\t- Light Table\n\t- Codebox\n\t- TextMate\n\t- Neovim\n\t- Komodo IDE / Edit\n\t- Eclipse\n\t- Visual Studio/Visual Studio Code\n\t- NetBeans\n\t- Cloud9 IDE\n\t- HBuilder\n\t- Nuclide    \n\n### 调试工具\n    - Firebug/Firecookie\n    - YSlow\n    - IEDeveloperToolbar/IETester\n    - Fiddler/Charles\n    - Chrome Dev Tools\n    - Dragonfly\n    - DebugBar\n    - Venkman\n\n### 版本管理\n    - Git/SVN/Mercurial\n    - Github/GitLab/Bitbucket/Gitorious/GNU Savannah/Launchpad/SourceForge/TeamForge\n\n## 代码质量\n\n### Coding style\n    - Eslint/JSLint/JSHint/jscs\n    - CSSLint\n    - Markup Validation Service\n    - HTML Validators\n\n### 单元测试\n    - QUnit/Jasmine\n    - Mocha/Should/Chai/Expect\n    - Unit JS\n\n### 自动化测试\n    - WebDriver/Protractor/Karma Runner/Sahi\n    - phantomjs\n    - SourceLabs/BrowserStack\n\n## 前端库/框架\n\t  - jQuery/Underscore/Mootools/Prototype.js\n\t  - YUI3/Dojo/ExtJS/KISSY\n\t  - Backbone/KnockoutJS/Emberjs\n\t  - AngularJS\n\t    - Batarang\n\t  - Bootstrap\n\t  - Semantic UI\n\t  - Juice UI\n\t  - Web Atoms\n\t  - Polymer\n\t  - Dhtmlx\n\t  - qooxdoo\n\t  - React\n\t  - Brick\n      - Vue.js\n\n## 前端标准/规范\n    - HTTP/1.1: RFCs 7230-7235\n    - HTTP/2\n    - ECMAScript 5/6/7\n    - W3C: DOM/BOM/XHTML/XML/JSON/JSONP/...\n    - CommonJS Modules/AMD\n    - HTML5/CSS3\n    - Semantic Web\n      - MicroData\n      - RDFa\n    - Web Accessibility\n      - WCAG\n      - Role Attribute\n      - WAI-ARIA\n\n## 性能\n    - JSPerf\n    - YSlow 35 rules\n    - PageSpeed\n    - HTTPWatch\n    - DynaTrace's Ajax\n    - 高性能JavaScript\n\n## SEO\n\n## 编程知识储备\n\t  - 数据结构\n\t  - OOP/AOP\n\t  - 原型链/作用域链\n\t  - 闭包\n\t  - 编程范型\n\t  - 设计模式\n\t  - Javascript Tips\n\n## 部署流程\n\n### 压缩合并\n    - YUI Compressor\n    - Google Clousure Complier\n    - UglifyJS\n    - CleanCSS\n\n###  文档输出\n    - JSDoc\n    - Dox/Doxmate/Grunt-Doxmate\n\n###  项目构建工具\n    - make/Ant\n    - GYP\n    - Grunt\n    - Gulp\n    - Yeoman\n    - FIS\n    - Mod\n    - Webpack\n\n## 代码组织\n\n### 类库模块化\n    - CommonJS/AMD/ES6 Module\n    - YUI3模块\n\n### 业务逻辑模块化\n    - bower/component\n\n### 文件加载\n    - LABjs\n    - SeaJS/Require.js/Webpack\n\n### 模块化预处理器\n    - Browserify\n\n## 安全\n\t  - CSRF/XSS\n\t  - CSP\n\t  - Same-origin policy\n\t  - ADsafe/Caja/Sandbox\n\n## 移动Web\n\t  - HTML5/CSS3\n\t  - 响应式网页设计\n\t  - Zeptojs/iScroll\n\t  - V5/Sencha Touch\n\t  - PhoneGap (Cordova)\n\t  - Ionic\n\t  - jQuery Mobile\n\t  - W3C Mobile Web Initiative\n\t  - W3C mobileOK Checker\n\t  - Open Mobile Alliance\n      - React Native/Weex\n\n## 前沿技术社区/会议\n\t  - D2/WebRebuild\n\t  - NodeParty/W3CTech/HTML5梦工厂\n\t  - JSConf/沪JS(JSConf.cn)\n\t  - QCon/Velocity/SDCC\n\t  - JSConf/NodeConf\n\t  - CSSConf\n\t  - YDN/YUIConf\n\t  - HybridApp\n\t  - WHATWG\n\t  - MDN\n\t  - codepen\n\t  - w3cplus\n\t  - CNode\n\n## 计算机知识储备\n\t  - 编译原理\n\t  - 计算机网络\n\t  - 操作系统\n\t  - 算法原理\n\t  - 软件工程/软件测试原理\n\t  - Unicode\n\n## 软技能\n\t  - 知识管理/总结分享\n\t  - 沟通技巧/团队协作\n\t  - 需求管理/PM\n\t  - 交互设计/可用性/可访问性知识\n\n## 可视化\n\t  - SVG/Canvas/VML\n\t  - SVG: D3/Raphaël/Snap.svg/DataV\n\t  - Canvas: CreateJS/KineticJS\n\t  - WebGL/Three.JS\n\n"
  },
  {
    "path": "data/map-Git.md",
    "content": "\n# Git\n\n## 分布式世界\n\n\n### 1. 版本控制之道\n\n- 版本库\n    - 集中式（CVS、SVN）\n    - 分布式（git）\n- 工作目录树\n    - 断面视图\n    - 工作拷贝\n    \t- 1、初始化（init）.git目录\n    \t- 2、克隆（clone）\n- 代码修改与文件同步\n- 跟踪项目、目录和文件\n- 使用标签跟踪里程碑\n- 使用分支来跟踪并行演进\n- 合并\n- 锁机制\n\n### 2. 安装与设置\n\n- 安装\n    - Linux\n    - Mac：sudo port install git-core +svn +doc\n    - Windows\n        - Cygwin\n        - MSys\n- 设置 git config\n    - 提   交  者：git config --global user.name \"Jamsonwoo\"\n    - 邮件地址：git config --global user.email \"Jamsonwoo@126.com\"\n    - 查看：git config --global --list\n    - 颜色：git config --global color.ui \"auto\" （auto/always/false)(注：MSys建议用always)\n- GUI\n    - Tcl/TK：git gui(备注：工作目录树)\n    - gitk --all(备注：工作目录树)\n    - GitX (Mac)\n- 内置帮助\n    - git help <command>\n    - git-doc\n\n### 3. Hello Git\n\n- 创建版本库：git int\n- 修改代码\n    - 1、添加索引：git add index.html\n    - 2、提交记录：git commit -m \"add in hello git HTML\"  （备注：提交留言至少应该体现出进行本次修改的原因。先用一句简单的话来概括该提交；然后用几句话全面解释。）\n    - 3、查看日志\n        - git log <-1>（扩展：SHA-1哈希码）\n        - git log --pretty=oneline\n- 视图状态：git status （备注：存放代码）\n\t- 1、工作目录树  \n\t- 2、索引（暂存区）  \n\t- 3、版本库\n- 分支\n    - 1、创建分支：git branch 新分支名称 父分支名称  \n        git branch RB_1.0 master\n    - 2、提交修改：git commit -a（-a：提交全部修改过的文件）\n    - 3、切换分支：git checkout 分支名称  \n        git checkout RB_1.0\n- 处理发布\n    - 1、打标签：git tag 标签名称 打标签的点  \n        git tag 1.0 RB_1.0\n    - 2、变基命令：git rebase 分支名称（合并到主分支）  \n        git rebase RB_1.0\n    - 3、删除分支：git branch -d 分支名称  \n        git branch -d RB_1.0\n    - 4、创建归档：git archive --format=输出格式 --prefix=包内容 需要归档的标签名称 | gzip > 压缩结果重定向  \n    \t- git archive --format=tar --prefix=mysite-1.0/ 1.0 | gzip > mysite-1.0.tar.gz  \n    \t- git archive --format=zip --prefix=mysite-1.0/ 1.0 > mysite-1.0.zip\n- 克隆远程版本库：git clone 远程版本库的位置 存放该版本库的本地目录  \n    git clone git://github.com/tswicegood/mysit.git mysite-remote\n\n\n## Git用法\n\n\n### 1. 添加与提交\n\n- 添加文件到暂存区\n    - 1、启动交互命令提示符：git add -i\n    - 2、直接进入补丁模式：git add -p\n- 提交修改\n    - 1、跟踪空目录：git不单独记录和跟踪目录，解决：在空目录里添加一个句点开头的空文件\n    - 2、git commit 的提交留言编辑器 -v  \n    \t- 如果输入不带-m参数的git commit命令，Git将启动编辑器来编辑提交留言。为启动编辑器，Git会按照一下顺序查找编辑器的设置：\n\t\t- 1、环境变量 GIT_EDITOR 的值。\n\t\t- 2、Git 的设置 core.editor 的值。\n\t\t- 3、环境变量 VISUAL 的值。\n\t\t- 4、环境变量 EDITOR 的值。\n\t\t- 5、如果上述值均为空，Git 会尝试启动 vi 编辑器。        \n- 提交三法  \n    - 备注 a、提交暂存后的修改（先暂存后提交）  \n    - 备注 b、提交工作目录树中的所有修改（把修改直接提交）  \n    - 备注 c、提交工作目录树中执行的修改（把修改直接提交）\n    - 1、添加到暂存区\n        - 1、git add 文件\n        - 2、git commit -m \"留言\"\n    - 2、提交所有修改到版本库：git commit  -m \"留言\" -a\n    - 3、指定提交文件（列表）：git commit -m \"留言\" 文件  \n        Git别名:  \n        git commit 简写为：git ci  \n        git config --global alias.ci \"commit\"\n- 查看修改内容\n    - 1、查看当前状态：git status  \n        Changes to be committed.    待提交变更   \n        Changed but not updated.    未更新到索引的变更\n    - 2、查看文件改动：git diff\n        - a、git diff 无参 工作目录树 VS 暂存区\n        - b、git diff --cached  暂存区 VS 版本库\n        - b、git diff HEAD  工作目录树（暂存＋未暂存） VS 版本库\n- 管理文件\n    - 1、文件重命名与移动：git mv 原文件名称 新文件名称\n    - 2、复制文件：无git cp命令，无需复制\n    - 3、忽略文件：\n        - a、版本级：文件加入.gitignore文件中，支持通配符*\n        - b、本地级：.git/info/exclude\n\n### 2. 分支\n\n- 什么叫分支\n    - 分支重命名：git branch -m   分支原名称   新名称  \n        git branch -m master mymaster\n    - 显示本地版本库所有本地分支名称：git branch\n    - 创建分支：1、试验性更改  2、增加新功能  3、Bug修复\n- 创建新分支\n    - 创建分支：git branch   新分支名称  \n        git branch newBranchName\n    - 检出分支：git checkout 分支名称  \n        git checkout newBranchName\n    - 创建并检出：git checkout -b  新分支名称  新分支源分支  \n        git checkout -b newBranchName2 master\n- 合并分支\n    - 合并(merge)方法\n        - 1、直接合并：把两条分支上的历史轨迹合并，交汇到一起\n        - 2、压合合并：一条分支上若干提交条目压合成一个提交条目，提交到另一条分支的末梢\n        - 3、拣选合并：拣选另一条分支上的某个提交条目的改动带到当前分支上\n    - 直接合并\n        - git merge 分支名称  \n            git checkout alternate  \n            git add about.html  \n            git commit -m \"add about page\"  \n            git checkout master  \n            git merge alternate\n    - 压合合并\n        - git merge --squash 分支名称  \n            git checkout -b contact master  \n            git add contact.html  \n            git commit -m \"add contact file\"  \n            git commit -m \"add contact file 2\" -a  \n            git checkout master  \n            git merge --squash contact  \n            git status  \n            git commit -m \"add contact page\" -m \"has primary and secondary email\"\n    - 拣选合并\n        - git cherry-pick 提交名称  \n            git checkout contact  \n            git commit -m \"add contact 3\" -a  \n            [contact 6dbaf82]......  \n            git checkout master  \n            git cherry-pick 6dbaf82  /  git cherry-pick -n 6dbaf82\n- 冲突处理\n    - git merge  \n        git checkout -b about master  \n        编辑about.html  \n        git add about.html  \n        git commit -m \"add about.html \"  \n        git branch about2 about  \n        编辑about.html  \n        git commit -m \"add about.html 1\" -a  \n        git checkout about2  \n        编辑about.html  \n        git commit -m \"add about.html 2\" -a  \n        git checkout about      \n        git merge about2     \n        git mergetool    \n        git commit\n    - 处理冲突软件（kdiff3）：git config --global merge.tool kdiff3\n    - git mergetool\n- 删除分支\n    - git branch -d 分支名称  （成功合并到当前分支时）  \n        git branch -d about2\n    - git branch -D 分支名称 （强制删除）\n- 分支重命名\n    - git branch -m 原分支名称  新分支名称 （不允许重名）  \n        git branch -m contact abc\n    - git branch -M 原分支名称  新分支名称 （强制覆盖）  \n        git branch -m master contact\n\n### 3. 查询历史记录\n\n- 查看日志\n    - git log\n        - j 向下浏览；k 向上浏览；q 退出\n        - 提交名称、提交人、提交日期、提交留言\n    - git log -p （显示版本之间的代码差异）\n    - git log -1（数字表示提交日志条数）\n    - git log 7b1558c （指定提交名称缩写[前7位]）\n- 指定查找范围\n    - git log --since/before=\"英文格式日期\"\n        - git log --since=\"5 hours\" （最近5小时内）\n        - git log --before=\"2012-8.20\" -1 （20120820之前的最后一条）\n    - git log 最老版本..最新版本\n        - git log 18f822e..0bb3dfb\n        - 注：日志结果不包括最老，包括最新\n        - git log 18f822e..HEAD  /  git log 18f822e..\n    - git log 标签名称\n        - git log --pretty=format:\"%h %s\" 1.0..HEAD\n        - git log --pretty=oneline 1.0..HEAD\n    - \\^：回溯一个版本\n        - git log 18f822e^^\n        - 注：1、windows系统下，^需要添加双引号 git log “18f822e^^”。\n        - 注：2、当遇到某个节点（通常是版本合并后的节点）有并列的多个父节点时，“^1”代表第一个父节点，“^2”代表第二个，以此类推。而“^”是“^1”的简写。\n    - *~N：回溯N个版本\n        - git log -1 HEAD^^^  /  git log -1 HEAD^~2  /  git log -1 HEAD~1^  /  git log -1 HEAD~3\n        - git log -1 HEAD~10..HEAD\n- 查看版本间差异\n    - git diff 版本名称（与当前工作目录树的差异）\n        - git diff 18f822e\n    - git diff --stat 1.0（数据统计）\n- 查明提交者\n    - git blame 文件名（特定代码块历史）\n        - git blame hello.html\n        - 注：1、格式：提交名称  初始文件名（提交人   提交时间  行号）   代码行\n        - 注：2、^脱字号开头表示版本库中第一个递交\n    - git blame -L <开始>,<结束> 文件名（特定代码行历史）\n        - git blame -L 12,13 hello.html\n        - git blame -L 12,+2 hello.html\n        - git blame -L 12,-2 hello.html\n    - git blame -L 正则表达式 文件名（特定代码行历史）\n        - git blame -L \"/<\\/body>/\",+2 hello.html\n        - >git blame -L \"/<\\/body>/\",-2 \"4333289e^\" -- index.html\n- 跟踪内容\n    - 检查在同一个文件内移动或复制的代码行：git blame -M 文件名\n    - 查看文件之间的复制：git blame -C -C 文件名\n    - 查看显示代码的具体变动的历史记录：git log -C -C -1 -p\n- 撤销修改\n    - 增补提交：git commit -C HEAD -a --amend\n        - --amend：增补提交\n        - -C：复用指定提交的提交留言\n        - -c：打开编辑器，在已有提交留言基础上修改\n    - 反转提交：git revert -n 提交名称\n        - 参数：--no-edit\n    - 复位：git reset 提交名称\n        - 提交名称默认值：HEAD\n        - 提交名称可用^和~修饰符\n        - 参数--soft：暂存所有因复位带来的差异，但不提交它\n        - 参数--hard：慎用，从版本库和工作目录树中同时删除提交\n- 重新改写历史记录\n    - 重新排序提交：git rebase -i HEAD~3\n    - 将多个提交压合成一个提交：git rebase -i 0bb3dfb^\n    - 将一个提交分解成多个提交：git rebase --continue\n\n### 4. 与远程版本库协作\n\n- 网络协议\n    - SSH：用户名@服务器名/版本库路径  \n        git@github.com/tswicegood/mysite-chp6.git\n    - git：协议://服务器名/版本库路径  （使用9418端口、匿名、无须加密、只读）  \n        git://github.com/tswicegood/mysite-chp6.git\n    - HTTP/HTTPS：需架设WebDAV服务\n    - 最快：git\n    - 安全：SSH\r\n    - 不受防火墙限制：HTTP(S)\n- 克隆远程版本库：git clone git://github.com/tswicegood/mysite-chp6.git\n- 版本库同步\n    - 取来（fetch）：git fetch\n    - 查看远程分支：git branch -r\n    - 取来合并：git pull 远程版本库名称 须要拖入的远程分支名\n    - 远程分支名前缀origin/表示远程版本库上的分支名称，origin是默认远程版本库别名\n- 推入改动\n    - 推入默认版本库origin：git push\n    - 查看推入哪些提交：git push --dry-run\n    - 推入指定版本库：git push <repository> <refspec>  \n        git push origin mybranch:master\n- 添加新的远程版本库\n    - 一次拖入：git pull git://ourcompany.com/dev-erin.git\n    - 使用别名：git remote add 别名 路径\n    - 查看远程版本库详细信息：git remote show <name>\n    - 删除别名：git remote rm\n\n### 5. 管理本地版本库\n\n- 使用标签标记里程碑\n    - 标签只读、标签名不能包含空格\n    - 查看已存在标签：git tag\n    - 新建标签：git tag 标签名\n    - git tag 标签名 提示名称/分支名称\n- 发布分支的处理\n    - 发布分支通常以RB_为前缀并包含版本号，RB_1.3\n    - git branch RB_1.0.1 1.0\n- 标签与分支的有效名称\n    - 不能以“/”结尾\n    - 不能以“.”开头\n    - 不能使用特殊字符：空格~^:?*[控制符删除键\n    - 不能出现“..”\n- 记录和跟踪多个项目\n    - 多个项目共享一个版本库\n    - 多项目多版本库\n- 使用Git子模块跟踪外部版本库\n    - 添加新子模块\n        - 查看该版本库的子模块：git submodule\n        - 添加新子模块：git submodule add 源版本库 存储路径  \n            git submodule add  git://github.com/tswicegood/hocus.git  hocus\n        - 初始化子模块：git submodule init hocus\n    - 克隆含子模块的版本库：git submodule update 子模块名  \n        cd work  \n        git clone magic new-magic  \n        cd new-magic  \n          \n        git submodule   \n        git submodule init hocus  \n        git submodule update hocus\n    - 改变子模块的版本\n    - 使用子模块时要提防的错误\n        - git add 确保结尾没有“\\”\n        - submodule update 先检查提交\n        - 添加新内容到本地自模块版本库，要检出正确分支\n        - 修改提交，确保改动被送回远程版本库\n\n### 6. 高级功能\n\n- 压缩版本库\n    - git gc  整理版本库、优化Git内部存储历史记录\n    - git gc <--aggressive>  重新计算增量存储单元\n- 到处版本库\n    - 创建版本快照:git archive 格式类型 指定版本\n    - git archive --format=<tar/zip> <--prefix=父目录> 转换格式  \n        git archive --format=zip --prefix=mysite-release/ HEAD > mysite-release.zip     \n        git archive --format=tar --prefix=mysite-release/ HEAD | gzip > mysite-release.tar.gz\n- 分支变基\n    - git rebase --continue/--skip/--abort\n    - git rebase --onto master contacts search\n- 重现隐藏的历史：git reflog\n- 二分查找\n    - git bisect start\n    - git bisect bad\n    - git bisect good 1.0\n    - git bisect reset\n    - git bisect visualize\n    - git bisect log\n    - git bisect replay <文件>\n    - git bisect run\n\n\n\n\n"
  },
  {
    "path": "data/map-HTML5.md",
    "content": "# HTML5 开发技能图谱\n![HTML5 脑图](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-HTML5-by-StuQ.png)\n\nMd 文字版\n----\n\n## 基础篇\n\n- HTML/CSS\n\n- JavaScript\n\n- DOM\n\n## 中级篇\n\n- 数据格式(如JSON、XML）\n\n- RESTful API交互（如jQuery Ajax，Fetch API，ReactiveX)\n\n- 正则表达式\n\n- HTML语义化\n\n- 命令行\n\n- Node.js\n\n- DIV/CSS\n\n- SCSS/SASS\n\n- 矢量图形/矢量图形动画（如SVG）\n\n- 单页面应用\n\n## 高级篇\n\n- ES6/TypeScript\n\n- CSS3\n\n- 面向对象编程\n\n- 函数式编程\n\n- MVC/MVVM/MV*\n\n- 安全性（如跨域）\n\n- 授权（如HTTP Basic，JWT等）\n\n## 工程化\n\n- 代码质量（如JSLint，ESLint，TSLint，CSLint）\n\n- 代码分析（如Code Climate)\n\n- 测试覆盖率\n\n- 构建系统(gulp，grunt，webpack等）\n\n- 自动构建（脚本）\n\n## 兼容性\n\n- 跨浏览器测试（如Chrome，IE，Safari，Firefox等）\n\n- 跨平台测试（如Windows，GNU/Linux，Mac OS等）\n\n- 跨设备测试（如Desktop，Android，iOS，Windows phone等）\n\n- 跨版本测试（同一浏览器的不同版本）\n\n## SEO\n\n- Sitemap(站点地图）\n\n- 内部链接建设\n\n- MicroData/MicroFormat\n\n- 页面静态内容生成\n\n- H1，H2，H3和strong使用\n\n- Title，Description优化\n\n- 页面静态内容生成\n\n## 设计\n\n- 切页面\n\n- 线框图（Wireframe)\n\n- 响应式设计\n\n- 网格布局（Grid Layout)\n\n- Flexbox布局\n\n## 性能与优化\n\n- PageSpeed/Yslow优化\n\n- 加载优化（如gzip压缩，缓存等）\n\n- 性能测试（特别是移动Web)\n\n- 可用性\n\n- 压缩（如Minify，Uglify，CleanCSS等）\n\n## 测试\n\n- 单元测试\n\n- 服务测试\n\n- UI测试\n\n- 集成测试\n\n## 调试\n\n- 浏览器调试\n\n- Debug工具\n\n- Wireshark/Charles抓包\n\n- 远程设备调试（如Chrome Inspect Devices)\n\n## 软件工程\n\n- 版本管理（如git，svn)\n\n- 包管理（如npm，bower)\n\n- 依赖管理\n\n- 模块化（如CommonJS，WebPack)\n\n## 前端特定\n\n- CSS/CSS3动画\n\n- JavaScript动画\n\n- Web字体嵌入\n\n- Icon字体\n\n- 图形和图表\n\n- CSS Sprite(如glue)\n\n- DOM操作（如jQuery，React等）\n\n- 模板引擎（如JSX\t，Handlebars，JSP，Mustache等）\n\n"
  },
  {
    "path": "data/map-Hadoop.md",
    "content": "----\n# Hadoop 家族技能图谱\n- Hadoop\n- Zookeeper\n- Avro\n- Chukwa\n- Ambari\n- Whirr\n- Bigtop\n- HCatalog\n- Hue\n- HBase\n- Pig\n- Sqoop\n- Cassandra\n- Hama\n- Flume\n- Giraph\n- Oozie\n- Crunch\n- Hive\n- Mahout\n\n----\n\n## Hive 技能图谱\n### Hive介绍\n### Hive系统架构\n- MetaStore\n   - Derby\n   - MySQL\n- HDFS\n   - /user/hive/warehouse\n- MapReduce\n\n### Hive配置文件\n- hive-env.sh\n- hive-site.xml\n- hive-log4j.properties\n\n### Hive命令行\n\n- hive-config\n- hive shell\n   - quit,exit\n   - reset\n   - set\n   - add,list,delete FILES\n   - ! <命令>\n   - dfs <命令>\n   - HQL\n   - source FILES\n- hive service\n   - hive-service cli\n   - hive-service hiveserver\n   - hive-service metastore\n   - hive-service hwi\n   - hive-service jar\n\n### HiveQL\n\n- 语法关键字\n   - show databases\n   - show PARTITIONS\n   - show tables\n   - create table\n   - load data(local) inpath\n   - Select*from\n   - desc,alert,drop\n   - limit,as,case when then,union\n   - like,group by,having\n   - order by,sort by\n   - cluster by\n\n- 数据类型\n   - 简单类型\n      - tinyint,smallint,int,bigint\n      - float,double\n      - boolean\n      - string\n      - timestamp\n      - binary\n\n    - 复杂类型\n        - arry\n        - map\n        - struct\n\n- 表\n   - 内部表\n   - 外部表\n      - HDFS\n      - HBase\n      - Cassandra\n      - DynamoDB\n\n- 表查询\n   - 单表查询\n   - lnner joins\n   - Outer joins\n   - Semi joins\n   - Map joins\n   - 子查询\n   - 视图\n\n### 数据表设计\n- 每日一表\n- 每日一表分区\n- 按桶分散数据\n\n### Hive优化\n- 表分区Partitions\n- 表存储桶buckets\n- 表压缩\n- 索引\n   - bitmap indexes\n- 执行计划\n- 控制Mapper.Reduce数量\n\n### 访问方式\n- Hive Shell\n- Java JDBC API\n- Thrift Client\n- RHive\n\n### 自定义函数\n- 自定义函数UDF\n- 自定义聚合函数UADF\n\n### Hive安全\n- 认证\n   - hive.files.umask.value\n   - hive.metastore.authorization.storage.checks\n   - hive.metastore.execute.setugi\n\n- 授权\n   - hive.security.authorization.enabled\n   - hive.security.authorization.createtable.owner.grants\n   - hive.security.authorization.createtable.user.grants\n\t\n- 权限模型\n   - User\n   - Group\n   - Role\n\n### Web控制台\n- hwi:9999\n\n### 软件集成\n- Zookeeper\n- Thrift\n- Ooize\n- HCatalog\n- AWS\n\n### Hive案例\n\n----\n\n## Mahout 技能图谱\n### Mahou介绍\n\n### 推荐\n- 协同过滤\n   - 基于用户协同过滤\n   - 基于物品协同过滤\n\n- 相似度矩阵\n   - 欧氏距离\n   - Pearson距离\n   - 余弦距离cosine\n   - Spearman’s rank correlation coefficient\n   - Tanimoto coefficient\n   - log-likelihood\n\n- 近邻算法\n   - 按值取近邻\n   - 按比例取近邻\n\n- 推荐算法\n   - UserBasedRecommender\n   - ItemBasedRecommender\n   - SlopeOneRecommender\n   - SVDRecommender\n   - KnnltemBasedRecommender\n   - TreeClusteringRecommender\n\n- 算法检验\n   - 全查率Recall\n   - 准查率Precision\n\n- 数据模型\n   - UserID,ltemID,PreferenceValue\n   - UserID,ItemID\n\n- Hadoop集群部署\n\n### 聚类\n- 数据模型\n   - DenseVector\n   - RandomAccessSparseVector\n   - SequentialAccessSpareVector\n\n- 距离算法\n   - 欧式距离\n   - 欧式平方距离\n   - 马氏距离\n   - 余弦距离\n   - Tanimoto距离\n   - 带权重距离\n\n- 标准化距离\n   - normalization\n\n- 聚类算法\n   - k-means\n   - Canopy\n   - Fuzzy k-means\n   - Dirichlet\n   - Topic moseling on LDA\n\n- Hadoop集群部署\n\n### 分类\n- 系统模块\n   - 训练营\n   - 测试营\n   - 分类算法\n   - 训练过程\n   - 建立分类器\n   - 验证模块\n   - 真实数据\n   - 调整参数\n   - 执行分类过程\n   - 预测结果\n   - 检验结果\n   - 自动构建\n\n- 工作流\n   - 训练模型\n      - 定义目标变量\n      - 历史数据\n      - 定义预测变量\n      - 分类算法\n      - 通过学习算法训练分类器\n   - 验证模型\n      - 运行测试集\n      - 参数调优\n   - 生产环境\n      - 启动模型对真实数据计算\n   - 分类模型\n   - 分类算法\n      - Stochastic gradient descent(SGD)\n         * Online_ogisticRession\n         * CrossFoldLearner\n         * Adaptivel_ogisticRegression\n      - Support vector machine(SVM)\n      - Naive Bayes\n      - Complemetary naive Bayes\n      - Random forests\n\n\n\n\n\n"
  },
  {
    "path": "data/map-IntelligentDevOps.md",
    "content": "\n# 运维工程师\n\n## Linux基础\n- Linux FHS : Filesystem Hierarchy Standard\n- Linux 基本操作命令\n- Linux 内置编辑器：\n  - vi\n  - nano\n- Linux 系统\n\t- Centos\n\t- Debian\n\t- Ubuntu\n\n## 脚本\n- Shell\n- Python\n- Perl\n\n\n## 运维命令\n![运维命令](https://github.com/TeamStuQ/skill-map/blob/master/data/operation-command.png)\n\n运维命令图片引用自 Brendan Gregg 《Linux Performance Analysis and Tools》。原文链接:http://www.brendangregg.com/linuxperf.html 。\n\n## 基础服务\n\n- LAMP或LNMP ：Apache/Nginx，MySQL，PHP/Python/Perl LAMP (software bundle)\n- FTP\n- DNS\n- SAMBA\n- EMAIL\n- NTP\n- DHCP\n\n\n## 运维平台工具\n- SSH证书\n- Nagios\n- Puppet\n- Zabbix\n- Cacti\n- SaltStack\n- pssh/dsh\n- Fabric\n\n## 安全\n-  防火墙配置\n\t- iptables\n\t- ipset\n\n## 网络\n- TCP/IP 协议\n- 抓包 tcpdump\n\n\n## 底层\n\n- Linux C\n- Linux 内核\n\n## KVM 虚拟化\n\n\n### 虚拟化概念\n\n- 半虚拟化\n- 全虚拟化\n\n### KVM 原理\n\n\n### KVM 基础功能\n\n- CPU\n- 内存\n- 存储\n- 网络\n\n### KVM 高级功能\n\n- 半虚拟化驱动\n- 热插拔\n- 动态迁移\n\n### KVM 管理工具\n\n- virsh\n- OpenStack\n- CloudStack\n- OpenNebula\n- Zstack\n\n## 硬件\n- 接口类型\n- 查看硬件信息\n- 知道各类型服务器，如塔式、机架式、刀片式\n\n## 其它\n- 安全意识\n\t- 加密存储／本地存储／SSH私钥添加密码\n\n- 责任心\n\t- Owner 意识／第一时间处理报警\n\n- 沟通方式／技巧\n\t- 推进／改善\n\t\n\t- 推动开发优化代码\n\t\n\t- 进取心／记录分享\n\n"
  },
  {
    "path": "data/map-Kubernetes.md",
    "content": "# Kubernetes 技能图谱\n\n## Container basics （容器技术基础）\n* Linux Operating System Basic\n* Linux Process Management (Linux进程管理)\n* Cgroups\n* Linux Namespaces\n* Rootfs & Container Image\n* Image Registry\n\n## Kubernetes architecture （Kubernetes 架构）\n\n### Node\n#### Kubelet\n- Runtime （容器运行时）\n   * CRI (Container Runtime Interface)\n   * Runtime shims （容器运行时插件）\n       + Cri-containerd （containerd）\n       + Dockershim （Docker）\n       + Cri-o （runC）\n       + Rktlet （rkt）\n       + Frakti （KataContainers）\n   * RuntimeClass (新特性：容器运行时类)\n- Networking\n    * CNI (Container Network Interface)\n    * Linux Network Namespace\n    * Network plugins （网络插件）\n        + Flannel\n        + Calico\n        + OVS\n        + SR-IOV\n        + macvlan/ipvlan\n        + Opencontrail\n        + Weave\n        + Cilium （新插件，支持BPF，推荐）\n- Storage\n    * CSI  (Container Storage Interface)\n    * Persistent Volume & Persistent Volume Claim\n    * Volume plugins （存储插件，仅负责提供PV）\n        + NFS\n        + Cinder\n        + GlusterFS\n        + Ceph\n        + Local path\n    * Volume extenstion (存储扩展，负责提供完整的Storage方案)\n        + Rook.io\n- Kube-proxy\n    * Iptables 转发链与随机模式\n    * IPVS 负载均衡\n\n### Master\n- API server\n    * Watch & Informer （Watch 和通知框架） \n    * Admission Plugin（权限控制插件）\n    * RBAC plugin （基于角色的访问控制插件）\n    * Custom Resource Definition (新特性，CRD，自定义API对象，重点推荐)\n    * APIServer aggregator (新特性，聚合APIServer，推荐)\n- Controller manager\n    * Reconcile （控制循环与状态协调机制）\n- Scheduler\n    * Scheduling algorithm （默认调度算法）\n    * Scheduler extender （调度器扩展器）\n    * Custom algorithm （自定义调度算法）\n    * Custom scheduler （自定义调度器）\n    * Scheduler Framework （新特性，可扩展调度框架，推荐）\n    * Multiple scheduler （多调度器）\n- Etcd\n    * Etcd operator\n    * Etcd performance tuning\n\n## Kubernetes workloads （Kubernetes 作业管理）\n- Pod\n- ReplicaSet （容器副本）\n- Deployment （常规作业发布）\n    * Rolling update （自动的滚动更新）\n    * Pause/resume （可控的更新流程）\n    * Canary deploy （金丝雀发布）\n    * Rollback （版本回滚）\n- DaemonSet （Daemon 作业）\n- StatefulSet （有状态任务）\n    * Topology State\n    * Storage State\n- Job （一次性任务）\n- CronJob （定时任务）\n\n## Kubernetes applications management （Kubernetes 应用配置）\n- Service （服务发现）\n    * Publish service（对外暴露 Service）\n    * Nginx/HAproxy service（自定义 Service）\n    * External Load Balancer\n- ConfigMap （应用配置管理）\n- Ingress （7层服务发现）\n- Secret （加密信息管理）\n- Headless Service（DNS 服务发现）\n- External Load Balancer\n\n## Kubernetes operations （Kubernetes 安装与运维）\n- Installation\n    * Kubeadm （内置部署工具，推荐）\n    * Minikube （本地部署工具）\n    * Kops （云端部署工具）\n- Maintenances\n    * Garbage Collection (垃圾回收)\n        + Container GC\n        + Image GC\n- Upgrades \n- Troubleshooting\n    * etcd admin\n        + Key-value CRUD（键值对操作）\n        + Metrics monitoring （Metrics 监控）\n        + Cluster design（集群规划）\n        + Disaster Recovery （灾难恢复，backup 和 restore）\n    * Iptables rules\n\n## Kubernetes extensions/add-ons （Kubernetes 扩展和插件）\n- Custom Resources Definition （自定义 Kubernetes API 对象）\n    * Customized controller （自定义 API 对象控制器）\n    * Workqueue （自定义 API 对象任务队列）\n- Kube-dns\n    * SkyDNS\n    * CoreDNS\n- Fluentd （日志收集）\n    * Fluent-bit \n- Heapster (容器集群监控）\n- Istio（微服务治理和负载均衡）\n- Federation v2（新特性：集群联邦v2）\n- Helm (kubernetes application package)\n\n## Kubernetes CI/CD\n- Spinnaker\n- Skaffold (新项目，推荐)\n\n## Kubernetes PaaS\n- OpenShift\n- Knative （新项目，推荐）\n"
  },
  {
    "path": "data/map-LiveTelecast.md",
    "content": "\n# 直播平台技术图谱\n\n----\n## 直播\n\n----\n### 采集\n- **iOS** \n  * HTTP Live Streaming\n  * DirectShow\n- **Android**\n  * setPreviewCallback\n  * MediaRecorder\n  * ffmpeg\n  * getstreamer\n * 机型适配\n- **PC** \n  * mjpg-streame\n  * jpeg\n  * 摄像头驱动\n- **摄像机**\n\n### 前处理\n - **美颜**\n - **GPU计算**\n     * OpenCL\n     * DirectCompute\n     * GPGPU\n     * C++AMP\n - **滤镜**\n - **画面风格**\n  * GPUImage\n - **人脸识别**\n   * 人脸特征点的识别\n   * 整幅人脸图像的识别\n   * 模板的识别\n   * 经网络进行识别\n\n### 编码\n - **硬件兼容性**\n - **iOS**\n  * VideoToolbox.framework\n - **H.264**\n - **H.265**\n - **MPEG**\n\n### 传输\n - **方案**\n  * Socket\n  * HTTP\n  * RTP/RTSP\n - **CDN**\n - **云服务**\n - **TCP/IP优化**\n\n### 服务器处理\n - **RTMP**\n - **HLS**\n - **FLV**\n\n### 解码\n- **硬件兼容性**\n- **H.264**\n- **MPEG**\n\n### 渲染\n\n### 音频\n- **降噪**\n  * Kamath\n  * Rangachari\n- **编解码**\n  * AAC\n  * MP3\n\n### Web音视频标准\n - **WebRTC**\n - **客户端**\n    - Chrome/firefox/Opera\n      - javascript\n    - iOS\n      - ObjectC Cordova\n - **协议**\n   * JSEP\n   * ICE\n   * SIP\n   * WebSocket\n - **通讯方式**\n   * 星型\n   * MCU\n   * Router\n - **编解码**\n    - HD264\n    - VP8\n - **穿墙服务**\n    - stun\n    - turnserver/coturn\n - **signal**\n    - socket.io-client\n    - socket.io\n    - signalmaster\n    - apprtc\n - **Media server**\n    - janus-gateway\n    - kurento\n    - freeswitch\n\n----\n## 应用服务\n- **IM**\n- **通知**\n- **礼物系统**\n- **支付**\n- **运营系统**\n- **统计**\n\n----\n## 统计服务\n- **数据库**\n  * **PostgreSQL**\n  * **MySQL**\n  * **MongoDB**\n  * **Redis**\n  * **HBase**\n- **缓存**\n  * **Nginx**\n  * **Squid**\n  * **Varnish**\n- **分布式文件系统**\n  * **Ceph**\n  * **GlusterFS**\n  * **MooseFS**\n  * **MogileFS**\n  * **FastDFS**\n  * **HDFS**\n  * **OpenAFS**\n  * **GFS**\n  * **KFS**\n  * **TFS**\n- **消息队列**\n  * **RabbitMQ**\n  * **ActiveMQ**\n  * **Kafka**\n  * **MetaQ**\n  * **NSQ**\n  * **ZeroMQ**\n  * **MemcacheQ**\n  * **HTTPSQS**\n  * **Resque**\n- **运维**\n"
  },
  {
    "path": "data/map-MachineLearning.md",
    "content": "# 机器学习技能图谱\n\n>主要作者：@徐英凯｜闪银机器学习工程师\n>审校顾问：@卢誉声｜Autodesk 软件研发工程师、@高扬｜欢聚时代资深大数据技术专家、@罗远飞｜第四范式机器学习工程师\n\n## Toolbox\n- C/C++\n   * Vowpal Wabbit\n   * MultiBoost\n   * Shogun\n- Java\n   * Mahout\n   * Weka\n   * Mallet\n   * JSAT\n- Python\n   * Scikit-learn\n   * PyBrain\n   * nltk\n   * Theano\n   * Pylearn2\n   * MDP\n   * Orange\n   * milk\n   * pyml\n   * Numpy\n- R\n- Julia\n- Matlab\n\n## Real-time Computation Paltform\n- Spark\n   * MLlib\n- Hurricane\n   * SewedBlAS\n- Storm\n- Heron\n\n## Algorithms\n### Supervised Learning\n- Regression\n   * Generalized Linear Regression\n   * Gaussian Processes\n   * Isotonic Regression\n- Classification\n   * Support Vector Machines (SVM)\n   * Linear and Quadratic Discriminant Analysis\n   * Decision Trees\n   * K Nearest Neighbors\n   * Naive Bayes\n   * Neural Networks\n   * Ensemble Methods\n   * Kernel Approximation\n   * Adaboost\n\n### Unsupervised Learning\n- Clustering\n   * K-Means\n   * Gaussian Mixture Models\n   * Spectral Clustering\n   * Manifold Learning\n   * Hierarchical Clustering\n   * Affinity Propagation\n   * DBSCAN\n   * Birch\n- Dimensionality Reduction\n   * Principal Component Analysis\n   * Linear Discriminant Analysis\n   * Locally linear embedding\n   * Laplacian Eigenmaps\n   * Isomap\n   * Spectral Embedding\n   * Feature Agglomeration\n\n### Reinforcement Learning\n- Markov Decision Processes\n- Q-Learning\n- Sarsa\n- A-Learning\n\n### Deep Learning\n- Convolutional Neural Network (CNN)\n- Restricted Boltzmann Machines\n- Recurrent Neural Network (RNN)\n   * Long Short Term Memory\n      \n## Model Selection and Evaluation\n- Cross-validation\n- Grid Search\n- Model Evaluation\n- Model Persistence\n- Validation Curves\n\n## Frameworks\n- TensorFlow\n- Caffe2/Caffe\n- Theano\n- Torch\n- Chainer\n- OpenBLAS\n- CUDA\n- CUDNN\n"
  },
  {
    "path": "data/map-Microservice.md",
    "content": "# 微服务架构 技能图谱\n\n## 理论基础\n### 概念\n#### 多微合适\n   - 非代码函数\n   - 非重写时间\n   - 适合团队最重要\n     - 独立业务属性\n     - 全功能团队\t     \t\t\n  \n#### 进程隔离\n  - 服务运行在独立的进程中\n\n#### 轻量级通信\n  - 协议跨平台\n  - 格式语言无关\n\n#### 独立性\n  - 独立开发\n  - 独立测试\n  - 独立部署\n  \n\n### 本质\t\t\n  - 服务作为组件\n  - 围绕业务组织团队\n  - 产品驱动而非项目驱动\n  - 技术多样性\n  - 业务数据独立\n  - 基础设施自动化\n  - 演进式架构\n  \n### 优点\t\n   - 按需伸缩\n   - 独立部署\n   - 业务独立\n   - 技术多样性\n\n### 缺点\n#### 1. 运维成本高\n  - 环境配置（Provisioning）\n  - 部署\n  - 监控 \n\n#### 2. 测试成本高\t\n  - 自动化测试\n  - 契约测试\n\n#### 3. 依赖管理成本高\n  - 版本管理\n  - 服务依赖\n  - 服务治理\t\n\n### 与SOA的差异点\n   - 实现方式\n   - 服务粒度\n   - 集成方式\n   - 部署方式\n\n## 常用模式\t\n\n### 部署模式\n  - 单机多实例\n  - 单机单实例\n  - 容器多实例\n  - 容器单实例\n\n### 服务发现\t\n  - 客户端发现\n  - 服务器端发现\n\n#### 常用库/工具\n  - Consul\n  - Eureka\n  - SmartStack\n  - Etcd\n\n### API网关\n  - 请求转发\n  - 响应合成\n  - 协议转换\n  - 安全认证\n\n### 服务注册\n  - 自注册\n  - 第三方注册\n#### 常用库/工具\n    - Consul\n    - Eureka\n\n### 服务配置\n \t\n## 组织结构\n- 全功能团队\n- 去中心化\n- 康威定律\n\n## 数据相关\n- 数据库\n  - RDBMS\n  - NOSQL\t\n- 数据伸缩\n  - 读\n  - 写\n  - 缓存\n- 业务数据隔离\n\n\n## 安全策略\n  - 单点登录\n  - 点对点验证\n  - 安全网关\n\n## 通信机制\n### 同步通信\n  - RPC/RMI\n  \t- Java RMI\n  \t- Thrift\n\t- Protocol Buffer\n  - REST\n\t  - HAL\n\n### 异步通信\n#### 消息队列\n  - ActiveMQ\n  - MSMQ\n  - RabbitMQ\n  \n#### 后台任务\n  - Sidekiq\n  - Resque\t\n\n\n## 开发实践\n### 开发模板\n#### JAVA栈\n  - SpringBoot\n  - SpringCloud\n  - DropWizard\n\t\n#### Ruby栈（其他脚本语言类似）\n  - 代码结构\n  - 测试结构\n\n##### 配置文件模板\n  \t- WEB服务器配置\n\t- 日志格式\n\t- 监控文件配置\n\t- 告警文件配置\n\n##### 部署脚本模板\n- Shell\n- Chef\n- Puppet\n- Ansible\n\n##### 持续集成模板\n- Jenkins\n- Bamboo\n\n### 服务说明文件\n- 服务描述\n- 责任人\n- 请求/响应描述\n- 开发环境搭建\n- 运行环境\n- 测试策略\n- 部署方式\n- 监控告警\n\n### 服务结构\n- 模型表示层\n- 业务模型\n- 业务逻辑\n- 模型存储\n- 集成网关\t\n\n## 测试实践\n### 单元测试\n- 基于Mock/Stub\n- 基于真实依赖\n\n### 集成测试\n- 服务间集成\n- 数据库集成\n- 与第三方接口集成\n\n### 组件测试\n- 进程内\n- 进程外\n\n### 契约测试\n- PACT\n- PACTO\n\n### E2E测试\n- Selenium\n- WebDriver\n\n### 性能测试\n- Gatling\n- JProfiler\n- JMeter\n- Simperf\n\n### 部署实践\n#### 部署环境\n- 数据中心/VM\n- 公有云(IAAS/PASS)\n- 私有云(IAAS/PASS)\n- 容器化\n\n#### 应用部署\n- 包部署(Tar、RPM、War)\n- 映像部署(AMI/...)\n- 容器部署(Docker)\n\n#### 基础设施部署工具\n- Chef\n- Puppet\n- Ansible\n- CloudFormation\n\n#### 部署策略\n- 蓝绿部署\n- Immutable Deployment\n\n#### 自动化策略\n- 依赖持续部署流水线\n- 基础设施自动化\n- 应用部署自动化\n\n#### 伸缩策略\n##### Scaling Cube\n- X轴水平克隆\n- Y轴功能性按需伸缩\n- Z轴数据分离\t\n\n### 运维实践\n#### 监控\n##### 系统监控\n- CPU\n- 内存\n- 磁盘\n\n##### 应用监控\n- 健康性\n- 响应时间\n- 关联ID(Correlation ID)\n- 业务相关Metrics\n\n##### 工具\n\n###### SAAS\t\t\n  - NewRelic\n  - OneAPM\t\t\t\n\n###### Hosted\n  - Nagios\n  - Zabbix\n\t\n\n#### 告警\n##### 告警方式\n- 电话\n- 短信\n- 邮件\n- 即时通信工具\n\n##### 告警级别\n  - OnCall\n  - Backup\n  - Owner\n  - Leader\n\n##### 工具\n\t- Splunk\n\t- Nagois\n\t- PagerDuty\n\n#### 日志聚合\n- 聚合每个服务实例的日志\n- 关联相关日志\n\n##### 工具\n\t- Splunk\n\t- ELK(ElasticSearch/LogStash/Kabana)\n\t- Fluent\n\t- Flume\n"
  },
  {
    "path": "data/map-MobileDev-AndroidArchitect.md",
    "content": "# Android 架构师技能图谱  \n  \n## 架构与设计  \n  \n- 设计模式  \n- 重构  \n- 技术选型  \n\t- 特性  \n\t- 可用性  \n\t- 性能  \n\t- 包大小  \n\t- 方法数  \n\t- 文档  \n\t- 技术支持  \n- UI架构模式  \n\t- MVC  \n\t- MVP  \n\t- MVVM  \n  \n## 研发工具  \n  \n- 集成开发环境  \n\t- Android Studio  \n\t- Sublime Text  \n- 版本控制系统  \n\t- svn  \n\t- git  \n\t\t- gitlab  \n\t\t- github  \n\t- mercurial  \n- 调试工具  \n\t- ADB  \n\t- DDMS  \n\t- Stetho  \n\t- LeakCanary  \n\t- ClassyShark  \n\t- Postman  \n\t- markman  \n- CodeReview工具  \n\t- Gerrit  \n\t- Phabricator  \n- 构建工具  \n\t- Gradle  \n\t- Buck  \n- 效率工具  \n\t- 番茄钟  \n\t- Markdown  \n\t- WakaTime  \n\t- Focus Matrix  \n\t- evernote  \n\t- Pocket  \n  \n## 移动安全  \n  \n- 代码和资源混淆  \n- 反编译  \n- 密钥管理  \n- 安全编码  \n- 应用加固  \n  \n## 专项技术  \n  \n- App 瘦身  \n- MultiDex  \n- 插件化  \n- 推送技术  \n- Crash 统计  \n- 函数式编程  \n- 启动保护  \n- 在线热修复  \n- AOP  \n- React Native  \n- Hybrid  \n- SDK化  \n- 依赖注入  \n  \n## 软技能  \n  \n- 知识管理  \n\t- 团队Wiki  \n\t- 团队论坛  \n- 时间管理  \n\t- 四象限法则  \n\t- 帕累托法则  \n\t- 番茄工作法  \n- 目标管理  \n\t- Smart 法则  \n\t- 思维导图  \n\t- 甘特图  \n- 项目管理  \n\t- 边界思维  \n\t- 过程思维（WBS）  \n\t- 风险思维  \n\t- 干系人思维  \n\t- 整合沟通  \n- 团队管理  \n\t- 招聘面试  \n\t- 梯队培养  \n\t- 技术规划  \n\t- 团队规范  \n- 个人管理  \n\t- 技术博客  \n\t- 技术分享  \n\t- 会议演讲  \n\t- 领导力  \n\t- 持续学习  \n  \n## 周边技术  \n  \n- 产品交互设计  \n- 后端技术  \n- HTML5  \n- iOS  \n  \n## 移动测试  \n  \n- 单元测试  \n\t- JUnit  \n\t- Robolectric  \n\t- Mockito  \n- UI自动化测试  \n\t- Monkey  \n\t- MonkeyRunner  \n\t- UIAutomator  \n\t- Robotium  \n\t- Espresso  \n\t- Appium  \n- 持续集成  \n\t- Jenkins  \n\t- Travis CI  \n\t- fastlane  \n- 静态代码扫描  \n\t- CheckStyle  \n\t- FindBugs  \n\t- PMD  \n\t- Android Lint  \n\t- Infer  \n  \n## 性能优化  \n  \n- 启动优化  \n- 代码优化  \n- 内存优化  \n- 电量优化  \n- 布局优化  \n- 网络优化  \n  \n## 编程语言  \n  \n- Java  \n- C  \n- C++  \n- Javascript  \n- Groovy  \n- Kotlin  \n\n\n\n\n"
  },
  {
    "path": "data/map-MobileDev-AndroidDev.md",
    "content": "﻿# Android App 开发技能图谱\n\n## 操作系统\n- Windows/MacOSX/Linux\n\n## 编程语言\n\n - Java\n - HTML/JS (Hybrid/Web App)\n - C/C++ (NDK)\n - SQL (DB)\n - Kotlin\n\n## 开发工具\n\n- IDE\n\n * Android Studio\n * Eclipse\n\n-  调试工具\n\n    * 网络调试\n\n        + Charles\n        + Wireshark\n        + Fiddler\n        + tcpdump\n        + Paw/Postman\n\n    * 内存分析\n\n        + monitor\n        + MAT\n\n    * Android tools\n\n        + adb\n        + draw9patch\n        + hierarchyviewer\n        + uiautomatorviewer\n\n- 版本管理\n\n    * Git\n\n        + Git命令\n        + Github/GitLab\n\n    *  SVN\n\n- CodeReview\n\n    * Gerrit\n    * Github pull request\n\n- Bug/任务管理\n\n    * Redmine\n    * JIRA\n    * Bugzilla\n    * Teambition\n    * Tower\n- 编译工具\n\n    * Gradle\n\n- 持续集成\n\n    * Jenkins\n    * Travis CI\n\n- 应用分发\n\n    * 蒲公英\n    * fir.im\n\n------\n\n## App基础\n\n- 基本组件\n\n    * Activity\n    * Service\n    * Content Provider\n    * Broadcast Receiver\n    * Intent/Intent Filter\n    * App Manifest File\n\n- UI\n\n    * Layouts\n    * Widgets\n    * Resources\n    * Animations\n    * 设备适配\n\n- Connectivity\n\n    * WiFi\n    * Mobile网络\n    * 网络状态监听\n\n- MultiMedia\n\n    * Audio/Video\n    * Camera/Gallery\n\n- GPS&Location&Map\n\n    * 系统定位\n\n        + GPS定位\n        + Network定位\n\n    * 3rd Map定位\n\n        + 百度Map\n        + 高德Map\n\n## App进阶\n\n- Process&Thread\n\n    *  Process\n\n        + Linux进程\n        + App进程原理\n\n    *  AIDL\n\n        + 实现方式\n        + 原理\n\n    * Handler/Looper/MQ/Thread\n\n    * Loader\n\n    * AsyncTask\n\n- 性能优化\n\n    * ANR\n\n    * 布局层级性能优化\n\n- 内存优化\n\n    * 内存检测工具\n\n    * 内存分析工具\n\n    * Bitmap优化\n\n    * 内存泄露查找及分析\n\n-  网络优化\n\n    *  API优化\n\n    * 低网速下优化\n\n    * 流量使用优化\n\n        + 判断当前网络类型\n        + 使用缓存\n\n-  单元测试\n\n##  App高级\n\n-  相关原理熟悉\n\n    *  Activity\n\n        + 启动流程\n        + 生命周期回调原理\n        + 与View/Window的关系\n        + 与Fragment的关系\n\n    * View/Window\n\n        + View/Window关系\n        + View渲染\n        + View事件分发处理流程\n\n    * 编译打包\n\n        + 编译打包原理\n        + 逆向工程分析\n        + 热修复\n\n- Hybrid App\n\n    * 与Native App的异同\n\n    * 主流框架\n\n        + PhoneGap\n        + ionic\n        + React Native\n\n- 架构能力\n\n    * 架构\n\n        + MVC\n        + MVP\n        + MVVM\n        + Flux\n        + Clean Architecture\n    * App框架\n\n        + 分包\n        + 分层\n\n    * 设计模式\n\n        + OOD原则\n        + 常用设计模式运用\n\n- ART&Dalvik\n\n    * AOT compilation\n    * GC\n    * Bytecode&.Dex\n\n- 自动化测试\n\n    * monkey/monkey runner\n    * UIAutomator\n    * Espresso\n    * Robotium\n\n##  扩展学习\n\n- 响应式编程\n\n    * Rx\n\n        + RxJava\n        + RxAndroid\n        + RxBinding\n\n    * Agera\n\n- 主流开源库\n\n    * 快速开发\n\n        + Android Annotation\n        + ButterKnife\n\n    * Views\n\n        + 太多\n\n    * HTTP模型\n\n        + Retrofit\n        + OkHttp\n        + Volley\n\n    * 图片处理\n\n        + Glide\n        + Fresco\n        + Picasso\n        + UIL\n\n    * 依赖注入\n\n        + Dagger2\n\n    * 数据库\n\n        + ORMLite\n        + GreenDAO\n        + Realm\n        + Sugar\n\n    * 辅助\n\n        + Logger\n        + LeakCanary\n        + DbInspector\n\n\n\n"
  },
  {
    "path": "data/map-MobileDev-AndroidROMDev.md",
    "content": "# Android ROM 开发技能图谱\n\n## 1. 操作系统\n\n* Ubuntu(首选)\n* MacOSX\n\n## 2. 编程语言\n\n* Java\n    * JNI(务必掌握)\n* C++\n* C\n\n## 3. 源码\n\n### 3.1 管理方式\n\n* Codelines/Branches/Releases\n* Codenames/Tags/Build Numbers\n\n### 3.2 源码地址\n\n* [官方源码](https://android.googlesource.com)\n* [Github镜像](https://github.com/android)\n* [高通扩展源码](https://www.codeaurora.org/projects/all-active-projects/android-msm)\n* [CM源码](https://github.com/cyanogenmod)\n* [MIUI部分源码](https://github.com/MiCode)\n\n### 3.3 下载\n\n* Repo/Git\n\n### 3.4 阅读修改工具\n\n* SourceInsight(首选)\n* Eclipse\n* Android Studio\n\n### 3.5 编译\n\n* 搭建编译环境\n* Makefile编译体系\n\n## 4. 层次体系\n\n### 4.1 核心Applications\n\n* Phone/Contacts/MMS\n* Camera/Gallery/Music/Video\n* Settings\n\n### 4.2 Frameworks\n\n* Telephony\n* MultiMedia\n* Connectivity\n* Window/View/ActivityManager\n* Surface/Graphics\n\n### 4.3 Native Libs\n\n### 4.4 Android Runtime\n\n* Dalvik\n* ART\n\n### 4.5 HAL\n\n### 4.6 Linux Kernel\n\n### 4.7 Driver\n\n## 5. 核心系统\n\n### 5.1 Audio\n\n### 5.2 Bluetooth\n\n### 5.3 Camera\n\n### 5.4 Media\n\n### 5.5 Storage\n\n* Internal\n* External\n* OTG\n\n### 5.6 Sensor\n\n### 5.7 Input\n\n* EventHub\n* Touch\n\n### 5.8 Accessories\n\n### 5.9 DRM\n\n### 5.10 Power\n\n### 5.11 Window\n\n* WindowManager\n* View\n* ActivityManagerService\n\n### 5.12 Telephony\n\n* Phone\n* RIL\n* ATCommands\n* Modem\n\n## 6 辅助技术\n### 6.1 刷机\n* fastboot\n    * unlock\n    * flash\n* bootloader\n\n### 6.2 设备分区\n\n* boot\n* system\n* vendor\n* userdata\n* cache\n* recovery\n* misc\n\n### 6.3 product配置\n\n* Carrier\n* File System\n* Low RAM\n* Runtime Permission(6.0)\n* ...\n\n### 6.4 调试工具\n\n* GDB\n* Valgrind\n* Systrace\n* Dumpsys\n    * Network usage\n    * RAM usage\n\n### 6.5 兼容测试\n\n* CTS源码下载\n* CTS设置和执行\n\n### 6.6 OTA升级\n\n* 升级过程\n    * 全量升级\n    * 增量升级\n\n* 升级优化\n    * 缩减升级包\n\n\n\n\n\n\n\n"
  },
  {
    "path": "data/map-MobileDev-iOSDev.md",
    "content": "# iOS 技能图谱\n## 编程语言\n - Swift\n - Objective-C\n - C++/C\n - JavaScript\n\n## 操作系统\n - Mac OSX\n - iOS\n - watchOS\n - tvOS\n - Linux 常用命令\n\n## 开发基础\n - UI 控件\n - Storyboard & Xib\n - Core Data & Sqlite\n - Core Graphics\n - Animation\n - Block & GCD\n - Test Case 编写\n - Framework\n - Autolayout\n - 手势识别，重力感应\n\n\n## 开发进阶\n - 引用计数\n - Runtime\n - Runloop\n - 对象模型\n - Hybrid\n - 沙盒机制\n - AVFoundation\n - Core Text\n - 逆向与安全\n   - class dump\n   - IDA Pro\n   - Hopper\n   - iOS Class Guard\n\n##设计模式\n - MVC\n - MVVM\n - 通知\n - 代理\n - KVO\n - 工厂模式\n - 命令模式\n\n## 函数式编程\n - ReactiveCocoa\n - RxSwift\n\n## 开发工具\n  - IDE\n    - Xcode\n    - AppCode\n  - 调试工具\n    - Charles、Wireshark\n    - Reveal\n    - Instruments\n  - 插件\n    - Alcatraz\n    - VVDocument\n    - XVim\n    - FuzzyAutocompletePlugin\n    - KSImageNamed-Xcode\n  - 辅助工具\n    - xScope\n    - ImageOptim\n    - 马克鳗\n    - Dash\n    - Deploymate\n    - FauxPas\n    - PaintCode\n  - 命令行工具\n    - xcodebuild、xcode-select\n    - nomad\n    - xctool\n    - fastlane\n  - 持续集成\n    - Jenkins\n    - Travis CI\n    - Bot\n\n## 开源项目\n - AFNetworking & Alamofire\n - Masonry\n - SDWebImage\n - SwiftyJSON\n - JSPatch\n - React Native\n\n## 包管理\n  - CocoaPods\n  - Carthage\n  - Swift Package Manager\n\n## App 打包上传与审核\n  - Apple Developer 网站\n  - Itunes Connect 网站\n  - IAP\n  - 加急审核申请\n  - 打包脚本\n\n## 第三方服务\n - 崩溃收集\n    - Bugly\n    - Crashlytics\n    - BugHD\n - 数据统计\n    - Google Analytics\n    - 友盟\n    - MTA\n    - Flurry\n    - App Annie\n - 应用分发\n    - TestFlight\n    - 蒲公英\n    - FIR\n\n"
  },
  {
    "path": "data/map-MobilePerformanceOptimization.md",
    "content": "# 移动优化经验\n\n## 网络加载\n\n### 优化请求\n\n- 优化请求包大小\n\n\t* 代码压缩\n\t\n\t* Gzip压缩\n\t\n\t* 不同网络（2G/3G/4G/wifi）图片尺寸\n\t\n\t* 合理减少Header字段/cookie\n\t\n\t* MTU策略(1500字节)\n\t\n\t* 首屏加载时间控制\n\n\t\t+ 3s完成（5s为用户最大容忍度）\n\t\t\n\t\t+ 网络平均速度(2.71Mb/s = 0.33875MBps(1Mbps=8MBps) = 346.88KBps)\n\t\t\n\t\t+ 不超过1041KB，经验值200K（考虑打开响应、网络连接至少600ms）\n\n- 减少请求次数（仅针对HTTP）\n\n\t* 合并js、css文件、雪碧图\n\n\t\t+ 移动端雪碧图(构建)\n\t\t\n\t\t+ combo\n\n\t* 避免重定向(一次重定向至少600ms)\n\t\n\t* 避免重复资源请求\n\t\n\t* 同时并行请求数量（android：4个，ios 5以后可支持6个）\n\n- 解耦请求依赖\n\n\t* 文件并行加载/依赖执行(构建+模块化)\n\t\n\t* 首屏CGI提前(组件)\n\t\n\t* inline首页必备js/css\n\t\n\t* 异步加载非首屏\n\n- 连接优化\n\n\t* 支持keep-alive\n\t\n\t* 网络时间\n\n\t\t+ DNS(2G：3.85785；3G：1.60643；WIFI：0.986921；unknown：1.67838)\n\t\t\n\t\t+ TCP(2G：2.33482；3G：0.743109；WIFI：0.550208；unknown：1.20898)\n\t\t\n\t\t+ RTT(2G：2.57478；3G：0.608047；WIFI：0.444332；unknown：1.30601)\n\t\t+ Tran(2G：14.0374；3G：60.1967；WIFI：70.8728；unknown：36.3655)\n\t* DNS Prefetch\n\t* HTTP2/SPDY\n\t* TCP握手/TLS密钥协商\n\n### 缓存策略\n\n- Cache\n\n\t* Browser Cache(一年)\n\t\n\t* AppCache(选择)\n\t\n\t* 离线包(native下必须)\n\n- Web Storage\n\n\t* localStorage\n\t\n\t* sessionStorage\n\t\n\t* nativeStorage（native，>=4.6，大数据）\n\n- Cookie\n\n- Web DB\n\n\t* indexedDB(推荐)\n\t\n\t* Web SQL\n\n- 合理缓存CGI数据(local/ajax)\n\n### 加载策略\n\n- 首屏加载\n\n\t* Server Render(React-Node)\n\n- 按需加载(组件化)\n\n- lazyload(图片、组件)\n\n\t* 延迟加载图片\n\t\n\t* 滚动加载图片\n\n- Media Query\n\n## 监控上报\n\n### H5监控体系\n\n- 成功/失败率\n\n\t* 图片\n\t\n\t* CDN文件\n\t\n\t* CGI\n\t\n\t* 直播/录播播放\n\n\t\t+ 加载\n\t\t\n\t\t+ 断流\n\n- 测速(2G/3G/4G/wifi、组件)\n\n\t* 首屏展示速度(首屏渲染)\n\t\n\t* CGI测速\n\t\n\t* CDN文件测速\n\t\n\t* 图片测速\n\t\n\t* 直播/录播播放\n\n\t\t+ 加载\n\t\t\n\t\t+ 断流\n\n- 版本覆盖\n\n\t* 离线包更新率\n\n\t\t+ tdw：版本号、用户、环境等\n\n\t* 离线包覆盖率\n\n\t\t+ monitor\n\n- 错误日志\n\n\t* badjs\n\t\n\t* tryjs\n\n- performance\n\n\t* timing(ios 8不支持)\n\t\n\t* resouce timing(缓存/非缓存，手机暂不支持)\n\n### 视频监控体系\n\n- 直播播放\n\n\t* 视频加载流程监控(playing/paulse/timeupdate)\n\n\t\t+ 平均延时\n\t\t\n\t\t+ 失败率\n\n\t* 卡顿缓冲监控(timeupdate)\n\n\t\t+ 卡顿缓冲时长\n\t\t\n\t\t+ 卡顿缓冲次数（短流率）\n\n\t* 视频异常监控(onerror)\n\n\t\t+ 源文件不存在\n\t\t\n\t\t+ 取回过程被用户中止\n\t\t\n\t\t+ 下载时错误\n\t\t\n\t\t+ 解码时错误\n\t\t\n\t\t+ 不支持的音视频\n\t\t\n\t\t+ 其他cgi请求异常引起的错误等\n\n- 录播\n\n\t* 视频加载流程监控(playing/paulse/timeupdate)\n\n\t\t+ 平均延时\n\t\t\n\t\t+ 失败率\n\n\t* 卡顿缓冲监控(timeupdate)\n\n\t\t+ 卡顿缓冲时长\n\t\t\n\t\t+ 卡顿缓冲次数（短流率）\n\n\t* 视频异常监控(onerror)\n\n\t\t+ 源文件不存在\n\t\t\n\t\t+ 取回过程被用户中止\n\t\t\n\t\t+ 下载时错误\n\t\t\n\t\t+ 解码时错误\n\t\t\n\t\t+ 不支持的音视频\n\t\t\n\t\t+ 其他cgi请求异常引起的错误等\n\n\t* 单位录播时长等待监控\n\n\t\t+ 录播播放时长\n\t\t\n\t\t+ 下载等待时长\n\n## SEO\n\n- keywords/description\n\n- 合理减少pages数量\n\n- 减少图片/flash/弹窗\n\n- 外链权重不高\n\n- canonical/alternate\n\n- 提交sitemap\n\n## 渲染优化\n\n### HTML\n\n- HTML meta viewport(可以加速页面渲染)\n\n- 优化DOM tree\n\n\t* 减少html标签，避免不必要的嵌套\n\t\n\t* 避免table\n\t\n\t* 减少DOM深度\n\n- 减少DOM渲染\n\n\t* VirtualDOM(React)\n\t\n\t* React-Native\n\n### 动画\n\n- 合理使用requestAnimationFrame\n\n- 尽量使用css3\n\n- 合理使用Canvas代替多DOM tree(5个) css3\n\n- 高频事件(touchmove、scroll) lazy化(debounce.js)\n\n- GUP渲染\n\n\t* 大量的渲染(Canvas、WebGL、Video)\n\t\n\t* 3D Transformed(transitions、3D transforms)\n\t\n\t* Animated css属性（filters, masks, blend modes, reflections, opacity）\n\t\n\t* position: fixed\n\t\n\t* content overlapping existing GPU-rendered bitmaps\n\n### repaint/reflow\n\n- 避免重新设置图片大小\n\n- 避免频繁的触发repaint/reflow\n\n## 文件优化\n\n### css样式\n\n- 避免style标签\n\n- 去掉expression\n\n\t* 移除空的（多余的）选择器\n\n- 合理使用Float\n\n- 合理使用iconfont\n\n- 值为0的属性不带单位（兼容性、压缩自动处理）\n\n- 标准化浏览器前缀(构建)\n\n- 减少font-size的申明（增加浏览器渲染计算）\n\n- 异步css文件换成js文件(构建)\n\n### js脚本\n\n- 框架组件选择(zepto/react/vue/angular)\n\n- 使用documentFragment(zepto已解决)\n\n- 事件优化\n\n\t* 事件代理\n\t\n\t* 频繁事件优化\n\t\n\t* touchsatrt、touchend(tap)代替click\n\n- 使用mqqapi(http://mqq.oa.com/)\n\n- id选择器\n\n- 合理缓存对象（DOM、js对象、length）\n\n- 慎用with\n\n- 避免eval、Function\n\n- 使用Join\n\n### 图片文件\n\n- 图片大小\n\n\t* 压缩工具\n\n\t\t+ 优图（tu.oa.com）\n\t\t\n\t\t+ 智图（zhitu.tencent.com）\n\t\t\n\t\t+ grunt插件\n\n\t* 图片格式\n\n\t\t+ webP\n\t\t\n\t\t+ sharpP\n\n- 减少图片使用\n\n\t* css画图\n\t\n\t* svg画图\n\t\n\t* 合理iconfont代替图片(最后的选择)\n\t\n\t* 避免使用bmp图片\n\n- srcset + sizes(兼容性）\n\n- 图片格式(webp > jpg > png(png8 > png24) > gif)\n\n- 图片大小限制(10K，不超过30K)\n\n- 图片尺寸限制\n\n\n\n\n\n\n"
  },
  {
    "path": "data/map-MobileWirelessTesting.md",
    "content": "# 移动无线测试技能图谱\n\n## 常用IDE\n- Android\n\t* ADT\n\t* Android Studio\n- iOS\n\t* Xcode\n- Common\n\t* Atom\n\t* Sublime Text\n\t* Vim\n\t* Visual Studio Code\t\n\n## 基础知识\n- Android\n\t* 掌握Android开发基础技能\t \n- iOS\n\t* 掌握iOS开发基础技能\n- Web\n\t* 掌握Web开发基础技能\n- api\n\t* 掌握api相关基础知识\n- 测试\n\t* 掌握基本的测试用例设计方法和思想\n\t\t\n## 常见应用模式\n- Native\n- Hybrid\n- H5 App\n- ReactNative \n\n## 常用工具\n- Android\n\t* Android sdk manager\n\t* adb\n\t* ddms\n\t* ant\n\t* aapt\n\t* emulator\n\t* Genymotion\n\t* hierarchyviewer\n\t* monitor\n\t* monkey\n\t* monkeyrunner\n\t* uiautomatorviewer\n- iOS\n\t* lldb\n\t* iExplorer\n\t* libimobiledevice 套件\n\t* codesign\n\t* instruments\n\t* xcodebuild\n\t* atos\n\t* xcrun\n\n## 常用UI Automation框架\n- Android\n\t* Instrumentation\n\t* Athrun\n\t* Robotium\n\t* Monkey\n\t* Monkeyrunner\n\t* uiautomator\n\t* Selendroid\n\t* Calabash*Android\n\t* monkeytalk\n\t* Appium\n\t* Espresso\n\t* cafe\n- iOS\n\t* UIAutomation(旧)\n\t* XCUITesting\n\t* KIF\n\t* Frank\n\t* Appium\n\t* ios-driver\n\t* Mechanic.js\n\t* monkeytalk\n\t* Calabash*iOS\n\t* TuneupJs\n\t* ynm3k\n- Appium\n- Macaca\n\n\n## 常用单元测试框架\n- Android\n\t* robolectric\n\t* Instrumentation\n\t* Mockito\n\t* RxJava\n- iOS\n\t* OCUnit\n\t* GHUnit\n\t* XCTest \n\t* OCMock\n\t* OCMockito\n\t* Expecta\n\t* OCHamcrest\n\n## 常用动态更新\n- ReactNative\n- waxpatch/wax\n- ota\n\t\t \n## 常用性能工具\n\n### 抓包\n- Charles\n- fiddler\n- burpsuites\n- tcpdump\n- anyproxy\n\n### 弱网模拟\n- iOS developer mode\n- ATC\n- Charles\n\n### memory\n- Android\n\t* MAT\n\t* ddms\n\t* Memory Monitor\n\t* Allocation Tracker\n\t* LeakCanary\n\t* dumpsys\n\t* procrank\n\t* top\n- iOS\n\t* Memory Leaks\n\n### Scan\n- Android\n\t* findbugs\n\t* lint\n\t* infer\n\t* CheckStyle\n\t* PMD\n- iOS\n\t* scan*build\n\t* oclint\n\t* infer\n\t* deployment\n\n### other\n- Common\n\t* 安捷伦\n\t* tcpdump\n\t* wireshark\n\t* 高速(慢速)摄像机\n\t* 埋点\n\t* 腾讯GT\n\t* 网易Emmagee\n- Android\n\t* gfxinfo\n\t* dumpsys\n\t* traceview\n\t* systrace\n\t* GameBench\n\t* battery*historian\n- iOS\n\t* Core Animation(instruments)\n\t* Network(instruments)\n\t* TimeProfiler(instruments)\n\t* Zombies(instruments)\n\n## 安全\n- Android\n\t* Drozer\n\t* apktool\n\t* dex2jar\n\t* proguard\n\t* 加固\n\t* exported/permission\n\t* AndBug\n\t* androguard\n\t* Xposed\n\t\t\n- iOS\n\t* IDB\n\t* iRET\n\t* DVIA\n\t* LibiMobileDevice\n\t* otool\n\t\n## 覆盖率\n- Android\n    - Jacoco\n    - EMMA\n- iOS\n    - gcov\n\n## 动态更新\n- Android\n    - Dexposed（二次开发之后）\n    - Robust\n    - android-frontia\n    - Nuwa\n    - HotFix\n    - RocooFix\n    - DroidFix\n    - AndFix \n- iOS\n    - JSPatch\n    - WaxPatch\n- ota\n- ReactNative\n- weex\t\t\t\t\t\n\t\t\t\n## abtest\n- AB Tester\n- AppAdhocOptimizer\n- Google Website Optimizer\n- Visual Website Optimizer\n\t\n## 常用灰度测试工具\n- testflight\n- 蒲公英\n- fir\n- pre\n\n## 常用云测平台\n- testin\n- MQC\n- MTC\n\n## 常用持续集成平台／相关工具\n- Jenkins\n- Travis CI \n- Android\n\t* mvn\n\t* gradle\n- iOS\n\t* xctool\n\t* Cocoapods\n\t \n\t\t\n## 多语言开发应用\n- SL4A\n- gomobile\n\t\t\t\n\n## 多设备远程管理平台\n- STF\n\n## 自动遍历工具\n- AppCrawle\n\n## 软技能\n- 知识管理/总结分享\n- 沟通技巧/团队协作\n- 需求管理/PM\n- 交互设计/可用性/可访问性知识\n- 快速的学习能力\n"
  },
  {
    "path": "data/map-OpenResty.md",
    "content": "# OpenResty 技术图谱\n\n## Basic Concepts\n- HTTP / HTTP2\n- RESTful API & API GateWay\n- Microservice\n- Domain Specific Language(DSL)\n- C10K & C1M\n- non-blocking & asynchronous I/O\n- event loop\n- I/O mutiplexing\n- Streaming processing\n- coroutine\n- Test Driven Development(TDD)\n\n## Around Tech Stack\n- MySQL\n- PostgreSQL\n- Redis\n- OpenSSL\n- regex\n- sregex\n\n## Testing\n- TDD & Unit Testing\n- Test::Nginx\n- curl & ab & wrk\n\n## Debugging\n- debugging log\n- core dump\n- Dynamic Tracing\n- SystemTap\n- Flame Graph\n- on-CPU & off-CPU\n- nginx-systemtap-toolkit\n- stapxx\n- nginx-gdb-utils\n- valgrind\n\n## Caching\n- ngx.shared.DICT\n- lua-resty-lrucache\n- dog-pile effect\n- lua-resty-lock\n- lua-resty-shcache\n- ngx_srcache\n\n## Limiting Traffic\n- lua-resty-limit-traffic\n- limit-count\n- limit-rate\n- limit-concurrency\n\n## NGINX\n- log\n- static file\n- load balancer\n- proxy\n- phase\n- tuning for performance\n- if is evil\n- Stream module\n\n## LuaJIT\n- Standard Lua\n- JIT（Just-In-Time Compiler）\n- NYI (Not Yet Implemented)\n- ffi.\\* API\n- jit.\\* Library\n\n## ngx\\_lua\n- directives\n- NGINX API for Lua(ngx.\\*,tcpsock.\\*,coroutine.\\*)\n- resty-core\n- semaphore\n- balancer\\_by\\_lua\n- ssl\\_certificate\\_by\\_lua\n- stream-lua-nginx-module\n- cosocket TCP/UDP\n- hot load lua code\n- OPM\n- resty client\n\n## Resources\n- awesome-resty\n"
  },
  {
    "path": "data/map-SecurityEngineer.md",
    "content": "# 安全工程师技能图谱\n\n## 基础必备\n  \n### HTTP抓包与调试\n- Firefox插件\n   - Firebug(抓包与各种调试)\n   - Tamper Data(拦截修改)\n   - Live Http Header(重放功能)\n   - Hackbar(编码解码/POST提交)\n   - Modify Headers(修改头部)\n\n- Fiddler\n   - 浏览器代理神器\n   - 拦截请求或响应\n   - 抓包\n   - 重放\n   - 模拟请求\n   - 编码解码\n   - 第三方扩展\n      - Watcher(Web前端安全的自动审计工具)        \n\n- Wireshark(各种强大的过滤器语法)\n- Tcpdump(命令行的类Wireshark抓包神器)\n- Python\n   - urllib2\n   \n### 跳转\n\n- 服务端跳转\n - 302 <?php header(\"Location: 3.php\"); ?>\n - 301 <?php header(\"HTTP/1.1 301 Moved Permanently\"); header(\"Location: 2.php\"); ?>\n - u=urllib2.urlopen(url)后，u.url能得到服务端跳转后的地址\n\n- 客户端跳转\n\n### Office 能力\n- Word\n- Excel\n- PPT \n- yEd\n- Visio\n- FreeMind\n\n### Linux 基础\n- 《鸟哥的Linux私房菜》\n\n### Vim 基础\n- [简明 Vim 练级攻略](http://coolshell.cn/articles/5426.html)\n\n### Python 基础\n- [官方文档](https://www.python.org/dev/peps/pep-0008/)\n- [笨办法学 Python](http://learnpythonthehardway.org/book)\n- 《Python 核心编程2》\n\n### 算法\n- 快排\n- 二分\n\n### 正则表达式\n- 调试工具\n   - Kodos\n   - RegexBuddy\n   - Regexper\n- [《正则表达式 30 分钟入门教程》](http://deerchao.net/tutorials/regex/regex.htm)\n- [《Python 正则表达式操作指南》](http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97)\n- 《精通正则表达式》\n\n### 研发能力\n- 瀑布模型\n   - 需求->需求分析->设计->开发->测试->上线->运维/运营\n- 需求分析能力\n- 调试能力\n   - 定位 Bug\n   - 专业的工具与经验配合\n   - 真实模拟调试\n   - 缩小范围\n      - 构建自己的测试样例\n      - 关联模块一个个排除\n      - Python单步调试\n   - 粗暴调试：print\n- 敏捷思想\n   - 快速迭代\n   - 任务拆细\n   - v1原则：定义目标，优先完成v1\n   - 习惯 Wiki 记录\n\n### 翻墙技能\n\n## Web安全\n\n### Web服务组件\n- ![Web 服务组件层级图](http://blog.knownsec.com/Knownsec_RD_Checklist/res/web_component.png)\n- [钟馗之眼](http://zoomeye.org)\n\n### 安全维度\n- 漏洞\n- 风险\n- 事件\n\n### Web安全标准\n- OWASP\n- WASC\n\n### 实战环境\n- XSS\n- SQL\n- i春秋\n- Sebug + ZoomEye\n\n## 工具\n### Firefox\n- Firebug（调试JavaScript，HTTP请求响应观察，Cookie，DOM树观察等）\n- Tamper Data（拦截修改）\n- Live Http Header（重放功能）\n- Hackbar（编码解码/POST提交）\n- Modify Headers（修改头部）\n- [GreaseMonkey](http://userscripts.org/scripts/show/119798) \n- NoScript（进行一些JavaScript的阻断）\n- AutoProxy（翻墙必备）\n\n### Chrome\n- F12（开发者工具，功能==Firebug+本地存储观察等）\n- SwichySharp（翻墙必备）\n- [CookieHacker](http://evilcos.me/?p=366)\n\n### Web2.0 Hacking\n- [XSS'OR](http://evilcos.me/lab/xssor/)\n- [XSSEE 3.0 Beta](http://evilcos.me/lab/xssee/)\n- [Online JavaScript beautifier](http://jsbeautifier.org/)\n- [BeEF](http://beefproject.com/)\n\n### HTTP代理\n- Fiddler（经典Web调试代理工具）\n- Burp Suite（神器）\n- mitmproxy\n\n### 漏洞扫描\n- AWVS\n- Nmap\n- Python自写脚本/工具\n\n### 漏洞利用\n- sqlmap（SQL注入利用最牛神器）\n- Metasploit（最经典的渗透框架）\n- Hydra（爆破必备）\n\n### 抓包工具\n- Wireshark（抓包必备）\n- Tcpdump（Linux下命令行抓包）\n\n### Sebug + ZoomEye\n\n### Kali Linux\n### 书籍资料\n- 《黑客攻防技术宝典（Web实战篇）》\n- 《白帽子讲Web安全》\n- 《Web前端黑客技术揭秘》\n- 《Web之困》\n- 《SQL注入攻击与防御》\n- papers\n   - [exploit-db.com/papers](http://www.exploit-db.com/papers/)\n   - BlackHat/Defcon/XCon/KCon/国内各安全沙龙\n\n## 嵌入式安全\n\n### 路由器安全\n- 基础\n   - 嵌入式Linux系统方面知识\n   - 开发系统互联参考模型-第三层网络层\n   - MIPS/ARM汇编知识\n   - VxWorks系统方面知识\n   - JTAG调试接口规范\n   - 嵌入式系统交叉环境开发\n   - 路由器芯片方案提供商\n      - 博通\n      - Atheros\n      - TrendChip\n      - ACROSPEED\n      - IC+\n      - 瑞昱\n      - ...\n- 站点\n   - [OpenWrt.org](https://www.openwrt.org/)\n   - [routerpwn.co](http://routerpwn.com/) \n   - [see.sl088.com(Uboot_编译)](http://see.sl088.com/wiki/Uboot_%E7%BC%96%E8%AF%91)\n   - [devttys0.com](http://www.devttys0.com/)\n\n- 工具\n - Binwalk\n - IDA Pro\n - gdb/gdbserver\n - qemu-system\n - qemu-user-static\n - Smiasm\n - Metasm\n - JTAG硬件调试器\n\n### 摄像头安全\n- [openipcam](http://www.openipcam.com/)\n- [US-13-Heffner-Exploiting-Network-Surveillance-Cameras-Like-A-Hollywood-Hacker-Slides.pdf](https://media.blackhat.com/us-13/US-13-Heffner-Exploiting-Network-Surveillance-Cameras-Like-A-Hollywood-Hacker-Slides.pdf)\n\n### 工控安全\n\n#### 基础\n   - 工业生产环境的基本结构，如：SCADA、PCS\n   - 工业生产环境的信息安全风险点（可参考DHS出版物）\n   - 工控网络组态、逻辑开发、应用组态的基本技术方法\n   - 抓包、看RFC分析几个常规工业以太网协议，如：Profinet、Modbus\n   - 熟悉 PLC（记得买以太网模块）\n\n#### 站点\n - 事件跟踪分析\n      - [plcscan.org](http://plcscan.org/blog/ )\n      - [scadastrangelove.blogspot.kr](http://scadastrangelove.blogspot.kr)\n      - [phdays.com](http://www.phdays.com/)\n      - [scadasl.org](http://www.scadasl.org)\n      - [scadahacker.com](https://scadahacker.com)\n        - [Duqu](https://scadahacker.com/resources/duqu.html) \n        - [Stuxnet](https://scadahacker.com/resources/stuxnet.html)\n        - [Havex](https://scadahacker.com/resources/havex.html)\n - 标准协会/测试工具\n   - [DHS CET套件](http://ics-cert.us-cert.gov/Assessments)\n   - [NERC ES-ISAC](http://www.esisac.com/SitePages/Home.aspx)\n   - [ICS-ISAC](http://ics-isac.org)\n   - [NTSB美国国家工控测试床](http://energy.gov/oe/downloads/common-cyber-security-vulnerabilitiesobserved-control-system-assessments-inl-nstb)\n   - [NIST SP 800-82](http://csrc.nist.gov/publications/nistpubs/800-82/SP800-82-final.pdf)\n   - [ISA-99控制系统安全协会](http://isa99.isa.org/ISA99%20Wiki/Home.aspx)\n   - [NERC CIP标准](http://www.nerc.com/pa/Stand/Pages/ReliabilityStandards.aspx)\n\n#### 工具\n- 仿真类\n\t - 电力仿真软件testhaness\n\t - Modbus仿真软件ModScan\n\t - 电力104协议仿真软件PMA\n- 测试类\n\t - Wurldtech Achilles\n\t - Codenomicon Defensics\n\t - Spirent\n\t - BPS\n- 源代码\n\t - 发现\n\t \t- [plcscan](https://code.google.com/p/plcscan/)\n\t \t- [modscan](https://code.google.com/p/modscan/)  \n\t \t- [scan7](https://github.com/arnaudsoullie/scan7)\n\t \t- [atimorin](https://github.com/atimorin)\n\t \t- [Redpoint](https://github.com/digitalbond/Redpoint)\n \n\t - 操纵\n\t \t- [modbus](https://www.scadaforce.com/modbus)\n\t \t- [pymodbus](https://github.com/bashwork/pymodbus)\n\t \t- [modbus-cli](https://rubygems.org/gems/modbus-cli)\n\t \t- [libnodave](http://libnodave.sourceforge.net)\n\t \t- [dnp3](https://code.google.com/p/dnp3)\n\t - 异常监测\n\t \t- [snort-292-scada-preprocessors](http://blog.snort.org/2012/01/snort-292-scada-preprocessors.html) \n\t \t- [quickdraw](http://www.digitalbond.com/tools/quickdraw/)\n \t - [Fuzz](https://github.com/jseidl/peach-pit/blob/master/modbus/modbus.xml)\n\n#### 其他\n   - [ZoomEye工控专题](http://ics.zoomeye.org/) \n   - [Shodan工控专题](https://www.shodan.io/report/l7VjfVKc)\n   - [网络空间工控设备的发现与入侵](https://github.com/evilcos/papers/blob/master/网络空间工控设备的发现与入侵.ppt)\n\n### zoomeye.org\n- [全球可以找到无数真实路由器/摄像头/工控设备等](http://www.zoomeye.org/search?q=app:%22MikroTik%20RouterOS%22&from=dork)\n\n## 研发清单\n#### 编码环境\n- pip\n- Vagrant\n- tmux/screen\n- vim\n- Markdown\n- zsh + oh-my-zsh\n- Python2.7\n- [Django1.4](http://djangobook.py3k.cn/2.0/)\n   - [Django Debug Toolbar](http://django-debug-toolbar.readthedocs.org/en/latest/)\n   - 其他框架\n      - web.py\n      - Flask\n      - Tornado\n- node.js\n- Ubuntu/Gentoo/Centos\n- ipython\n- 版本控制\n   - 废弃SVN，全面拥抱Git\n   - GitLab\n- Nginx+uWSGI\n\n\n#### Python\n- 官方手册\n\n#### Linux/UNIX\n- 书\n   - 《鸟哥的Linux私房菜》\n   - 《Linux Shell脚本攻略》\n   - 《UNIX编程艺术》\n   - 《Software Design 中文版》（01／02／03版）\n- Linux 作为电脑默认操作系统\n\n#### 前端\n- 了解 DOM\n   - 《JavaScript DOM编程艺术》\n   - 前端安全必要基础\n- 库\n   - jQuery\n   - D3.js\n   - ECharts\n   - Google API\n   - ZoomEye Map组件\n   - AngularJS\n   - Bootstrap\n\n#### 爬虫进阶\n- 代理池\n- 网络请求\n   - wget/curl\n   - urllib2/httplib2/requests\n   - idea scrapy\n- 验证码破解\n   - pytesser\n\n#### 调度\n- crontab是最原生的定时调度\n- 基于redis实现的分布式调度\n- 基于rpyc实现的分布式调度\n- celery/gearman等调度框架\n\n#### 并发\n- 线程池\n- 协程\n   - gevent\n- 多进程\n   - os.fork\n   - idea multiprocessing\n\n#### 数据结构\n- JSON\n- cPickle\n- protobuf\n\n#### 数据存储及处理\n- 数据库\n   - MySQL\n   - MongoDB\n   - Cassandra\n   - Hadoop体系\n   - Redis\n   - Sqlite\n   - bsddb\n   - ElasticSearch\n- 大数据处理\n   - Hive\n   - Spark\n   - ELK\n      - ElasticSearch\n      - Logstash\n      - Kibana\n\n#### DevOps\n- SSH证书\n- Fabric\n- SaltStack\n- puppet\n- pssh/dsh\n- 运维进阶\n\n#### 调试\n- pdb\n- logging\n- Sentry\n- strace/ltrace\n- lsof\n- 性能\n   - Python内\n      - timeit\n      - cProfile\n      - [Python性能分析指南](http://www.oschina.net/translate/python-performance-analysis)\n   - Python外\n      - top/htop/free/iostat/vmstat/ifconfig/iftop...\n\n#### 算法\n- 分词\n- 贝叶斯\n- 神经元\n- 遗传算法\n- 聚类/分类\n- ...\n\n#### 持续集成\n- 自测试\n   - nose\n- Jenkins\n\n#### 安全\n- [《程序员与黑客》](http://www.infoq.com/cn/presentations/programmers-and-hackers)\n\n#### 协作\n- Trello/Slack/Tower/微信/立会\n\n## 设计思想\n- 人人都是架构师：具备架构思想是一件多酷的事\n- 实战出真知\n- 如何设计\n   - [任务架构设计变迁](http://blog.knownsec.com/Knownsec_RD_Checklist/res/arch_design_evolution.pdf)\n   - 松耦合、紧内聚\n   - 单元与单元属性\n   - 生产者与消费者\n- 结构\n   - 队列\n   - LRU\n- 分布式\n   - 存储\n   - 计算\n- 资源考虑\n   - CPU\n   - 内存\n   - 带宽\n- 粗暴美学/暴力美学「run it优先」\n   - 大数据，找到规律\n   - 打通整体，洞察问题\n   - 摆脱繁枝末节的束缚\n   - 快速迭代出伟大的v1\n- 一个字总结 —— 美\n\n## 牛人1,2,3\n- 1研究:有足够洞察力\n- 2研发:Hack Idea 自己有魄力实现\n- 3工程:需要实战、需要工程化\n\n## 移动安全\n## 系统安全\n## 反病毒\n## 云安全\n- DDOS\n- 接口安全\n\t- 验证\n\t- 越权\n\t- 校验 \n\t\n\n\n"
  },
  {
    "path": "data/map-Serverless.md",
    "content": "# Serverless技能图谱\n\n## 开源实现\n\n- [Apache OpenWhisk](https://openwhisk.apache.org)\n- [KNative](https://knative.dev/)\n- [OpenFaaS](https://www.openfaas.com/)\n- [Kubeless](https://kubeless.io/)\n- [Fn](https://fnproject.io)\n- [Riff](https://projectriff.io)\n- [Nuclio](https://nuclio.io/)\n\n## 商业平台\n\n- [AWS Lambda](https://aws.amazon.com/lambda)\n- [AWS Fargate](https://aws.amazon.com/cn/fargate)\n- [AZure Functions](https://azure.microsoft.com/en-us/services/functions)\n- [Google Cloud Functions](https://cloud.google.com/functions)\n- [Google Cloud Run](https://cloud.google.com/run)\n- [IBM Cloud Functions](https://www.ibm.com/cloud/functions)\n- [阿里云 Function Compute](https://www.alibabacloud.com/product/function-compute)\n- [阿里云 Elastic Container Instance](https://www.aliyun.com/product/eci)\n- [腾讯云 Serverless Cloud Function](https://intl.cloud.tencent.com/product/scf)\n- [华为云 FunctionStage](www.huaweicloud.com/en-us/product/functionstage.html)\n\n## 开发工具\n\n- [Event Gateway](https://github.com/serverless/event-gateway)\n- [IOpipe](https://github.com/iopipe/)\n- [Node Lambda](https://github.com/motdotla/node-lambda)\n- [Python-λ](https://github.com/nficano/python-lambda)\n- [Virtual Kubelet](https://virtual-kubelet.io)\n\n## 代码框架\n\n- [AWS SAM](https://aws.amazon.com/serverless/sam)\n- [Flogo](https://www.flogo.io)\n- [Serverless Framework](https://serverless.com/)\n- [Spring Cloud Function](https://spring.io/projects/spring-cloud-function)\n\n## 服务网格\n\n- [Istio](https://istio.io)\n- [Linkerd2](https://linkerd.io)\n- [SofaMesh](https://www.sofastack.tech/projects/sofa-mesh/overview/)\n- [Envoy](https://www.envoyproxy.io)\n- [Nginmesh](https://github.com/nginxinc/nginmesh)\n- [Aspen Mesh](https://aspenmesh.io)\n\n## 开源规范\n\n- [Service Mesh Interface](https://smi-spec.io)\n- [Cloud Events](https://cloudevents.io/)\n"
  },
  {
    "path": "data/map-dns-troubleshoot.md",
    "content": "# DNS排查技术图谱\n\n## 应用程序视角\n- 应用程序\n  - 浏览器\n     - hostname cache\n  - ping\n- 操作系统\n  - hostname cache \n  - 域名解析器\n     - dig domain\n- 本网DNS转发器\n  - 无线路由\n     - dig@gateway_ip domain\n- Local DNS\n  - dig@localdns domain\n- 全球DNS系统\n  - 根root“.”\n  - 顶级域名 TLD\n     - gTLD\n     - ccTLD\n  - 二级域名 SLD\n  - 主机域名\n     - Here!\n     - dig+trace domain\n## 操作系统视角\n- 配置来源\n  - 配置\n     - 自动 \n        - DHCP\n            - PPPOE\n            - VPN\n            - 无线路由\n     - 手工\n  - 角色\n     - 首选DNS\n     - 备用DNS\n     - ...\n  - 附加域名后缀？\n     - 不附加\n         - FQDN\n     - 附加\n         - 默认.Local\n     - 强制不附加后缀\n         - FQDN\n             - 主机名后添加“.”结尾\n- 一般*NIX环境\n  - /etc/nsswitch.conf\n     - [wins][nis][nisplus]...\n     - dns\n         - /ect/resolv.conf\n             - Here!\n  - /ect/host.conf（旧）\n     - [nis]\n     - bind\n         - /etc/resolv.conf\n             - Here!\n  - 一般优先选择\n- Windows环境\n  - 一般顺序\n     - Checks it's own name\n     - Local hostname cache\n     - HOSTS file\n     - DNS\n         - Here！\n     - NetBIOS name cache\n     - [WINS]\n         - 开启wins\n         - 关闭wins\n     - Broadcast\n     - LMHOSTS\n  - 参考\n     -  https://technet.microsoft.com/zh-cn/library/bb457118.aspx\n\n## 域名注册视角\n- 根\n  - 管理机构ICANN\n     - TLD注册\n  - TLD\n     - 所属\n         - gTLD\n             - ICANN指定\n         - ccTLD\n             - 一般XX国家信息中心\n     - 管理\n         - 注册局\n             - 注册代理（SLD)\n                 - Here!\n     - SLD\n         - 所属\n             - 域名所有者（个人、组织）\n         - 管理\n             - 自建\n             - 托管 \n         - Host\n             - Here!\n- 注册代理\n  - 注册局\n     - whois db\n         - 域名注册信息\n             - Here! \n     - TLDzone\n         - 域名的NS\n             - Here！\n         - Glue A\n\n## 国际域名视角\n- 即IDN域名\n  - 中文\n     - 繁体\n     - 简体\n  - 阿拉伯文\n  - ...\n- 浏览器角色\n  - IDN》unycode编码》普通域名\n  - Here!\n- DNS角色\n  - 普通域名\n\n## 域名配置\n- zone\n  - RR资源记录\n     - 域名\n     - 资源类型\n     - Rdate 资源数据\n         - Here！\n     - TTL\n- 查询结论\n  - zone之外\n     - 拒绝+空\n  - 没有目标域名\n     - NXDomain+SOA\n  - 存在域名但缺少相应的资源类型\n     - NOERROR+SOA\n  - 直接找到目标\n     - NOERROR+目标RR\n         - Here！\n\n## 一般开发视角\n- gethostbyname系列\n  - hostname来源\n     - 自己的Hostname\n     - NIS\n     - SMB\n     - NetBIOS\n     - DNS\n         - Here！\n     - ...\n  - addr\n     - IPv6（如果允许默认优先）\n     - IPv4\n     - ...\n  - 操作系统\n     - GNU Linux glibc\n     - Windows winsock\n     - Linux Windows Android...\n         - JVM\n\n"
  },
  {
    "path": "data/map-testing.md",
    "content": "# 测试技能图谱\n\n## 代码静态分析\n- Sonar\n- PMD\n- Infer\n- Android\n  * findbugs\n  * AndroidLint\n  * CheckStyle\n- iOS\n  * scanbuild\n  * oclint\n  \n## 覆盖率分析\n- Android\n  * Jacoco\n  * EMMA\n- iOS\n  * gcov\n\n## 自动化测试\n- Appium\n- Calabash\n- Macaca\n- MonkeyTalk\n- RobotFramework\n- Android\n  * Robotium\n  * Uiautomator\n  * Espresso\n  * Selendroid\n  * Instrumentation\n  * MonkeyRunner\n  * Cafe\n- iOS\n  * WDA\n  * XCUITest\n  * KIF\n  * Frank\n- Web\n  * selenium\n  \n- 自动遍历工具\n  * AppCrawler\n  * CrashMonkey4Android\n  * CrashMonkey4iOS\n  * SwiftMonkey\n\n## 接口测试\n- Rest-Assured\n- SoapUI\n- JMeter\n- RobotFrameWork\n- PostMan\n- Swagger\n## 常用工具\n\n### 代理工具\n- Charles\n- Fiddler\n- BurpSuite\n- AnyProxy\n\n### 嗅探\n- TcpDump\n- WireShark\n\n### 弱网模拟\n- 通用\n  * ATC\n  * Charles\n  * Fiddler\n  * BurpSuite\n- iOS\n  * iOS developer mode\n- Web\n  * Chrome\n\n### 移动端专项测试\n- Android\n  * monitor\n  * MAT\n  * VisualVM\n  * dumpsys命令集\n  * /proc/\n  * top\n  * adb bugreport\n  * battery*historian\n  * 腾讯GT\n  * 网易Emmagee\n- iOS\n  * Instruments工具集\n- 硬件设备\n  * 安捷伦\n  * 高速(慢速)摄像机\n- 专项分析sdk\n  * LeakCanary\n  * BlockCanary\n  * MLeaksFinder\n  \n  \n## 性能测试\n- 客户端性能测试\n  * TraceView\n  * Instruments\n\n- 服务端性能测试\n  * JMeter\n  * Gatling\n  * nGrinder\n  * SystemTap\n  * DTrace\n  * Perf\n  * FlameGraph\n\n## 安全测试\n- 移动端安全\n  * Frida\n  * Cydia Substrate\n- Android\n  * Drozer\n  * apktool\n  * dex2jar\n  * XPosed\n- iOS\n  * IDB\n  * otool\n  * lldb\n  * iExplorer\n  * libimobiledevice\n- 服务端安全测试\n  * BurpSuite\n  * WVS\n  * ZAP\n \n## 持续集成\n- 通用工具\n  * Jenkins\n  * Travis CI \n  * fastlane\n- Android\n  * mvn\n  * gradle\n- iOS\n  * Cocoapods\n  * xcodebuild\n  * xcrun\n  * plist\n## 测试环境管理\n- Android Emulator\n- STF\n- Appium Grid\n- WebPageTest\n- Selenium Grid\n- Genymotion\n- BlueStacks\n- Docker\n\n## 常用云测平台\n- MQC\n- MTC\n- Testin\n- SauceLabs\n\n\n## 软技能\n- 知识管理\n  * Confluence\n  * Wiki\n  * GitBook\n  * TesterHome\n- 需求管理\n  * Jira\n  * Redmine\n- 用例与Bug管理\n  * Jira\n  * Redmine\n  * BugFree\n  * TestLink\n- 架构能力\n  * Git\n  * GitLab\n  * GitHub\n  * JVM\n  * Instrument技术体系\n"
  },
  {
    "path": "gulpfile.js",
    "content": "var gulp = require('gulp'),\n    ghPages = require('gulp-gh-pages'),\n    sass = require('gulp-sass'),\n    sourcemaps = require('gulp-sourcemaps');\n\ngulp.task('deploy', function() {\n  return gulp.src('./**/*')\n    .pipe(ghPages());\n});\n\ngulp.task('sass', function () {\n  return gulp.src('sass/style.sass')\n    .pipe(sourcemaps.init())\n    .pipe(sass())\n    .pipe(sourcemaps.write('.'))\n    .pipe(gulp.dest('css/'))\n});"
  },
  {
    "path": "index.html",
    "content": "<!DOCTYPE html>\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no\">\n    <title>StuQ技能图谱v0.1.2</title>\n    <link href=\"css/style.css\" rel=\"stylesheet\">\n    <script>\n     var _hmt = _hmt || [];\n     (function() {\n       var hm = document.createElement(\"script\");\n       hm.src = \"//hm.baidu.com/hm.js?c5521d8cc55de1f615df373b27ee7557\";\n       var s = document.getElementsByTagName(\"script\")[0];\n       s.parentNode.insertBefore(hm, s);\n     })();\n    </script>\n    <script src=\"js/marked.min.js\"></script>\n  </head>\n  <body>\n    <div class=\"root\" id=\"root\">\n      <h1 class=\"opened\" id=\"rootListButton\">StuQ 技能图谱 v0.1.2</h1>\n      <p>2015/11/20发布，后续动态请关注微信公众号：<span>StuQ</span></p>\n      <ul class=\"list-open\" id=\"rootList\">\n\t<li class=\"hide\" id=\"index\">\n\t  <h2>快速导航</h2>\n\t  <ul>\n\t    <li><a href=\"#intro\">说明</a></li>\n\t    <li><a href=\"#frontEndIndex\">Web 前端</a></li>\n\t    <li><a href=\"#cloudComputingIndex\">云计算</a></li>\n\t    <li><a href=\"#securityIndex\">安全</a></li>\n\t    <li><a href=\"#IOAMIndex\">智能运维</a></li>\n\t    <li><a href=\"#bigDataIndex\">大数据</a></li>\n\t    <li><a href=\"#end\">结尾</a></li>\n\t  </ul>\n\t</li>\n\t<li id=\"intro\">\n\t  <h2>说明</h2>\n\t  <div class=\"node\">\n\t    <ul>\n\t      <li>\n\t\t<h3>关于StuQ</h3>\n\t\t<ul>\n\t\t  <li>致力于让技术人学习和交流更简单</li>\n\t\t  <li>全力打造实践驱动的学习和服务平台</li>\n\t\t</ul>\n\t      </li>\n\t      <li>\n\t\t<h3>关于技能图谱</h3>\n\t\t<ul>\n\t\t  <li>\n\t\t    <p>本技能图谱为各领域从浅入深的路径整理，现展出的为初版，如有指正或疑问，请展开本列加入QQ群或者微信群，共同交流，共同完善。</p>\n\t\t    <ul class=\"join-us\">\n\t\t      <li>\n\t\t\t<img alt=\"qq\" src=\"img/qq.png\">\n\t\t\t<div>QQ群：254521819</div>\n\t\t      </li>\n\t\t      <li>\n\t\t\t<img alt=\"wechat\" src=\"img/wechat.png\">\n\t\t\t<div>StuQ 小助手邀请入群</div>\n\t\t      </li>\n\t\t    </ul>\n\t\t  </li>\n\t\t  <li>\n\t\t    <p>感谢提供初版内容的各界技术人士。特别鸣谢：<p>\n\t\t      <ul>\n\t\t\t<li>阿里巴巴前端工程师 @jayli <a href=\"https://github.com/jayli/jayli.github.com/issues/16\" target=\"_blank\">原创链接</a></li>\n\t\t\t<li>阿里巴巴前端工程师 @Jackson Tian <a href=\"https://github.com/JacksonTian/fks\" target=\"_blank\">原创链接</a></li>\n\t\t\t<li>AWS 首席云计算企业顾问 @费良宏</li>\n\t\t\t<li>知道创宇技术VP @余弦 <a href=\"http://blog.knownsec.com/Knownsec_RD_Checklist/v3.0.html\" target=\"_blank\">原创链接</a></li>\n\t\t\t<li>知道创宇运维工程师 @Tanky Woo <a href=\"http://blog.knownsec.com/2015/03/how-many-basic-skills-should-a-operation-and-maintenance-engineer-get/\" target=\"_blank\">原创链接</a></li>\n\t\t\t<li>乐视云大数据工程师 @祝海林</li>\n\t\t      </ul>\n\t\t  </li>\n\t\t</ul>\n\t      </li>\n\t    </ul>\n\t  </div>\n\t</li>\n\t<li id=\"frontEndIndex\">\n\t  <h2>Web 前端</h2>\n\t  <span>（贡献者：@jayli，@Jackson Tian；下载：<a href=\"data/frontEnd.md\" download=\"Web 前端(StuQ 技能图谱).md\">Web 前端.md</a> | <a href=\"data/frontEnd.png\" download=\"Web 前端(StuQ 技能图谱).png\">Web 前端.png</a>）</span>\n\t  <div class=\"node\" id=\"frontEnd\"></div>\n\t</li>\n\t<li id=\"cloudComputingIndex\">\n\t  <h2>云计算</h2>\n\t  <span>（贡献者：@费良宏；下载：<a href=\"data/cloudComputing.md\" download=\"云计算(StuQ 技能图谱).md\">云计算.md</a> | <a href=\"data/cloudComputing.png\" download=\"云计算(StuQ 技能图谱).png\">云计算.png</a>）</span>\n\t  <div class=\"node\" id=\"cloudComputing\"></div>\n\t</li>\n\t<li id=\"securityIndex\">\n\t  <h2>安全</h2>\n\t  <span>（贡献者：@余弦；下载：<a href=\"data/security.md\" download=\"安全(StuQ 技能图谱).md\">安全.md</a> | <a href=\"data/security.png\" download=\"安全(StuQ 技能图谱).png\">安全.png</a>）</span>\n\t  <div class=\"node\" id=\"security\"></div>\n\t</li>\n\t<li id=\"IOAMIndex\">\n\t  <h2>智能运维</h2>\n\t  <span>（贡献者：@Tanky Woo；下载：<a href=\"data/IOAM.md\" download=\"智能运维(StuQ 技能图谱).md\">智能运维.md</a> | <a href=\"data/IOAM.png\" download=\"智能运维(StuQ 技能图谱).png\">智能运维.png</a>）</span>\n\t  <div class=\"node\" id=\"IOAM\"></div>\n\t</li>\n\t<li id=\"bigDataIndex\">\n\t  <h2>大数据</h2>\n\t  <span>（贡献者：@祝海林；下载：<a href=\"data/big-data.md\" download=\"大数据(StuQ 技能图谱).md\">大数据.md</a> | <a href=\"data/big-data.png\" download=\"大数据(StuQ 技能图谱).png\">大数据.png</a>）</span>\n\t  <div class=\"node\" id=\"bigData\"></div>\n\t</li>\n\t<li id=\"IHIndex\">\n\t  <h2>智能硬件</h2>\n\t  <span>（贡献者：@黄峰达 ThoughtWorks 西安，Consultant；下载：<a href=\"data/Embedded－Engineer.md\" download=\"嵌入式工程师(StuQ 技能图谱).md\">嵌入式工程师.md</a>）</span>\n\t  <div class=\"node\" id=\"IH\"></div>\n\t</li>\n\t<li id=\"language\">\n\t  <h2>开发语言</h2>\n      <span>（贡献者：@吴坚；下载：<a href=\"data/dev-lang-total.md\" download=\"开发语言综述(StuQ 技能图谱).md\">开发语言综述.md</a> | <a href=\"data/dev-lang-total.png\" download=\"开发语言综述(StuQ 技能图谱).png\">开发语言综述.png</a>）</span>\n      <span>（贡献者：@谢孟军；下载：<a href=\"data/dev-lang-Go.md\" download=\"Golang(StuQ 技能图谱).md\">Golang.md</a> | <a href=\"data/dev-lang-Go.png\" download=\"Golang(StuQ 技能图谱).png\">Golang.png</a>）</span>\n\t  <div class=\"node\" id=\"devLang\"></div>\n\t</li>\n\t<li id=\"end\">\n\t  <h2>结束语</h2>\n\t  <ul>\n\t    <li id=\"bottomQrcode\">\n\t      <div class=\"node\">本技能图谱会持续更新，如果有好的建议/意见，或者需要指正错误/不妥，或者有好的资源，或者想要夸赞/批评我们，请加入QQ群或者微信群，共同交流，共同完善，共同为千千万万技术从业人员画一张完善并且有参考价值的技能图谱。</div>\n\t      <ol class=\"join-us\">\n\t\t<li>\n\t\t  <img alt=\"qq\" src=\"img/qq.png\">\n\t\t  <div>QQ群：254521819</div>\n\t\t</li>\n\t\t<li>\n\t\t  <img alt=\"wechat\" src=\"img/wechat.png\">\n\t\t  <div>StuQ 小助手邀请入群</div>\n\t\t</li>\n\t      </ol>\n\t    </li>\n\t  </ul>\n\t</li>\n      </ul>\n    </div>\n\n    <div class=\"to-top hide\" id=\"toTop\"></div>\n\n    <div class=\"expand-collapse\"><a id=\"expand\">展开</a> - <a id=\"collapse\">折叠</a></div>\n\n    <footer><a href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/\" target=\"_blank\">CC--NC-SA 4.0</a></footer>\n    <script src=\"js/script.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "js/script.js",
    "content": "/*\n - Author: Steve\n - Mail: steve@stuq.org\n - Date: Aug 31th, 2015\n */\n\n\n// DOM methods\n(function(window, document) {\n  var elementPrototype = typeof HTMLElement !== 'undefined' ? HTMLElement.prototype : Element.prototype;\n\n  var $id = window.$id = function(id) {\n    return document.getElementById(id);\n  };\n\n  var $tag = window.$tag = function(tagName) {\n    return document.getElementsByTagName(tagName);\n  };\n\n  elementPrototype.tagEles = function(tagName) {\n    return this.getElementsByTagName(tagName);\n  };\n\n  elementPrototype.hasClass = function(className) {\n    return !!this.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'));\n  };\n\n  elementPrototype.addClass = function(className) {\n    if (!this.hasClass(className)) {\n      this.className += ' ' + className;\n      this.className = this.className.trim();\n    }\n  };\n\n  elementPrototype.removeClass = function(className) {\n    if (this.hasClass(className)) {\n      var reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\n      this.className = this.className.replace(reg, ' ');\n      this.className = this.className.trim();\n    }\n  };\n\n  elementPrototype.isLeafNode = function() {\n    return this.tagEles('li').length ? false : true;\n  };\n\n  elementPrototype.openNode = function() {\n    this.lastElementChild.removeClass('hide');\n    this.removeClass('closed');\n    this.addClass('opened');\n  };\n\n  elementPrototype.normalizeNode = function() {\n    this.lastElementChild.removeClass('hide');\n    this.firstElementChild.removeClass('node');\n    this.firstElementChild.style.cursor = 'initial';\n    this.addClass('normal');\n    this.removeClass('closed');\n  };\n})(window, document);\n\n// skillmap class\n(function(window, document) {\n  var skillmap = window.skillmap = function() {\n    // AJAX for IE and other browsers\n    var newRequest = function() {\n      var xhr;\n\n      if (typeof XMLHttpRequest !== 'undefined') {\n\txhr = new XMLHttpRequest();\n      } else {\n\tvar versions = [\"MSXML2.XmlHttp.5.0\", \n\t  \"MSXML2.XmlHttp.4.0\",\n\t  \"MSXML2.XmlHttp.3.0\", \n\t  \"MSXML2.XmlHttp.2.0\",\n\t  \"Microsoft.XmlHttp\"];\n\t\n\tfor (var i = 0, len = versions.length; i < len; i++) {\n\t  try {\n            xhr = new ActiveXObject(versions[i]);\n            break;\n\t  } catch(e) {}\n\t}\n      }\n      return xhr;\n    };\n\n    // read md file from server\n    var readTextFile = function(file) {\n      var rawFile = new newRequest();\n      rawFile.open(\"GET\", file, false);\n      rawFile.send(null);\n      try {\n\treturn rawFile.responseText;\n      } catch(error) {\n\tconsole.log(error);\n      }\n    };\n\n    // scroll element to destination\n    var scrollTo = function(element, to, duration) {\n      if (duration < 0) {\n\t$id('toTop').addClass('hide');\n\treturn;\n      }\n\n      var difference = to - element.scrollTop;\n      var perTick = difference / duration * 2;\n\n      setTimeout(function() {\n\telement.scrollTop = element.scrollTop + perTick;\n\tscrollTo(element, to, duration - 2);\n      }, 10);\n    };\n\n    var defaultOpen = [\n      'index',\n      'intro',\n      'language',\n//      'bottomQrcode',\n      'end'\n    ];\n\n    var init = function() {\n      window.onload = function() {\n\tvar mdList = {\n\t  'devLang': 'data/dev-lang.md',\n\t  'bigData': 'data/big-data.md',\n\t  'cloudComputing': 'data/cloudComputing.md',\n\t  'frontEnd': 'data/frontEnd.md',\n\t  'IH': 'data/IH.md',\n\t  'IOAM': 'data/IOAM.md',\n\t  'security': 'data/security.md'\n\t}, liArray = $tag('li');\n  \n\tfor (var i in mdList) {\n\t  $id(i).innerHTML = marked(readTextFile(mdList[i]));\n\t}\n\n\tfor (var i = 0; i < liArray.length; i++) {\n\t  if (!liArray[i].isLeafNode()) {\n\t    liArray[i].firstElementChild.style.cursor = 'pointer';\n\t    liArray[i].lastElementChild.addClass('hide');\n\t    liArray[i].addClass('closed');\n\n\t    if (liArray[i].id !== 'bottomQrcode') {\n\t      liArray[i].firstElementChild.onclick = function() {\n\t\tif (this.parentElement.lastElementChild.hasClass('hide')) {\n\t\t  this.parentElement.lastElementChild.removeClass('hide');\n\t\t  this.parentElement.removeClass('closed');\n\t\t  this.parentElement.addClass('opened');\n\t\t} else {\n\t\t  this.parentElement.lastElementChild.addClass('hide');\n\t\t  this.parentElement.removeClass('opened');\n\t\t  this.parentElement.addClass('closed');\n\t\t}\n\t      }\n\t    }\n\t  } else {\n\t    liArray[i].addClass('normal');\n\t  }\n\t}\n  \n\tfor (var i = 0; i < defaultOpen.length; i++) {\n\t    $id(defaultOpen[i]).openNode();\n\t}\n\t$id('bottomQrcode').normalizeNode();\n\n\twindow.onscroll = function() {\n\t  if (window.scrollY > 0) {\n\t    $id('toTop').removeClass('hide');\n\t  }\n\n\t  $id('toTop').onclick = function() {\n\t    var body = document.body;\n\t    var dE = document.documentElement;   // dE for firefox\n\n\t    if (body.scrollTop || dE.scrollTop) {\n\t      scrollTo(body.scrollTop ? body : dE, 0, 50);\n\t    } else {\n\t      body.scrollIntoView();\n\t    }\n\t  }\n\t}\n\n\t$id('expand').onclick = function() {\n\t  for (var i = 0; i < liArray.length; i++) {\n\t    if (liArray[i].hasClass('closed')) {\n\t      liArray[i].removeClass('closed');\n\t      liArray[i].addClass('opened');\n\t      liArray[i].lastElementChild.removeClass('hide');\n\t    }\n\t  }\n\t}\n  \n\t$id('collapse').onclick = function() {\n\t  for (var i = 0; i < liArray.length; i++) {\n\t    if (liArray[i].hasClass('opened')) {\n\t      liArray[i].removeClass('opened');\n\t      liArray[i].addClass('closed');\n\t      liArray[i].lastElementChild.addClass('hide');\n\t    }\n\t  }\n\t}\n      }\n    };\n\n    return {\n      init: init\n    };\n  };\n})(window, document);\n\nskillmap().init();\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"skill-map\",\n  \"version\": \"1.0.0\",\n  \"description\": \"**[http://www.stuq.org/subject/skill-map/](http://www.stuq.org/subject/skill-map/)**\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"start\": \"http-server . -p 9999 -o\",\n    \"gulp\": \"gulp\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/TeamStuQ/skill-map.git\"\n  },\n  \"author\": \"stuq\",\n  \"license\": \"ISC\",\n  \"bugs\": {\n    \"url\": \"https://github.com/TeamStuQ/skill-map/issues\"\n  },\n  \"homepage\": \"https://github.com/TeamStuQ/skill-map#readme\",\n  \"devDependencies\": {\n    \"gulp\": \"^3.9.0\",\n    \"gulp-gh-pages\": \"^0.5.4\",\n    \"gulp-sass\": \"^2.1.1\",\n    \"gulp-sourcemaps\": \"^1.6.0\",\n    \"http-server\": \"^0.8.5\"\n  },\n  \"dependencies\": {},\n  \"keywords\": [\n    \"skill-map\",\n    \"stuq\"\n  ]\n}\n"
  },
  {
    "path": "sass/_base.sass",
    "content": "// base.sass\n\n\n*\n  box-sizing: border-box\n\nhtml,\nbody\n  display: block\n  position: relative\n  margin: 0\n  padding: 0\n  background:\n    color: #eee\n  font:\n    family: \"Source Han Sans SC\", \"Helvetica Neue\", Helvetica, Arial, \"Lantinghei SC\", \"Hiragino Sans GB\", STHeiti, \"Microsoft Yahei\", \"Microsoft Sans Serif\", sans-serif\n    size: 16px\n  word:\n    wrap: break-word\n    break: break-all\n\nul\n  margin:\n    top: 1px\n    bottom: 1px\n    left: 0\n  padding:\n    left: 3%\n  list-style:\n    type: square\n  li\n    line-height: 1.5em\n\np\n  line-height: 1.5em\n  margin: 0\n\nh1,\nh2,\nh3\n  margin: 10px 0\n\n.hide\n  display: none !important\n"
  },
  {
    "path": "sass/style.sass",
    "content": "// list.sass\n\n\n@import base\n\n.root\n  margin: 10px\n  padding: 10px 40px 80px\n  background:\n    color: #fff\n  border:\n    width: 1px\n    style: solid\n    color: #ddd\n    radius: 5px\n\n  h1\n    font-size: 1.7em\n\n  p\n    span\n      color: #c00\n\n  .join-us\n    width: 100%\n    padding: 0\n    margin: 1em 0 1em -6%\n    list-style: none\n    text-align: center\n    \n    li\n      display: inline-block\n      &:first-child\n        margin-right: 5%\n\n  ul\n    h2\n      font:\n        weight: 400\n\n    .node\n      li\n        margin: 0.5em 0\n\n        h3,\n        h4,\n        h5\n          margin: 0\n          padding: 0\n          font:\n            weight: 400\n\n        h5\n          font:\n            size: 0.95em\n\n#intro,\n#end\n  h2\n    font:\n      size: 1.17em\n      weight: 500\n\n#frontEndIndex,\n#cloudComputingIndex,\n#securityIndex,\n#IOAMIndex,\n#bigDataIndex,\n#language,\n#IHIndex\n  h2\n    display: inline-block\n    color: #17f\n      \n    &:focus,\n    &:hover\n      color: #00f\n      text-decoration: underline\n\n  h3\n    span\n      font:\n        size: 0.85em\n        weight: 400\n      \n#IH\n  h2\n    display: inline-block\n    color: #17f\n            \n.to-top\n  display: block\n  position: fixed\n  opacity: 0.98\n  \n  &::before\n    @extend .to-top\n    content: ''\n    right: 2em\n    bottom: 2em\n    width: 4em\n    height: 4em\n    background:\n      image: url('../img/top.svg')\n      size: contain\n      repeat: no-repeat\n\n  &:focus,\n  &:hover\n    cursor: pointer\n\nli.closed\n  list-style-image: url('../img/plus.png')\nli.opened\n  list-style-image: url('../img/minus.png')\nli.normal\n  list-style-image: none\n\n.expand-collapse\n  display: block\n  position: fixed\n  top: 0\n  right: 2em\n  width: 8em\n  height: 2em\n  padding: 0.5em\n  background:\n    color: #fff\n  border:\n    width: 1px\n    style: solid\n    color: #ddd\n    top: none\n  font-size: 0.8em\n  text-align: center\n\n  a\n    color: #17f\n    \n    &:focus,\n    &:hover\n      color: #00f\n      cursor: pointer\n      text-decoration: underline\n\nfooter\n  margin-left: 10px\n  margin-bottom: 10px\n"
  },
  {
    "path": "test.md",
    "content": "## 测试\n\n# StuQ 程序员技能图谱\n官网 Web 页面地址：**[http://skill-map.stuq.org/](http://skill-map.stuq.org/)**，也可扫描页面下方二维码，以赞助形式获赠技能图谱纸质版。\n\n## 简介\n\nStuQ 程序员技能图谱是由 StuQ（[http://www.stuq.org/](http://www.stuq.org/)）发起的一个技术社区开源项目，志在汇集整理共建泛 IT 技术领域（云计算，大数据，运维，安全，开发语言，智能硬件等）及互联网产品、运营等领域学习技能图谱，帮助程序员梳理知识框架结构，并尝试提供路径指导和精华资源，方便技术人学习成长。\n\n目前技能图谱已有下面几个领域：\n\n|**领域**（点击预览）| **核心贡献者 ID** | **原创链接** |**学习资源**|\n|------- | ---- | ---- | ---- |\n|[**# Web 前端**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-FrontEndEngineer.md)|[@jayli（拔赤）](https://github.com/jayli/)｜阿里巴巴前端技术专家|[原创链接](https://github.com/jayli/jayli.github.com/issues/16)|[推荐](https://github.com/TeamStuQ/skill-map/issues/9)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-FrontEnd-by-StuQ.png)|\n| |[@Jackson Tian ](https://github.com/JacksonTian)｜阿里巴巴前端技术专家|[原创链接](https://github.com/JacksonTian/fks)|[推荐](https://github.com/TeamStuQ/skill-map/issues/9)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-FrontEnd-by-StuQ.png)|\n|[- 移动性能优化](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobilePerformanceOptimization.md)|[@刘恒兵（河伯）](https://github.com/herbertliu)｜腾讯前端技术专家、IvWeb 负责人|[原创链接](https://github.com/herbertliu/OMS)|[推荐](https://github.com/TeamStuQ/skill-map/issues/9)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-MobileOptimization-by-StuQ.png)|\n|[- HTML5 开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-HTML5.md)|[@Phodal（黄峰达）](https://github.com/Phodal)｜ThoughtWorks 咨询师|[原创链接]()|[推荐](https://github.com/TeamStuQ/skill-map/issues/76)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-HTML5-by-StuQ.png)|\n|[- Angular 2](https://github.com/TeamStuQ/skill-map/blob/master/data/map-AngularJS2.md)|[@汤桂川](https://github.com/lightningtgc)｜广发证券前端技术专家|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/9)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Angular2-by-StuQ.png)\n|[**# Server 后端**]()||||\n|[- 架构师](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Architect.md)|@沈剑｜58到家技术委员会主席／技术总监|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/53)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Architect-by-StuQ.png)\n|[- OpenResty](https://github.com/TeamStuQ/skill-map/blob/master/data/map-OpenResty.md)|[@温铭](https://github.com/moonbingbing)｜奇虎服务端架构师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/29)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-OpenResty-by-StuQ.png)\n|[- 直播技术](https://github.com/TeamStuQ/skill-map/blob/master/data/map-LiveTelecast.md)|[@李雨来](https://github.com/blacktear23)｜SpeedyCloud 迅达云技术 VP|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/55)｜[脑图]()\n|[- CDN 技术](https://github.com/TeamStuQ/skill-map/blob/master/data/map-CDN.md)|[@李孟](https://github.com/x8s)｜SpeedyCloud 迅达云首席架构师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/72)｜[脑图]()\n|[- DNS 排查](https://github.com/TeamStuQ/skill-map/blob/master/data/map-dns-troubleshoot.md)|[@李孟](https://github.com/x8s)｜SpeedyCloud 迅达云首席架构师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/72)｜[脑图]()\n|[**# 云计算**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-CloudComputing.md)|@费良宏｜AWS 首席云计算技术顾问|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/11)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-CloudComputing-by-StuQ.png)\n|- OpenStack|@夏艳｜UnitedStack 公共关系总监|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/19)｜脑图\n[- 容器 Container](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Container.md)|[@林帆 ](https://github.com/linfan)｜ThoughtWorks DevOps 咨询师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/20)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Container-by-StuQ.png)\n[- 微服务 MicroService](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Microservice.md)|[@王磊 ](https://github.com/wldandan)｜西安尚度元科技技术总监|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/23)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-MicroService-by-StuQ.png)\n|[**# 安全**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-SecurityEngineer.md)|[@余弦 ](https://github.com/evilcos) ｜知道创宇技术 VP|[原创链接](http://blog.knownsec.com/Knownsec_RD_Checklist/v3.0.html)|[推荐](https://github.com/TeamStuQ/skill-map/issues/13)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Security-by-StuQ.png)\n|[**# 智能运维**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-IntelligentDevOps.md)|[@Tanky Woo ](https://github.com/tankywoo)｜知道创宇资深运维工程师|[原创链接](http://blog.knownsec.com/2015/03/how-many-basic-skills-should-a-operation-and-maintenance-engineer-get/)|[推荐](https://github.com/TeamStuQ/skill-map/issues/10)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-IntelligentDevOps-by-StuQ.png)\n|[- DBA](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DBA.md)|[@杨一 ]()｜杭州有赞科技有限公司 DBA 专家|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/77)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-DBA-by-StuQ.png)\n|[**# 大数据**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-BigDataEngineer.md)|[@祝海林 ](https://github.com/allwefantasy)｜乐视云资深大数据工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/12)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-BigData-by-StuQ.png)\n|[- Hadoop 家族](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Hadoop.md)|[@张丹](http://blog.fens.me)｜况客创始人|[原创链接](http://blog.fens.me/series-hadoop-family/)|[推荐](https://github.com/TeamStuQ/skill-map/issues/22)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-Hadoop-by-StuQ.png)\n|[- 机器学习](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MachineLearning.md)|[@徐英凯](https://github.com/kevinhsu)｜闪银机器学习工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/26)｜脑图\n|[**# 测试**]()|||||\n|[- 移动无线测试](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileWirelessTesting.md)|[@陈晔 Monkey](https://github.com/monkeytest15)|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/15)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-MobileTesting-by-StuQ.png)\n|[**# 移动开发**]()|||||\n|[- iOS 开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-iOSDev.md)|[@唐巧](https://github.com/tangqiaoboy) ｜猿题库小猿搜题产品技术负责人|[原创链接](https://gist.github.com/tangqiaoboy/5fadd9ba398277680b87)|[推荐](https://github.com/TeamStuQ/skill-map/issues/14)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-iOSDev-by-StuQ.png)\n|[- Android App 开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-AndroidDev.md)|[@anly_jun](https://github.com/mingjunli) |[原创链接](http://www.jianshu.com/p/39c63eff3c36)|[推荐](https://github.com/TeamStuQ/skill-map/issues/85)｜脑图\n|[- Android ROM 开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-AndroidROMDev.md)|[@anly_jun](https://github.com/mingjunli) |[原创链接](http://www.jianshu.com/p/0a4a33e63338)|[推荐](https://github.com/TeamStuQ/skill-map/issues/85)｜脑图\n|[- Android 架构师](https://github.com/TeamStuQ/skill-map/blob/master/data/map-MobileDev-AndroidArchitect.md)|[@顾浩鑫（ASCE1885）](https://github.com/ASCE1885)｜ 平安金融科技移动研发工程师 |-|[推荐](https://github.com/TeamStuQ/skill-map/issues/85)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-AndroidArchitect-by-StuQ.png)\n|[**# 智能硬件**]()|||||\n|[- 嵌入式开发](https://github.com/TeamStuQ/skill-map/blob/master/data/map-EmbeddedEngineer.md)|[@Phodal（黄峰达）](https://github.com/phodal) ｜ThoughtWorks 咨询师|[原创链接](https://github.com/phodal/eks)|[推荐](https://github.com/TeamStuQ/skill-map/issues/21)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-EmbeddedEngineer-by-StuQ.png)\n|[**# 开发语言**](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Total.md)|[@吴坚 ](https://github.com/jamsonwoo)  ｜南航软件工程师|[原创链接](https://github.com/jamsonwoo/StuQ_skill-map)|[推荐](https://github.com/TeamStuQ/skill-map/issues/18)｜[脑图](https://github.com/TeamStuQ/skill-map/tree/master/data/designbyStuQ/png-ProgrammingLanguage-by-StuQ.png)\n|[- Golang](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Golang.md)|[@谢孟军 ](https://github.com/astaxie) ｜Apple 资深技术专家|[原创链接](https://github.com/astaxie/build-web-application-with-golang)|[推荐](https://github.com/TeamStuQ/skill-map/issues/17)｜脑图\n|[- Clojure](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Clojure.md)|[@Loretta ](https://github.com/lorettahe) ｜SwiftKey 软件工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/25)｜脑图\n|[- Python](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Python.md)|[@ZoomQuiet（大妈） ](https://github.com/ZoomQuiet) ｜猎豹移动技术专家|[原创链接](http://wiki.zoomquiet.io/pythonic/Path2Pythoneer)|[推荐](https://github.com/TeamStuQ/skill-map/issues/30)｜脑图\n|[- Haskell](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Haskell.md)|[@张淞 ](https://github.com/HaskellZhangSong) ｜网易杭州研究院高级开发工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/36)｜脑图\n|[- Node.js](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Nodejs.md)|[@桑世龙（i5ting） ](https://github.com/i5ting) ｜去哪儿网前端架构师|[原创链接](https://github.com/nodeonly/stack)|[推荐](https://github.com/TeamStuQ/skill-map/issues/35)｜脑图\n|[- Ruby](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Ruby.md)|[@张汉东（Alex） ](https://github.com/ZhangHanDong) |-|[推荐](https://github.com/TeamStuQ/skill-map/issues/40)｜脑图\n|[- Java](https://github.com/TeamStuQ/skill-map/blob/master/data/map-DevLang-Java.md)|[@Zhang Wei](https://github.com/zhangwei217245)|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/43)｜脑图\n|[**# 开发工具**]()||||||\n|[- Git](https://github.com/TeamStuQ/skill-map/blob/master/data/map-Git.md)|[@吴坚 ](https://github.com/jamsonwoo)  ｜南航软件工程师|-|[推荐](https://github.com/TeamStuQ/skill-map/issues/48)｜脑图\n\n\n以及**正在建设中**的领域：\n\n- 服务端开发\n- CTO\n- 分布式数据库开发\n- IoT 物联网\n- PHP 语言\n- Swift 语言\n- Objective-C 语言\n- C++ 语言\n- C# 语言\n\n欢迎**贡献**新领域技能图谱，**推荐**学习路径与资源（赠礼品），有任何改进意见和建议，也可以建立 issue 讨论或发送邮件至  Raymond@stuq.org。\n\n## 改进目标\n\n1. 继续细化各领域的技能节点\n2. 提供各领域的参考学习路径\n3. 推荐各知识点相关优质资源\n\n## 图谱 MarkDown 分级规范\n\n为了便于编辑和纠错更新，现统一图谱 MarkDown 文件**分级规范**如下：\n\n1. 根据内容考虑用\" #,##,### \"依次表示高级别主干分级\n2. 次级别分支用\" -,*,+ \"三种符号区分\n3. 所有“-”的优先级高于“*”\n4. 所有“*”的优先级高于“+”\n\n## 加入我们\n- 提交图谱：直接提交 Pull Request，或者发邮件给 Raymond@stuq.org\n- QQ群讨论：254521819，加群时请备注姓名+职业。加入后请修改群名片为姓名+职业\n- 微信群讨论：请加StuQ小助手（StuQxiaozhushou）并备注“技能图谱”，小助手会邀请您入群\n\n## 版本信息\n### v 0.2.0\n- IT 技术各主要领域基本覆盖\n\n### v 0.1.2\n- 云计算领域新增：OpenStack，容器技术\n- 移动开发领域新增：iOS 开发\n- 测试领域新增：移动无线测试\n- 智能硬件领域新增：嵌入式开发\n\n### v 0.1.1\n- StuQ 技能图谱第一版发布\n\n## 许可\n本技能图谱遵循 **[CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)** 协议。*转载请注明[出处](http://www.stuq.org/subject/skill-map/)。*\n\n最终解释权归 **StuQ** 所有。欢迎关注 StuQ 微信公众号。\n\n![StuQ 微信公众号](https://github.com/TeamStuQ/skill-map/blob/master/img/StuQ-QRCode-100X100.png)\n\n## 赞助声明\n\nStuQ 技能图谱项目接受企业或者个人的赞助，用以覆盖图谱编辑、设计、印刷和运营成本。\n\n赞助合作请发邮件至 Raymond@stuq.org 。\n\n## 获取纸质版技能图谱\n\n请扫描 StuQ 技能图谱微店地址二维码，以赞助形式获赠 StuQ 技能图谱纸质版。\n\n![StuQ 微店地址二维码](https://github.com/TeamStuQ/skill-map/blob/master/img/StuQWMall-QRCode-100X100.png)\n\n\n"
  }
]