{"id":13469960,"url":"https://github.com/gyuho/learn","last_synced_at":"2025-04-08T04:15:59.255Z","repository":{"id":37359355,"uuid":"42114286","full_name":"gyuho/learn","owner":"gyuho","description":"learn","archived":false,"fork":false,"pushed_at":"2025-03-25T15:26:22.000Z","size":74112,"stargazers_count":1322,"open_issues_count":3,"forks_count":152,"subscribers_count":66,"default_branch":"main","last_synced_at":"2025-04-01T03:35:32.488Z","etag":null,"topics":["algorithm","learning","tutorial"],"latest_commit_sha":null,"homepage":"https://gyuho.dev","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gyuho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2015-09-08T13:36:08.000Z","updated_at":"2025-03-29T13:07:08.000Z","dependencies_parsed_at":"2024-06-18T18:43:52.365Z","dependency_job_id":"1c8251d9-8436-4da8-969b-61f2ec166e90","html_url":"https://github.com/gyuho/learn","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gyuho%2Flearn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gyuho%2Flearn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gyuho%2Flearn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gyuho%2Flearn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gyuho","download_url":"https://codeload.github.com/gyuho/learn/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247773719,"owners_count":20993639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["algorithm","learning","tutorial"],"created_at":"2024-07-31T16:00:19.832Z","updated_at":"2025-04-08T04:15:59.210Z","avatar_url":"https://github.com/gyuho.png","language":"Shell","readme":"I am an endless, active learner. I embrace challenges beyond my current abilities\nto broaden my knowledge the most. I want to know a little about a lot,\nand a lot about little: my favorites are C++ and Go.\n\n**The best way to learn is to teach what you have learned to other people.**\nI tried [YouTube channel](https://www.youtube.com/channel/UCWzSgIp_DYRQnEsJuH32Fww),\nwhich was *hard to maintain*. So I decided to write my own textbook.\n**I am still learning, and I may say things out of ignorance.**\nEvery post is *working in progress*, non-committal on a timeline.\nThe point is to review and improve over time.\nThis is a **_personal white-board_** where I *scribble* anything,\n*organize* my code, learning experiences.\n\nI appreciate any kind of *feedback* or *suggestions*.\nPlease email \u003ca href=\"mailto:gyuhox@gmail.com\" target=\"_blank\"\u003egyuhox@gmail.com\u003c/a\u003e, [`issues`](https://github.com/gyuho/learn/issues),\nor [`pull request`](https://github.com/gyuho/learn/pulls).\n\n\u003cbr\u003e\u003chr\u003e\n### Contents\n\n- [Articles](#articles)\n- [Unix, linux](#unix-linux)\n- [Assembly](#assembly)\n- [C](#c)\n- [C++](#c-1)\n- [Go](#go)\n- [Python](#python)\n- [Computer systems](#computer-systems)\n- [Security systems](#security-systems)\n- [Database systems](#database-systems)\n- [Linguistics, natural language processing](#linguistics-natural-language-processing)\n- [Mathematics, statistics](#mathematics-statistics)\n- [Data structures and algorithms](#data-structures-and-algorithms)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Articles\n\n- [etcd: distributed key-value store with grpc/http2](https://github.com/gyuho/learn/tree/master/doc/etcd_distributed_key_value_store_with_grpc_http2)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Unix, linux\n\nUnix is essential in software development.\n\n\u003e This is the Unix philosophy: Write programs \n\u003e that do one thing and do it well.\n\u003e\n\u003e *Doug McIlroy*\n\n- [*linux setup*](https://github.com/gyuho/learn/tree/master/doc/linux_setup)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Assembly\n\n\u003e An assembly language (or assembler language) is a low-level programming\n\u003e language for a computer, or other programmable device, in which there is a\n\u003e very strong (generally one-to-one) correspondence between the language and\n\u003e the architecture's machine code instructions. Each assembly language is\n\u003e specific to a particular computer architecture, in contrast to most\n\u003e high-level programming languages, which are generally portable across\n\u003e multiple architectures, but require interpreting or compiling.\n\u003e\n\u003e [*Assembly language*](https://en.wikipedia.org/wiki/Assembly_language) *by Wikipedia*\n\n- [*Assembly: introduction*](https://github.com/gyuho/learn/tree/master/doc/assembly_introduction)\n- [*Assembly: arithmetics, if*](https://github.com/gyuho/learn/tree/master/doc/assembly_arithmetics_if)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## C\n\nC is a small language. And it helps you better understand\nhow system works in low-level. It's still being used everywhere.\nI only wish I had more time to learn more about C.\n\n- [*C: introduction, printf, scanf*](https://github.com/gyuho/learn/tree/master/doc/c_introduction_printf_scanf)\n- [*C: type, variable, operator*](https://github.com/gyuho/learn/tree/master/doc/c_type_variable_operator)\n- [*C: logic, loop*](https://github.com/gyuho/learn/tree/master/doc/c_logic_loop)\n- [*C: array, pointer*](https://github.com/gyuho/learn/tree/master/doc/c_array_pointer)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## C++\n\n[**_Is learning C++ still worthwhile?_**](http://www.quora.com/Is-learning-C++-still-worthwhile)\nYes! I really want to learn more about C++:\n\n\u003e C++ is one of the most widely used programming languages\n\u003e in the world. Well-written C++ programs are fast and efficient.\n\u003e The language is more flexible than other languages because you\n\u003e can use it to create a wide range of apps—from fun and exciting\n\u003e games, to high-performance scientific software, to device drivers,\n\u003e embedded programs, and Windows client apps. For more than 20 years,\n\u003e C++ has been used to solve problems like these and many others.\n\u003e\n\u003e [*C/C++ Language and Standard Libraries*](https://msdn.microsoft.com/en-us/library/hh279654.aspx)\n\u003e *by Microsoft*\n\n- [*C++: introduction*](https://github.com/gyuho/learn/tree/master/doc/cpp_introduction)\n- [*C++: type, variable*](https://github.com/gyuho/learn/tree/master/doc/cpp_type_variable)\n- [*C++: logic, loop*](https://github.com/gyuho/learn/tree/master/doc/cpp_logic_loop)\n- [*C++: character, string, pointer, memory*](https://github.com/gyuho/learn/tree/master/doc/cpp_character_string_pointer_memory)\n- [*C++: function*](https://github.com/gyuho/learn/tree/master/doc/cpp_function)\n- [*C++: input, output*](https://github.com/gyuho/learn/tree/master/doc/cpp_input_output)\n- [*C++: struct, union*](https://github.com/gyuho/learn/tree/master/doc/cpp_struct_union)\n- [*C++: class, object*](https://github.com/gyuho/learn/tree/master/doc/cpp_class_object)\n- [*C++: STL*](https://github.com/gyuho/learn/tree/master/doc/cpp_stl)\n- [*C++: concurrency*](https://github.com/gyuho/learn/tree/master/doc/cpp_concurrency)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Go\n\nI like [*Go*](https://golang.org/) for its simplicity: less design \nconcerns to consider and less frameworks to learn. Plus I love its great communities.\nGo is not perfect but really good at [*doing less, enabling more*](https://blog.golang.org/open-source).\nIt's a great introductory language between *Python* and *C++*.\n**I want to know a lot about [C++](https://en.wikipedia.org/wiki/C%2B%2B)\nand [Go](https://golang.org/) to build my foundation.**\nThis will help my transition to other languages or frameworks if needed.\n\n- [*Go: introduction*](https://github.com/gyuho/learn/tree/master/doc/go_introduction)\n- [*Go: type, variable*](https://github.com/gyuho/learn/tree/master/doc/go_type_variable)\n- [*Go: logic, loop*](https://github.com/gyuho/learn/tree/master/doc/go_logic_loop)\n- [*Go: character, string*](https://github.com/gyuho/learn/tree/master/doc/go_character_string)\n- [*Go: strings, regex*](https://github.com/gyuho/learn/tree/master/doc/go_strings_regex)\n- [*Go: sequence*](https://github.com/gyuho/learn/tree/master/doc/go_sequence)\n- [**_Go: function, method, pointer, nil, map, slice_**](https://github.com/gyuho/learn/tree/master/doc/go_function_method_pointer_nil_map_slice)\n- [*Go: struct*](https://github.com/gyuho/learn/tree/master/doc/go_struct)\n- [**_Go: interface_**](https://github.com/gyuho/learn/tree/master/doc/go_interface)\n- [**_Go: os, io_**](https://github.com/gyuho/learn/tree/master/doc/go_os_io)\n- [**_Go: concurrency_**](https://github.com/gyuho/learn/tree/master/doc/go_concurrency)\n- [*Go: sort, algorithm*](https://github.com/gyuho/learn/tree/master/doc/go_sort_algorithm)\n- [*Go: random*](https://github.com/gyuho/learn/tree/master/doc/go_random)\n- [*Go: time*](https://github.com/gyuho/learn/tree/master/doc/go_time)\n- [*Go: archive, compress, encoding, decoding*](https://github.com/gyuho/learn/tree/master/doc/go_archive_compress_encoding_decoding)\n- [*Go: hash, crypto, tls*](https://github.com/gyuho/learn/tree/master/doc/go_hash_crypto_tls)\n- [**_Go: network_**](https://github.com/gyuho/learn/tree/master/doc/go_network)\n- [*Go: sql*](https://github.com/gyuho/learn/tree/master/doc/go_sql)\n- [*Go: boltdb*](https://github.com/gyuho/learn/tree/master/doc/go_boltdb)\n- [*Go: key/value store, redis*](https://github.com/gyuho/learn/tree/master/doc/go_key_value_store_redis)\n- [*Go: leveldb*](https://github.com/gyuho/learn/tree/master/doc/go_leveldb)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Python\n\nPython is probably fast enough for many of what we need to do today.\nAnd it's relatively easy to learn and use, with rich ecosystems in\ndata science, web frameworks, scripting, and many others.\n\n- [*Python: introduction*](https://github.com/gyuho/learn/tree/master/doc/python_introduction)\n- [*Python: type, variable*](https://github.com/gyuho/learn/tree/master/doc/python_type_variable)\n- [*Python: logic, loop*](https://github.com/gyuho/learn/tree/master/doc/python_logic_loop)\n- [*Python: character, string*](https://github.com/gyuho/learn/tree/master/doc/python_character_string)\n- [*Python: sequence*](https://github.com/gyuho/learn/tree/master/doc/python_sequence)\n- [*Python: dictionary*](https://github.com/gyuho/learn/tree/master/doc/python_dictionary)\n- [*Python: function*](https://github.com/gyuho/learn/tree/master/doc/python_function)\n- [*Python: pointer, memory*](https://github.com/gyuho/learn/tree/master/doc/python_pointer_memory)\n- [*Python: argument, flag*](https://github.com/gyuho/learn/tree/master/doc/python_argument_flag)\n- [*Python: os, io*](https://github.com/gyuho/learn/tree/master/doc/python_os_io)\n- [*Python: sort*](https://github.com/gyuho/learn/tree/master/doc/python_sort)\n- [*Python: random*](https://github.com/gyuho/learn/tree/master/doc/python_random)\n- [*Python: time*](https://github.com/gyuho/learn/tree/master/doc/python_time)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Computer systems\n\nIt's very important to understand hardware and low-level programming.\nI believe this will help a lot when you wonder why your high level program\nis not working or not performing well. I will take as much time as \nI need―nothing like cramming 1,200 page computer systems book in 12 weeks.\n\n- [*Overview of computer architecture*](https://github.com/gyuho/learn/tree/master/doc/overview_of_computer_architecture)\n- [*What Every Programmer Should Know About Memory (2007)*](https://github.com/gyuho/learn/tree/master/doc/what_every_programmer_should_know_about_memory_2007)\n- [*Virtual memory*](https://github.com/gyuho/learn/tree/master/doc/virtual_memory)\n- [*Endianness*](https://github.com/gyuho/learn/tree/master/doc/endianness)\n- [*Bitwise operation*](https://github.com/gyuho/learn/tree/master/doc/bitwise_operation)\n- [*Segmentation fault, debug*](https://github.com/gyuho/learn/tree/master/doc/segmentation_fault_debug)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Security systems\n\n[*MIT course*](http://css.csail.mit.edu/6.858/2014/schedule.html) explains that\n*security achieves confidentiality, integrity, availability―policy*. And the goal is\nto make sure there is no way for adversary within threat model to violate this policy.\n\n- [*the matasano crypto challenges: set 1*](https://github.com/gyuho/learn/tree/master/doc/the_matasano_crypto_challenge_set_1)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Database systems\n\nWe are *generating* and *consuming* vast amounts of data in unprecendented\npace in human history. Database systems are the workhorses of our data \nanalysis applications.\n\n- [*mysql, postgresql, redshift*](https://github.com/gyuho/learn/tree/master/doc/mysql_postgresql_redshift)\n- [*Python: sql*](https://github.com/gyuho/learn/tree/master/doc/python_sql)\n- [*Python: redis*](https://github.com/gyuho/learn/tree/master/doc/python_redis)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Linguistics, natural language processing\n\nI love linguistics, and its computational applications.\n\n- [**_Go: string similarity_**](https://github.com/gyuho/learn/tree/master/doc/go_string_similarity)\n- [*Go: segment*](https://github.com/gyuho/learn/tree/master/doc/go_segment)\n- [*Go: spell check*](https://github.com/gyuho/learn/tree/master/doc/go_spell_check)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Mathematics, statistics\n\nMost prominent solutions in Computer Science often come from mathematics. \nArbitrary, unrelated things can fit together when you have mathematical\nbackgrounds. Statistics helps solve intractable problems through approximation \nalgorithms, machine learning algorithms, etc.\n\n- [*Go: bandit algorithms, adversarial bandits*](https://github.com/gyuho/learn/tree/master/doc/go_bandit_algorithms_adversarial_bandits)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n\n## Data structures and algorithms\n\n- [*Computational complexity, NP*](https://github.com/gyuho/learn/tree/master/doc/computational_complexity_np)\n- [*Recursion*](https://github.com/gyuho/learn/tree/master/doc/recursion)\n- [*Linked list*](https://github.com/gyuho/learn/tree/master/doc/linked_list)\n- [**_Binary search tree_**](https://github.com/gyuho/learn/tree/master/doc/binary_search_tree)\n- [**_Go: heap, priority queue_**](https://github.com/gyuho/learn/tree/master/doc/go_heap_priority_queue)\n- [**_Go: red black tree_**](https://github.com/gyuho/learn/tree/master/doc/go_red_black_tree)\n- [**_Go: b-tree_**](https://github.com/gyuho/learn/tree/master/doc/go_b_tree)\n- [**_Go: graph, interface_**](https://github.com/gyuho/learn/tree/master/doc/go_graph_interface)\n- [**_Go: graph, traversal_**](https://github.com/gyuho/learn/tree/master/doc/go_graph_traversal)\n- [**_Go: graph, shortest path_**](https://github.com/gyuho/learn/tree/master/doc/go_graph_shortest_path)\n- [**_Go: graph, topological sort_**](https://github.com/gyuho/learn/tree/master/doc/go_graph_topological_sort)\n- [**_Go: graph, minimum spanning tree_**](https://github.com/gyuho/learn/tree/master/doc/go_graph_minimum_spanning_tree)\n- [**_Go: graph, strongly connected components_**](https://github.com/gyuho/learn/tree/master/doc/go_graph_strongly_connected_components)\n\n[↑ top](#contents)\n\u003cbr\u003e\u003cbr\u003e\n\n","funding_links":[],"categories":["Go","algorithm","Shell","Others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgyuho%2Flearn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgyuho%2Flearn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgyuho%2Flearn/lists"}