Learn How To Code: Google’s Go (golang) Programming Language

Learn How To Code: Google’s Go (golang) Programming Language
Learn How To Code: Google’s Go (golang) Programming Language

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 46 Hours | 31.0 GB
eLearning | Skill level: All Levels


The Ultimate Comprehensive Course – Perfect for Both Beginners and Experienced Developers

You will get great value from this course and, more importantly, you will have a great time learning the greatest programming language every made – The Go Programming Language – The fastest growing, highest paying programming language in America.

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Go is an amazing choice for a language as it was developed by some of the same individuals who created the C programming language, Unix, and UTF-8 – some of the most influential contributions to computer science. Robert Griesemer, Rob Pike, and Ken Thompson created Go to be a modern language that easily uses multiple cores, easily implements concurrency, easily works in distributed environments, and easily allows the programmer to write programs – it has a very lean and user-friendly syntax.

Go was created by luminaries in computer science at one of the best, if not the very best, software engineering firm to have ever existed – Google.

The credentials of Go are unsurpassed.

But why did Google create a new language?

In Google’s words, “Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, working with Go is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for.”

In my opinion, Go is the best programming language that you can be learning today. I began programming in 1982 with BASIC, I have worked with many languages, and Go is the best language which I have ever used. Go is also the top-paid programming language in America today.

Come learn about the greatest programming language ever created. You will leave with resources and code samples to start making all of your software and apps really go.

What you’ll learn

  • The ultimate comprehensive course
  • For beginners and experienced devs
  • Taught by American university professor
  • From beginning to advanced concepts
  • Concurrency, channels, benchmarking
  • Testing, error handling, documentation
  • Hands-on exercises with solutions
  • Access to valuable code base
  • This course is tried, tested, and proven
  • Over 1.65 Million students taught
  • Lifetime course access
  • Learn at your own pace
+ Table of Contents

Introduction
1 Valuable Resources
2 Why go
3 How to succeed

Course Overview
4 Course resources
5 Documentation
6 Accelerate learning

Your development environment
7 The terminal
8 Bash on windows
9 Shell bash commands I
10 Shell bash commands II
11 Installing Go
12 Go workspace
13 Environment variables
14 IDEs
15 Go commands
16 Github repos
17 Github explored

Variables values type
18 Playground
19 Hello world
20 Introduction to packages
21 Short declaration operator
22 The var keyword
23 Exploring type
24 Zero value
25 The fmt package
26 Creating your own type
27 Conversion not casting

Exercises – Ninja Level 1
28 Hands-on exercise 1
29 Hands-on exercise 2
30 Hands-on exercise 3
31 Hands-on exercise 4
32 Hands-on exercise 5
33 Hands-on exercise 6

Programming fundamentals
34 Bool type
35 How computers work
36 Numeric types
37 String type
38 Numeral systems
39 Constants
40 Iota
41 Bit shifting

Exercises – Ninja Level 2
42 Hands-on exercise 1
43 Hands-on exercise 2
44 Hands-on exercise 3
45 Hands-on exercise 4
46 Hands-on exercise 5
47 Hands-on exercise 6
48 Hands-on exercise 7

Control flow
49 Understanding control flow
50 Loop – init condition post
51 Loop – nesting loops
52 Loop – for statement
53 Loop – break continue
54 Loop – printing ascii
55 Conditional – if statement
56 Conditional – if else if else
57 Loop conditional modulus
58 Conditional – switch statement
59 Conditional – switch statement documentation
60 Conditional logic operators

Exercises – Ninja Level 3
61 Hands-on exercise 1
62 Hands-on exercise 2
63 Hands-on exercise 3
64 Hands-on exercise 4
65 Hands-on exercise 5
66 Hands-on exercise 6
67 Hands-on exercise 7
68 Hands-on exercise 8
69 Hands-on exercise 9
70 Hands-on exercise 10

Grouping data
71 Array
72 Slice – composite literal
73 Slice – for range
74 Slice – slicing a slice
75 Slice – append to a slice
76 Slice – deleting from a slice
77 Slice – make
78 Slice – multi-dimensional slice
79 Map – introduction
80 Map – add element range
81 Map – delete

Exercises – Ninja Level 4
82 Hands-on exercise 1
83 Hands-on exercise 2
84 Hands-on exercise 3
85 Hands-on exercise 4
86 Hands-on exercise 5
87 Hands-on exercise 6
88 Hands-on exercise 7
89 Hands-on exercise 8
90 Hands-on exercise 9
91 Hands-on exercise 10

Structs
92 Struct
93 Embedded structs
94 Reading documentation
95 Anonymous structs
96 Housekeeping

Exercises – Ninja Level 5
97 Hands-on exercise 1
98 Hands-on exercise 2
99 Hands-on exercise 3
100 Hands-on exercise 4

Functions
101 Syntax
102 Variadic parameter
103 Unfurling a slice
104 Defer
105 Methods
106 Interfaces polymorphism
107 Anonymous func
108 func expression
109 Returning a func
110 Callback
111 Closure
112 Recursion

Exercises – Ninja Level 6
113 Hands-on exercise 1
114 Hands-on exercise 2
115 Hands-on exercise 3
116 Hands-on exercise 4
117 Hands-on exercise 5
118 Hands-on exercise 6
119 Hands-on exercise 7
120 Hands-on exercise 8
121 Hands-on exercise 9
122 Hands-on exercise 10
123 Hands-on exercise 11

Pointers
124 What are pointers
125 When to use pointers
126 Method sets

Exercises – Ninja Level 7
127 Hands-on exercise 1
128 Hands-on exercise 2

Application
129 JSON documentation
130 JSON marshal
131 JSON unmarshal
132 Writer interface
133 Sort
134 Sort custom
135 bcrypt

Exercises – Ninja Level 8
136 Hands-on exercise 1
137 Hands-on exercise 2
138 Hands-on exercise 3
139 Hands-on exercise 4
140 Hands-on exercise 5

Concurrency
141 Concurrency vs parallelism
142 WaitGroup
143 Method sets revisited
144 Documentation
145 Race condition
146 Mutex
147 Atomic

Exercises – Ninja Level 9
148 Hands-on exercise 1
149 Hands-on exercise 2
150 Hands-on exercise 3
151 Hands-on exercise 4
152 Hands-on exercise 5
153 Hands-on exercise 6
154 Hands-on exercise 7

Channels
155 Understanding channels
156 Directional channels
157 Using channels
158 Range
159 Select
160 Comma ok idiom
161 Fan in
162 Fan out
163 Context

Exercises – Ninja Level 10
164 Hands-on exercise 1
165 Hands-on exercise 2
166 Hands-on exercise 3
167 Hands-on exercise 4
168 Hands-on exercise 5
169 Hands-on exercise 6
170 Hands-on exercise 7

Error handling
171 Understanding
172 Checking errors
173 Printing and logging
174 Recover
175 Errors with info

Exercises – Ninja Level 11
176 Hands-on exercise 1
177 Hands-on exercise 2
178 Hands-on exercise 3
179 Hands-on exercise 4
180 Hands-on exercise 5

Writing documentation
181 Introduction
182 go doc
183 godoc
184 godoc.org
185 Writing documentation

Exercises – Ninja Level 12
186 Hands-on exercise 1

Testing benchmarking
187 Introduction
188 Table tests
189 Example tests
190 Golint
191 Benchmark
192 Coverage
193 Benchmark examples
194 Review

Exercises – Ninja Level 13
195 Hands-on exercise 1
196 Hands-on exercise 2
197 Hands-on exercise 3

Farewell
198 Farewell

BONUS MATERIAL
199 An Entire Second Course – Provided for Free

Introduction
200 Why choose the Go programming language
201 Hello World

Installing Go
202 Section Overview
203 The Terminal
204 Installation Insights
205 Go Workspace
206 Environment Variables
207 Windows – Configuring Path Variables
208 Mac – Configuring Path Variables
209 IMPORTANT – REGARDING LINUX VIDEOS THAT FOLLOW
210 Linux – Machine Setup
211 Linux – Machine Configuration
212 Linux – Configuring Path Variables
213 Testing Your Installation
214 Section Review

