The legend. Man its its been awhile. I recently got interested in Go because I wrote a small program in it to download some images (fed the command line args to go from python) and here you are with a 4 hour video on the language. Your hands down the absolute best when it comes to needing to get up in running in a new language or framework and don't need 3 hours of videos of basic programming concepts rexplained to you.
@@derekbanas hey Derek , is this video still useful to get started to knowing some code and to get involved to learning to make projects rather than “cheating myself and copying code”? I’ve been looking everywhere, got anything I can contact you on?
This is the absolute best GoLang tutorial for intermediate devs just getting started with Go. I say this as someone who took 2 paid courses on Udemy and this one wins hands down! Thank you 🙏
You are my go-to person to learn anything programming wise. Crisp and clear explanation and the best part is I don't nod off while watching your videos because every single sentence teaches me something new and the pace is just perfect for someone like me who would want to learn things fast. Keep doing what you are doing man! Fantastic. Also wanted to know if you would consider making tutorials about kubernetes, cloud tech and stuff like that
Cool stuff, senior dev here, I set speed at 1.5, and use the right arrow a lot and basically learned (reading level / copilot partner) go in 1 hour. Very useful to not have to spend time getting to the info
If anyone is wondering why imported modules were occasionally disappearing for Derek (esp noticeable during the html segment) that's because when Golang is integrated with your IDE (VS Code in this case, goland, etc) then when you save the file it does some pre-compiling for you, along with some linting (hence why he would save and it would change some positioning). Another thing this precompiler does upon saving is removing unused modules. However, it's not all about deletion, it also adds ones you might want if you call a module but haven't yet added it via imports. For example, if you are in a completely fresh file with and you put fmt.Println() into a function and save, it'll add the "fmt" import for you. It's very convenient and means you don't really have to think about that part of the file(s) at all =]
If you don't now There's Global two functions for Printing out print and println both lowercase so you use instead to alias fmt just use for Formatting such Printinf, Sprintf or Fprintf Thanks for your effort always
You are the great educator. Im following you since i started programming thts 4 yrs back. Till now if i want to study new language i will search for you video first and proceed with my path. You are kinda Less talk more work. Keep it up.👍 I have gone through Instructors who will talk for 10mins and teach for 5mins😥
"The key point here is our programmers... They’re not capable of understanding a brilliant language...So, the language that we give them has to be easy for them to understand" ―Rob Pike
Amazing course! Helped me a lot to clarify some language stuff. Maybe, on the channels sections needed to check another resources on internet to understand its purpose, but overall you covered all the necessary concepts to start working on Golang. Thank you so much!
FYI, don’t use log.Fatal() after a defer statement, because log.Fatal() calls os.Exit(1) that quits the program immediately, and itprevents any deferred instruction from running.
9:49 there's a beginners gotcha with the :=, in that if you use it in a block, like an if, for a var with the same name as a var in the outer scope, it will shadow the outer scope, meaning the outer var doesn't get the new value - where the programmer probably meant to type = instead of :=, it can be a tricky bug to spot
Hey Derek, great video (as always) thank you so much for it! Since you cover so many different programming languages in your videos I would be interested to know about your technique to learn these different languages so well in such a small amount of time. :)
2:55:25 Passing functions. For future references, remove the comma after the y func useFunc(f func(int, int) int, x, y, int) { to func useFunc(f func(int, int) int, x, y int) {
I loved this tutorial, just a little note here, in the Regular Rxpressions part you had an error not because of vs code but because the regular expression was missing the closing parenthesis
Am looking at learning Go language and am like who do i go to ,who do i learn this from after searching for a while ,i stumbled into your channel and am like this is the final bus stop you nailed it man , thanks
@Derek Banas Thanks for the great tutorial, 9/10 I liked the pace, and there's a good balance of touching on all the important stuff without being too overwhelming. If I had to come up with some constructive criticism my only real complaint would be the way you stress the word: ", AND," when you're dictating code. Coming from a background mostly in JS and python, as I'm typing along looking at my screen and mostly just listening to the video, I lost count of how many times I typed in the `and` or the `||` operators, or stopped myself just short. It's like *I* know perfectly well that you don't really mean for me to type `and`, but my *fingers* on the other hand... They fall for it nearly every time 🤣
Regarding Regex errors for both cases: you simply forgot to add a closing bracket ")" at the end of your regex expression: ``` match, _ := regexp.MatchString("(ape[^ ]?)", str) (3:01:01) r, _ := regexp.Compile("(....)") (3:02:28) ``` That's why it returned "false" - when it was supposed to return "true" - in the first example and threw an error in the "Compile" example. PS In smarter IDEs like IDEA you would actually get squiggly line warning for it.
@derekbanas great tutorial, thank you very much! I remember watching your Java courses when I was at college! I still watch your courses years later! Thank you so much!! (Do you mind sharing Font-Type you use in VSCode, looks really good!)
@derekbanas Would you do a video on Forth? It's one of the oldest high level languages with Fortran being older. Forth is a modular reuseable model. Take existing macros, combining multiple macros together, give them a name, and you have a custom macro. This puts the term Rapid in Rapid Development. Developed in the late 60's, shared among scientific professionals, publically released in the early seventies.
In the video "how to learn" you sad that if your trying to learn something new you look for a book first. My question (questions) how quick do you read do you have any technics that make you read faster? Do you take notes? If yes what should one write down? How do you understand what you read? Seeing you learn new things in a relativ short time is amazing to see.
I quickly run through the book with a focus 100% on the code. Often I'll wonder about related information not covered in the book and I'll look that up in documentation. I create huge cheat sheets. I'll go through 500 page books normally in 3 days this way. Then I go back and experiment and write real programs using what I created.
@@derekbanas It seems those icons are already there by default after you install it on Windows, but I'm on Linux, I watched a few videos about vscode installation on Windows and Linux, no such icons for vscode on Linux.
@@derekbanas Found the solution: `"window.titleBarStyle": "custom"` in settings.json or in Preference page, search "window: title bar style", choose "custom"
One thing I didn't quite understand about the packages / modules part is why would he create a package called "myPackage" with a myPackage.go file, but then define "package stuff" at the top of that file, why not "package myPackage"? When he uses it in main he uses an alias "stuff" for that import, yet he still needs to import it from myPackage. Same goes for the name of the module. Shouldn't ideally the name of the module be the name of the project (app in this case), and the package be the name of the package/folder it's in? I feel this structure and naming would confuse me a lot if I were to jump into some kind of code base with this setup. Btw, it's not critisism, I just didn't quite understand / find it confusing.
At 1:07:36 you said creating empty slices will fill it with nils, but going through the course and trying to make an int slice that's empty I got back 0s when doing the prints. Strings came back empty though! Expand to see below code snippet. ``` // creating an empty int slice sl4 := make([]int, 6) fmt.Println(sl4) ```
Sorry about that. I misspoke. I think at some point in the video I say what the default value is for each data type. It's basically 0, 0.0, false, nor null
Channel operations is a pretty big topic and it'd be hard to do justice to it in anything less than a dedicated 15-20 minute segment, for someone looking for more depth. One could look at Jake Write's 18min video covering Go concurrency (ruclips.net/video/LvgVSSpwND8/видео.html), which is pretty condensed. However, Go concurrency without understanding various patterns in which it is used might not seem very useful initially. To learn it with patterns I think that the best video (by far, but then lengthier) is Rob Pike's google IO talk (ruclips.net/video/f6kdp27TYZs/видео.html). Derek's videos are absolutely fabulous for a quick coverage of a language, which IMHO serve one big purpose i.e. removes apprehensions or fear that one might have about the language. However, the format and length may not permit one to master the language, which needs lot more deep reading, code study, actual work/contribution on a project etc.
The legend. Man its its been awhile. I recently got interested in Go because I wrote a small program in it to download some images (fed the command line args to go from python) and here you are with a 4 hour video on the language. Your hands down the absolute best when it comes to needing to get up in running in a new language or framework and don't need 3 hours of videos of basic programming concepts rexplained to you.
Thank you for the nice compliment :) I'm very happy you enjoy my videos.
finally! the Go-lang gopher made it to the Derek's show, thanks!
I hope you find it useful :)
@@derekbanas hey Derek , is this video still useful to get started to knowing some code and to get involved to learning to make projects rather than “cheating myself and copying code”? I’ve been looking everywhere, got anything I can contact you on?
"এতোদিন কোথায় ছিলেন?"-- in English, "where were you for so so long, my love?!"
Thanks a lot. It's great help.
Thank you very much :) I'm happy I could be of help
This is the absolute best GoLang tutorial for intermediate devs just getting started with Go. I say this as someone who took 2 paid courses on Udemy and this one wins hands down! Thank you 🙏
@@matthewb192 yep , most of those courses are outdated as well . The top most web dev course was launched in 2017 i guess .
You are my go-to person to learn anything programming wise. Crisp and clear explanation and the best part is I don't nod off while watching your videos because every single sentence teaches me something new and the pace is just perfect for someone like me who would want to learn things fast. Keep doing what you are doing man! Fantastic. Also wanted to know if you would consider making tutorials about kubernetes, cloud tech and stuff like that
Cool stuff, senior dev here, I set speed at 1.5, and use the right arrow a lot and basically learned (reading level / copilot partner) go in 1 hour. Very useful to not have to spend time getting to the info
i have 0 go knowledge , will this course give me all the basics from which i can build on
If anyone is wondering why imported modules were occasionally disappearing for Derek (esp noticeable during the html segment) that's because when Golang is integrated with your IDE (VS Code in this case, goland, etc) then when you save the file it does some pre-compiling for you, along with some linting (hence why he would save and it would change some positioning).
Another thing this precompiler does upon saving is removing unused modules. However, it's not all about deletion, it also adds ones you might want if you call a module but haven't yet added it via imports. For example, if you are in a completely fresh file with and you put fmt.Println() into a function and save, it'll add the "fmt" import for you. It's very convenient and means you don't really have to think about that part of the file(s) at all =]
thanks :D.
If you don't now There's Global two functions for Printing out print and println both lowercase so you use instead to alias fmt just use for Formatting such Printinf, Sprintf or Fprintf
Thanks for your effort always
Thank you :) I forgot to cover them.
You are the great educator. Im following you since i started programming thts 4 yrs back. Till now if i want to study new language i will search for you video first and proceed with my path. You are kinda Less talk more work. Keep it up.👍
I have gone through Instructors who will talk for 10mins and teach for 5mins😥
Thank you for the nice compliment :) My goal with every video is to cover as much as possible as fast as possible. I don't like to waste peoples time.
YOU'VE MADE ME BETTER - MUCH LOVE FROM NEW ORLEANS BROTHER ♥️💪
"The key point here is our programmers... They’re not capable of understanding a brilliant language...So, the language that we give them has to be easy for them to understand"
―Rob Pike
@VexCode 😂
dude. absolute beast. I can tell you put a lot of work into this. respect
I'll second that!
i second that as well the man really tried
Amazing course! Helped me a lot to clarify some language stuff. Maybe, on the channels sections needed to check another resources on internet to understand its purpose, but overall you covered all the necessary concepts to start working on Golang. Thank you so much!
Derek- a really fine job! You have a natural ability to communicate.
I guess I need more than the current existing human languages to thank you enough for you amazing and useful vides !
You're great !
Thank you for the nice compliment :) I'm happy I can be of help
FYI, don’t use log.Fatal() after a defer statement, because log.Fatal() calls os.Exit(1) that quits the program immediately, and itprevents any deferred instruction from running.
You're nothing short of a legend for real
9:49 there's a beginners gotcha with the :=, in that if you use it in a block, like an if, for a var with the same name as a var in the outer scope, it will shadow the outer scope, meaning the outer var doesn't get the new value - where the programmer probably meant to type = instead of :=, it can be a tricky bug to spot
Hey Derek, great video (as always) thank you so much for it!
Since you cover so many different programming languages in your videos I would be interested to know about your technique to learn these different languages so well in such a small amount of time. :)
2:55:25
Passing functions. For future references, remove the comma after the y
func useFunc(f func(int, int) int, x, y, int) {
to
func useFunc(f func(int, int) int, x, y int) {
Let's all appreciate the creators for this such a good work.
Thank you :) I'm happy I could help
dude you HELP A LOT THANKS. Awesome job. You make people more educated for free w/o ads, you're legend. Again THANKS!
this is what i was looking for , thanks a lot dude. superb
You are a legend! This course is exactly what I needed to learn Go without having to skip the parts explaining variables and functions.
I loved this tutorial, just a little note here, in the Regular Rxpressions part you had an error not because of vs code but because the regular expression was missing the closing parenthesis
Thank you :) Sorry about the bug
This course is awesome! I'm going to share it with everyone in my engineering org once I finish!
Thank you very much :) I'm happy you are enjoying it!
Thanks, for years you have taught me nearly everything lol.
Am looking at learning Go language and am like who do i go to ,who do i learn this from after searching for a while ,i stumbled into your channel and am like this is the final bus stop you nailed it man , thanks
Amazing tutorial! Love the way you teach Derek!
Just as an update for those using VSCode - setting "experimentalWorkspaceModule" in the gopls settings is no longer required =]
Me: starts learning Go yesterday
Derek: Here.
package main
import "fmt"
func main() {
fmt.Println("Thank you")
}
@@-Pls- :D keep on learning!
I'm very happy that I could help :)
or, even better, without any "import"
package main
func () {
print( "Thanks a lot Derek")
}
Thank you! now, I can practice go myself. Great!
@Derek Banas Thanks for the great tutorial, 9/10
I liked the pace, and there's a good balance of touching on all the important stuff without being too overwhelming. If I had to come up with some constructive criticism my only real complaint would be the way you stress the word: ", AND," when you're dictating code.
Coming from a background mostly in JS and python, as I'm typing along looking at my screen and mostly just listening to the video, I lost count of how many times I typed in the `and` or the `||` operators, or stopped myself just short. It's like *I* know perfectly well that you don't really mean for me to type `and`, but my *fingers* on the other hand... They fall for it nearly every time 🤣
You are always the best Derek!
Great work, thanks! A small typo report - in the table of contents it should be "Variadic" in the 1:13:11 Varadic Functions
Once again, your help is invaluable. Thank you Derek
Perfect course that I was seeking nowadays, Thank you, You are the BEST.
Thank you :) I'm happy I could help
Absolute gigachad. Thanks!
You are the best Derek Banas
Thank you for saying that :) I hope you find the course useful
out of all the Derek Banas
This course is amazing, just what I was looking for
Thank you very much!
Great tutorial. I enjoyed it and practiced while watching..
1:23:17 - Trying to cast a spell XD
Thanks for the video!
Thanks for making programming more accessible to non-readers!
Could you do Racket or OCaml someday?
Lol! I was checking if he did those exact two languages today :)
Regarding Regex errors for both cases: you simply forgot to add a closing bracket ")" at the end of your regex expression:
```
match, _ := regexp.MatchString("(ape[^ ]?)", str) (3:01:01)
r, _ := regexp.Compile("(....)") (3:02:28)
```
That's why it returned "false" - when it was supposed to return "true" - in the first example and threw an error in the "Compile" example.
PS In smarter IDEs like IDEA you would actually get squiggly line warning for it.
Just discovered your channel with your Dlang tutorial! Insta-subscribed! :D
Cheers from Argentina! Love your content.
Thank you very much :) I'm happy you are enjoying the videos
Wow. You’re a legit G.
Perfect tutorial, just what I was searching for. ♥♥♥♥♥♥♥♥♥♥
Thank you :) I'm happy you found it useful
March 12 2024:
Completed the Go Course
I just watched your previous video on golang from 2015 yesteday and now there is the new version !
I upgraded this version a lot. I hope it helps
after covering algebra, linear algebra , precalculus, lemme guess your next all in one video is calculus(1,11 & 111)
This is my google for learning go lang for now
I'm glad you like it :) I'll be posting a 100% FREE Golang Udemy course soon. Click notifications to be alerted.
amazing tutorial, can't love it more
just what I'm looking for
@derekbanas great tutorial, thank you very much! I remember watching your Java courses when I was at college! I still watch your courses years later! Thank you so much!!
(Do you mind sharing Font-Type you use in VSCode, looks really good!)
Thank you :) I use Consolas
Your last two tutorials are the best ones in the channel!
What’s going to be next Scala 3 or Coq?
Thank you :) x64 assembly language
@@derekbanas sensing a low level theme here 📟
@@derekbanas For when something different is on the agenda, may I suggest Unreal Engine 5
All I can say, again, thanks very very much!
Thank you very very much :) I couldn't do it without you
@derekbanas Would you do a video on Forth?
It's one of the oldest high level languages with Fortran being older.
Forth is a modular reuseable model. Take existing macros, combining multiple macros together, give them a name, and you have a custom macro.
This puts the term Rapid in Rapid Development.
Developed in the late 60's, shared among scientific professionals, publically released in the early seventies.
Derek is on fire
I try to do my best :) Thanks
nice. with dark bg at last
Thank you sooo much for excellent content 💕🙏👌🤞👏🙌👍✌
Thank you :) I'm happy I could help
I would be so stupid without youtube in my life
Thanks for this awesome tutorial 🙌🏼
Thank you :) I’m happy you enjoyed it
best fast tut well played
Do you reckon that you could make some sort of course on Kubernetes? :)
Would be interesting to see a day in your life
we need a full tutorial on tensorflow
how the Fudge can I save this video... this is awesome.
Thank you are my Mentor!.
It is my pleasure to be able to help :)
Very Good video, well explained. Thank you!
Thank you very much :)
Little side note, run is not pronounced RUIN, but ROON 😃
Hello Derek.
the best I could find
In the video "how to learn" you sad that if your trying to learn something new you look for a book first. My question (questions) how quick do you read do you have any technics that make you read faster? Do you take notes? If yes what should one write down? How do you understand what you read? Seeing you learn new things in a relativ short time is amazing to see.
I quickly run through the book with a focus 100% on the code. Often I'll wonder about related information not covered in the book and I'll look that up in documentation. I create huge cheat sheets. I'll go through 500 page books normally in 3 days this way. Then I go back and experiment and write real programs using what I created.
Thank you
Danke!
It is great, thank you
2:24:50 Protecting Data
Great content, appreciate it.
Thank you very much :)
Thanks, how can get the split icons in the top-right of the window/menu bar in your video?
Sorry, but I'm not sure what you are referring to?
@@derekbanas What are the buttons on the left side of Minimum/Maximum/Close buttons in the window bar 02:00
@@derekbanas It seems those icons are already there by default after you install it on Windows, but I'm on Linux, I watched a few videos about vscode installation on Windows and Linux, no such icons for vscode on Linux.
@@derekbanas Found the solution: `"window.titleBarStyle": "custom"` in settings.json or in Preference page, search "window: title bar style", choose "custom"
Are there a "standard" set of packages that are almost always imported?
@7:40 done
wow this is amazing. Quick question: Is this like a zero to professional course or just for beginners only?
Thank you. The goal with this course was to make the most complete course on Golang on RUclips.I covered more here than you'll find in any book.
Help line questions can come in ✉✉...
please make calculus 1, 2 series
Isn't there supposed to be a switch statement as well ??
Maybe defer as well
Thanks! 👏👏👏
I’m happy you enjoyed the video :)
Super!!! Thanks!!!
Thank you :)
May god bless you
May God bless you :)
No data connect and CRUD? What service does it run on? Hosting companies cover it?
Great job!
Thanks Stan :)
thank you 😊
I'm happy I could help :)
One thing I didn't quite understand about the packages / modules part is why would he create a package called "myPackage" with a myPackage.go file, but then define "package stuff" at the top of that file, why not "package myPackage"? When he uses it in main he uses an alias "stuff" for that import, yet he still needs to import it from myPackage. Same goes for the name of the module. Shouldn't ideally the name of the module be the name of the project (app in this case), and the package be the name of the package/folder it's in? I feel this structure and naming would confuse me a lot if I were to jump into some kind of code base with this setup. Btw, it's not critisism, I just didn't quite understand / find it confusing.
Hi derek! Can you please make an updated video on c#?
My next video will be on C# and it will be huge
Where are you from @Derek that "Rune" is two syllables? (But seriously, love your videos. Thank you).
Thank you :) I live in Pittsburgh where we mispronounce everything.
@@derekbanas LOL.
Thanks!
Thank you so much for the support! I'm happy you found value in my Go video.
Just a quick question before jump in. Do you cover workspaces, generics and all the stuff offered after Go 1.18?
15:53 Go is my first Language.
@44:10 done
At 1:07:36 you said creating empty slices will fill it with nils, but going through the course and trying to make an int slice that's empty I got back 0s when doing the prints. Strings came back empty though! Expand to see below code snippet.
```
// creating an empty int slice
sl4 := make([]int, 6)
fmt.Println(sl4)
```
Sorry about that. I misspoke. I think at some point in the video I say what the default value is for each data type. It's basically 0, 0.0, false, nor null
this is awesome
Thank you for taking the time to tell me I helped :) I appreciate it!
Thanks. But how could you not realize, that
Channel operations is a pretty big topic and it'd be hard to do justice to it in anything less than a dedicated 15-20 minute segment, for someone looking for more depth. One could look at Jake Write's 18min video covering Go concurrency (ruclips.net/video/LvgVSSpwND8/видео.html), which is pretty condensed. However, Go concurrency without understanding various patterns in which it is used might not seem very useful initially. To learn it with patterns I think that the best video (by far, but then lengthier) is Rob Pike's google IO talk (ruclips.net/video/f6kdp27TYZs/видео.html). Derek's videos are absolutely fabulous for a quick coverage of a language, which IMHO serve one big purpose i.e. removes apprehensions or fear that one might have about the language. However, the format and length may not permit one to master the language, which needs lot more deep reading, code study, actual work/contribution on a project etc.