Skip to content
Introduction to GoLang
2 min read

Introduction to GoLang

Go is one of those languages that gets out of your way. When I prepared this talk for Pereira Tech Talks, what I wanted to convey wasn’t just the syntax or features — it was why Go feels different. It’s a language that trusts you to write clear code without overwhelming you with options.


What Is Go?

Go is open source, compiled, and cross-platform. With go build you generate binaries for different architectures without changing code. The syntax is C-like but with the ergonomics of interpreted languages — less ceremony, more productivity.

package main

import "fmt"

func main() {
    fmt.Printf("Hello World")
}

Go was born in 2007 from Robert Griesemer (JVM, V8), Rob Pike (UNIX, UTF-8), and Ken Thompson (B, C, UNIX). Google released it as open source in 2009; version 1.0 arrived in 2012. The team wasn’t trying to replace Java or C++ — they wanted a language that gave them the advantages they needed for modern systems: fast compilation, built-in concurrency, and a single binary deployment.


Why Go?

  • Easy to learn — The language is small and consistent.
  • Modern — Designed for systems that need high performance and high concurrency.
  • Standard librarynet/http, database/sql, encoding, testing, encryption — you get a lot without external dependencies.
  • Who uses it — Canonical, Cloudflare, Uber, Disqus, Digital Ocean, Facebook, Netflix.

And yes, the Gopher mascot is cute. That counts.


What I Covered in the Talk

I ran live demos from the basics to practical examples:

Fundamentals

  • Hello World, standard input, variable declarations
  • Types: bool, string, int, float, byte, rune, complex
  • Functions with multiple return values
  • Loops (for is the only one, but very flexible), conditionals, switch with fallthrough
  • Arrays, maps, structs, methods, and interfaces

Concurrency and More

  • Defer — Run code when exiting a function’s context
  • Panic and errors — Idiomatic error handling
  • Pointers — References and dereferencing
  • Goroutines — Lightweight concurrency with go
  • Channels — Communication between goroutines

Practical Examples

  • HTTP server with net/http
  • HTTP client consuming an API (JSON)
  • File reading with io/ioutil

Frameworks and Libraries

  • Frameworks: Revel, Beego, Martini, Buffalo
  • Libraries: Testify, Logrus, pkg/errors, cobra, godog
  • Bonus: Ebiten (2D games), WebAssembly

Resources


Go taught me that simplicity and power aren’t opposites. The language proved you can have high performance and high concurrency without sacrificing readability. That balance is what keeps me coming back to it.

Let’s keep building.