Skip to content

I'm truly thankful to Professor Todd McLeod for his inspiration and generous offer of free access to this valuable resource on Twitter.

Notifications You must be signed in to change notification settings

GoesToTwentyOne/Golang_Brilliance_with_Prof._Todd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

HonorableTodd_udemy_Golang_practice

My Learning and Review:

This course has provided me with valuable skills and knowledge. It was an exceptional learning experience that delved into fundamental concepts comprehensively. I wholeheartedly endorse this course and recommend it to anyone interested in mastering Google's Golang.

End of the Course Encouragement and Valuable Resources:

I express my gratitude for the invaluable support and generosity of Professor Todd Mcleod from California State University. His coupon code on Twitter enabled me to access this course. The course not only covered technical aspects but also delved into essential life success strategies.

Sincerely, Md. Nihad Hossain


Course Outline:

I've shared Todd Mcleod's course outline on my GitHub repository.

Course Outline Links:


Completion and Certified (Certificate):

One of the most significant takeaways from this course is the persistence and patience required for success, coupled with a growth mindset.

Certificate


Growing Mindset and Key Learnings:

Why Go (Golang)?

  • Utilize Multicore CPUs efficiently.
  • Fastest growing and highly remunerative programming language.
  • Developed by exceptional minds: Rob Pike, Ken Thompson, Robert Geriesemer.

Success in Life:

  • Embrace Grit and Perseverance, echoing Angela Lee Duckworth.
  • Differentiate between a Growing Mindset and Fixed Mindset.

Notable Quotes from My Teachers:

  • "Begin with the End In Mind" - Setting goals.
  • "Put First Things First" - Managing time effectively.
  • "Success is the result of patience and persistence."
  • "Drop by drop, the bucket gets filled."

Essential Resources:

  • Go Forums
  • Official Documentation:
    • golang spec
    • effective go
  • Differentiating golang.org and godoc.org:
    • golang.org: Information about the language and standard library.
    • godoc.org: Covers standard library and third-party packages. [https://pkg.go.dev/]

Development Environment:

  • Tracing back to computer history with ENIAC (Electronic Numerical Integrator And Computer).
  • Command Line Interface (CLI) basics:
    • List of Directories: ls
    • Change Directory: cd
    • Create Directory: mkdir {folder_name}
    • Create File: touch {file_name.extention}
    • Edit File: nano {file_name.extention}
    • Read File: cat {file_name.extention}
    • Remove: rm -rf {file_name.extention}

Environment Variables:

  • System and User Variables.
  • Essential Go Environment Variables: GOPATH, GOROOT, GOBIN, GOOS, GOARCH.
  • Useful Go Commands: version, env, help, fmt, run, build.

Go Modules (Package and Dependency Management):

Miscellaneous:

Programming Fundamentals:

  • Understanding computer functioning.
  • Alan Turing's legacy and computer generations.
  • Moore's law and popular coding scheme (UTF-8).
  • Number systems: binary, decimal, octal, hexadecimal.
  • Delving into constants, iota, bitshifting, and XOR operation.

Control Flow:

  • Extended Backus–Naur form (EBNF) for grammar representation.
  • For and conditional statements: if, else if, switch, select (using channels).
  • In-depth study of various statements.

Types in Go:

  • Primitive data types: int, float, string, boolean.
  • Composite data types: struct, pointers, functions, interfaces, array, slices, channels, maps.
  • Scope of variables, import/export, zero values, fmt package verbs.
  • Creating custom types.

Functions and Methods:

  • Functions as code reuse mechanisms.
  • Varied function practices: variadic parameters, closures, recursion, etc.
  • Method sets and interface implementation.
  • Exploring structs and pointers.

Applications:

  • Working with JSON: marshaling, unmarshaling, encoding, decoding.

Concurrency and Parallelism:

  • Differentiating concurrency and parallelism.
  • Handling concurrency with sync and waitgroup.
  • Tackling race conditions with sync.Mutex and atomic package.

Channels:

  • In-depth study of channels: buffered, unbuffered, directional, fan-in, fan-out.

Error Handling:

  • Effective error handling strategies.

Testing and Benchmarking:

  • Comprehensive testing and benchmarking techniques.
  • Utilizing Go Proverbs for efficient coding practices.

Teaching Version Control and Software Configuration Management:

The course also provides insight into version control systems, source code management, and software configuration management.

About

I'm truly thankful to Professor Todd McLeod for his inspiration and generous offer of free access to this valuable resource on Twitter.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages