Go is a statically typed compiled language famous for its straightforward, simple syntax. It addresses the common pitfalls of C while maintaining its performance and interoperability.

Despite this simplicity, Go is designed to handle concurrency. And it suffers from the complexity this entails.

Go is also quite idiomatic, which makes best practices a little elusive.

Another amazing feature of Go is that like Python, you can write both functional and Object-Oriented codes in Go.


Why Learn Go?

  • Go (or Golang) is an open source programming language designed to build fast, reliable, and efficient software at scale.
  • Google uses Go specifically for its large networks of servers, and Go also powers much of Google’s own cloud platform. Developers use Go in application development, web development, in operations and infrastructure teams, and much more. It is the language of Cloud Native infrastructure, blockchain Hyperledger Fabric and software development.
  • As Go’s popularity and adoption continue to increase, we’ll see even greater usage and more creative implementations of the language!



Learning Objectives

After finishing this self-paced course, you will learn:

  • The setup of a Go environment and how to create a Go file.
  • Go’s data types and variables.
  • Go's constants
  • Go’s conditional statements.
  • Go for and while loops
  • Using functions in Go.
  • How to import or install Go packages
  • How to work with arrays in Go
  • How to harness the power of Slices in Go



Topics and Subtopics

Here is the course outline:


1. Golang Installation, Setup, GOPATH, and Go Workspace

  • Installations on Linux, Mac or Windows
  • The Go tool
  • GOPATH, Go Workspace, and Go Code Organization

 

2. Hello Golang: Writing your first Golang Program


3. Golang Variables, Zero Values, and Type Inference

  • Introduction to Variables and Data Types
  • Declaring Variables
  • Zero values
  • Declaring Variables with initial Value
  • Type inference
  • Short Declaration


4. Golang Basic Types, Operators and Type Conversion

  • Numeric Types
  • Operations on Numeric Types
  • Booleans
  • Operations on Boolean Types
  • Complex Numbers
  • Operations on complex numbers
  • Strings
  • Type Conversion


5. Working with Constants in Golang

  • Declaring a Constant
  • Typed and Untyped Constants
  • Constants and Type inference: Default Type
  • Constant expressions
  • Constant Expression Examples


6. Golang Control Flow Statements: If, Switch and For

  • If Statement
  • If-Else Statement
  • If-Else-If Chain
  • If with a short statement
  • Switch Statement
  • Switch with a short statement
  • Combining multiple Switch cases
  • Switch with no expression
  • For Loop


7. Introduction to Functions in Golang

  • Declaring and Calling Functions in Golang
  • Functions with multiple return values
  • Returning an error value from a function
  • Functions with named return values
  • Blank Identifier


8. A Beginner Guide to Packages in Golang

  • Go Package
  • The main package and main() function
  • Importing Packages
  • Creating and managing custom Packages
  • Adding 3rd party Packages
  • Manually installing packages


9. Working with Arrays in Golang

  • Declaring an Array in Golang
  • Accessing array elements by their index
  • Initializing an array using an array literal
  • Letting Go compiler infer the length of the array
  • Exploring more about Golang arrays
  • Iterating over an array in Golang
  • Iterating over an array using range
  • Multidimensional arrays in Golang


10. Introduction to Slices in Golang

  • Declaring a Slice
  • Creating and Initializing a Slice
  • Modifying a slice
  • Length and Capacity of a Slice
  • Creating a slice using the built-in make() function
  • Zero value of slices
  • Slice Functions
  • Slice of slices
  • Iterating over a slice



Requirements

None.




Related Courses


Complete Training Bundle

If you are serious about becoming a pro software engineer, you should enroll in our Complete Training Bundle for Software Engineers class, This bundle covers all essential and practical topics related to software design and development. For $290 monthly subscription, you can have access to 300+ hours of hands-on project-based training covering all courses related to software development like Python, Java, Kotlin, C/C++ Go and more. Click here to learn more.


Private Tutoring Classes

To take skills you learn from this course to the next level, taking the following tutoring classes are highly recommended. It is also a great opportunity to discuss your questions and problems related to this course with an experienced instructor:



What Is Next?

After finishing this course, you can enroll in any of following classes:



Recommended Free Courses

If you are new to the IT or programming, we suggest the following free courses:


Select a pricing plan and sign up

Course Curriculum

  Course contents
Available in days
days after you enroll
  1. Golang Installation, Setup, GOPATH, and Go Workspace
Available in days
days after you enroll
  2. Hello Golang: Writing your first Golang Program
Available in days
days after you enroll
  3. Golang Variables, Zero Values, and Type Inference
Available in days
days after you enroll
  4. Golang Basic Types, Operators and Type Conversion
Available in days
days after you enroll
  5. Working with Constants in Golang
Available in days
days after you enroll
  6. Golang Control Flow Statements: If, Switch and For
Available in days
days after you enroll
  7. Introduction to Functions in Golang
Available in days
days after you enroll
  8. A Beginner Guide to Packages in Golang
Available in days
days after you enroll
  9. Working with Arrays in Golang
Available in days
days after you enroll
  10. Introduction to Slices in Golang
Available in days
days after you enroll
Jace Fugate - Full-stack and Cloud Engineer

Jace Fugate - Full-stack and Cloud Engineer


Jace graduated from Dixie State University with a Bachelor's Degree in Computer Information Technology.

He has worked as a full time developer in many industries including education and communications software.

His main area of focus is working on the back-end, database and network layers of computer systems.

User interfaces and experience was his original career path in computers and still loves to have the opportunity to create front-end designs.

Jace loves all opportunities to teach and to help others grow their skills.

Choose a Pricing Option