Question:
Why is assembly programming hard?
Nobody
2009-10-05 08:56:22 UTC
I’m retaking an assembly course this semester and it’s honestly the easiest programming course I’ve ever taken. The assignment logic usually doesn’t consist of anything more than taking some records out of a file, comparing it to something (usually determined by a formula), and outputting it in some specific format. I find it somewhat interesting that I am the ONLY student in the class that has actually turned in every assignment on time, let alone assignments that actually WORK. Assignments don’t take me any more than about an hour to write and design and usually take me about 3-6 hours to debug.

Most students in the class continue to ask me for help, but what’s interesting is that I notice that the usual problem is that students don’t really think about the logic of their problems once they start an assignment, end up making something with a ton of syntax errors, then when and if the they fix the syntax errors they still can’t find out what’s wrong with their programs because they never put in the time to work out the logic.

Don’t get me wrong, the first time I took this course I almost failed it; I just had to repeat it because I got a D the last time. The reason I got a D really wasn’t because I wasn’t trying or the lack of planning that went into my assignments; I had a different problem. The last time I took it, the instructor would get mad and say we were being disruptive students if we simply asked questions (and threaten to kick out of the class), didn’t give us an actual text book to use for the course (what we we’re given was actually a reference manual), and the manual that we used for the course would was not compatible with the simulator program that we had to run our programs in (We used IBM PC370 assembly instead of 80x86). The only reason I ended up passing was I had looked up all the programs the instructor gave us to use as examples on how to get certain macros to work, and I was able to find out that they had been plagiarized from a book that had been out of print for about 15 years. I found the book online, ordered it, and with the information on how to use certain macros and how to structure input files I managed to get my last two assignments working. Anyway, I’m not trying to complain about how shitty and unfair my instructor was last time; but, even though I spent about 40 hours a week on assignments, through reading the book I found online, I learned everything that the course taught by myself, and I learned it faster.

I guess what I’m asking is, why these students really don’t know how to write programs? To help them, I usually end up not working on their assignments for them, but by teaching those tools they should already know about, like pseudo-code and flow charts. I also usually end up telling them to re-read the parts of the book they don’t understand. They usually end up coming back to me to thank me; and while I believe in giving credit where credit is due, I don’t really feel like I’ve done anything for them. I just tell them things they should already know.
Four answers:
Tizio 008
2009-10-05 09:39:42 UTC
assembly is just the easiest things indeed; but it's even the harder since you must care about details normally you do not care.

you must understand things like pointers and the fact that there's no difference between a number, a pointer, a character and so on, but interpretation.



but as noted by someone I can't remember, nowadays cpu instructions are not thought to be used by human, rather they are thought to be used by compilers, so that it's harder for humans to write better code than the compilers can. once upon a time, "assembler hackers" optimized codes making it run faster ... and avoiding a lot of waste of space since compilers generated bad codes.



now, compilers are very good at making "special" optimizations and it's hard for humans to do better; of course this is not true on all architecture... (also once upon a time things like pipes and caches did not exist, so optimizing code was very much easier...)



so nowadays learning assembly is only a logical (understimated!) exercize, very important to form a good programming minds... but since having a good programming mind costs efforts, people prefer to stick to high level langs, without knowing what's going under the cover of their computers and without having trained their minds to deep hard thinking.



that's the future: assembly? what it is for? unuseful crap, since nobody uses it in production code!
2016-02-26 02:42:51 UTC
It's a 12 seriously 7-10
Greg
2009-10-05 09:05:35 UTC
Maybe it is hard but you are just good at it.



Thought I do find this part funny: "the first time I took this course I almost failed it; I just had to repeat it because I got a D the last time. The reason I got a D really wasn’t because I wasn’t trying or the lack of planning that went into my assignments; I had a different problem." Riiiiiiight. If it is so "easy" then you should have got it without all those excuses, no?
vulcan
2009-10-05 09:02:11 UTC
The basic problem is that many people do not desire to think. Only to be gratified


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Loading...