
Lesson Description
The "What is Go?" Lesson is part of the full, Complete Go for Professional Developers course featured in this preview video. Here's what you'd learn in this lesson:
Melkey shares a brief history of the Go programming language which was developed at Google. Having Go skills creates a lot of opportunities for developers, from CLI tools to cloud computing and infrastructure.
Transcript from the "What is Go?" Lesson
[00:00:00]
>> Melkey: Go is a statically typed compiled programming language. It's a general purpose language, so I know a lot of the time certain languages are catered for certain aspects, right? If you think of Typescript, Typescript is also like a general purpose language, but its primary use case is in web dev, right?
[00:00:18]
A lot of people use Typescript Interacting with front end libraries. It's probably one of the best options for that aspect of work. In Go, Go is labeled as a general purpose language, and I think you'll see why, because there's great tooling built with Go. Whether that's developer tool like CLI apps or something like that.
[00:00:39]
You can build version managers with Go. You can build backend servers with Go. Microservices, the list goes on and on and on. It's a compiled programming language, so it compiles to an executable binary. I'll show you guys how you can do that. And it's statically typed. So at the beginning when I was saying, Javascript and Python are typically seen as the first language you should learn or recommended.
[00:01:01]
Like, yeah, those are great languages, right? We can make the argument that JavaScript and Python are good. They are good intros, but a lot of time people gloss over the fact that language can be statically typed, and how important type safety is, right? And other concepts that, I think Go introduced, so these being a few of them, right?
[00:01:23]
So that's kind of why I'm a big fan of Go. I actually started as a Python developer, and then I was introduced to Go and I haven't really gone back. I just think Go is far superior. But on that same topic, Python is the language of machine learning, right?
[00:01:37]
So, there's certain aspects of when to use a tool and why to use a tool. It was designed at Google by a fairly large team. I think it was, 10 to 15 people. But three individuals that I would like to highlight are Robert Griesemer, Rob Pike, and Ken Thompson.
[00:01:58]
So, it was designed at Google in two 2007, it was publicly announced in 09, and then version 1.0 released in 2012. So it was in the works for a long time. And Go itself is known for its simplicity, efficiency, and strong support for concurrent programming. Okay, why is go important?
[00:02:20]
It could open a lot of doors for a lot of people, like I've already said. People who are new to programming, people who wanna switch from front end to back end. I always get these questions like, I've been in web dev for so many years, or I've been in web dev for the first two years of my career, and it's great, I like it, but I wanna get more into back end, Go.
[00:02:39]
People wanna switch from different languages, Go, right? And not just saying front-end languages to back-end languages, let's say even a PHP developer, or a.net developer, and you wanna switch, right? I think Go is great. I think it's gonna be a great answer to these questions. It's really good at a lot of different things, like we've seen, dev tooling, creating CLIs, infrastructure, networking, like we've just discussed in the 32nd conversation, all the things go is good at, right?
[00:03:08]
And then, one thing I really wanted to highlight on this slide is developer velocity. Developer velocity, to me, does not mean how fast you can get a feature out the door. Because, let's say, you've been a goal developer for 2 or 3 years, but you face off with this wizard in C, who's been writing C for 20 plus years.
[00:03:29]
You're both asked to create a feature, who's gonna do it faster? I'm gonna put my money on the wizard, all right? Not to insult anyone's skill, but that just shows why that previous definition of developer velocity has a bit of a flaw. The way I view developer velocity is, how much tooling can we provide for the developer to not be blocked, right?
[00:03:49]
What are all the things that we can give someone to make sure that they can execute their task however long it is, right, from start to completion? And I think Go has a great developer velocity for people to jump right into a language, understand what's happening, start using it, go into repo, and start understanding what's going on.
[00:04:11]
And this last one, a strong option for cloud computing infrastructure. So I get asked a fair amount of time, hey, Melkey, I'm nervous, right? AI is taking my job, all this stuff is happening, what should I do? Should I continue to be a programmer or should I continue to be a web dev?
[00:04:28]
Should just be a back end? My answer, then again, take it with a grain of salt, this is just my opinion. I think everyone should learn cloud computing, cloud infrastructure, something like AWS, GCP, Azure, Cloud Flare. I think are great things to learn right now for people, because as you saw with LLMs, create this function for me.
[00:04:47]
Sure, [SOUND] Copy Paste. Okay, cool. A lot of people can do that. Understanding the inner workings of certain tooling that cloud offers and why to use them, I think is so important that I don't think LLMs can do right now. Because I think at that point the conversation becomes from a programmer to an architect, to assistant designer.
[00:05:07]
I think those skills are gonna be harder and harder for any LLM to even make a case against, right? And, Go is great for cloud computing infrastructure. Like I've said previously, the SDKs are phenomenal. A lot of teams, a lot of companies, all those cloud companies create SDKs using Go, and even create some of the services in Go, right?
[00:05:28]
So, yeah, I think if you really kind of ask me why do I recommend Go, for someone's career, someone's growth, I think cloud computing is the way to go.
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops