Skip to content
This repository was archived by the owner on Mar 14, 2025. It is now read-only.

walonCode/learning_go

Repository files navigation

Golang Learning Repository

Welcome to my Golang Learning Repository! πŸš€ This repository contains structured lessons on various Go programming topics, each organized into lesson folders with accompanying problem-solving exercises.

πŸ“‚ Folder Structure

The repository follows a structured format where each topic is stored in its respective lesson folder, along with a separate problem folder for practice.

πŸ“¦ Golang-Learning
β”œβ”€β”€ πŸ“ lesson_01  # Hello World
β”œβ”€β”€ πŸ“ lesson_02  # Types
β”œβ”€β”€ πŸ“ lesson_03  # Variables
β”œβ”€β”€ πŸ“ lesson_04  # Control Structures (if-else & loops)
β”œβ”€β”€ πŸ“ lesson_05  # Maps, Slices & Arrays
β”œβ”€β”€ πŸ“ lesson_06  # Functions, Panic & Recover
β”œβ”€β”€ πŸ“ lesson_07  # Pointers
β”œβ”€β”€ πŸ“ lesson_08  # Structs & Interfaces
β”œβ”€β”€ πŸ“ lesson_09  # Concurrency
β”œβ”€β”€ πŸ“ lesson_10  # Packages
β”œβ”€β”€ πŸ“ lesson_11  # Inbuilt Packages
β”œβ”€β”€ πŸ“ problems   # Practice Problems
└── README.md

πŸ“– Lessons Overview

πŸ”Ή Lesson 01: Hello World

  • Introduction to Go syntax
  • Writing and running a basic Go program

πŸ”Ή Lesson 02: Types

  • Understanding Go's type system
  • Primitive types: int, float, string, bool, etc.

πŸ”Ή Lesson 03: Variables

  • Declaring and initializing variables
  • Short variable declarations
  • Constants

πŸ”Ή Lesson 04: Control Structures (if-else & loops)

  • Conditional statements (if-else)
  • Loops (for, range)

πŸ”Ή Lesson 05: Maps, Slices & Arrays

  • Working with arrays
  • Slices and their dynamic nature
  • Maps for key-value storage

πŸ”Ή Lesson 06: Functions, Panic & Recover

  • Defining and calling functions
  • Multiple return values
  • Error handling with panic and recover

πŸ”Ή Lesson 07: Pointers

  • Understanding pointers and memory addresses
  • Using pointers with functions

πŸ”Ή Lesson 08: Structs & Interfaces

  • Defining structs for custom data types
  • Implementing interfaces for abstraction

πŸ”Ή Lesson 09: Concurrency

  • Learnt about it and how it works
  • Learnt about channels in go
  • Implemented how two concurrent function can talk to each other

πŸ”Ή Lesson 10: Packages

  • What are packages
  • Learnt how to create a packages and use them in a project
  • Learnt about testing packages using go testing library

πŸ”Ή Lesson 11: Inbuit Packages

  • Learnt about fmt,io,os, http
  • Learnt how server can be easily created in go

πŸ“ Problems Folder

The problems folder contains coding challenges related to each lesson to reinforce learning through hands-on practice.

πŸš€ Getting Started

  1. Clone the repository:
    git clone https://github.com/walonCode/learning_go.git
  2. Navigate into the project folder:
    cd learning_go
  3. Run Go programs using:
    go run lesson_01/main.go

🎯 Goals

  • Build a strong foundation in Golang
  • Write clean, efficient, and idiomatic Go code
  • Solve real-world problems using Go

πŸ“Œ Future Topics

  • Concurrency (goroutines & channels)
  • File handling
  • Web development with Go
  • And more!

Happy coding! πŸš€

About

A repo that tracks my learning progress

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages