3 ms·
Caltech didn't offer any programming language courses at all when I majored in Physics there in the early eighties. One was expected to learn any required lang
by MichaelCrawford 12y ago
Caltech didn't offer any programming language courses at all when I majored in Physics there in the early eighties. One was expected to learn any required languages completely on one's own.
I have only taken one CS class in my entire life, Caltech's CS 10, which is commonly taken by first year CS majors; I took it my second year.
I found it quite puzzling that the CS majors were often stymied by the final project, which required us to write a full-featured GUI vector graphic editor. That was a tough project but I aced it. Many of the CS majors would go totally out of their minds trying to get their editors to work, but were unable to.
When I entered the workforce after dropping out of school, I was quite concerned that the folks with CS degrees would eat my lunch, so I worked very, very hard to perfect my craft. However it was not long at all that I found that recent CS grads often knew very little about writing the kind of code that was required of coders in private industry.
Consider that an algorithms class would teach all the common ways of sorting - quicksort, mergesort and so on. One is then expected to write a program that sorts an array of integers using quicksort, a second program that sorts the same array using mergesort, a third that uses insertion sort.
None of these programs are very large. They're easy to debug. You're not expected to handle edge cases, like what would happen if someone unplugged the network cable while your program was running.
In the kind of code that's sold for retail sale, or for eCommerce websites or what have you, you wouldn't be expected to implement quicksort, someone else would already have done that so you'd call a library function like the standard C library's qsort(). However what your code WOULD have to do, is handle all that nastiness like unplugged network cables.
It's not that Computer Science schools could not teach that stuff. It's that they don't.
Also, it's quite uncommon for CS students to collaborate on large projects. While I do know of it being done, it's uncommon. It would be very helpful, were CS students - at least occasionally - required to collaborate.
Finally, many of the technologies which are of crucial importance to private industry, are of very, very little interest to CS professors. I learned all about what most refer to as "Game Physics" in my upper-division physics studies, but I can't imagine a CS instructor wanting to teach her class about how to do, say, ad syndication.
- wallflower 12y ago> It's not that Computer Science schools could not teach that stuff. It's that they don't. Yes, this is the classic Academics v. Industry gap you see everywhere. Teachers in an accredited program that leads to certification spend most of their time studying theory on psychology, child development, learning, and (now more than often) special education. When they get to the point where they actually have to go student teach, they have lots of knowledge but lack practical experience. As someone who has tried teaching and knows lots of teachers, classroom management is the foundation for everything that happens in a classroom. In the whole 'teaching more people to code' momentum, the problem is usually that there is some perverse incentive to give the impression that coding is 'easy'. Coding, as most of us know, is by far, 'not easy'. In fact, for many of us, that fractal difficulty is the draw. The whole movement of teaching CS in high schools baffles me because, again, CS does not teach one how to code. I would much rather see AP CS go away and be replaced by something that teaches Scratch and other tools as a stepping stone to teaching youth to think computationally.
- MichaelCrawford 12y agoThis is a problem in other occupations, not just computer programming. I have a friend who is a clinical psychotherapist. After she successfully defended her PhD dissertation, she had to complete a residency. That's typically done by working in an inpatient psychiatric hospital. By contrast, attorneys are not expected to know how to argue actual court cases until they are taught to do so by working in a law firm - AFTER they pass the bar exam. What really had me puzzled was that I once quite successfully defended myself - "Acted Pro Per" - in a felony case. I picked up a few legal textbooks at Powells City of Books in Portland, Oregon. One of the books was entitled "The First Trial: Where Do I Sit? What Do I Say?" While it is quite a good book, what I remain puzzled about is that the book addresses attorneys who have already passed the bar exam, and have been working for some time at a law firm before they even start to learn about arguing a case before a jury. I would have thought that would be taught in law school, starting one's very first semester, but it's not. I've asked a couple of attorneys about this, and they said that yes indeed, that's they way it works in their profession.