• Post category:StudyBullet-3
  • Reading time:18 mins read


Learn Web Programming from a University Professor in Computer Science with over 15 years of teaching experience.

What you will learn

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 15 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, AJAX, templates, file servers, cookies, state, UUIDs, HTTP methods, HTTP response codes, sessions, Amazon Web Services, MySQL, MongoDB, load balancers, HTTPS & TLS, Docker, Containers, Virtual Machines, Google Cloud, and App Engine

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

Description

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.

Ruby on Rails, Python, Django, Node.js, PHP, and ASP all fall short.

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


Get Instant Notification of New Courses on our Telegram channel.


  • 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

Building Applications

  • a photo blog
  • a twitter clone

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 17 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 hottest, 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.

English
language

Content

Getting started
Why choose Go ( golang ) for web development?
Course prerequisites
Course resources
Language review
How to succeed
Templates
Understanding templates
Templating with concatenation
Understanding package text/template: parsing & executing templates
Passing data into templates
Variables in templates
Passing composite data structures into templates
Functions in templates
Pipelines in templates
Predefined global functions in templates
Nesting templates – modularizing your code
Passing data into templates & composition
Using methods in templates
Hands-on exercises
Using package html/template, character escaping, & cross-site scripting
Creating your own server
Understanding servers
TCP server – write to connection
TCP server – read from connection using bufio.Scanner
TCP server – read from & write to connection
TCP server – code a client
TCP server – rot13 & in-memory database
TCP server – HTTP request / response foundation hands-on exercise
TCP server – HTTP method & URI retrieval hands-on exercise
TCP server – HTTP multiplexer
Understanding net/http package
net/http package – an overview
Understanding & using ListenAndServe
Foundation of net/http: Handler, ListenAndServe, Request, ResponseWriter
Retrieving form values – exploring *http.Request
Retrieving other request values – exploring *http.Request
Exploring http.ResponseWriter – writing headers to the response
Review
Understanding routing
Understanding ServeMux
Disambiguation: func(ResponseWriter, *Request) vs. HandlerFunc
Third-party servemux – julien schmidt’s router
Hands-on exercises
Hands-on exercises – solutions #1
Hands-on exercises – solutions #2
Serving files
Serving a file with io.Copy
Serving a file with http.ServeContent & http.ServeFile
Serving a file with http.FileServer
Serving a file with http.FileServer & http.StripPrefix
Creating a static file server with http.FileServer
log.Fatal & http.Error
Hands-on exercises
Hands-on exercises – solutions
The http.NotFoundHandler
Deploying your site
Buying a domain – google domains
Deploying to google cloud
Creating state
State overview
Passing values through the URL
Passing values from forms
Uploading a file, reading the file, creating a file on the server
Enctype
Redirects – overview
Redirects – diagrams & documentation
Redirects – in practice
Cookies – overview
Cookies – writing and reading
Writing multiple cookies & hands-on exercise
Hands-on exercise solution: creating a counter with cookies
Deleting a cookie
Creating sessions
Sessions
Universally unique identifier – UUID
Your first session
Sign-up
Encrypt password with bcrypt
Login
Logout
Permissions
Expire session
Amazon Web Services
Overview
Creating a virtual server instance on AWS EC2
Hello World on AWS
Persisting an application
Hands-on Exercise
Hands-on Solution
Terminating AWS services
Relational Databases
Overview
Installing MySQL – Locally
Installing MySQL – AWS
Connect Workbench to MySQL on AWS
Go & SQL – Setup
Go & SQL – In Practice
Scaling On AWS
Overview of Load Balancers
Create EC2 Security Groups
Create an ELB Load Balancer
Implementing The Load Balancer
Connecting To Your MySQL Server Using MySQL Workbench
Hands-on Exercise
Hands-on Solution
Autoscaling & CloudFront
Photo Blog
Starting Files
User Data
Storing Multiple Values
Uploading Pictures
Displaying Pictures
Web Dev Toolkit
Keyed-Hash Message Authentication Code (HMAC)
Base64 Encoding
Web Storage
Context
TLS & HTTPS
JSON – JavaScript Object Notation
Go & JSON – Marshal & Encode
Unmarshal JSON with Go
Unmarshal JSON with Go using Tags
Hands-On Exercise Solution
AJAX Introduction
AJAX Server Side
Go & Mongodb
Organizing Code Into Packages
Create User & Delete User
MVC Design Pattern – Model View Controller
Install Mongodb
Connect to Mongodb
CRUD with Go & Mongodb
Hands on Exercise & Solution
Hands on Exercise & Solution
Hands on Exercise & Solution
Docker
Introduction to Docker
Virtual Machines & Containers
Installing Docker
Docker Whalesay Example
Using a Dockerfile to Build An Image
Launching a Container Running Curl
Running a Go Web App In a Docker Container
Pushing & Pulling To Docker Hub
Go, Docker & Amazon Web Services (AWS)
PostgreSQL
Installing Postgres
Create Database
Create Table
Insert Records
Auto Increment Primary Key
Hands-on Exercise
Hands-on Exercise – Solution
Relational Databases
Query – Cross Join
Query – Inner Join
Query – Three Table Inner Join
Query – Outer Joins
Clauses
Update a Record
Delete a Record
Users – Create, Grant, Alter, Remove
Go & Postgres
Select Query
Web App
Query Row
Insert Record
Update Record
Delete Record
Code Organization
MongoDB
NoSQL
MongoDB
Installing Mongo
Database
Collection
Document
Find (aka, query)
Update
Remove
Projection
Limit
Sort
Index
Aggregation
Users
JSON
Create Read Update Delete (CRUD)