TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Why do people discount the importance of a formal education in computer science?

35 点作者 pius超过 16 年前

15 条评论

scott_s超过 16 年前
The field is very young. If you want to build bridges, you major in Civil Engineering. You have to learn a lot of physics along the way, but make no mistake: the point of your education is to prepare you to build things.<p>Computer Science is a mish-mash of many things, and only part of that is how to build software. Sure, just about anything outside of pure CS theory requires programming, but producing the working program is not the end in itself. A big problem is that we really <i>don't know how to build good software</i>. This does not mean good software does not exist. It means that we don't have reliable methodology to produce good software. In contrast, we have reliable methodologies to build good bridges.<p>The ACM studied this with the IEEE in 2000, and came to this conclusion (<a href="http://www.cs.wm.edu/~coppit/csci690-spring2004/papers/selep_main.pdf" rel="nofollow">http://www.cs.wm.edu/~coppit/csci690-spring2004/papers/selep...</a>): "Following a study by a blue ribbon panel of prominent software engineers, the ACM Council decided in May 1999 that it could not support licensing of software engineers. ACM's position is that our state of knowledge and practice in software engineering is too immature to warrant licensing."<p>I think it's important to differentiate between Computer Science and Software Engineering. That is, the difference between someone whose goal is contributing to the base of knowledge in their field, and someone whose goal is a stable, working system. There is, of course, overlap, but I think the distinction is still there.<p>I think that in the future, there will be separate CS and SE degrees. Much of what they learn will be the same, but the focus will be different. A CS education will prepare you to be a researcher; a SE education will prepare you to build software. (I know SE degrees exist, but most schools only have a CS program.) I don't think this split will happen until SE is mature enough to be licensed.<p>What does this have to do with your question?<p>We don't have reliable methodologies to build good software, and the only formal education people receive that involves building software isn't necessarily focused on actually building software. This is a nice way of saying "we don't know what we're doing." If even the best people in the field don't know what we're doing, then you can learn that on your own.<p>Personally, I still think a CS degree is the best preparation right now to be a professional SE. You will probably be exposed to more things than you would find on your own. But I also recognize that there are probably many professional developers without degrees who are better at what they do than people with degrees.<p>Also note that if you actually want to do research, then you <i>need</i> to get a degree.
评论 #314225 未加载
ajmoir超过 16 年前
Because time and time again people with a formal education in computer science have turned out to be useless in the commercial arena.<p>Let's face facts most programming is not rocket science and could easily be automated. The reason it has not been automated is that programmers by and large are Luddites. They can admire new gadgets but not seismic changes in their work environment.<p>Anybody who has had the where with all to study for a BSc/MSc/PhD then most work in a commercial setting is going to be far far beneath their intellectual capabilities.<p>In short Compu Sci is best for a research role and commercial dev experience is best for producing a product. The two are widely different beasts.<p>Personally, I have BSc in CompuSci and work in the commercial sector. I think both Academia and Commercial use of computers is abysmal. The last big step forward was in the 1960s for Academia and 1980s for business. Since then it's all been downhill.<p>I have recent compu sci grads who cannot design a simple 8 bit cpu, what's an ALU. This is just plain wrong. I also have witnessed commercial developers who don't know how to treat clients. In both cases why are these people even bothering to work in computing?<p>Most devs still think inheritance is more important than interface. Just how far forward can we move with these fools slowing us down.<p>I think what it will take to move forward is a company saying if we do IT better we can rule the market. Then finding some devs and ops with long experience and fresh ideas.<p>When a billion dollar company shows it can run it's IT with 20 people then we have progressed. Not when some dweeb says he has a new programming language that goes to 11.
评论 #314786 未加载
axod超过 16 年前
There are a lot of other vocations where formal training isn't always an asset.<p>How many rock/pop stars formally trained to be a musician? Did hendrix do a Phd in the guitar?<p>I think the same is true in hacking. The best way to become good is through practice, and self learning. Not necessarily from learning other peoples opinions, or current fads.
评论 #314621 未加载
评论 #314697 未加载
wheels超过 16 年前
Because most people who studied computer science aren't employed as computer scientists. If someone refers to themselves as a computer scientist, I expect that they've either had formal (or rigorous informal) education in CS. If they refer to themselves as a programmer, I assume they know how to program. If someone says that they work at a zoo I don't assume they studied zoology. I do if they call themselves a zoologist.
yters超过 16 年前
Cuz they think programming is computer science?
评论 #313934 未加载
olefoo超过 16 年前
1. academic study of computer science is an indicator of interest not ability<p>2. Computer Science programs vary widely in what they teach and at what level, ranging from 'All you need is Java' vocational programs to 'You might as well double major in Math' theory of computing. Two people with BSCS degrees from the same institution may have vastly different levels of ability and accomplishment.<p>3. There exists a spectrum from EECS majors who can write any program and build the computer to run it, down to BACS who can code a form in VB if someone sets up their IDE for them.<p>4. Because the demand for competent programmers is so strong, smart people who trained in many fields find employment as programmers and often do better than those trained.<p>5. If I have to explain version control to someone who graduated from college with a degree in computer science; I discount that person's ability, and my estimate of the program they graduated from.
auston超过 16 年前
I would never claim to be a computer scientist or even a computer programmer.<p>I am a web developer, I work with scripting languages to develop basic web applications. I do not develop complex algorithms or even know the difference between threads and processes (anyone want to enlighten really quick?).<p>&#60;/incomplete_thought&#62;
评论 #314095 未加载
raganwald超过 16 年前
Good question. I work with a team where a degree in CS "or equivalent experience" is considered a requirement. The other day someone asked me what Kernel#returning does in RubyOnRails. "It's the K Combinator" I replied.<p>Do you think they instantly knew what I meant? And would it have helped if they had?
评论 #314543 未加载
评论 #314182 未加载
run4yourlives超过 16 年前
I don't think it's a cut and dry matter.<p>Formal CS education matters in many cases, but is clearly not a distinguishing factor in many others. It all depends on what it is you're evaluating.<p>Let's be blunt, 95% of Web 2.0 startup stuff is purely programming. These are practical problems that require practical solutions. Although a CS degree is probably a plus, experience and a few working examples of work are more than likely bigger pluses.<p>But that's a very specific subset. If you're doing advanced and technically challenging work like say, trying to beat google, the foundation that you gain by having a formal CS degree starts to matter a little more.<p>I don't think anyone discounts anything, but there are different levels of application depending on the situation.
mrjbq7超过 16 年前
There is a psychological effect called "Choice-supportive bias" which I find sometimes explains the positions that people take when describing CS degrees.<p><a href="http://en.wikipedia.org/wiki/Choice-supportive_bias" rel="nofollow">http://en.wikipedia.org/wiki/Choice-supportive_bias</a>
lemonysnicket超过 16 年前
I think it should be noted that pius is an MIT alum (in EE &#38; CS) so is obviously biased here.
honne超过 16 年前
We should not discount formal education. Reason: <a href="http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD690.html" rel="nofollow">http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EW...</a>
callmeed超过 16 年前
I dropped out of a top-ranked (undergrad) cs program my senior year (to work on my startup, natch). This was in '99/'00, and a lot of my classmates who graduated took .com jobs in the valley. A lot of them ended of getting laid off, so I don't regret leaving.<p>I would say some of what I learned in school has been helpful at my startup (OOP, testing/qa, and team stuff). But probably more of what I do day-to-day comes from independent learning, trial and error, and experience.
zandorg超过 16 年前
I took Software Development because it had an AI minor. I didn't take Formal Systems, because of my AI, which made things easier. I also learned Scheme in the CS lesson, which led me to Lisp.<p>But now, I'm sure I use skills learned from the course, even if I didn't get a job out of it.<p>This University was BCS accredited, which means a lot in the UK. Unrelated, but I met the at-the-time President of the BCS at a conference in 2003.
评论 #314749 未加载
nazgulnarsil超过 16 年前
in line with what axod mentions: as a young field, software engineering is still pretty meritocratic. That is, the only standard a software engineer is held up to is if his code gets the job done. All fields start off this way, but over time formal institutions grow up around them. Eventually, just as there is an American Psychological Association, I expect there to be an American Software Association. When this happens it tends to create new ways in which you can be successful in the field. Just as not all (or even most) of the members of the American Psychological Association are good practicing psychologists.