All Projects → songtianyi → landscape-of-programming

songtianyi / landscape-of-programming

Licence: BSD-3-Clause License
This repo aim to show you what to learn on the way to excellence.

Projects that are alternatives of or similar to landscape-of-programming

Index
Metarhia educational program index 📖
Stars: ✭ 2,045 (+2952.24%)
Mutual labels:  engineering, programming, architecture, data-structures
top-software-engineering-articles
Collection of top articles about great software engineering practices.
Stars: ✭ 45 (-32.84%)
Mutual labels:  engineering, programming, architecture
Abstractionlayers
Abstraction Layers
Stars: ✭ 16 (-76.12%)
Mutual labels:  engineering, programming, architecture
semver-generator
Semantic version generator using git commit keywords and overrides
Stars: ✭ 26 (-61.19%)
Mutual labels:  development, programming
Reverse Engineering Tutorials
Some Reverse Engineering Tutorials for Beginners
Stars: ✭ 217 (+223.88%)
Mutual labels:  engineering, programming
311
Interactive Web Development
Stars: ✭ 33 (-50.75%)
Mutual labels:  development, programming
Design Patterns For Humans
An ultra-simplified explanation to design patterns
Stars: ✭ 32,376 (+48222.39%)
Mutual labels:  engineering, architecture
Diccionario-JavaScript
project-dictionary.gitbooks.io/diccionario-javascript/content/
Stars: ✭ 13 (-80.6%)
Mutual labels:  development, programming
node-red-contrib-FIWARE official
FIWARE-Node-Red integration supporting NGSI-LD
Stars: ✭ 14 (-79.1%)
Mutual labels:  engineering, programming
cs-sakaryauniversity
Sakarya Üniversitesi'nde okuduğum süre boyunca karşıma çıkan tüm ödevler, ders notları ve çıkmış sınav soruları (All the assignments, lecture notes and exams)
Stars: ✭ 133 (+98.51%)
Mutual labels:  engineering, programming
Competitive-Programming-Codes
Includes codes from coding competitions and contests over the internet. Languages:- Python3 and C++
Stars: ✭ 14 (-79.1%)
Mutual labels:  programming, solutions
Certification
Certificates of Qualification in Software Engineering
Stars: ✭ 41 (-38.81%)
Mutual labels:  engineering, programming
awesome-onboarding
😎 A curated list of awesome resources for software engineer onboarding
Stars: ✭ 21 (-68.66%)
Mutual labels:  engineering, development
Letters
Письма к студентам курса
Stars: ✭ 107 (+59.7%)
Mutual labels:  engineering, programming
the-c-programming-language-2nd-edition-solutions
Solutions to the exercises in the book "The C Programming Language" (2nd edition) by Brian W. Kernighan and Dennis M. Ritchie. This book is also referred to as K&R.
Stars: ✭ 245 (+265.67%)
Mutual labels:  programming, solutions
Freecad
This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler. Issues are managed on our own bug tracker at https://www.freecadweb.org/tracker
Stars: ✭ 10,366 (+15371.64%)
Mutual labels:  engineering, architecture
CC33Z
Curso de Ciência da Computação
Stars: ✭ 50 (-25.37%)
Mutual labels:  programming, databases
System design
Preparation links and resources for system design questions
Stars: ✭ 7,170 (+10601.49%)
Mutual labels:  engineering, architecture
awesome-blockchain
A curated list of blockchain resources for developers
Stars: ✭ 106 (+58.21%)
Mutual labels:  development, programming
theBookOfNoah
Everything ive learned developing web applications
Stars: ✭ 22 (-67.16%)
Mutual labels:  programming, databases

Landscape of programming

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++ node golang java, groovy, scala shell type systems paradigms tool chains haskell rustetc.

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.

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
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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].