Ancestors

Written by Howard Chu @ Symas on 2025-01-07 at 07:39

All the fun in computing happens when you figure out how to do something cool you're not supposed to be able to do.

https://mastodon.social/@falcon@mastodon.falconk.rocks/113784517935901980

=> More informations about this toot | More toots from hyc@mastodon.social

Written by Howard Chu @ Symas on 2025-01-07 at 07:49

I think most people who learned programming from formal coursework probably have too many rules drilled in.

In my college asm class (EECS 381) one of the assignments was to write a software multiplier for MIPS3000. A buddy and I finished early and were just killing time in the lab, tweaking here and there to shave more cycles. We were neck and neck but then I figured out I could load a particular 32bit constant faster by just loading a nearby instruction into a register.

=> More informations about this toot | More toots from hyc@mastodon.social

Written by Howard Chu @ Symas on 2025-01-07 at 07:54

Ordinarily, as a 32bit RISC, it would take 2 instructions to load a 32bit constant. But one of the instructions in my routine happened to have the exact bit pattern I wanted, and I could grab it with a PC-relative load in a single instruction, which saved one more cycle. My buddy couldn't figure out what I'd done, and finally couldn't match my code's performance.

I commented that bit explicitly before turning in the assignment. The TA wrote "you should not do this".

=> More informations about this toot | More toots from hyc@mastodon.social

Written by Howard Chu @ Symas on 2025-01-07 at 07:59

People get too hung up on rules about programming. At the end of the day, code is just a sequence of bytes. Bytes are bytes. Types and other abstractions are for programmer convenience. When abstractions get in the way, or it's more convenient to ignore them, they should be ignored. (And of course, you must comment your code to show that's really what you meant to do and you know what you're doing.)

=> More informations about this toot | More toots from hyc@mastodon.social

Toot

Written by Howard Chu @ Symas on 2025-01-07 at 08:28

On a related note - sure, I took all the formal coursework too, for my Computer Engineering degree. But I was already an experienced programmer before I got to college, while the majority of my classmates were learning to program for the first time. I think a lot of them struggled because they never spent a lot of time with it before. Class assignments were pretty meaningless; you needed real use cases to have real motivation and gain understanding.

=> More informations about this toot | More toots from hyc@mastodon.social

Descendants

Written by Howard Chu @ Symas on 2025-01-07 at 08:33

For me, I was writing games, game helper tools (how many of us wrote D&D character generators as teenagers?), game cheat tools, etc. I had personal motivation for learning, and applied the knowledge to my pet projects. Without that motivation I can imagine most of the lessons wouldn't have stuck.

=> More informations about this toot | More toots from hyc@mastodon.social

Written by Brett Sheffield (he/him) on 2025-01-07 at 11:50

@hyc I'm sure it's possible to learn to program by taking a course, but anyone with the interest and the aptitude to be any good at it (and who had access to a computer) would already have been hacking and experimenting and teaching themselves. If it's in their nature you wouldn't be able to stop them.

If that curiosity and drive isn't there, a course isn't going to turn them into a programmer.

=> More informations about this toot | More toots from dentangle@chaos.social

Proxy Information
Original URL
gemini://mastogem.picasoft.net/thread/113786126659801298
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
286.061738 milliseconds
Gemini-to-HTML Time
1.307328 milliseconds

This content has been proxied by September (3851b).