Your Development Environment
215 Section Overview
216 Go Editors
217 WebStorm Atom.io
218 Free For Students – WebStorm
219 Creating Your First Project
220 Hello World with Webstorm
221 The Go Command Documentation
222 Understanding Github
223 Using Github
224 Section Review

Computer Fundamentals
225 Section Overview
226 How Computers Work – Part I
227 How Computers Work – Part II
228 Github Update Command
229 Numeral Systems
230 Binary Numbering System
231 Hexadecimal Numbering System
232 Text Encoding
233 Coding Scheme Programs
234 Format Printing
235 Section Review

Language Fundamentals
236 Section Overview
237 Packages
238 Go Commands
239 Variables
240 Scope
241 Scope II
242 Closure
243 Language Spec
244 Blank Identifier
245 Constants
246 Constants II
247 Words of Encouragement
248 Memory Addresses
249 Pointers
250 Using Pointers
251 Remainder
252 Section Review

Control Flow
253 Section Overview
254 For Loop
255 Nested Loops
256 Conditions Break Continue
257 Documentation Terminology
258 Rune
259 String Type
260 Switch Statements
261 If Statements
262 Exercise Solutions
263 Section Review

Functions
264 Section Overview
265 Intro To Functions
266 Func Returns
267 Variadic Functions
268 Variadic Arguments
269 Func Expressions
270 Closure
271 Callbacks
272 Callback Example
273 Recursion
274 Defer
275 Pass By Value
276 Reference Types
277 Anonymous Self-Executing Functions
278 Bool Expressions
279 Exercises – Part I
280 Exercises – Part II
281 Exercises – Part III
282 Section Review

Data Structures – Array
283 Data Structures Overview
284 Array
285 Array Examples

Data Structures – Slice
286 Slices
287 Slice Examples
288 More Slice Examples
289 Creating A Slice
290 Incrementing A Slice Item
291 Section Review

Data Structures – Map
292 Maps Introduction
293 Map Examples – Part I
294 Map Examples – Part II
295 Map Examples – Part III
296 Map Documentation
297 Map Range Loop
298 GitHub Pull
299 Hash Tables
300 Hashing Words
301 Hashing Words II
302 Build A Hash Table
303 Finished Hash Algorithm

Data Structures – Struct
304 Structs Introduction
305 OOP in Go
306 User-Defined Types
307 Composition
308 JSON Marshal
309 JSON Unmarshal
310 JSON Encode
311 JSON Decode

Interfaces
312 Interfaces Introduction
313 Interface Examples
314 Code Substitutability
315 Bill Kennedy
316 Donovan Kernighan
317 Sort Package
318 Sort Solution
319 Sort Reverse
320 Sort Slice Int
321 Empty Interface
322 Method Sets
323 Conversion vs Assertion

Concurrency
324 Concurrency WaitGroup
325 Parallelism
326 Race Conditions
327 Mutex
328 Atomicity
329 Review Channels Preview

Channels
330 Channels – Introduction
331 Range Clause
332 N-to-1
333 Semaphores – Part 1
334 Semaphores – Part 2
335 to-N
336 Channels as Arguments Returns
337 Channel Direction

Applied Concurrency
338 Incrementor With Channels
339 Deadlock Challenge
340 Factorial Challenge
341 Pipeline Pattern
342 Factorial Challenge Redux
343 Factorial Challenge Redux Solution
344 Fan Out Fan In Pattern – Overview
345 Fan In Pattern
346 Fan Out Fan In – Example

Concurrency Challenges
347 Fan Out Fan In – Challenge
348 Fan Out Fan In – Solution
349 Fan Out Fan In – Challenge Factorial
350 Fan Out Fan In – Solution Factorial
351 Deadlock Challenge
352 Deadlock Solution
353 Incrementor Challenge Revisited
354 Incrementor Solution

Concurrency Resources
355 Additional Resources
356 Links

Error Handling
357 An Introduction to Error Handling in Go
358 Improving Your Code with Golint
359 Handling Errors Logging Errors to a File
360 Four Common Ways to Handle Errors
361 Custom Errors – Creating Values of Type error
362 Idiomatic Error Handling
363 Providing Context with Errors
364 Providing Even More Context with Errors
365 Error Handling Review Resources

Farewell
366 Nice Articles
367 Next Steps