New to Go Programming — Looking for Guidance

191 views
Skip to first unread message

Kaushal Shriyan

unread,
Nov 12, 2025, 1:08:50 PM (2 days ago) Nov 12
to golang-nuts
Hi All,

I am new to the Go programming language and have no prior programming experience.

I would appreciate your guidance and suggestions on how to get started. I am very eager to learn and plan to dedicate time every day to understand it better. I look forward to your advice and recommendations.

Thank you in advance for your support.

Best regards,

Kaushal

Roland Müller

unread,
Nov 13, 2025, 11:55:42 AM (yesterday) Nov 13
to golang-nuts
Hello,

I have here some links as starting point that have been used by me some time ago.


BR
Roland 

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/aba1e4b9-76cc-498a-a114-13c3b0c6d717n%40googlegroups.com.

Jason E. Aten

unread,
Nov 13, 2025, 2:55:12 PM (yesterday) Nov 13
to golang-nuts
On Wednesday, November 12, 2025 at 6:08:50 PM UTC Kaushal Shriyan wrote:
I am new to the Go programming language and have no prior programming experience.

Go is pretty sophisticated for a first language (it is a sharp knife; a professional level tool), 
since it assumes you understand the computer underneath. I'm not saying its a bad 
choice as a first language, I love it, but you are jumping into the deep end pretty quickly.

If it really is your first language, you probably do not have a computer
science coursework background. I would recommend then, if that is
the case, reviewing a sophomore level text on computer architecture, like Hennessy and Patterson's 
classic Computer Architecture: A Quantitative Approach,
just so you have a mental model for the machine. Having such a model is essential,
and the Go language teaching materials will all assume you already possess one
as a pre-requisite.
  
 

Jason E. Aten

unread,
Nov 13, 2025, 6:42:25 PM (23 hours ago) Nov 13
to golang-nuts
correction -- it was a different book title by the same authors that we used in sophomore level
computer architecture class:

"Computer Organization and Design: The Hardware/Software Interface"


The first book I cited is a fine book by the same authors, but it is pitched at CS graduate 
students rather than undergrads taking up the study of computer science
seriously for the first time.

Kaushal Shriyan

unread,
Nov 13, 2025, 9:08:45 PM (20 hours ago) Nov 13
to golang-nuts
Thanks, Roland and Jason, for the guidance. I really appreciate it. I will get started, and I will reach out here if I have any difficulty understanding the topics.

@Jason — Are you referring to https://amzn.in/d/84lvFPD? Please advise me.

Best regards,

Kaushal

Jason E. Aten

unread,
Nov 13, 2025, 10:04:28 PM (20 hours ago) Nov 13
to golang-nuts
On Friday, November 14, 2025 at 2:08:45 AM UTC Kaushal Shriyan wrote:
@Jason — Are you referring to https://amzn.in/d/84lvFPD? Please advise me.

Yes, that's the one. 

alex-coder

unread,
7:13 AM (10 hours ago) 7:13 AM
to golang-nuts
Hi,
in case you are in interest of the design patterns applied to Go.
>>I  provide links here to educational resources.

But I would like to stress one thing.
Due to absence in GO dynamic dispatching some of the patterns must be implemented, say as they must be in GO. :-)

Thank you.

пятница, 14 ноября 2025 г. в 06:04:28 UTC+3, Jason E. Aten:

Brian Candler

unread,
8:37 AM (9 hours ago) 8:37 AM
to golang-nuts
On Friday, 14 November 2025 at 12:13:09 UTC alex-coder wrote:
Due to absence in GO dynamic dispatching

Not sure what you mean? Method calls on interface values are dynamic dispatching.

alex-coder

unread,
12:27 PM (5 hours ago) 12:27 PM
to golang-nuts
Hi, Brain.


Regards.

пятница, 14 ноября 2025 г. в 16:37:54 UTC+3, Brian Candler:

alex-coder

unread,
12:33 PM (5 hours ago) 12:33 PM
to golang-nuts
Sorry, of course, Brian not Brain.
I do apologize. Sorry.

пятница, 14 ноября 2025 г. в 20:27:55 UTC+3, alex-coder:

Jason E. Aten

unread,
12:58 PM (5 hours ago) 12:58 PM
to golang-nuts
Dear Alex (alex-coder), 

Here is an easy rule to remember. There is one, and only one, 
way to get dynamic dispatch in Go. That is: calling through an interface.

Your example is using embedding, not calling through an interface, so it is not relevant to
how dynamic dispatch works. 

You have guessed that Go works like other languages,
and unfortunately your guess was wrong, and this has led you to the wrong conclusion.

Embedding will automatically generate methods from the embedded type on the
outer type, but it will not give dynamic dispatch. 

As above, the rule to remember is that _only_ calling-through-an-interface variable gives 
dynamic dispatch in Go.

A simple demonstration:


Now that is understood, my recommendation is that you should 
usually still avoid interfaces for as long as possible, until you
absolutely must deploy them, because interfaces 
make it harder to debug your program, and can be slower.

best wishes,
Jason

p.s. See also https://github.com/glycerine/thinkgo for other hints.
Reply all
Reply to author
Forward
0 new messages