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

I think the best intro to computers is assembly language.

My actual intro was Fortran for a few months, then IBM 1401 assembler for the next 4 years, as the limitations of fortran were obliterated when writing assembler.

Assembler gets you to appreciate -- in your 'bones' -- what a computer really is, and how it really works.

You can then see how so-called higher-level languages work after understand their foundation.

Top assembly people generate DSLs for every problem domain, and have a hefty library of subroutines and ready macros. I still believe that, if you are good, really good, you'll do best in assembly. That is, you have the detailed machine knowledge, the proper mindset, the subroutines to do <whatever-is-commonly-needed>, and useful macros (which are a kind of specialized subroutine).

Now. This is true for small machines, and x86 or 68k; but. With the rampant complexity in amd64+ archs, with ultra-complicated instruction sets, it's harder to know every instruction with exquisite detail to produce better assembly than the best C or (probably) Rust compilers.

Still, even if you only use a subset of the instructions of amd64 or arm, you'll learn quite a bit how the machine actually 'does stuff'.

And, if you really take to this sort of thing, there is a future for you in Embedded. Good Luck!



Remember: downvoting is for showing that the comment is not following HR rules. One doesn't downvote because one disagrees to a well-presented truthful argument.

No, in that case, one replies: and begins a discussion.

As usual, I stand by my comments, as they are my lived life experience. And, I believe they are quite accurate, and otherwise a thoughtful answer to the OPs question.

Nobody asked, for example WHY was I writing assembly language for 4 years; but I'll tell anyway: I wrote a compiler for a Python-like language called "Simpletran". It pre-dates Python by several decades, but many of the original ideas in the early Pythons are there.




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

Search: