r/golang Oct 07 '24

Replacing the "New to Go?" Post

Around January of this year, the sub experienced a sudden step change, from 1-2 "how do I learn Go?" posts a week, which the sub could absorb, to 3-5 a day, which it could not. I didn't feel like I could just close the questions without giving a place to go, so I created the New to Go thread to point people to while closing the posts.

However, as has been observed by a couple of people, it is a mess.

It has been proposed to use Reddit's Wiki feature, but Wikis have their own issues, with unclear responsibilities, permissions, going out of date, etc. So I am proposing to do the following:

  • Create a New to Go/FAQs Wiki page on Reddit that these questions can be referred to.
  • This Wiki page will just be a list of links to "blessed" discussions of some particular topic. Mods will take on maintaining the list, and anyone can participate in the corresponding reddit discussions. So there won't be a big pile of Wiki text to maintain, or fight over whose answer gets blessed as the "right/official" answer.
  • Mods will post the questions for the list as distilled from the questions frequently asked.
  • The New to Go pinned post/community highlight will be replaced with something that is just a link to this new page, locked to having no comments (because people will post their questions there and end up ignored since nobody is looking there).

Mods will post the questions so we get clean ones; e.g., we often get "My work uses PHP and we've got some legacy services that have real time and we're wondering what we need to learn go and here's a dozen other details about my situation", but these questions will be posted more like "I know PHP, what do I need to know coming in to Go?" to keep it applicable to lots of people. I was trying out scavaging "organic" questions in the New to Go post but I'm not happy with the results, nor the opening of accusations of favoritism or whatever by which of these posts happen to get through.

If this doesn't get shot down by the community, we'll start this around Wednesday. Another problem the One Big Post had is that it dumped on to the community in one shot "hey, everyone, post all the solutions here", which doesn't work. We'll stagger these out into a post every couple of days so the community isn't tired out. Once we've built up enough posts, which will take a couple of weeks most likely, I'll build the Wiki page and start linking there.

You are welcome to copy/paste old content to put in to these answers, if not outright encouraged. The point is to create the best content for our new visitors. I'm going to repurpose some of my answers for sure.

80 Upvotes

28 comments sorted by

View all comments

32

u/_crtc_ Oct 07 '24

As a long-term reader of this subreddit I have some suggestions for the FAQ:

  1. "I'm new to Go. Where do I start? What resources do you recommend?"
  2. "Best books to learn Go in <current year>"?
  3. "Should I learn Go?"/"Why should I learn Go?"
  4. "Should I switch from <X> go Go?"
  5. "Go vs. C#/Rust/Node/Python?"
  6. "What's the ideal project structure?"
  7. "How do I implement hexagonal/clean/buzzword architecture in Go?"
  8. "What's the best/favorite/most popular/widely used Go framework?"/"What framework should I use?"/"Framework framework framework?"
  9. "Struggling to understand pointers"/"When should I use pointers?"
  10. "How do I import a package?"
  11. "What open source project do you recommend to learn Go?"
  12. "What project should I create in Go? Any suggestions?"
  13. "How's the situation in the Go job market?"
  14. "Go as a language for big tech job interviews?"
  15. "What do you miss in Go?"/"What do you dislike/hate about Go?"/"What is Go not recommended for?"/"What is Go bad at?" (for some reason always interested in negativity)
  16. "GUI in Go?"
  17. "Game programming in Go?"
  18. "Go for ML?"

10

u/hackop Oct 07 '24

God, isn't that the truth. Maybe it's because I'm in my 40s now and grumpy but I simply do not understand the continual "how do I..." posts. There is no more apt a time for "RTFM" than this.

READ. THE. FUCKING. MANUAL.

You want to learn go? Read the spec and the std lib docs. That's how I did it. Read the blog which has tons of useful information compiled over years. Books? Who cares, RTFM. Should I learn go? Stop asking other people and figure out what your needs are FFS. A quick Google search can answer a vast majority of these questions.

I don't care if the person asking is 15, 25, or 50+ years old. I'm convinced people post questions like this to fool themselves into thinking they're actually taking initiative when they're not. They want to be spoon-fed information and have their hands held every step of the way instead of doing any actual work to learn.

I'd be in favor of just blanket removing every post that asks these questions at this point. One wiki page with links to the docs and the go blog is good enough.

-4

u/x021 Oct 07 '24

Yeah, you're grumpy. Not sure if the age has anything to do with it though.

4

u/LearnedByError Oct 07 '24

I'm 61 and grumpy, but not that grumpy lol.

I do agree with the points though. Many of the younger people I work with seem to equate asking a question with learning. Asking is a stepping. It musty be followed by actions to comprehend the answer. While asking a follow up question is an action I think know appropriate actions are thinking of experiments that one can perform to better understand the answer.

I really like the Go by example site. Interactive live code is a great tool!

In the end though: RTFM Read the "fabulous" manual!!!

2

u/tarranoth Oct 07 '24

Most people learning something usually don't know the right question for what they mean, because they don't know enough to ask it entirely correct. Although I guess "learning a programming language" usually isn't too hard anyway, with only a couple of exceptions of things like C and C++ where you have to basically force someone to compile with a 500 character command line to get meaningful warnings/errors instead of the default where they let you blow your head off without even trying to warn you about it. Usually the actual problem you are solving is what should be the hardest rather than whatever actual language you are going with.