6 ms·
I would like to hear their opinion once they graduate and get some years of experience in the field. Software engineering is predominantly problem solving and
by myth_buster 11y ago
I would like to hear their opinion once they graduate and get some years of experience in the field.
Software engineering is predominantly problem solving and the important traits are analytical and logical thinking. 4 years of education doesn't govern these. Some people have natural pre-disposition to these skills and filtering out people based on majors will reduce your pool significantly.
I've seen a lot many good engineers coming from the Philosophy, Physics and Mathematics majors. And I think this could be true for other majors too.
In short, smart people will easily catch up with what is taught in 4 years and hence given an average employment period of ~30yrs it's ridiculous to decide employment based on a major.
- deleted 11y ago[deleted]
- SamReidHughes 11y agoAnd let's not forget it's not 4 years of CS they need to catch up on. Students spend a bunch of time taking classes in other subjects, and of CS, really what they need to catch up on are a handful of important classes.
- edgyswingset 11y agoSome of my personal experience with non-CS majors can be summed up with three words: Hardware Ex Machina. Perhaps I'm biased, but I suspect a smart person from a CS degree background will probably think about performance more than a smart person who never learned about "irrelevant" things (to quote the author this post is addressing) like Operating Systems. Someone without a CS degree can learn about how to write code which is memory and CPU-efficient and scales well. But if it's never a problem they have to come across, they may never even think about it. CS students are forced to think about things like that in their degree.
- spamizbad 11y agoI've worked as a developer for 10 years. My anecdotal experience is that 4 years of undergraduate Computer Science does not impart any special skills regarding performance. I found myself routinely refactoring code written by CS-degreed programmers who would do silly things like put a database query inside 2 nested for-loops. I even had one case where a degreed dev looked at perfectly fine code and said "Oh there's a faster way to do this..." then proceeded to implement a solution that was literally 500x slower, but checked it in anyway, not bothering with any before/after performance benchmarks, just assumed his stuff was magically faster. The culprit: His solution was very greedy with network traffic (but was arguably more computationally efficient). Didn't matter tho, it was slow as dog. Undergraduate Computer science will teach you how to measure how much arbitrary work it takes to complete something but AFIAK it does not seen to teach you a very good job of how to actually look at a specific problem and optimize the work, memory, or external latency-intensive resources... that must be learned by critical analysis of actual code.
- MichaelGG 11y agoIt's probably prefixed with "good CS" and also filtering candidates. I've interviewed several folks, some with masters in comp sci, and they were utterly oblivious to even basic algorithms.
- edgyswingset 11y ago> that must be learned by critical analysis of actual code I agree fully, and won't ever deny that many students simply either never do this or never do it effectively. There are courses which teach this however (such as OS), and many of them are required for a degree. I feel that the likelihood that someone with a CS degree has had these good practices ingrained in them is higher than someone with no background in CS. In other words, it's a safer bet.
- jasonjei 11y agoI concur. Courses like Operating Systems, Computer Organization, Automata and the like may not seem immediately applicable, but I've had a ton of moments where I've been so happy to have had a formal CS education. Even if you're never going to work on an Operating System, knowing how Operating Systems work can help you design your software to work better--especially with respect to using API calls responsibly.
- rbanffy 11y ago> Software engineering is predominantly problem solving and the important traits are analytical and logical thinking. 4 years of education doesn't govern these. I remember one thing I always told my students. I always told them that my classes would not turn them into great programmers any more than swimming classes couldn't turn them into fish. If they had it, they'd be good ones. If they hadn't, I promised them they'd be able to, at least, fend for themselves.
- tdaltonc 11y agoThat's probably not a good thing to tell students. A belief in fixed abilities ("either I have this skill or I don't") causes students to try less and encourages people to believe that people that are superficially similar to them posses the same fixed abilities they do.
- rbanffy 11y agoI don't think many of them actually believed me (context is important), but many felt challenged. The encouragement, the promise I'd make them able to fend for themselves, was what made most of them take the effort to learn. When you see something as your "gift", it's easier to help others to succeed - this had a nice side effect of motivating the really gifted ones to teach their colleagues outside the classroom. I also directed questions to the class and threw sweets to those who answered. It was fun to watch adults jumping competing for candies.
- bdcravens 11y agoI've been a professional developer since 1999, but didn't even have any degree when I started my career. While I suspect if I was writing device drivers or doing systems development I'd be lacking, but for web and database-driven development, I've rarely been incompetent due to lack of CS degree. (Biggest example being concurrency issues, but I suspect I've learned more in the past 16 years than 4 years would have taught me; a degree would have just given me a head start)
- robotjosh 11y agoThe same people with a life long interest in computer science are very likely going to major in computer science or computer engineering. Its not that the programs are great its that the people who would be good at it anyway end up going thru those programs.