We may earn an affiliate commission when you visit our partners.
Course image
Todd McLeod

The Go programming language was created by Google to do what Google does: performant web applications at scale.

Read more

The Go programming language was created by Google to do what Google does: performant web applications at scale.

Open-sourced in 2009 and reaching version one in 2012, the Go programming language is the best choice for web development programming today. Go is the most powerful, performant, and scalable programming language today for creating web applications, web API’s, microservices, and other distributed services.

In this course, you will gain a solid foundation in web development.

You will learn all of the following and more:

Architecture

  • networking architecture

  • the client / server architecture

  • the request / response pattern

  • the RFC standards defined by the IETF

  • the format of requests from clients and responses from servers

Templates

  • the role that templates play in server-side programming

  • how to work with templates from Go’s standard library

  • modifying data structures to work well with templates

Servers

  • the relationship between TCP and HTTP

  • how to build a TCP server which responds to HTTP requests

  • how to create a TCP server which acts as an in-memory database

  • how to create a restful TCP server that handles various routes and methods

  • the difference between a web server, a servemux, a multiplexer, and a mux

  • how to use a third-party server such as julien schmidt’s router

  • the importance of HTTP methods and status codes

The net/http package

  • streamlining your web development with the net/http package

  • the nuances of the net/http package

    • the handler interface

    • http.ListenAndServe

    • creating your own servemux

    • using the default servemux

    • http.Handle & http.Handler

    • http.Handlefunc, func(ResponseWriter, *Request), & http.HandlerFunc

    • http.ServeContent, http.ServeFile, & http.FileServer

    • http.StripPrefix

    • http.NotFoundHandler

State & Sessions

  • how to create state: UUID’s, cookies, values in URL’s, security

  • how to create sessions: login, permissions, logout

  • how to expire a session

Deployment

  • how to purchase a domain

  • how to deploy an application to Google Cloud

Amazon Web Services

  • how to use Amazon Web Services (AWS)

  • how to create a virtual linux machine on AWS EC2 (Elastic Cloud Compute)

  • how to use secure shell (SSH) to manage a virtual machine

  • how to use secure copy (SCP) to transfer files to a virtual machine

  • what load balancers are and how to use them on AWS

MySQL

  • how to use MySQL on AWS

  • how to connect a MySQL workbench to AWS

MongoDB

  • understanding CRUD

  • how to use MongoDB & Go

MVC (Model View Controller) Design Pattern

  • understanding the MVC design pattern

  • using the MVC design pattern

Docker

  • virtual machines vs containers

  • understanding the benefits of using Docker

  • Docker images, Docker containers, and Docker registries

  • implementing Docker and Go

  • deploying Docker and Go

Google Cloud

  • Google Cloud Storage

  • Google Cloud no-sql datastore

  • Google Cloud memcache

  • Google Cloud PAAS App Engine

Web Dev Toolkit

  • AJAX

  • JSON

  • json.Marhsal & json.Unmarshal

  • json.Encode & json.Decode

  • Hash message authentication code (HMAC)

  • Base64 encoding

  • Web storage

  • Context

  • TLS & HTTPS

  • JSON with Go using Tags

By the end of this course, you will have mastered the fundamentals of web development.

My name is Todd McLeod. I am tenured faculty in Computer Information Technology at Fresno City College and adjunct faculty in Computer Science at California State University Fresno. I have taught enough students over 22 years to know that by the end of this course, you will be an outstanding web developer.

You will have the best skills available today.

You will know the best way to do web development today.

You will have the most demanded and highest paid skills in the marketplace.

Join me in this outstanding course. Come learn best practices for web development.

Sign up for this course now and open doors to a great future.

Enroll now

What's inside

Learning objectives

  • Construct server-side applications using today's best practices
  • Acquire an outstanding foundation in the fundamentals of web programming
  • Learn from a university professor in computer science with over 20 years of experience teaching individuals of all ability levels
  • Achieve mastery in the understanding and application of web development
  • Understand servers, routing, restful applications, json, templates, and file servers
  • Understand cookies, state, uuids, http methods, http response codes, and sessions
  • Create web applications using only the go programming language's standard library
  • Create web applications without using third-party frameworks
  • Build performant distributed applications that dynamically scale
  • Apply cutting-edge web development practices

Syllabus

Welcome to Web Development with Google's Go ( golang ) Programming Language. This section will provide you with an introduction to the course.
Read more
  • server-side?

    • #1 Go

    • #3 Node.js

    • #3 Python

    • #4 Ruby

    • #5 PHP

  • 2006 first intel dual-core processor

  • 2007 Google begins development of Go

    • Rob Pike, Ken Thompson, Robert Griesemer

    • FAQ - Why are you creating a new language?

    • language features

      • take advantage of multiple cores

      • easy concurrency based upon Tony Hoare’s CSP

      • compiled, static type, GC

    • goals

      • efficient compilation

      • efficient execution

      • ease of programming

        • clean syntax

        • distributed teams

  • Why go for web dev?

    • Go was built to do what google does

    • Google is rewriting Google with Go

  • 2009 open-sourced

  • 2012 version 1

COURSE OUTLINE:

  • THE COURSE OUTLINE IS ATTACHED TO THIS VIDEO AS A PDF


  • The Code Used In This Course

    • https://github.com/GoesToEleven/golang-web-dev

  • variables

    • short variable declaration operator

    • using the var keyword to declare a variable

    • scope

  • data structures

    • slice

    • map

    • struct

      • composite literal

  • functions

    • func (receiver) identifier(parameters) (returns) { <code> }

    • methods

  • composition

    • embedded types

    • interfaces

    • polymorphism

  • hands-on exercises #1 & hands-on exercises #2 ARE ATTACHED TO THIS VIDEO LECTURE.

  • Bill Gates & Warren Buffet

    • the one word they both chose as the most important contributor to their success: focus

  • Priorities, commitment, focus

    • What is important to you in your life? Prioritize.

    • Can you give time everyday to that which is important? Commitment.

    • Give time to the important everyday. Focus.

  • Drop by drop, the bucket gets filled
Miscellaneous resources
In programming, templates allow us to create one document which can be customized to many users. A common example is a form letter. We will use templates to create personalized web pages.

Templates allow us to customize information for a use. This is how we get personalized webpages. Templates are the first thing you must learn to do web programming.

Go encourages the developer to think like a programmer. How can you solve this problem with programming? Could we create a webpage, and merge data with it, by just working with strings?

We are going to store our templates in their own files. It is customary practice to give these files a “.gohtml” extension. We will go through two steps to use our templates: (1) Parse (2) Execute. In this course, we will use ParseGlob and ExecuteTemplate. Package text/template is explained.

  • steps

    • PARSE the template

    • EXECUTE the template

  • performance

    • always parse your templates upon application initialization

    • do not parse your templates every time a user asks for a template

  • *Template

    • container that holds the parsed templates

  • Quick Note

    • Atom will require tweaking of keymap.cson to allow some plugins like Emmet to work on tab expansion

      • 'atom-text-editor[data-grammar="text html gohtml"]:not([mini])':

'tab': 'emmet:expand-abbreviation-with-tab

  • Will allow Emmet plugin to tab expand on files with the gohtml extension

When we execute our template, we can pass data into our template.

We can assign values to variables in templates.

ASSIGN

{‌{$wisdom := .}}

USE

{‌{$wisdom}}

This lecture provides you with examples of passing various data types to templates.

During execution functions are found in two function maps: first in the template, then in the global function map. By default, no functions are defined in the template but the Funcs method can be used to add them. Predefined global functions are defined in text/template.

Pipelines allow us to take the value which is output from one process or function, and pass it as the input to the next function. Also covered in this video: working with package time and formatting type Time in a template.

When parsing a template, another template may be defined and associated with the template being parsed. Template definitions must appear at the top level of the template, much like global variables in a Go program. The syntax of such definitions is to surround each template declaration with a "define" and "end" action. Comments in templates are also covered.

In this lecture, we will pass data structures into templates. We will build our data structures using composition. FYI, from wikipedia though modified: Composition is the principle that types should achieve polymorphic behavior and code reuse by their composition (by embedding other types). An implementation of composition typically begins with the creation of various interfaces representing the behaviors that the system must exhibit. The use of interfaces allows this technique to support the Polymorphic behavior that is so valuable. Types implementing the identified interfaces are built and added as needed. Thus, system behaviors are realized without inheritance.

