College for software engineering/comp sci lacks depth and applicability. They try to pander too much to people who don't have the discipline to learn what a computer is.
College for software engineering/comp sci lacks depth and applicability. They try to pander too much to people who don't have the discipline to learn what a computer is.
In an engineering point of view you are absolutely right but the fundamental mistake here is you have no idea what you signed up for. Computer science is not software engineering.
For me, there were a lot of learning opportunities because I am naturally a curious person.
I'd agree with the BS part. The best BS students can write programs that accomplish the goal they want to accomplish, but aren't "good" at it.
The MS students are hit and miss,in the sense that most (let's say 70%?) are not significantly better than the BS programmers at programming, though they are often have better at algorithm understanding.
However, there are some MS students who are really good at programming. I don't know why there is such a stark difference from the BS folks, who are uniformly bad, but it does exist.
Why do people feel that they belong in a comp sci program if they've never written a line of code in their life?
If I have an option of hiring someone at 22 and mentoring them for 2-3 years in the hopes that they'll become useful or hiring someone at 22 who has been programming for the last 6-8 years and knows what the hell they're doing, I'm going to pick the self-taught programmer almost every time.
I chose to do Computer Science because I wanted to properly understand computers. I had essentially no programming experience although I had tried a couple of times but hadn't found the right way in, (QBasic by Example didn't work for me and I didn't discover K&R or a C compiler which I think would have worked better for me). At the end of my degree I was definitely not a great programmer but I could program in Java and ML (taught in the degree programme) and C/C++ and the WIN32 APIs self taught and used for my final year (significant scale but poorly structured) project.
There people on the course (at a very famous university) who really couldn't program at the end of the course but knew the material and official answers well enough to get good degrees. There were also many that started with good programming skills but it was certainly possible to learn enough in the three years to be able to start work and do useful programming and build experience.
Something that surprised and disappointed me at University was how few people seemed to really try to take advantage of being there and learn generally within and beyond their subject rather than being course and exam focused (not just CompSci but all subjects).
Am I a great programmer? No, but I've only spent 15 months within a professional development team, another couple of years on demo level and proof of concept software in an R&D environment and the last year self retraining in iOS and Rails development following five and half years in Product Planning and Business Development.
Who should you hire? I don't know but some simple programming tasks I. The interview stages are probably a good idea. If you want someone who is just a programmer maybe someone incurious is a good bet if they have the skills you need now but whether they are self taught or university educated I think the big question is whether you want someone to fill a particular role now or for the future growth potential that they have. If you are only interested in the fully capable now rather than the trainable (and mouldable to your company way) you may miss out onbetter long term bets.
Personally, if college is not preparing them for the practical practice of their art (I'm not saying it should be done to the detriment of the theoretical side, i'm just saying it's not being done at all right now), that seems like not necessarily the best use of time/money.
FWIW: I have the same view of law school, which is essentially worthless in terms of real world practice. If you practiced law how they test you in law school or on the bar exam, you'd be disbarred.
Can you elaborate on this some?
I'd expect a 21 year old who studied computer-science to have programming experience outside school exercises, and not show any signs of sucking at it.
If this isn't the case I see no reason to expect them to improve to a level that they "can program your socks off" after another 2-3 years.
We can argue about what "bad at programming" and "program your socks off" means, but my main point is that there is no excuse not to have some programming experience by the time you graduate.
I would expect a ms/phd to be distinctly better at questioning and thinking about things outside of face value than a bachelors, on average.
Some of that will transfer into coding, ofc.
Most people prefer the beaten path -> average.