Skip to main content
CourseFlix

Web Development with Google’s Go (golang) Programming Language

18h 59m 31s
English
Paid

Embrace the Future of Web Development with Google's Go (Golang) programming language, engineered to handle performant web applications at an unrivaled scale. Launched by Google and open-sourced in 2009, Go has rapidly become the top choice for developing web applications, APIs, microservices, and beyond. Outpacing competitors like Ruby on Rails, Python, and PHP, Go is the powerful, performant, and scalable solution for modern web development.

Why Choose This Course?

Gain a solid foundation in web development with this comprehensive course. Here's a glimpse of what you'll master:

Architecture

  • Networking architecture
  • Client/server architecture
  • Request/response pattern
  • Understanding RFC standards by the IETF
  • Format of client requests and server responses

Templates

  • The role of templates in server-side programming
  • Working with templates from Go’s standard library
  • Modifying data structures for templates compatibility

Servers

  • The relationship between TCP and HTTP
  • Building a TCP server for HTTP requests
  • Creating an in-memory database using TCP servers
  • Designing RESTful TCP servers for routes and methods
  • Understanding web server variations: servemux, multiplexer, mux
  • Utilizing third-party servers like Julien Schmidt's router
  • Importance of HTTP methods and status codes

The net/http Package

  • Streamline development with the net/http package
  • Explore nuances of the net/http package
  • Understanding the handler interface
  • Using http.ListenAndServe
  • Creating and using a custom servemux
  • Understanding http.Handle, http.Handler, and related functions
  • Using http.ServeContent, http.ServeFile, and http.FileServer
  • Working with http.StripPrefix and http.NotFoundHandler

State & Sessions

  • Creating secure state with UUIDs, cookies, and URLs
  • Implementing session management: login, permissions, logout
  • Managing session expiration

Deployment

  • Purchasing a domain for your web applications
  • Deploying applications to Google Cloud

Amazon Web Services

  • Utilizing AWS for cloud services
  • Setting up a virtual Linux machine on AWS EC2
  • Managing virtual machines with SSH
  • Transferring files using SCP
  • Understanding and implementing load balancers on AWS

Database Management

MySQL

  • Integrating MySQL with AWS
  • Connecting MySQL Workbench to AWS

MongoDB

  • Understanding CRUD operations
  • Using MongoDB with Go

MVC Design Pattern

  • Mastering the MVC design pattern
  • Applying MVC in your projects

Docker

  • Comparing virtual machines and containers
  • Leveraging Docker's benefits
  • Implementing Docker containers and registries
  • Deploying Docker with Go

Google Cloud Tools

  • Using Google Cloud Storage and no-SQL datastore
  • Implementing Google Cloud Memcache and App Engine

Web Development Toolkit

  • Handling AJAX and JSON in web applications
  • JSON in Go with json.Marshal and json.Unmarshal
  • Securing web applications with HMAC and Base64 encoding
  • Utilizing web storage and managing context
  • Implementing TLS & HTTPS

Build and Deploy Applications

  • Create a photo blog
  • Develop a Twitter clone

By the end of this course, you will have mastered the fundamentals of web development, equipped with the skills to become an outstanding web developer.

Meet Your Instructor

I'm Todd McLeod, tenured faculty in Computer Information Technology at Fresno City College and adjunct faculty in Computer Science at California State University Fresno. With over 20 years of experience, I am confident this course will transform you into a top-rated web developer.

Who Should Enroll?

  • This course serves as a university-level introduction to web programming.
  • Ideal for those with a foundational understanding of the Go programming language.
  • Perfect for programmers seeking a thorough introduction to web development with Go.
  • An excellent choice for developers looking to fill knowledge gaps.

Ready to advance your career? Join this course and open doors to a bright future. Learn the best practices in web development and gain the hottest skills in today's marketplace.

About the Author: Greater Commons (Todd McLeod)

Greater Commons (Todd McLeod) thumbnail

Greater Commons (greatercommons.com) is a US-based teaching brand co-founded by Todd McLeod, focused on the modern web stack with a strong emphasis on Go (Golang) for back-end work. Todd has been one of the longest-running independent Go educators on the open web.

The CourseFlix listing carries Web Development with Google's Go (Golang) Programming — a comprehensive walkthrough of building production web applications in Go, covering the standard library net/http patterns, MongoDB integration, and the deployment workflow.

Material is paid and aimed at developers picking up Go for production web development. For broader content, see CourseFlix's Golang and MongoDB category pages.

