- Notifications
You must be signed in to change notification settings - Fork5
This repo aim to show you what to learn on the way to excellence.
License
songtianyi/landscape-of-programming
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
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++nodegolangjava, groovy, scalashell type systemsparadigmstool chainshaskellrustetc.
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.
About
This repo aim to show you what to learn on the way to excellence.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.