Gofinity
GitHub
track 01

Go Basics

Go from zero to hero: 22 concepts, each taught by a lesson and drilled by two or three test-driven challenges. Syntax and values first, then the type system, then errors, generics and packages, and finally the parts of Go you cannot get anywhere else: goroutines, channels, sync and context. Every challenge is graded by tests you can read.

63 challenges~28h 5m total5,700 XP available

Challenges

by concept, in order

What Go is

read the lesson
  1. Not startedHello, GofinityEasy~10m+50 XP
  2. Not startedGreeting LinesEasy~15m+50 XP

Values and variables

read the lesson
  1. Not startedVariables and ConstantsEasy~15m+50 XP
  2. Not startedZero ValuesEasy~20m+50 XP
  3. Not startedWeekdays with iotaMedium~25m+100 XP

Basic types

read the lesson
  1. Not startedType ConversionsEasy~15m+50 XP
  2. Not startedRunes and BytesMedium~20m+100 XP
  3. Not startedTemperature ConversionMedium~25m+100 XP

Control flow

read the lesson
  1. Not startedFizzBuzzEasy~15m+50 XP
  2. Not startedGrade SwitchMedium~20m+100 XP
  3. Not startedLoop PatternsMedium~30m+100 XP
  1. Not startedMultiple ReturnsEasy~20m+50 XP
  2. Not startedVariadic SumMedium~25m+100 XP
  3. Not startedClosure CounterMedium~30m+100 XP

Defer, Panic and Recover

read the lesson
  1. Not startedDefer OrderEasy~20m+50 XP
  2. Not startedSafe DivideMedium~25m+100 XP
  3. Not startedCleanup with deferMedium~30m+100 XP

Slices and Arrays

read the lesson
  1. Not startedSlice BasicsEasy~20m+50 XP
  2. Not startedAppend and CopyMedium~25m+100 XP
  3. Not startedSlice AliasingMedium~30m+100 XP
  1. Not startedMap BasicsEasy~20m+50 XP
  2. Not startedWord CountMedium~25m+100 XP
  3. Not startedMap of SlicesMedium~30m+100 XP

Strings and Formatting

read the lesson
  1. Not startedStrings ToolkitEasy~20m+50 XP
  2. Not startedParsing with strconvMedium~25m+100 XP
  3. Not startedString BuilderMedium~30m+100 XP
  1. Not startedStruct BasicsEasy~20m+50 XP
  2. Not startedStruct EmbeddingMedium~25m+100 XP
  3. Not startedStruct EqualityMedium~30m+100 XP

Methods and Pointers

read the lesson
  1. Not startedValue versus Pointer ReceiverEasy~20m+50 XP
  2. Not startedMutating MethodsMedium~30m+100 XP
  3. Not startedPointer SafetyHard~35m+150 XP

Interfaces

read the lesson
  1. Not startedThe Shape InterfaceEasy~20m+50 XP
  2. Not startedType SwitchMedium~30m+100 XP
  3. Not startedThe Nil Interface TrapHard~35m+150 XP
  1. Not startedError ValuesEasy~20m+50 XP
  2. Not startedWrapping ErrorsMedium~30m+100 XP
  3. Not startedCustom Error TypeHard~35m+150 XP
  1. Not startedGeneric Map and FilterEasy~25m+50 XP
  2. Not startedNumber ConstraintsMedium~30m+100 XP
  3. Not startedGeneric StackHard~35m+150 XP

Packages and Modules

read the lesson
  1. Not startedSplit into a PackageEasy~20m+50 XP
  2. Not startedExported IdentifiersMedium~30m+100 XP

JSON and Encoding

read the lesson
  1. Not startedMarshalling JSONEasy~25m+50 XP
  2. Not startedDecoding JSONMedium~30m+100 XP
  3. Not startedJSON TagsHard~35m+150 XP

Goroutines

read the lesson
  1. Not startedGoroutines and WaitGroupEasy~25m+50 XP
  2. Not startedParallel SumMedium~30m+100 XP
  3. Not startedFan Out WorkHard~35m+150 XP
  1. Not startedChannel BasicsEasy~25m+50 XP
  2. Not startedBuffered ChannelsMedium~30m+100 XP
  3. Not startedSelect and TimeoutHard~35m+150 XP

Sync Primitives

read the lesson
  1. Not startedMutex CounterEasy~25m+50 XP
  2. Not startedRWMutex CacheMedium~30m+100 XP
  3. Not startedSync OnceHard~35m+150 XP
  1. Not startedContext CancellationEasy~25m+50 XP
  2. Not startedContext DeadlinesMedium~30m+100 XP
  3. Not startedContext ValuesHard~30m+150 XP
  1. Not startedTable-Driven TestsEasy~25m+50 XP
  2. Not startedSubtests and HelpersMedium~35m+100 XP
  3. Not startedBenchmark BasicsHard~35m+150 XP
  1. Not startedCapstone: Word FrequencyMedium~40m+100 XP
  2. Not startedCapstone: Log ParserHard~50m+150 XP