Here are several hands-on exercises, with solutions, to help you learn how to pass data to templates.

Package html/template has all of the functionality of package text/template, plus additional functionality specific to HTML pages. In particular, package html/template has context aware escaping so that dangers like cross-site scripting are avoided.

We will learn how servers work in this section. We will see how TCP and HTTP work together. We will also learn about terminology used when talking about servers.

Before we get started building our own server, there are several important things to know:

  • synonymous terms in web programming

    • router

    • request router

    • multiplexer

    • mux

    • servemux

    • server

    • http router

    • http request router

    • http multiplexer

    • http mux

    • http servemux

    • http server

  • client / server architecture

    • request / response pattern

      • like in restaurants

  • OSI model

  • HTTP runs on top of TCP

  • HTTP is a protocol - rules of communication

    • HyperText Transfer Protocol

  • IETF sets recommendations for HTTP

    • Request For Comment - RFC 7230 is for HTTP1.1

We can create our own tcp server using the net package from the standard library. There are three main steps: (1) Listen (2) Accept (3) Write or Read to the connection. We will use telnet to call into the TCP server we created. Telnet provides bidirectional interactive text-oriented communication using a virtual terminal connection over the Transmission Control Protocol (TCP).

We will now modify our TCP server to handle multiple connections. We will do this by using goroutines. We will also modify our TCP server to read from the connection. We will then contact our TCP server on port 8080 using our web browser. This will allow us to see the text sent from the browser to the TCP server and how this text adheres to HTTP (RFC 7230).

Now we are going to read and write from/to our connection.

We can use the net package to create a client which dials into our TCP server.

Here are two sample TCP server apps.

Here is how we build the foundation of a TCP server to handle HTTP requests and responses. This video also introduces a hands-on exercise.

This is the solution to the hands-on exercise of retrieving the URI and displaying it. The next hands-on exercise is also introduced.

This is the solution to the hands-on exercise of creating a TCP server that handles requests & responses adhering to HTTP. The server will respond with different code according the both the method and the URI.

The net/http package in the standard library provides the code you need to easily create robust web applications. In this section, you will learn the fundamentals of using Golang's net/http package.

The best entry point to understanding the net/http package is covered. It is essential to know the standards of HTTP. The first thing you should know about the net/http package is the Handler interface. ListenAndServe takes a value which implements the handler interface.

ListenAndServe is built using what we have just learned: from the net package, Listen & Accept. ListenAndServe takes an address, the port on which you want to listen, and a Handler. It is imperative that you solidly know type Handler.

The foundation of the net/http package is type Handler and ListenAndServe. ListenAndServe takes a value of type Handler. Type Handler has two parameters of type ResponseWriter and a pointer to a Request. Understanding the relationship of these parts is essential to building web apps with Go.

When a user submits data to a server, that data is attached to the request. Remember, the HTTP specification (RFC 7230) says that a request will have three parts: (1) request line, (2) headers, (3) body (also known as payload). We can retrieve values submitted by the user by working with the Request type. The type Handler has a pointer to a Request (*http.Request) as one of the parameters required by the ServeHTTP method. The Request type is a struct with Form & PostForm fields that allow us to access data submitted by a user. We can also use methods attached to the Request type to access data: FormValue & FormFile.

There are other request values which we can retrieve such as the method and the URL.

This video will continue to reinforce your understanding of the net/http package. We will learn how to read documentation and write headers to our response.

Reviewing: type Handler, ListenAndServe, *Request, ResponseWriter.

Routing is the process of a server handling a request. Clients request different resources from a server. They do this by using different URLs (uniform resource locator).

ServeMux is an HTTP request multiplexer. A ServeMux matches the URL of each incoming request against a list of registered patterns and calls the handler for the pattern that most closely matches the URL.

  • ServeMux

    • NewServeMux

      • We can create a *ServeMux by using NewServeMux.

    • default ServeMux

      • We can use the default ServeMux by passing nil to ListenAndServe.

  • Handle

    • takes a value of type Handler

  • HandleFunc

takes a func with this signature: func(ResponseWriter, *Request)


The differences between func(ResponseWriter, *Request) and HandlerFunc are explained and illustrated.

Julien Schmidt’s package httprouter "github.com/julienschmidt/httprouter" is a trie based high performance HTTP request router.

