Skip to content

Commit ca70bbc

Browse files
committed
add
1 parent bee0da1 commit ca70bbc

30 files changed

+8589
-3825
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ yarn-error.log*
3434
*.tsbuildinfo
3535
next-env.d.ts
3636

37+
# Go specific
3738
# If you prefer the allow list template instead of the deny list, see community template:
3839
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
3940
#
Lines changed: 28 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,45 @@
11
---
2-
title: 'Concurrent Programming with Go'
3-
slug: 'concurrent-programming-with-go'
4-
coverImage: '/images/courses/concurrent-programming-with-go.png'
5-
description: "Learn how to write concurrent programs in Go using goroutines and channels. This course covers concurrency patterns, synchronization, and best practices for writing efficient concurrent code in Go."
6-
level: 'Intermediate'
7-
tags: ['Go', 'Concurrency']
2+
title: Concurrent Programming with Go
3+
description: Learn how to write concurrent programs in Go using goroutines and channels. This course covers concurrency patterns, synchronization, and best practices for writing efficient concurrent code in Go.
4+
coverImage: /images/courses/concurrent-programming-with-go.png
5+
level: Intermediate
6+
tags: [Go, Concurrency]
87
labs:
9-
- title: 'Introduction to Goroutines'
10-
slug: 'introduction-to-goroutines'
11-
description: "Learn about goroutines, Go's lightweight threads for concurrent execution."
12-
- title: 'Channels Basics'
13-
slug: 'channels-basics'
14-
description: 'Understand how to use channels for communication between goroutines.'
15-
- title: 'Buffered Channels'
16-
slug: 'buffered-channels'
17-
description: 'Learn about buffered channels and when to use them.'
18-
- title: 'Select Statement'
19-
slug: 'select-statement'
20-
description: 'Master the select statement for handling multiple channel operations.'
21-
- title: 'Mutex and Atomic Operations'
22-
slug: 'mutex-and-atomic-operations'
23-
description: 'Learn about mutual exclusion and atomic operations for safe concurrent access.'
8+
- title: Introduction to Goroutines
9+
slug: intro-to-goroutines
10+
description: Learn about goroutines and how to create concurrent functions.
11+
- title: Working with Channels
12+
slug: working-with-channels
13+
description: Master Go channels for communication between goroutines.
14+
- title: Synchronization Patterns
15+
slug: synchronization-patterns
16+
description: Learn different patterns for synchronizing concurrent operations.
2417
---
2518

2619
# Concurrent Programming with Go
2720

28-
Welcome to the Concurrent Programming with Go course! This course will teach you how to write efficient concurrent programs using Go's powerful concurrency primitives.
21+
Welcome to Concurrent Programming with Go! This course will teach you how to harness the power of Go's concurrency model to build efficient, concurrent applications.
2922

3023
## What You'll Learn
3124

32-
In this course, you'll learn:
33-
34-
- How to create and manage goroutines
35-
- Communication between goroutines using channels
36-
- Synchronization techniques
37-
- Concurrency patterns
38-
- Best practices for writing concurrent code
25+
- Go's goroutines for concurrent execution
26+
- Channels for communication between goroutines
27+
- Synchronization primitives like Mutex and WaitGroup
28+
- Common concurrency patterns
29+
- Detecting and fixing race conditions
30+
- Creating efficient concurrent algorithms
31+
- Best practices for concurrent programming
3932

4033
## Prerequisites
4134

42-
To get the most out of this course, you should have:
35+
This course assumes you have:
4336

4437
- Basic knowledge of Go programming
45-
- Understanding of functions and data structures in Go
46-
- Familiarity with error handling in Go
47-
48-
If you're new to Go, we recommend completing the "Quick Start with Golang" course first.
49-
50-
## Why Concurrency in Go?
51-
52-
Concurrency is one of Go's strongest features. Go was designed with concurrency in mind, making it easier to write programs that can perform multiple tasks simultaneously. This is especially important in today's world, where applications need to handle multiple requests, process large amounts of data, and provide responsive user interfaces.
53-
54-
Go's approach to concurrency is different from many other languages. Instead of using threads and locks, Go uses goroutines and channels, which provide a simpler and more efficient way to write concurrent code.
55-
56-
## Sample Code
57-
58-
Here's a simple example of using goroutines:
59-
60-
```go
61-
package main
62-
63-
import (
64-
"fmt"
65-
"time"
66-
)
67-
68-
func sayHello() {
69-
fmt.Println("Hello from goroutine!")
70-
}
71-
72-
func main() {
73-
go sayHello() // Start a new goroutine
74-
75-
// Wait for the goroutine to finish
76-
time.Sleep(100 * time.Millisecond)
77-
78-
fmt.Println("Hello from main function!")
79-
}
80-
```
81-
82-
And here's an example of using channels for communication between goroutines:
83-
84-
```go
85-
package main
86-
87-
import "fmt"
88-
89-
func sum(s []int, c chan int) {
90-
sum := 0
91-
for _, v := range s {
92-
sum += v
93-
}
94-
c <- sum // Send sum to channel
95-
}
96-
97-
func main() {
98-
s := []int{7, 2, 8, -9, 4, 0}
99-
100-
c := make(chan int)
101-
go sum(s[:len(s)/2], c)
102-
go sum(s[len(s)/2:], c)
103-
104-
x, y := <-c, <-c // Receive from channel
105-
106-
fmt.Println(x, y, x+y)
107-
}
108-
```
38+
- Completed the "Quick Start with Golang" course or equivalent
39+
- Understanding of functions and error handling in Go
10940

110-
## Getting Started
41+
## Course Structure
11142

112-
To get started, click on the first lab: "Introduction to Goroutines". This will introduce you to goroutines, Go's lightweight threads for concurrent execution.
43+
This course consists of 5 hands-on labs that will guide you through building increasingly complex concurrent applications. Each lab includes practical examples and exercises to help you master concurrent programming in Go.
11344

114-
Happy concurrent programming!
45+
Let's start building fast, concurrent programs with Go!
Lines changed: 28 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,46 @@
11
---
2-
title: 'Quick Start with Golang'
3-
slug: 'quick-start-with-golang'
4-
coverImage: '/images/courses/quick-start-with-golang.png'
5-
description: 'Master Golang fundamentals in this hands-on course designed for beginners. Learn essential concepts like data types, control structures, functions, packages, and data structures through interactive labs and practical challenges. Perfect for those starting their Golang programming journey.'
6-
level: 'Beginner'
7-
tags: ['Go', 'Programming']
2+
title: Quick Start with Golang
3+
description: Master Golang fundamentals in this hands-on course designed for beginners. Learn essential concepts like data types, control structures, functions, packages, and data structures.
4+
coverImage: /images/courses/quick-start-with-golang.png
5+
level: Beginner
6+
tags: [Go, Programming]
87
labs:
9-
- title: 'Your First Go Program'
10-
slug: 'your-first-go-program'
11-
description: 'Write your first Go program and understand the basic structure of Go code.'
12-
- title: 'Go Data Types and Variables'
13-
slug: 'go-data-types-and-variables'
14-
description: "Learn about Go's data types and how to declare and use variables."
15-
- title: 'Control Structures in Go'
16-
slug: 'control-structures-in-go'
17-
description: 'Master control flow with if statements, loops, and switch cases in Go.'
18-
- title: 'Functions in Go'
19-
slug: 'functions-in-go'
20-
description: 'Learn how to define and use functions in Go, including multiple return values.'
21-
- title: 'Arrays and Slices'
22-
slug: 'arrays-and-slices'
23-
description: 'Understand how to work with arrays and slices in Go.'
24-
- title: 'Maps and Structs'
25-
slug: 'maps-and-structs'
26-
description: "Learn about Go's maps and structs for organizing data."
27-
- title: 'Pointers in Go'
28-
slug: 'pointers-in-go'
29-
description: 'Understand pointers and memory management in Go.'
30-
- title: 'Methods and Interfaces'
31-
slug: 'methods-and-interfaces'
32-
description: 'Learn how to define methods and implement interfaces in Go.'
33-
- title: 'Error Handling'
34-
slug: 'error-handling'
35-
description: 'Master error handling patterns in Go.'
36-
- title: 'Packages and Modules'
37-
slug: 'packages-and-modules'
38-
description: 'Learn how to organize code with packages and modules in Go.'
8+
- title: Setting up Go Environment
9+
slug: setup-go-environment
10+
description: Learn how to install Go and set up your development environment.
11+
- title: Your First Go Program
12+
slug: your-first-go-program
13+
description: Write and run your first Go program.
14+
- title: Variables and Data Types
15+
slug: variables-and-data-types
16+
description: Learn about Go's variable declaration and basic data types.
3917
---
4018

4119
# Quick Start with Golang
4220

43-
Welcome to the Quick Start with Golang course! This course is designed to help you learn the fundamentals of Go programming language quickly and effectively.
21+
Welcome to the Quick Start with Golang course! This course is designed to help you learn the fundamentals of the Go programming language.
4422

4523
## What You'll Learn
4624

47-
In this course, you'll learn:
48-
49-
- The basic syntax and structure of Go programs
50-
- Variables, data types, and operators
51-
- Control structures like if statements, loops, and switch cases
52-
- Functions and methods
53-
- Data structures including arrays, slices, maps, and structs
54-
- Pointers and memory management
55-
- Object-oriented programming with methods and interfaces
25+
- Setting up your Go development environment
26+
- Basic syntax and data types
27+
- Control structures
28+
- Functions and packages
29+
- Basic data structures
5630
- Error handling
57-
- Packages and modules
31+
- Testing in Go
5832

5933
## Prerequisites
6034

61-
This course is designed for beginners, so no prior Go experience is required. However, some programming experience in any language will be helpful.
35+
This course assumes no prior knowledge of Go. However, basic programming experience in any language will be helpful.
6236

6337
## Course Structure
6438

65-
The course consists of 10 interactive labs, each focusing on a specific aspect of Go programming. Each lab includes:
66-
67-
- Theoretical explanations
68-
- Code examples
69-
- Hands-on exercises
70-
- Challenges to test your understanding
71-
72-
## Sample Code
73-
74-
Here's a simple "Hello, World!" program in Go:
75-
76-
```go
77-
package main
78-
79-
import "fmt"
80-
81-
func main() {
82-
fmt.Println("Hello, World!")
83-
}
84-
```
85-
86-
And here's an example of a function that calculates the factorial of a number:
87-
88-
```go
89-
package main
90-
91-
import "fmt"
92-
93-
func factorial(n int) int {
94-
if n == 0 {
95-
return 1
96-
}
97-
return n * factorial(n-1)
98-
}
99-
100-
func main() {
101-
fmt.Println("Factorial of 5:", factorial(5))
102-
}
103-
```
104-
105-
## Getting Started
39+
This course consists of 10 interactive labs. Each lab includes:
10640

107-
To get started, click on the first lab: "Your First Go Program". This will introduce you to the basic structure of a Go program and help you write your first Go code.
41+
1. Theory and explanations
42+
2. Code examples
43+
3. Interactive exercises
44+
4. Quizzes to test your understanding
10845

109-
Happy coding!
46+
Let's get started with your Go journey!
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
title: Web Development with Go
3+
description: Build web applications with Go's standard library and popular frameworks. Learn how to create RESTful APIs, handle HTTP requests, and connect to databases.
4+
coverImage: /images/courses/web-development-with-go.png
5+
level: Intermediate
6+
tags: [Go, Web Development]
7+
labs:
8+
- title: HTTP Server Basics
9+
slug: http-server-basics
10+
description: Learn how to create a simple HTTP server using Go's net/http package.
11+
- title: Routing with Gorilla Mux
12+
slug: routing-with-gorilla-mux
13+
description: Use the Gorilla Mux router to create more complex routes.
14+
- title: Building a REST API
15+
slug: building-a-rest-api
16+
description: Implement a RESTful API with JSON responses.
17+
---
18+
19+
# Web Development with Go
20+
21+
This course will teach you how to build web applications and APIs using Go. You'll learn both the standard library approach and popular frameworks like Gin and Echo.
22+
23+
## What You'll Learn
24+
25+
- Go's net/http package for building web servers
26+
- RESTful API development
27+
- Working with JSON and other data formats
28+
- Database connections with SQL and GORM
29+
- Authentication and authorization
30+
- Middleware patterns
31+
- Testing web applications
32+
33+
## Prerequisites
34+
35+
Before starting this course, you should:
36+
37+
- Have a basic understanding of Go programming
38+
- Be familiar with HTTP and web concepts
39+
- Have completed the "Quick Start with Golang" course or equivalent
40+
41+
## Course Structure
42+
43+
This course includes 5 in-depth labs that will guide you through building increasingly complex web applications in Go. You'll start with simple HTTP servers and progress to full-featured REST APIs with database integration.
44+
45+
Let's begin your journey into web development with Go!

content/projects/golang-cli-tool.mdx

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: Build a CLI Task Manager
3+
description: Create a command-line task manager application with Go. Learn how to handle user input, store data, and build a useful CLI tool.
4+
coverImage: /images/projects/cli-task-manager.png
5+
difficulty: Beginner
6+
technologies: [Go, CLI]
7+
demoUrl: https://example.com/demo-cli
8+
repoUrl: https://github.com/example/cli-task-manager
9+
---
10+
11+
# Building a CLI Task Manager in Go
12+
13+
In this project, you'll build a command-line task manager application using Go. This is a practical project that will help you learn how to create useful CLI tools while mastering Go programming concepts.
14+
15+
## Project Overview
16+
17+
The CLI task manager will allow users to:
18+
19+
- Add new tasks with descriptions and due dates
20+
- List all tasks, filtering by status (completed, pending)
21+
- Mark tasks as complete
22+
- Delete tasks
23+
- Export tasks to JSON or CSV format
24+
25+
## What You'll Learn
26+
27+
- Structuring a CLI application in Go
28+
- Using the Cobra library for building command-line interfaces
29+
- Handling user input and displaying formatted output
30+
- Storing data in a local file
31+
- Error handling in a CLI context
32+
- Building and distributing a Go CLI application
33+
34+
## Prerequisites
35+
36+
- Basic knowledge of Go programming
37+
- Familiarity with command-line interfaces
38+
- Understanding of basic data structures
39+
40+
## Project Structure
41+
42+
```
43+
cli-task-manager/
44+
├── main.go
45+
├── cmd/
46+
│ ├── root.go
47+
│ ├── add.go
48+
│ ├── list.go
49+
│ ├── complete.go
50+
│ ├── delete.go
51+
│ └── export.go
52+
└── models/
53+
└── task.go
54+
```
55+
56+
Let's start building your Go CLI task manager!

0 commit comments

Comments
 (0)