工具介绍
互动的 Go 面试平台 - 30 多个编码挑战,提供即时反馈、AI 面试模拟、竞争榜单和自动化测试。从
# Go Interview Practice
Welcome to the **Go Interview Practice** repository! Master Go programming and ace your technical interviews with our interactive coding challenges.
Our interactive platform is live at **[app.gointerview.dev](https://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:
---
### Code & Test Experience
---
### Competitive Leaderboard
---
## 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.
| | Developer | Solved | Rate | Achievement | Progress |
|:---:|:---:|:---:|:---:|:---:|:---|
| |
**[PolinaSvet](https://github.com/PolinaSvet)** | **30**/30 | **100.0%** | Master | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ |
| |
**[PopovMarko](https://github.com/PopovMarko)** | **30**/30 | **100.0%** | Master | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ |
| |
**[mvsouza](https://github.com/mvsouza)** | **30**/30 | **100.0%** | Master | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ |
| 4 |
**[nzamulov](https://github.com/nzamulov)** | **30**/30 | **100.0%** | Master | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ |
| 5 |
**[odelbos](https://github.com/odelbos)** | **29**/30 | **96.7%** | Master | ✅⬜✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ |
| 6 |
**[imankhodadi](https://github.com/imankhodadi)** | **28**/30 | **93.3%** | Master | ✅✅✅✅✅✅✅✅✅✅✅⬜✅⬜✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ |
| 7 |
**[atplay90](https://github.com/atplay90)** | **25**/30 | **83.3%** | Master | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅⬜⬜⬜✅⬜⬜✅ |
| 8 |
**[evassilyev](https://github.com/evassilyev)** | **22**/30 | **73.3%** | Master | ✅✅✅✅✅✅✅⬜⬜✅⬜⬜✅✅⬜
✅✅✅✅✅✅✅✅✅✅⬜✅⬜⬜✅ |
| 9 |
**[mick4711](https://github.com/mick4711)** | **22**/30 | **73.3%** | Master | ✅✅✅✅✅✅✅✅✅✅⬜⬜✅✅⬜
✅✅✅✅⬜✅✅✅⬜⬜✅✅⬜⬜✅ |
| 10 |
**[Gandook](https://github.com/Gandook)** | **21**/30 | **70.0%** | Master | ✅⬜✅✅✅✅✅✅✅✅⬜⬜✅⬜⬜
⬜✅✅✅⬜✅✅✅✅✅✅✅⬜⬜✅ |
*Updated automatically based on 30 available challenges*
### Challenge Progress Overview
- **Total Challenges Available**: 30
- **Active Developers**: 390
- **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.
| | Developer | Total Solved | Packages | Achievement | Challenge Distribution |
|:---:|:---:|:---:|:---:|:---:|:---|
| |
**[odelbos](https://github.com/odelbos)** | **17** | **4** pkgs | Package Master | **cobra**: 4 • **fiber**: 4 • **gin**: 4 • **gorm**: 5 |
| |
**[PolinaSvet](https://github.com/PolinaSvet)** | **8** | **2** pkgs | Package Advanced | **cobra**: 4 • **gin**: 4 |
| |
**[PopovMarko](https://github.com/PopovMarko)** | **8** | **3** pkgs | Package Advanced | **cobra**: 3 • **gin**: 4 • **gorm**: 1 |
| 4 |
**[RezaSi](https://github.com/RezaSi)** | **7** | **6** pkgs | Package Advanced | **cobra**: 1 • **echo**: 1 • **fiber**: 1 • **gin**: 1 • **gorm**: 1 • **mongodb**: 2 |
| 5 |
**[imankhodadi](https://github.com/imankhodadi)** | **7** | **2** pkgs | Package Advanced | **gin**: 4 • **gorm**: 3 |
| 6 |
**[22-7-co](https://github.com/22-7-co)** | **5** | **2** pkgs | Package Advanced | **gin**: 4 • **gorm**: 1 |
| 7 |
**[Mxn-ptr](https://github.com/Mxn-ptr)** | **5** | **2** pkgs | Package Advanced | **gin**: 4 • **gorm**: 1 |
| 8 |
**[Onkar-25](https://github.com/Onkar-25)** | **5** | **3** pkgs | Package Advanced | **gin**: 2 • **gorm**: 2 • **mongodb**: 1 |
| 9 |
**[Sylinsic](https://github.com/Sylinsic)** | **5** | **2** pkgs | Package Advanced | **gin**: 2 • **gorm**: 3 |
| 10 |
**[ItalloMangueBoy](https://github.com/ItalloMangueBoy)** | **4** | **1** pkg | Package Intermediate | **gin**: 4 |
### Per-Package Progress
#### Cobra Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| | **[PolinaSvet](https://github.com/PolinaSvet)** | 4/4 | 100% |
| | **[odelbos](https://github.com/odelbos)** | 4/4 | 100% |
| | **[PopovMarko](https://github.com/PopovMarko)** | 3/4 | ⬜⬜⬜ 75% |
| 4 | **[ashwinipatankar](https://github.com/ashwinipatankar)** | 3/4 | ⬜⬜⬜ 75% |
| 5 | **[RezaSi](https://github.com/RezaSi)** | 1/4 | ⬜⬜⬜⬜⬜⬜⬜⬜ 25% |
#### Echo Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| | **[RezaSi](https://github.com/RezaSi)** | 1/4 | ⬜⬜⬜⬜⬜⬜⬜⬜ 25% |
#### Fiber Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| | **[odelbos](https://github.com/odelbos)** | 4/4 | 100% |
| | **[0xSangeet](https://github.com/0xSangeet)** | 1/4 | ⬜⬜⬜⬜⬜⬜⬜⬜ 25% |
| | **[RezaSi](https://github.com/RezaSi)** | 1/4 | ⬜⬜⬜⬜⬜⬜⬜⬜ 25% |
#### Gin Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| | **[22-7-co](https://github.com/22-7-co)** | 4/4 | 100% |
| | **[ItalloMangueBoy](https://github.com/ItalloMangueBoy)** | 4/4 | 100% |
| | **[Mxn-ptr](https://github.com/Mxn-ptr)** | 4/4 | 100% |
| 4 | **[PolinaSvet](https://github.com/PolinaSvet)** | 4/4 | 100% |
| 5 | **[PopovMarko](https://github.com/PopovMarko)** | 4/4 | 100% |
#### Gorm Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| | **[odelbos](https://github.com/odelbos)** | 5/5 | 100% |
| | **[Sylinsic](https://github.com/Sylinsic)** | 3/5 | ⬜⬜⬜⬜ 60% |
| | **[aswinsreeraj](https://github.com/aswinsreeraj)** | 3/5 | ⬜⬜⬜⬜ 60% |
| 4 | **[imankhodadi](https://github.com/imankhodadi)** | 3/5 | ⬜⬜⬜⬜ 60% |
| 5 | **[Onkar-25](https://github.com/Onkar-25)** | 2/5 | ⬜⬜⬜⬜⬜⬜ 40% |
#### Mongodb Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| | **[RezaSi](https://github.com/RezaSi)** | 2/5 | ⬜⬜⬜⬜⬜⬜ 40% |
| | **[Onkar-25](https://github.com/Onkar-25)** | 1/5 | ⬜⬜⬜⬜⬜⬜⬜⬜ 20% |
| | **[maket12](https://github.com/maket12)** | 1/5 | ⬜⬜⬜⬜⬜⬜⬜⬜ 20% |
### Package Challenge Statistics
- **Total Package Challenges Available**: 26
- **Active Package Learners**: 56
- **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
---
## 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)
```
…
```
**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:
```bash
cd web-ui
go run main.go
```
5. **Optional: Enable AI Features**: Add your Gemini API key:
```bash
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: Command Line
```bash
# 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
### Quick Usage
```markdown
```
After contributing solutions, your badges are automatically generated in [`badges/YOUR_USERNAME_badges.md`](badges/) with multiple formats ready to use.
**[Complete Badge Guide & Examples →](docs/profile-badges-guide.md)**
## Challenge Categories
### Beginner
Perfect for those new to Go or brushing up on fundamentals
- **[Challenge 1](./challenge-1)**: Sum of Two Numbers
- **[Challenge 2](./challenge-2)**: Reverse a String
- **[Challenge 3](./challenge-3)**: Employee Data Management
- **[Challenge 6](./challenge-6)**: Word Frequency Counter
- **[Challenge 18](./challenge-18)**: Temperature Converter
- **[Challenge 21](./challenge-21)**: Binary Search Implementation
- **[Challenge 22](./challenge-22)**: Greedy Coin Change
### Intermediate
For developers familiar with Go who want to deepen their knowledge
- **[Challenge 4](./challenge-4)**: Concurrent Graph BFS Queries
- **[Challenge 5](./challenge-5)**: HTTP Authentication Middleware
- **[Challenge 7](./challenge-7)**: Bank Account with Error Handling
- **[Challenge 10](./challenge-10)**: Polymorphic Shape Calculator
- **[Challenge 13](./challenge-13)**: SQL Database Operations
- **[Challenge 14](./challenge-14)**: Microservices with gRPC
- **[Challenge 16](./challenge-16)**: Performance Optimization
- **[Challenge 17](./challenge-17)**: Interactive Debugging Tutorial
- **[Challenge 19](./challenge-19)**: Slice Operations
- **[Challenge 20](./challenge-20)**: Circuit Breaker Pattern
- **[Challenge 23](./challenge-23)**: String Pattern Matching
- **[Challenge 27](./challenge-27)**: Go Generics Data Structures
- **[Challenge 30](./challenge-30)**: Co