These hands-on exercises will reinforce what you are learning.

Solutions to hands on exercises in folder 022_hands-on/01

Solutions to hands on exercises in folder 022_hands-on/02

The net/http package in Go's standard library provides many different functions for serving files. We will learn the different ways to serve files, and the differences between each approach.

io.Copy allows us to copy from a reader to a writer. We can use io.Copy to read from a file and then write the file to the response.

ServeContent & ServeFile both allow us to serve a single file.

The preferred method for serving files is http.FileServer.

The preferred method for serving files is http.FileServer. We will use StripPrefix to facilitate the serving of files.

There is a special case: if you have an index.html file in a directory that FileServer is serving, then the FileServer will serve that file when only the root of the directory (“/”) is asked for

Here are two pieces of code that you will sometimes see.

These hands-on exercises will help reinforce what you are learning

Here are the solutions to the hands-on exercises.

We can use the NotFoundHandler as the Handler for something that isn’t found

Deploying your site

When deploying a project to Google Cloud, it is good to have your domain with Google Domains. This will make the configuration of your domain easier

Publishing your site on google cloud.

Creating state

HTTP does not have state built into it. You could say HTTP is stateless, though it has the tools necessary for you, as a developer, to create state. In this section, we’ll learn how to create state on the web.

We can pass values through the URL. We can retrieve them with req.FormValue

When a form is submitted, we can pass the submitted values either through the request body payload or through the URL. If the form’s method attribute is post, then the values of the form are sent to the server through the request body’s payload. If the form’s method attribute is get, then the values of the form are sent to the server through the URL.

In many web programming languages, dealing with files can be a challenge. In Go, it’s easy. We’ll see in this video how to allow a user to upload a file. We’ll also see how to read that file and, if you want, create a new file to store on the server.

“When you make a POST request, you have to encode the data that forms the body of the request in some way.  HTML forms provide three methods for encoding.

On the web, we have a client / server architecture. Clients make requests, and servers write responses to those clients. The request and response are both just text that must conform to the rules of HTTP. Both the request & response have a start line, headers, and a body.

The definitive source for knowing which status code to use for HTTP/1.1 is RFC 7231.

Here is a code review of redirects in action.

Cookies allow us to maintain state. We can write a unique ID to a cookie. When a client makes a request to a server at a particular domain, if there is a cookie from that particular domain on the client’s machine, the browser will include that cookie in the request. The server can then read that cookie, pull out the unique ID, and know which user is making the request. There are various methods to make this all secure, but the primary method is to use HTTPS.

How to write and read a cookie to and from a client’s machine.

Two examples showing how (1) you can write multiple cookies and (2) you can create a counter.

How to create a counter to track how many times a user has been to your website domain using a cookie.

To delete a cookie, set the “MaxAge” field to either zero or a negative number. You can expire a cookie by setting one of these two fields: Expires or MaxAge Expires sets the exact time when the cookie expires. Expires is Deprecated. MaxAge sets how long the cookie should live (in seconds).

Creating sessions

In computer science, a session is an interactive information interchange, also known as a dialogue, a conversation or a meeting, between two or more communicating devices, or between a computer and user. A session is set up or established at a certain point in time, and then torn down at some later point.

An HTTP exchange between a browser and a server may include an HTTP cookie which identifies state using a unique ID which can be used to look up the user.

Each transaction in HTTP creates a separate connection. Maintaining session continuity between phases requires a session ID. The session ID is embedded within the <A HREF> or <FORM> links of dynamic web pages so that it is passed back to the server. The server then uses the session ID to ensure session continuity between transactions.

A unique ID session token is a unique identifier that is generated and sent from a server to a client. The client usually stores and sends the token as an HTTP cookie and/or sends it as a parameter in GET or POST queries. The reason to use session tokens is that the client only has to handle the identifier—all session data is stored on the server (usually in a database, to which the client does not have direct access) linked to that identifier.

A universally unique identifier (UUID) is an identifier standard used in software construction. A UUID is simply a 128-bit value. The meaning of each bit is defined by any of several variants. For human-readable display, many systems use a canonical format using hexadecimal text with inserted hyphen characters. For example: 123e4567-e89b-12d3-a456-426655440000 The intent of UUIDs is to enable distributed systems to uniquely identify information without significant central coordination. In this context the word unique should be taken to mean "practically unique" rather than "guaranteed unique". Since the identifiers have a finite size, it is possible for two differing items to share the same identifier. This is a form of hash collision. The identifier size and generation process need to be selected so as to make this sufficiently improbable in practice. Anyone can create a UUID and use it to identify something with reasonable confidence that the same identifier will never be unintentionally created by anyone to identify something else. Information labeled with UUIDs can therefore be later combined into a single database without needing to resolve identifier (ID) conflicts. Adoption of UUIDs is widespread with many computing platforms providing support for generating UUIDs and for parsing/generating their textual representation. Only after generating 1 billion UUIDs every second for the next 100 years would the probability of creating just one duplicate would be about 50%.

Creating a session ID for looking up user info.

Creating a user sign-up page. Processing the form submission. Storing information in our maps.

Bcrypt is a password hashing function designed by Niels Provos and David Mazières. Besides incorporating a salt to protect against rainbow table attacks, bcrypt is an adaptive function: over time, the iteration count can be increased to make it slower, so it remains resistant to brute-force search attacks even with increasing computation power. The bcrypt function is the default password hash algorithm for OpenBSD and other systems including some Linux distributions such as SUSE Linux. We will use bcrypt to encrypt user passwords before storing them.

We will create a form that allows a user to login. We will then check the login credentials to see if the user successfully authenticates.

We will create the functionality to allow a user to logout. This will end the user’s session

We will add the ability for different users to have different permissions. These different permissions will allow some users to access some areas, while others can’t. For instance, if someone had “admin” rights, then they could access the “admin” areas.

We will create the ability for a user’s session to expire after a certain period of time. We will need to clear the user’s cookie, and remove the entry in the session’s map which stores that user’s session. In addition, we will want to clear out our session’s map on some interval. We will use the “MaxAge” field of the cookie to set the length of time, in seconds, that a cookie lasts.

Amazon Web Services

We will look at some of the various parts of Amazon Web Services (AWS) including: EC2 (Elastic Compute Cloud), S3 (Simple Storage Service), RDS, DynamoDB, ElastiCache, Elastic BeanStalk, and Route 53. CLoud computing is covered, as is IAAS, PAAS, SAAS.

We will create a virtual machine running linux ubuntu on Amazon’s elastic cloud computing.

Uploading code to EC2 involves a few steps. First we will build our binary to run on the correct architecture and operating system. Then we will use secure copy to copy our binary to the remote server. After that, we will use secure shell to log into our remote server and run our code.

To have an application continue running after our terminal session ends, we must complete a few steps. Specifically, we will be using systemd. systemd is an init system used in Linux distributions to bootstrap the user space and manage all processes. One of systemd's main goals is to unify basic Linux configurations and service behaviors across all distributions. As of 2015, most Linux distributions have adopted systemd as their default init system.

For this hands-on exercise, deploy the code in "030_sessions/08_expire-session" and get it running on AWS.

When we are finished working with machines, we need to terminate them. Failure to do this might result in billing.

Relational Databases

Relational databases are made up of tables which hold “like” data. For instance, we might have a “customers” table, a “videos” table, and a “rentals” table which shows which customer rented which video. This video presents you with the fundamentals of a relational database.

Installing MySQL is straightforward. This video will show you the process.

Installing MySQL on AWS is also straightforward. This video will show you the process.

This video shows you how to connect your workbench to MySQL on AWS.

This video shows you how to set up Go and SQL.

This video shows you how to use Go and SQL.

Scaling On AWS

Load balancers distribute work between different machines.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches Go and web development, the most powerful, performant, and scalable programming language for creating web applications, web APIs, microservices, and other distributed services
Suitable for beginners and students of all ability levels
Taught by a tenured faculty in Computer Information Technology and adjunct faculty in Computer Science with over 22 years of experience
Students learn to construct server-side applications using today's best practices
Students learn to create web applications without using third-party frameworks
Students learn to develop performant distributed applications that dynamically scale

Save this course

Save Web Development w/ Google’s Go (golang) Programming Language to your list so you can find it easily later:
Save

Reviews summary

Valuable and accessible go course

