I started learning Golang

April 13, 2025
3 min read
golang

https://roadmap.sh/golang

Basics

🗓️ Week 1: Go Basics & Syntax

Goal: Understand how Go works and write simple programs.

  • Day 1: Install Go, set up your environment (e.g., VS Code + Go extension)
  • Day 2: Variables, data types, constants, basic I/O
  • Day 3: Functions and scope
  • Day 4: Conditionals (if/else/switch)
  • Day 5: Loops (for, range)
  • Day 6: Practice: Build a basic calculator or CLI converter (e.g., Celsius to Fahrenheit)
  • Day 7: Review and solidify

🗓️ Week 2: Data Structures & Error Handling

Goal: Learn how Go handles data and errors.

  • Day 1: Arrays, slices
  • Day 2: Maps
  • Day 3: Structs
  • Day 4: Pointers (just the basics! — ai said)
  • Day 5: Error handling (error type, panic, recover)
  • Day 6: Mini project: Student record manager (struct + slice + basic CLI interaction)
  • Day 7: Review & code cleanup

🗓️ Week 3: Go Routines & File I/O

Goal: Get a feel for Go's concurrency and working with files.

  • Day 1: File reading/writing
  • Day 2: Goroutines (basic concurrency — ai said)
  • Day 3: Channels
  • Day 4: Select statement
  • Day 5: Mutex (light intro)
  • Day 6: Project: Multi-file word counter with go routines
  • Day 7: Review concurrency concepts

🗓️ Week 4: Build & Polish

Goal: Apply everything in a mini project.

  • Choose a small CLI app (ideas: task manager, URL shortener, JSON parser)
  • Day-by-day breakdown:

Advanced with database languages

Week 1: SQL Fundamentals

Goal: Learn how relational databases work and write basic SQL queries.

  • Day 1: What is SQL? Introduction to databases (tables, rows, columns, primary keys)
  • Day 2: Basic queries: SELECT, WHERE, ORDER BY, LIMIT
  • Day 3: Filtering & logic: AND, OR, IN, LIKE
  • Day 4: Sorting and NULL values
  • Day 5: Insert data: INSERT INTO
  • Day 6: Update and delete: UPDATE, DELETE
  • Day 7: Mini project: Design a simple table (e.g., Users), insert data, and query it

Week 2: Intermediate SQL + SQL with Golang

Goal: Use Go to connect to a real database (SQLite or Postgres).

  • Day 1: Table relationships: JOIN, FOREIGN KEY
  • Day 2: Indexes and basic normalization
  • Day 3: Install SQLite/PostgreSQL locally + DB viewer (e.g., DBeaver)
  • Day 4: Use Go's database/sql package
  • Day 5: Connect Go to SQLite/Postgres, run a SELECT query
  • Day 6: Use sqlx or gorm (ORM) for easier queries
  • Day 7: Mini app: CLI User manager (Add, List, Update, Delete users)

Week 3: Applied Project

Goal: Combine everything in a real-world mini backend.

  • Pick a project idea:
  • Day 1: Plan schema (ERD diagram), create SQL tables
  • Day 2–3: Build Go CLI or web app (use mux for routing)
  • Day 4: Implement all CRUD functions (Create, Read, Update, Delete)
  • Day 5: Add relationships and JOIN queries
  • Day 6: Optional: add pagination, search, or error handling
  • Day 7: Clean up, refactor, and post to GitHub