Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoTerminal: Learn Go Like a Pro 🚀

GoTerminal is a gamified, terminal-themed interactive learning platform designed to teach Go (Golang) from scratch to production-grade backend engineering. Built completely locally with zero external framework dependencies, it offers an immersive, distraction-free environment for C++ and DSA-experienced developers to transition smoothly into the Go ecosystem.

GoTerminal Dashboard Zero Dependencies Built with Vanilla JS

✨ Key Features

  • Immersive CRT Aesthetic: Matrix rain, phosphor glow, scanlines, and typewriter effects.
  • Interactive Code Editor: Embedded Monaco editor (VS Code's core) with custom Go syntax highlighting.
  • Live Code Execution: Compiles and runs your Go code natively through the official go.dev/play API.
  • Gamification Engine: Earn XP, unlock over 50 developer titles and badges, complete daily quests, and maintain learning streaks.
  • Boss Battles: Time-constrained coding challenges at the end of each curriculum phase to test your cumulative knowledge.
  • Offline-First State Machine: Progress is seamlessly persisted to your browser's local storage.

🛠️ Installation & Setup

GoTerminal requires no build steps or bundlers! It is a pure native web application.

  1. Clone the repository

    git clone https://github.com/Pranilash/Learn_Go.git
    cd Learn_Go
  2. Serve the application Because the application loads JavaScript modules and accesses local storage, it must be served over a local HTTP server rather than opening the file directly (to avoid CORS/file protocol restrictions).

    If you have Node.js installed, you can use http-server:

    npx http-server ./ -p 8080 -c-1

    Alternatively, using Python 3:

    python -m http.server 8080
  3. Open your browser Navigate to http://localhost:8080 and enter your developer name to begin!

📚 Curriculum / Chapters

The curriculum is structured sequentially, designed to map C++ concepts to idiomatic Go.

🟢 Phase 1: Go Fundamentals (C++ Translation)

  • Program Structure & Packages (main vs iostream)
  • Variables, Constants, and Zero Values
  • Pointers & Memory Management (No pointer arithmetic!)
  • Control Structures (if, switch, for)
  • Arrays, Slices (Dynamic Arrays), and Maps (Hash Tables)
  • Functions, Multiple Returns, and Defer
  • Boss Battle: "The Syntax Sentinel"

🔵 Phase 2: Structs, Interfaces & OOP in Go

  • Defining and Instantiating Structs (Data objects)
  • Method Receivers (Value vs Pointer)
  • Interfaces & Duck Typing (Implicit implementation)
  • Struct Embedding (Go's answer to Inheritance)
  • Type Assertions and the empty interface interface{}
  • Boss Battle: "The Architect"

🟡 Phase 3: Concurrency (Goroutines & Channels)

  • The Concurrency Model (CSP vs Threads)
  • Launching Goroutines
  • Unbuffered vs Buffered Channels
  • The select Statement & Timeouts
  • WaitGroups and Mutexes
  • Boss Battle: "The Race Condition"

🟠 Phase 4: Standard Library & Idioms

  • Error Handling Patterns (No exceptions!)
  • The io and bufio Packages
  • JSON Serialization (encoding/json)
  • The context Package (Timeouts and Cancellation)
  • Sorting and Custom Comparators
  • Boss Battle: "The Data Wrangler"

🔴 Phase 5: Web & Networking

  • Building HTTP Servers (net/http)
  • Handling Requests, Routes, and Middleware
  • Making HTTP Requests (Clients)
  • Working with Databases (database/sql)
  • Boss Battle: "The Network Phantom"

🟣 Phase 6: Production Engineering

  • Writing Unit Tests and Table-Driven Tests (testing)
  • Profiling (pprof) and Benchmarking
  • Modules and Dependency Management (go mod)
  • Best Practices & Go Project Layouts
  • Final Boss: "The Production Overlord"

💡 Technologies Used

  • HTML5 / CSS3 (Custom Grid system, CSS Variables, Keyframe Animations)
  • Vanilla JavaScript (ES6+) (IIFE Modules, State Machine, LocalStorage API)
  • Monaco Editor (Loaded via CDN for code editing)
  • Go Playground API (For remote code execution)

⌨️ Easter Eggs & Secrets

Keep an eye out for hidden developer commands! Try entering classic cheat codes on your keyboard or running hidden commands in the playground to unlock secret badges.


Built with ❤️ for backend engineers looking to level up their stack.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages