程序员技能图谱和练级攻略
程序员需要不断学习,嗨网收集了部分领域的技能图谱,详见嗨网相关网页。本篇旨在汇集、整理、共建泛 IT 技术领域(人工智能,前端开发,移动开发,云计算,大数据,架构,运维,安全,后端开发,测试,智能硬件等)及互联网产品、运营等领域学习技能图谱,帮助程序员梳理知识框架结构,并尝试提供路径指导和精华资源,方便技术人学习成长为相关专家。
入门
- [ ] Teach Yourself Programming in Ten Years
- [ ] The Key To Accelerating Your Coding Skills
- [ ] What are some of the most basic things every programmer should know?
程序员修养
- 英文能力
- 问问题的能力
- 写代码的修养
- [ ] 重构:改善既有代码的设计
- [ ] 修改代码的艺术
- [ ] 代码整洁之道
- [ ] 程序员职业素养
- Code Review
- 安全防范
- [ ] OWASP
- [ ] OWASP Top Ten
- [ ] 防御性编程
- 软件工程和上线
- [ ] Google软件测试之道
- [ ] Serverside checklist
专业基础篇
编程语言
Java
- [ ] Effectic Java
- [ ] Java并发编程实战
- [ ] Java性能权威指南
- [ ] 深入理解Java虚拟机(第3版)
- [ ] Java编程思想
- [ ] 精通Spring 4.x
- [ ] 设计模式
C/C++
- [ ] C程序设计语言
- [ ] C语言程序设计现代方法
- [ ] C++ Primer 中文版(第 5 版)
- [ ] Effective C++
- [ ] More Effective C++(中文版
- [ ] 深度探索C++对象模型
- [ ] Bjarne Stroustrup's FAQ(中文版)
Go
- [ ] Go by Example
- [ ] Go 101
- [ ] The Go Programming Language
- [ ] Effective Go
- [ ] Go精华文章列表
理论学科
- [ ] 算法
- [ ] 算法图解
- [ ] 算法导论
- [ ] 编程珠玑
- [ ] LeetCode
- Data Structure Visualizations
- [ ] 数据结构与算法分析
- [ ] 数据库系统概念
- [ ] 现代操作系统
- [ ] 计算机网络(第4版)
- [ ] 计算机程序的构造和解释
- [ ] 编译原理
系统知识
- [ ] 深入理解计算机系统
- [ ] UNIX环境高级编程
- [ ] UNIX网络编程
- [ ] TCP/IP详解 卷1:协议
- [ ] Linux C编程一站式学习
- [ ] TCP/IP网络编程
- [ ] 图解TCP/IP(第5版)
- [ ] The TCP/IP Guide
软件设计
- [ ] 编程范式
- [ ] Six programming paradigms that will change how you think about coding
- [ ] Programming Paradigms forDummies: What EveryProgrammer Should Know
- [ ] 领域驱动设计
- [ ] UNIX编程艺术
- [ ] The Clean Architecture
- [ ] The Twelve-Factor App
- [ ] 避免过度设计
- [ ] Instagram Engineering’s 3 rules to a scalable cloud application architecture
- [ ] How to Design a Good API & Why it Matters
- [ ] The Problem With Logging
- [ ] Concurrent Programming for Scalable Web Architectures
高手成长篇
Linux系统内存和网络
-
Linux
-
[ ] Linux Insides
-
[ ] 从安卓角度理解Linux
-
[ ] Linux内核文档
-
[ ] IBM红皮书
-
[ ] Optimizing web servers for high throughput and low latency
-
内存
-
[ ] x86-TSO: A Rigorous and Usable Programmer’s Model for x86 Multiprocessors
-
[ ] ptmalloc
-
[ ] Google 的内存分配管理模块
-
[ ] Decreasing RAM Usage by 40% Using jemalloc with Python & Celery
-
计算机网络
-
[ ] 计算机网络(第5版)
-
网络调优
-
[ ] Red Hat Enterprise Linux Network Performance Tuning Guide
-
[ ] Monitoring and Tuning the Linux Networking Stack: Receiving Data
-
[ ] 网络协议相关 RFC
异步 IO 和 Lock-Free 编程
-
异步IO
-
[ ] C10K问题
-
[ ] Fast portable non-blocking network programming with Libevent
-
[ ] Libevent 深入浅出
-
Reactor模式:
-
Lock-Free
-
[ ] Is Parallel Programming Hard, And, If So, What Can You Do About It?
-
[ ] Read-copy-update
-
[ ] Seqlock
-
[ ] Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms
Java 底层
-
字节码相关
-
[ ] 字节码lib:asmtools, Byte Buddy, jitescript, bitescript
-
[ ] Java Code Geeks: Java Agents, https://github.com/toptal/jvm-monitoring-agent
-
[ ] Java Agent 做监控
-
JVM
-
[ ] JSR 133: JavaTM Memory Model and Thread Specification Revision
-
[ ] Java内存模型实现
-
[ ] Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide
数据库
-
关系型数据库
-
[ ] MySQL 官方文档
-
[ ] 高性能MySQL
-
[ ] MySQL技术内幕
-
[ ] 数据库索引设计与优化
-
[ ] awesome-mysql
-
[ ] Tracking the Money — Scaling Financial Reporting at Airbnb
-
NoSQL
-
[ ] No Relation: The Mixed Blessings of Non-Relational Databases
分布式架构
- [ ] 分布式系统架构的冰与火
分布式架构入门
- [ ] Scalable Web Architecture and Distributed Systems
- [ ] Scalability, Availability & Stability Patterns
- [ ] The System Design Primer
- [ ] An Introduction to Distributed Systems
- [ ] 拜占庭将军问题 Byzantine fault
- [ ] CAP
- [ ] A Brief Tour of FLP Impossibility
- [ ] 8 条荒谬的分布式假设
- [ ] CAP Twelve Years Later: How the "Rules" Have Changed
- [ ] Base: An Acid Alternative
- [ ] Eventually Consistent - Revisited
微服务
- [ ] 程序员练级攻略:微服务
容器化和自动化运维
机器人学习和人工智能
前端基础和底层原理
前端新能优化和框架
UI 和 UX
另一份清单: coding-interview-university