According to students, this course offers a friendly and detailed introduction to the Google’s Go programming language that will be particularly suitable for beginners. Students describe the material as being well-explained, accessible, and valuable.
The content is accessible and suitable for beginners.
Todd McLeod is a friendly and knowledgeable instructor.
Students find this course to be well worth the time.
"Thank you Todd, for a very detailed and well explained course!!!"
"Truly valuable and will look forward for more courses from you!!!"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Web Development w/ Google’s Go (golang) Programming Language with these activities:
Review the basics of HTTP and RESTful APIs
Refreshes your understanding of the fundamental concepts and protocols
Browse courses on HTTP
Show steps
  • Read articles or tutorials on HTTP and RESTful APIs
  • Review the official HTTP and RESTful API specifications
  • Complete practice exercises or quizzes to test your understanding
Start a side project involving web development
Provides an opportunity to apply your skills and knowledge outside of the classroom
Browse courses on Web Development
Show steps
  • Identify a problem or opportunity that you can solve with a web application
  • Research and explore existing solutions
  • Plan and design your solution
  • Start developing your application
Create a collection of useful web development resources
Helps you organize and centralize valuable learning materials
Browse courses on Web Development
Show steps
  • Identify and gather relevant resources from various sources
  • Organize the resources into categories or topics
  • Create a platform or document to store and share the collection
  • Update and maintain the collection over time
Five other activities
Expand to see all activities and additional details
Show all eight activities
Volunteer as a web developer for a non-profit organization
Provides practical experience and the opportunity to contribute to a meaningful cause
Browse courses on Web Development
Show steps
  • Identify non-profit organizations that need web development assistance
  • Contact the organizations and express your interest in volunteering
  • Attend meetings and collaborate with the organization to understand their needs
  • Develop and implement web solutions to meet the organization's requirements
Practice HTTP request/response encoding and decoding
Helps reinforce the different encoding techniques and concepts you need to know for HTTP
Browse courses on HTTP
Show steps
  • Create a simple HTTP client and server
  • Send a request with different HTTP methods (GET, POST, PUT, DELETE)
  • Encode and decode request/response bodies using different formats (JSON, XML, form-data)
  • Handle errors and exceptions that may occur during HTTP communication
Attend a workshop on advanced web development techniques
Provides an opportunity to learn from experts and network with other web developers
Browse courses on Web Development
Show steps
  • Find a workshop that aligns with your learning goals
  • Register for the workshop
  • Attend the workshop and actively participate
  • Follow up with the workshop organizers or speakers to ask questions or connect
Create a blog post on best practices for web development
Helps you synthesize and solidify your knowledge of web development best practices.
Browse courses on Web Development
Show steps
  • Research web development best practices
  • Choose a specific topic to focus on
  • Write a blog post outlining the best practices and providing examples
  • Publish your blog post and share it with others
Develop a web application that demonstrates your understanding of the course concepts
Provides hands-on experience in applying the concepts learned in the course
Browse courses on Web Development
Show steps
  • Choose a project idea
  • Design and plan your application
  • Develop your application
  • Test and debug your application
  • Deploy your application and make it accessible to others

Career center

