---
layout: post
title: 程序员技能图谱和练级攻略
description: 嗨网收集了部分领域的技能图谱,本篇旨在汇集、整理、共建泛 IT 技术领学习技能图谱,帮助程序员梳理知识框架结构,并尝试提供路径指导和精华资源
keywords: 程序员技能图谱,程序员练级攻略
author: admin
date: 2023-03-23 13:29
category: 网络技术
tags: 教程
---

程序员需要不断学习,嗨网收集了部分领域的技能图谱,详见嗨网相关网页。本篇旨在汇集、整理、共建泛 IT 技术领域(人工智能,前端开发,移动开发,云计算,大数据,架构,运维,安全,后端开发,测试,智能硬件等)及互联网产品、运营等领域学习技能图谱,帮助程序员梳理知识框架结构,并尝试提供路径指导和精华资源,方便技术人学习成长为相关专家。


## 入门

- [ ] [Teach Yourself Programming in Ten Years](https://liuyandong.com/2017/10/25/122/)
- [ ] [The Key To Accelerating Your Coding Skills](http://blog.thefirehoseproject.com/posts/learn-to-code-and-be-self-reliant/)
- [ ] [What are some of the most basic things every programmer should know?](https://www.quora.com/What-are-some-of-the-most-basic-things-every-programmer-should-know)

## 程序员修养

- 英文能力
- 问问题的能力
- [ ] [How To Ask Questions The Smart Way](http://www.catb.org/~esr/faqs/smart-questions.html),[简体中文版](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)
- [ ] [The XY Problem](http://xyproblem.info/)
- 写代码的修养
- [ ] [重构:改善既有代码的设计](https://book.douban.com/subject/4262627/)
- [ ] [修改代码的艺术](https://book.douban.com/subject/2248759/)
- [ ] [代码整洁之道](https://book.douban.com/subject/4199741/)
- [ ] [程序员职业素养](https://book.douban.com/subject/11614538/)
- Code Review
- [ ] [Code Review Best Practices](https://medium.com/palantir/code-review-best-practices-19e02780015f)
- [ ] [How Google Does Code Review](https://dzone.com/articles/how-google-does-code-review)
- 安全防范
- [ ] [OWASP](https://owasp.org/)
- [ ] [OWASP Top Ten](https://owasp.org/www-project-top-ten/)
- [ ] [防御性编程](https://en.wikipedia.org/wiki/Defensive_programming)
- 软件工程和上线
- [ ] [Google软件测试之道](https://book.douban.com/subject/25742200/)
- [ ] [Serverside checklist](https://github.com/mtdvio/going-to-production/blob/master/serverside-checklist.md)

## 专业基础篇

### 编程语言

#### Java

- [ ] [Effectic Java](https://book.douban.com/subject/27047716/)
- [ ] [Java并发编程实战](https://book.douban.com/subject/10484692/)
- [ ] [Java性能权威指南](https://book.douban.com/subject/26740520/)
- [ ] [深入理解Java虚拟机(第3版)](https://book.douban.com/subject/34907497/)
- [ ] [Java编程思想](https://book.douban.com/subject/2130190/)
- [ ] [精通Spring 4.x](https://book.douban.com/subject/26952826/)
- [ ] [设计模式](https://book.douban.com/subject/1052241/)

#### C/C++

- [ ] [C程序设计语言](https://book.douban.com/subject/1139336/)
- [ ] [C语言程序设计现代方法](https://book.douban.com/subject/2280547/)
- [ ] [C++ Primer 中文版(第 5 版)](https://book.douban.com/subject/25708312/)
- [ ] [Effective C++](https://book.douban.com/subject/5387403/)
- [ ] [More Effective C++(中文版](https://book.douban.com/subject/5908727/)
- [ ] [深度探索C++对象模型](https://book.douban.com/subject/10427315/)
- [ ] [Bjarne Stroustrup's FAQ(中文版)](http://www.stroustrup.com/bsfaqcn.html)

#### Go

- [ ] [Go by Example](https://gobyexample.com/)
- [ ] [Go 101](https://go101.org/article/101.html)
- [ ] [The Go Programming Language](https://book.douban.com/subject/26337545/)
- [ ] [Effective Go](https://golang.org/doc/effective_go.html)
- [ ] [Go精华文章列表](https://github.com/golang/go/wiki/Articles)

### 理论学科

- [ ] [算法](https://book.douban.com/subject/10432347/)
- [ ] [算法图解](https://book.douban.com/subject/26979890/)
- [ ] [算法导论](https://book.douban.com/subject/20432061/)
- [ ] [编程珠玑](https://book.douban.com/subject/3227098/)
- [ ] [LeetCode](https://leetcode.com/)
- [Data Structure Visualizations](https://www.cs.usfca.edu/~galles/visualization/Algorithms.html)
- [ ] [数据结构与算法分析](https://book.douban.com/subject/1139426/)
- [ ] [数据库系统概念](https://book.douban.com/subject/1929984/)
- [ ] [现代操作系统](https://book.douban.com/subject/3852290/)
- [ ] [计算机网络(第4版)](https://book.douban.com/subject/1391207/)
- [ ] [计算机程序的构造和解释](https://book.douban.com/subject/1148282/)
- [ ] [编译原理](https://book.douban.com/subject/3296317/)

### 系统知识

- [ ] [深入理解计算机系统](https://book.douban.com/subject/5333562/)
- [ ] [UNIX环境高级编程](https://book.douban.com/subject/1788421/)
- [ ] [UNIX网络编程](https://book.douban.com/subject/1500149/)
- [ ] [TCP/IP详解 卷1:协议](https://book.douban.com/subject/1088054/)
- [ ] [Linux C编程一站式学习](https://book.douban.com/subject/4141733/)
- [ ] [TCP/IP网络编程](https://book.douban.com/subject/25911735/)
- [ ] [图解TCP/IP(第5版)](https://book.douban.com/subject/24737674/)
- [ ] [The TCP/IP Guide](http://www.tcpipguide.com/free/index.htm)

### 软件设计

- [ ] [编程范式](https://en.wikipedia.org/wiki/Programming_paradigm)
- [ ] [Six programming paradigms that will change how you think about coding](https://www.ybrikman.com/writing/2014/04/09/six-programming-paradigms-that-will/)
- [ ] [Programming Paradigms forDummies: What EveryProgrammer Should Know](https://info.ucl.ac.be/~pvr/VanRoyChapter.pdf)
- [ ] [领域驱动设计](https://book.douban.com/subject/26819666/)
- [ ] [UNIX编程艺术](https://book.douban.com/subject/1467587/)
- [ ] [The Clean Architecture](https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html)
- [ ] [The Twelve-Factor App](https://12factor.net/)
- [ ] [避免过度设计](https://medium.com/@rdsubhas/10-modern-software-engineering-mistakes-bc67fbef4fc8)
- [ ] [Instagram Engineering’s 3 rules to a scalable cloud application architecture](https://medium.com/@DataStax/instagram-engineerings-3-rules-to-a-scalable-cloud-application-architecture-c44afed31406)
- [ ] [How to Design a Good API & Why it Matters](https://www.infoq.com/presentations/effective-api-design)
- [ ] [The Problem With Logging](https://blog.codinghorror.com/the-problem-with-logging/)
- [ ] [Concurrent Programming for Scalable Web Architectures](http://berb.github.io/diploma-thesis/community/index.html)

## 高手成长篇

### Linux系统内存和网络

- #### Linux

- [ ] [Linux Insides](https://github.com/0xAX/linux-insides)

- [ ] [LWN’s kernel page](http://lwn.net/Kernel/Index/)

- [ ] [从安卓角度理解Linux](http://learnlinuxconcepts.blogspot.com/2014/10/this-blog-is-to-help-those-students-and.html)

- [ ] [Linux内核文档](https://www.kernel.org/doc/)

- [ ] [IBM红皮书](https://lenovopress.com/redp4285.pdf)

- [ ] [Linux Performance](http://www.brendangregg.com/linuxperf.html)

- [ ] [Optimizing web servers for high throughput and low latency](https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency/)

- #### 内存

- [ ] [What Every Programmer Should Know About Memory](https://lwn.net/Articles/250967/)

- [ ] [Memory Barriers: a Hardware View for Software Hackers](http://irl.cs.ucla.edu/~yingdi/web/paperreading/whymb.2010.06.07c.pdf)

- [ ] [x86-TSO: A Rigorous and Usable Programmer’s Model for x86 Multiprocessors](https://www.cl.cam.ac.uk/~pes20/weakmemory/cacm.pdf)

- [ ] [ptmalloc](http://www.malloc.de/en/)

- [ ] [Google 的内存分配管理模块](https://github.com/gperftools/gperftools)

- [ ] [C Dynamic Memory Allocation](https://en.wikipedia.org/wiki/C_dynamic_memory_allocation#Thread-caching_malloc_(tcmalloc))

- [ ] [ptmalloc,tcmalloc和jemalloc内存分配策略研究](https://owent.net/2013/867.html)

- [ ] [内存优化总结:ptmalloc、tcmalloc和jemalloc](http://www.cnhalo.net/2016/06/13/memory-optimize/)

- [ ] [Scalable memory allocation using jemalloc](https://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919)

- [ ] [Decreasing RAM Usage by 40% Using jemalloc with Python & Celery](https://zapier.com/engineering/celery-python-jemalloc/)

- #### 计算机网络

- [ ] [计算机网络(第5版)](https://book.douban.com/subject/10510747/)

- [ ] [Computer Network Design](http://www.site.uottawa.ca/~shervin/courses/ceg4185/lectures/)

- [ ] [Computer Network Tutorials](https://www.geeksforgeeks.org/computer-network-tutorials/)

- #### 网络调优

- [ ] [Linux Advanced Routing & Traffic Control](http://lartc.org/)

- [ ] [Red Hat Enterprise Linux Network Performance Tuning Guide](https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf)

- [ ] [awesome-pcaptools](https://github.com/caesar0301/awesome-pcaptools)

- [ ] [Making Linux TCP Fast](https://netdevconf.org/1.2/papers/bbr-netdev-1.2.new.new.pdf)

- [ ] [Monitoring and Tuning the Linux Networking Stack: Receiving Data](https://blog.packagecloud.io/eng/2016/06/22/monitoring-tuning-linux-networking-stack-receiving-data/)

- [ ] 网络协议相关 RFC

- [ ] [Gitbook - HTTP/2 详解](https://legacy.gitbook.com/book/ye11ow/http2-explained/details)

### [异步 IO 和 Lock-Free 编程](https://time.geekbang.org/column/article/9851)

- 异步IO

- [ ] [C10K问题](https://en.wikipedia.org/wiki/C10k_problem)
- [ ] [Thousands of Threads and Blocking I/O](https://www.slideshare.net/e456/tyma-paulmultithreaded1)
- [ ] [Scalable IO in Java - Doug Lea](http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf)
- [ ] [Boost application performance using asynchronous I/O](https://developer.ibm.com/technologies/linux/articles/l-async/)
- [ ] [**Lazy Asynchronous I/O For Event-Driven Servers**](https://www.usenix.org/legacy/event/usenix04/tech/general/full_papers/elmeleegy/elmeleegy_html/html.html)
- [ ] [Windows I/O Completion Ports](https://docs.microsoft.com/en-us/windows/win32/fileio/i-o-completion-ports), [IO Processing](https://flylib.com/books/en/4.491.1.85/1/)
- [ ] [Fast portable non-blocking network programming with Libevent](http://www.wangafu.net/~nickm/libevent-book/)
- [ ] [Libevent 深入浅出](https://aceld.gitbooks.io/libevent/content/)
- [ ] [Libuv Design Overview](http://docs.libuv.org/en/v1.x/design.html)
- Reactor模式:
- [ ] [Understanding Reactor Pattern: Thread-Based and Event-Driven](https://dzone.com/articles/understanding-reactor-pattern-thread-based-and-eve)
- [ ] [Reactor Pattern](https://www.dre.vanderbilt.edu/~schmidt/PDF/Reactor2-93.pdf)
- [ ] [Reactor Pattern Part 1 - Applications with Blocking I/O](http://venkateshcm.com/2014/04/Reactor-Pattern-Part-1-Non-blocking-I-O/)

- Lock-Free
- [ ] [Dr.Dobb’s: Lock-Free Data Structures](http://www.drdobbs.com/lock-free-data-structures/184401865)
- [ ] [Andrei Alexandrescu: Lock-Free Data Structures](https://erdani.com/publications/cuj-2004-10.pdf)
- [ ] [Is Parallel Programming Hard, And, If So, What Can You Do About It?](https://www.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html)
- [ ] [Non-blocking algorithm](https://en.wikipedia.org/wiki/Non-blocking_algorithm)
- [ ] [Read-copy-update](https://en.wikipedia.org/wiki/Read-copy-update)
- [ ] [Seqlock](https://en.wikipedia.org/wiki/Seqlock)
- [ ] [Implementing Lock-Free Queues](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.53.8674&rep=rep1&type=pdf)
- [ ] [Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms](http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf)

[More links](https://time.geekbang.org/column/article/9851)

### Java 底层

- #### 字节码相关

- [ ] [Introduction to Java Bytecode](https://dzone.com/articles/introduction-to-java-bytecode)

- [ ] [IBM Java bytecode](https://www.ibm.com/developerworks/library/it-haggar_bytecode/index.html)

- [ ] [Java Bytecode and JVMTI Examples](https://github.com/jon-bell/bytecode-examples)

- [ ] 字节码lib:[asmtools](https://wiki.openjdk.java.net/display/CodeTools/asmtools), [Byte Buddy](https://bytebuddy.net/), [jitescript](https://github.com/qmx/jitescript), [bitescript](https://github.com/headius/bitescript)

- [ ] [Java Instrumentation API](https://stackoverflow.com/questions/11898566/tutorials-about-javaagents)

- [ ] [Java Code Geeks: Java Agents](https://www.javacodegeeks.com/2015/09/java-agents.html), [https://github.com/toptal/jvm-monitoring-agent](https://github.com/toptal/jvm-monitoring-agent)

- [ ] [使用 Byte Buddy,便捷地创建 Java Agent](https://www.infoq.cn/article/Easily-Create-Java-Agents-with-ByteBuddy/)

- [ ] [Java Agent 做监控](http://www.stagemonitor.org/)

- #### JVM

- [ ] [The Java® VirtualMachine SpecificationJava SE 8 Edition](https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf)

- [ ] [JVM Anatomy Quarks](https://shipilev.net/jvm/anatomy-quarks/)

- [ ] [**JSR 133: Java**TM **Memory Model and Thread Specification Revision**](https://www.jcp.org/en/jsr/detail?id=133)

- [ ] [The Java Memory Model](http://www.cs.umd.edu/~pugh/java/memoryModel/)

- [ ] [Java内存模型实现](http://gee.cs.oswego.edu/dl/jmm/cookbook.html)

- [ ] [Using JDK 9 Memory Order Modes](http://gee.cs.oswego.edu/dl/html/j9mm.html)

- [ ] [The Garbage Collection Handbook](https://book.douban.com/subject/6809987/)

- [ ] [**Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide**](https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/)

- [ ] [Quick Tips for Fast Code on the JVM](https://gist.github.com/djspiewak/464c11307cabc80171c90397d4ec34ef)

### 数据库

- #### 关系型数据库

- [ ] [MySQL 官方文档](https://dev.mysql.com/doc/)
- [ ] [高性能MySQL](https://book.douban.com/subject/23008813/)
- [ ] [MySQL技术内幕](https://book.douban.com/subject/24708143/)
- [ ] [MySQL Internals Manual](https://dev.mysql.com/doc/internals/en/)
- [ ] [数据库索引设计与优化](https://book.douban.com/subject/26419771/)
- [ ] [MySQL索引背后的数据结构及算法原理](http://blog.codinglabs.org/articles/theory-of-mysql-index.html)
- [ ] [awesome-mysql](https://shlomi-noach.github.io/awesome-mysql/)
- [ ] [Booking.com: Evolution of MySQL System Design](https://www.percona.com/live/mysql-conference-2015)
- [ ] [Tracking the Money — Scaling Financial Reporting at Airbnb](https://medium.com/airbnb-engineering/tracking-the-money-scaling-financial-reporting-at-airbnb-6d742b80f040)
- [ ] [Why Uber Engineering Switched from Postgres to MySQL](https://eng.uber.com/postgres-to-mysql-migration/)
- [ ] [MySQL sharding approaches?](https://stackoverflow.com/questions/5541421/mysql-sharding-approaches)
- [ ] [How to Scale Big Data Applications](https://www.percona.com/sites/default/files/presentations/How%20to%20Scale%20Big%20Data%20Applications.pdf)

- #### NoSQL

- [ ] [Introduction to NoSQL • Martin Fowler](https://youtu.be/qI_g07C_Q5I)

- [ ] [NoSQL Databases: a Survey and Decision Guidance](https://medium.com/baqend-blog/nosql-databases-a-survey-and-decision-guidance-ea7823a822d#.nhzop4d23)

- [ ] [No Relation: The Mixed Blessings of Non-Relational Databases](http://ianvarley.com/UT/MR/Varley_MastersReport_Full_2009-08-07.pdf)

- [ ] [Visual Guide to NoSQL Systems](http://blog.nahurst.com/visual-guide-to-nosql-systems)

- [ ] [SQL vs. NoSQL Databases: What’s the Difference?](https://www.upwork.com/hiring/data/sql-vs-nosql-databases-whats-the-difference/)

- [ ] [Salesforce: SQL or NoSQL](https://engineering.salesforce.com/sql-or-nosql-9eaf1d92545b)

[More links](https://time.geekbang.org/column/article/10301)

### 分布式架构
- [ ] [分布式系统架构的冰与火](https://time.geekbang.org/column/article/1411)

#### 分布式架构入门
- [ ] [Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html)
- [ ] [Scalability, Availability & Stability Patterns](https://www.slideshare.net/jboner/scalability-availability-stability-patterns)
- [ ] [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [ ] [An Introduction to Distributed Systems](https://github.com/aphyr/distsys-class)
- [ ] [拜占庭将军问题 Byzantine fault](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)
- [ ] [CAP](https://en.wikipedia.org/wiki/CAP_theorem)
- [ ] [A Brief Tour of FLP Impossibility](https://www.the-paper-trail.org/post/2008-08-13-a-brief-tour-of-flp-impossibility/)
- [ ] [8 条荒谬的分布式假设](https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing)
- [ ] [CAP Twelve Years Later: How the "Rules" Have Changed](https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed/)
- [ ] [Base: An Acid Alternative](https://queue.acm.org/detail.cfm?id=1394128)
- [ ] [Eventually Consistent - Revisited](https://www.allthingsdistributed.com/2008/12/eventually_consistent.html)

### 微服务
- [ ] [程序员练级攻略:微服务](https://time.geekbang.org/column/article/11116)

### 容器化和自动化运维
- [ ] [程序员练级攻略:容器化和自动化运维](https://time.geekbang.org/column/article/11665)

### 机器人学习和人工智能
- [ ] [程序员练级攻略:机器学习和人工智能](https://time.geekbang.org/column/article/11669)

### 前端基础和底层原理
- [ ] [程序员练级攻略:前端基础和底层原理](https://time.geekbang.org/column/article/12271)

### 前端新能优化和框架

### UI 和 UX

另一份清单:
[coding-interview-university](https://github.com/jwasham/coding-interview-university)