Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tannergabriel/learning-go

Projects, Algorithms and data structures implemented in Golang with explanations and links to further readings
https://github.com/tannergabriel/learning-go

go golang golang-application golang-examples golang-learning

Last synced: 27 days ago
JSON representation

Projects, Algorithms and data structures implemented in Golang with explanations and links to further readings

Awesome Lists containing this project

README

        

# Learning Golang

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

* [Basics](#Basics)
* [Algorithms](#Algorithms)
* [Data Structures](#Data-Structures)
* [Beginner Programs](#Beginner-Programs)

## Basics

1. [Hello-World](https://github.com/TannerGabriel/learning-go/blob/master/basics/01-Hello-World/HelloWorld.go)
2. [Variables-Datatypes](https://github.com/TannerGabriel/learning-go/tree/master/basics/02-Variables-Datatypes)
* [Variables](https://github.com/TannerGabriel/learning-go/blob/master/basics/02-Variables-Datatypes/Variables.go)
* [Constants](https://github.com/TannerGabriel/learning-go/blob/master/basics/02-Variables-Datatypes/Constants.go)
* [Datatypes](https://github.com/TannerGabriel/learning-go/blob/master/basics/02-Variables-Datatypes/Datatypes.go)
* [Converting-Datatypes](https://github.com/TannerGabriel/learning-go/blob/master/basics/02-Variables-Datatypes/ConvertingDatatypes.go)
3. [Operators](https://github.com/TannerGabriel/learning-go/blob/master/basics/03-Operators/Operators.go)
4. [Functions](https://github.com/TannerGabriel/learning-go/tree/master/basics/04-Functions)
* [Function-Declaration](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/FunctionDeclaration.go)
* [Function-With-Parameters](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/FunctionWithParameters.go)
* [Function-Return-Values](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/FunctionsReturnValue.go)
* [Anonymous-Functions](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/AnonymousFunctions.go)
* [Closure-Functions](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/ClosureFunctions.go)
* [Variadic-Functions](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/VariadicFunctions.go)
* [Deferred-Function-Calls](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/DeferredFunctionCalls.go)
* [Higher-Order-Functions](https://github.com/TannerGabriel/learning-go/blob/master/basics/04-Functions/HigherOrderFunctions.go)
5. [Control-Structures](https://github.com/TannerGabriel/learning-go/tree/master/basics/05-Control-Structures)
* [If-Else](https://github.com/TannerGabriel/learning-go/blob/master/basics/05-Control-Structures/IfElse.go)
* [Switch](https://github.com/TannerGabriel/learning-go/blob/master/basics/05-Control-Structures/Switch.go)
6. [Loops](https://github.com/TannerGabriel/learning-go/tree/master/basics/06-Loops)
* [For-Loop](https://github.com/TannerGabriel/learning-go/blob/master/basics/06-Loops/ForLoop.go)
* [While-Loop](https://github.com/TannerGabriel/learning-go/blob/master/basics/06-Loops/WhileLoop.go)
7. [Arrays](https://github.com/TannerGabriel/learning-go/tree/master/basics/07-Arrays)
* [Array-Declaration](https://github.com/TannerGabriel/learning-go/blob/master/basics/07-Arrays/Arrays.go)
* [Array-Iteration](https://github.com/TannerGabriel/learning-go/blob/master/basics/07-Arrays/ArrayIteration.go)
* [Copy-Array](https://github.com/TannerGabriel/learning-go/blob/master/basics/07-Arrays/CopyArray.go)
8. [Slices](https://github.com/TannerGabriel/learning-go/blob/master/basics/08-Slices/Slices.go)
9. [Maps](https://github.com/TannerGabriel/learning-go/blob/master/basics/09-Maps/Maps.go)
10. [Struct](https://github.com/TannerGabriel/learning-go/tree/master/basics/10-Struct)
* [Struct-Declaration](https://github.com/TannerGabriel/learning-go/blob/master/basics/10-Struct/Struct.go)
* [Struct-Methods](https://github.com/TannerGabriel/learning-go/blob/master/basics/10-Struct/StructMethods.go)
* [Struct-Field-Tags](https://github.com/TannerGabriel/learning-go/blob/master/basics/10-Struct/StructFieldTags.go)
* [Nested-Struct](https://github.com/TannerGabriel/learning-go/blob/master/basics/10-Struct/NestedStruct.go)
11. [Interfaces](https://github.com/TannerGabriel/learning-go/blob/master/basics/11-Interfaces/Interfaces.go)
12. [Pointers](https://github.com/TannerGabriel/learning-go/blob/master/basics/12-Pointers/Pointers.go)
13. [Concurrency](https://github.com/TannerGabriel/learning-go/tree/master/basics/13-Concurrency)
* [Goroutines](https://github.com/TannerGabriel/learning-go/blob/master/basics/13-Concurrency/Goroutines.go)
* [Goroutines-Wait](https://github.com/TannerGabriel/learning-go/blob/master/basics/13-Concurrency/GoroutinesWait.go)
* [Channel](https://github.com/TannerGabriel/learning-go/blob/master/basics/13-Concurrency/Channel.go)
14. [Error-Handling](https://github.com/TannerGabriel/learning-go/tree/master/basics/14-Error-Handling)
* [Basic-Error-Handling](https://github.com/TannerGabriel/learning-go/blob/master/basics/14-Error-Handling/ErrorHandling.go)
* [Defer-Panic-Recover](https://github.com/TannerGabriel/learning-go/blob/master/basics/14-Error-Handling/DeferPanicRecover.go)
15. [Files-Directories](https://github.com/TannerGabriel/learning-go/tree/master/basics/15-Files-Directory)
* [Files](https://github.com/TannerGabriel/learning-go/blob/master/basics/15-Files-Directory/Files.go)
* [Directories](https://github.com/TannerGabriel/learning-go/blob/master/basics/15-Files-Directory/Directories.go)
16. [String-Manipulation](https://github.com/TannerGabriel/learning-go/blob/master/basics/16-String-Manipulation/String.go)
17. [Regex](https://github.com/TannerGabriel/learning-go/blob/master/basics/17-Regex/Regex.go)
18. [Testing](https://github.com/TannerGabriel/learning-go/tree/master/basics/18-Testing)
19. [Webserver](https://github.com/TannerGabriel/learning-go/blob/master/basics/19-Webserver/Server.go)

## Algorithms

* **Math**
* [Factorial](algorithms/math/Factorial)
* [Fibonacci Number](algorithms/math/Fibonacci)
* [Primality Test](algorithms/math/PrimalityTest)
* [Euclidean Algorithm](algorithms/math/EuclideanAlgorithm)
* [Sieve of Eratosthenes](algorithms/math/SieveOfEratosthenes)
* [Is Power of Two](algorithms/math/IsPowerOfTwo)
* [Pascal's Triangle](algorithms/math/PascalTriangle)
* [Radian & Degree](algorithms/math/Radian)
* [Fast Powering](algorithms/math/FastPowering)
* [Square Root](algorithms/math/SquareRoot)
* **Search**
* [Binary Search](algorithms/search/BinarySearch)
* [Interpolation Search](algorithms/search/InterpolationSearch)
* [Jump Search](algorithms/search/JumpSearch)
* [Linear Search](algorithms/search/LinearSearch)
* **Sorting**
* [Bubble Sort](algorithms/sorting/BubbleSort)
* [Counting Sort](algorithms/sorting/CountingSort)
* [Heap Sort](algorithms/sorting/HeapSort)
* [Insertion Sort](algorithms/sorting/InsertionSort)
* [Merge Sort](algorithms/sorting/MergeSort)
* [Quick Sort](algorithms/sorting/QuickSort)
* [Radix Sort](algorithms/sorting/RadixSort)
* [Selection Sort](algorithms/sorting/SelectionSort)
* [Shell Sort](algorithms/sorting/ShellSort)
* **String**
* [Hamming Distance](algorithms/string/HammingDistance)
* [Levenshtein Distance](algorithms/string/LevenshteinDistance)

## Data Structures

* [LinkedList](data-structures/LinkedList)

## Beginner Programs

* [Email Validator](beginner-programs/Email-Validator)
* [File Upload](beginner-programs/FileUpload)
* [Job Scheduling](beginner-programs/JobScheduling)
* [MongoDB CRUD](beginner-programs/MongoDB-CRUD)
* [MySQL CRUD](beginner-programs/MySQL-CRUD)
* [Nats Connection Example](beginner-programs/NatsConnectionExample)
* [Postgres CRUD](beginner-programs/Postgres-CRUD)
* [Pyramid of Stars](beginner-programs/PyramidOfStars)
* [Random Password Generator](beginner-programs/RandomPasswordGenerator)
* [Scanner](beginner-programs/Scanner)
* [Todo List](beginner-programs/Todo-List)
* [Webscraper](beginner-programs/WebScraper)
* [Sending an Email over SMTP](beginner-programs/SendEmail)
* [GRPC MongoDB Cobra CRUD application](beginner-programs/gRPC-CRUD)

## Advanced Programs

* [Fiber Postgres CRUD](advanced-programs/FiberPostgresCRUD)
* [Tello Drone](advanced-programs/TelloDrone)
* [Grafana Sensor Visualization](advanced-programs/GrafanaSensorVisualization)
* [GraphQL-CRUD](advanced-programs/GraphQL-CRUD)
* [Websockets Chat](advanced-programs/WebsocketsChat)
* [Prometheus HTTP Server](advanced-programs/PrometheusHTTPServer)

## Author

[Gabriel Tanner](https://gabrieltanner.org/)

## Support me

Buy Me A Coffee

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE) file for details