Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Undoubtedly x86, but it doesn't have to be an either/or thing, you know. Once you've got one ISA under your belt, it's pretty easy to pick up others.


The reason why I ask is because this CS major peer had said that it would be _less_ useful to learn x86. Our class used IBM System/360

I assumed he was just trying to be a smart ass because I thought for sure it would best to learn x64 especially because it is modern and what my machine runs on / everything else.


I could be wrong, but I think System/360 is like COBOL: utterly obsolete and useless outside of a small handful of multi-bajillion dollar banks and government organizations with decades-long commitments. Maybe it lives on, but any normal programmer is going to get a lot more use out of knowing x86.

That said, learning a simpler architecture before you tackle the rat's nest that is x86 isn't a bad idea. 6502, 68000, MIPS, and ARM are all good choices for different reasons. Pick whatever appeals to you most.


Wouldn't both be kind of extreme niches? Who programs a 64bit x86 in asm? I think the only places where you might use any asm language is embedded and these chips don't use x64 (my last embedded job was around 2006 using 8-bit CPUs @ about 1mhz & 4kB ram and even there we used c).

Not to be misunderstood - it's good for you to learn as a programmer but since it's all for educational purposes anyway might as well learn something simpler like the parent suggested. "Practically" both are impractical in the modern world.


Knowing how it works is extremely useful. And if you know one it's trivial to get to know another, like ARM as an example.

I haven't actually written a line of asm in last few years but when you are thinking about performance you must be able to understand compiler output. And that I have been doing a great deal. You simply cannot make well performing code without that knowledge.

You can always say that in modern desktop performance does not matter, but you cannot say the same in mobile space. There every single watt counts if you want to increase your battery life. Because when the CPU is idle they can pretty much shut the whole thing down for a small while.


Well if you reread what I wrote you'd see I wrote that you should probably learn some asm, it just doesn't need to be x64 asm.


Do you ever want to use the SIMD features of your CPU? That is why you learn assembly.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: