Convert Figma logo to code with AI

RezaSi logogo-interview-practice

Interactive Go Interview Platform - 30+ coding challenges with instant feedback, AI interview simulation, competitive leaderboards, and automated testing. From beginner to advanced levels with real-world scenarios.

1,320
626
1,320
44

Top Related Projects

Standard Go Project Layout

Learn Go with test-driven development

19,790

ā¤ļø 1000+ Hand-Crafted Go Examples, Exercises, and Quizzes. šŸš€ Learn Go by fixing 1000+ tiny programs.

Go Training Class Material :

156,852

A curated list of awesome Go frameworks, libraries and software

Curated list of Go design patterns, recipes and idioms

Quick Overview

The RezaSi/go-interview-practice repository is a collection of Go programming exercises and solutions designed to help developers prepare for technical interviews. It covers various data structures, algorithms, and common coding problems, providing a valuable resource for those looking to improve their Go programming skills and interview readiness.

Pros

  • Comprehensive coverage of common interview topics and data structures
  • Clear, well-commented Go code solutions for each problem
  • Organized structure with separate directories for different problem categories
  • Includes both problem descriptions and solutions, allowing for self-study

Cons

  • Limited explanations for some of the more complex algorithms
  • Not regularly updated, with the last commit being over a year ago
  • Lacks unit tests for verifying the correctness of solutions
  • Some advanced topics or newer interview trends might be missing

Code Examples

Here are a few examples from the repository:

  1. Implementing a stack data structure:
type Stack struct {
    items []int
}

func (s *Stack) Push(i int) {
    s.items = append(s.items, i)
}

func (s *Stack) Pop() int {
    l := len(s.items) - 1
    toRemove := s.items[l]
    s.items = s.items[:l]
    return toRemove
}
  1. Reversing a linked list:
func reverseList(head *ListNode) *ListNode {
    var prev *ListNode
    current := head

    for current != nil {
        nextTemp := current.Next
        current.Next = prev
        prev = current
        current = nextTemp
    }

    return prev
}
  1. Implementing binary search:
func binarySearch(arr []int, target int) int {
    left, right := 0, len(arr)-1

    for left <= right {
        mid := left + (right-left)/2
        if arr[mid] == target {
            return mid
        } else if arr[mid] < target {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }

    return -1
}

Getting Started

To use this repository for interview practice:

  1. Clone the repository:

    git clone https://github.com/RezaSi/go-interview-practice.git
    
  2. Navigate to the desired problem category directory.

  3. Read the problem description in the comments or README file.

  4. Implement your solution in Go.

  5. Compare your solution with the provided solution in the repository.

  6. Run the code to test its correctness:

    go run filename.go
    

Competitor Comparisons

Standard Go Project Layout

Pros of project-layout

  • Provides a standardized structure for Go projects, making it easier for developers to navigate and understand the codebase
  • Includes detailed explanations and best practices for each directory and file in the project structure
  • Offers a more comprehensive and production-ready approach to project organization

Cons of project-layout

  • May be overly complex for smaller projects or beginners learning Go
  • Lacks specific code examples or implementations, focusing primarily on structure
  • Requires more setup time and effort compared to simpler project layouts

Code Comparison

project-layout:

ā”œā”€ā”€ cmd
│   └── myapp
ā”œā”€ā”€ internal
│   ā”œā”€ā”€ pkg1
│   └── pkg2
ā”œā”€ā”€ pkg
│   └── public_package
└── vendor

go-interview-practice:

ā”œā”€ā”€ algorithms
│   └── sorting
ā”œā”€ā”€ data_structures
│   └── linked_list
└── design_patterns
    └── singleton

Summary

project-layout offers a more structured and comprehensive approach to organizing Go projects, suitable for larger and more complex applications. go-interview-practice focuses on providing specific implementations of algorithms, data structures, and design patterns for interview preparation. While project-layout may be overkill for smaller projects, it provides valuable insights into best practices for Go project organization. go-interview-practice is more suitable for learning and practicing specific coding concepts.

Learn Go with test-driven development

Pros of learn-go-with-tests

  • Comprehensive coverage of Go concepts with a test-driven approach
  • Well-structured, step-by-step learning path for beginners
  • Regularly updated with new content and improvements

Cons of learn-go-with-tests

  • Focuses primarily on testing, which may not be ideal for all learners
  • Less emphasis on specific interview preparation techniques
  • May be overwhelming for absolute beginners due to its depth

Code Comparison

learn-go-with-tests:

func TestHello(t *testing.T) {
    got := Hello("Chris")
    want := "Hello, Chris"
    if got != want {
        t.Errorf("got %q want %q", got, want)
    }
}

go-interview-practice:

func reverseString(s string) string {
    runes := []rune(s)
    for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
        runes[i], runes[j] = runes[j], runes[i]
    }
    return string(runes)
}

The code comparison shows that learn-go-with-tests focuses on writing tests for Go functions, while go-interview-practice provides implementations of common interview problems. learn-go-with-tests is more suitable for learning Go with a testing mindset, whereas go-interview-practice is better for preparing for coding interviews in Go.

19,790

ā¤ļø 1000+ Hand-Crafted Go Examples, Exercises, and Quizzes. šŸš€ Learn Go by fixing 1000+ tiny programs.

Pros of learngo

  • More comprehensive and structured learning path for Go beginners
  • Includes hands-on exercises and quizzes to reinforce learning
  • Regularly updated with new content and improvements

Cons of learngo

  • May be overwhelming for those seeking quick interview preparation
  • Focuses more on general Go learning rather than specific interview topics
  • Requires more time investment to complete the entire course

Code Comparison

go-interview-practice:

func reverseString(s string) string {
    runes := []rune(s)
    for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
        runes[i], runes[j] = runes[j], runes[i]
    }
    return string(runes)
}

learngo:

func main() {
    words := []string{"hi", "hello", "there"}
    for _, word := range words {
        fmt.Printf("%q\n", strings.ToUpper(word))
    }
}

The go-interview-practice example focuses on a specific algorithm (string reversal), while the learngo example demonstrates basic Go concepts like slices, loops, and string manipulation. This reflects the different approaches of the two repositories, with go-interview-practice targeting interview preparation and learngo providing a broader learning experience.

Go Training Class Material :

Pros of gotraining

  • More comprehensive and structured learning material
  • Regularly updated with new content and examples
  • Includes advanced topics like concurrency and performance optimization

Cons of gotraining

  • May be overwhelming for beginners due to its extensive content
  • Requires more time investment to work through all materials
  • Less focused on interview-specific questions and problems

Code Comparison

go-interview-practice:

func reverseString(s string) string {
    runes := []rune(s)
    for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
        runes[i], runes[j] = runes[j], runes[i]
    }
    return string(runes)
}

gotraining:

func BenchmarkSliceMapRange(b *testing.B) {
    for i := 0; i < b.N; i++ {
        for range slice {
            m[rand.Intn(9)] = "test"
        }
    }
}

The go-interview-practice example focuses on a common interview question (string reversal), while the gotraining example demonstrates performance benchmarking, showcasing its emphasis on more advanced topics.

go-interview-practice is tailored for interview preparation with concise examples, whereas gotraining provides a broader learning experience with in-depth explanations and practical exercises covering various aspects of Go programming.

156,852

A curated list of awesome Go frameworks, libraries and software

Pros of awesome-go

  • Comprehensive collection of Go resources, libraries, and tools
  • Well-organized and categorized for easy navigation
  • Regularly updated with community contributions

Cons of awesome-go

  • Lacks specific interview preparation focus
  • May be overwhelming for beginners due to its extensive content
  • Does not provide code examples or explanations

Code comparison

go-interview-practice includes code examples for interview questions:

func reverseString(s string) string {
    runes := []rune(s)
    for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
        runes[i], runes[j] = runes[j], runes[i]
    }
    return string(runes)
}

awesome-go does not provide code examples directly, but links to resources:

## String Manipulation

* [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions for Go.
* [sttr](https://github.com/abhimanyu003/sttr) - Cross-platform, cli app to perform various operations on string.

Summary

go-interview-practice is focused on interview preparation with code examples and explanations, while awesome-go is a comprehensive resource for Go developers, covering a wide range of topics and tools. go-interview-practice is more suitable for those specifically preparing for interviews, while awesome-go serves as a valuable reference for Go developers at all levels.

Curated list of Go design patterns, recipes and idioms

Pros of go-patterns

  • Comprehensive collection of design patterns and idioms in Go
  • Well-organized with clear explanations and examples
  • Covers a wide range of patterns, including creational, structural, and behavioral

Cons of go-patterns

  • Less focused on interview-specific questions and problems
  • May be overwhelming for beginners due to its extensive coverage
  • Not regularly updated (last commit over 3 years ago)

Code Comparison

go-patterns example (Singleton pattern):

type singleton struct {}

var instance *singleton
var once sync.Once

func GetInstance() *singleton {
    once.Do(func() {
        instance = &singleton{}
    })
    return instance
}

go-interview-practice example (Reverse a string):

func reverse(s string) string {
    runes := []rune(s)
    for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
        runes[i], runes[j] = runes[j], runes[i]
    }
    return string(runes)
}

The go-patterns repository focuses on design patterns and idiomatic Go code, while go-interview-practice concentrates on common interview questions and algorithms. go-patterns provides a broader understanding of Go programming concepts, whereas go-interview-practice is more targeted towards interview preparation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Go Interview Practice

GitHub Stars Go Version Challenges

RezaSi%2Fgo-interview-practice | Trendshift

⭐ Star the repo if it’s useful to you

Welcome to the Go Interview Practice repository! Master Go programming and ace your technical interviews with our interactive coding challenges.

Our interactive platform is now live at app.gointerview.dev Ć°ĀŸĀŽĀ‰ Explore challenges, track your progress, and elevate your Go skills with AI-powered mentorship.


Visual Overview

Interactive Challenge Platform

Our comprehensive web interface provides everything you need to practice and master Go programming:

A brief introduction to the project


Code & Test Experience

Go Interview Practice Web UI - challenge Go Interview Practice Web UI - result
Interactive Code Editor
Write, edit, and test your Go solutions
with syntax highlighting and real-time feedback
Instant Results & Analytics
Get immediate test results, performance metrics,
and detailed execution analysis

Competitive Leaderboard

Go Interview Practice - Main Leaderboard

Beautiful leaderboard showcasing top developers with challenge completion indicators, rankings, and achievements


Ć°ĀŸĀĀ† Top 10 Leaderboard

Our most accomplished Go developers, ranked by number of challenges completed:

Note: The data below is automatically updated by GitHub Actions when challenge scoreboards change.

Ć°ĀŸĀĀ…DeveloperSolvedRateAchievementProgress
Ć°ĀŸĀ„Ā‡
PolinaSvet
30/30100.0%MasterĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…
Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…
🄈
odelbos
30/30100.0%MasterĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…
Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…
Ć°ĀŸĀ„Ā‰
mick4711
23/3076.7%MasterĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬Āœ
Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…
4
Gandook
22/3073.3%MasterĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬Āœ
Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…
5
y1hao
21/3070.0%MasterĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬Āœ
Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…
6
JackDalberg
20/3066.7%MasterĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬Āœ
Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…
7
Cpoing
17/3056.7%ExpertĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…
Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬Āœ
8
ashwinipatankar Ć¢ĀĀ¤ĆÆĀøĀ
17/3056.7%ExpertĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬Āœ
Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…
9
t4e1
15/3050.0%ExpertĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬Āœ
Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬Āœ
10
Hikitak
14/3046.7%AdvancedĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬Āœ
Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢ĀœĀ…Ć¢ĀœĀ…Ć¢ĀœĀ…Ć¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢Ā¬ĀœĆ¢ĀœĀ…

Ć¢ĀœĀ… Completed • ⬜ Not Completed

All 30 challenges shown in two rows

Updated automatically based on 30 available challenges

Challenge Progress Overview

  • Total Challenges Available: 30
  • Active Developers: 147
  • Most Challenges Solved: 30 by PolinaSvet

Ć°ĀŸĀšĀ€ Package Challenges Leaderboard

Master Go packages through hands-on challenges! Each package offers a structured learning path with real-world scenarios.

Note: The data below is automatically updated by GitHub Actions when package challenge scoreboards change.

Ć°ĀŸĀĀ…DeveloperTotal SolvedPackagesAchievementChallenge Distribution
Ć°ĀŸĀ„Ā‡
odelbos
174 pkgsĆ°ĀŸĀ”Ā„ Package Mastercobra: 4 • fiber: 4 • gin: 4 • gorm: 5
🄈
PolinaSvet
82 pkgsĆ°ĀŸĀ’ĀŖ Package Advancedcobra: 4 • gin: 4
Ć°ĀŸĀ„Ā‰
RezaSi
76 pkgsĆ°ĀŸĀ’ĀŖ Package Advancedcobra: 1 • echo: 1 • fiber: 1 • gin: 1 • gorm: 1 • mongodb: 2
4
BrianHuang813
31 pkgĆ°ĀŸĀšĀ€ Package Intermediategin: 3
5
ashwinipatankar Ć¢ĀĀ¤ĆÆĀøĀ
31 pkgĆ°ĀŸĀšĀ€ Package Intermediatecobra: 3
6
22-7-co
21 pkg🌱 Package Beginnergin: 2
7
q1ngy
21 pkg🌱 Package Beginnergin: 2
8
GleeN987
11 pkg🌱 Package Beginnergin: 1
9
MarioPaez
11 pkg🌱 Package Beginnergin: 1
10
kelvin-yong
11 pkg🌱 Package Beginnergin: 1

Ć°ĀŸĀšĀ€ Package Challenges - Learn Go packages through practical, real-world scenarios

Ć°ĀŸĀ“Ā¦ Per-Package Progress

Cobra Package

RankDeveloperCompletedProgress
Ć°ĀŸĀ„Ā‡PolinaSvet4/4🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100%
🄈odelbos4/4🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100%
Ć°ĀŸĀ„Ā‰ashwinipatankar3/4🟩🟩🟩🟩🟩🟩🟩⬜⬜⬜ 75%
4RezaSi1/4🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 25%

Echo Package

RankDeveloperCompletedProgress
Ć°ĀŸĀ„Ā‡RezaSi1/4🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 25%

Fiber Package

RankDeveloperCompletedProgress
Ć°ĀŸĀ„Ā‡odelbos4/4🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100%
🄈RezaSi1/4🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 25%

Gin Package

RankDeveloperCompletedProgress
Ć°ĀŸĀ„Ā‡PolinaSvet4/4🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100%
🄈odelbos4/4🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100%
Ć°ĀŸĀ„Ā‰BrianHuang8133/4🟩🟩🟩🟩🟩🟩🟩⬜⬜⬜ 75%
422-7-co2/4🟩🟩🟩🟩🟩⬜⬜⬜⬜⬜ 50%
5q1ngy2/4🟩🟩🟩🟩🟩⬜⬜⬜⬜⬜ 50%

Gorm Package

RankDeveloperCompletedProgress
Ć°ĀŸĀ„Ā‡odelbos5/5🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100%
🄈RezaSi1/5🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 20%

Mongodb Package

RankDeveloperCompletedProgress
Ć°ĀŸĀ„Ā‡RezaSi2/5🟩🟩🟩🟩⬜⬜⬜⬜⬜⬜ 40%

Ć°ĀŸĀ“ĀŠ Package Challenge Statistics

  • Total Package Challenges Available: 26

  • Active Package Learners: 10

  • Available Packages: 6 (cobra, echo, fiber, gin, gorm, mongodb)

  • Most Package Challenges Solved: 17 by odelbos

Key Features

  • Interactive Web UI - Code, test, and submit solutions in your browser
  • Automated Testing - Get immediate feedback on your solutions
  • Automated Scoreboards - Solutions are automatically scored and ranked
  • Profile Badges - Beautiful auto-updating badges for GitHub profiles, LinkedIn, and portfolios
  • Performance Analytics - Track execution time and memory usage for your solutions
  • Comprehensive Learning - Each challenge includes detailed explanations and resources
  • Progressive Difficulty - From beginner to advanced Go concepts
  • AI Interview Simulation - Practice with AI-powered code review and interviewer questions

AI Interview Simulation

Transform your coding practice into realistic interview scenarios with our AI-powered features:

Real-Time Code Review - Get instant feedback on code quality, complexity analysis, and improvement suggestions

Dynamic Interview Questions - AI generates follow-up questions based on your solution approach

Progressive Hints - 4-level hint system from subtle nudges to detailed explanations

Multi-LLM Support - Works with Gemini (recommended), OpenAI, or Claude

Simply add your API key to experience interview-style feedback that adapts to your code and challenges you with realistic technical questions.

AI Interview Experience

AI Code Review - Real-time feedback and analysis AI Interview Questions - Dynamic follow-up questions
AI Code Review
Get instant feedback on code quality, complexity analysis,
and improvement suggestions from AI
Dynamic Interview Questions
AI generates follow-up questions based on your
solution approach and coding patterns

Quick Start

Important: You must fork this repository first before cloning, otherwise you won't be able to push your solutions or create pull requests!

Option 1: Web UI (Recommended)

# 1. First, fork this repository on GitHub
#    Go to https://github.com/RezaSi/go-interview-practice
#    Click the "Fork" button in the top-right corner

# 2. Clone your forked repository (replace 'yourusername' with your GitHub username)
git clone https://github.com/yourusername/go-interview-practice.git
cd go-interview-practice

# 3. Start the web interface
cd web-ui
go run main.go

# 4. Open http://localhost:8080 in your browser

# 5. Optional: Enable AI Features (Recommended) Ć°ĀŸĀ¤Ā–
# Add your free Gemini API key to enable AI interview simulation
echo "AI_PROVIDER=gemini" > web-ui/.env
echo "GEMINI_API_KEY=your_actual_api_key_here" >> web-ui/.env
# Get your free API key: https://makersuite.google.com/app/apikey
# Note: .env files are automatically ignored by git for security

After solving challenges and submitting solutions:

  • Your solutions will be automatically saved to your local repository
  • Follow the provided Git commands to commit and push your changes
  • Create a pull request to contribute your solutions back to the main project

Option 2: GitHub Codespaces (Cloud Development + Web UI)

Want to get started instantly without setting up anything locally? Use GitHub Codespaces!

  1. Fork this repository (if you haven't already)
  2. Open in Codespaces: Click the green "Code" button on your forked repository, then select "Codespaces" tab
  3. Create Codespace: Click "Create codespace on main"
  4. Start the Web UI: Once the codespace loads, open a terminal and run:
    cd web-ui
    go run main.go
    
  5. Optional: Enable AI Features: Add your Gemini API key:
    echo "AI_PROVIDER=gemini" > .env
    echo "GEMINI_API_KEY=your_actual_api_key_here" >> .env
    
  6. Access the Web UI: Click on the "Ports" tab in the bottom panel, then click the "Open in Browser" button next to port 8080

Benefits of using Codespaces:

  • No local setup required
  • Pre-configured Go environment
  • Full VS Code experience in the browser
  • Automatic port forwarding for the web UI
  • All dependencies pre-installed
  • Works on any device with a browser

Option 3: Railway Deployment (One-Click Cloud Hosting)

Deploy your own instance of the platform to the cloud with Railway!

Deploy on Railway

Perfect for:

  • Teams & Organizations: Private instance for internal use
  • Educators: Custom environment for students
  • Customization: Fork and modify for specific needs
  • Always Available: 24/7 cloud hosting with automatic scaling

Setup Steps:

  1. Click Deploy Button above
  2. Configure AI Features (optional but recommended):
  3. Access Your Platform: Railway provides instant public URL
  4. Start Using: Full platform with all challenges immediately available

Option 4: Command Line

# 1. Fork the repository first (see step 1 above)
# 2. Clone your fork and set up a challenge workspace
git clone https://github.com/yourusername/go-interview-practice.git
cd go-interview-practice
./create_submission.sh 1  # For challenge #1

# 3. Implement your solution in the editor of your choice

# 4. Run tests
cd challenge-1
./run_tests.sh

Profile Badges for Contributors

Showcase your Go programming achievements with auto-updating profile badges for GitHub profiles, portfolios, and personal websites.

Examples

Go Interview Practice Achievement

Go Interview Practice Compact

Quick Usage

[![Go Interview Practice Achievement](https://raw.githubusercontent.com/RezaSi/go-interview-practice/main/badges/YOUR_USERNAME.svg)](https://github.com/RezaSi/go-interview-practice)

After contributing solutions, your badges are automatically generated in badges/YOUR_USERNAME_badges.md with multiple formats ready to use.

Complete Badge Guide & Examples →

Challenge Categories

Beginner

Perfect for those new to Go or brushing up on fundamentals

Intermediate

For developers familiar with Go who want to deepen their knowledge

Advanced

Challenging problems that test mastery of Go and computer science concepts

How to Use This Repository

1. Explore Challenges

Browse challenges through the web UI or in the code repository. Each challenge includes:

  • Detailed problem statement
  • Function signature to implement
  • Comprehensive test cases
  • Learning resources

2. Implement Your Solution

Write code that solves the challenge requirements and passes all test cases.

3. Test & Refine

Use the built-in testing tools to validate your solution, then refine it for:

  • Correctness
  • Efficiency
  • Code quality

4. Submit & Compare

Submit your passing solution to be added to the scoreboard:

  • Your solution is automatically tested and scored
  • Execution time and resource usage are recorded
  • Your solution is ranked among other submissions
  • Access detailed performance metrics to optimize further

5. Learn & Progress

Review the learning materials to deepen your understanding of the concepts used.

Contributing

We welcome contributions! You can contribute in several ways:

Submit Solutions:

  • Solve existing classic or package challenges
  • Submit your solutions via pull request

Add New Challenges:

  • Package Challenges: Framework-specific practical applications (Gin, Cobra, GORM, etc.)

Quick Steps:

  1. Fork the repository
  2. Choose challenge type (classic or package-based)
  3. Follow our template structure
  4. Submit a pull request

See CONTRIBUTING.md for detailed guidelines on both challenge types.

Ć°ĀŸĀĀ¢ Premium Business Sponsors

Thank you to our premium sponsors who make this project possible!

Interested in premium sponsorship? Contact us to feature your company logo here and on our platform!


License

This project is licensed under the MIT License - see the LICENSE file for details.

Stargazers over time

Stargazers over time


Happy Coding! Ć°ĀŸĀ’Ā»