-
Notifications
You must be signed in to change notification settings - Fork 1
/
00-course.slide
131 lines (102 loc) · 2.17 KB
/
00-course.slide
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Course overview
Course Go
Tags: golang, go
## Course
- Open-source
- All materials are online and public
- Feel free to participate
- Maintained under the **course-go** GitHub organization
- [github.com/course-go](https://github.com/course-go)
- [course-go.dev](https://course-go.dev)
- Content split up to multiple repositories
- [course](https://github.com/course-go/course) gives basic insight into the course
## Content
- 11 [lectures](https://github.com/course-go/lectures)
- Includes hands-on [exercises](https://github.com/course-go/exercises)
- 5 [homework](https://github.com/course-go/homework) tasks
- 14-day deadlines
- 7-day review periods
- Overlaps with successive homework task
- Up to one resubmission for each task
- Final project
- Solo/Team
- Custom assignments
- Open-source contribution/s
## Requirements
- Total of **100 points**
- 50 points for homework tasks
- Points vary between tasks based on their difficulty
- 50 points for project
- **70 points** required to pass
- Bonus points for:
- Activity at the seminars
- Exceptional or creative solutions
- Implementing optional homework task extensions
## Course Outline
## Introduction (Week 01)
- Introduction to Go
- IDEs and editors
- Installing Go
- Running Go
- Project basics
- Resources
## Fundamentals #1 (Week 02)
- Built-in types
- Variables
- Control flow
- Functions
- Custom types
- Pointers
## Fundamentals #2 (Week 03)
- Interfaces
- Errors
- Arrays
- Slices
- Maps
- Range
## Concurrency & Parallelism (Week 04)
- Goroutines
- Runtime
- Channels
- Select
- Related packages
## Advanced #1 (Week 05)
- Generics
- Packages
- Testing
## Advanced #2 (Week 06)
- Benchmarks
- Optimizations
- CGo
- Unsafe & Reflect
## REST APIs (Week 07)
- JSON
- HTTP
- REST API
- HTTP package
- Routers & Web frameworks
- OpenAPI
- Templating
## Containers (Week 08)
- Containerization
- YAML
- Docker
- Kubernetes
## Databases (Week 09)
- SQL
- RDBMSs
- Migrations
- databases/sql
- sqlx
- sqlc
- GORM
## Infrastructure (Week 10)
- CI/CD
- Infrastructure
- GCP
## Observability (Week 11)
- Health
- Logs
- Metrics
- Traces
- OpenTelemetry