Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

This repo aim to show you what to learn on the way to excellence.

License

NotificationsYou must be signed in to change notification settings

songtianyi/landscape-of-programming

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!

中文English

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 :)

Knowledge hierarchy for programming

Please PR for improving the hierarchy

Computer architecture
Programming languages

c/c++nodegolangjava, groovy, scalashell type systemsparadigmstool chainshaskellrustetc.

Data structure and algorithms

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.

Software engineering

runtime(os, virtualization, interpreters, container..), design patterns, models(concurrency, memory, lock, epoll, nio, kqueue..), mechanisms(gc, transactional..), theories(CAP, etc), RFCs, etc

Software frameworks

spring-boot, boost, express, vue, protobuf, ionic, gtk, openGL, qt, etc.

Database and storages

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.

Middlewares

message-queue(rabbitmq, rocketmq, kafka..), etc.

Networks

tcp/ip, https, http2.0, sdn, bluetooth, routers, switchs, vlan, vxlan, firewalls, etc.

Software architecture and solutions

c/s, b/s, p2p, distributed systems, decentralized systems, plugin, HA, micro services, serverless, faas, cloud infrastructure, etc.

Software development and quality assurance

methodologies, debugging, deployment, tools, testing, mainteance, performance, docs, CI/CD, security, monitoring, etc.

Uncategorized

Domain specific knowledge Sheet

Example

If you want to be an expert in blockchain, organize the knowledge pieces like following sheet.

hierarchydomain specific techniques
Programming languagesc/c++, golang, solidity
Data structure and algorithmsPOW, POS, DPOS, PBFT, Merkle Tree, DAG, mining, Raft, Paxos
Software engineeringos, fs, FLP Impossibility, CAP theorem
Software frameworksethereum, bitcoin
Database and storagesIPFS, Block DB(BigchainDB, etc)
Middlewares
Networksp2p
Software architecture and solutionsstate channels, payment channel, decentralized system
Software development and quality assuranceasymmetric encryption
Uncategorized
Domain specific or job specific knowledge sheet

Please pr for more expert knowledge hierarchy sheet

Contribution guidelines

  • 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.

[8]ページ先頭

©2009-2025 Movatter.jp