Description
Go was developed as a result of unhappiness with other systems programming languages and environments.
The choice of programming languages was somewhat to blame for how complex programming had become.
The most thorough resource available for learning the Go programming language is this course.
Both novice developers and seasoned programmers will benefit much from this training. The course is jam-packed with illustrations, practical exercises, practical exercise solutions, and a fantastic code repository.
Todd McLeod, one of the foremost Go Programming Trainers in the world, is the instructor for this course.
Todd was the first professor to teach Go at a university level in America. Over 3.25 million students have learned the Go programming language from Todd.
This course has been tried, tested, and proved to teach both novice and seasoned developers Go.
Go is designed to be quick to use; on a single machine, building a big executable should only take a few seconds.
A variety of language challenges, including concurrency and garbage collection, a tight dependency definition, an expressive but lightweight type system, and others, had to be addressed in order to achieve these aims.
A new language was required since libraries and tools cannot adequately solve this.
You can learn everything you need to know in this course using the tools and content that are most appropriate for your level of competence.
You will have lifetime access to this course once you enrol in it. You'll have the freedom to study at your own speed.
The information will always be available to you so that you can examine it or pick up new ideas when you need them.
What is golang?
Programming language Go was created at Google by Robert Griesemer, Rob Pike, and Ken Thompson.
It is statically typed and compiled. Similar in syntax to C, but with memory safety, garbage collection, structural typing, and concurrency in the CSP style
Go is a general-purpose open source programming language that is sometimes known as Golang or Go.
To construct stable and effective software, Google engineers created the language Go. Go is statically typed and explicit, most resembling C.
The benefits of Golang are,
- a Google-supported open-source programming language
- Excellent for teams and simple to learn
- Concurrency built-in with a solid standard library
- large partner, community, and tool ecosystem
Why Should You Learn Go (Golang)?
Efficient Performance | The design of Go places a strong priority on performance, providing it well-suited for the development of high-performance applications. |
Simplicity and Readability | The concise syntax and easy design of the Go programming language contribute to enhanced code readability and facilitate simplicity of maintenance. |
Concurrent Programming | The Go programming language possesses inherent capabilities for managing concurrency, facilitating the efficient execution of multiple activities simultaneously. |
Scalability | The lightweight nature of Go's goroutines and its efficient utilization of memory contribute to its scalability in the context of large-scale applications. |
Fast Compilation | The rapid compilation speeds of the Go programming language enhance the efficiency of development and deployment procedures. |
Open-Source Community | The Go programming language boasts a strong open-source ecosystem, which offers a wide range of libraries and comprehensive developer support. |
Cross-Platform | The Go programming language enables the transferability of code across diverse platforms, encompassing Windows, macOS, and Linux. |
Server-Side Applications | Go programming language shines in the development of server-side applications, encompassing web servers and microservices. |
Static Typing | The static typing feature of the Go programming language effectively detects problems during the compilation process, hence reducing potential issues that may arise during runtime. |
Future-Proofing | The increasing popularity of Go in the computer industry underscores the importance of acquiring proficiency in this programming language to secure future professional relevance. |
Who can enroll in this course?
- Anyone who is a beginner in Programming.
- Seasoned programmers.
- Anyone who is looking to fill in any programming knowledge gaps
What will you require?
- No knowledge of programming required
- Passion to learn Golang
- Determination to go so far and beyond
- A PC
What you’ll learn?
- Fundamentals to advanced ideas
- Channels, concurrency, and benchmarking
- Testing, handling errors, and documentation
- Practical exercises with answers
- Availability of a valuable code base
Introduction
- Welcome!
- Why go?
- Tips for success
Course Overview
- Course Overview
- Documentation
- Additional resources
Variables, values, & type
- Playground
- Hello World
- Overview of packages
- operator for quick declaration
- The word "var"
- searching style
- Null value
- The fmt file
- Developing original type
- Not casting, but conversion
Your development environment
- the airport
- Bash in windows.
- commands in bash and shell
- commands in shell / bash II
- Putting in Go
- Go modules - overview
- Workspace go
- environmental factors
- Overview of IDEs
- Code Editor VS
- Obtaining the course code with go get
- IDE's
- Commands in Go
- repos on Github
- Github research
- package control
- Overview of Go modules
- design of a go module
- introducing reliance
- dependency modernization
Control flow
- comprehension control flow
- init, condition, and post loops
- Nesting loops in a loop
- Statement in a loop
- Loop, break, and keep going
- loop - ascii printing
- If statement with conditions
- If, else if, conditional
- Conditional, modulus, and loop
- Switch statement that is conditional
- Documentation for conditional switch statements
- Operators for conditional logic
Programming fundamentals
- Sort by Bol
- How computers function
- Types in numbers
- String kind
- Numbering schemes
- Constants
- Iota
- bit shifting
Pointers
- What do pointers mean?
- Use of pointers when
- Method sets
Concurrency
- Parallelism vs Concurrency
- WaitGroup
- Revisit to Method sets
- Documentation
- Race condition
- Mutex
- Atomic
Error handling
- Comprehending
- Errors check
- Pogging and Printing
- Recover
- Info errors
Writing documentation
- Overview
- Go doc
- Godoc
- Godoc.org
- Documentation
Repetition leads to mastery
- The real course
Data Structures - Array
- Overview of Data Structures
- Array
- Examples of Array
Data Structures - Struct
- Introduction to Structs
- OOP in Go
- User-Defined Types
- Composition
- JSON Marshal
- JSON Unmarshal
- JSON Encode
- JSON Decode
Channels
- Introduction to Channels
- Clause Range
- N-to-1
- Part 1 of Semaphores
- Part 2 of Semaphores
- 1-to-N
- Arguments & Returns as Channels
- Channel Direction
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
Error Handling
- An Overview of Go's Error Handling
- Using Golint to Improve Your Code
- Error Handling and Logging to a File
- Four Typical Methods for Handling Errors
- Error Creating Values of Type in Custom Errors
- Handling Idiomatic Errors
- Giving context for mistakes
- Adding Additional Context with Mistakes
- Review of Error Handling and Resources
Applied Concurrency
- Channels Incrementor
- Deadlock Challenge
- Factorial Challenge
- Pipeline Pattern
- Factorial Challenge Redux
- Factorial Challenge Redux Solution
- Overview of Fan Out / Fan In Pattern
- Fan In Pattern
- Example of Fan Out / Fan In
Interfaces
- Interfaces
- Substitutability of Code
- Robert Kennedy
- Kernighan & Donovan
- Package Sort
- Solution to Sort
- Sorting backward
- Slice sort int
- Empty Interface
- Method Sets
- Assertion vs. Conversion
Concurrency
- Concurrency & WaitGroup
- Parallelism
- Race Conditions
- Mutex
- Atomicity
- Review & Channels Preview
Data Structures - Slice
- Slices
- Examples of Slice
- More Examples of Slice
- Slice Creation
- Slice Incrementing
- Review of the Section
Data Structures - Map
- Introduction to Maps
- Examples of Maps: Part I
- Examples of Maps, Part II
- Examples of Maps, Third
- Map Information
- Map Loop Range
- GitHub Pull
- Tables Hash
- Word Hashing I
- Word-Hashing II
- Construct A Hash Table
- The completed hash algorithm
Installing Go
- Review of the Section
- a terminal
- Insights into Installation
- Workspace Go
- Environmental Factors
- Configuring Path Variables in Windows
- Setting Up Path Variables on a Mac
- Important information about the following Linux videos
- Setup for a Linux computer
- Machine Configuration for Linux
- Configuring Path Variables in Linux
- Your Installation's Test
- Review of Section
Functions
- Section Overview
- Intro To Functions
- Func Returns
- Variadic Functions
- Variadic Arguments
- Func Expressions
- Closure
- Callbacks
- Callback Example
- Recursion
- Defer
- Pass By Value
- Reference Types
- Self-Executing Anonymous Functions
- Bool Expressions
- Exercises - Part I
- Exercises - Part II
- Review of the Section
Language Fundamentals
- Overview of the Section
- Packages
- Go Commands
- Variables
- Scope
- Scope II
- Closure
- Blank Identifier
- Constants
- Constants II
- Encouragement Word
- Pointers
- Using Pointers
- Remainder
- Review of the Section
Computer Fundamentals
- Review of the Section
- Part I of How Computers Work
- Part II of "How Computers Work"
- Command for updating Github
- Systems of numbers
- Numbering system in binary
- hexadecimal system of numbers
- Encoding Text
- Code Generation Programs
- Style Printing
- Review of Section
Testing & benchmarking
- Overview
- Test Tables
- Test Examples
- Golint
- Benchmark
- Coverage
- Examples of Benchmark
- Review
Channels
- What are channels?
- Directional channels
- How to use channels?
- Range
- Select
- Comma ok idiom
- Fan in
- Fan out
- Context
Application
- JSON documentation
- JSON marshal
- JSON unmarshal
- Writer interface
- Sort
- Sort custom
- bcrypt
Functions
- Syntax
- variable component
- extending a chunk
- Defer
- Methods
- Polymorphism and interfaces
- Unknown function
- expression function
- delivering a func
- Callback
- Closure
- Recursion
Grouping data
- Array
- Composite literal for slice
- Range - for slicing
- Slice means to cut a slice.
- add a slice to another
- Eliminating a chunk from a document
- cut - make
- Multidimensional slice of a slice
- Introduction to a map
- Add element and range to a map.
- Delete the map
Farewell
- Congrats
- Bonus Lecture
Course Duration
- 356 Lectures and 34 Hours of Demand HD Videos
- Full lifetime access
- Access on mobile and TV
- Certificate of Completion
- 8200+ students enrolled
- Complete Practical Training
- Download access