Table of contents

Child pages


Reviews of the language

Learning resources


Go: The Complete Developers Guide

Section 1: Getting Started

1. How to Get Help

2. Link to Completed Code

3. Environmental Setup

4. VSCode Installation

5. Go Support in VSCode

Section 2: A Simple Start

6. Boring Ol' Hello World

7. Five Important Questions

8. Go Packages

9. Import Statements

10. File Organization

Quiz 1

11. How to Access Course Diagrams

Section 3: Deeper Into Go

12. Project Overview

13. New Project Folder

14. Variable Declarations

15. Functions and Return Types

16. Slices and For Loops

17. OO Approach vs. Go Approach

18. Custom Type Declarations

19. Receiver Functions

20. Creating a New Deck

21. Slice Range Syntax

22. Multiple Return Values

23. Byte Slices

24. Deck to String

25. Joining a Slice of Strings

26. Saving Data to the Hard Drive

27. Reading From th Hard Drive

28. Error Handling

29. Shuffling a Deck

30. Random Number Generation

31. Testing With Go

32. Writing Useful Tests

33. Asserting Elements in a Slice

34. Testing File IO

35. Project Review

Section 4: Organizing Data With Structs

36. Structs in Go

37. Defining Structs

38. Declaring Structs

39. Updating Struct Values

40. Embedding Structs

41. Structs with Receiver Functions

42. Pass By Value

43. Structs with Pointers

44. Pointer Operations

45. Pointer Shortcut

46. Gotchas With Pointers

47. Reference vs. Value Types

Section 5: Maps

48. What's a Map?

49. Manipulating Maps

50. Iterating Over Maps

51. Differences Between Maps and Structs

Section 6: Interfaces

52. Purpose of Interfaces

53. Problems Without Interfaces

54. Interfaces in Practice

55. Rules of Interfaces

56. Extra Interface Notes

57. The HTTP Package

58. Reading the Docs

59. More Interface Syntax

60. Interface Review

61. The Reader Interface

62. More on the Reader Interface

63. Working with the Read Function

64. The Writer Interface

65. The io.Copy Function

66. The Implementation of io.Copy

67. A Custom Writer

Section 7: Channels and Go Routines

68. Website Status Checker

69. Printing Site Status

70. Serial Link Checking

71. Go Routines

72. Theory of Go Routines

73. Channels

74. Channel Implementation

75. Blocking Channels

76. Receiving Messages

77. Repeating Routines

78. Alternative Loop Syntax

79. Sleeping a Routine

80. Function Literals

81. Channels Gotcha!