I was browsing the Go repository and noticed an old, open issue from 2022: Implement New Concept Exercise: String Builder #2183.
I understand that the repository currently states it does not accept community contributions due to the ongoing track maintenance and curriculum restructuring. However, strings.Builder is a core and highly idiomatic part of Go’s string manipulation toolkit, and I would love to help the track by implementing this concept exercise.
I have already reviewed the requirements listed in the issue, including:
Creating the string-builder concept and documentation.
Setting up prerequisites (strings, string-formatting, runes, zero-values).
Designing tasks around efficient building, Write, .String(), and .Reset().
My questions for the maintainers:
Is there any ongoing internal work on this specific exercise, or is it completely on hold?
If I draft the complete exercise locally (including instructions, exemplar solution, and automated tests), would you be open to reviewing it via a PR, or should I share the design here on the forum first?
I would be happy to take this load off your shoulders if it aligns with the current goals for the Go track!
There are no ongoing efforts to build new concepts.
Feel free to PR a new concept and doc, but only if you’re prepared to see it through. Opening the PR is often only the first step. Refining the PR can take some time, too, and PRs often get abandoned at that point. If you’re ready to see things through, feel free to go for it.
Thank you for the update! I completely understand, and I’m ready to commit and follow through with the reviews and refinements. I will draft the strings.Builder concept, instructions, and tests locally, and submit a PR as soon as it’s ready.
I have drafted the introduction.md and about.md files for the string-builder concept.
For the exercise itself, rather than forking “Squeaky Clean” directly, I would love to build a custom “SQL Builder” exercise. It fits perfectly with the concept and represents a real-world use case for Go developers. The exercise will progressively teach students how to:
Initialize and use the zero-value of strings.Builder (building a basic SELECT * FROM table).
Append strings and runes (WriteString/WriteRune to add WHERE clauses and commas).
Retrieve the final query using .String().
Reuse a single builder instance for a batch of queries using .Reset().
I will share the detailed outline and files shortly. Thanks again!