Go is Surprisingly Easy

preview_player
Показать описание
An overview of the Go programming language.

💬 Topics:
- Working with Go;
- Go crash course;
- Go data structures;
- Array vs Slice vs Map in Go;
- Go concurrency;
- Go types;
- Pointers vs Values;
- What are pointers?

📚 Chapters:
0:00 - Go Basics
3:05 - Variables & Pointers
4:20 - Control Flow
5:00 - Type System
7:45 - Data Structures
8:40 - Concurrency
9:30 - Standard Library

#golang
Рекомендации по теме
Комментарии
Автор

As someone who's used to Java in the university and at work, Go is a breath of fresh air.

dejangegic
Автор

Bro, I have to say your content has gotten so much better, and I think you have found a unique way of displaying your material. Well done!

luka
Автор

I just learned Go recently and this video did such an efficient job at clearly wrapping up the fundamentals into 10 minutes.

bobDotJS
Автор

I have done a 10hr go course and your video just sumsup every crucial topic with clear concise explanation. This is a must video for anyone who wishes to start learning this beautiful yet strong language.

keshavakumar
Автор

What an excellent video! Your explanations around the difference between pointers and values really clicked for me. Would love more Go content from you!

whitefluffycloud
Автор

0:08 “Most dev surveys show Go as one of the fastest growing languages”

_shows a chart of growth of programming languages where Go is closer to the bottom than to the top_

Great video though 😁

maacpiash
Автор

1 — Go Basics [ 0:54 ]
2 — Variables & Pointers [ 3:07 ]
3 — Control Flow [ 4:21 ]
4 — Type System [ 5:01 ]
5 — Data Structure [ 7:46 ]
6 — Concurrency [ 8:43 ]
7 — Standard Library [ 9:33 ]

AllemandInstable
Автор

More GO please, especially around error handling and best practices.

flipperiflop
Автор

That was a great video, I've been learning go for a while an love it's simplicity yet great power, also it's error handling and pointers give you so much freedom that in other languages you don't have (try catch hell )

Dacas
Автор

That was great. Your explanation was so much clearer than my attempts to understand the official tutorial. I really struggle with the type of simplicity that Go chooses. From the perspective of a Java programmer, the simple choice is to not have pointers.

simonhartley
Автор

this is a very good video. your channel is gaining popularity just like i said in the past. you deserve the recognition my man. all the best

johnforeverrules
Автор

super good and concise introduction to Go :) very well done, thanks!

VierPuntNul
Автор

at 7:57. You can modify the array's content, but not its length

yousefbadr
Автор

Please also give C# a try.
It’s an amazing language and you can do everything imaginable with it. 😊

fieryscorpion
Автор

please provide technical deep dive for go generics 🙏

harshrathod
Автор

i feel i should continue learning go now

peteremad
Автор

For me, it's the lack of magic. You can just follow the code and understand how things are hooked up. I know it makes it less versatile in terms of expressiveness but it's so nice to easily understand other peoples source code without barriers.

I've been using Elixir too, it's very good but they have way too much syntax. And a lot of libraries love macros which makes learning it a chore.

rumble
Автор

Go definitely would be both simple and good language, if not some pitfalls and drawbacks. Golang tries to pretend simple, but it is far from simple. The language has tons of nuances, that do not allow you to make some assumptions about one part of the language when you know another part (like knowing nuances of the slices does not allow you to work efficiently with hash-maps, because nuances of both do not overlap).

Golang lacks expressiveness. Almost all in the language is just statements, it lacks even a basic ternary operator. So, using Go after versatile languages like Python or JS, Kotlin, C#, etc. is a pain. Lack of expressiveness is the reason, why we have almost no frameworks on the Go.

Go has a weak type system, and many things, that can be expressed in other languages in very simple and obvious ways, are hard to express on Go (like regular sum-type, aka enum, that can be expressed even in Pascal). As to error handling, is not bad, but verbose - so you'll have to repeat 'if err != nil' mantra almost after each line of code. At the same time - error handling is optional, so you can easily miss or forget to handle an error since Go lacks of Option / Result type...

Actually, the Go has so many shortcomings, that even whole books exist, like "100 Go Mistakes and How to Avoid Them" that describe all the language shortcomings and how to avoid them.

In addition, the Go community is toxic. When you try to discuss the reasons for the pitfalls and possible ways how to overcome them, you meet pure aggression. You hear - "That's by design, that's a special philosophy of simplicity; you don't understand anything, get off!"

The similar behavior you meet from Go authors. By years they will repeat that "You don't need this feature in the language at all!" (like about generics), and then they will add some ad-hoc solution, but in such a way that it would be better if they did nothing at all... The same situation we had not long ago. As a developer, you would love to have some means to work with your custom collections inside 'for ... range' loop. Go, of course, doesn't support using 'range' with custom collections. The solution would be using some iteration protocol, that is already in use in many languages, like Python, JS, Rust etc. What did the Go's authors make? They just ignored such requirements. Instead, they changed the logic of how 'for' loop captures variable values, and broke backward compatibility in the minor version of the language. Ah, in addition, they added min() and max() functions in the core of the language. A couple of functions, that you can write on your own just in a minute. Huge language improvement, yeah. That's "The Go way"!..

So, on the whole, Go looks like a very fast and sophisticated web framework, with all those nuances and the way the authors support and develop the language. It's good for web services, like REST API or for CLI utilities. But if you want to pick up the general purpose language, or trying to select your first programming language - you'd better pick up another one, like Python, or JS, or Kotlin or something different.

AlexanderBorshak
Автор

Nice video, I learned something usefull. Would you do a video about Go routines ? I am interested in this topic

00:02:35 Python can also return multiple values, there are language that have pattern matching that is more powerful
00:06:39 To be honest, the OOP we have nowaday is a bit broken and far away of the original OOP (that's why FP devs laugh at OOP) languages like Go and Rust really inherit the core principles of true OOP

Thanks again for your video !

fabricehategekimana
Автор

Good video, but please don’t use init functions to establish connections…

They should only be used to prepare state or bind environment variables in most cases. Even then they are discouraged.

bitmasked