Learners who complete Web Development w/ Google’s Go (golang) Programming Language will develop knowledge and skills that may be useful to these careers:
Web Developer
Web Developers create and work on the design, development, and implementation of websites, using various programming languages and applications. This course trains you in the fundamentals of web development, including architecture, templates, servers, networking, and using the net/http package. It also teaches you how to use RESTful APIs, handle state and sessions, and deploy web applications. This course provides a strong foundation for a career as a Web Developer, or for expanding your skillset and exploring other roles.
Software Engineer
Software Engineers design, develop, test, and maintain computer software. This course introduces you to the basics of server-side applications, using the Go programming language. You will learn about networking architecture, the client/server architecture, and the request/response pattern. After taking this course you will be on a good path toward becoming a successful Software Engineer.
Web Designer
Web Designers create the visual elements of websites, using various design software and techniques. This course teaches you some of the fundamentals of web design, including the use of templates and the principles of responsive design. Although templates form only a small part of a Web Designer's work, they are essential to the proper execution of a website. The portions of the course on templates and state and sessions may be particularly relevant as well.
Information Architect
Information Architects design and organize the content of websites, using various information design principles. This course introduces you to the fundamentals of web development, including the use of templates and server-side applications. It also includes a section on web development best practices, which may be particularly relevant to a career in Information Architecture.
Database Administrator
Database Administrators manage and maintain databases, using various database management systems. This course provides a brief introduction to relational databases, including how to use SQL to create and manage tables and data. This knowledge can complement a foundation in database management, and is particularly relevant to work with modern database systems used for web applications.
Web API Developer
Web API Developers design and develop web APIs, using various programming languages and tools. This course provides a strong foundation for web development, including the use of RESTful APIs and the net/http package. It also covers topics such as state and sessions, which are essential for building robust web APIs.
DevOps Engineer
DevOps Engineers work to integrate development and operations teams, using various tools and techniques. This course provides a brief introduction to the fundamentals of web development, including the use of Docker and Amazon Web Services. This knowledge can be helpful for DevOps Engineers who are interested in building and deploying web applications.
Network Engineer
Network Engineers design, implement, and maintain computer networks, using various networking technologies. This course provides a brief introduction to networking architecture, including the client/server architecture and the request/response pattern. This knowledge can complement a foundation in networking, and is particularly relevant to the deployment of web applications.
System Administrator
System Administrators manage and maintain computer systems, using various operating systems and tools. This course provides a brief introduction to cloud computing, including the use of Amazon Web Services. This knowledge can be helpful for System Administrators who are interested in managing and deploying web applications.
Product Manager
Product Managers define and manage the development of products, using various product management techniques. This course provides a brief introduction to the design and development of web applications. This knowledge can be helpful for Product Managers who are interested in building and launching web products.
Technical Writer
Technical Writers create and maintain technical documentation, using various writing and editing tools. This course provides a brief introduction to the principles of web development. This knowledge can be helpful for Technical Writers who are interested in writing documentation for web applications.
Quality Assurance Analyst
Quality Assurance Analysts test and evaluate software, using various testing tools and techniques. This course provides a brief introduction to the fundamentals of web development. This knowledge can be helpful for Quality Assurance Analysts who are interested in testing web applications.
Information Security Analyst
Information Security Analysts protect computer systems and networks from unauthorized access and attacks, using various security tools and techniques. This course provides a brief introduction to the principles of web development. This knowledge can be helpful for Information Security Analysts who are interested in securing web applications.
Data Scientist
Data Scientists use data to solve business problems, using various data science techniques. This course provides a brief introduction to the principles of web development. This knowledge can be helpful for Data Scientists who are interested in building web applications for data analysis and visualization.
Business Analyst
Business Analysts work with stakeholders to define and improve business processes, using various business analysis techniques. This course provides a brief introduction to the design and development of web applications. This knowledge can be helpful for Business Analysts who are interested in building and launching web applications for businesses.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Web Development w/ Google’s Go (golang) Programming Language.
Provides in-depth coverage of the Go programming language, including its syntax, semantics, and libraries.
Provides a practical guide to building web applications with Go, covering topics such as routing, templating, and database access.
Provides a comprehensive guide to the Go programming language, covering topics such as concurrency, testing, and debugging.
Provides a comprehensive overview of data structures and algorithms in Go.
Provides a comprehensive overview of the TCP/IP protocol stack, providing a solid foundation for understanding web development.
Provides a comprehensive overview of computer networking, providing a solid foundation for understanding web development.
Provides a comprehensive overview of web application security, helping you to protect your web applications from attacks.
Provides a comprehensive overview of scalability in web development, helping you to design and build scalable web applications.
Provides a comprehensive overview of site reliability engineering, helping you to ensure the reliability of your web applications.
Provides a comprehensive overview of DevOps, helping you to improve the collaboration between your development and operations teams.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Web Development w/ Google’s Go (golang) Programming Language.
Wireshark for Beginners: TCP IP Protocol Fundamentals
Most relevant
RESTful API with Rust: Build a Game Map Server
Most relevant
Programming and Application Foundations
Most relevant
Wireshark for Beginners: Capture Packets
Most relevant
Go for Cloud and Networks
Most relevant
Guided Project: Deploy a Serverless App on IBM Code Engine
Use Docker at AWS with the Command Line
Introduction to NGINX
Data Communications and Network Services
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser