Makes sense, it seems like you missed languages with pointers.
I would suggest going through C. Otherwise it's like learning C++ without learning C. Zig is similarly a successor to C, (it is phonetically named after it).
That would address your blind spots and let you appreciate Zig's identity
We might still be in a period where C can be both thought of as a historical didactical language and as a language to program in, I'm seeing the pushback from people that fear C as the second kind.
With time, we will stop using C except for very specific things (it's only used for embedded, Open Source and Operating systems at this time anyways), and we will be able to focus on C as a historical and didactical step in a learning path.
This is similar to why it's appropriate to joke about killing someone but it's not appropriate to make a joke about raping someone. Or we are ok with reading about the epic of gilgamesh, or the oddyssey or beowulf, but Bible readings might face more pushback.
But I think we can all agree that learning C is a basic step in the formation of any classically trained programmer.
P.S: Talk is good, I've definitely noticed a top-down approach becoming more popular than bottom-up. But I chose to start with C as a teen, and my uni started me up with Chem, physics and maths before going into programming. Definitely two separate paths.
In other courses I don't enjoy skipping history either, I like learning calculus by learning about newton, it makes it easier to remember. I hate the gray approach of just going for the solutions and memorizing them.
Learn C so you can avoid beginner content on Zig /s.
You're making many wrong assumptions at the same time:
- that I've never used C or C++ (both wrong)
- that I don't know pointers (also wrong, nor it is a particularly difficult topic)
- that you need to go through C again to learn Zig. Have you met many people that picked up Zig as their first programming (or first system programming) language to make those statements?
Because I am in both the IRC and discord and there's plenty of people that get proficient in Zig starting from it.
I would suggest going through C. Otherwise it's like learning C++ without learning C. Zig is similarly a successor to C, (it is phonetically named after it).
That would address your blind spots and let you appreciate Zig's identity