My demos were my resume (CV) at the time. I remember Jez San of Argonaut (Starfox) contacting me and wanting me to come interview for a development position. I was 16 IIRC.
A year or so after that I became a professional game developer. In fact, the game I was working on was changed from 2D to 3D overnight and I pulled out my demo source and ported the whole 3D engine over in two weeks:
Demos really force you to learn everything there is to know about how a modern computer system works, CPU, RAM, ROM, bus, video, etc. That knowledge will remain invaluable.
I mostly do web dev in C#, but any time I write a single line of code my brain is thinking in the background "how many opcodes will this be? what about this branch? am I making an extra copy of this variable for no reason?"
Copying variables has only superficial values nowadays - the compiler will track variable lifetimes and allocate registers or spill them to stack as appropriate.
For C# specifically, if you want to scratch the itch, there is a way :)
If you are using VS, you can install Disasmo extension and disassemble arbitrary methods with SHIFT+ALT+D (keep in mind it's ready-to-run-like codegen which does not have all optimizations).
You can also go further, and use `DOTNET_JitDisasm='methodName'` env variable - in this case you will see how method transitions through all compilation tiers (if it gets promoted past Tier 0). And last but not least, if you build your .NET binary with NativeAOT, you can just use standard disassembler, debugger or profiler you would use for C++ binaries.
https://groups.google.com/g/comp.sys.ibm.pc.demos/c/TR8hmM3I...
My demos were my resume (CV) at the time. I remember Jez San of Argonaut (Starfox) contacting me and wanting me to come interview for a development position. I was 16 IIRC.
A year or so after that I became a professional game developer. In fact, the game I was working on was changed from 2D to 3D overnight and I pulled out my demo source and ported the whole 3D engine over in two weeks:
https://youtu.be/t2kdKB18c7I?t=330
Demos really force you to learn everything there is to know about how a modern computer system works, CPU, RAM, ROM, bus, video, etc. That knowledge will remain invaluable.
I mostly do web dev in C#, but any time I write a single line of code my brain is thinking in the background "how many opcodes will this be? what about this branch? am I making an extra copy of this variable for no reason?"