Watch Online 171 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 171 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Why Go For Web Dev
All Course Lessons (171)
#Lesson TitleDurationAccess
1
Why Go For Web Dev Demo
07:40
2
Prerequisites
01:36
3
Resources
02:33
4
Language review
18:31
5
How to succeed
08:13
6
Understanding templates
03:28
7
Templating with concatenation
06:26
8
Understanding package text/template: parsing & executing templates
16:53
9
Passing data into templates
03:58
10
Variables in templates
02:29
11
Passing composite data structures into templates
14:58
12
Functions in templates
15:12
13
Pipelines in templates
09:55
14
Predefined global functions in templates
06:11
15
Nesting templates - modularizing your code
07:52
16
Passing data into templates & composition
05:39
17
Using methods in templates
03:38
18
Hands-on exercises
01:59
19
Using package html/template, character escaping, & cross-site scripting
03:37
20
Understanding servers
10:09
21
TCP server - write to connection
06:56
22
TCP server - read from connection using bufio.Scanner
10:34
23
TCP server - read from & write to connection
04:26
24
TCP server - code a client
04:48
25
TCP server - rot13 & in-memory database
09:57
26
TCP server - HTTP request / response foundation hands-on exercise
06:57
27
TCP server - HTTP method & URI retrieval hands-on exercise
05:04
28
TCP server - HTTP multiplexer
05:04
29
net/http package - an overview
09:22
30
Understanding & using ListenAndServe
05:23
31
Foundation of net/http: Handler, ListenAndServe, Request, ResponseWriter
08:27
32
Retrieving form values - exploring *http.Request
15:08
33
Retrieving other request values - exploring *http.Request
08:11
34
Exploring http.ResponseWriter - writing headers to the response
07:36
35
Review
07:14
36
Understanding ServeMux
16:27
37
Disambiguation: func(ResponseWriter, *Request) vs. HandlerFunc
08:03
38
Third-party servemux - Julien Schmidt’s router
08:47
39
Hands-on exercises
01:15
40
Hands-on exercises - solutions #1
04:21
41
Hands-on exercises - solutions #2
04:21
42
Serving a file with io.Copy
19:57
43
Serving a file with http.ServeContent & http.ServeFile
05:03
44
Serving a file with http.FileServer
03:54
45
Serving a file with http.FileServer & http.StripPrefix
03:50
46
Creating a static file server with http.FileServer
06:01
47
log.Fatal & http.Error
03:11
48
Hands-on exercises
04:01
49
Hands-on exercises - solutions
01:00
50
The http.NotFoundHandler
05:52
51
Buying a domain - Google domains
05:48
52
Deploying to Google Cloud
02:17
53
State overview
07:53
54
Passing values through the URL
01:20
55
Passing values from forms
06:23
56
Uploading a file, reading the file, creating a file on the server
05:30
57
Enctype
11:55
58
Redirects - overview
01:01
59
Redirects - diagrams & documentation
06:33
60
Redirects - in practice
07:56
61
Cookies - overview
07:44
62
Cookies - writing and reading
03:32
63
Writing multiple cookies & hands-on exercise
05:21
64
Hands-on exercise solution: creating a counter with cookies
02:12
65
Deleting a cookie
03:20
66
Sessions
06:38
67
Universally unique identifier - UUID
07:27
68
Your first session
08:32
69
Sign-up
12:00
70
Encrypt password with bcrypt
06:01
71
Login
05:21
72
Logout
07:08
73
Permissions
04:05
74
Expire session
03:21
75
Overview
08:26
76
Creating a virtual server instance on AWS EC2
07:21
77
Hello world on AWS
10:51
78
Persisting an application
12:02
79
Hands-on Exercise
04:43
80
Hands-on Solution
02:14
81
Terminating AWS services
16:00
82
Overview
01:32
83
Installing MySQL - Locally
06:25
84
Installing MySQL - AWS
02:45
85
Connect Workbench to MySQL on AWS
06:29
86
Go & SQL - Setup
04:40
87
Go & SQL - In Practice
04:38
88
Overview of load balancers
07:44
89
Create EC2 security groups
03:39
90
Create an ELB load balancer
06:32
91
Implementing the load balancer
08:00
92
Connecting to your MySQL server using MySQL workbench
13:49
93
Hands-on exercise
05:12
94
Hands-on solution
01:06
95
Autoscaling & CloudFront
18:52
96
Starting files
12:43
97
User data
04:33
98
Storing Multiple Values
05:45
99
Uploading pictures
03:37
100
Displaying pictures
08:52
101
Hash message authentication code (HMAC)
01:26
102
Base64 encoding
04:29
103
Web storage
03:07
104
Context
05:31
105
TLS & HTTPS
13:19
106
JSON - JavaScript Object Notation
09:46
107
Go & JSON - Marshal & Encode
04:31
108
Unmarshal JSON with Go
09:48
109
Unmarshal JSON with Go using Tags
10:28
110
Hands-on exercise solution
10:01
111
AJAX introduction
02:09
112
AJAX server side
11:50
113
Organizing code into packages
12:13
114
Create user & delete user
10:13
115
MVC design pattern - model view controller
04:29
116
Install mongodb
06:37
117
Connect to mongodb
04:58
118
CRUD with Go & mongodb
05:29
119
Hands on exercise & solution
08:52
120
Hands on exercise & solution
05:24
121
Hands on exercise & solution
06:20
122
Introduction to Docker
02:39
123
Virtual machines & containers
02:40
124
Installing docker
09:54
125
Docker whalesay example
05:19
126
Using a Dockerfile to build an image
08:05
127
Launching a container running curl
12:48
128
Running a Go web app in a Docker container
04:50
129
Pushing & pulling to docker hub
05:23
130
Go, Docker & Amazon Web Services (AWS)
08:56
131
Installing Postgres
09:13
132
Create database
07:33
133
Create table
05:35
134
Insert records
03:23
135
Auto increment primary key
00:49
136
Hands-on exercise
02:32
137
Hands-on exercise - solution
05:43
138
Relational databases
07:07
139
Query - cross join
06:29
140
Query - inner join
09:57
141
Query - three table inner join
05:03
142
Query - outer joins
01:08
143
Clauses
00:43
144
Update a record
04:46
145
Delete a record
07:38
146
Users - create, grant, alter, remove
08:59
147
Go & Postgres
04:57
148
Select query
04:56
149
Web app
07:29
150
Query Row
04:06
151
Insert record
01:30
152
Update record
11:24
153
Delete record
11:33
154
Code organization
10:11
155
NoSQL
10:53
156
MongoDB
06:58
157
Installing mongo
03:53
158
Database
06:58
159
Collection
03:53
160
Document
03:50
161
Find (aka, query)
06:15
162
Update
06:59
163
Remove
02:00
164
Projection
02:45
165
Limit
01:05
166
Sort
02:52
167
Index
01:24
168
Aggregation
04:33
169
Users
09:20
170
JSON
04:41
171
Create Read Update Delete (CRUD)
16:59
Unlock unlimited learning

