It depends on what you conceive of the school as - is it an educational institution that has an incentive to improve the lives of each one of its students, incurring variable cost for each? Or is it a fishing expedition to land as many students as possible for as cheaply as possible, and letting the ones who were going to get jobs on their own anyway pay for the rest?
If we judged colleges by the same standards, I doubt they'd come off better. Normal colleges are fishing expeditions to land as many students as possible for as cheaply as possible and burden students with inescapable debt. Students have to pay even if they don't graduate or get a good job. 4-year graduation rates are below 50%. After 6 years, only 62% of college students have gotten a 4-year degree. The rest are stuck with debt that not even bankruptcy can forgive.
I don't know much about Lambda School, but my guess is that it does what colleges do, but faster and with incentives better aligned. College is more about distinguishing people than training them. (If education is actually about training, then why is >60% of the wage benefit of education from the credential rather than the years or credits earned?[1]) Someone with a college degree has shown they are reasonably intelligent and can obey instructions to complete boring tasks over long periods of time. This means they're probably a useful employee. I think Lambda School (and similar outfits) distinguish people more quickly than college and try to train them better.
To give people some idea of how bad education is: I learned computer science at an ABET-accredited college. The vast majority of the career skills I developed were from learning on my own, not from my coursework. Nowhere in my classes was there any discussion of source control. I had to teach my classmates how to use Subversion.
So often we forget that almost all education is terrible. We're only jarred out of status quo bias when a new type of school comes along.
Source control is not in the domain of computer science. You're thinking of software engineering. Many CS grads become software engineers (myself included) and we apply the concepts that we learn from CS in our jobs.
CS teaches us:
- How computers work (assembly, compilers)
- Logic and math (automata theory, set theory, numerical analysis)
- How to make computers do what we want (algorithms, data structures, performance)
If they taught you how to use subversion, that data might be useless by the time you graduate. Hopefully, the other stuff they taught you will make you able to better understand source control.
> Source control is not in the domain of computer science.
Yep. Its not.
And the fact that modern day computer science institutions do not teach it, is a huge failing on the part of these programs, and is something that they should be strongly criticized for.
People go in to CS programs, believing that they are going to be taught basic skills like that, and they are tricked by these unstated lies.
But, if we really want to keep with this "cs"/software engineer distinction, then fine. Lets stop lying to students, and lets, as a society, attempt to convince people to go into software engineering more, because that is what most of these students actually want.
And lets relegate "computer science" to a much less prestigious, and much more "esoteric" field of study, that is looked down upon, in comparison to what students actually want, which is to learn software engineering.
But, unfortunately, modern day "computer science" is currently held up as the "prestigious" field of study, when it actually does not deserve that prestige. It deserves the ridicule, that modern day academics currently put on "software engineering" or "information systems", that are currently looked down upon as the fields of study that people go into, if they can't hack it in CS.
> we apply the concepts that we learn from CS in our jobs.
> that data might be useless by the time you graduate.
I am not sure where this myth comes from, that software engineering is just about some specific language, or tool.
Learning about the "concepts" of source control, or documentation, or working with a team, or writing readable code, or designing good APIs, are things that have little to do with CS, but goes beyond just "learn this specific tool".
Algorithms, and math, while can sometimes be useful, are still only one very small part of what it means to be a software engineer.
I agree that colleges suffer from the same perverse incentives. That is why transparency in outcomes reporting is so important, and why fraudulent reporting is so dangerous.
edit: oh, you're geoff greer. I emailed you a couple times about floobits when I was still running coderpad