time to learn go? here's how

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
I've been writing go for the last couple years and today I want to share my insights with you on the best ways to get started learning go I actually got recruited to my current position while riding go in public so building in public on my twitch Channel and doing all of that in go while I was learning it my first tip is actually going to come from these beginnings of learning go use a linter please I was using neovim and had no idea what I was doing so I did not have a linter nor did I have a language server and it sucked I don't know what I was thinking I don't know how or why that didn't like dissuade me entirely from programming at that point it's going to tell you whether your code is idiomatic with the best practices in the language so for example if you have a redundant else statement or your go do uh doesn't match what it should all the tedious little things your linter will make sure that you know it the nice thing about go is that it's a compiled language so you're going to get compiled erors and your linter and all of those things are going to be able to babysit you into writing good code we love go for that let it babysit you enjoy it lean into it speaking of babysitting tests are pretty important and thankfully the built-in test suite for go is amazing amazing like there is no reason not to write tests and go because it is so good and built into the language so my first recommendation actually for people that are looking to get started with learning how to write go is learn go with tests it's essentially a book that breaks down all of the fundamentals of go into different sections and it teaches you through interactive test driven development so you write the test first and it's obviously a failing test and then you write the solution in go and it walks you through what the solution is and why it works and all those things it's encouraging some best practices there of making sure that your code is tested and keeping it concise meaning it is built to just pass this test so learn go with tests was great for me I finished most of it or I'd say about 50% of it actually before I started trying to build something on my own which I would recommend doing definitely start building your own project it's a great way to really solidify your skills and start to Branch out to things that might be a little bit beyond your comfort zone this also goes hand inand with learning to read documentation but my first thing that I'll talk about is the project side as an example I started building a journal for devlogs and that one was my PJ's project it started out as a very very basic CLI and then at a certain point I wanted the ability for the users to be able to see all of their projects and choose from their projects and then be able to see the entries from there given those requirements I did at a certain point add a text UI which is how I came about Bubble te which is built by term by the way that was one of of the layers of complexity for me another one was adding a database but there's different ways that you can add complexity and I would definitely recommend just add one thing at a time and try and go from there on to reading documentation I think that documentation can be very intimidating at first thankfully the godoc that is built into the language encourages well documented code very well documented libraries as well learning to read documentation is what's going to allow you to expand beyond what you thought possible it's what's going to allow you to actually build from something from scratch and continue to extend that into something that you maybe didn't even think you could build if you are someone who feels like they still need to be following tutorials with tutorials I think the best way to really get the bang for your buck is try to extend beyond what the tutorial gives you so for example if at one point you are printing the output to the terminal so you're printing to standard out why not try and write that to a file it brings you just a little bit more complexity a little bit more of a challenge that isn't demonstrated in the tutorial but can definitely be achieved using documentation I think blogs are great for walking through how to do different things in a new language but definitely I try to lean most on documentation and books just because I find that sometimes Google can be quite the little rabbit hole and you end up reading a bunch of different blogs and it ends up being more confusing then it is helpful another thing that I think makes go such a great language is its Community it has an incredible slack community that is very welcoming they'll help you get a job they'll help you learn the language they're very very cool very nice people one thing that I would recommend anytime that I'm learning anything new write down every single question that comes to mind and then as I get more familiar with the topic I will review the questions and try and answer them for myself at a certain point I will find that there's certain questions questions that I still can't answer nothing seems to be able to answer it for me then I will ask it to a more senior developer usually through one of these online communities whether it be slack Discord discourse Matrix okay don't ask can I ask a question all right don't do it let me know how you learned go if you are a go developer what were some of the strategies that you used did I mention it in the video did I forget about it did I not maybe I don't even know about it so let me know in the comments below I will also link a couple of books that I thought were helpful and that helped me in my journey of learning go if you're interested in seeing some of my go related videos I will link one up here otherwise I'll see you in the next video bye
Info
Channel: bashbunni
Views: 88,429
Rating: undefined out of 5
Keywords: software development, programming, coding, open source, git, github, self taught, linux
Id: _7Fz6HcDaOw
Channel Id: undefined
Length: 5min 43sec (343 seconds)
Published: Thu Jan 04 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.