top | item 20701671

I completed Ultimate Go, took good notes and commented directly on source code

450 points| hoanhan101 | 6 years ago |github.com | reply

52 comments

order
[+] olah_1|6 years ago|reply
Learn Go with Tests is the best programming language course I've ever gone through.

https://github.com/quii/learn-go-with-tests

That's all. Just sharing that the methodology worked so well. I felt like I could legitimately jump right into a Go developer team.

[+] dhuramas|6 years ago|reply
I can't upvote this enough.

I am going through this course- and it is fabulous. Covers tests, and even though the topic names might seem easy or trivial(I mean there is only so many ways you can write loops or define arrays), they include a lot of "extras" that make it fun- for example one of the topics might include details about how to write doctests and docs, another one might introduce table driven tests and provide advice on when to use them. Overall it is great.

I'd be very interested in seeing this approach applied to other language courses.

[+] cp9|6 years ago|reply
learn go with tests is great. I still refer to it occasionally even though I finished it a long time ago
[+] Grogglex|6 years ago|reply
Is there something similar too this for Python or Django?
[+] navd|6 years ago|reply
Not Bill, but I work for Ardan. I’m happy you enjoyed the class! Bill works tirelessly on this stuff and I’m sure he’ll be happy to see you got something out of it.

As an aside, there’s nothing like attending a training in person and I highly recommend it. NOT because I work for Ardan, but because the quality is top notch. And Bill is really entertaining to watch teach X-D

[+] zegl|6 years ago|reply
I've had the pleasure of meeting Bill in person when we where speaking at the same conference a while back.

I can really vouch for Bill, he is one of the best teachers out there!

[+] hoanhan101|6 years ago|reply
Absolutely! I will definitely attend the training in person when I have the chance.
[+] jmcguckin|6 years ago|reply
Bill needs to stop drinking so much coffee. The guy is waving his arms around like a maniac.
[+] mattio|6 years ago|reply
Do you also facilitate trainings in Europe? (Amsterdam, The Netherlands)
[+] plinkplonk|6 years ago|reply
For anyone confused about what Ultimate Go is (I was, I first thought it was a book that taught you Go the game, then after reading some comments thought it was a book that taught Go the Language, with exercises) it is a (paid) video course that teaches you golang, available from OReilly.
[+] ValentineC|6 years ago|reply
It's also available as an in-person workshop [1], and I believe corporate trainings are a significant part of the Ardan Labs business model. They also do shorter versions of their workshops at Go conferences.

They're huge contributors to the Go community via their conference workshops, and I can't thank them enough for the knowledge that they've gathered, refined, and shared all these years. (I help organise GopherCon Singapore.)

[1] https://github.com/ardanlabs/gotraining

[+] dzyanis|6 years ago|reply
That's cool! Already thinking how to combine it with my Roadmap https://github.com/dzyanis/roadmap
[+] bradhoffman|6 years ago|reply
This is the first time I've been introduced the concept of a Developer Roadmap, and I love it! Thank you so much for sharing and linking your sources as well! I am definitely going to do this.
[+] Adracus|6 years ago|reply
Great intro into how to write nice Go code! One comment regarding interface pollution: While I agree that in many cases it's not needed to introduce an interface, sometimes interfaces help you hide the implementor type: I've now already had it multiple times that I switched from a 'struct implementor' to a 'func type implementor' without breaking compatabilities. Also, by exposing a struct, you also immediately expose that you can create a zero value of that type, which doesn't happen for an interface.
[+] hoanhan101|6 years ago|reply
Thanks for the suggestion. Feel free to open a PR if you like!
[+] deaddodo|6 years ago|reply
I just reviewed some of your notes in comments, especially the CPU ones in the array source. I think they'd be a great introduction on general computer science to someone who may not have done much beyond ultra high level languages (JavaScript, python, Ruby, etc). Good work!
[+] hoanhan101|6 years ago|reply
Thanks for taking your time to review it.
[+] Timucin|6 years ago|reply
I watched Ultimate Go on Safari Books a while ago and recently got back to it to revise my knowledge.

It will fill all the gaps and answer all the questions one can have, especially after the Tour of Go or reading a book which only scratches the surface.

I can't express enough how amazing that course and how useful what Hoanh did.

Once you finish, I'd also suggest to take a look to the Ardan Lab's github account since there are tons of material for Go.

Bill's presentation also made me giggle a lot -which is a rare thing for tutorials- since he says things like

  If I see an interface and it doesn't smell right, 
  and I'll be asking the developer, why are you 
  using an interface here? Now if the developer 
  gives me any one of these two answers, we're 
  gonna go take a walk.
as if this is a movie and he's going to take the developer to the woods to execute because the developer done wrong Bill :)
[+] jadbox|6 years ago|reply
Thanks for making this public! The notes are well written and easy enough to follow. Cheers!
[+] peteridah|6 years ago|reply
I attended the ultimate go course last year. I loved the in-depth nature of the curriculum... oh and yes, Bill is simply the best :)
[+] luckylittle|6 years ago|reply
Nicely packaged notes, i will clone this to my archive, thanks for sharing ;-)
[+] Avyiel|6 years ago|reply
Very well put-together, this is certainly an excellent learning experience.
[+] sashankryal|6 years ago|reply
Thanks for posting. Really helpful for those of us who are just getting started with Golang
[+] KuhlMensch|6 years ago|reply
Looks good. I will read it and report back
[+] sonfat505|6 years ago|reply
Thanks so much for putting this together!