{"id":15034691,"url":"https://github.com/tannergabriel/learning-go","last_synced_at":"2025-05-15T08:09:01.770Z","repository":{"id":37299599,"uuid":"249471287","full_name":"TannerGabriel/learning-go","owner":"TannerGabriel","description":"Projects, Algorithms and data structures implemented in Golang with explanations and links to further readings","archived":false,"fork":false,"pushed_at":"2025-04-13T00:52:34.000Z","size":556,"stargazers_count":634,"open_issues_count":1,"forks_count":129,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-14T12:18:15.986Z","etag":null,"topics":["go","golang","golang-application","golang-examples","golang-learning"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TannerGabriel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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},"funding":{"github":["TannerGabriel"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-03-23T15:37:02.000Z","updated_at":"2025-04-11T08:03:59.000Z","dependencies_parsed_at":"2024-04-18T01:30:30.176Z","dependency_job_id":"56d963cd-b5fd-4a45-9e29-460a8f89ed57","html_url":"https://github.com/TannerGabriel/learning-go","commit_stats":{"total_commits":195,"total_committers":5,"mean_commits":39.0,"dds":0.09743589743589742,"last_synced_commit":"988b5a29a29c72b4e6a760964bdecbe0d39b0fae"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TannerGabriel%2Flearning-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TannerGabriel%2Flearning-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TannerGabriel%2Flearning-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TannerGabriel%2Flearning-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TannerGabriel","download_url":"https://codeload.github.com/TannerGabriel/learning-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248877967,"owners_count":21176244,"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":["go","golang","golang-application","golang-examples","golang-learning"],"created_at":"2024-09-24T20:26:02.057Z","updated_at":"2025-04-14T12:18:21.567Z","avatar_url":"https://github.com/TannerGabriel.png","language":"Go","funding_links":["https://github.com/sponsors/TannerGabriel","https://www.buymeacoffee.com/gabrieltanner"],"categories":[],"sub_categories":[],"readme":"# Learning Golang\n\nLearning Golang provides hand-on examples, sample algorithm implementations, and real-world application examples for learning the basic and advanced features of the Go programming language. \n\n* [Basics](#Basics)\n* [Algorithms](#Algorithms)\n* [Data Structures](#Data-Structures)\n* [Beginner Programs](#Beginner-Programs)\n\n## Basics\n\n1. [Hello-World](https://github.com/TannerGabriel/learning-go/blob/master/basics/01-Hello-World/HelloWorld.go)\n2. [Variables-Datatypes](https://github.com/TannerGabriel/learning-go/tree/master/basics/02-Variables-Datatypes)\n    * [Variables](https://github.com/TannerGabriel/learning-go/blob/master/basics/02-Variables-Datatypes/Variables.go)\n    * [Constants](https://github.com/TannerGabriel/learning-go/blob/master/basics/02-Variables-Datatypes/Constants.go)\n    * [Datatypes](https://github.com/TannerGabriel/learning-go/blob/master/basics/02-Variables-Datatypes/Datatypes.go)\n    * [Converting-Datatypes](https://github.com/TannerGabriel/learning-go/blob/master/basics/02-Variables-Datatypes/ConvertingDatatypes.go)\n3. [Operators](https://github.com/TannerGabriel/learning-go/blob/master/basics/03-Operators/Operators.go)\n4. [Functions](https://github.com/TannerGabriel/learning-go/tree/master/basics/04-Functions)\n    * [Function-Declaration](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/FunctionDeclaration.go)\n    * [Function-With-Parameters](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/FunctionWithParameters.go)\n    * [Function-Return-Values](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/FunctionsReturnValue.go)\n    * [Anonymous-Functions](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/AnonymousFunctions.go)\n    * [Closure-Functions](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/ClosureFunctions.go)\n    * [Variadic-Functions](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/VariadicFunctions.go)\n    * [Deferred-Function-Calls](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/DeferredFunctionCalls.go)\n    * [Higher-Order-Functions](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/HigherOrderFunctions.go)\n5. [Control-Structures](https://github.com/TannerGabriel/learning-go/tree/master/basics/05-Control-Structures)\n    * [If-Else](https://github.com/TannerGabriel/learning-go/blob/master/basics/05-Control-Structures/IfElse.go)\n    * [Switch](https://github.com/TannerGabriel/learning-go/blob/master/basics/05-Control-Structures/Switch.go)\n6. [Loops](https://github.com/TannerGabriel/learning-go/tree/master/basics/06-Loops)\n    * [For-Loop](https://github.com/TannerGabriel/learning-go/blob/master/basics/06-Loops/ForLoop.go)\n    * [While-Loop](https://github.com/TannerGabriel/learning-go/blob/master/basics/06-Loops/WhileLoop.go)\n7. [Arrays](https://github.com/TannerGabriel/learning-go/tree/master/basics/07-Arrays)\n    * [Array-Declaration](https://github.com/TannerGabriel/learning-go/blob/master/basics/07-Arrays/Arrays.go)\n    * [Array-Iteration](https://github.com/TannerGabriel/learning-go/blob/master/basics/07-Arrays/ArrayIteration.go)\n    * [Copy-Array](https://github.com/TannerGabriel/learning-go/blob/master/basics/07-Arrays/CopyArray.go)\n8. [Slices](https://github.com/TannerGabriel/learning-go/blob/master/basics/08-Slices/Slices.go)\n9. [Maps](https://github.com/TannerGabriel/learning-go/blob/master/basics/09-Maps/Maps.go)\n10. [Struct](https://github.com/TannerGabriel/learning-go/tree/master/basics/10-Struct)\n    * [Struct-Declaration](https://github.com/TannerGabriel/learning-go/blob/master/basics/10-Struct/Struct.go)\n    * [Struct-Methods](https://github.com/TannerGabriel/learning-go/blob/master/basics/10-Struct/StructMethods.go)\n    * [Struct-Field-Tags](https://github.com/TannerGabriel/learning-go/blob/master/basics/10-Struct/StructFieldTags.go)\n    * [Nested-Struct](https://github.com/TannerGabriel/learning-go/blob/master/basics/10-Struct/NestedStruct.go)\n11. [Interfaces](https://github.com/TannerGabriel/learning-go/blob/master/basics/11-Interfaces/Interfaces.go)\n12. [Pointers](https://github.com/TannerGabriel/learning-go/blob/master/basics/12-Pointers/Pointers.go)\n13. [Concurrency](https://github.com/TannerGabriel/learning-go/tree/master/basics/13-Concurrency)\n    * [Goroutines](https://github.com/TannerGabriel/learning-go/blob/master/basics/13-Concurrency/Goroutines.go)\n    * [Goroutines-Wait](https://github.com/TannerGabriel/learning-go/blob/master/basics/13-Concurrency/GoroutinesWait.go)\n    * [Channel](https://github.com/TannerGabriel/learning-go/blob/master/basics/13-Concurrency/Channel.go)\n14. [Error-Handling](https://github.com/TannerGabriel/learning-go/tree/master/basics/14-Error-Handling)\n    * [Basic-Error-Handling](https://github.com/TannerGabriel/learning-go/blob/master/basics/14-Error-Handling/ErrorHandling.go)\n    * [Defer-Panic-Recover](https://github.com/TannerGabriel/learning-go/blob/master/basics/14-Error-Handling/DeferPanicRecover.go)\n15. [Files-Directories](https://github.com/TannerGabriel/learning-go/tree/master/basics/15-Files-Directory)\n    * [Files](https://github.com/TannerGabriel/learning-go/blob/master/basics/15-Files-Directory/Files.go)\n    * [Directories](https://github.com/TannerGabriel/learning-go/blob/master/basics/15-Files-Directory/Directories.go)\n16. [String-Manipulation](https://github.com/TannerGabriel/learning-go/blob/master/basics/16-String-Manipulation/String.go)\n17. [Regex](https://github.com/TannerGabriel/learning-go/blob/master/basics/17-Regex/Regex.go)\n18. [Testing](https://github.com/TannerGabriel/learning-go/tree/master/basics/18-Testing)\n19. [Webserver](https://github.com/TannerGabriel/learning-go/blob/master/basics/19-Webserver/Server.go)\n\n## Algorithms\n\n* **Math**\n  * [Factorial](algorithms/math/Factorial) \n  * [Fibonacci Number](algorithms/math/Fibonacci)\n  * [Primality Test](algorithms/math/PrimalityTest)\n  * [Euclidean Algorithm](algorithms/math/EuclideanAlgorithm)\n  * [Sieve of Eratosthenes](algorithms/math/SieveOfEratosthenes)\n  * [Is Power of Two](algorithms/math/IsPowerOfTwo)\n  * [Pascal's Triangle](algorithms/math/PascalTriangle)\n  * [Radian \u0026 Degree](algorithms/math/Radian)\n  * [Fast Powering](algorithms/math/FastPowering)\n  * [Square Root](algorithms/math/SquareRoot)\n* **Search**\n  * [Binary Search](algorithms/search/BinarySearch) \n  * [Interpolation Search](algorithms/search/InterpolationSearch) \n  * [Jump Search](algorithms/search/JumpSearch) \n  * [Linear Search](algorithms/search/LinearSearch) \n* **Sorting**\n  * [Bubble Sort](algorithms/sorting/BubbleSort) \n  * [Counting Sort](algorithms/sorting/CountingSort) \n  * [Heap Sort](algorithms/sorting/HeapSort) \n  * [Insertion Sort](algorithms/sorting/InsertionSort) \n  * [Merge Sort](algorithms/sorting/MergeSort) \n  * [Quick Sort](algorithms/sorting/QuickSort) \n  * [Radix Sort](algorithms/sorting/RadixSort) \n  * [Selection Sort](algorithms/sorting/SelectionSort) \n  * [Shell Sort](algorithms/sorting/ShellSort) \n* **String**\n  * [Hamming Distance](algorithms/string/HammingDistance) \n  * [Levenshtein Distance](algorithms/string/LevenshteinDistance)\n\n## Data Structures\n\n* [LinkedList](data-structures/LinkedList)\n\n## Beginner Programs\n\n* [Email Validator](beginner-programs/Email-Validator)\n* [File Upload](beginner-programs/FileUpload)\n* [Job Scheduling](beginner-programs/JobScheduling)\n* [MongoDB CRUD](beginner-programs/MongoDB-CRUD)\n* [MySQL CRUD](beginner-programs/MySQL-CRUD)\n* [Nats Connection Example](beginner-programs/NatsConnectionExample)\n* [Postgres CRUD](beginner-programs/Postgres-CRUD)\n* [Pyramid of Stars](beginner-programs/PyramidOfStars)\n* [Random Password Generator](beginner-programs/RandomPasswordGenerator)\n* [Scanner](beginner-programs/Scanner)\n* [Todo List](beginner-programs/Todo-List)\n* [Webscraper](beginner-programs/WebScraper)\n* [Sending an Email over SMTP](beginner-programs/SendEmail)\n* [GRPC MongoDB Cobra CRUD application](beginner-programs/gRPC-CRUD)\n\n## Advanced Programs\n\n* [Fiber Postgres CRUD](advanced-programs/FiberPostgresCRUD)\n* [Tello Drone](advanced-programs/TelloDrone)\n* [Grafana Sensor Visualization](advanced-programs/GrafanaSensorVisualization)\n* [GraphQL-CRUD](advanced-programs/GraphQL-CRUD)\n* [Websockets Chat](advanced-programs/WebsocketsChat)\n* [Prometheus HTTP Server](advanced-programs/PrometheusHTTPServer)\n\n\n## Author\n\n[Gabriel Tanner](https://gabrieltanner.org/)\n\n## Support me\n\n\u003ca href=\"https://www.buymeacoffee.com/gabrieltanner\" target=\"_blank\"\u003e\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\" alt=\"Buy Me A Coffee\" style=\"height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;\" \u003e\u003c/a\u003e\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE) file for details","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftannergabriel%2Flearning-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftannergabriel%2Flearning-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftannergabriel%2Flearning-go/lists"}