Get instant access to all 170 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Course content

171 lessons · 18h 59m 31s
Show all 171 lessons
  1. 1 Why Go For Web Dev 07:40
  2. 2 Prerequisites 01:36
  3. 3 Resources 02:33
  4. 4 Language review 18:31
  5. 5 How to succeed 08:13
  6. 6 Understanding templates 03:28
  7. 7 Templating with concatenation 06:26
  8. 8 Understanding package text/template: parsing & executing templates 16:53
  9. 9 Passing data into templates 03:58
  10. 10 Variables in templates 02:29
  11. 11 Passing composite data structures into templates 14:58
  12. 12 Functions in templates 15:12
  13. 13 Pipelines in templates 09:55
  14. 14 Predefined global functions in templates 06:11
  15. 15 Nesting templates - modularizing your code 07:52
  16. 16 Passing data into templates & composition 05:39
  17. 17 Using methods in templates 03:38
  18. 18 Hands-on exercises 01:59
  19. 19 Using package html/template, character escaping, & cross-site scripting 03:37
  20. 20 Understanding servers 10:09
  21. 21 TCP server - write to connection 06:56
  22. 22 TCP server - read from connection using bufio.Scanner 10:34
  23. 23 TCP server - read from & write to connection 04:26
  24. 24 TCP server - code a client 04:48
  25. 25 TCP server - rot13 & in-memory database 09:57
  26. 26 TCP server - HTTP request / response foundation hands-on exercise 06:57
  27. 27 TCP server - HTTP method & URI retrieval hands-on exercise 05:04
  28. 28 TCP server - HTTP multiplexer 05:04
  29. 29 net/http package - an overview 09:22
  30. 30 Understanding & using ListenAndServe 05:23
  31. 31 Foundation of net/http: Handler, ListenAndServe, Request, ResponseWriter 08:27
  32. 32 Retrieving form values - exploring *http.Request 15:08
  33. 33 Retrieving other request values - exploring *http.Request 08:11
  34. 34 Exploring http.ResponseWriter - writing headers to the response 07:36
  35. 35 Review 07:14
  36. 36 Understanding ServeMux 16:27
  37. 37 Disambiguation: func(ResponseWriter, *Request) vs. HandlerFunc 08:03
  38. 38 Third-party servemux - Julien Schmidt’s router 08:47
  39. 39 Hands-on exercises 01:15
  40. 40 Hands-on exercises - solutions #1 04:21
  41. 41 Hands-on exercises - solutions #2 04:21
  42. 42 Serving a file with io.Copy 19:57
  43. 43 Serving a file with http.ServeContent & http.ServeFile 05:03
  44. 44 Serving a file with http.FileServer 03:54
  45. 45 Serving a file with http.FileServer & http.StripPrefix 03:50
  46. 46 Creating a static file server with http.FileServer 06:01
  47. 47 log.Fatal & http.Error 03:11
  48. 48 Hands-on exercises 04:01
  49. 49 Hands-on exercises - solutions 01:00
  50. 50 The http.NotFoundHandler 05:52
  51. 51 Buying a domain - Google domains 05:48
  52. 52 Deploying to Google Cloud 02:17
  53. 53 State overview 07:53
  54. 54 Passing values through the URL 01:20
  55. 55 Passing values from forms 06:23
  56. 56 Uploading a file, reading the file, creating a file on the server 05:30
  57. 57 Enctype 11:55
  58. 58 Redirects - overview 01:01
  59. 59 Redirects - diagrams & documentation 06:33
  60. 60 Redirects - in practice 07:56
  61. 61 Cookies - overview 07:44
  62. 62 Cookies - writing and reading 03:32
  63. 63 Writing multiple cookies & hands-on exercise 05:21
  64. 64 Hands-on exercise solution: creating a counter with cookies 02:12
  65. 65 Deleting a cookie 03:20
  66. 66 Sessions 06:38
  67. 67 Universally unique identifier - UUID 07:27
  68. 68 Your first session 08:32
  69. 69 Sign-up 12:00
  70. 70 Encrypt password with bcrypt 06:01
  71. 71 Login 05:21
  72. 72 Logout 07:08
  73. 73 Permissions 04:05
  74. 74 Expire session 03:21
  75. 75 Overview 08:26
  76. 76 Creating a virtual server instance on AWS EC2 07:21
  77. 77 Hello world on AWS 10:51
  78. 78 Persisting an application 12:02
  79. 79 Hands-on Exercise 04:43
  80. 80 Hands-on Solution 02:14
  81. 81 Terminating AWS services 16:00
  82. 82 Overview 01:32
  83. 83 Installing MySQL - Locally 06:25
  84. 84 Installing MySQL - AWS 02:45
  85. 85 Connect Workbench to MySQL on AWS 06:29
  86. 86 Go & SQL - Setup 04:40
  87. 87 Go & SQL - In Practice 04:38
  88. 88 Overview of load balancers 07:44
  89. 89 Create EC2 security groups 03:39
  90. 90 Create an ELB load balancer 06:32
  91. 91 Implementing the load balancer 08:00
  92. 92 Connecting to your MySQL server using MySQL workbench 13:49
  93. 93 Hands-on exercise 05:12
  94. 94 Hands-on solution 01:06
  95. 95 Autoscaling & CloudFront 18:52
  96. 96 Starting files 12:43
  97. 97 User data 04:33
  98. 98 Storing Multiple Values 05:45
  99. 99 Uploading pictures 03:37
  100. 100 Displaying pictures 08:52
  101. 101 Hash message authentication code (HMAC) 01:26
  102. 102 Base64 encoding 04:29
  103. 103 Web storage 03:07
  104. 104 Context 05:31
  105. 105 TLS & HTTPS 13:19
  106. 106 JSON - JavaScript Object Notation 09:46
  107. 107 Go & JSON - Marshal & Encode 04:31
  108. 108 Unmarshal JSON with Go 09:48
  109. 109 Unmarshal JSON with Go using Tags 10:28
  110. 110 Hands-on exercise solution 10:01
  111. 111 AJAX introduction 02:09
  112. 112 AJAX server side 11:50
  113. 113 Organizing code into packages 12:13
  114. 114 Create user & delete user 10:13
  115. 115 MVC design pattern - model view controller 04:29
  116. 116 Install mongodb 06:37
  117. 117 Connect to mongodb 04:58
  118. 118 CRUD with Go & mongodb 05:29
  119. 119 Hands on exercise & solution 08:52
  120. 120 Hands on exercise & solution 05:24
  121. 121 Hands on exercise & solution 06:20
  122. 122 Introduction to Docker 02:39
  123. 123 Virtual machines & containers 02:40
  124. 124 Installing docker 09:54
  125. 125 Docker whalesay example 05:19
  126. 126 Using a Dockerfile to build an image 08:05
  127. 127 Launching a container running curl 12:48
  128. 128 Running a Go web app in a Docker container 04:50
  129. 129 Pushing & pulling to docker hub 05:23
  130. 130 Go, Docker & Amazon Web Services (AWS) 08:56
  131. 131 Installing Postgres 09:13
  132. 132 Create database 07:33
  133. 133 Create table 05:35
  134. 134 Insert records 03:23
  135. 135 Auto increment primary key 00:49
  136. 136 Hands-on exercise 02:32
  137. 137 Hands-on exercise - solution 05:43
  138. 138 Relational databases 07:07
  139. 139 Query - cross join 06:29
  140. 140 Query - inner join 09:57
  141. 141 Query - three table inner join 05:03
  142. 142 Query - outer joins 01:08
  143. 143 Clauses 00:43
  144. 144 Update a record 04:46
  145. 145 Delete a record 07:38
  146. 146 Users - create, grant, alter, remove 08:59
  147. 147 Go & Postgres 04:57
  148. 148 Select query 04:56
  149. 149 Web app 07:29
  150. 150 Query Row 04:06
  151. 151 Insert record 01:30
  152. 152 Update record 11:24
  153. 153 Delete record 11:33
  154. 154 Code organization 10:11
  155. 155 NoSQL 10:53
  156. 156 MongoDB 06:58
  157. 157 Installing mongo 03:53
  158. 158 Database 06:58
  159. 159 Collection 03:53
  160. 160 Document 03:50
  161. 161 Find (aka, query) 06:15
  162. 162 Update 06:59
  163. 163 Remove 02:00
  164. 164 Projection 02:45
  165. 165 Limit 01:05
  166. 166 Sort 02:52
  167. 167 Index 01:24
  168. 168 Aggregation 04:33
  169. 169 Users 09:20
  170. 170 JSON 04:41
  171. 171 Create Read Update Delete (CRUD) 16:59

Related courses

  • MERN Stack From Scratch thumbnail

    MERN Stack From Scratch

    By: Brad Traversy
    We spend 12 hours creating this project from scratch. It includes a multi-step checkout process with PayPal integration, product search, rating & review, user p
    13 hours 32 minutes 38 seconds 5 / 5
  • Weekly LIVE sessions thumbnail

    Weekly LIVE sessions

    By: Anthony GG
    A playlist of weekly LIVE session recordings for those who couldn't attend live or want to revisit the material.
    7 hours 31 minutes 22 seconds 5 / 5
  • Node with React: Fullstack Web Development thumbnail

    Node with React: Fullstack Web Development

    By: Udemy, Stephen Grider
    Go beyond the basics of React and Redux! This course will teach you to combine the ultra-popular React, Redux, Express, and MongoDB technologies to build a full
    25 hours 36 minutes 19 seconds

Frequently asked questions

What is Web Development with Google’s Go (golang) Programming Language about?
Embrace the Future of Web Development with Google's Go (Golang) programming language, engineered to handle performant web applications at an unrivaled scale. Launched by Google and open-sourced in 2009, Go has rapidly become the top choice…
Who teaches Web Development with Google’s Go (golang) Programming Language?
Web Development with Google’s Go (golang) Programming Language is taught by Greater Commons (Todd McLeod). You can find more courses by this instructor on the corresponding source page.
How long is Web Development with Google’s Go (golang) Programming Language?
Web Development with Google’s Go (golang) Programming Language contains 171 lessons with a total runtime of 18 hours 59 minutes. All lessons are available to watch online at your own pace.
Is Web Development with Google’s Go (golang) Programming Language free to watch?
Web Development with Google’s Go (golang) Programming Language is part of CourseFlix's premium catalog. A CourseFlix subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch Web Development with Google’s Go (golang) Programming Language online?
Web Development with Google’s Go (golang) Programming Language is available to watch online on CourseFlix at https://courseflix.net/course/web-development-with-google-s-go-golang-programming-language. The page hosts every lesson with the integrated video player; no download is required.