This issue is a discussion for contributors to collaborate in getting ready to be featured in 48in24. Please refer to this forum topic for more info.
We will be featuring Reverse String from Jan 23 onwards and will be featured in:
JavaScript
Nim
C++
Staff jobs
These are things for Erik/Jeremy to do:
Check/update exercise in Problem Specifications
Create + schedule video
Community jobs
For each track:
Implement Reverse String
Add approaches (and an approaches introduction!) for each idiomatic or interesting/educational approach.
Add video walkthroughs (record yourself solving and digging deeper into the exercise).
Highlight up to 16 different featured exercises (coming soon)
Existing Approaches
You can use these as the basis for approaches on your own tracks. Feel free to copy/paste/reuse/rewrite/etc as you see fit! Maybe ask ChatGPT to translate to your programming language.
Might also explore the “extra credit” of reversing unicode strings with diacritical marks that need to stay in order. It’s (sadly) non-trivial in core Python.
Performance articles are optional, but I think they’re a really really nice addition. Especially for languages where you can highlight speed vs memory tradeoffs.
I’m not sure where to ask but i suppose it is related to 48in24 anyway.
Is the general plan for this year is all 48 featured exercises will be implemented for every track, and they must all have approaches and video?
Or just the implementation part is the core, and other aspect are optional, nice to have but not crucial.
It would be nice if they are implemented in every track. But I don’t think that is a requirement. It would be nice to have approaches and videos, but I suspect that isn’t going to happen for a decent number.
I would have to defer to @iHiD and @ErikSchierboom for all of the details, but my understanding is that the goal is to get as many of the featured exercises implemented across all tracks as possible, and have as many approaches articles as possible completed for them.
There will be videos for each featured exercise where iHiD and Erik discuss strategies and programming language choices, but the hope is that there will also be video walkthroughs contributed by the community.
But its not “do or die” – more an inspiration or strong encouragement to get some content filled in, and some new contributors on board.
Thanks for the reply!
That make a lot more sense I suppose, cuz I look at the date and it seem like a short time to do all of that for all of the tracks.
Also, would it be possible to get the full list of the 48 exercises soon, or it is not possible because they need to be consider based on many factors so it will be a gradual thing like last year?
PRs made. I’ll take a look at porting the exercises for Ballerina, OCaml, and ReasonML and then write approaches and mentoring notes for Racket and Vim script.
C and assembly languages work with null-terminated strings. We can discuss:
This can be good for performance, as no additional length field needs to be stored in memory, but similarly it can be bad too as figuring out the length is O(N)
This is bad for memory safety, as it is easy to make a mistake and go beyond the length of a string
Some languages treat strings as a sequence of characters (or make it appear as if they do), others do not, and they usually treat a string as a sequence (or array) of bytes.
We can discuss:
The trade-off. Why not always treat them as chars?
ASCII vs Unicode, why the former is more limited (only 128 chars for regular ASCII, 255 for extended ASCII)
UTF-8 encodes unicode, but uses variable bytes encoding (ASCII chars are one byte, but other character points could use up to four bytes)
Difference between rune (single unicode code point) vs graphemes (aka grapheme cluster, which is what you see or print on screen, can be multiple code points)