Basically there was a monolith in the middle of the course, a crap textbook, and monkeys were praying to it as the authority on everything.
Basically there was a monolith in the middle of the course, a crap textbook, and monkeys were praying to it as the authority on everything.
I spent a couple of months "hacking", just familiarizing myself with the microcontroller and its instruction set, and the tooling. (In fact, I had no source code to look at during this time, as he would not surrender it!) When I finally got his source, I rewrote it to a 100% functional equivalent in two weeks, 1/5 the size without all the unnecessary control path duplication and without pointless register moves. At the time I found the way he had used register moves particularly puzzling because it resembled the way an un-optimized compiler might work.
Months later after I was no longer on that project, I got a call from him. He was very flustered and wanted to know where I "got" a particular sequence of instructions from. I was like, come again? He said, "It's not in the book. You used a sequence of instructions that's not in the Book." (The Microchip programming manual.) He asked about another block of 3 or 4 instructions - also not in the book (in the combination I used them in).
Slowly it dawned on me - I'm quite certain he didn't understand what any individual instruction "did". That whole level level of abstraction didn't exist for him. He programmed in assembly, yes, but only using blocks of example instructions from the Book. Suddenly the pointless register moves made sense - he was acting as a human compiler, without an optimization step.
Years later I realized I should have asked him, "and how do you think the example code in the book was written?"
Great story though, even though it makes me shudder.
Ironically, I think this is one of the best lessons anyone can learn . . .
He did his best but I have taught my self faster than he did.
Though because I was on the CSE stream even though I got a grade 1 they wouldn't let me do computing at A level - as CSE kids where supposed to leave at 16.
What is CSE? Google seems to think it's Certificate of Secondary Education. So, middle school -> early high school equivalent?
Grade 1? A level? Leave where, the school?
(I'm in the US, so that's probably the disconnect)
The O levels where for Kids in grammar and private schools and the CSE's where for the kids who went to secondary modern schools who left at 15/16.
As I was dyslexic I was put in the CSE stream though I did get a grade 1 in maths and computer studies which is the same as a pass at O level I didn't get to do A level computing.
CS courses generally don't have this issue but they do have a large amount of mediocre professors. Reason being anyone talented in CS can make 2-3x the salary out in the real world and so CS grads rarely stick around to teach.
The saying "those who can't do, teach." is as relevant as ever.
> Reason being anyone talented in CS can make 2-3x the salary out in the real world and so CS grads rarely stick around to teach.
I would call bullshit on that, money is not the only thing that motivates people to do things.
It was quite an experience.
Students who wish to explore topics and solve problems at the limits of current human knowledge generally enroll at the University. At these institutions, undergraduates have an opportunity to work in research laboratories and graduate students, postdocs and faculty have the responsibility to obtain grant funding to keep their labs operating. As a courtesy, occasional classes are taught (to get students up to speed on basic theory) but there is an expectation that students are self-driven and can figure things out on their own (hence its ok if the TA is not a native English speaker, etc).
TLDR: If you want to learn a trade, go to vocational school. If you want an education, go to University.