This repo aim to show you what to learn on the way to excellence. And the knowledge hierarchy is helpful for writing your resume. It's a baby yet, any improvements will be appreciated!
In college, the scheduled classes shaped your way of learning, But after graduated, nobody telling you what to learn. You learned a lot, but in the meantime, you realized you know nothing. Because you don't have a knowledge hierarchy in your mind. This repo will(but not yet) show you a full clear view of programming technologies. Schedule your study plan with this hierarchy. Get charged before you out of battery :)
Please PR for hierarchy improving
c/c++
node
golang
java, groovy, scala
shell
type systems
paradigms
tool chains
haskell
etc.
queue, set, linked list, heap, stack, hash-table, trie, b tree, b+ tree, red-black tree etc.
dfs, bfs, quick sort, heap sort, binary search, dynamic programming, dijkstra, floyd, etc.
runtime(os, virtualization, interpreters, container..), design patterns, models(concurrency, memory, lock, epoll, nio, kqueue..), mechanisms(gc, transactional..), theories(CAP, etc), RFCs, etc
spring-boot, boost, express, vue, protobuf, zookeeper, hadoop, antlr, ionic, gtk, openGL, qt, etc.
relational(mysql..), document(mongodb..), time-serials(timescale..), key-value(redis..), graph(neo4j..), wild-column(cassandra..), event(event-store..), object-oriented(perst, ObjectDB..), fs, hard-disk, etc.
message-queue(rabbitmq, rocketmq, kafka..), etc.
tcp/ip, https, http2.0, sdn, bluetooth, etc.
c/s, b/s, p2p, distributed systems, decentralized systems, plugin, HA, micro services, serverless, faas, cloud infrastructure, etc.
methodologies, debugging, deployment, tools, testing, mainteance, performance, docs, CI/CD, security, monitoring, etc.
If you want to be an expert in blockchain, organize the knowledge pieces like following sheet.
level | domain specific techniques |
---|---|
Programming languages | c/c++, golang, solidity |
Data structure and algorithms | POW, POS, DPOS, PBFT, Merkle Tree, DAG, mining, Raft, Paxos |
Software engineering | os, fs, FLP Impossibility, CAP theorem |
Software frameworks | ethereum, bitcoin |
Database and storages | IPFS, Block DB(BigchainDB, etc) |
Middlewares | |
Networks | p2p |
Software architecture and solutions | state channels, payment channel, decentralized system |
Software development and quality assurance | asymmetric encryption |
Uncategorized |
Please pr for more expert knowledge hierarchy sheet
- There are many technique items in each level, each item should have a best intro/def resource link. ex.
C
, modify the link if you have better one.