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.
If you like TDD, checkout rustlings https://github.com/rust-lang/rustlings/. I'd recommend https://exercism.io/, but there's such a shortage of mentors for the Rust track that you can get blocked very easily waiting for feedback. One of my solutions went un-mentored for over a month - and it was only after I asked someone directly to mentor my solution that it passed. If that weren't a problem, I would highly recommend exercism.io
Unfortunately, the code examples in the Rust book still feels like toy projects / toy code.
What I like about the Go book is that it feels production-ready, even though it is simple. This is because it is following industry best practices. There's no "code in isolation", if that makes sense.
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
If Ardan does not have something available, please reach out to me. We might have time available to accomodate in NL (not trying to steal stuff grom Ardan here, love what they do and offer!)
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.
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.)
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.
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.
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!
Nice book, I forked it a while back to make PRs on formatting and typos. I prefer these type of books, I wish more writes did this before publishing so it can be polished by the community before it hits the printers.
It isn't about printing. It is about the approach.
Books for newbies are written by those with 15 30 yr experience. They write using their advanced understanding which is very difficult for newcomers to understand
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 :)
No this is not a section heading. This is a statement referring to what's before it.
We cannot "throw more developpers at the problem".
First because they are expensive. But also because that makes management exponentially expensive while necessarily helping with delivery (lump of work fallacy).
Or you are correct and this is appallingly bad drafting and formatting.
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.