|
My point was more that you don't need a degree to be able to do the maths.
And check out The Millennium Bridge (London)[^]. My betting is high that the engineers on that project had experience and qualifications, and even knowing why it wobbled still ran into trouble.
If we are to keep in the trend of examples from other areas which are not realy relevant, my father-in-law worked in a mine detonating explosives for over fifty years, having left school at 14. When legislation insisted he have a qualification to do it (after thirty years of experience) he sat the exam with no preparation and passed instantly. Of course he knew the theory, but he never got a degree. In fact the main reason he carried on working so long was that the newly qualified people coming to do the job with the ink on their degrees still wet were still clueless in the real world.
Who are you going to trust on the job? Thirty years of experience, or a fancy piece of paper.
To use a more relevant example, I recently worked on some tax claim software with a 'SQL expert' MS qualified and masters degree. His theoreticaly based solution was fine on small data sets but ran all day on a decent amount of data. He knew the theory, but did not know how to apply it. I took one look and made it run in seconds for a huge dataset. You see, I also know the theory, even though I never got a degree, but real world experience working with huge data sets every day, and understanding the relevant tax law, was more help in writing the more efficient algorithm.
Given the choice between someone experienced, or someone qualified I would take experience every time, unless there is a legal requirement for the paperwork. You can't get experience without being capable, but you can get qualified and not have a clue.
|
|
|
|
|
You can have both paper and experience. I have both and I'm pretty sure I'm a better developer than I would have been, had I jumped straight into work life. University has taught me things, the real world never could and vice versa. Of course you don't get anything more out of an education than you put into it, and many people spend their university years drinking and partying, so obviously you can find incompetent university graduates. You can also find brilliant people who never finished university like Einstein and Bill Gates.
So my original statement was not in absolutes, but in averages. My personal experience is that CS graduates on average are better programmers. That doesn't for instance exclude you from being a way better programmer than me.
|
|
|
|
|
Covered that in Mathematics for Computing, 1st semester of the first year of my CS degree, and to a lesser degree in the data structures module.
|
|
|
|
|
I place a high value on education, but I am currently interviewing for a developer position and have interviewed several in the past and so far I'd say a CS degree is only mildly better than nothing. From my perspective, a CS degree in the right hands (someone who has a passion for software, a desire to solve problems, a desire to learn the "right way", some basic ability, AND a sense of urgency about it) is a very good thing, but without those desires, the CS degree is just a line on a resume. I really don't care if they know what O(1) means if they desire to do things the "right way" and have a sense of urgency about it.
|
|
|
|
|
Alexander DiMauro wrote: what do you think are the most valuable things you learned in the CS degree that the rest of us are missing?
In theory you get the benefit of many years' real-world experience from the teachers -- but often that doesn't pan out.
A deeper appreciation for the history and underlying technology of computing.
A broader experience with languages.
A broader experience with databases.
A broader experience with algorithms.
A broader experience with data structures.
A broader experience with development paradigms.
On the other hand, some things (like Data Structures) are now built into the framework and today's kids don't need to learn how they work.
One of the things that I wish I had learned before my first programming job was how to build large software projects. Nowadays you just use Visual Studio and it takes care of everything for you, but my education and my first jobs were on OpenVMS. We (I) never learned how to compile and link a complex application with a build tool (MMS, make, etc.). Other than VS, I still don't know how -- I just use bat files.
|
|
|
|
|
Yes, I've tried to broaden my experience, but it's tough sometimes when work requires you to stay pretty focused. I can see the advantage of having had that experience earlier in your career. I think anyone can learn a lot by 'dabbling' in various languages.
|
|
|
|
|
Yes, and the more languages you have some experience with, the easier it is to learn a new one.
|
|
|
|
|
Good question. I think the most valuable thing is the depth/breadth of knowledge you gain in a relatively short period of time. While I do learn at work, I do not learn at nearly the rate I did in school. Here are some examples of things I would not have (or have done) had I not gone to college (some of these contrast with those who have other degrees, while others contrast with those who have no degree):
- Education in things other than CS, such as math.
- Knowledge of how to program LISP (knowing how it works is what is really useful... the language itself is weird IMO).
- Created my own compiler.
- Advanced knowledge of CS topics (e.g., big-O notation and implementation of common data structures and algorithms).
- Time to work on personal projects (over the summers).
- Discipline.
Not to mention I met my best friends at college.
|
|
|
|
|
That's a good list, although the math is not particular to just CS. In my Bioengineering classes I had to take the full 3-semester Calculus + Differential Equations + Linear Algebra + Biophysics/Biochemistry classes that are quite challenging mathematically. And, I also had CS 101 + 102 + Discrete math that I took as electives.
That being said...I've never created my own compiler! Sounds like fun. Maybe some day...
If I had the time, and the money, I would probably go back and get an MS in CS. But, it's just not possible, unfortunately.
|
|
|
|
|
I've taken about the same amount of math as you (perhaps less calculus), and that's enough that I don't even remember the difference between a couple of them (e.g., discrete vs linear algebra), much less how to actually use any of it.
And, like you, I want to go back to school to get a different degree. I sometimes feel my CS degree is too general and I want to go back to school for another specialty, such as architecture, some type of biology, some type of medicine, psychology, or physics/math (which would actually be in a more general but still interesting direction). Gotta pay off all that debt first though!
|
|
|
|
|
aspdotnetdev wrote: Gotta pay off all that debt first though!
Yes...that is the trick, isn't it?! Will be paying it off the rest of my life, it seems sometimes!
|
|
|
|
|
Alexander DiMauro wrote: what do you think are the most valuable things you learned in the CS degree
Algorithmic analysis and and an appreciation for what goes on under the hood (byte-code, IL, machine language) with a view to performance. Another thing that directly came in handy was my formal training in AI. My first programming job was at DEC's Artificial Intelligence Technology Center where I spent 7 years developing expert systems. While picking up AI theory "on the job" isn't impossible, I think I would've been at a severe disadvantage (and in fact would not have been offered the job) if I didn't already have an MS in CS with a concentration in AI.
That being said, here are some things I don't think they do (or can) teach in school. This is the kind of stuff you pick up through real-world experience.
- Real-world requirements analysis.
- Usability testing.
- Balancing feature creep with time to market.
- How to choose which features to implement (first).
- How to manage a development effort.
- How to write code that can evolve safely.
- How to design for security, performance and testability.
- How to write good documentation.
- How to take an idea to market.
- How to keep your customer happy.
- How to check your ego at the door (a requirement if you work at a startup).
/ravi
|
|
|
|
|
Great list! Yes, project management skills, in general, come almost exclusively from real-world experience. I agree completely.
My favorite job was with a startup that (unfortunately) didn't last. But I sure learned a lot there!
|
|
|
|
|
I'm in your boat, I think they're totally overrated (mostly because I'm jealous I don't have a certificate on my wall)
As others have mentioned, and I have found, the most important things in software engineering aren't (can't?) be taught in a school environment, like:
- You are not the best, and you do not know everything.
- Take pride in your work, but not too much - i.e. "kill your babies".
- Income is not directly proportional to "engineering beauty".
- Actually being interested in software engineering in the first place.
I will leave out all the cynical things I would add were the hour later than it is, but this is a condensed version of the list I say to myself every morning to relieve myself of self-esteem issues (being the only developer of ~30 in my company with no degree... in anything).
|
|
|
|
|
|
Alexander DiMauro wrote: For those with a CS degree, what do you think are the most valuable things you learned in the CS degree that the rest of us are missing?
A head start on the theories. The best courses I've taken are compiler construction, programming languages, distributed systems and functional programming. These courses gave me a lot of ideas that I have used to solve problems over the years, often totally unrelated to the above topics.
Other than that, not much. When you get out of school, you're none the wiser than you were when you started. You just have some more tools in the toolbox to actually learn what's important.
--
Kein Mitleid Für Die Mehrheit
|
|
|
|
|
I have Bachelor Degree in INFORMATION TECHNOLOGY.
Does it count in COMPUTER SCIENCE or Not in it?
|
|
|
|
|
Sure it does
|
|
|
|
|
Yes it does. But when comes to the industry some times define in different ways too.
I appreciate your help all the time...
CodingLover
|
|
|
|
|
It's a little comforting that most the people here (or at least most of the people who took the survey) actually write software.
|
|
|
|
|
Even "Hello World" is a software. Right?
cheers,
Super
------------------------------------------
Too much of good is bad,mix some evil in it
|
|
|
|
|
But I have written softwares when I didn't have a computer science degree(Just with Diploma in Computer in my 18th age). Now I'm with my Bachelor degree & now studying Master degree (Both degrees in corresponding).
thatraja |Chennai|India|
Brainbench certifications Down-votes are like kid's kisses don't reject it Do what you want quickly because the Doomsday on 2012
|
|
|
|
|
I write software and I have a computer engineering degree. I had roomies who did the CS degree and they are very different.
Judy
Be wary of strong drink. It can make you shoot at tax collectors - and miss.
Lazarus Long, "Time Enough For Love" by Robert A. Heinlein
|
|
|
|
|
Actually in most of the Universities offers Computer Science & Engineering degree, isn't it? Because there is always kind of scientific basis to discover.
I appreciate your help all the time...
CodingLover
|
|
|
|
|
CodingLover wrote: Computer Science & Engineering degree
It depends on the school but it's usually not one degree. The CS degree tends to be offered by the Arts & Science school in a university whereas the CompE is offered by the Engineering school. The basics are different. For example, my CompE course of study (with respect to required courses) was identical to the EE students for the first two years. After that it was all electives. I only had three courses over all 4 years that were the same as my CS roommate.
Judy
Be wary of strong drink. It can make you shoot at tax collectors - and miss.
Lazarus Long, "Time Enough For Love" by Robert A. Heinlein
|
|
|
|