Quote:
Original post by Sirisian
Switch universities. Not all of them are good for CS. They just offer it. Concurency is basically junior level assignments. I just had an assignment in my OS class to write a multithreaded thread pool socket server and client for handling database like tasks of querying and such.
To paraphrase: threads have as much to do with concurrency as telescopes have with astronomy.
This is the problem with so called CS courses. They teach coding - not CS. Extending Thread class to handle a Socket class instance is trivial and falls under one of those things which should be sidelined in CS specific course.
This is indeed the junior level stuff, but be careful when calling concurrency easy.
*This* is why that Therac incident happened. People could juggle threads, but didn't know how to design for concurrency. As it happens, best software developers today fear concurrency since they've long ago given up hope of being able to work with it in real world reliably until tools and techniques either improve, or become cost effective in practice.
But I digress... In real world, nobody gives a s^%$ whether application works or not. Once the client pays the contract, it might as well explode - people got paid, and that's it.
One would need to go looking really hard to find a case where software was primary reason for business failure. I cannot name any example off-hand.
So in many ways, cheap minimally trained workforce that will work for minimum wage is very much in line with current industry demands. And few of the best ones get hired by Google anyway after they win the CodeJam.