3 ms·
I think I disagree with: > Based on this information, you should select one procedural language, one object language, one scripting language, and, possibly, on
by philipwhiuk 3y ago
I think I disagree with:
> Based on this information, you should select one procedural language, one object language, one scripting language, and, possibly, one assembly language which will comprise your core skill set.
but only because realistically you should discard 'assembly language' and swap it for 'browser-supported language' these days. Learning assembly language is basically useless at this point.
- cmiller1 3y agoUnless you want to get into compiler design or similar it may not be super useful as a career skill, but learning x86 assembly and learning to build a basic CPU from logic gates were two steps along my path to fully grokking how a computer works which I found very useful.
- gabereiser 3y ago>”Learning assembly language is basically useless at this point.” I whole heartedly disagree. There’s an entire class of performance tuning you can do to math intensive applications that absolutely require knowledge of assembly to squeeze that last 0.5% out of the machine. Video Games, Video Editing, Image Editing, Simulations, Scientific applications, all benefit from having some assembly sprinkled into their algorithms for speed. Because of this, I don’t need crates or packages to do things for me, I’m capable of doing it on my own. I’m capable of building a 64kb demo scene executable. I’m capable of building a hardware accelerated video decoder. I’m capable of parallel vector operations because I can haz assembly. I can disassemble and reassemble binaries, libraries, files, stacks. I can even inject my own code. If you have no need for speed and efficiency, then I’m sure a browser-based desktop app with some JavaScript will be fine for your use case.
- keldaris 3y agoCompletely agree with all of that, but I would add that even if you never have to write any assembly at all, just the ability to read your own code in disassembled form is a superpower. It's not hard to learn the basics and, in addition to the ability to debug performance issues, it will forever inoculate you against the "magic compiler" delusion and keep your code somewhat grounded when you actually see what any new abstraction actually turns into.
- bigfishrunning 3y ago> discard 'assembly language' Hard disagree. HN tends to lean toward the browser-programmer crowd, but it's a big world out there, and there are lots of very small computers that don't run a browser. I would go so far as to say that assembly languages in general are a bit like lisps in general: learn one, and even if you never use it, you'll be a better programmer in other languages.
- _glass 3y agoA lot of people already disagreeing, but my two cents. Reading assembly is crucial. From smart contracts in crypto, to a detailed analysis of the algorithm (Knuth), to analyzing exploits, all requires assembly. It is really one of my weak points, and I noticed several times that I should be better in this. Basically as software engineers we constantly work with weak abstractions, constantly leaking.