3 ms·
This can work well for folks who want to stick towards the ISA / hw level, but for general coding I don't find assembly more useful than just a simple language
by _huayra_ 5y ago
This can work well for folks who want to stick towards the ISA / hw level, but for general coding I don't find assembly more useful than just a simple language like Python. The "simplicity" of assembly evaporates pretty quickly beyond the basic math instructions (e.g. mfence, vector stuff, the concept of a stack). Undoubtedly these things are useful to learn eventually, but they are incredibly daunting to any novice coder.
The ultimate frustration is in trying to support beginners in learning assembly, as they will feel absolutely bogged down whenever they hit an error and will be completely incapable of being independent in figuring out their problems. They will lean on the teaching staff like crazy (ask me how I know....) and it's this feeling of "my code is broken and I have no damn clue what is going on!" that drives people away from the field. They have to get eased into it.
When I taught undergrads a primarily Python-based class, I spent the first third of the semester teaching them how to effectively use pdb (or better yet, ipdb; tab completion!). Although my section did not get as far as other sections (i.e. we got to the end of the required material only, whereas other sections advanced to some optional stuff like numpy and Django), the profs teaching the following course told me how much they appreciated that the students from my section really could dive in and solve their problems (or at least give them a good first go). If you don't give beginner coders the tools to debug their own problems (which are lacking in the assembly world), it may hamstring them for the rest of their careers.