Description
In this course, you will learn :
- The ultimate all-inclusive course.
- For both new and experienced developers.
- A university professor teaches the course.
- From fundamental to advanced concepts.
- Concurrency, channels, and benchmarking
- Testing, error handling, and documentation
- Hands-on activities with solutions
- Gain access to a valuable codebase.
- This programme has been tried, tested, and proven.
- Lifetime course access was taught to over 2.65 million students.
- You can learn at your own pace.
- Complete satisfaction is guaranteed.
Syllabus :
1. Your development environment
- The terminal
- Bash on windows
- Shell / bash commands
- Installing Go
- Go modules - introduction
- Go workspace
- Environment variables
- Intro to IDE's
- VS Code IDE
- Using go get to get course code
- IDE's
- Go commands
- Github repos
- Github explored
- Package management
- Go modules overview
- Creating a go module
- Adding a dependency
- Upgrading dependencies
2. Variables, values, & type
- Hello world
- Introduction to packages
- Short declaration operator
- The var keyword
- Exploring type
- Zero value
- The fmt package
- Creating your own type
- Conversion, not casting
3. Programming fundamentals
- Bool type
- How computers work
- Numeric types
- String type
- Numeral systems
- Constants
- Iota
- Bit shifting
4. Control flow
- Understanding control flow
- Loop - init, condition, post
- Loop - nesting loops
- Loop - for statement
- Loop - break & continue
- Loop - printing ascii
- Conditional - if statement
- Conditional - if, else if, else
- Loop, conditional, modulus
- Conditional - switch statement
- Conditional - switch statement documentation
- Conditional logic operators
5. Grouping data
- Array
- Slice - composite literal
- Slice - for range
- Slice - slicing a slice
- Slice - append to a slice
- Slice - deleting from a slice
- Slice - make
- Slice - multi-dimensional slice
- Map - introduction
- Map - add element & range
- Map - delete
6. Structs
- Struct
- Embedded structs
- Reading documentation
- Anonymous structs
- Housekeeping
7. Functions
- Syntax
- Variadic parameter
- Unfurling a slice
- Defer
- Methods
- Interfaces & polymorphism
- Anonymous func
- func expression
- Returning a func
- Callback
- Closure
- Recursion
8. Pointers
- What are pointers?
- When to use pointers
- Method sets
9. Application
- JSON documentation
- JSON marshal
- JSON unmarshal
- Writer interface
- Sort
- Sort custom
- bcrypt
10. Concurrency
- Concurrency vs parallelism
- WaitGroup
- Method sets revisited
- Documentation
- Race condition
- Mutex
- Atomic
11. Channels
- Understanding channels
- Directional channels
- Using channels
- Range
- Select
- Comma ok idiom
- Fan in
- Fan out
- Context
12. Error handling
- Understanding
- Checking errors
- Printing and logging
- Recover
- Errors with info
13. Writing documentation
- go doc
- godoc
- godoc.org
- Writing documentation
14. Testing & benchmarking
- Table tests
- Example tests
- Golint
- Benchmark
- Coverage
- Benchmark examples
- Review
15. Your Development Environment
- Go Editors
- WebStorm & Atom.io
- Creating Your First Project
- Hello World with Webstorm
- The Go Command & Documentation
- Understanding Github
- Using Github
16. Computer Fundamentals
- How Computers Work
- Github Update Command
- Numeral Systems
- Binary Numbering System
- Hexadecimal Numbering System
- Text Encoding
- Coding Scheme Programs
- Format Printing
17. Language Fundamentals
- Packages
- Go Commands
- Variables
- Scope
- Closure
- Blank Identifier
- Constants
- Words of Encouragement
- Pointers
- Using Pointers
- Remainder
18. Control Flow
- For Loop
- Nested Loops
- Conditions, Break, & Continue
- Documentation & Terminology
- Rune
- String Type
- Switch Statements
- If Statements
19. Functions
- Intro To Functions
- Func Returns
- Variadic Functions
- Variadic Arguments
- Func Expressions
- Closure
- Callbacks
- Callback Example
- Recursion
- Defer
- Pass By Value
- Reference Types
- Anonymous Self-Executing Functions
- Bool Expressions
20. Data Structures - Array
- Data Structures Overview
- Array
- Array Example
21. Data Structures - Slice
- Slices
- Slice Examples
- More Slice Examples
- Creating A Slice
- Incrementing A Slice Item
22. Data Structures - Map
- Map Example
- Map Documentation
- Map Range Loop
- GitHub Pull
- Hash Tables
- Hashing Words
- Hashing Words II
- Build A Hash Table
- Finished Hash Algorithm
23. Data Structures - Struct
- Structs Introduction
- OOP in Go
- User-Defined Types
- Composition
- JSON Marshal
- JSON Unmarshal
- JSON Encode
- JSON Decode
24. Interfaces
- Interfaces
- Code Substitutability
- Bill Kennedy
- Donovan & Kernighan
- Sort Package
- Sort Solution
- Sort Reverse
- Sort Slice Int
- Empty Interface
- Method Sets
- Conversion vs Assertion
25. Concurrency
- Concurrency & WaitGroup
- Parallelism
- Race Conditions
- Mutex
- Atomicity
- Review & Channels Preview
26. Channels
- Range Clause
- N-to-1
- Semaphores
- 1-to-N
- Channels as Arguments & Returns
- Channel Direction
27. Applied Concurrency
- Incrementor With Channels
- Deadlock Challenge
- Factorial Challenge
- Pipeline Pattern
- Factorial Challenge Redux
- Factorial Challenge Redux Solution
- Fan Out / Fan In Pattern - Overview
- Fan In Pattern
- Fan Out / Fan In - Example
28. Concurrency Challenges
- Fan Out / Fan In - Challenge
- Fan Out / Fan In - Solution
- Fan Out / Fan In - Challenge: Factorial
- Fan Out / Fan In - Solution: Factorial
- Deadlock Challenge
- Deadlock Solution
- Incrementor Challenge Revisited
- Incrementor Solution
29. Concurrency Resources
-
Additional Resources
30. Error Handling
- An Introduction to Error Handling in Go
- Improving Your Code with Golint
- Handling Errors & Logging Errors to a File
- Four Common Ways to Handle Errors
- Custom Errors - Creating Values of Type error
- Idiomatic Error Handling
- Providing Context with Errors
- Providing Even More Context with Errors
- Error Handling Review & Resources