A friend of mine shared with me this interesting article named The camel has two humps which talks about teaching computer science. It echoes my own experience teaching computer science, but also interviewing candidates: you can teach a lot, but certain people just don’t get programming. With enough emphasis on mathematics and other academic branches, you get graduates that can’t code.
This was one of the most frustrating aspect of teaching basic programming, the grade distribution looked like a camel, with one hump of student who just did not get coding and another (smaller) hump of students who understood it. Writing the course for the average student meant targeting the rare students in the valley in between. The lower hump would still be lost, and the upper one bored. A lot of assumptions of academia and teaching are based around a bell distribution, many of them crumble when you have a camel distribution.