Hacker News new | ask | show | jobs
by jeffreymcmanus 5163 days ago
No argument there. Like I say in the post, I'm all in favor of the goodness of the basics. I just think that giving undergrads all theory and very little practice is not optimal, and they should have the opportunity to go minimal on theory if it makes sense for them. Very few universities offer such a choice today.
2 comments

I know. We lacked practice at the university too. I don't think you can blame the university for that, though. Practical things are better taught by people who actually use them on the job, not by PhDs who write scientific papers. That's why I went to long-term internship at an actual company during my second year, which later turned into a full-time job.
if the university purports to teach this stuff, they should hire people who actually know how to teach it. if their tenured PhDs aren't cutting it, they should look elsewhere. (this is how i got my university teaching job.)
> if the university purports to teach this stuff,

It doesn't. The major purpose of a university is to produce scientists who do research, not software engineers who write crud apps. We, the software engineers, are just a byproduct.

> they should hire people who actually know how to teach it

They can't and they shouldn't. Why would one want to teach at a university when (s)he has enough skills to work at a company for a big fat compensation, and, possibly, equity? The only way to attract those people to the universities would be for the universities to offer much higher salaries, which would consequently drive up the cost of education (in my own country it wouldn't even work, because education is "free", i.e. mostly paid for by the government). And for what - to teach the students something they could have easily picked up on their own by poking around the internets or participating in internships? That is not optimal. If you study formal grammars in class and don't try writing your own little lexer/parser at home, it's your own fault, don't blame the university. It has taught you everything you need to know to write a parser, and it's your job to put it to use.

Where I spent most of my undergrad (Georgia Tech), we had a system called threads. Giving students tracks in which they could focus their study of computer science.

These tracks were generally all theoretical (the exceptions being some classes in platforms and devices), even my friends who had a love for software engineering ended up learning the thoughts behind each process rather than blindly learning the process itself in order to master said process that is currently practical.

The way I treated academic learning is very similar to the process described above by 10098. The learning you experience in college should be some form of aggregate information about past ideas/trials and tribulations. This is the process by which I (as a customer) have found most universities treat their undergraduates. Rather than tailoring them to become masters of a specific problem they try (albeit not successfully, and there are a vast number of people in universities today that don't enjoy, want to have, or have this mindset) to build the next generation of people to find flaws in our current society, in hopes that they have motivation to fix it.

That being said you are making the argument that software engineering is a vocational skill. While I'm not denying that the majority of the process that I've found in my limited time in the industry tends to be filled with skills that are akin to any other vocational profession, I don't believe increasing vocational skills help the students. It might in a short term give them a strong basis for obtaining a software related position. It might also give them the ability to perform really well in their jobs at that time being. It does however not enable them to question the process they've learned. It also does not help them find problems within a process.

It should also be noted that most companies aren't looking for a master software engineer. They test for intelligence and social skills rather than how strict the student is on testing practices or which design cycle they prefer. These biases also lead towards limiting employment because they'll end up fighting rather than adapting to the new work environment that is already established by the companies views on the subject.

A lot of top schools are taking interest in teaching up to date languages, maybe not clojure or even javascript but python is the language that I've seen most Georgia Tech students prefer to program in after taking several courses in it.

http://www.cc.gatech.edu/future/undergraduates/threads http://www.cc.gatech.edu/future/undergraduates/bscs/roles/ma...

This kind of thing is one of the reasons why Georgia Tech is consistently among the top 10 computer science schools in the nation.