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 techniques. Schedule your study plan with this hierarchy. Get charged before you out of battery :)
Please PR for improving the hierarchy
c/c++
node
golang
java, groovy, scala
shell
type systems
paradigms
tool chains
haskell
rust
etc.
queue, set, linked list, heap, stack, hash-table, trie, b tree, b+ tree, red-black tree, splay tree, R tree etc.
dfs, bfs, quick sort, heap sort, binary search, dynamic programming, dijkstra, floyd, hash(crc32, md5), math(number theory, linear algebra, 3D-math) 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, 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, routers, switchs, vlan, vxlan, firewalls, 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.
hierarchy | 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 appropriate intro/def resource link. ex.
C
. Modify the link if you have better one.