{"id":20444794,"url":"https://github.com/kingdido999/awesome-programming-concepts","last_synced_at":"2026-05-28T13:03:17.702Z","repository":{"id":84120458,"uuid":"116549842","full_name":"kingdido999/awesome-programming-concepts","owner":"kingdido999","description":"A curated list of awesome programming concepts.","archived":false,"fork":false,"pushed_at":"2018-08-01T18:44:46.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-31T16:47:49.037Z","etag":null,"topics":["awesome-list","programming"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kingdido999.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-07T08:31:01.000Z","updated_at":"2018-08-01T22:16:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"8274f49c-4458-4b4c-b120-7eda9a9086fc","html_url":"https://github.com/kingdido999/awesome-programming-concepts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kingdido999/awesome-programming-concepts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingdido999%2Fawesome-programming-concepts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingdido999%2Fawesome-programming-concepts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingdido999%2Fawesome-programming-concepts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingdido999%2Fawesome-programming-concepts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kingdido999","download_url":"https://codeload.github.com/kingdido999/awesome-programming-concepts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingdido999%2Fawesome-programming-concepts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33609238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome-list","programming"],"created_at":"2024-11-15T10:09:03.811Z","updated_at":"2026-05-28T13:03:17.673Z","avatar_url":"https://github.com/kingdido999.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Awesome Programming Concepts [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\nA curated list of awesome explanations of programming concepts.\n\n- [Programming](#programming)\n- [Version Control](#version-control)\n\n## Programming\n\n### Channel\n\n\u003e You can imagine a channel in programming like a channel of water, such as a stream or a river. If you put something like a rubber duck or a boat into a stream, it will travel downstream to the end of the river.\n\n[Source](https://doc.rust-lang.org/stable/book/second-edition/ch16-02-message-passing.html)\n\n### Mutex\n\n\u003e For a real-world metaphor of a mutex, imagine a panel discussion at a conference with only one microphone. Before a panelist may speak, they have to ask or signal that they would like to use the microphone. Once they get the microphone, they may talk for as long as they would like, then hand the microphone to the next panelist who requests to speak. If a panelist forgets to hand the microphone off when they’re finished with it, no one else is able to speak. If management of the shared microphone goes wrong, the panel would not work as planned!\n\n[Source](https://doc.rust-lang.org/book/second-edition/ch16-03-shared-state.html#mutexes-allow-access-to-data-from-one-thread-at-a-time)\n\n### Reference Counting\n\n\u003e Imagine it like a TV in a family room. When one person enters to watch TV, they turn it on. Others can come into the room and watch the TV. When the last person leaves the room, they turn the TV off because it’s no longer being used. If someone turns the TV off while others are still watching it, there’d be uproar from the remaining TV watchers!\n\n[Source](https://doc.rust-lang.org/book/second-edition/ch15-04-rc.html)\n\n## Version Control\n\n### Merge vs Rebase\n\n\u003e Merge: “Tell me your version of the story, I’ll tell you mine, and then we’ll try to piece something together out of them” \n\n\u003e Rebase: “Tell me your version of the story, and I will interrupt your every sentence to tell you where you’re wrong”\n\n[Source](https://twitter.com/dan_abramov/status/952572767584604160?s=09)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkingdido999%2Fawesome-programming-concepts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkingdido999%2Fawesome-programming-concepts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkingdido999%2Fawesome-programming-concepts/lists"}