Slashdot Mirror


Computer Science Curriculum in College

Ludwig Feuerbach writes "As it's back to school for university students, including Computer Science undergraduates like myself, I look at my course schedule for this semester and I have courses with titles like: Theory of Computation, Numerical Analysis, Artificial Intelligence, Machine Learning, and History of Economics from Plato to Keynes. The first 4 courses are required in my CS program. I had thought nothing of it until I read an opinion piece by Dan Zambonini, who stresses the type of courses I'm taking are, essentially, useless for getting a job. He lists several CS courses useful for a job. Is he right? I tend to think that an university education should stress scientific topics over vocational ones, but since I'm just planning to get a job after I grad, am I in the right program?"

654 comments

  1. if you want more vocation, plus a better chance by the_2nd_coming · · Score: 2, Insightful

    for a job, then go into CIS.

    it is oriented at getting the student to learn how to use computer systems found in business, how to create tools for those systems and how to manage and build on those systems.

    --



    I am the Alpha and the Omega-3
    1. Re:if you want more vocation, plus a better chance by Anonymous Coward · · Score: 4, Informative

      Agreed 110% - Information Systems work IS the "steady-eddy/bread & butter" end of this field... & there is ALWAYS work in it.

      No two corporate entities structure their data or use EXACTLY the same data (unless part of same company) typically, so custom information systems work (e.g.-> custom databases & such + reporting apps etc./et all) will always need to be designed & redesigned or added onto (or even modded/improved for changing conditions).

      Another REALLY useful (imo) course, is "DataStructures" if it was not included in said list from the URL document: It teaches you a great many things & patterns of thought (such as which types of sorts to use, when, & with what datatypes & sizes of sets to sort thru, as one example of what you acquire/learn from it).

      How much of it do you REALLY use in IS/IT/MIS work? Not much, but it is a GREAT course for anyone into computing imo!

      * :)

      APK

      P.S.=> The reason I agree SO strongly with the init. poster & his comment of:

      "for a job, then go into CIS."

      I assume he meant information systems work/databasing in general (often called "data processing" as well)... I have made more than a decade worth of money from it, for the very reasons I state above:

      Sometimes, there is NO "canned/prebuilt/turnkey" instant solution out there for various enterprises out there or their data - you HAVE to build them, for them! apk

    2. Re:if you want more vocation, plus a better chance by oc255 · · Score: 5, Interesting

      I would agree with the usefulness of a Data Structures Course. It just so happens that I started a Jr Development (Java mostly) position recently and I was not a CIS/CS major (career change from SA/Unix).

      I find myself trying to create a data structure/tree like a family tree or a directory structure. Each node has multiple children, a node can have no children, a fast way to find a path from a child to the root, etc. And in wondering how to create such a tree I find the usefulness of textbook knowledge, specifically the jargon. I'm reading like crazy about red/black trees, linked lists, doubly linked lists, binary trees, what a map is compared to a list, etc etc. It goes on and on. And I'm sure a course would have covered this or at least given me the knowledge to see quickly if the standard Java libraries have this structure already built.

      Many of the Java books I'm reading have wording like, "if you remember from your CS class what a binary tree is, here's how to implement one in Java ..." The theory background would have made this a lot easier/faster, rather than jumping right into a specific language.

      I definitely envy those who took any kind of data structures course.

    3. Re:if you want more vocation, plus a better chance by halcyon1234 · · Score: 5, Insightful
      Having been to both University and College (Canadian terms. US equiv is, I believe, College and Community College?), I can say that I can't see not having both.

      Although it is true that CS is a highly academic and theoretical field, almost all of its applications are (appropriately enough) applied.

      So, what are some of the most common arguments?

      If you don't know how to actually program a computer, an employer won't care if you know the theory behind machine code

      Essentially true. Unless you get some plum "sit around and think about computers" job, most employers will want you to be able to actually DO the job they hire you to. However, on the flip side of that:

      An employer doesn't want someone who has only been trained to use Language X. They want someone who wholly understands the concepts of programming and can adapt to any situation as the company grows.

      Again, essentially true. Unless you are doing a temp contract, most employers will be looking for a Programmer (or some buzzword, like Solutions Analyst)... not a C++ Do..Until Loop Programmer.

      But, as you can see, both of those requirments seem to contradict each other by seemingly presenting an either/or case. Either you know Programming OR you know C++.

      And the same applies for just about any field in CS. (Either you know Network Administration, or your know Cisco Routers. Either you know Web Mastering, or you know Apache. Etc, etc.)

      I first completed a college diploma, and learned how to build a network (Cisco style), how to set up and maintian websites (Apache style), and how to run databases (MySQL style). Although there was a spattering of "theory" in each course (usually consisting of the introductory lecture to each course), it was all "hands on".

      I graduated and transferred over to University. By Year Two, I felt so detached from actual computers. I was learning a lot of facinating theory stuff, but really wanted to do something with it. Of course, "doing stuff" was a 4th year course. ;)

      So, after getting most of the requirements for the Bachelor degree, I decided to switch back to college. In Ontario, colleges have been allowed to grant Applied Degrees.

      Having experienced a good chunk of the cirriculum, I have to say that this is a great solution. It's a nice mix of theory AND practicality. Personally, I'd like to see the Universities lean more towards an Applied Degree, with all the serious intensive THEORY courses offered as 3rd/4th year electives... and as Masters. (I firmly believe that Masters should be near 100% theory. You SHOULD get a Masters in Network Science, not a Masters In Cisco IOS).

    4. Re:if you want more vocation, plus a better chance by Anonymous Coward · · Score: 0

      What a waste. If you wanted to learn to think like a Computer Scientist, you just had to read this Python tutorial:

      http://www.ibiblio.org/obp/thinkCSpy/

    5. Re:if you want more vocation, plus a better chance by Anonymous Coward · · Score: 0
      not a C++ Do..Until Loop Programmer.
      There is no such construct in C++. Perhaps you're thinking of do..while?
      You bring up some good points, but my view is that the "hands on" stuff you can largely do yourself while getting the theoretical education. For instance, in my DBMS class, which was mainly theoretical, I set up and configured my own DBMS and used it to write, deploy, and test my final project.
      When you look back historically to the great innovators in computer science, they came from disparate backgrounds, usually math, physics, engineering, or computer science. The commonality between these backgrounds is the formal scientific training. Formal scientific training, therefore, is obviously pretty important.
      If you don't mind being eminently replaceable, go for a vocational focus, and then try to get into the business end of things, because the minute a new paradigm takes over, you will have trouble adapting, or at best, will probably not get the most out of the new technology or use it effectively.
    6. Re:if you want more vocation, plus a better chance by cagle_.25 · · Score: 2, Interesting
      1) "Having both" can mean something as simple as getting a CS degree and having a junior-year or junior summer internship in your field of interest.

      Virginia Tech does this, and their grads are quite well-placed in the job market.

      2) Besides, why should CS degrees be undesirable? All the stories these days are about CS departments losing enrollment. Seems like a good time to "buy in."

      3) The money isn't in coding...it's in management. You are *far* more likely to land a management position with a degree. Granted, the profit motive isn't the only consideration, but still...

      --
      Human being (n.): A genetically human, genetically distinct, functioning organism.
    7. Re:if you want more vocation, plus a better chance by halcyon1234 · · Score: 3, Insightful
      not a C++ Do..Until Loop Programmer.

      There is no such construct in C++. Perhaps you're thinking of do..while?

      Yes, that's it. (Another problem with learning too many programming languges. Too much syntax! =) )

      When you look back historically to the great innovators in computer science, they came from disparate backgrounds, usually math, physics, engineering, or computer science. The commonality between these backgrounds is the formal scientific training. Formal scientific training, therefore, is obviously pretty important.

      I don't think it's that cut and dry. One of the reasons why many of the innovators of computer science came from non-CS fields is because CS hadn't been invented yet. There were no computers to... um... sciencefy. Much the same way that Henry Ford didn't major in Car Mechanics. ;)

      Although it's true that it requires a good amount of scientific method to be "a computer person", computers are becoming more and more reliant on non-math&phsyics expertise. Psychology is needed for good UI design (not to mention AIs). Physiology / kinesiology is needed for ergonomic design.

      The thing is computers aren't a thing to do, but they are more a way of doing things. You can study pure math. But you can't really study pure computers. You can specialize in things like "using computers to calculate complex chemical reactions" or "networking computers for increased computational power" or "studying the effects of photorealistic 3d graphics on the psyche of farm animals"... but you can't really just study "computers".

      It may be because, unlike math or physics or chemistry... there's really nothing to "discover". There's lots to invent and improve, sure... but there's no real ingrained "laws of computers" that are woven into the natural fabric of the universe. There's no Plank's Constant or equation balancing or Realtivity. There's nothing that's tangibly abstract (???) that's just THERE to explore, discover and derrive.

      If you don't mind being eminently replaceable, go for a vocational focus, and then try to get into the business end of things, because the minute a new paradigm takes over, you will have trouble adapting, or at best, will probably not get the most out of the new technology or use it effectively.

      Amen to that. This is exactly the difference between being prepped to do a job and training for a career. If you're only taught how to do stuff with IIS, and then one day MS dumps IIS for some stupid paperclip based web server, you're screwed. But, if you've learned how to use web servers in general, and understand the theory behind them, you're more likely to be not-screwed. (Of course, if you don't know how to actually USE any of the current technology, well, you're as useful as someone with their Masters in Automobile Theory who doesn't have a driver's license....)

    8. Re:if you want more vocation, plus a better chance by alicenextdoor · · Score: 3, Interesting
      It may be because, unlike math or physics or chemistry... there's really nothing to "discover". There's lots to invent and improve, sure... but there's no real ingrained "laws of computers" that are woven into the natural fabric of the universe. There's no Plank's Constant or equation balancing or Realtivity. There's nothing that's tangibly abstract (???) that's just THERE to explore, discover and derrive.

      On the contrary, there's a whole theory of computation that is far from fully understood. Godel's incompleteness theorem, Turing machines, the Halting problem, computational complexity (as opposed to trendy modern SFI-style complexity), issues surrounding self-replicating automata...some of the greatest minds in science, never mind computer science, have spent serious time on understanding what is computation and what are its abilities and limits. I'm sure there's room for one or two new thinkers.

      --
      of course, biting monkeys is not to everyone's taste - Konrad Lorenz
    9. Re:if you want more vocation, plus a better chance by boomgopher · · Score: 2, Informative

      I find myself trying to create a data structure/tree like a family tree or a directory structure

      Do you really need to create your own datastructure? The Java Collections framework has a number of good classes and interfaces that are useful. Anytime I've thought I needed to do this from scratch, I was wrong...


      --
      Your hybrid is not saving the environment. Its purpose is to make you feel good about buying something.
    10. Re:if you want more vocation, plus a better chance by Shome · · Score: 1

      "Do you really need to create your own datastructure?"

      . Rarely. However, it is important to have a good understanding of the Data Structure in order to use these efficiently. Or, even understanding that using a proper Data Structure leads one to a more elegant / simpler solution.

      --

      ~Once you have your choices narrowed down, the rest will fall into place.
    11. Re:if you want more vocation, plus a better chance by cballowe · · Score: 1
      Having been to both University and College (Canadian terms. US equiv is, I believe, College and Community College?), I can say that I can't see not having both.
      As I've seen this distinction brought up several times in this thread, in the US we have: University Generally research focused and has advanced degrees - Masters, PhD, etc. as well as undergraduate programs. Often these are broken up into colleges (where I went there was Humanities & Social Sciences, School of Computer Science, College of Fine Arts, and a few others) but that distinction is often lost. College Generally only grant 4 year degrees - bachelors - no masters or PhD programs. The faculty aren't usually as involved in research as they are in teaching. Community College Generally only grant 2 year "associates" degrees. Some have partnerships with universities that offer certain courses to the bachelors level, but that is less common and even then, those courses are being tought by the university professors, not the community college ones. No research focus, often used as a place for people to get general courses out of the way ($90/credit hour is alot cheaper than $1000/credit hour and there's only so many different things that your basic rhetoric class will cover). Most people going off to school are probably ending up at a university, but there's quite a few small colleges out there that grant the bachelors degree. Also, given that the degree is generally granted by a college as part of the university, it's not incorrect to say "going to college".
    12. Re:if you want more vocation, plus a better chance by TheoMurpse · · Score: 1

      University and College (Canadian terms. US equiv is, I believe, College and Community College?)

      I would tend to say University and Community College. In the US, a college can be one of two things when dealing with higher education -- a division within a university (for example, at the University of Texas we have the College of Natural Sciences and College of Liberal Arts, among others), or as a generic term for higher education ("I went to college!" -- no one says, "I went to university"), or the same way as in Canada (for example, in my hometown in south Texas, the community college is called Victoria College).

      Residents of other regions of the US are welcome to chime in or present differing usages here -- I think it would be interesting to see if the words are used differently in the Northeast and such.

      Note: I actually do say, "I went to university," and, "When I was in/at university," but that is because I heard Russian immigrants say that a lot when I was a child, and now I find that it sounds interesting to use the word "university" in such a way.

    13. Re:if you want more vocation, plus a better chance by cobras2 · · Score: 1

      If you're interested in data structures.. a good book on the subject is "A Practical Introduction to Data Structures and Algorithms" by Clifford Shaffer. My copy is the Java version, I believe there's also a C version.

      --
      Early bird may get the worm.. but the second mouse gets the cheese.
  2. Regarding the purpose of a higher Ed degree... by JymBrittain · · Score: 5, Insightful

    The types of classes you prefer will depend, essentially, on what you see as the purpose of a higher ed degree or some would even argue the purpose of an education. Some would argue that it is to prepare you for a job through the acculumation of a set of skills or a knowlege set. Others would argue that it is to prepare you for a lifetime of learning. In this day and age, odds are unless you're in a position where you can call in rich, you'll take more than one career zig or zag in your lifetime. Yet another group are those that see the purpose as a mixture of both. In the end, your choice as to the purpose of education should be one of the fundamental questions you get a personal grasp on before you even apply to an institution of higher learning.

    1. Re:Regarding the purpose of a higher Ed degree... by Coryoth · · Score: 5, Insightful

      the purpose of an education. Some would argue that it is to prepare you for a job through the acculumation of a set of skills or a knowlege set. Others would argue that it is to prepare you for a lifetime of learning. In this day and age, odds are unless you're in a position where you can call in rich, you'll take more than one career zig or zag in your lifetime.

      The issue I have with evaluating everything in terms of "but will it get me a job?" is that, as you say, over your lifetime you'll probably make a few jumps in career path, so the skills you invest in now might not be what you find yourself doing in 5 or 10 years time. Add to that the fact that, especially in the IT field, there is a lot of churn in what are considered the "right skills" and you could easily find that the job skills you spent time learning are not much in demand by the time you've finished learning them.

      That's not to knock vocational courses - they can be very useful and help give you the skills to get things done. Your life shouldn't revolve around your job however, and not everything should be devoted to that end. The best vocational courses are the ones that are unashamedly so, are usually short (a few weeks or months for the whole course) and something you can pursue when you need it. University courses are supposed to be about learning because you want to know and understand. Some of that may be useful for finding a job simply because people who understand some concepts may well be rare, and in demand. Some of that may be useful in a job because you have a good grasp of underlying concepts and understand what you're doing rather than just mechanistically repeating a process. Employment is shouldn't be the point of learning such things however, it should be a small side benefit. If you want a job, take some vocational training. If the job you want requires you to understand things for which you need a university degree then either that's something you want to learn regardless just so you can understand it yourself, or you need to seriously consider your career goals.

      In the end the ability to learn new things efficiently, and the skills involved in such learning are the most valuable job skills you'll get. You'll rarely end up doing a job that is precisely what you trained for, so the ability to learn and adapt is highly beneficial. Those are things no university, trade school, college, or otherwise will teach you, it's something you have to learn for yourself. Of course any sort of education can give you practice.

      Jedidiah.

    2. Re:Regarding the purpose of a higher Ed degree... by apoc.famine · · Score: 5, Funny

      And from what I hear, one of the most useful classes you can take to get a job after completing a CS degree is Hindi.

      --
      Velociraptor = Distiraptor / Timeraptor
    3. Re:Regarding the purpose of a higher Ed degree... by sd_diamond · · Score: 3, Insightful

      Those are good points. I would add to that by saying that the greatest value of a scientific/technical college education is not just the specific knowledge and skills that it teaches you, but the fact that -- if you do it right -- it teaches you how to learn new things. And this, really, is the most valuable job skill of all. Whatever cutting-edge software or hardware you become familiar with in your university education are almost certainly going to become obsolete in your lifetime -- even abstract concepts like theories and algorithms can always be superceded by better ones. What will really make you irreplaceable to an employer is the ability to read (and understand!) the literature and keep yourself educated on current equipment and techniques.

      So in that sense, Zambonini has it completely backwards. Because courses like Theory of Computation, Numerical Analysis, Artificial Intelligence, and so forth require students to gain an understanding of complex, advanced theories and algorithms. Whether they actually use the specific things they learn is really not that important; what matters is the meta-learning.

    4. Re:Regarding the purpose of a higher Ed degree... by eMartin · · Score: 1

      I dropped out of college, and went on to teach myself.

      I learned various programming and scripting languages, HTML and CSS, all kinds of graphics software from mspaint.exe to Maya, and have developped many problem-solving skills.

      I have experience with operating systems ranging from Macintosh System 7 to Mac OS X, Windows 3.1 to Windows XP, many versions of Linux, as well as some of the more obscure systems.

      I built the computer I'm currently using, and help other people with building or upgrading their own, including people I've worked for, where my job was something completely unrelated.

      I could go on, but I'm not trying to impress anybody here. In fact, I'd assume that many people here could say the same about themselves. My point though, is that I don't know what to do with myself now.

      I spend much of my free time helping strangers with dumb computer problems on web forums instead of actually doing something useful with my knowledge, and I'm not happy with that. It's been six years since I left school because I didn't feel like I was learning anything, and now I want to go back.

      It's not about the degree though (I can get work). I want to learn more than just how to do things. I want to learn why to do them, and I want to learn what can be done with them.

    5. Re:Regarding the purpose of a higher Ed degree... by mothlos · · Score: 1
      What is the purpose of education in general?
      Is there a single purpose or does it need to provide different services for different people?

      Our Universities used to be places for research and the training of researchers. They currently are providing a basic vocational role for high-skilled labor from computer design to health-care.

      If we are going to meet the labor requirements of an advanced service economy we need to evaluate the entire education system from cradle to grave. Everybody needs to have life-long learning skills and post-secondary school is not the place to be trying to teach people this.

      The learning requirements of the future are going to require that we look at school systematically instead of divided into several distinct parts. Degrees are an antiquated concept which doesn't reflect the high degree of specialization required in the workforce.

      Is higher-ed about becoming a specialist or a generalist or a specialist with a degree of generalization? Yes. Students coming to higher education will each be better at some balance of generalization and specialization and the workforce needs people of great variety in this respect. Our institutions of learning need to be able to do all of this, but the question is are they doing a good job of it now?

    6. Re:Regarding the purpose of a higher Ed degree... by dahin · · Score: 1
      I spend much of my free time helping strangers with dumb computer problems on web forums instead of actually doing something useful with my knowledge, and I'm not happy with that. It's been six years since I left school because I didn't feel like I was learning anything, and now I want to go back. It's not about the degree though (I can get work). I want to learn more than just how to do things. I want to learn why to do them, and I want to learn what can be done with them.
      Absolutely go back. But be prepared that the answers you are seeking aren't readily found in the Computer Science department. Branch out into other fields like philosophy and the social sciences.
    7. Re:Regarding the purpose of a higher Ed degree... by gstovall · · Score: 1

      I completely agree that the list of skills listed is extremely valuable in today's computer oriented workplace, but fundamentally a higher education should be used to broaden horizons and basically teach a person HOW to think and HOW to acquire knowledge, not load a person up with immediately marketable skills.

      At my work, we fundamentally believe that new grads are useless to us for about six months, until we train them with the arcane knowledge required for the types of development we do. Unfortunately, the majority of new grads we have hired believe they are God's gift to computing, and we have to break them before they are trainable. Actually, there is only a single new grad (an Indian intern that we had) that was immediately useful to us, in the 19 years that I've been with the company so far.

      This may be controversial, but I find that in general the people that end up being the best software architects are the people with non-CS degrees (physics, mathematics, engineering, etc.). The CS folks tend to think that the algorithms they were taught in school are the one true way to solve a problem, while the other folks, without the CS blinders, tend to generate more original, more efficient solutions.

      Full disclosure: both of my degrees are in physics, but I had significant study in computer engineering and computational physics while in school. My superior is a CS graduate who is an absolutely wonderful software architect.

    8. Re:Regarding the purpose of a higher Ed degree... by JymBrittain · · Score: 1

      erm...I did say "Others would argue that it is to prepare you for a lifetime of learning." The meaning there is/was supposed to be, it teaches you how to learn.

    9. Re:Regarding the purpose of a higher Ed degree... by sd_diamond · · Score: 1

      erm...I did say "Others would argue that it is to prepare you for a lifetime of learning."

      You did, didn't you. I guess I was repeating you then.

      They say that imitation is the sincerest form of flattery.

    10. Re:Regarding the purpose of a higher Ed degree... by electroniceric · · Score: 1
      University courses are supposed to be about learning because you want to know and understand.
      I'd go further than that. University is about learning to think: to analyze, to learn various types of thinking and appraoches to the world, to put things in a broader perspective, and to communicate. IMO anyone leaving college should have had two semesters of solid writing experience - no employer will ever ask you about writing and communication, but it underpins any successful career development. If you can't explain your ideas, they will always take second place to the ideas of those can explain them.

      Unfortunately, university is also about the only time in your life when you have the liberty to learn to just think. Barring a plum job or a stint in academia, you will have very little time to learn to think other than college.

      That's not to say that a lot of university curricula couldn't use a little more thought about what skills and methods of learning a student is likely to need, not to mention a good structured program for giving students experience before they graduate. But I'd be awfully wary of vocationally focused programs that throw out the baby with the bathwater.
    11. Re:Regarding the purpose of a higher Ed degree... by jkiryako · · Score: 1

      The line between vocational and theoretical classes is a self-imposed one. I'm pretty sure that most of the theoretical classes I took in my C.S. program could have had some practical component to them. For example, it would have been great if my Theory of Computation class was somehow merged with the Compilers class. I tend to learn best by example and to be more motivated to learn things when I have some practical motivation for to learn them. That said, I'm all for teaching students how to think like engineers.

    12. Re:Regarding the purpose of a higher Ed degree... by Anonymous Coward · · Score: 0

      > It's been six years since I left school because I didn't feel like I was learning anything, and now I want to go back.
      > ...I want to learn more than just how to do things. I want to learn why to do them, and I want to learn what can be done with them.

      Sounds like you did what I did - I was studying CS and dropped out to work. I learned a lot about computers, but I never really felt like I was achieving much besides supporting various institutions and enterprises.

      Are you interested in science? Apply some of that computer knowledge. The future is biotech, so I'm going back to school to study bioinformatics. Maybe someday I'll contribute something worthwhile to medicine, genetics, or nanotechnology. Beyond keeping the scientists' e-mail working, that is! :)

    13. Re:Regarding the purpose of a higher Ed degree... by sasami · · Score: 1

      odds are ... you'll take more than one career zig or zag in your lifetime

      The odds are, in fact, 9 out of 10. At least in the USA.

      For this reason alone, I strongly and persistently encourage my students to take an education that grants them lifetime skills in learning, thinking, and communication.

      Here's another statistic: in 1982, a poll was conducted among the Yale class of 1957 (25 years after graduation). Two-thirds of them were employed in jobs that did not exist in 1957.

      Or, put another way, job skills become obsolete nearly as fast as CPUs and video cards.

      --
      Dum de dum.

      --
      Freedom is not the license to do what we like, it is the power to do what we ought.
    14. Re:Regarding the purpose of a higher Ed degree... by japhmi · · Score: 1

      And from what I hear, one of the most useful classes you can take to get a job after completing a CS degree is Hindi.

      Actually, one of the most useful classes I took for getting a job was Greek. That's because I didn't major in CS, I majored in a different subject and just worked a job that involved programing.

      A few years later, I have a degree in a subject that's interesting, skills in decoding information (from my language classes), and programing experience in the real world (including picking up new progaming languages quickly).

      (PS, I know the parent post was a joke)

      --
      "Giving money and power to government is like giving whiskey and car keys to teenage boys" P. J. O'Rourke
    15. Re:Regarding the purpose of a higher Ed degree... by JymBrittain · · Score: 1

      It's also nice to see so many others in the thread agreeing with both of us.

  3. Answer to your question... by jawtheshark · · Score: 5, Insightful
    If you want to learn about computer science (which is for a big part just maths), you're in the right program. However, computer science doesn't teach you to be a software engineer, or a programmer. It teaches you the sience behind it all, the foundations of "how this stuff" works. (Which is mostly theory, by the way) It isn't all that useful for your job, but an academic degree doesn't make you ready for "a job". It makes sure that you can handle what comes after that. The ability to adapt, to learn and research on yourself when your job requires you to do so.
    Sometimes the stuff you learn there seems completely and utterly unimportant for day to day usage. Still, often you suddenly get into a situation where no other non-CS guy can't find a certain bug because they lack the understanding of the background. I've been in the stuation myself where I was able to fix a bug that resulted out of the use of floating-point numbers. The guy that implemented the routine just didn't know about the mathematical boundaries of floating point numbers. It's just an example...

    If you just want to become a programmer, just follow some evening courses... That's all you need... Programming isn't all that hard, but don't come complaining to me because the sorting routine you wrote is too slow and don't know why.

    --
    Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    1. Re:Answer to your question... by Anonymous Coward · · Score: 2, Insightful

      That's just not true. Or rather, maybe it was at your college.

      First of all, a degree is very important when looking for a job. Most colleges and universities don't offer a degree in Programming.

      Second, as a CS graduate working as a software engineer, I can say with absolute certainty that while most of the classes don't have any direct bearing on what you may end up doing, knowing the theory and fundamentals are key to being a well-rounded programmer.

    2. Re:Answer to your question... by Etyenne · · Score: 3, Insightful

      The problem with your position is that the job market have come to expect CS degree from programmers. Vocationnal school degrees, while being more down-to-earth in their approach, are considered inferior by the vast majority of employers. So, if you want to make a living programming, CS degree is considered a must. I know it make no sense in the real world, but would you rather get to begin your career on a lower rung because you choose the most appropriate curriculum for your career path ? For most people, the answer is no, thus we are collectively trying to retrofit computer "scientists" into programming roles.

      Some people sugggested MIS as a better academic path for programmer. I don't know. At my University, the MIS curriculum involve a lot of business bullshit such as marketing or finance. I know these are good to know from the organizational point-of-view, but if you expect to produce decent programmers, you need to keep some focus.

      Actually, I think there is no good path for those who want to get into programming in the current academic model. It's even worse for IT. What would a prospective system administrator take as degree ?

      --
      :wq
    3. Re:Answer to your question... by IWorkForMorons · · Score: 2, Interesting

      Try explaining that to the numerous companies in and around Canada's "Tech Triangle" (which happens to include Waterloo, Ontario, the home of the supposedly famous University of Waterloo's CS program). I went to Conestoga College, which has a very good, very relevent Computer Programmer/Analyst course. While it's a programming course and gives you a very good basis, it also relates it to the business aspect of the world. I came out knowing how to program complete systems end-to-end regardless of the language, and can pick up most languages fairly quickly. Even the evil RPG . And I've had extreme difficulties getting a programming position outside of insurance companies.

      The one incident that really burned me was at a job fair. I walked up to a booth for Business Objects, a company that creates add-on tools for other software. From what I saw, they used VB. I thought to myself, "I think I could do really well here". So I went up to the guy. The *FIRST THING* he asks..."Where did you go to school?" I say "Conestoga College" proudly. He says "Sorry, we don't take college students. University only." I spent the next 5 minutes pointing out all the experience I had creating software relevent to his company. He simply dismissed it. There are many other examples of the bias towards university students, but that was the one that pissed me off the most. Most companies, even software companies, have the idea the if you went to university, them you simply *MUST* be better then a lowly college grad.

    4. Re:Answer to your question... by Anonymous Coward · · Score: 0

      "If you want to learn about computer science (which is for a big part just maths), you're in the right program. However, computer science doesn't teach you to be a software engineer, or a programmer. It teaches you the sience behind it all, the foundations of "how this stuff" works. (Which is mostly theory, by the way) It isn't all that useful for your job, but an academic degree doesn't make you ready for "a job"."

      This depends on where you go to do your course. Many academic institutions share your view that CS should be mainly theory and maths, but there are also many others that see it as much more than that and get their students to do lots of practical stuff and also have the focus on preparing them for a career in the computing field.

      For example, the CS degree that I am going back to this year expects all students to be proficiant programmers by the end of the first year and has "professional issues" as compulsory modules. The is also the opportunity to take a year out in industry so that students can get first hand experience on what the industry expects and offers.

    5. Re:Answer to your question... by Anonymous Coward · · Score: 0
      If you just want to become a programmer, just follow some evening courses... That's all you need... Programming isn't all that hard,
      Agreed. And the supposed difficulties in learning new languages are far overstated. Languages are just tools. You can acquire those tools on the job. Now using those tools well...
    6. Re:Answer to your question... by drpimp · · Score: 0

      Agreed 100%. I am first hand at this as come May, I will have my BS in CS, with an emphasis in Information Systems from Cal State Fullerton. It's no Berkley, but I believe it is a quite good school. Anyhow, in all my classes taken even though most of our assignments there were small programs or algorithms we had to devise. There wasn't much programming taught once you got out of the first few classes in the first year or so. After that, much of the programming practices I had to pick up from a book or online.

      It was the assembly and arctitecture classes that really brought us down to the low level. Not to mention the 2 algorithm classes that showed the big O and big Omega sides of things so like jawtheshark states you aren't scratching you head pondering why your algorithm takes 3 days to do a merge sort on some files. All in all once May comes, I will be lacking something as far as something taught with my degree. We never directly used, with our main language of choice at Fullerton (C++), user interfaces, instead the media class we took made us use a program called "Revolution" which in my opinion is crap. But I suppose once you got the fundamentals down, a book or internet can get you up to par on that.

      --
      -- Brought to you by Carl's JR
    7. Re:Answer to your question... by WindBourne · · Score: 1

      hummmmm. Somewhere down the road, you and your meta modders are going to read the original post and realize that you only read a portion of it. Basically, you are trying to refute what he said, but you are saying the same thing.

      --
      I prefer the "u" in honour as it seems to be missing these days.
    8. Re:Answer to your question... by AutopsyReport · · Score: 1
      Programming isn't all that hard, but don't come complaining to me because the sorting routine you wrote is too slow and don't know why.

      Now why you would be writing your own sorting routine in the first place is a highly questionable thing, but being too arrogant to explain something to a 'programmer' is something else. Unless this is just a performance for the crowd.

      --

      For he today that sheds his blood with me shall be my brother.

    9. Re:Answer to your question... by hackerjoe · · Score: 2, Insightful
      I know it make no sense in the real world, but would you rather get to begin your career on a lower rung because you choose the most appropriate curriculum for your career path ? For most people, the answer is no, thus we are collectively trying to retrofit computer "scientists" into programming roles.
      I couldn't have said it better. It's amazing to me how many people will defend the value of a CS degree as a preparation for software engineering, but it hardly makes sense.

      All the rest of the engineering disciplines, which are actually pretty similar to software engineering, have focused bachelors-level programs and have for decades. They still learn the scientific underpinnings of their disciplines, but they are also trained in the less glamorous things they'll need to do on the job, such as estimation and documentation, things that CS grads fresh from school are typically not very good at at all.

      So why not software engineering too?
    10. Re:Answer to your question... by rpgirl1981 · · Score: 1

      I disagree with you. College should prepare you for a job.

      I'm finishing up my Kettering University education in mechanical engineering. I feel that I am sufficently prepared for a job in industry, partly because I have some experiance with business though my co-op job.

      I guess I feel that if you aren't preparing for a job, why go to college? There are "jobs" out there for people who aren't educated ("You want fries with that?") and then there are jobs for people that are educated.

      I agree that academics can be a little high-minded and they don't always WANT to prepare you for a job, but at my school job prep is almost a requirement. KU students would be kind of PO-ed if we paid 80,000$ for this education and found out it was worthless in industry.

      Just my two cents.

      --
      Time is an illusion. Lunchtime doubly so. ~~ Douglas Adams
    11. Re:Answer to your question... by Fnkmaster · · Score: 2, Interesting

      While I agree with you, the programmers I've had work for me with no theoretical background are usually pretty bad programmers. The good programmers usually had a pretty strong theoretical background. Of course, it's not a necessary and sufficient condition - I have met a few with strong theoretical knowledge and poor practical programming skills.

      But I've almost never met a *great* programmer (i.e. somebody who can independently design and develop complicated solutions and implement them efficiently) without a pretty strong theoretical background. That doesn't mean you absolutely *need* a formal education, some people are great autodidacts and can learn even theory on their own, but a formal education in CS is a good way for your average bright person to achieve this goal.

      Of course, a good liberal education ought to be a prerequisite for citizenship and your other responsibilities to yourself and mankind. College isn't vocational school, and if they teach you properly how to learn and assimilate information, then picking up the skills you need for a particular job should be a piece of cake.

    12. Re:Answer to your question... by sedyn · · Score: 1

      That is one of the differences of engineering an science.

      Engineering is a means to an end. Science is an end in itself.

      That was the greatest pearl of wisdom I gained out of an entire software engineering course.

      I'm in CS for the knowledge, not for some career (hell, I almost left CS because of the dismal careers awaiting it's graduates)

      I suppose there are plenty of philosophy majors out there that lament the same thing.

      --
      Am I open minded towards open source, or closed minded towards closed source?
    13. Re:Answer to your question... by Dare+nMc · · Score: 1

      > The guy that implemented the routine just didn't know about the mathematical boundaries of floating point numbers. It's just an example...

      I completly agree with your post, but I do get frustrated sometimes by all the extra stuff the 4 year colleges typically include. IE, this important job stuff in my case was packed in the first year, and last year, now when I needed it, I had it available, because that was my greatest intrest. but many of my fellow graduates I worked with didn't recall these things, and I think that is because of the equal importance they placed on your GPA from the non important job stuff (that was much easier for most of us techi people.)

      now that non Job stuff has come in really helpfull in improving life, from the economics that helps invest, and plan finance, to understanding politics.

      also I would highly recomend the legal background classes, because that really doesn come into play in every aspect now (probably more in the future.)

    14. Re:Answer to your question... by Jester99 · · Score: 1

      if you went to university, them you simply *MUST* be better then a lowly college grad.

      For those of us who aren't Canucks in the audience, can you explain the difference? I'm very confused, as an American. Is it like the English system (where as far as I can tell, they use all the words differently, like "public" and "private" schools, etc..)

      A "University" down here is simply a set of federated "colleges;" it doesn't convey any degree of quality, only size. A liberal arts degree from Swarthmore college, for example, would probably be desired over one from Penn State University.

      So what's the Canadian take on the issue?

    15. Re:Answer to your question... by Spock+the+Baptist · · Score: 1

      "Even the evil RPG "

      Just because the VC used RPGs against US forces in Vietnam doesn't make them evil.

      --
      "Oh drat these computers, they're so naughty and so complex, I could pinch them." --Marvin the Martian
    16. Re:Answer to your question... by Mr.+Slippery · · Score: 1
      I know it make no sense in the real world...

      It makes a tremendous amount of sense in the real world. I don't want someone I'm working with to be so ignorant of algorithm analysis, for example, that they use bubble sort. (Yes, I came across this in the "real world" in code written by someone who has a "computer engineering" degree.)

      If you want to understand regular expressions, you've got to understand the mathematics of finite state automata. If you want to write truly reliable code, try proving a couple while loops. If you want to understand parsing, you've got to grok PDAs. (Uh, that's "Push Down Automata", I guess it might be better to refer to them as "stack machines" now.)

      Of course this should be leavened with practical programming classes. But languages and coding fashions come and go; big-O notation and Turing machines are forever.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    17. Re:Answer to your question... by llefler · · Score: 4, Insightful

      Some people sugggested MIS as a better academic path for programmer. I don't know. At my University, the MIS curriculum involve a lot of business bullshit such as marketing or finance. I know these are good to know from the organizational point-of-view, but if you expect to produce decent programmers, you need to keep some focus.

      It depends a lot on what type of job you are looking for. I would guess that the majority of programming jobs are for managing in-house applications. Companies writing software to manage their own business. In those jobs, it's just as important to understand the business as it is to know how to write a program. Maybe more so, since advancement above a certain level will generally be into management.

      In various classes over the years, I have taken Cobol, RPG II, Assembler (s360), BASIC, C, C++, and Java. And over my career I've mostly worked in Delphi. OTOH, everything I learned in accounting and economics applies pretty much the same today as it did 20 years ago. With computer curriculums you have to be careful and make sure you are focusing on teaching how to be a programmer and not how to use a particular language. That's why classes should focus on data structures and SDLC. And sadly, proper GUI design is nearly universally ignored.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    18. Re:Answer to your question... by IWorkForMorons · · Score: 1

      University will give you lots of theory based studies. College gives you more hands-on studies. Normally colleges also don't give you a degree, just a diploma, but even that's changing. Think of it as the difference between going to a big name university and going to community college. I think that's the proper analogy for the US anyways.

      I've seem some university material for UW's CS program, and it's mostly math theories from what I can tell. There isn't much actual coding, or much else of the whole process. Conestoga teached you how to get the information you need from the people that want a piece of software, how to structure it into design specs, write the code based on the specs, how to document and write help manuals for users, and finally how to properly support the thing once you've installed it. If you've done everything properly, you shouldn't need to do much support afterwards. Learning how to program is a large part of the course, but they give you all the supporting skills too. And they start you out coding from day one. I didn't fully realise it until year 2 of the 3 year course that I wasn't learning languages, I was learning how to build systems. Sure...I may not have the skills to write an OS, although if I really wanted to learn I'm sure I could. And that's a different course at Conestoga anyways...Electronics Engineering with a specialization in computers. I'm not sure what advantage going to university gives you, other then an appearantly highly-prized piece of paper...

    19. Re:Answer to your question... by James_Aguilar · · Score: 1

      Basically, you are saying exactly what he said. What is your problem? Did you actually read his post?

    20. Re:Answer to your question... by jfortier · · Score: 4, Informative

      In Canada, a college is usually what an American would call a "community college", so its primary focus is instruction with a vocational focus. University means just what it means in the US, a higher-education institution that has a strong focus on research (and obviously the extent of that focus varies from place to place). The term college is sometimes also used to refer to the units of a university, such as St. Mike's College at the University of Toronto or St. Paul's College at the University of Manitoba, so you have to get some of the meaning from the context. Without context, the first meaning is usually understood.

      The easiest way to see the difference is that if you tell a Canadian "I'm going to college", he'll probably look at you a second and then either think to himself or say, "Oh, you mean university".

    21. Re:Answer to your question... by the+morgawr · · Score: 4, Insightful
      The reason that most schools don't offer software engineering (and, incidentally the reason that I don't recommend majoring in CS) is that the field of software problems where you don't need domain experience is very small, and for the most part un-theoretical. MOST people would be better off getting another degree and minoring in CS. At most schools the CS degree is not the best investment for your money.

      For example, an electrical engineer specializing in embeded systems and with a CS minor is a much better candidate for many jobs then a guy with just a CS degree. Let's face it, it is much easier to teach the advanced CS stuff to yourself then it is to learn an entirely new field, and most of the good software jobs require some special field of knowledge.

      My advice on what degree to get is to get the hardest degree you can survive in your field of interest. In the long run that will put you in a better possition in the job market, because there will be fewer people in the harder degrees compeating for the higher paying jobs, and if you can't find one of the higher paying jobs you can always out compeate someone who got an easier degree.

      --
      The policy of the United States is worse than bad---it is insane. -- Ludwig von Mises, Economic Policy(1959)
    22. Re:Answer to your question... by imgumbydammit · · Score: 2, Informative

      Colleges are primarily technical/vocational schools.

      If you want to become a firefighter, travel agent, surveyer, etc you would go to a college.

      If you want to study english lit. or finance, you go from high school to university...except in Quebec (just to make it confusing), where everyone goes to college (called CEGEP) after high school, and then those who are in the pre-university stream go on to another three years of school in university. Pre-university people spend two years in CEGEP, whereas vocational people spend three years there.

      One view is that universities are where the academic "elite" go. The other view is that colleges are where the people who want useful jobs and useful job training go.

      --
      That's right: I'm gumby dammit.
    23. Re:Answer to your question... by unexpected · · Score: 0

      I agree with your comment and I wish to add an analogy in that:

      An auto mechanic might be able to fix some parts of the car, but a mechanical engineer can actually design the car and obviously can also fix the car.

      Anyone can learn how to program. All you need to do is pick up a book on programming with some sample code and you're set. Computer Science is much more than that.

    24. Re:Answer to your question... by the+morgawr · · Score: 1
      The problem with a CS degree and the reason it has poor job prospects is that it doesn't give you domain experience. When you graduate, you know the theory behind software and you've written a few programs.

      When you get an engineering degree you hit the math and the theory hard at first and then you learn how to apply it to different situations. For example a electrical engineer might specialize in electromagnetic compatability and high frequency design. In addition to having a broad base of theory to use as a starting point for future learning, you have some specific domain of knowledge that you have deep understanding of and can immediatly bring to any team you join.

      When you get a CS degree you don't have a knowledge domain, so tons of CS students are compeating for the relatively small number of software related fields where you don't need some specific knowledge.

      People interested in software are much better off getting a degree in a field of knowledge that interests them and specializing in software related problems in that field. Almost all of the best CS-related jobs fall into this catagory --- simulation, controls, embeded systems, CAE, CAD, etc.

      --
      The policy of the United States is worse than bad---it is insane. -- Ludwig von Mises, Economic Policy(1959)
    25. Re:Answer to your question... by Etyenne · · Score: 1

      And what are you expecting to do as a job ? Programming ? Does your curriculum have prepared you well for this job ? You know, programmers in the real world do not have to write code that merge sort some files very often.

      I don't mean to flame, but you just sound like the typical inexperienced CS graduate. Good luck anyway !

      --
      :wq
    26. Re:Answer to your question... by HardCase · · Score: 1

      If by "that's not true" you mean "I agree with you", then your post makes sense!

      -h-

    27. Re:Answer to your question... by Etyenne · · Score: 1
      If you want to understand regular expressions, you've got to understand the mathematics of finite state automata.

      That's a a pretty good demonstration, by the absurd, of what is wrong with considering CS as a good preparation for programming. No, you do not need to understand the mathematics of finite state automata to make good use of regular expression. I don't. I am pretty damn certain that none of my colleagues does either. Yet, we make use of regex daily. Maybe if I had to write my own regex engine I would need it. But it's a solved problem, so I just use the tools that are availables (and they're is plenty).

      I don't want to flame, but I am 90% certain that you are either a student, or working in academics.

      --
      :wq
    28. Re:Answer to your question... by Halfbaked+Plan · · Score: 1

      If you want to study english lit. or finance, you go from high school to university..

      Or you go to college, get a stable well paying job, then take up the study of English Lit on your own in your free time.

      But if you want to hanker around academia for decades without having to work, by all means do nothing but go direct to 'University.'

      --
      resigned
    29. Re:Answer to your question... by smallfries · · Score: 2, Interesting

      This isn't really true at all. Most CS degrees have a mandatory project in the final or penultimate year. Similar to engineering degrees, this project forces the student to specialise in a particular area, and gain experience of a large-scale project by working in a team.

      Sure, the definition of large-scale is relative, but if you force 5-6 people to work on something for 3-4 months then they normally construct something much larger than they will have come across before. It also gives them some specific experience for their first job. Most groups tend to write games (as they're more interesting) and the quality that they come up with is suprisingly good.

      The areas that come up in CS that the article poster was complaining about; vision, graphics etc are the domain specific areas in CS. In particular they teach students to apply the same core set of maths and programming skills to different areas. I don't think that this approach is that different to engineering. But then, at my uni, the CS department is in the engineering faculty, rather than the maths faculty...

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    30. Re:Answer to your question... by uncqual · · Score: 1
      From glancing at Conestoga's course descriptions for Programmer/Analyst coursework, it seemed to be more comprehensive than what I would expect a community college (in U.S. terms) to offer. This makes me wonder if the analogy that others have made between Canadian "colleges" and U.S. "community colleges" is apt for all fields of study.

      To understand better, I wonder what the Conestoga coursework does expose the student to. For example, are the following taught as part of coursework (i.e., if one earned at least a "B" in all their courses, did all the work, did all the required reading, but did no more, would they know these things upon graduation):

      • Complexity of algorithms - at least being comfortable with O notation.
      • Memory coherence models on SMPs - at least to understand the issues if not a survey of specific architectures.
      • Formal Languages.
      • Floating Point concepts (for example - what is a hidden bit, what is normalization and what is good about it).
      My expectation is that Computer Science BSc grads from universities can at least discuss most of these things intelligently. Depending on the job, many of these may be completely irrelevant, but as a hiring manager I don't want to figure out what I may need one to know for the next project. Also, I want the person to be able to read the more practical papers from the academic world in order to use the ideas in the real world - and these types of topics crop up in these papers (sometimes in somewhat unexpected ways).

      Unfortunately, degrees/schools are useful for quick screening even though the best person with no degree is going to be much better than the "B" student from most universities (that is, assuming the student was applying themselves). The problem for hiring managers is they can't explore (phone screen etc) more than a tiny fraction of the candidates that come their way. The good news for resumes I screen is that if someone has more than six or so years of directly applicable experience, I've pretty much made up my mind by the time I get to the bottom of the resume (where the education is) -- even then though, there are some "wobblers" and a lesser degree or GPA will drop some then.

      Of course, how one gets those six years of directly applicable experience is left up to the reader to solve :(

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    31. Re:Answer to your question... by sputnik_b · · Score: 2, Insightful

      I think a lot of the posts come down to this: if all you ever want to be is an application programmer in the language de jour, then most theoretical underpinnings of computer science are probably useless. The routine task of programming doesn't require a great deal of intelligence or theory, and while not for everybody, most people can master it well enough to write 90% of the code out there (this is a random number, of course).

      On the other hand, if you want to have a career in CS doing something more than just routine programming, then a solid theoretical base is crucial. I am not aware of a single widely-used algorithm (from Dijkstra's to quick sort to dynamic programming) written by a CIS/vo-tech graduate. If you have even a remote interest in working in the field of compilers, OS development, AI, or CAD (just to name a few), you will need the theoretical background that a solid CS program gives you.

      Of course, if you're contemplating graduate school in CS or related subject, then you certainly cannot be overly prepared.

      As years go by, it never ceases to amaze me how subject matters that I had encountered in various courses in my undergrad days pop up in various contexts. Subjects that was absolutely certain were of no interest or use to me. That is the purpose of a strong foundation: to prepare you for the diversity of experiences out there. ... and on a different note: read up on Slashdot now while you still have the time, because with a schedule like that, you are not going to have much of a life this semester. :)

    32. Re:Answer to your question... by clart · · Score: 1

      It was always my understanding that in America, the difference between a university and a college is that universities offer post-graduate degrees while colleges do not. I remember that there used to be a local college that changed their name to university once they started up a master's program.

    33. Re:Answer to your question... by nine-times · · Score: 1
      It teaches you the sience behind it all, the foundations of "how this stuff" works. (Which is mostly theory, by the way) It isn't all that useful for your job, but an academic degree doesn't make you ready for "a job".
      [snip]
      Programming isn't all that hard, but don't come complaining to me because the sorting routine you wrote is too slow and don't know why.

      I think you don't mean to say that it "isn't all that useful for your job", but that "you can probably get by without it". There's something implied in what you're saying that you aren't quite spelling out: learning to perform a specific task is vaguely sufficient for performing that task. However, in your career, what specific tasks you'll need to perform will be varied and will change.

      Therefore, it because very important (for your job) to learn how to learn, learn how to adapt, and learn how to pick up new skills quickly. These are generic skills that can be learned in college regardless of what you study. You might also get through college without acquiring these skills, or you might learn them outside of college.

      Further, learning new skills within a specific field will be much easier if understand the underlying theories of that field. Common sense, right?

      I'll say something else, too: If you want to innovate, you'd better understand the theories. Knowing how to program a few languages might get you a job, but if you want to be a part of making the "next big thing", it's crucial that you understand why the "current big things" are the way they are, what their strengths are, and where they fall short.

    34. Re:Answer to your question... by the+morgawr · · Score: 1
      It might be better to say instead that the knowledge domains available to a CS major do not provide you with significant job advantages because they represent a very small portion of the types of problems software is used for.

      Almost every CS major knows the basics of graphics, databases, compilers, and operating systems. Yes you can specialize in one of these areas (or another CS area) but the field is so small and the jobs so few that it doesn't provide you with any significant advantage. Most CS graduates get jobs in the same small set of fields.

      As a CS you won't learn anything about the areas where writting software does pay: control systems, embeded design, simulation, etc. If, for example, you had a degree in physics or engineering there would be more things you could write software TO DO, hence more/better job opportunities.

      Software is primarily used as a tool to solve a problem. Very little of the software that gets written can be written by someone with just CS knowledge.

      --
      The policy of the United States is worse than bad---it is insane. -- Ludwig von Mises, Economic Policy(1959)
    35. Re:Answer to your question... by LordoftheWoods · · Score: 1

      Yes, CS students do many things that don't seem all that useful at face value. A CS graduate isn't supposed to be your run-of-the mill programming drone. I like CS because its challenging and relevant to my interests. I don't think that many of the "real world programming tasks" are quite so challenging.

      Do you think Neumann could have invented Mergesort without having mastered the other sorting algorithms of the time? Remember the whole maxim about 'standing on the shoulders of giants'? CS is the climb to that peak. Alternatives are like an airlift. When something larger comes along, who's in a better position?

    36. Re:Answer to your question... by Mr.+Slippery · · Score: 1
      No, you do not need to understand the mathematics of finite state automata to make good use of regular expression.

      I said "understand". Not merely "make good use of". You can make decent use of a thing without fully understanding it - I have little understanding of how my car works. But if I wanted to get the best use out of it, high performance, I need to understand it as fully as I can. You also have to know the limits of that tool, which means learning about the difference between context-free and context-sensitive languages (when to use lex/flex and when to use yacc/bison).

      I don't want to flame, but I am 90% certain that you are either a student, or working in academics.
      Nope.
      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    37. Re:Answer to your question... by LordoftheWoods · · Score: 1

      Ha. I've regained my faith in seemingly random useless courses. Thank you. I look forward to the apparently inevitable time when I will realize that such a class has helped me.

    38. Re:Answer to your question... by Etyenne · · Score: 2, Insightful

      I agree 100% with everything you just wrote. My problem is not with the challenge level or the usefulness of CS, it is with the expectative that employers (and, to a certain degree, students) have with regard to CS curriculum. If we expect CS graduate to work as programmers, as it is most certainly the case right now, are we preparing them adequately ? The answers is a clear and resounding "no" IMHO.

      You are entirely right when you say that real world programming tasks are often not quite so challenging. However, the ratio of people we need to solve boring real world programming tasks versus computer scientists we need to solve hard and interesting computationnal problems is extremely high. We really don't need that many computer scientist in the first place, yet we push every prospective candidate toward that discipline because most employers insist on a CS degree even for the lowliest entry level position in IT. This is ridiculous, and a waste of ressources too.

      --
      :wq
    39. Re:Answer to your question... by Etyenne · · Score: 1

      While I disagree with your point of view regarding the programmer's expected skillset, I must salute your position on drug screen test. Up here in Canada, (almost) nobody ask for screen test. It never happenned to me, but I think the practice is revolting. People must stand up. Otherwise, what next ? DNA sample ?

      --
      :wq
    40. Re:Answer to your question... by Anonymous Coward · · Score: 0

      For one thing, engineering programs are often simply quite a bit longer (in terms of credit-hours) than CS programs, so they CAN fit both in.

      For another, there's no such discipline as software engineering. There's a lot of people who would like there to be one, but there really isn't one.

    41. Re:Answer to your question... by CastrTroy · · Score: 1

      The real reason that most schools don't offer software engineering is that it's a very new field. They haven't really figured out how to teach it yet. Your statement about an EE with a Minor in CS is true. But that's true for just about anybody with 2 good degrees. I took a software engineering degree. I think in the end it provided a much better foundation for software design than a CS degree would. The problem is now, I'm not actually doing sofware engineering. I'm doing software design, programming, database design, all that good stuff. But my employer, and most employers don't want to put the resources into what it would take to do real software engineering. The simple thing is, if you wanted all your software designed by software engineer, MS Windows would cost $5000 per copy, and would be at about the level of innovation of Windows 95. It would never crash, run quickly, and use very little memory, but the functionality would be about that of windows 95.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    42. Re:Answer to your question... by russotto · · Score: 1

      Oddly enough, my first job out of school (as a CS major) required that I know about semaphores and mutexes and the like. My current job, which is in the embedded area, involves some other very CS-typical stuff like ECC codes. In between I've worked in the medical devices field and doing business software.

      Software is software; the domain-specific knowledge you can pick up on the job. Pretty much have to, in fact, because it tends to be _so_ specialized there's little you could do beforehand to learn. Particularly in business software; while everyone's doing basically the same thing, they're all doing it in slightly different ways.

    43. Re:Answer to your question... by CastrTroy · · Score: 1

      In my school we had projects in both CS and s/w eng. In CS, it was 1 semester, and the groups were 2 people. Which means, after 3 weeks to find someone to work with and select a project, you had a little over 2 months to work on the project and submit it. Because after that was exam time. And in at least 1 case I know of, probably many more, one person ended up doing very little work, and opted to do some of the other guy's assignments, which he just copied off someone else. In S/w eng. there was an 8 month project, but because of Coop, it ended up lasting a year, because they split it with a coop semester in the middle. And minimum group size was 4. My group had 6. We had to hand in documentation for each step of the project, provide proper design, requirements, development, testing and deployment, for our projects. We did real projects for real companies who wanted some cheap work done relatively well. It was probably one of the most useful parts of my degree.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    44. Re:Answer to your question... by the+morgawr · · Score: 1
      I don't think you understand me, because all of the stuff you've mentioned is pure and near pure CS stuff.

      I'm talking about using software to solve complicated theoretical problems. For example when designing controllers for industrial equipment the designer needs both controls engineering and computer science expertise. If you were designing electronics simulation software, you'd need electrical engineering and computer science. If you were designing nuclear physics simulations for the DOE you'd need physics and CS.

      Most of the time software is used either as a tool or as part of a product, for these sorts of things you'll be much more competative in the job market with another degree and a minor in CS. The rest of the time it's used on a PC in the form of an application or a web app, for this sort of stuff a pure CS degree is fine. The problem is that MOST of the people who like software go into the pure-CS stuff leaving the job market flooded and salaries relatively low. On the other hand, the mixed field stuff, where you need expertise in two or more areas is in relatively high demand. Hence, the salaries are relatively higher.

      Because it is substantially easier to teach youself advance (and even basic) CS then it is to teach yourself engineering or physics, new students are better off finantially by getting a major in one of these harder fields and speciallizing in software then getting a CS degree.

      --
      The policy of the United States is worse than bad---it is insane. -- Ludwig von Mises, Economic Policy(1959)
    45. Re:Answer to your question... by LordoftheWoods · · Score: 1

      Ah, gotcha. I did think you were questioning the usefulness of CS. Thanks for the clarification.

    46. Re:Answer to your question... by IWorkForMorons · · Score: 1

      For your requirements, a CP/A grad is not what you would be looking for. It's also not a job I would apply for. For that type of work, you may legitamately need someone with a lot of math experience and computer theory, which a UW grad is taught. You probably want to consider someone from the Computer Engineering Technology course as well, since that course gets into the really technical aspects of programming. I wasn't taught any of the points you mentioned, although we did learn best practices in programming, i.e. the differences in efficiency between certain routines. Most of what I was taught concerned building full systems from the ground up based on information gathered in the initial stages of a project. For example, I can walk into any retail business and be able to build them a point-of-sale system, including inventory tracking, etc. Or, as I did for my final year project, walk into a police station and build a complete scheduling system in 4 months where 2 professional companies had failed in the past. I won't argue that in some situations my skills are not desired. But many companies don't understand where my skills are desired, and simply dismiss me because I'm not a university grad.

    47. Re:Answer to your question... by Anonymous Coward · · Score: 0

      I guess with all the degrees and such that you have, did they teach you to read and most importantly, comprehend?

    48. Re:Answer to your question... by smallfries · · Score: 1

      I can see your point (especially in the other reply to someone else below) but I still disagree that CS doesn't provide a competitive advantage. The point of learning CS theory is that it can be applied to the other domains that you list. Sure, they all require knowledge of other fields - but for a team to successful in one of those fields, somebody had better be specialised in CS.

      'Reusable skills' is quite an overrated phrase IMO, but this is what a CS degree will give you. Not the knowledge of a specific language or problem, but the ability to quickly learn any language or how to write software for any domain. The theory that gets taught is necessary to write good quality software. And in any software job, regardless of the problem set, the skills to write good software are what will make someone successful.

      A CS major (slight digression, but we don't have such a major/minor distinction over here, what you say below about a minor in CS in a good point and would work well for most of the jobs you mention) should expect to walk into a new job without any domain knowledge. But they should have the right skillset that they can take apart what is important in the domain and apply the skills that they have been taught to analysing and implementing it.

      There is a huge gulf between somebody who is really skilled in software, and those who merely know how to do it. Doing it will get you by, a lot of the time, but there are problems in every domain that will require somebody genuinely skilled in software to solve. Most teams in industry will have one 'guru' type figure who has more experience than everyone else and solves a lot of the meta-problems about how to tackle issues by talking to people. Without people that have these skillsets, most software design is doomed to failure.

      Of course, most software projects fail anyway, but it is a marketable skill to be able to walk into a company and regardless of their area tell them that you can improve their software.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    49. Re:Answer to your question... by Urgoll · · Score: 1
      ..except in Quebec (just to make it confusing), where everyone goes to college (called CEGEP) after high school

      Of course, High school in Quebec is the equivalent of middle school in the US, and CEGEP is the equivalent of high school in the USA. Some CEGEP offer a two year program to get you ready for university, while others offer a 3 to 5 year professional training program... Confused yet?

    50. Re:Answer to your question... by Etyenne · · Score: 1

      Well, it's useful to computer scientists. It's peripherically useful to computer programmers, but these could be taught a more pertinent curriculum. IMHO. A curriculum that could include stuff like project management, interface design, software testing and, of course, more software engineering.

      --
      :wq
    51. Re:Answer to your question... by humblecoder · · Score: 1

      Actually, it seems like in my own personal experience that here in the US, the terms "college" and "university" are pretty much interchangable. I can think of many schools which are "colleges" which, other than the fact that they are called "colleges", are pretty much the same as universities: Boston College, College of Charleston, College of William and Mary, are the ones I can name off the top of my head.

      One thing that I have also noticed is that some universities refer to divisions within the university as "colleges". For instance, they may have a "college of engineering", "college of arts and sciences", etc. As a side note, the aforementioned "Boston College" appears to have several divisions which they refer to as "colleges".

      I have also noticed that some schools have "rebranded" themselves as "universities" in order to appear more "academic" without actually changing their programs of study. That fact alone makes me think you should not judge an institution by whether they are a "college" or a "university" (at least in the US).

    52. Re:Answer to your question... by Nasarius · · Score: 1
      Most colleges and universities don't offer a degree in Programming.

      No, but the CS curriculum varies quite a bit from university to university. Many recognize that most CS undergrads will be going directly into industry, so they'll put some emphasis on software engineering. A required course at my university ensures that no one graduates without experience in a real project. But there's also a ton of theory; some courses are almost purely math.

      It's a good balance, and I think a lot of people who bash CS degrees don't realize that many universities are teaching the practical aspects of software development, even though they don't hold your hand through learning new languages and XML and all that crap.

      --
      LOAD "SIG",8,1
    53. Re:Answer to your question... by sasami · · Score: 1

      I disagree with you. College should prepare you for a job. ... [I]f you aren't preparing for a job, why go to college? There are "jobs" out there for people who aren't educated ("You want fries with that?") and then there are jobs for people that are educated.

      The fallacy is confusing "job training" with "education." As many posters have already pointed out, "education" is gaining the ability to think and analyze anything, to write and communicate anything, and to independently learn anything.

      Job training is not less important, but it is secondary to education.

      A graduate who focuses on job training will find it easier to land a job and will be immediately more productive than a graduate who focuses on liberal arts. But after six months, who's more productive? After a year, who gets a raise? After five years, who gets the promotion? The one who learns the job faster.

      After your first job, the college on your resume counts for pretty much nothing. Again echoing other posters, many college students tragically believe they're training for a career when they're only training for only the first job. They are being ripped off.

      So yes, I would say that KU students should be "kind of PO-ed" for paying $80,000 if all they get is job training.

      That said, I'm not familiar with KU's program. Maybe you're getting a formal classical education alongside your co-op job training. My experience as both an engineer and a teacher strongly argues that this is a powerful combination.

      --
      Dum de dum.

      --
      Freedom is not the license to do what we like, it is the power to do what we ought.
    54. Re:Answer to your question... by gotak · · Score: 1

      When you force, in my case, 3 to 4 people to work together you get 1 or 2 person doing all the work and the rest doing the writing up or work unrelated to their major.

      In my case I did all the work on the actual electronics design and firmware programming and they wrote up stuff and messed around in the shop building the mechanical bits (badly).

    55. Re:Answer to your question... by Peter+La+Casse · · Score: 1
      It's amazing to me how many people will defend the value of a CS degree as a preparation for software engineering, but it hardly makes sense.

      A CS degree does have value as a preparation for software engineering. Before diving into project management, personal and team processes, process models and the like, it really helps to know how to program, to know what various data structures are (and how to use them), and to have some experience in actually writing non-CS-101 programs. It's also useful to know a bit about the construction and organization of computer architectures, programming languages, operating and network systems, compilers, etc. CS undergrad programs vary, but that's a good chunk of what mine covered.

      Some CS undergrad programs certainly would benefit from the addition of an SE course or two, or from the extending out of the basic programming courses by a semester in order to include the essentials of SE. (Mine would have.) There is clearly an overlap between the subject matter of CS and the subject matter of SE.

    56. Re:Answer to your question... by fitten · · Score: 1

      Yes...

      It's basically like this:

      Taking the theoretical classes gives you a deeper insight into the how/why of the field. Taking vocational classes simply shows you how to do something.

      The difference is this: Knowing the theory and being able to think in that 'way' allows you to adapt to new situations that you haven't seen before quicker than just being a 'doer'. You will also have broader exposure to problem solving tools and ideas. Where a vocationally trained programmer may start coding the instant that he is given a new task, a more theoretically trained programmer may tend to analyze the problem first and weigh a number of designs before deciding on one that he thinks is "better" for whatever the design criteria are.

      Vocational programming is: I want a function that does this and returns this, you go write it.
      Having a broader background makes it easier to move towards more software architecture and making decisions based on issues in the design and being the one to decide that you need a 'function that does this and returns this' and which one to create.

    57. Re:Answer to your question... by russotto · · Score: 1

      I understand you, I simply disagree. I've been working in fields which are NOT pure CS (medical imaging, embedded systems) and still found plenty of use for CS skills. I claim you have it entirely backwards: usually, the domain-specific knowledge is the lesser part of the job; you need to know how to write software to solve problems, and what the problems are is secondary.

      Things like web apps are exactly the opposite -- there, the domain specific knowledge is more important and the actual software is mostly a solved problem. A pure CS-type person will be far more at home writing embedded software or simulation software (very heavy in the sort of math a CS degree entails), than writing a boring old Web app which just takes the users input, checks for errors, and dumps it into a database.

      If you think the CS is the easy part, you're probably either the type of person for whom it comes naturally, or you think that CS is just programming. It isn't.

  4. BS degrees are more vocational by Metasquares · · Score: 0

    BS and MS degrees are meant to lean more towards the vocational side, whereas a Ph. D is all about the scientific/research aspect of the subject.

    1. Re:BS degrees are more vocational by Norweed · · Score: 3, Insightful

      Not at all. You don't goto a University to learn about things that will nescisarily help you in the real world. You learn how to THINK. My computer science degree didn't directly teach me anything I needed to use in the real world, however, it did teach me how to THINK like a computer scientist. And the math part of the curriculum has paid dividends. The only people I ever really saying that a CS degree is worthless are the ones that don't have one.

    2. Re:BS degrees are more vocational by liveevil · · Score: 1

      "BS and MS degrees are meant to lean more towards the vocational side, whereas a Ph. D is all about the scientific/research aspect of the subject."

      That's about the most ridiculous thing i have ever heard.

    3. Re:BS degrees are more vocational by Anonymous Coward · · Score: 0

      Your perception is common, but nonetheless incorrect. A bachelor's degree in CS is where you get a broad grasp of the field. A master's is where you more into the foundations (depth). A PhD is where you extend the sphere of knowledge - a task that requires considerable depth and specialization.

      Disclaimer: IAACSP (I Am A CS Prof).

      With respect to the original poster's question - is this the right degree for you? The answer is: it depends on why you're going to college. If the primary reason is to get a job, then probably there are less time-consuming ways to get where you want to go. If you are going to college to get an education (both in CS, and generally), then the kinds of courses you listed sound appropriate to that end.

      IMHO, the world has enough narrow specialists without a grasp of the broader context of the world in which our technical disciplines are embedded. From the world's point of view, it's a good thing you are being exposed to a broader range of topics than just CS.

    4. Re:BS degrees are more vocational by Sponge+Bath · · Score: 2, Insightful
      BS and MS degrees are meant to lean more towards the vocational side, whereas a Ph. D is all about the scientific/research

      BS is an excuse to make bad decisions about partying and sex.
      MS is for recovering some dignity and respectability.
      PhD is for copping a gravy teaching position.

    5. Re:BS degrees are more vocational by Anonymous Coward · · Score: 0

      You must be from the South. What school experience do you have that you found this to be the case? I'd ask for my money back immediately.

    6. Re:BS degrees are more vocational by MagicDude · · Score: 2, Interesting

      BS = Bull Shit
      MS = More Shit
      PhD = Piled Higher and Deeper

      But seriously, a PhD is no longer a ticket for the gravy train to tenure town. Tenure track faculty positions are incredibly hard to get, and if you do get one, you still have to bust your ass for a number of years doing research, writing grant proposals, etc. I took a course with a faculty member who was about a year out from getting evalulated for tenure. We had various homework assignments, and they were due at midnight on the due date. I figured that meant we had to slip our assignments under his door before he came in the next morning, but more often then not, he would be in his office at midnight working. So it does take a lot to get tenure, and also consider that a university position probably isn't going to pay as much as a job in industry.

    7. Re:BS degrees are more vocational by hesiod · · Score: 1

      > The only people I ever really saying that a CS degree is worthless are the ones that don't have one.

      Because the ones who DO have them think (incorrectly) that their degree got them their job, or their pay rate. It did not: it is your talent and abilities. If you don't have a degree but still have the talent, you can still find work pretty easily. And yes, I am without a degree, two classes short, neither in CS/IT. I have no intention to finish because it IS worthless.

  5. My advice by Anonymous Coward · · Score: 1, Funny
    Take that university money and put it in energy stocks. You'll make way more money than you'll get working at some feeble job, and no re-paying your student loans for decades.

    When you're rich, you can buy all the books you want and read them, hell, you can pay someone to read them to you.

    1. Re:My advice by Anonymous Coward · · Score: 0

      It took my brother a year to pay off his student loans.

    2. Re:My advice by Anonymous Coward · · Score: 0

      Is that you, Hillel?

      :^)

    3. Re:My advice by Anonymous Coward · · Score: 0

      High school IS cheap, yes, I know.

    4. Re:My advice by Anonymous Coward · · Score: 0
      Why this is modded funny I don't really know, I'm doing something similar right now, the energy portfolio of my bank is raking in 60% annually, I'd be foolish to spend money that can earn 60% on something that I can learn at any time.

      I guess the paying someone to read to you part is funny, hell, if I make it big on energy stocks, I'll FLY to the author's place and have him read it to me.

  6. The choice of degree matters less than attitude.. by Ckwop · · Score: 5, Insightful

    A degree is an academic certification and as such it should not cover topics simply because they're trendy in CS related jobs at the moment. It should teach a curriculum that gives CS students a good background in a wide range of topics and above all else it should be interesting and set up a good basis for more advanced academic training.

    It is not surprising that sometimes what is good course academically is not necessarily a good course from a business standpoint. As a professional programmer I think that CS graduates are typically no better than someone with no degree at all. I understand that this is a pretty damning thing to say considering the majority of slashdotters probably have a CS degree but in reality the CS degree gives you nothing in terms the ability to write good code.

    In fact, a CS degree typically makes for a more dangerous coder due to their belief that the few programing projects they did on their course makes them a professional programmer. It also trains the wrong instincts. Academic coding is about producing beautiful programs - business coding is about being pragmatic. Often they have a hard time rejecting these academic instincts.

    I liken programming to playing chess. Anybody can learn the game in a day but to become a master takes dedication, a willingness to learn and a lot of time. I've stressed the "lot of time" point because I think this is a key problem with CS students. You get the typical line out of them at an interview "I didn't learn C# in Comp Science but I could learn it in an afternoon.." I'm a young guy (22) and I've been programing professionally for nearly four years and I can tell you that this is simply false. Make no mistake about it, I'm still no coding grand-master and probably wont be for another ten years. When somebody says that they can learn a language in an afternoon it doesn't make me think they're lying, it just makes it blatantly obvious how ignorant they are of intricacies of writing code.

    In conclusion.. I think that having a CS degree is no real advantage over having a physics, chemistry or maths degree. What a degree shows you is the person in-front of you applied themselves to a long term project and got a result. The same conclusion can be drawn from a person sat across from me without a degree but three years of experience. Really, both routes are equally valid and I hold neither higher than the other.

    Simon.

  7. Maybe... by Anonymous Coward · · Score: 3, Insightful

    The classes you have to take are required for the degree, and the degree is very important. On the other hand, some people have great success just learning how to program on their own.

    I'd say there are more successful people in the programming world with degrees than without, though, so I'd stick with the courses your college requires.

    If you really want to stand out when you're looking for a job, use your spare time to write a well-designed app that you can show to potential employers.

    1. Re:Maybe... by black6host · · Score: 1

      Regarding the parents suggestion of bring in an app:

      I can't stress enough how important this can be. I've done my share of applying for work and I always go with code samples and, if possible, working programs. The "if possible" part depends on a machine being available to you that would have the required systems programs (such as the appropriate version of the .NET framework, etc.)

      Now I've done a lot more hiring than applying in my days. And I've always been most impressed with those who would go to the trouble of bringing in a "portfolio" to show me what they can do. Sifts them out somewhat from those that just say: "Sure, I can do that, no problem." Half the time they couldn't when it came time for techinical tests or similiar. Show me what you can do, and show me that you care enough about the job, and yourself, to take that extra step.

    2. Re:Maybe... by Jane_Dozey · · Score: 1

      What would you think of an applicant that had done work on a successful (ie. known and respected) OSS project? Would this be enough (along with any code snippets etc like you suggested) to impress you as a propestive employer? Or is working on an OSS project for experience not really worth the time and trouble?

      I'm just asking as I was thinking of going along this route to get that all important experience that most employers demand.

      --
      Silly rabbit
    3. Re:Maybe... by shayne321 · · Score: 1

      If you really want to stand out when you're looking for a job, use your spare time to write a well-designed app that you can show to potential employers.

      Holy crap, I can't agree with this enough. I'm currently interviewing for an entry-level(*) perl programmer, and one of the questions I ask is: "outside of your academic work, have you done any personal projects or contributed code to an open source project?". The question first of all tries to determine if they are REALLY interested in programming, or just looking for a paycheck. And second, if they have little or no real world experience but have done personal projects or (even better) worked with other programmers on open source projects, it hopefully means they are a little further along than someone who got a degree then spent 6 months working at Taco Bell and partying while they were looking for a job.

      So yeah, my advice to anyone who gets a degree and finds themself unemployed or under-employed for a few months while looking for a programming job: take some initiative and either start a project of your own, or find an open-source project that interests you and contribute!

      * In this case "entry-level" means the person has at least been exposed to programming concepts in college, OR has *some* real world experience in programming, be it in perl or somewhat similar language (C++, JAVA, python, etc).

      --
      Today I didn't even have to use my AK; I got to say it was a good day -- Icecube
    4. Re:Maybe... by OutOfMyTree · · Score: 1

      Yes, OSS work will impress *some* employers. You need to think about which employers you want to target, and work out a strategy for them. If you are OSS-minded, then this may be the route for you. (One advantage of using OSS work to give yourself that little bit extra is that you can do it from wherever, when finding other specific forms of experience can be difficult if you are not based in a big city.)

      It only makes sense if you are genuinely interested in what you volunteer for. The usual rule applies -- it is not worth working hard at something you hate if what it will get you is entry into a job you will hate.

      Don't think that OSS is a nice cosy little world -- you need a thick skin to cope with some of the comments that fly around. And you must find something the right size for you. Taking on a heroic-sized task and failing to complete it is not going to work out well. So take some time looking around for a small starter OSS role for yourself in an interesting well-run project that seems to have helpful people involved (we can all dream!) OSS experience is not going to compemsate for poor grades, so set a realistic limit on the time you invest.

      Do make the most of what you can learn from being involved in a project. There is much more to gain than just coding experience. Learn about the wider issues of system architecture and project management. Also, read some of the criticism of OSS projects and do your bit to minimise the disadvantages of this type of development.

    5. Re:Maybe... by Jane_Dozey · · Score: 1

      Some sound advice :-) Thanks.

      --
      Silly rabbit
  8. define your needs by Anonymous Coward · · Score: 1, Interesting

    First define your needs/goals. Are you wanting a coder position? Research? Once you've defined what it is you actually want to do with your education, then you can figure out if the courses will help you reach your goals.

  9. not useless by OffTheLip · · Score: 3, Insightful

    You are learning to think critically and hone problem solving skills. CS is not computer programming alone. The biggest problem in computer design is and always will be applying the best solution to a problem within the constraints allowed.

  10. Specialised IT courses by [ella] · · Score: 2, Insightful

    I stopped university and got a 'lower' but much more practical degree. This actually meant I was on the market sooner, and by the time I would have gotten my university degree, I was making the same amount of money as somebody who gets out of university.
    And guess what? I already had work experience...

    University is something you (should) do for the love of science, not for just getting a job.

    --
    Mike
    1. Re:Specialised IT courses by beaststwo · · Score: 1
      Getting a job may only require a few specialized, but managing a 30-40 year career in the IT field requires a deeper insight into systems, organizations, and people. I seriously doubt you'll be doing the same thing in 25 years that you're doing today.

      I'm an electrical engineer by education and my job has changed 100% every year since I got my first job. For the first 10 years, the stuff I took in college wasn't helpful, but since then it becomes more relevant every year as I attack complicated large-scale problems involving technology, business, and people. I used only the practical stuff at first, but now the technical theory and broadbased education I received is invaluable.

      Training provides specific knowledge to use now, while education shapes your ability to grow beyond what you are today. So, at least in my opinion, you have to draw a distiction between getting a job this year and how you'll progess through your life and career over the entire working span of your life.

  11. Designed to grind out more CIS teachers by gelfling · · Score: 1

    There are many college programs which are designed to grind out more teachers of those programs to other students who in turn teach them to other students and so on. Think of all the History degrees and all the other esoteric programs like that. This CIS program appears to be of that ilk.

    1. Re:Designed to grind out more CIS teachers by M.+Baranczak · · Score: 2, Funny

      There's a line I heard somewhere about those who fail to learn history, but I can't remember how it goes, Oh well, it's probably not important.

  12. It's not just about what you learn by Anonymous Coward · · Score: 0

    It's the skills you gain in the process. Science degrees give excellent grounding in analytic thinking, numerical skills, (maybe) experimental skills, etc... Vocational training may give you an advantage in some cases but these skills can often be picked up quickly in the workplace anyway.

  13. Tell us what you're planning to do.. by Anonymous Coward · · Score: 0

    We can't answer if you're in the right program unle ss you tell us what you're planning to do with your degree.

    IT?
    Programming?

    Where do you see yourself in 5 years, etc ..

  14. Watered down CS degrees by Average_Joe_Sixpack · · Score: 2, Insightful

    I use to be proud of the fact that I held a CS degree, but that changed when CS became more about job training than a science. If you want a real CS degree, then become a math major.

  15. Common Question by wsloand · · Score: 5, Insightful

    This seems like a common question. There will be plenty of people who think that college should provide vocational training and plenty more who think that college should teach you "how to think independently".

    I'm personally more in the second camp. I think that there are vocational schools for those who want to learn the vocation, but those skills will need to be constantly updated. I think that what you learn in college (as opposed to vocational schools) should be applicable to more fields than just the one that you learn and that you should be able to apply the lessons beyond what the curriculum specifically teaches.

    Essentially, if you want to learn the theory of how databases work and know how to write a database you're taking the right sort of classes. If you're wanting to become a DBA, you should really go to a vocational school.

    1. Re:Common Question by BengalsUF · · Score: 1

      Exactly right. If you think all these courses are a waste of time in the real word, by all means drop out of college and go to ITT Technical Institute. Sure, when you're done you'll understand the 'what' and 'how' of programming, but you won't understand the 'why'. Not understanding the 'why' will make it much more difficult for you to adapt when technology changes.

    2. Re:Common Question by i+own+n00bs · · Score: 1

      Right on the money. A CS degree is all about teaching you to think and giving you the tools to tackle any problem. If you are stressing about getting a job, then make sure your GPA is up to snuff. You can always take specific classes for what you are currently working on in a job and the employer should be footing the bill. Well rounded trumps vocational training every time. -w

    3. Re:Common Question by Ronald+Dumsfeld · · Score: 1
      Essentially, if you want to learn the theory of how databases work and know how to write a database you're taking the right sort of classes. If you're wanting to become a DBA, you should really go to a vocational school.
      Which one is going to have a good chance of getting outsourced versus getting you employment locally? My guess goes for the more theoretical work.
      --
      Where's the Kaboom?
      There's supposed to be an Earth-shattering Kaboom.
    4. Re:Common Question by crazyphilman · · Score: 2, Insightful

      Yeah, but all that theory can't be put to any practical use without at least one general-purpose programming language under your belt. I've heard about programs that are all about theory, and don't even have a single practical course. That's a shortcut to irrelevancy if ever I've heard one.

      I'm not saying the courses should be vocational, but students should at least have one practical programming course per semester so that by the time they graduate, they have three years or so of continuous programming experience.

      Not so they can get a job -- they won't anyway.

      So they will actually be able to DO something with all that theory.

      Programming is where the rubber meets the road.

      --
      Farewell! It's been a fine buncha years!
    5. Re:Common Question by wsloand · · Score: 1

      Yeah, but all that theory can't be put to any practical use without at least one general-purpose programming language under your belt. I've heard about programs that are all about theory, and don't even have a single practical course.

      I would guess that if a student isn't doing something in their spare time that involves programming and therefore doesn't have the practical experience, they're not interested enough in the subject. The good computer scientists that I know do it for the fun of it. They will work on interesting problems and solve those.

      If they know the theory and are not doing the practice themselves for fun, why did they choose CS to begin with?

    6. Re:Common Question by crazyphilman · · Score: 1

      Yeah, but programming is as much a craft or trade as it is a science. And when you need it to support the higher mathematical sciences you're thinking of, it makes sense to spend some time actually learning the stuff (instead of puttering around in your dorm room with a book from Border's). Let me give you my Physics analogy:

      A hundred years ago, when Physics was still a growing field, people used to have to make their own laboratory apparatus. Now, you could argue that people who are properly motivated would have been able to make their OWN apparatus. But I would counter that most physicists learned at the hand of their teachers, and took courses in fabrication while they were in school.

      Clearly, the old timers thought that it was better for a student to learn to fabricate apparatus in a formal way, guided by a master who has been doing it for many years. And this is exactly how they did it. I used to have a reprint of one of the old handbooks physicists used to use. It had chapters on lost wax moulding, metal casting, glass blowing, and all of the other various things a physicist was expected to be able to do.

      Compare this to computer science.

      One cannot do computer science without doing programming, so programming is very much like (for instance) glass blowing. It is a means to an end that is necessary for a computer scientist.

      One cannot be very good at programming (or glass blowing) without at least SOME instruction and practice. And, just as an old-time physicist wouldn't have been able to do much without good glass-blowing and metal-casting skills, a modern computer scientist is crap without good programming skills.

      Here's an example: I used to know a guy who got a Ph.D at Harvard in Computer Science.

      Harvard.

      And he didn't know how to do anything, even something as simple as a k-way merge sort in code, because he'd never spent any time actually programming.

      Do you think he's any use at all, to anybody?

      Why did HE bother with his degree?

      Money?

      --
      Farewell! It's been a fine buncha years!
  16. Practical Courses tend to be write-test-and-forget by Taladar · · Score: 4, Insightful

    I don't know about American Universities but here in Germany the theoretical courses are the only ones that have long-time-useful information. The practical courses focus mostly on technologies that will be outdated when I leave college. They also usually focus on details that won't stick in my head after the test because they are easily re-discoverable via Google. The theoretical courses are the ones that enable me to read about new stuff and actually understanding what it does as they are the timeless background for all of CS.

  17. He's probably right. by Bohemoth2 · · Score: 1

    A lot of college curricula assumes that you want to
    go all the way to a Phd and be a grant mongering research scientist. You do not need to be that to get a job.

    BTW first post ;)

  18. CS != vocational training by cheesekeeper · · Score: 2, Interesting
    Computer Science is the science behind software and computer technology. It's not really meant to be practical to most of what goes on in the professional realm. If you're not meaning to do research or interesting things like AI, creating computer languages, and the like, then, yes, it's the wrong program.

    I wouldn't worry, though, as most everyone else is going to be coming from this "wrong" program as well.

    --

    Best read in good ol' Monaco 9 point.

    1. Re:CS != vocational training by compupc1 · · Score: 1

      No, it's supposed to prepare you for a professional job, but give you enough of a conceptual background that you can adapt to changes. It's BOTH practical and theoretical.

      In our program here at UW-Eau Claire, your first year and a half are pretty much programming. Beyond we get into the interesting stuff like network protocols/OSI, OS theory, architecture, mathmatical theory, design patterns, AI, 3d graphics, etc. But these concepts are ALWAYS grounded in numerous practical projects. They may teach us what TCP is and how it fits into the OSI model, but then they'll ask us to implement TCP, simple routing, and FTP. You get the practical. They may teach us what neural networks are, but then they'll ask us to implement one, maybe using C#. Kill two birds with one stone. They may teach us about algorithm theory, then ask us to implement a simple problem using several algorithms and do a comparison. You get the practical.

      I still maintain, any program which teaches only theory without requiring signigifant practical projects to compliment it is useless.

      --
      -James
    2. Re:CS != vocational training by Anonymous Coward · · Score: 0

      I can only assume that you don't have a degree in CS yourself.

      What you say is just false.

      A well-rounded programmer has to know more than just the syntax of a particular language. To be truly good at coding you have to know some of the history and theory behind it as well. You need to learn to problem-solve. You need to be creative and you need to think around corners. And you can't do that if all you do is learn the language. There's more to it, and a CS degree is exactly the "right" program if you want to be good at what you do.

  19. my experience by UVABlows · · Score: 1

    I had one coding job right out of college where those classes were irrelevant. I was working with mostly EE's. The next job I had was working with math phd's. In that job, those courses were definitely necessary and I was actually inadequately prepared on the theoretical side.

    I liked the second job much more and it paid a lot better.

    If you ever want to get into the business side, take all the econ you can get. I'm now at a top 10 law school and THANK GOD I took some econ or I would be toast.

    --

    <high-level position here>
    <name of stupid small company here>

  20. Too much theory by scolby · · Score: 1

    Not that theory isn't important. Understanding the basic principles of computing makes it easier to both learn new programming languages and troubleshoot problems. However, as a recent graduate of a comp sci program at a tech school, I feel relatively useless. There was very little in the way of practical application of the things we were learning, and what we did work on seemed to be about five years behind the industry (for example, we spent our first two years working with C, and we never even touched the new .Net stuff). The big problem is that most of my professors lacked any experience in the field beyond studying and teaching at universities. For a major like computer science, colleges need to hire more people who've actually held jobs in the industry.

    1. Re:Too much theory by josu · · Score: 1

      It really depends on the job you want. I work on an interpreter (engineering software) and code in C/C++. The theory I learned in college is valuable.

    2. Re:Too much theory by llefler · · Score: 1

      (for example, we spent our first two years working with C, and we never even touched the new .Net stuff)

      I'm not sure you've missed much. I remember when Java was going to rule the world. Write once, run everywhere. Right? And how many years has the largest software company in the world been pushing .NET? Get a cheap/free version of Visual Studio and learn it yourself. The odds are much better that you're going to start out maintaining older source than .NET development anyway.

      For a major like computer science, colleges need to hire more people who've actually held jobs in the industry.

      Absolutely. Over the years I have taken courses at a technical school, community college, two colleges (both now universities), and a university. And those part time instructors teaching night courses at the community college are some of the best I have had. OTOH, I've had some PHD instructors I wouldn't trust to write Hello World. My C Instructor (PHD, department head) at the first university I attended used cobol as a reference to explain C memory allocation and started every program 'while (1 == 1)'.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    3. Re:Too much theory by kamilyon · · Score: 1

      Hello,
        I sorry, but you can pay 50$US for a C# book and if you are good at programming, it will take you only about 7 days to get good at that language. I know for sure (100%) that there are jobs paying 100K$US a year for C programmers and only 65k$US for C# programmers at www.Justcjobs.com so spare me. Now, if you suck at data structures (got a less than a B in the course), it will be a hell of a time to look over someone elses code and be quick to opitimize it. Don't think just because you can plug in a quicksort instead of a bubble sort that you know your stuff.

      I takes theory to balance all the crud in the practical world. I went to a vocational high-school and a 4-year university, both for computer science, and I think that was the best combination hands down. The practical stuff on my resume got me to my interview, but my theory got me hired. Computer theory classes on regular expressions help you way better than google on perl regex.

      --
      abstraction is 2 keep the weak from knowing the truth. show your source code && always seek the knowledge within
  21. Not Worthless by jallen02 · · Score: 1

    Those classes are NOT worthless. They may not help you directly in getting a job. However, when you are in serious software development and architecture for the long haul those classes are invaluable! Don't ever let anyone tell you otherwise. I was a working programmer right out of high school. I have since been getting my undergrad degree after hours. I treasure and value pretty much every college course, even classes that don't relate directly to computer science. These classes help me understand the world around me better. This in turn helps me be a better adjusted person more capable of dealing with life, which lets me focus on my work when it is time to work.
     
    Things that are directly related to computer science. Those are all big and important in my opinion. It is, after all, computer science. It is supposed to be theoretical. Having the theoretical knowledge with some practice of the practical and a god overview of the big picture of software development after a few years of real software development make you a more complete and competent programmer than just being some code monkey at a vocational program. I have used directly, or indirectly everything I picked up from the theoretical side of CS. Maybe it was just making a decision or piecing together where someone was going with a particular technology. That knowledge makes me a better all around architect. So sure.. if you want to be a code monkey who can sling out code.. by all means go vocational.
     
    If you want to understand software at a deep and truly meaningful level do the theoretical as well as the practical.
     
    Jeremy

  22. He is pretty much right by Foredecker · · Score: 4, Insightful

    I've been a software development manager for a long time and I've hired a lot of people. Fundamental development skills are essential. This includes knowledge of data structures, algorithms, C/C++ and another 'major' language (c/C++ is a must have), a basic understanding of micro processor archithecture (this means some ability to debug in assembly, at least a little), good written and verbal communication skills (e.g. can you write a decent bug report?, can you lead a decent code walkthrough?). Funcatinal knowledge of operating system fundamentals such as memory management, scheduling, I/O (Syncronous, async), and networked I/O (TCP/IP) are also important. Again, I don't expect folks to be able to write a kernel, but they do need to at least be able to use more than one thread to do I/O or handle UI while doing something else, or open a socket and do a little client/server work. Note that economics isn' bad, but it should be micro, not macro. Even entry level devs need to have some inkling of business trade offs.

    --
    Jibe!
    1. Re:He is pretty much right by Uber+Banker · · Score: 1

      Note that economics isn' bad, but it should be micro, not macro. Even entry level devs need to have some inkling of business trade offs.

      Actually, his history of economics course could be ideal. It would ideally cover the history of economic thought, and the arguments, postulations, counter-arguments and refudations that went along the course. That is, it would teach how others abstracted ideas and concepts that hadn't been thought before - somewhat akin to what others here have said that a CS degree is to teach how to think rather than drill in a vocational skill. I'm glad it stopped at Keynes and avoids the inevitable pollution of politics dressing up as economics, only recognisable as noise somewhat after the event.

    2. Re:He is pretty much right by Anonymous Coward · · Score: 0

      I think all you managers and equivalents are, in a way, missing the point. I've got a first in CS from a university I can saftly assume is on his top 5 list (Yeah, this makes me biased.), and looking down the list of subjects he would teach they are mostly pre-requisits or stuff we would be assumed to learn as needed.

      For instance, my university explicitly teaches two programming languages that are never used in the real world. Yet latter modules require us to use a large number of the languages mentioned - we are expected to learn them ourselves. Just because its not on the teaching list does not mean its not learnt.

      The reason (good) universitys teach the courses they do is they know they can not provide experiance of todays fads, it would pointless for them to even try. Instead what they provide is a challenge, the idea being if you can survive the course none of the current fads are going to prove remotly problamatic to you.

  23. The guy is absolutely right ... as far as it goes by Anonymous Coward · · Score: 0

    I teach in a community college. Our three year grads compete for jobs with four year engineers. Our students often win the competition. They have really good design skills and when they get on the job, they are immediately productive.

    The problem comes a few years later. The three year community college grads lack the math skills to follow the journals. They plateau. The four year students keep grinding up the hill. After a while, they are as productive as the three year students and then they pass them.

    The best education may be a combination of the two kinds of school. We often have university grads taking our program so they can get jobs. They really do well when they get onto the job market.

    So, ya pays yer money ...

  24. Useless by compupc1 · · Score: 1

    Switch to a university where they teach you both the theory and the practical. First off, that seems like an odd selection of introductory comp sci courses. But beyond that, I'm sorry, but unless you somehow are going to get more practical experience later, you'll be useless with a degree like that. You have to have a strong foundation of programming and design (yes, advanced design patterns and all) first. Then you can deal with issues such as AI or advanced math or machine vision or whatnot. But because you have that practical foundation, you'll be able to apply those advanced concepts you learn.

    In the real world nobody will give a s**t whether you've taken numerical analysis. They're going to want to know if you can program, if you have a strong grasp on algorithms and data structures, if you understand the software engineering cycle, if you know how to effectively apply design patterns, and if you know how to communicate with your co-workers and non-technical people. Knowing theory is a bonus, but even then only if you know how to apply it to practical applications.

    --
    -James
    1. Re:Useless by bsdgal · · Score: 1

      Agreed -- and I would add as someone who does some hiring, that I would'nt hire someone with a CS degree for a Help Desk position, let alone a Jr. Sys Admin. Can't tell you how many CS majors I've interviewed who can't explain the difference pop/imap or can't install and configure an apache web server even from an rpm. I'm in fact surprised at how many CS majors apply for these jobs, it makes me wonder what the market is like for recent grads.

  25. It's ok... by trompete · · Score: 1

    It's ok to be in programs like that. Just make sure to get a 3.5 GPA and do as many high-profile internships as possible. The combination of those two things will get you a job.

    My schooling was kind of a joke, but job experience, GPA, and activities participation helped me land the job I have now.

    Good luck!

  26. For today's job market... by Anonymous Coward · · Score: 0

    I have to agree that Dan's acount is true for someone looking to hire somebody in todays job market. But that's not what school and learning is about, these are skills and information that will last throughout your life.

    Take for example the focus on network protocols, this has immediate value, howevever, over the long term it's more valuable for some one to understand the 7 layers of a network, so they can understand how HTTP applies to one of those layers. Then 5 years later when they are promoted to architecting huge global systems they would be able to understand the differences between layer 2 routing and layer 3 routing as it pertains to distributed computing.

    The net net is that education is not a means to a job, it's a means to learning. Jobs come and go, especially in todays economy. But the really valuable skill is being able to apply what one has learned.

  27. Finish school, but place no faith in it by Anonymous Coward · · Score: 0

    The irony is that schools don't teach practical skills, but most companies prefer college graduates anyway. So, finish your degree, but spend your free time contributing to open source projects and reading about real-world phenomenon.

  28. He's a nitwit by sam_handelman · · Score: 1

    There are plenty of vocational training progams in computers out there, if that's what you want, get one of those degrees, and not a BS in Comp. Sci..

      There are numerous jobs available in high end, research grade computing. There may not be as many as there are CS graduates (for one thing many essentially require an advanced degree, as well,) but they exist, and they make heavy use of the cutting edge stuff, particularly what I do, which is in Biology.

      That said, if a particular employer would rather hire someone with a narrow base of vocational training than someone with a broad range of training in complicated and mathematically rich sub-disciplines, for many jobs he's a fool. For a high end position, you desperately need people with, to be blunt, the capacity to actually think, which you can call by the buzzword of choice.

      Developing an understanding of more advanced, and not immediately intuitive, techniques in CS *can*, although there is no guarantee, trigger someone to develop the needed mental faculties to work at a higher level.

      Finally, the vocational level work is being oursourced to India anyway. I don't think that CS departments in the US and Britain are doing anyone a dis-service by training them to do something more than that.

    --
    The good and new comes from no quarter where it is looked for, and is always something different from what is expected.
  29. Computer Science is more than just programming by the_aleph · · Score: 1

    I'm facing the same problem right now (in Italy) and actually I think there's a reason because it's called Computer Science and not Computer Systems Engineering (os something similar). Maybe those courses won't be useful for the majority of IT jobs, but a strong theoretical background could be useful in some careers (apart being a researcher in a University). In my opinion, theoretical results last forever, while any programming language (except C, maybe) is going to become obsolete in an unspecified future. Just my 2 cents...

  30. Jobs aren't all. by matman · · Score: 4, Insightful

    Once you're working you'll realize that getting the job isn't where you stop setting goals. You'll want to do a good job and make insightful decisions. You'll learn that you want to contribute to the field that you're working in, beyond hacking out whatever the business tells you to. You'll want to contribute to society. For these things, the better your understanding of your field and the world, the better you'll do - that's why you're going to university.

    Now, you can do all of these things without university, but you've got to be very driven and interested in what you're doing. Interest and ambition to contribute more than just labor is the biggest factor in my experience. Jesus isn't remembered for being a carpenter. Ghandi's not remembered for being a lawyer.

  31. Re:The choice of degree matters less than attitude by the_2nd_coming · · Score: 4, Insightful

    you had me until it came to the part about learning a new language. I am sorry, but once you know how to program, learning a new syntax, especially one that is so close to one that most CS students have had experience with, is easy to do.

    yes, you still need to learn the library but the language is trivial.

    --



    I am the Alpha and the Omega-3
  32. shows you're smart by bcrowell · · Score: 1
    If you can handle all those theoretical courses, it probably shows you're smart. OK, "smart" is a vague term, but for instance, it probably shows you can do hard math, understand hard textbooks, and do abstract reasoning.

    I teach physics, often to biology majors who think it's irrelevant to them (even though biology is based on chemistry, and chemistry is based on physics). If they can do well in my class, it says something good about their intellectual abilities. And anyway, what about the person who never gets around to reading the lab manual before lab, and tries to get his partners to do all the work for him? He's not going to do well in the course, and that does relate to whether you'd want to hire him in the real world.

    Another favorite of mine is the two-meter sticks that are labeled 0, 10, 20, ... 90, 100, 10, 20, ... 90, 100. Every semester, I have students writing down a certain height as 42 cm, when actually it's 142 cm. Is this irrelevant to employers? Well, would you want to hire the kind of person who is in the habit of writing down numbers without checking to see if they make sense?

    Of course, the courses you're talking about are at a much higher intellectual level, but the same principle applies everywhere. There's a reason why people would rather hire an office manager who has a degree in English, rather than someone with a degree in physical education.

    Coding is easy. Anyone can learn to code. The hard stuff isn't typing lines of code into an editor, it's being able to design software, figure out tricky algorithms, ...

  33. Education vs. training by mi · · Score: 4, Insightful
    The point of good education is not so much to learn stuff, but to learn how to learn stuff.

    In the decades of your career you'll work on totally different subjects and will have to learn new programming languages and techniques. Knowing how to learn these "new tricks" is what distinguishes an educated person from a trained one.

    Learning theory while using "academic" languages, which nobody uses in "real life" will be very useful... You will be able to pick practical things up quicker and there will be no shortage of that later in life.

    --
    In Soviet Washington the swamp drains you.
  34. Learning A Language in an Afternoon by CyborgWarrior · · Score: 5, Insightful

    I disagree with you on the point that you can't learn a language in an afteroon. Every programming langauge has its own set of syntax rules and functions. You can take an afternono and learn the basic syntax of the language, memorize a couple of the functions that you will use often, and find the best resources for help about the language. After that, your learning process will be just learning as you code. You said yourself it's going to be another 10 years before you would consider yourself really good at it. You aren't going to get there by just sitting and examining tutorials. You learn it by actually programming it and doing google searches / resource searches every time you come across something you need a tip on.

    So while learning it in an afternoon won't make you a killer coder right away, it is enough time to set you up to be able to code just about any app and learn as you go. If you already know other langauges, then it will be fairly easy to apply the rules of good clean coding to this new language as you go.

    --
    If you can't say something nice, make sure you have something heavy to throw.
    1. Re:Learning A Language in an Afternoon by Ckwop · · Score: 1

      Which is fastest for comparing two strings (ignoring case):

      string1.ToLower() == string2.ToLower()

      string.Compare(string1, string2, true) == 0

      Learning the syntax is the easy part. Learning how to use the syntax effectively is a different ball game all together. It's this aspect of coding that takes a lot of time to develop. I agree that once you can program to a high level in one language you can transfer to another much more quickly but it still takes a while to really understand the language. It's this knowledge that can determine the success or faliure of your project.

      Simon.

    2. Re:Learning A Language in an Afternoon by the_2nd_coming · · Score: 1

      and as a new developer on a team, the experienced guys can clue him/her in on the stuff he does not know.

      to say that a person should be able to know the finer points of a language before he tried to get a job for that language is ridiculous.

      --



      I am the Alpha and the Omega-3
    3. Re:Learning A Language in an Afternoon by Viv · · Score: 2, Insightful

      Not knowing C#, just knowing what the names say it does, my guess is that the second one is faster.

      The first one is going to require two copies and a compare.

      Three main loops, and a whole slew of slow, slow copies. The second doesn't need to do any copying, all it has to do is check that each letter in the string is the upper or lower case equivelent of the other. In ASCII, for example, you can use neato-keen bitwise tricks to do this in less than 10 instructions (on most architectures) if you want. Much faster. I bet they were smart enough to do the same with the various other encoding methods.

    4. Re:Learning A Language in an Afternoon by tmortn · · Score: 2, Interesting

      Well then you are arguing symantics about what it means to 'learn' a language. Most fresh grad CS monkies ARE capable of picking up basic syntax of a new language in an afternoon. They are capable of turning out working code. Whether or not it is perfect and completely optimized code for the particular solution in question is an entirely different matter and I doubt if you ask them very many would make the claim that they could. But when a CS major says "I can learn it in an afternoon" all they are saying is my knowledge is not locked into a particular coding solution. Assign them a task in a specific language and they know how to get it done even if they have never used it before.

      That is not a useless skill. It is not senseless boasting. It is what CS is all about and it is largely seperated from the mechanics of actually churning out code.

      That said, current CS is so fricken divorced from the real world application of computers and programming it is not even funny. It is rapidly getting to the point where it will be entirely divorced from reality. For example I had teachers that still thought the number of times you compiled a program was an important factor. The reality of modern compiling/debuging simply had not registered with them yet. However, there is a middle ground between vocational programming classes and the pure theory BS of most CS course material. Putting the theory to work on real world projects would be a good start and it never ceases to amaze me that CS departments rarely seek out such challenges for their students.

      --
      I don't ask you to be me. I only ask you not expect me to be you.
    5. Re:Learning A Language in an Afternoon by shutdown+-p+now · · Score: 1
      This only works for languages with different syntax but similar semantics (e.g. Delphi and C#, or even Java and Python).

      Try learning even the basics of Haskell or Forth in one day if you come from a C or Java background. It's not easy to get used to radically different approaches, such as functional programming; it certainly does take more than one day.

    6. Re:Learning A Language in an Afternoon by Mornelithe · · Score: 1

      Yes, and a good computer science curriculum will expose you to various language paradigms like functional and logic programming in a theory of languages class. Once you learn about Lisp and Prolog, it's much easier to pick up Haskell, Mercury, ML, etc.

      What will the guy who spent all his time learning only Java or C# do? He was never aware that there existed anything outside of the procedural/object oriented world that most of today's software exists in. How much harder will it be for him to adapt?

      Of course, that's largely irrelevant today. There's very little demand for people who know anything that isn't a procedural, possibly object oriented language.

      --

      I've come for the woman, and your head.

    7. Re:Learning A Language in an Afternoon by LihTox · · Score: 1
      This only works for languages with different syntax but similar semantics (e.g. Delphi and C#, or even Java and Python).
      Try learning even the basics of Haskell or Forth in one day if you come from a C or Java background. It's not easy to get used to radically different approaches, such as functional programming; it certainly does take more than one day.

      But a good CS degree program (IMHO) would introduce its students to a variety of different programming types: imperative, functional, object-oriented, etc, would it not? (I'm a physicist myself, but the two CS courses I took in college taught me imperative, functional, and (pseudo) object-oriented programming, and even cured me of 10 years of BASIC.)

      I'd guess that a CS student would be more able to pick up Haskell or Forth in an afternoon than a vocationally trained programmer, who might not even know that programming languages like Haskell and Forth exist!

    8. Re:Learning A Language in an Afternoon by Viv · · Score: 3, Insightful

      I would also point out that either of those is likely to be a roughly O(n) operation, so neither selection is obviously rediculous, and the use of them took very little programmer time to implement. If they become a bottleneck, identify them as such, and choose a better algorithm.

      I'm far more likely to get bent out of shape if a programmer who works for me chooses to use a bubble sort algorithm to sort a 5 million record database, or if he spends three weeks trying to find an algorithm to optimally solve a 3SAT equivalent problem. (unless, of course, he actually succeeds in the second case!)

      Fact is, someone with real study in CS is less likely to make the above mistakes than someone with just programming experience. And programmer time costs way more than processor time.

    9. Re:Learning A Language in an Afternoon by Kplusplus · · Score: 0

      You do know these don't do the same thing right? The first is fastest but that's only because it's testing pointer equivalency, and the other actually compares the characters that make up the string for whether or not they are the same.

      This is Deep versus Shallow, something taught in my first year CS course. Obviously a degree is a worthwhile endeavor, if you've put forth such a flawed comparison in a forum populated by people that would know these things. I don't even have my degree yet, but the fact you think that the theory of CS isn't important is exactly why it could take you 10 years before you become a grand master coder. It simply shouldn't take that lng if you know the concepts behind why things work the ways in which they do.

      --
      -"I'm one of those Mac people that will break a bottle on the bar and hold it to your throat for bad-mouthing my system"
    10. Re:Learning A Language in an Afternoon by AdamPiotrZochowski · · Score: 1

      -- Language Syntax/Grammar vs Libraries --
      You are talking here about specific library usage. What about collations of the strings? or is this some cripple string that is ASCII only?

      When you talk about language learning, what do you mean? To some (?most?) people 'language learning in an weekend' refers to learning the syntax/grammar of the language. Granted, this does not make someone a proficient coder, but, on the other hand, it is enough to join a programming team, read code, fix code, modify code. Within a week or two programmer gets to have a feel of the language libraries and the project he is working on.

      Look at C++, what does it mean to know C++? STL? Boost? Glib? or are we talking about graphical C++ programming, g--/qt/wx/tk/elib?

      Actually larger projects end up with own libraries that one must learn on top of the language anyways. Often larger projects have so many own libraries that half of the language libraries are ignored. Whats the point of learning language libraries when you need to know project libraries with bigger urgency and need?

      -- Programmers and Proper Coding --
      A new programmer should read the code he is to work on and follow the programming style used within the project. That is unless he is 100% sure that the rest of the team is wrong, at which time, he should only do own programming style when is sure that all of the project will also change its style.

      -- Programmers and Readability --
      A new programmer should write well understood code, I dont know C#, but some languages have constants to avoid magic values:
            string1.Compare(string2, string.CompareCaseInsensitive) == 0

      -- Programmers and Efficiency --
      One should look into time of a coder and time won by efficiency vs the time lost to maintainance. Usually its cheaper to buy extra hardware than to worry about optimizations, There are very few places in the whild where efficiency of code is unnatainable with extra hardware (either red tape business bureaucratic rules, or hard real time constrains).

      ofcourse, the rule for optimizations is 'dont', the rule for master programmers for optimizations is 'not yet'.

      Adam Piotr Zochowski

    11. Re:Learning A Language in an Afternoon by James_Aguilar · · Score: 1

      Second. That should be pretty obvious, since the first requires each string to be touched in its entirety but the second only touches up to the difference.

    12. Re:Learning A Language in an Afternoon by laffer1 · · Score: 1

      In general, I agree with everything you said. However, I do feel that optimization of code is ignored to often. Its silly to optimize a program that prints invoices or displays the weather in india. Picking good searching and sorting routines for the problem is not a waste of time though. When a problem is O(n), shaving one loop iteration is not a big deal. I think the problem is that large projects bring this thinking into them. Look at Windows or Gnome. A little optimization would save a lot of people a lot of money on hardware.

      The bottom line is that efficiency can also impact purchasing decisions. If you could buy a program that completed the job 10% quicker, would you do it? A business person would always answer yes given the cost of the program is less than the cost to work 10% longer. The time to program a better solution might be cheaper than buying $1000 dollar computers instead of $300 dollar computers for a large organization for example.

      The dark side of my personality looks at the use of bit fields for preference storage and wonders why we use 4 byte integers to store 1 boolean value.

    13. Re:Learning A Language in an Afternoon by llefler · · Score: 1

      Which is fastest for comparing two strings (ignoring case):

      Guess what, it probably doesn't matter. A recent experience as an example; with a new ERP system we are implementing we were experiencing excessive times during invoice batch runs. We suspected table locks. It turns out that it was doing a credit check whenever it created an invoice. In the base system it didn't seem to be a problem, but once we added our additional rules it became one. It turns out that the system checked a customer's credit balances when an order was entered, when the picking ticket was printed, when the packing slip was printed, and when the invoice was created. Not only was that causing a locking problem when more than one process was running, but there is absolutely no reason for us to check credit during invoicing. The order has already shipped, a credit hold would mean that we had shipped product but couldn't bill for it. Moving the credit check knocked 75% off of the invoicing time. There are hundreds of other things we would look at in the system design before we'd care about about which compare is more efficient.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    14. Re:Learning A Language in an Afternoon by Anonymous Coward · · Score: 0

      Which is fastest for comparing two strings (ignoring case):

      string1.ToLower() == string2.ToLower()

      string.Compare(string1, string2, true) == 0


      Impossible to say, without knowing what specific implementation of the language we're dealing with. Even an implementation by the same vendor might have different results from release to release.

      One thing is for sure, any implementation that doesn't optimize well enough to produce identical results for the two approaches is brain dead.

    15. Re:Learning A Language in an Afternoon by TheSpoom · · Score: 1

      In C#, the String class probably has an equivalency test. You're not comparing two char * variables here.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    16. Re:Learning A Language in an Afternoon by Viv · · Score: 1

      Are they really pointers? The guy was talking C# in his original post, and in C#, these aren't going to be pointers if I'm reading the API docs right -- and the == operator is overloaded to boot. It's a deep comparison, based on that.

    17. Re:Learning A Language in an Afternoon by LordoftheWoods · · Score: 1

      The question is not whether they are pointers (of course they are) but whether == causes a method invokation or an address comparison. In this case, it seems the latter. The language might not call them pointers, but you can't really argue that they're not. Seems 'reference' is the trendy name nowadays for a pointer which is automagically dereferenced.

    18. Re:Learning A Language in an Afternoon by cervo · · Score: 1

      Perhaps, but in the general sense it doesn't matter.

      Whether you convert it to lower case in O(n) time for each string, then do a comparison again in O(n) time for a total of 3 * O(n) or you do it once in O(n) time doing the comparison and the conversion to lowercase (note this is an over simplification because each loop is a comparison/increment/initialization/etc. really adding more operations) the operation is still of magnitude O(n).

      3 * O(n) and O(n) are of the same order. Now like I said it is an over simplification but C * O(n) for some fixed value of C is still O(n). In general computation terms, it really does not make that much of a difference which one of these operations are picked. A tighter loop might run slightly faster but the effect will be neglegable.

      * Okay I know if doing it all in one operation once you find a difference there is no more need to conver to lower...however on average using a probability analysis the expected value would still end up being O(n).

      In short, instead of splitting hairs over which is more efficient with these little differences, a smart programmer should be spending his/her time making sure the solution is correct and well documented, dedicating the time spent worrying about these trivial things to the things that matter that most people do not pay attention to (the documentation/testing which are as important to a program as the code).

      Finally, if an algorithm is really running too slow to be practical, your choice of a trivial operation like this will not make a difference. More likely, the entire approach for the algorithm will need to be changed. Ie if your bubble sort is too slow, you could spend time tightening the loops, using more efficient comparisons, etc. You will get a slight speedup. However if you change the bubble sort to a quicksort, you change the order of magnitude from O(n^2) to O(N * LOG(N)) and suddenly the code will run a ton faster.

    19. Re:Learning A Language in an Afternoon by fireboy1919 · · Score: 1

      Fairly arrogant of you.

      I myself came from a college background where I did a LOT of programming on my own.

      I came to work for a company where many of the people working there didn't go to college.

      Any simple canned algorithm that you can be taught in college isn't going to be implmented in the real world. Real programmers will always use a library for it. I would be bent out of shape if a programmer implented a sorting algorithm period. That indicates someone who is very , very green as a programmer.

      Even gcc has a built in quicksort, and gcc has almost nothing built-in.

      This is something one learns in the real world: what they can expect from a programming environment, and how to use other people's code. This is why - at least for small programs - experience often beats theory.

      But one can always catch up in programming skill; you end up doing it all the time when you get out.

      What you can't get is the theory, so eventually college educated have an edge.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    20. Re:Learning A Language in an Afternoon by Erich · · Score: 1
      Even gcc has a built in quicksort, and gcc has almost nothing built-in.
      qsort(3) and bsearch(3) are part of the "stdlib" part of the C library.

      They are not on the list of compiler-implementable builtins in C90 nor C99.

      So I think you mean, "Even the C library has quicksort".

      Remember that C is the True, Pure language, and that the library should be distinct from the language. Just ignore the fancy builtins allowed in C90/C99, they are the insurgance of the heretics. :-)

      --

      -- Erich

      Slashdot reader since 1997

    21. Re:Learning A Language in an Afternoon by Anonymous Coward · · Score: 0

      I'm pretty sure that most database servers do implement their own sorting routines for maximum performance.

      You only use the sorting routines in the "libraries" when you're not particularly concerned with that 0.01 seconds of performance. But sometimes you do.

    22. Re:Learning A Language in an Afternoon by Kplusplus · · Score: 1

      That seems incredibly silly. I likened C# to Java, but Java's references don't do anything like that, == works fundamentally the same as in every other sane language, it compares the memory locations of the two variables and returns a true or false for them.

      If C# works the way you say you do, how do you check that two objects are really the same identical object?

      --
      -"I'm one of those Mac people that will break a bottle on the bar and hold it to your throat for bad-mouthing my system"
    23. Re:Learning A Language in an Afternoon by Nasarius · · Score: 1
      In general computation terms, it really does not make that much of a difference which one of these operations are picked. A tighter loop might run slightly faster but the effect will be neglegable.

      You're usually right, unless you happen to be performing that operation a hojillion times, in which case your constant really does matter.

      However if you change the bubble sort to a quicksort, you change the order of magnitude from O(n^2) to O(N * LOG(N)) and suddenly the code will run a ton faster.

      Maybe, maybe not. Bubble sort can work better than quicksort when you have a large dataset that's mostly sorted already. In the end, knowing how to use a profiler is invaluable. Optimize your bottlenecks, not the trivial stuff. Of course, if you've never studied data structures and algorithms, you won't have a clue how to optimize your code.

      --
      LOAD "SIG",8,1
    24. Re:Learning A Language in an Afternoon by fireboy1919 · · Score: 1

      And when you're dealing with a legacy system stored on a tape? Or when you're getting data from a map (which just happens to come out unsorted), or from a hash table, or the system stack, or a random file, or...?

      You don't always have access to a database server. There's a ton of reasons why you may feel the need to reach for a sorting routine. The point is, though, that you always have access to something so that you will not have to implment sorting ever. You should expect that you have that.

      The same goes for common collective data types, like associative arrays, lists (or stacks and queues), trees, and matrices. There are plenty of other concepts I always expect to find, and a few I'm never surprised to find.

      Knowing when to expect an answer to questions like: "What standard library implements theoretical concept X in language Y?" is the mark of a veteran coder.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    25. Re:Learning A Language in an Afternoon by Anonymous Coward · · Score: 0

      Heh, the best way is to stop using crappy case-sensitive filesystems. Just sayin'.

    26. Re:Learning A Language in an Afternoon by cervo · · Score: 1

      Very true, it would make a big difference if you were performing the operation a hojillion times. However if may be time to rethink a more efficient comparison in that case, or to rethink why the operation has to be performed a hojillion times. True enough with bubblesort. Insertion sort is even better on a list that is sorted or nearly sorted. But you are right, if you did not study data structures/algorithms you wouldn't really know how to optimize the code.

    27. Re:Learning A Language in an Afternoon by Viv · · Score: 1

      My guess would be the '&' operator. Two objects of the same type at the same memory location would be the same object, yes?

      Really, I'm just guessing here. I don't speak C#. But I did look up the API for the particular class, and it absolutely does overload the '==' operator and call a method to do the comparison.

  35. CS stands for Computer Science by fikx · · Score: 2, Insightful

    If you don't know what computer science is, then you're lost already. Studying the science of computers means you are going into a field of science dealing with the fundamentals of computers. No, it doesn't translate into a typical job, but it can be used for lots of jobs. CS plus other practical classes can give you an incredible edge. If you are trying for just getting a job, stay out of CS. In fact, PLEASE stay out of CS if that is all you want. CS is being deluted by that kind of attitude. A computer scientist advances computer theory and ideas, not just their paycheck.

    --
    AB HOC POSSUM VIDERE DOMUM TUUM
    1. Re:CS stands for Computer Science by InvaderXimian · · Score: 1

      This is related to what my school says about CS - if you want to learn about specific technologies (mp3s) or get prepared for a certain job, (network administration) you're better off going to a community college or technical institute where they offer such courses.

    2. Re:CS stands for Computer Science by ebett · · Score: 2, Insightful

      I think you are quite right in pointing out that CS is a Science. People seem to think that the only point of studying CS is to become a software engineer, working for a corporation writing programs for Joe Shmoe to use. That's very wrong. You are being trained as a scientist, to be knowledgeable in the use of a particular tool, the computer. Software engineering is one field where these skills are useful. There are many other fields where this knowledge is relevant and sought after, like scientific computing or computational biology. I personally am CS and work for biology professors, developing and coding algorithms for RNA folding and phylogenetic analysis. In this situation knowing how to write correct as well as time and space effecient code is of utmost importance (thank you, Theory of Computation), not making a pretty UI. I think you can make what you want out of your CS degree. If you want to be a software engineer then take electives that will help you with that. But you can't forget you are first a scientist, and can't expect a CS degree to be a training program for programmers.

  36. Theoretical better than vocational by slim · · Score: 1

    When I was coming to the end of my degree, nearly 10 years ago, I took part in a consultation exercise. Another panel member complained about the lack of vocational aspects to the course, saying "We did a module on networking, yet Novell wasn't mentioned once".

    But he was wrong. While Novell still exist, Novell networking as you might have recognised it in 1995 is all but dead, whereas the theories and paradigms I learnt during the degree still serve me well.

    And that's just one example.

    1. Re:Theoretical better than vocational by Cylix · · Score: 1

      With my CS degree we had most everything theoretical. There are a few classes though which do tend to teach more on the vocational side.

      So it was the flavour of the time, but the idea is that principle is taught along with the application.

      However, I come from a slightly different branch which had a good deal of focus on embedded systems. (Design, theory, logic, electrical.. the whole mix... wildly useful to this date)

      --
      "You should always go to other people's funerals; otherwise, they won't come to yours." -- Yogi Berra
  37. Not one mention of networks by Raleel · · Score: 1

    well, some mention of common protocols, but seriously, that's it? I've found that to be one of the most useful things.

    I would recommend taking discrete math and linear algebra. Both are probably requires for you CS degree, but I can't count the number of times that familiarity with those concepts has helped me out.

    I've felt that my CS degree taught me how to learn, not how to do my job :)

    --
    -- Who is the bigger fool? The fool or the fool who follows him? --
  38. And Dan Zambonini is.... by daniel_mcl · · Score: 0, Flamebait

    I never understand why people pay so much attention to articles like this. Dan Zambonini runs a small company that nobody has ever heard of which makes a content management system used by a bunch of people you've never heard of. I suppose that's a little better than Joel Spolsky, who makes software that *nobody* uses, but these guys really don't have much of a clue what kinds of jobs are out there in the companies that, you know, you may have heard of before -- they're too busy running their garage operations.

    I've talked to recruiters from companies like Google, Microsoft, Symantec, etc. and while they do want someone who can actually sit down and write a program, if you are going to write software you are going to need to understand things like analysis of algorithms or else you are going to end up putting bubblesorts into production code and leaving users wondering why your search feature takes so much longer than your competitors'.

    Of course, if you want to work in the database department for a large company and write software that moves tables of numbers around and is never seen by the outside world, then by all means go into MIS. But if you, like most aspiring programmers, want to release software onto the general market and you want to write something other than very basic utilities like "Windows Power Tools" or "Texteditor Extreme 5.3," you are going to have to have a foundation in computer science and a whole bunch of math.

    --
    I used to read Caltizzle. I was a lot cooler than you.
    1. Re:And Dan Zambonini is.... by julesh · · Score: 1

      a little better than Joel Spolsky, who makes software that *nobody* uses

      His current market may be a niche one, but look back -- he's worked on software that you've almost certainly used yourself. No idea about Zambonini, though.

      But why does the size of the company matter? These people realise that a small company is able to make better products because they can usually hire better programmers.

  39. College != Training for a job by dividedsky319 · · Score: 1

    I don't really see college as training you for a job... sure, a major will focus you on a particular curriculum, but IMO it's more about opening up your mind and becoming a more educated person (in multiple topics).

    At Boston College, our core required us to take classes in philosophy, theology, math, sciences, history, etc... a well rounded education. I'm sure it's the same in most colleges. As a computer science major, did I need to learn about Plato or Socrates or religion? Not really... but it made me a more well rounded individual.

    When focusing on just the CS courses I took, besides the basics of coding there isn't much I use in my current job... but it got me used to learning a new language and applying myself to solve a problem with it. The classes I took to get my BS: Computer Science I and II (Data Structures, C), Object Oriented Programming (Java), Advanced Java, Computer Organization and Assembly Language, Programming Languages, Algorithms, Theory of Computation, Computer Graphics, Computer Vision, Multimedia Programming, Digital Systems Lab, Technology and Society, Art & Digital Technology, Advanced WWW (Flash)

    I'd say I got a great CS education with all the classes I took... I took a LOT from them, but I don't exactly use things straight from the classes in my coding job. I don't use C, or Java, or SML, or Matlab, or OpenGL, or assembly language, etc... but by learning those languages, it made it easier to learn new things in the future.

    IMO, college essentially just opens up your mind and gives you the skills needed to be able to adapt to whatever your future employer will need you to learn.

  40. I'm all for this structure by consonant · · Score: 1
    I've done my engineering in Chennai, India. And this is how a typical engineering student's life goes, most of the time regardless of his/her choice of major in undergrad school :

    Choose major

    Plough thru piles of papers and exams

    Land job in large software company, only to be told everything learnt in college is El-Krapo

    Undergo training within company Since this happens anyway, IMO it's a Good Thing (tm) that more core papers are tought in colleges. If the large cos. are going to run you through a training program in any case, it makes good sense to do stuff in college that actually ensure your fundamentals are solid. And, like in the comments from TFA, college is *NOT* trade school. In fact, quite contrary to what Zambonini (does that name make anybody else hungry?) says, the vocational papers should be made optional. Hey, I'm pretty sure, if you can grok compiler design, finite automata, AI et al., you could easily wade into XML/SAX/DOM/"other industry stuff"

  41. Here we go again... by Anonymous Coward · · Score: 2, Insightful

    >I tend to think that an university education should stress scientific topics over vocational ones

    I'm glad people like you still exist... you wouldn't believe the number of students who whine to me that computer science courses are "useless". They want courses like "How to program for Windows XP" and "How to install network drivers"....

    The analogy isn't quite apt, but I'll use it anyways: taking a computer science degree to become a line programmer is liking taking a physics degree to learn how to operate a microwave oven.

    Again, not apt (much hyperbolized, in fact), but you see my point. Computer science is supposed to be about _science_... it's not a how-to-program course. Programming just happens to be one of the tools computer scientists use (just as some physicists use microwave emitters in their research).

    Honestly though, a CS degree _will_ give you an excellent foundation from which to learn job-specific skills. Once you understand programming languages and algorithms on an abstract level, it should be a piece of cake to learn "trendy new programming language #37" when your employer requires it.

    The notion that someone should be calling themselves a "software engineer" while not understanding the Church-Turing thesis is absolutely horrifying. There are very real mathematical limits to what can be accomplished with computing... and some surprisingly simple tasks simply aren't computable, ever. Any serious programmer should know how to identify when they may have been asked to do something that is provably mathematically impossible. Of course, I doubt they teach the theory of computation at your local trade school.

    Dan Zambonini would have us turn a Computer Science degree into a Computer Technician's diploma. The man hasn't the foggiest understanding of what computer _science_ is. He probably also thinks that astronomy degrees should concentrate exclusively on building and maintaining telescopes.

    Don't let his shocking, and deeply depressing, ignorance make this important life decision for you. If you like science and you are enjoying CS, stick around. With a good foundation you'll be able to pick up particular job skills surprisingly quickly and with very little effort. If, instead of foundations, you learn only specific skills... it will be harder to adapt when the required skill set for your job changes.

    What I wouldn't give to see the animated corpse of Dijkstra impale this Zambonini chap with a GOTO statement and a telescope.

  42. In the games industry by [l0l]Bobo · · Score: 1
    Well, I don't know what your career goal is with this degree, so let's suppose for instance that you'd like to work in the games industry.

    I work for a major game developer as a software engineer.

    I did a B.Sc. in computer science, at a university that is rather oriented towards the more theoretical side of the curriculum spectrum. I then did a M.Sc. specializing in computer graphics and animation.

    And... I can guarantee you that your Theory of Computation course will provide you with essential knowledge in any algorithm-heavy job (which is definitely the case when writing games). Your Numerical Analysis class also has a direct application in physics engines for games.

    The other two I can't comment on as my area of expertise is not AI, but there's a good chance that the AI guys where I work would tell you that those courses would be valuable as well.

  43. BS (or more) in CS can open (or close) doors... by Rhys · · Score: 1

    Just keep that in mind. Some places you won't work without a degree -- I have a couple friends who would have liked to work at the university like I am, but can't since they didn't have their degrees finished.

    They've all gotten jobs in the area, but aren't particularly happy with them.

    Not that you'd expect my degree (MS in CS) to have anything to do with my job (systems administrator), but it does. My MS was in parallel computation, and now I manage a supercomputer. The degree has been useful: good for tracking down bottlenecks that are limiting performance, makes it easier to talk to & support the scientist users of the machine. (being a TA for the parallel programming course for scientists & engineers probably didn't hurt there either)

    All that said, why would you want to work at a university? Pay's better in industry, but you can't beat my benefits package until you've been there years and years. (possible exception: google)

    24 days paid vacation/year, plus 2 floating holidays, plus all the usual state days off. Flexable work hours, telecommuting, low stress, great bus system in town. (applicable to C/U only possibly)

    --
    Slashdot Patriotism: We Support our Dupes!
  44. No kidding. by Anonymous Coward · · Score: 5, Insightful

    I've got degrees in Physics and Math; and have never, ever taken a Computer course. I've also done a heck of a lot more than the author has.

    What the author doesn't recognize is that one of the reasons you should take courses which aren't job related is to make yourself well-rounded. That is, capable of handling anything which comes up, instead of just being technically proficient in a few TLA's of the moment.

    He completely fails to understand that the computer training you received in College will typically be obsolete in 5 years. However, if you've received an Education (instead of training), you can likely adapt to handle the new stuff as it develops.

    Somebody who can actually think can pick up anything. Someone who just has job training is going to be in trouble unless they know how to adapt.

    The only constant in this universe is change. You're best off preparing for it.

    1. Re:No kidding. by blahplusplus · · Score: 1

      "Somebody who can actually think can pick up anything. Someone who just has job training is going to be in trouble unless they know how to adapt."

      I don't exactly buy this, I've seen plenty of smart people not be able to pick up things I consider basic. Intelligence or smarts is definitely not globally distributed in a person.

      It's not about "how to think" its about being taught how to teach yourself, thats the one thing they *don't* teach you in school, is how to school yourself, how to pick out what is important and what is not, and it is not at trivial task the harder the material. Also you need lots of time, and time is money, many people have bills to pay or dont have rich or well off parents while they are able to afford to fart around getting more educated, it is not a perfect world.

    2. Re:No kidding. by Peter+La+Casse · · Score: 1
      He completely fails to understand that the computer training you received in College will typically be obsolete in 5 years.

      I hear this a lot, and while it's probably true, I was amazed to find out how often it's not true. Lots of scientists and engineers program in FORTRAN, and many don't have a very good programming background.

      It would be nice if there was a SE minor program (or associate's degree from the local community college) that scientists and engineers could take to learn how to write code that doesn't suck. If it were a 3- or 4-course series, then a university could incorporate it into their CS curriculum and benefit from having CS students who know how to write programs that don't suck.

  45. Do you want to be a code monkey? by Gorobei · · Score: 1

    If you want to be a code monkey, take vocational courses: learn Java and C++, learn about the buzzwords du jour (XML, SOAP. Ajax, whatever.)

    If you actually want to be a serious programmer/designer, get a strong grounding in CS - that means data structures + algorithms, automata, numerics, compilers, OS design, etc. Know C++, Lisp, and a functional language.

    So DZ doesn't want programmers who know how to write a compiler? Great, on his next big project, he'll wind up with a system with several embedded ad-hoc languages hidden away in it. Worse, he won't see anything wrong with that.

    I've hired programmers for C++ environments who didn't know C++: if they're strong enough, they'll be up to speed in a few weeks.

    At my current job, we want to see core CS courses. We have to teach/retrain all our hires anyway, so we might as might hire people with a strong theoretical foundation in CS.

  46. Don't neglect the theory!! by Anonymous Coward · · Score: 0

    Yes, like the "from..." line indicates, this guy's blog is focusing on software engineering much more than computer science. It is a difficult thing to figure out, if you intend to go into software engineering after graduating with a CS degree. Most universities don't focus hardly at all on software engineering.

    I am encouraged by the fact that the (well-known) university where I am an instructor is making increasing efforts to instruct the students in software-engineering practices as well as in computer science. That is one of the main purposes of my job. I graduated with a degree in CS, but after spending a number of years in the industry, and having focused on good software engineering practices and good architecture, I feel like I have something very valuable to contribute to the incoming students. There is a long-time joke about not hiring graduate-students because of their software-engineering inabilities, and this has been my experience too. I am very glad to be in a position to be able to improve this weakness at the school where I teach. It is a common weakness.

    Now, by the same token, I have derived great value from my Computer Science training. It helps me to understand what is possible, what is impossible, and what is a desirable solution, based on the theory rather than on simple-minded guesses. And without understanding the theory, you are going to be much less effective in crafting powerful, extensible, effective solutions to the problems you will be given in the industry. Without a course on learning-systems, how would you know the capabilities and weaknesses of neural networks? Maybe you would just throw them at any problem that seemed like a good idea, and you wouldn't know why they didn't give you the desired results! Or perhaps you would be given an NP-hard problem, and have no idea why your solution is terribly inefficient, where you can find one at all.

    I agree that software-engineering skills are very important to develop, and if you are at a university where this is also a focus, jump on it!! If you aren't, focus on it in your spare time. Get great books on the subject - a small amount of Googling should help you with that - and read them. Be observant when you are working on various-sized software projects; see what works and what doesn't work.

    But by the same token, an education in Computer Science, in the theory behind the practice, will make you particularly capable in the industry, and will help differentiate your skill-sets from the rest of the people offering their services. Maybe in time you might even find an area of particular interest, and pursue it in graduate school. You will just have to keep focusing on developing those software engineering skills on your own, because both of these capabilities are necessary to excel, not just one or the other.

  47. This has already been answered perfectly before by Faizdog · · Score: 1

    In the Aug 23 story on how most students prefer Interdisciplinary studies to CS. This poster had the best response to the topic I've read.

    --
    -"Those who fought today will die tommorow."-
  48. 1984 comes to mind here by kalpol · · Score: 1


    "I understand HOW - I do not understand WHY."

    CS teaches you why. Once you understand why, picking up how any number of times becomes routine.

    --
    12:50 - press return.
  49. New Month by Anonymous Coward · · Score: 0

    And yet another story from clueless CS students and all the slashdot fems giving their two cents.

  50. The article is spot on by bkp_42 · · Score: 1

    If you want a job writing code for businesses, then you probably need to make a switch. But is that what you want? Think carefully before you make a move.

    Let me play devil's advocate for a bit. The following are typical of some things you will face doing development for businesses:
    - Users who think they can design software, but barely know their own jobs, let alone yours
    - unrealistic timelines/deadlines
    - minimal budgets
    - corporate peons who are more interested in climbing the ladder than doing quality work
    - project managers who seem to only know how to say yes to users and business sponsors and are genuinely surprised when you tell them that "yes" will cost X, and take 3 months

    By all means, none of these happen continuously, but far more frequently than not.

  51. This looks like our requirements by BobandMax · · Score: 1

    We are a RADAR development house. The skills we want look a lot like what Ludwig describes. Our emphasis is on scientific and numerical programming, not web skills. It's too bad that Mr. Zambonini cannot find the web monkeys that he wants.
    The only factor missing here is a strong knowledge of hardware, so we also interview Computer Engineering students or CS majors with Electrical Engineering coursework.
    Our problem has been that most grads are not particularly knowledgeable or skilled, regardless their degree. We generally want only the top 5-10% and they are sometimes tough to find, especially when we must work through the HR department.

    --

    "Computers are useless. They can only give you answers."
    -- Pablo Picasso
  52. Re:no by briaman · · Score: 5, Insightful

    Whatever you do - don't abandon your course. The most common computer job is that of IT Support and Administration. This does not require a degree, any clown with an MCSE can work at this. It's what I do for a living so I know what I'm talking about here. I also know that jobs in IT are becoming less attractive as the number of potential employees rises and the number of available jobs declines due to better remote administration facilities and outsourcing of services. Over the next few years the postition of IT Support Engineer will reduce in standing until it reaches equality with that of building maintenance engineer. IT systems will be so common and transparent that they will largely be used without thought on the part of the users. In order to escape this you need a value added qualification. One that demonstrates the ability to think in a critical manner, perform research and produce technical reports that are accurate and comprehensible to a target audience, from lay people to experts. These reports are needed by companies and organisations so that their boards and committees can make sensible business decisions. A degree is absolutely the right qualification for your long-term employability. Nothing prevents you from getting an MCSE too.

    --

    ==========
    Error in module creativity.dll : Unable to create witty comment.
    Abort / Retry / Ignore ?

  53. Not even remotely useless. by jythie · · Score: 1

    Actually, I have found employiers to _LIKE_ entry level programers to have a wide range of classes including some good solid theory. One complaint we have here about many of our younger developers is they skip thier theory classes and it really shows when they work on complex problems. The OP link sounds like someone geared more twards associates degrees or other technology focuses programs. The point of a CS degree is NOT to learn flavor of the month technologies, but to learn how to learn and have a good foundation. I actually get really displeased when I see colleges trying to push things like XML or Java courses into the main courselist....

  54. There seems to be a disconnect by matth1jd · · Score: 2, Insightful

    There seems to be a disconnect between what CS is and what most curriculums offer. It seems that the submitter is getting a solid CS background when he might be looking for a degree in Software Engineering.
    This seems to be a common occurance. My alma mater offered a CS degree which was actually more of a software engineering degree. Sure they offered courses in AI and more scientific branches, but I learned more practical programming than anything
    I believe this confusion comes from the fact that colleges are pushed to churn out students that can get jobs instead of get their PhD. Sounds like it's time for seperate degrees.

  55. Information Science vs. Computer Science by inmate · · Score: 1
    When I read Comp.Sci and Math many years back, my university offered two distinct courses:
    Information Science which was offered by the Economics Faculty - geared heavily towards the use of Computers in Business.
    Computer Science hosted by the Science Faculty - focusing on the academic aspects of Computing.

    For us, the choice was made quite clear - If you are more interested in building a base for a normal career working with computers, go with Information Science.
    If you are more interested in going into research, or doing 'low-level' work in high-tech firms, go with Computer Science.

    Clear cut and everyone was happy!

    --
    --- blackironprison, where ignorance is bliss....
  56. Touch Typing? by Anonymous Coward · · Score: 0

    I'm sorry, but I just can't take anybody seriously who thinks touch typing belongs in a college-level curriculum. I took that class in 8th grade!

  57. Databases and data modeling. by infosinger · · Score: 1

    I have been on the hiring side for many years(I am a software engineer) doing low level over part of my career and doing web services during other parts and the areas of expertise(or even proficiency)that seem to be hard to find are data modeling and databasing.

  58. CS vs. IS. by Calaban9 · · Score: 1

    I am a CTO for a small but technologically cutting edge software development company and I hire both CS and MIS graduates and I can tell you both are necessary but my experiences in the labor pool point to MIS guys being a dim a dozen and CS guys that really get it are rare. On average my CS guys are my heavy hitters and make 50% more than my other developes if you normalize for experience. In fact I've found that the software engineering limits those employees ability to be creative While they write more "reusable" code it's rarely efficient except in the managment sense.

  59. Re:The choice of degree matters less than attitude by Ed+Bugg · · Score: 1

    "I didn't learn C# in Comp Science but I could learn it in an afternoon.." I'm a young guy (22) and I've been programing professionally for nearly four years and I can tell you that this is simply false. Make no mistake about it, I'm still no coding grand-master and probably wont be for another ten years. When somebody says that they can learn a language in an afternoon it doesn't make me think they're lying, it just makes it blatantly obvious how ignorant they are of intricacies of writing code.

    Hmmm I'm split on this, and I think the initial question actually goes into this. As someone else pointed out the CS goes into the science behind the scenes. True you don't need to know the machine representation of a floating point number, or how different platforms normalize numbers, in order to write a program, but to be able to profile and truely understand how your code is run, it does.

    What does this mean for someone that says they can learn C# in an afternoon? Well, I've know programmers that know a language so well that they can do things that in that language that you just wouldn't think possible, but tell them to write that same program in another language and they are lost. While other programmers that I know, just translate their ideas into what ever syntax is needed and to them a language is just nothing more than syntax and grammer.

    When you already have a large number of languages under your belt, then how long does it take to pick up enough of the grammer and syntax? Granted you won't be making any masterpeices, but can you write a program?

    Back when I was in school, I used to groan, grip and b*tch about learning a different language practically every semster, each class had it's own language that was required, I know C already why did I need to know anything else? Years later, I had to debug and modify an application in PowerPC assembly, never seem it before in my life. I already knew M68k, Intel, and SPARC assembly. So sitting down with a reference manual and the code I was able to pick up what the program was trying to do, how it was trying to accomplish it, and what parts I needed to modify, within a weeks time.

    There's a difference between picking up a language and becoming a grand master, but I agree it's a lot in the attitude of do I learn this for this class or do I learn to apply it myself.

    --
    -- Ed Bugg --You have freedom of choice, but not of consequences.--
  60. You just described part of my CS program by kalpol · · Score: 1

    data structures, algorithms, C/C++
    CS328 - data structures and algorithms in C++.
    a basic understanding of micro processor archithecture (this means some ability to debug in assembly, at least a little CS310
    good written and verbal communication skills
    Pretty much everything
    operating system fundamentals such as memory management, scheduling, I/O (Syncronous, async), and networked I/O (TCP/IP)
    CS372 and CS341(?) - Operating Systems and Fundamentals of Networking Protocols

    So where is the problem here?

    --
    12:50 - press return.
  61. you shouldn't be going to college by liveevil · · Score: 1

    No you are not. Get out of college right away and quit wasting all that money. Go to ITT tech or get a certification such as MCSE. You will be working and making money a whole lot sooner.

  62. Mix it Up by mr.warmth · · Score: 1

    I advise students to follow the same education pattern that many successful developers I hired over the years followed:

    In school, try to take courses which offer you a chance to learn something you'd never learn otherwise. For example, you will learn Fortran when working for me, no need to learn it at school (that was a joke, by the way Though you will.) On the other hand you will probably not end up learning, oh.. compilers, say, or discrete math, on the job. So take that at school and you'll have an edge over the people who are working with you and didn't.

    But that's only half of it. I won't hire you unless I know you're self-sufficient and can work. How do I know that? From your resume. If you have 4-5 part time jobs you've done while in school, and these jobs pertain to the field, I will probably give you a shot: both because I like the people who bust their ass, and because you had probably learned something at those jobs that you didn't learn in school.

    And finally, learn to WRITE and SPEAK. Can't stress it enough, the hardest thing to get a programmer to do is give a simple concise STATEMENT OF FACT. This drives me absolutely nuts. I have a few english majors working in the dept (I didn't hire them) and at least these guys can tell me what the problem is. Too bad they can't code.

  63. Re:BS degrees are more vocational (314159) by Anonymous Coward · · Score: 0

    I don't have a degree in basket weaving and I think a degree in basket weaving is worthless. Is the fact I don't have a degree in basket weaving relevant or is that degree really worthless? These are the sorts of questions CompSci majors ponder while in the unemployment line. :-)

  64. Two years or Four years by wk633 · · Score: 3, Insightful

    If you just want a job, go to a 2 year college and cram in as much as possible off his list. Do some stuff on your own if you have to. Fast, cheap, you'll be in the job market right away.

    On the other hand, if you find yourself asking deeper questions in class, and instructors either not able, or not willing to take the class time to answer, maybe you should go to a 4 year after all.

    I've used very little of my B.Sc directly in the last 12 years. But I can't count the number of times that something I learned has been very important to what I do. I also have a better perspective. People without a broad background tend to focus on solutions in their knowledge domain. People who understand how big the domain is can look outside it.

    XML? Good grief! What do people like me who finished school before XML even existed do? Cry that we missed out? Or just learn it on the job, like every other new technology that appears after graduation day? The cutting edge is a moving target. If you try to aim for it, you'll be out of date by the time you finish. If you build a strong background, you'll be sharpening the edge.

    Sure, there will be employers out there who expect to already have experience in some obscure specific software they use. But there are those willing to treat coursework as experience. 2 years in the workforce, and it will be irrelevant.

    One thing I will say, is that you should round yourself out with some electives such as: business, economics, accounting, law, etc. A lot of people can write code. Not everyone understands the business reasons behind the code.

    1. Re:Two years or Four years by danharan · · Score: 1

      I'm 30 and starting classes again in 3 weeks- to finish a degree started nearly 10 years ago. Well, not the same degree mind you- more management science and MIS than B Comm.

      How I wish I had taken a 1 year program to get me a job right away. Is there any reason aspiring hackers can't be allowed to study part-time for 5-6 years?

      Especially if it turns out you're not cut out to be a "computer scientist", it would help if your first year you learned about SQL, regexps, programming and basic algos rather than malloc. Stuff you might actually use in other fields...

      --
      Information: "I want to be anthropomorphized"
    2. Re:Two years or Four years by wk633 · · Score: 1

      Getting a 2 year A.S. first, then transfering to a 4 year school can be a great idea. You get courses that might be more job-applicable. You get an idea of what you might really want. It's cheaper.

      I'm 39, and still take classes at my local communitiy college.

      I'm not trying to knock any method. I think the more important thing is to understand what the options really are, and do what's right for you. When I started my CS degree, I didn't have the foggiest idea what CS was. Turns out I enjoyed it, but that was luck as much as anything. Liking to program doesn't neccessarily equate to liking CS.

      As for part time- I agree completely. Some schools are geared to kids getting out of high school, and spending 4 years, no more no less. A lot of us don't have white picket fences.

  65. Simple, look at job requirements by nothingx · · Score: 1

    Go to any company you'd like to work for and see what their requirements are for becoming a software engineer. You will find most, if not all, list having at least a BS in computer science for a basic requirement. Take Google for example:

    Requirements:

    BS or MS in Computer Science or equivalent (PhD a plus).
    Several years of software development experience.
    Enthusiasm for solving interesting problems.
    Experience with Unix/Linux or Windows environments, C++ development, distributed systems, machine learning, information retrieval, network programming and/or developing large software systems a plus.


    So, assuming you get your degree, which I hope you will, you will have the top requirement met, and because you're taking a machine learning class, you will have one of the bonuses covered. Everything else is up to you.

    That answer your question?

    1. Re:Simple, look at job requirements by TedCheshireAcad · · Score: 1

      You're being too hard on the requirements. I interned at Google, and my degree is in mathematics.

  66. Couses to pick by Derkec · · Score: 1

    History of Econ class sounds interesting. Your in college at least partly to expand your horizons. Definately stay in that.

    Otherwise, yeah, what you learn in school isn't the most relevent to finding jobs. That's why it is most important that you get an internship or failing that contribute to an open source project.

    Classes just don't give you the opportunity to work on projects of an acceptable scale to be real experience.

    Theory of Computation can actually be a fairly useful course. Much more so that I thought it would be while I was taking it. There are some useful abstrations in there.

    I did take an OO class in Java that was useful to me, and I wish I'd taken the database course that was offered. Other than that, the courses I took just gave me a decent vocabulary for the real learning I would do as an intern and junior programmer.

    The author of the article complains that there aren't courses about XML. Wah. XML just isn't that hard. It's self descriptive after all. The trick is learning about how it's used. Since it is used in different ways all over the place, any digging you do in a college class is likely to teach you about a way you never use it.

    Still, the best college course I took for preparation was our senior project. We took a team of five students and worked on an industry supplied small app for the course of the year. Great experience and it was a solid talking point for me in my early interviews.

  67. Re:The choice of degree matters less than attitude by Anonymous Coward · · Score: 1, Insightful

    >I'm a young guy (22) and I've been programing professionally for nearly four years

    Is it possible then, that you _yourself_ have done nothing above but make it blantly obvious how ignorant you are?

    I'm much older than 22, I've been programming for 20 years and I'm a professor of computer science.

    A moderately intelligent and resourceful student should be able to switch between languages with similar design in no time at all. Once you understand the basic concepts and structures of a procedural programming language, it takes very little time to learn a new procedural language.

    Now, this doesn't hold when you switch across paradigms. Someone who is comfortable with procedural languages would not be able to make a 1-day switch to LISP or PROLOG. However, a LISP programmer could switch relatively easily to ML or Haskell.

    What it comes down to is that a change of syntax is essentially trivial if the underlying semantics remain the same; only a change of semantics should require serious study. You don't understand this because you have probably never taken a proper academic course on programming languages and may not even understand the distinction between syntax and semantics.

    It is exceptionally dangerous to conclude that just because _you_, with your extremely limited experience and knowledge, cannot do something... it must follow that others can't do it as well.

  68. Re:no by WindBourne · · Score: 5, Interesting

    He is in the right program. A good Computer Science has a good to great theoritical underpinning. Look, the design paradigms will change. So will OSs. And the languages. and the DBs.

    While 2 years ago, there were tons of CSers unemployed, so were the EEs and the CEs. Now, I do not know of any CSers that are unemployed. I do know of a LOT of CISers and vocational people who are unemployed. I also know a number of them have moved on to other professions because the industry has shrunk.

    Basically, the CS/CE gives you the ability to do anything in the software world. The CIS/Vocational gives you the ability to do just what you learned. And back in the 90's, the CIS world was learning mainframes with Cobol, RPG, and PL1. Is that were growth is? nope. Has not been for sometime. Can these people move easily to Microsoft (where the most jobs are currently), or Linux (where all the growth is)? Nope. They do not have the underpinnings to make the jump.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  69. Closed minded and greedy by Anonymous Coward · · Score: 0

    If you want to constrict yourself to the current trend of computer languages and business models then go into a Computer Information Systems' degree.

    On the other hand if you are looking to advance the current trends into a new direction that including business models then go into Computer Science / Electronics with a concentration in System and hardware.

    A rule of thumb:
    CIS == Technical Degree
    CS == University

    Its up to you

  70. The key word is... by torstenvl · · Score: 1

    University.

    If you want a "job" then go to a tech school. University is for people interested in advancing a field of study.

    One of the biggest problems with the education system is the massive influx of people who don't care about education, but about training.

    On the other hand, if you actually care about algorithmic efficiency and want to work doing CS research, say at Google or any other lab, then these courses are indeed useful for "getting a job" -- or rather, starting a career.

    There are a few questions you should have asked yourself before getting into this field. One of them is whether you're more interested in shaping the field of computer science or if you just want to be a techie for some company somewhere.

  71. learning a language is easy by StarvingSE · · Score: 1

    Learning a language is easy. Most curriculums just pick one (mostly C++ or Java) and use it to teach you "how to program." The "how to program" part is what is important. Sytnax and features change between languages and technology, but the core fundamentals are the same (ie good coding styles, algorithms, etc).

    Like others have said, anyone can sit down and memorize the syntax of a language and program semi-proficiently with it. But when an employer wants a program done in a specific way, or in many cases to run in the fastes way possible, then they want to talk to the CS math geeks to come up with an algorithm.

    --
    I got nothin'
  72. Network engineer by PtM2300 · · Score: 1

    The school I went to was pretty much a four year technical college. In the end I was given a B.S. degree in Telecommuniaton Systems, but I'm not sure what that means. I think the hands-on, technical training landed me a great job with great pay, but I think having more of a "learn the concepts, learn the origins" degree would help me acheive a higher salary in the future.

  73. Would you hire Dan Zambonini? by Anonymous Coward · · Score: 0

    His resume goes into the circular file.

  74. learn Java and C/C++ then get a clearance by Anonymous Coward · · Score: 0

    Learn basic Java and C/C++ programming then get a clearace and move to the DC area. If you have any computer experience, you will most likely be able to get a job very quickly. I am looking for a Linux programer with clearance. Check the web!

  75. I agree by guided_by_coffee · · Score: 0

    This type of degree is good for demonstrating that It certainly shows that you can handle these smart things. My degree is EE, so I lucked out -- I got both theory and hands-on experience even with a BS.

    Yes, coding is quite easy and the hard part is always doing proper design. "Proper" design by my definition is creating code that is both readable and relatively easy to debug, as well as robust, decent performance, etc...

    The CS degree will only indirectly help with code design, if one can master difficult concepts of CS, then one can learn how to do code design / problem solving in the future when in the business world.

  76. Re:The choice of degree matters less than attitude by sribe · · Score: 5, Insightful

    ...the majority of slashdotters probably have a CS degree...

    What planet are you from?

    You get the typical line out of them at an interview "I didn't learn C# in Comp Science but I could learn it in an afternoon.." I'm a young guy (22) and I've been programing professionally for nearly four years and I can tell you that this is simply false.

    Well, I'm an old guy (42), who has not just learned, but used in shipped products, over a dozen languages. And I can tell you that I learn and master new languages a whole lot faster than all you guys without CS degrees who keep shooting off your mouths about how little use CS degrees are. Learning a new language in an afternoon is indeed an exaggeration, but learning a new language is a whole lot faster when you understand the fundamental mathematics on which all programs are based, and the way they are commonly expressed through language features.

  77. Meh.. by Anonymous Coward · · Score: 0

    Don't listen and keep doing what you are doing..

    Example.

    I had a class "Programming Languages" - it taught various language paradigms (functional, object oriented, logical, etc). As an example, we were asked to learn basics of some sample languages (C++, Prolog, Scheme).

    I'll admin I've never written anything in either scheme or prolog ever since.

    However, trust me, the class taught me a hell of a lot more about object oriented way of doing things than any stupid "Introduction to Java" class would have.

    I can show you tons of examples like this - classes that taught HTTP instead of HTML, database normalization instead of SQL, etc.

    I've been working at a company for nearly 4 years using a language that I only heard of at the time of my interview. My knowledge of underlying and related technologies got me through.

  78. Looking back over 30+ years by overshoot · · Score: 1
    Yeah, I have a BSCS. I also have a boatload of physics and maths that weren't required for the degree.

    Very few of my classes turned out to be useful right out of school. However, the ones that I use most now are the ones I thought would be least useful at the time. Those theory classes don't do you any good right away, but they're utterly indispensible as a foundation for staying current for the rest of your life.

    I promise you, the vocational stuff will all be in a landfill fifteen years from now, but the theory will be keeping bread on the table.

    If you ever have to choose, I'll second every single professor that my children have asked (physics, EE, psychology -- unanimous): you can never get too much maths!

    --
    Lacking <sarcasm> tags, /. substitutes moderation as "Troll."
  79. Software Engineering by Mike+Schiraldi · · Score: 1

    I went to Columbia, and in the past ten years they've completed overhauled their Software Engineering course something like four times. And, as of the time i took it, it still sucked.

    But it's not Columbia's fault .. i haven't heard of any CS program that provides good Software Engineering education.

    Specifically, in the real world you'll often have to work with huge existing codebases full of legacy code, written by other people. Schools leave graduates woefully unprepared for this.

    Important lessons they should teach:

    - How to use a debugger to quickly find the bug in 20,000 lines of someone else's hairball code

    - How to use a profiler to improve the performance of someone else's hairball code

    - How to use a memory debugger, like Purify or Insure, to find the obscure memory error in someone else's hairball code

    - How to refactor hairball code safely and in such a way that you can still ship at any time

    But no, instead we learned about UML.

    1. Re:Software Engineering by extropalopakettle · · Score: 1

      "Real-life world experience has made me a more rounded individual not theoretical classes."

      Of course, what one considers to be more well rounded is highly subjective.

      "I do understand the arguments for having a broad theoretical background, but I don't want to invent the next Java or C++, I want to solve real world problems."

      And to me, being able to invent the next Java or C++ means being able (i.e. having the same skills required) to solve what are very much real world problems, and yet it requires very little of the theoretical background I consider necessary to a well rounded understanding of computers and computation.

    2. Re:Software Engineering by przemeklach · · Score: 1

      Just out of curiosity what do you think of a Software Engineering Degree as opposed to a Diploma or a CS?

    3. Re:Software Engineering by plopez · · Score: 1

      I've often thought that a 2 semetser/12 credit hour course covering
      requirements gathering design implementation and deployment of a multi teir application would be a good capstone course for Jr. and Senior year students.

      It would include mock interviews of users with confusing missing or inaccurate information, requirements changes and an unrealistic deadline.

      Soft skills such as conflict resolution and negotiation would be covered as the optimal team size would be 4 (so thhere would be deadlocks in voting).

      They would have to:
      set up their servers.
      gather requirements
      data modeling and design
      application design
      negotiate features and priority with users (some features would have to be dumped due to time constraints)
      implement the design in a flexible manner (since about 1/2 way through they would be hit with a requirements change. this could be seen as maintenence in some cases)
      figure out how to deploy the application
      import data from outside purposes (would include data scrubbing)
      deploy the application.
      train users.

      I think that is as close as an academic environment could get. I did not state it but at each stage tersting would be an intgral part of the process.

      --
      putting the 'B' in LGBTQ+
  80. Make sure you learn how to WRITE! by Tsu+Dho+Nimh · · Score: 4, Insightful
    Make sure you include a couple of courses on report writing and writing for buisness.

    Many times your department or project will live or die based on how well you write your reports and memos. And your user base will love or hate you depending on your ability to clearly communicate - at their level and from their perspective - how to use whatever you are running.

  81. My ancient perspective. by elgee · · Score: 2

    This is probably out of date as it occurred about 15 years ago, but the manager of the Best Job I Ever Had said he would never hire a CS graduate. I was an electrical engineer. There were english majors, philosophy majors, a geologist, and other non-CS people there. And we did some amazing stuff with Lisp, Smalltalk and AI.

    The reasoning is that it is much easier for a good thinker to learn programming than a programmer to become a good thinker.

    However, in most IT jobs, practical training and experience is probably the best ticket.

  82. The problem is in the title by mustafap · · Score: 1

    I had the same problem 22 years ago when I was about to start a Computer Science degree at Sussex. Back in those days, if you wanted to end up doing real work, you went to a polytechnic. If you wanted a career in science, you went to university.

    I would repeat the usual mantra: A degree shows your ability to study, absorb information and repeat it.

    Some of the best programmers that I have met had degrees in unrelated subjects.

    Whatever courses you study, try to come out of the time with a well rounded personality. With no employment history the only thing they can judge you on is "Do I want to work with this person? Will they fit in?"

    Good luck!

    --
    Open Source Drum Kit, LPLC deve board - mjhdesigns.com
  83. AI as a subarea of CS: popular vs. core topics by hsuwh · · Score: 1

    I teach Bayesian networks and machine learning, two of the topics listed in the above article, in my undergrad and graduate courses in AI. In my opinion, these are subtopics and not core topics, and I will be the first to admit that they are by no means defining topics for a CS curriculum. People list them on resumes because they are hot topics in research, good for catching the eyes of graduate school admissions people and R&D managers.

    The fundamental topcis, as the author notes, should be data structures (including graphs), applied math (including the graph theory, probability, discrete math, and linear algebra to support Bayesian networks), and basic programming and OO design. Of course, the author also has his dose of "hot topics" (XML rather than "data representation principles", abstract data types and metadata, etc.).

    Graphical models are just one family of many important representations for reasoning and learning, and for computation in general, and learning is just one of a number of important computational mechanisms. Certainly, the modern computer scientist has to be aware of this.

    If we look at intelligent systems as a branch of CS that is concerned with "human-like (cognitively plausible) and rational (utility-maximizing) problem solving", as Russell and Norvig set forth in the leading AI textbook ( Artificial Intelligence: A Modern Approach ), we see where the above topics are coming from. AI is popular. Many more people have superficial interests in AI than will actually take jobs in theoretical research or applied fields of "computational intelligence", and I think that is what this commentary illustrates.

    --
    ICQ: 28651394 = AIM/MSN/YIM: hsuwh = www.livejournal.com/~banazir
  84. Theory Matters by mindcontract · · Score: 1

    I had exactly the same response when I was in college at Wesleyan University - why am I taking these theory classes - they won't do me any good. I'm 10 years out - and the only thing that has mattered is the theory classes. I use the theory every day - I make my living doing contract work in multiple different languages. If you want to be a master programmer - its not just time, and desire - its also theory. I've met programmers who have been writing code 10 years - who I consider incompetent - primarily because no one taught them any theory - like reusable code - like writing objects that encapsulate functionality, like recursion. Theory matters But having been in school facing the theory classes - its no fun. Hang tight - and my best suggestion is that you get yourself involved with an open source project and start writing code on the side. If you have 2 to 3 years of writing code, modifying code by the time you get out of school - you'll be heads above other people. And yes you can make money programming - lots of it. You do have to do something to distinguish yourself from other folks. I have a double major in comp sci and philosophy - I strongly urge you to backup your comp sci with another field of study - preferably on the "human sciences" side....

  85. Real world experience by Anonymous Coward · · Score: 0

    As someone who just finished up a BS in CS, and spent the last 4 months searching for a job, i'd say you need to do far more than just get the degree. The last two years I was in school, I worked my way up in a company doing IT work -- support, tech work, then into an admin position. After school, I had a 4 year degree, and 2 solid years of real world experience. After that, it was just a bit of time till I found a job that wanted that. So again, temper your course work with real work (tm).

  86. Have your cake, and eat it too. by penfold5 · · Score: 1

    Co-op or intern.

  87. Why are you doing CS? by ziggyboy · · Score: 1

    If that's what you're after you should be doing IT and not CS. I'm surprised as to how clueless students are regarding these matters.

  88. Don't worry about it by Havoc+Pennington · · Score: 1

    Even if your schedule had a bunch of more immediately practical classes (XML, Java, blah blah) they'd be obsolete soon enough. Look at college as a place to learn the more unchanging basics (e.g. algorithms, how-a-programming-language-works, etc.) and broaden your mind beyond computers (take classes you're interested in).

    Learning to write may be the most useful software development skill you can learn in college, more so than a lot of the more specialized CS or software engineering classes; most any class with papers (vs. problem sets) will help you learn to write.

    The place to learn the syntax of a particular language, or a new API or technology, is from books. Or online docs. Read as much as you can. Also read about things like interaction design, development methodology, coding style, etc. not just technical manuals. There are tons of people on the internet dishing out advice to new programmers, for example http://joelonsoftware.com/ is popular.

    As you read, you have to write code. Try to use what you learn, and try to read things that address problems you're having. This will make the reading "stick."

    A tough thing for new programmers is to realize that you have to write tens of thousands of lines of code before you stop sucking. Maybe 100K lines or more. No matter how smart you are. That's going to take a couple of years of daily practice, and lots of smart people aren't used to needing that much practice.

    You're way better off putting a big dent in this _before_ you start your first job. Especially because many entry-level jobs have you write the wrong kind of code. It's best if you try to design and architect all your nonworking, terrible practice code, but your first employer won't let you. So even when you get a job, if you want to get good at programming you should probably have a weekend project that's more "from scratch" with you in charge, vs. the more common first job of maintenance programming directed by others.

    To me I'd really want to hire someone who could show a lot of code already written in spare time. It means they have a lot of their initial tens of thousands of lines of practice behind them, and it shows that they really like the work and are capable of doing it.

    Sample work (and practical experience) will make a much bigger difference in interviews than which classes you took. If you have good sample work you don't even need a degree in a computer-related field.

  89. Yeah, ignore that Numerical Analysis by roystgnr · · Score: 1

    That's really only useful if you're going to program computers with those new-fangled "math coprocessors". For those of us sticking with our 486SX it's a complete waste of time.

  90. What you really need by Anonymous Coward · · Score: 0

    To get a job, these are the classes you need:

    English 204 -- How to lie on your resume

    Sociology 301 -- How to identify a scumbag headhunter, answer: they all are

    Psychology 213 -- How to survive an HR interview without losing total faith in humanity based on the stupid questions they ask

    Law 722 -- How to read and negotiate NDAs and non-compete clauses, and the difference between the two

  91. If you're asking yourself the question ... by Progman3K · · Score: 1

    Then NO, you'e NOT in the proper path.
    I NEVER hesitated. It was like a black hole, and the attraction was too intense, I never could have had a different career I wouldn't have gotten bored and then despondent with.
    And when the the dot-com boom went dot-burst, I was still able to get a job programming computers.
    Why? Because my will is stronger than yours, and it's what I was MEANT to do.
    Friggin' kids, these days...

    --
    I don't know the meaning of the word 'don't' - J
  92. Tech writing, Soft Eng, Public Speaking by sielwolf · · Score: 1

    Either you go into academia, where you will write papers and give presentations, or you will go into business, where you will write memos and give presentations. Both of these are important in that they will be attached to your record of work and be used to judge how useful you are. You might be the smartest guy on the block, but if you can't express your ideas (especially in a voice-neutral setting such as a 7 page paper in a proceedings) it is all moot.

    And this stuff is far from "easy" and "common sense". Everyone has experienced the horrible Powerpoint presentation: too much text, confusing shorthand grammar, no logical flow, no standard of format or presentation. You know, like your average "I haven't RTFA but I'm going to shoot from the hip" /. post. Only this time its a formal communication which your boss will look at when review time comes around. But beyond that it hampers your ability to work in a team, to work in a Greater Scientific Community, etc. Software Engineering 30% of the time is people debating two different things, neither of which is getting the team closer to the product.

    Communication should be a lubricant, not a roadblock. And the way you do this is by repetition and critical feedback. Best for that feedback to first come in a classroom setting instead of your boss tossing a paper back at you saying "What the hell is this?" It still takes work, revisions, but after a while it becomes old hand. You soon find it easier to grok other presentations and choices they should've made.

    This is the stuff that seperates QA and code-monkey from project leads and the guys who do cool stuff.

    --
    What is music when you despise all sound?
  93. Think holistically ... by daboochmeister · · Score: 1
    You're building a life, not (just) a career. What do you want to study?

    From a "getting a job" perspective, it's not an either/or, it's an and/also. Frankly, in my experience as an interviewer, you won't have any more difficulty getting a job with a strong theoretical basis in computer science than you would if you focused on vocationally intensive courses, nor vice versa. When we hire, we know that any vocational experience a student gained is only going to shorten a brief learning curve anyways. Instead, what we look for are fundamental reasoning skills, organizational ability, work ethic, ability to communicate -- and those can shine through either course history.

    Assuming you don't press on for a Ph.D. and build a teaching career, then your career will likely eventually tend to track toward implementation (e.g. software engineer) or abstract design (e.g. software architect), and that, frankly, will be determined more in the field than by what courses you've taken.

    So ... do you enjoy thinking through the "big issues", and understanding the underlying structure of the computer science universe? Take theory. Do you enjoy making something and seeing it work? Focus vocationally. Enjoy both? Find a program with a mix.

    Then, once you're in your career, you can build in either direction anyways. And you can build a career you enjoy, and therefore one that fits cleanly into your overall life, out of either.

    --
    "Ahh! I see you're in that indeterminate Schrodinger state where - oh, uh ... never mind." Dave Bucci
  94. Bzzz, wrong Dan Zambonini by prozac79 · · Score: 2
    While I agree with some of the classes that Dan Zambonini suggests, most of them are way too specific for a CS education. The purpose of computer science is to provide someone a toolkit of knowledge which can then be applied in a wide range of fields. It is not solely to teach people the mechanics of programming, but instead on how to think through problems. Classes like AI, Operating Systems, etc. may seem pointless once you get out into the "real world". However, they are teaching you different ways of approaching problems. For example, I'm not working in building the next Deep Blue, Linux OS, or gcc compiler, but I have had to bust out concepts learned from my AI, OS, and compiler classes more than once to design and implement some programs at work.

    Dan Zambonini basically wants things learned on the job to be placed in the classroom. I have learned things like test-first development, extreme programming, system engineering, etc. where I should be... on the job. Think of Computer Science like law. You don't spend three years in law school going over courtroom procedure (because not every lawyer ends up in a courtroom for starters). Instead, you study cases and build up a toolkit of knowledge which you can then apply later in whatever environment you land in. Same with CS... study the concepts and learn how to think. If you know how to solve problems, then you can more easily learn the mechanics of programming.

    --
    "Oh dear, she's stuck in an infinite loop and he's an idiot" -Prof. Farnsworth (Futurama)
  95. Don't pick your classes based on a job by Cerdic · · Score: 2, Informative

    It's probably more important to be more rounded by taking an occasional class that you don't think you "need" and/or doing a minor or two rather than formulating your degree solely on what you think is good for a job. You might just find that you like another field better than CS. Also, much of what you need for the job is self-taught and learned on the spot anyway.

    --
    Advice for my fellow geeks: before seeking out that threesome you dream of, you might see what a TWOsome is like first.
  96. Re:BS degrees are more vocational (314159) by mugs_oh · · Score: 1

    It's only worthless if you're NOT a basket weaver.

  97. It's the difference between ... by constantnormal · · Score: 1

    ... educating one in the sciences and training to use a particular manufacturer's lab equipment.

    At least that's what the subjects listed in Zambonini's piece suggested to me. If someone trained according to his curriculum were called upon to develop a compiler for a new language, or an algorithm to calculate some complex function, they would assume the role of a fish out of water.

    And it may well be that what you want is a trade school education -- after all, there are a lot more lab assistants than PhD researchers. If all you want is a job, and have no passion for the subject matter in the field, then the course of education suggested by Zambonini is certainly preferable -- and easier.

    In a computer science curriculum you may well be obliged to learn about many of the topics he has listed, but as a byproduct on the way to some other goal. I can't imagine a computer science degree program these days that doesn't briefly touch on the nature of XML as a means of expressing a formal grammar. But I doubt that many will see the need to spend precious time explaining in detail the W3C's (or Microsoft's) views on DTDs and meta tags.

    And best of all, you can self-educate yourself via a series of "XYZ in 21 Days" paperbacks and well-chosen how-to web sites, applied in the classroom of your own computer. If you think that a diploma will help you get a better job (and I think that it usually will), enrolling in the trade school or "technology" degree program of your choosing after you've prepared yourself will allow things to progress more smoothly. In fact, I suspect you'll find it easier to get a job as an intern while still a student, prove your worth to your employer and get that "big raise" upon attainment of your degree of choice.

    But the half-life of things learned in a technology degree is very short, while the underlying sciences change very slowly, if at all. So a computer science degree will prove useful over and over again throughout your career, while a technology degree will be quickly left behind. I know that I found myself using parsing and organizational techniques learned 30 years ago in a compiler design course to create a piece of COBOL middleware using TCP/IP sockets SQL, and XML, methods that allowed me to craft a solution while my trade- and technology-schooled peers were scratching their heads wondering how they were going to accomplish the goal (don't blame me for the COBOL -- one thing you learn in a computer science program is that a particular programming language is merely the material from which you construct the algorithmic design. As much as COBOL reeks, it's just a tool -- and this time was the tool I was directed to use).

  98. If you want a "trade school" education... by callipygian-showsyst · · Score: 2
    ...go to a Trade School. If you want to be well-rounded, go to a University.

    As someone who has made a nice living developing computer software, overseeing software projects, *and* playing the piano (!), my liberal arts education (math major, music minor) came in very handy. If you want to specialize, to it in your graduate degree.

    1. Re:If you want a "trade school" education... by CarrionBird · · Score: 1

      And how would you suggest he get a job with his "trade school" education? Regardless of what a University is supposed to be for, in the actual real world, employers expect people to have a 4-year degree and a laundry list of specalities right out of the gate.

      --
      Free Mac Mini Yeah, it's
    2. Re:If you want a "trade school" education... by rgbscan · · Score: 1

      I disagree. As a tech manager who primarily hires entry level CS graduates I find the largest problem I face is the unrealistic expectations of today's graduates. Most candidates that come across my desk have no real world experience yet have salary expectations that are through the roof. After 4 years of college they don't seem to have the patience to get their foot in the door, work on some lower level projects, and develop the skills to move on to the career and projects they feel they deserve the moment they step off campus. I know I'm generalizing here but the sense of entitlement in candidates coming across my desk astounds me. Your 4 year degree is your ticket that gets you into the game and onto the team, it doesn't catapault you into your dream job on day 1. I see a CS degree as a good foundation to build on throughout your career not a hurdle to pass on the way to your working life.

    3. Re:If you want a "trade school" education... by CarrionBird · · Score: 1
      I wouldn't be surprised that new graduates have inflated expectations. They've been indoctrinated in the false notion that CS is a lucrative carrer path.

      On another note, you hire "entry level" graduates? I thought you're type was extinct! (at least in the US)

      --
      Free Mac Mini Yeah, it's
    4. Re:If you want a "trade school" education... by guitaristx · · Score: 1

      The problem is that the "programmer" jobs are usually inflated-salary positions that belong to trade-school code monkeys, not CS grads. The pointy-hairs don't understand the difference.

      Is someone who really needed to go through an eight-week course in PHP sharp enough to maintain a website for you? Probably. Can the same person be a successful design & development team member in a multi-tiered, multiple-application, database-driven, performance-critical software system? Probably not. Not that I'm guaranteeing that a CS grad would be able to do that (especially not fresh out of school), but a smart manager (if such a thing exists) would require at least a B.S. in Computer Science for the latter scenario.

      The problem is not curriculum, the problem is bad management.

      --
      I pity the foo that isn't metasyntactic
    5. Re:If you want a "trade school" education... by Darth_Burrito · · Score: 1

      On one side there are people who say, we need to learn C++, PHP, and XML in school. On the other extreme are people who respond to criticism of the applicability of computer science programs with go-to-a-trade-school arguments. Both sides misunderstand the issues.

      The real problem is that very few people want or need a computer science education. Many people want an education in software development. A university education in software development is a full fledged engineering-like degree. It is NOT the equivalent of a trade school degree in "programming". For example, many of the topics discussed in the article are not the kinds of things one would typically associate with vocational training: interface design/usability/hci, Patterns, Project Management, Economics, Code Architecture, Testing/Debugging/Refactoring.

      If you want to specialize, to it in your graduate degree.

      Why even bother to have majors at the undergraduate level? Anyways, a computer science major doesn't prepare anyone for changing careers or life in the real world any more than a software development major would.

    6. Re:If you want a "trade school" education... by callipygian-showsyst · · Score: 1
      On one side there are people who say, we need to learn C++, PHP, and XML in school.

      WHen I was in college, there was no C++, PHP, and XML. The "intro to computer programming" course I took as a Math major used IBM 370 assembly language, on punch cards!

      And yet, I've managed to have been employed continuously (though now I'm self employed), working on some very large, well-known software progjects written in C++, Objective-C (a true horror!), C#, and even assembly langauge (embedded software for a popular toy). I think teaching specific languages in a "Computer Science" curriculum is a waste of time.

      I don't do any "web stuff", so I can't comment on PHP and other web technologies. My perception is that those jobs tend to be in a lower tier. However, this is unfortunate---if companies hired real "computer scientists" they may get web sites that work better with fewer people working on it. I'll cite on example for this theory--Google Maps. For years, all the map sites were clunky things that just showed a GIF on the screen with your map. Navigating was click-wait for refresh.

      Then along came Google, who's able to hire just the best and brightest from Stanford, etc. All of a sudden, web based maps work smoothly and look nice. I can't imagine why anyone would even look at MapQuest any more.

    7. Re:If you want a "trade school" education... by Craig+Davison · · Score: 1

      As far as 90% of software development jobs go, learning CS at a University doesn't make you "well-rounded". It makes you a trade-school programmer with a bigger ego, and a better background on your resume. After 5 years, there will be no difference between you and the trade-school programmer, unless one of you is exceptionally bright or exceptionally stupid.

    8. Re:If you want a "trade school" education... by Darth_Burrito · · Score: 1

      WHen I was in college, there was no C++, PHP, and XML.

      And of course these things shouldn't be part of the curriculum except maybe as 1 credit hour electives. The point was to illustrate the two extremes of the argument. On one hand, some people say this tech stuff belongs in a college curriculum. On the other hand, you have people who seem to instinctively refer people with complaints about computer science programs to trade schools.

      if companies hired real "computer scientists" they may get web sites that work better with fewer people working on it. I'll cite on example for this theory--Google Maps. For years, all the map sites were clunky things

      If computer science graduates made good interfaces, we wouldn't have had to wait nearly so long for Google Maps. Usability and interface design are exactly the kinds of things my computer science curriculum never went anywhere near. We didn't have a single course in either topic taught out of the computer science department. The only way to get an education in either area was to go to other programs like Industrial and Visual Design. Unfortunately, the courses taught out of these departments were geared towards their students and were entirely inappropriate for computer science students.

      In my experience, computer science graduates make absolutely horrible interfaces. In fact, since the job is so often left up to them, I'd say that a lack of usability and interface design courses in computer science programs is one of the main reasons behind the perpetual "software crisis" we find ourselves in.

      I don't do any "web stuff", so I can't comment on PHP and other web technologies. My perception is that those jobs tend to be in a lower tier.

      The web is here to stay. It is important for lots and lots of businesses. When you are talking about a ubiquotous technology, the jobs within that area are not defined by the technology but by the people who fill those jobs. There are plenty of low tier web jobs, plenty of high tier web jobs, and plenty of multi-tier software development jobs where the web is only a small but highly important part of the job.

  99. Team Skills VERY Important by pg--az · · Score: 0

    My academic background was very lacking in teamwork-skills. A possible analogy would be a car with no tires, the interface to co-workers and customers is where your "rubber meets the road".

  100. Advertising yourself by overshoot · · Score: 1
    One thing to keep in mind is that other programmers are the ones who see the code you write.

    On the other hand, management sees the documentation you write. Care to guess who they're likely to see as most valuable?

    --
    Lacking <sarcasm> tags, /. substitutes moderation as "Troll."
  101. You need to know by 1336.5 · · Score: 0

    What YOU want to do and what YOU are interested in before asking people you dont know if you are in the right program.

    You must understand yourself first.

    Good Luck!

  102. Am I in the right program? by John+Hasler · · Score: 1

    No. You belong in trade school. I suggest welding or truck driving.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  103. Re:The choice of degree matters less than attitude by Anonymous Coward · · Score: 0

    I've just recived my degree in CS this august and i have been working for about 2 months now. The Visual Basic Programming that im doing yes anyone can do even without a degree, however look at the people who are doing with GNU projects, and who make the Operating Systems we all use, I have a hard time beliving that alot of thoes people have never recived a degree in CS or some math related field somewhere.

  104. Re:The choice of degree matters less than attitude by wk633 · · Score: 1

    Well, if the person claiming they can learn C# in an afternoon knows VB.NET (i.e. the .NET framework) and something like C or Java, C# as-you-go is pretty reasonable. Occasionally they'll have to look up C# particulars, but they'll know what they're looking for. It also helps if they'll be working on existing code, as opposed to code from scratch.

  105. My experience... by Anonymous Coward · · Score: 0

    I have a BS in CIS and got an MS in what is essentially CIS last December. Right now, I'm in my first semester of MBA studies. I have been a programmer for almost six years starting about two years before I got my BS. I have found myself finally meeting both the educational and the experience requirements for most positions I used to see posted. Recruiters are now looking for particular skillsets. Some places are starting to require certifications. I'm hoping I can become more of a generalist and "advance" into IT/business management to sidestep some of that. The IT field isn't what it seemed/used to be when I wanted to get into it (from late 80's early 90's-life happened to me, and I was sidelined until late 90's). In the environment I see, if you want to position yourself well for post-educational employment in IT, my advice would be to find a CIS program in which you can get an internship and take as much accounting and statistical analysis type courses as possible. In addition, I would also try to work on certifying in whatever particular technology you are most interested in. Then you have all the bases covered-education, experience and certification. There will be some here who will argue that you don't need all three of those (or any of them for that matter), but I doubt you would regret having any of them once you do.

  106. Re:The choice of degree matters less than attitude by CarrionBird · · Score: 1
    The problem with what you are saying is, 99% of employers looking for programmers don't subscribe to that outlook on what CS is for.

    In the real world, a CS degree is the minimum to get into anything but a bottom rung programming job. And there are no bottom-rung programming jobs to be had anymore (those all got outsourced), so that's not an option.

    --
    Free Mac Mini Yeah, it's
  107. Job or Career? by Frequency+Domain · · Score: 1
    Depends on whether your objective is to use your education towards a job or a career. I went to MIT back in the 1970's and often griped about how theoretical and abstract the courses were. I knew an MIT education was valued, but it wasn't until I was in the working world that I saw the real value in retrospect - I can't think of a single applied skill I learned at the time which is still applicable, but I use the principles on a daily basis. Equally important, while the field was changing under my feet I found I was far better positioned to master the new technologies and stay at the front than were my coworkers who had gone through more applied curricula.

    This is not a put down of vocational training, but that's not the same as learning theory and principles, or more importantly, learning how to learn. Getting a good education rather than training will carry you for the next 30-50 years rather than the next 3-5.

  108. Re:The choice of degree matters less than attitude by Abstract_Me · · Score: 0

    Ya but like chess if you learn the rules and become a good player on one table then if you play on a different table all you have to do to play well on the next table is learn which peice is which. If I learn a language in an afternoon I'm not learning how to program in an afternoon im just learning the syntax of a language. Degree's tend to teach you the theories of programming so that you can better understand how it all works and then take that knowledge and apply it to other languages.

  109. its like a merry-go-round... by i7dude · · Score: 2, Interesting

    no matter how many times this question gets asked...the answer is always the same; if what you care about is remaining in academia(sp?) and/or doing pure research then getting a cs degree and an advanced cs degree are all you may need (and as a result you'll probably end up getting the better part of a undergrad math degree racked up along the way).

    but, if you wish to join the corperate world of working monkeys; you really need to supplement your education either with a business or engineering minor or second major of some kind.

    i'm sure this will sound like every other post that has come before me...so i'm just adding to the mess.

    dude.

  110. Computer Scientist != Code Monkey by Raul654 · · Score: 1

    Those math courses are not there to look pretty. The idea of a university curriculum is not to teach you how to be a code monkey. "Computer science is no more about computers than astronomy is about telescopes" - Edsger Dijkstra

    --


    To make laws that man cannot, and will not obey, serves to bring all law into contempt.
    --E.C. Stanton
    1. Re:Computer Scientist != Code Monkey by phoenix.bam! · · Score: 1

      Thank you! That quote always sums up the answer to these repetative "Computer Science isn't teaching me the things I need to get a job." articles.

      I like to call the CS major Computing Science because really, computers do not have to be involved in any way, and in most of the classes, they aren't.

  111. What do you want? by jcbarlow · · Score: 1

    Do you wish to be a full human being, or just a worker/consumer? Do you want to 'make a living' or 'have a life'. More important: do you want to be another drone in an increasingly feudal society, or a misfit boat rocker. There's more to life than getting a job.

    BTW, I'm an old retired guy. I see this from a very different point of view.

  112. CS degrees are mostly useless. by supabeast! · · Score: 3, Insightful

    Of the hundreds of tech workers I've known, I've never met one with a CS degree. I have, however, known many people in retail management with CS degrees. All those nice theory and science classes are cool, but they aren't job skills or job experience.

    One of the nastiest problems in the IT industry is a near-total lack of entry level jobs. If you show up for an interview that requires a CS degree, but some 18-year-old who can code circles around you and has been working a help-desk for six months also shows up, he'll often get the job.

    If you're going to stick with CS and want to get a job, here are a few resume builders to keep in mind.
    - Do work study helping the sysadmins manage the networks, or at least helping inept students in lab classes.
    - Find a good internship every single summer.
    - If you program, do useful work on worthwhile open-source projects.
    - Go ahead and get a master's degree immediately upon finishing up your BS. Then you become a serious computer scholar, and not just another kid who got a CS degree for the money.

    1. Re:CS degrees are mostly useless. by Anonymous Coward · · Score: 0

      Spoken like somebody who doesn't have a CS degree. Maybe you are speaking specifically to the so-called "IT Industry". CS degrees are VERY useful in the software engineering industry.

      A good CS program doesn't teach you every programming language, application framework, or nuance of kernel programming, but it will give you a strong base in writing solid code and the ability to quickly pick up new topics.

      If some 18 year old kid can code write some java or C# code, great. I bet he can't explain how a system call works, or how virtual memory is managed, process scheduling algorithms, or how to tune TCP for long fat pipes. That's why he would never make it through my interview, and that's why I would tell him to go get the degree and come back in 4 years.

    2. Re:CS degrees are mostly useless. by glitch23 · · Score: 0

      Then you become a serious computer scholar, and not just another kid who got a CS degree for the money.

      What money?

      --
      this nation, under God, shall have a new birth of freedom. -- Lincoln, Gettysburg Address
    3. Re:CS degrees are mostly useless. by supabeast! · · Score: 1

      The money high school guidance counselors like to talk about.

  113. Dan is wrong. Those classes are key. by Paradox · · Score: 2, Insightful
    The difference between most college educations and a trade school education is that in college, you learn the basics of an entire field. English majors learn how to do a lot of things in one degree. Art majors (at good art schools) don't have specific classes like "Low Bandwidth Internet Art." Math majors don't have classes like, "The Math and Engineering of Dams."

    Likewise, Computer Science Majors don't have super-specific classes. Instead, they teach you the things that you wouldn't think to learn on your own. Fundamentals that make all your work as a compsci major easier. Having a solid understanding of algorithms, what's slow, what's complex, and why has helped me produce better work many times.

    If I were in charge of hiring and I had a developer position open, I probably wouldn't hire someone if their school curriculum consisted of the classes he listed. Tech and code come and go, but fundamentals last forever.

    Besides, if you can't learn that stuff as you go, you're not suited to a career in computer science. Only motivated and fast learners need apply!

    --
    Slashdot. It's Not For Common Sense
  114. More then you think... by mcdade · · Score: 1

    I work at a University, as a Technician, have been there for 3 yrs now but I also worked as a consultant too. I have been doing computer work for over 12 yrs (and i'm under 35) so it can mean that I'm close to burnt out.. or just in mid-career. Anyways, I hear this complaint from students every year, how is the degree going to get me a job?? The degree is not a ticket to a job, it tells employeers that you have stuck to something for a long time and have hopefully learned some fundimental basics behind computers, math and programming. You also have to have interests and work on things in your own time which will give you skills which are useful to prospective employers. You want to be a sysadmin? take some time learning unix (linux, freebsd, solaris are all free, but also try and get some AIX and IRIX time), you want to be a programmer then code some big project in your spare time, or volenteer your time to write an app for someone (or a company). Who would have thought that learning to write your own OS would be useful, but it can be, as well as give you a huge amount of respect for those that do it full time. Java/PHP/C++ might not be used in 5 or 10 yrs, but knowing how to calculate big O notation on a loop or travese tree structures will help in any language..

    University is all about learing to think, you want a job programming in PHP, get a book and go take some courses at community college. Just don't whine when you cann't find a good job in 3 yrs cause all you know is one thing.

  115. Ideal list is very close to "Information School" by Salamanders · · Score: 0

    Which makes me very psyched I choose the graduate degree I did - check out the current list of classes being taught at SIMS - that plus the ability to take classes over in the Haas Business School makes for a solid modern program, and matches most of what is on the author's list of 'good' classes.

    Fairly complete list of I-schools over at http://www.destinationkm.com/articles/default.asp? ArticleID=1015

  116. Higher Ed != Training by shaunj · · Score: 1

    In today's era of corporitization of universities and the changing role of higher education from serving only the intellectual elite to preparing people to the workforce has diluted the role of the university. In addition, the curricula haven't been able to keep up. Courses like you list would be great for an education in Computer Science. However, you have to remember that your degree program is not training you to program, it is giving you an education in programing. Training can come down the line in the form of books, seminars, and experience. By taking the courses you are they are training you thinking skills that will allow you to bring more innovative solutions to the industry and the profession.

  117. Is getting a job your only goal? by Bretski · · Score: 1

    I'm currently a system administrator. Then why in college did I take economics, psychology, music, french, math, and philosophy?

    College is to teach you how to think about the world in different ways than you may be used to. None of these courses taught me to be a good systems administrator, but they certainly opened my eyes to a lot of things, gave me different perspectives on life, and made me a more well-rounded individual.

    Enjoy your time in college - take some time. I know it's easy with today's job market to just want to get to a job as soon as possible to cash in, but this is the only time in your life when you have the chance to easily learn about all sorts of things, not just CS.

  118. Re:no by Raven15 · · Score: 4, Insightful

    I'd agree with this. If you're only looking for bare-bones programming ability, check out a vocational course. If you're looking for more advanced abilities like algorithmic analysis, the experience to see abstractions, better data structures, and more flexibility, stick with a BS degree.

    I'm certainly not saying that you can't pick those things up from a vocational course, but you'll be doing it on your own. It's always a tradeoff between time/cash and general well-roundedness. Personally, I got my BS because I wanted the flexibility.

    The main point is that vocational programs will teach you how to code. A BSCS will teach you how to learn. It doesn't take a genius to figure out which is better in a rapidly changing field.

  119. Re:The choice of degree matters less than attitude by IHateSlashDot · · Score: 1

    This all depends on the quality of your education. Take your "I can learn any programming language" for example. I had very extensive computer science education from the top school in the country in this area. I guarantee you that languages hold no mistery to me. Neither do operating systems. Nor, MT programming, etc. There are no 'intricacies' once you understand how languages work. I interview a LOT of candidates. Their major failing is lack of programming fundamentals. Here's a great example. All of the 'Java' programmers that I interview can give very basic examples of MT issues (book answers). But NONE of them actually understand it. None of them can think through how Java actually implements synchronized, wait, notify, etc. That's a very basic concept.

  120. programming in a new language by sedyn · · Score: 1

    I, like several other people have stated agree that the basics of a language can be learned in an afternoon. You probably won't be an expert at it, but you should be able to do the basics. Maybe this is what is meant by "it just makes it blatantly obvious how ignorant they are of intricacies of writing code."

    Your C# example in particular is my most recent "language in an afternoon" exercise. I needed to learn basic structure, which is similar to Java, data structures (again, similar to Java), XML parsing (very nice feature of C# by the way), and registry editing using the MS functions (All MS functions are similar to VC++ or VB [I don't really program in VB, but when learning about how MS does certain things typically the most examples are in VB]).

    It would have taken me the equivilant of an afternoon (I spread it out over a few days because I hate reading microsoft documentation)...

    But I have better argument. Say that you are a very good assembly programmer using a RISC processor containing a very small ISA. Furthermore, let us assume you know tricks from other architectures (such as register combination on the Z80s).

    Now, given this, we put you on a VAX-like processor. Where all of the instructions you are familiar with are there in some way or another. Your work may not be pretty, and reading someone else's code might be hateful, but you should be able to build most trivial* programs from scratch, just by ignoring some VAX commands.

    Of course, this won't produce the best VAX code, but it will work. And as far as I've seen in the industry "It just works", followed by, "It is easily portable" is like giving candy to children.

    In higher level langages, a similar concept would be that you didn't utilize a library as well as you could have.

    *I use the word trivial because there are obvious computer specific things that would need to be learned. Which can be true even if you are using higher-level languages on different machines. The best example I can think of is different memory access points.

    The langauges/frameworks I have the hardest time picking up in an afternoon are ones that use a lot of convention, or have very little power. And, to be quite honest, I'm not very interested in such langages anyway. (I'm currently having a bitch of a time remembering where everything is supposed to be placed using Ruby on Rails)

    The other difficulty I had was learning how to do anything non-trivial in LISP. But, that is the closest I've ever come to having to learn a brand new language from scratch. And could be the best example of validating your argument.

    --
    Am I open minded towards open source, or closed minded towards closed source?
  121. Go mainframe for employability by beldon · · Score: 1

    If I were a CS student right now, I would do everything I could-- courses, hacking through books, internships, anything-- to learn and get as much experience as I could on System 390/zSeries mainframes, and related technologies (CICS, IMS, DB2, and yes even COBOL). There is a huge mainframe brain-drain (buzzword potential here) with a large number of mainframers reaching retirement age, no-one to replace them, and no signs of mainframe usage stopping.

    It's been the best-kept secret in IT for 10 years, but the mainstream media is even taking notice as this artice demonstrates.

    Just this past May I went to the International DB2 User's Group North American (IDUG)conference in Denver, and by far the most gainfully employed independent consultants we the Mainframers. I know for a fact that where I live (Gartford, CT, USA area) there's a huge demand for mainframe personnel at pretty much every level. But even in relatively remote parts (I met a mainframer who works for a trucking company in Montana) there's plenty to do.

    Admittedly I'm taking a purely practical (not to say mercenary) view of the purpose of education but, if that's a big concern for you, I'd go for it. I'm a DB2 on Unix DBA and if I were ever to change, I know where I'd go in a heartbeat-- even though I happen to love what I'm doing.

  122. Embedded Systems? by Anonymous Coward · · Score: 0

    Two things--

    1.

    I didn't see one line that focused on embedded system or hardware-lab type courses.

    Knowing how to write code for limited resources, limited hardware capabilties, how to debug on target rather than in the comfy plus GNU tool chain, etc.. are very valuable skills.

    Knowing how to be an "API Programmer" is practically worthless unless you're very good at both programming the code and designing the code. And by that I don't mean you know how to organize classes well, I mean technical-lead skill level good.

    The embedded system development is a growing sector of the programmer job base (hand-held devices, phones, PDA, etc... It's not Windows, and it isn't Linux. It's a RTOS)

    Because the rest of the "API Programmer" courses don't help you-- those skills are already possessed by the minnion of off-shore, outsourced work force, and so those jobs are going away.

    2.

    Good advice: Backup your CS degree with a minor in business, or foriegn language, or environmental science, or political science.

    Have fun.

  123. take the courses by Anonymous Coward · · Score: 0

    Within 5 years, your work experience will mean more than the names of the courses you took.

    You're probably going to be working the rest of your life.

    If anything, take more classes outside your metier. You want to work in order to live, not the other way around.

  124. For "getting" a job, yes, useless by Anonymous Coward · · Score: 0

    Such courses are indeed useless for getting a job. But they're required for getting a degree, which is nearly required for getting job.

    The courses you'd need to get a job are practical - ut then you make yourself into a specialized tool, able to do XYZ for which you're 'certified'.

    A college education, complete with those abstract and indirect courses, makes you a versatile generalist. It equips you in tools you can use to direct the efforts of specialized "resources" such as those 'certified' to do Java programming after having studied it for "21 Days".

    Also, being a generalist makes you rounded enough to talk to management and technologists, business people and domain experts - and don't forget the off-shore contractors.

    The courses you'd need to get a job would put you on even footing with those off-shore "resources" that the company gets to throw bodies at specific problems. Assuming you're American, or Western at least, that is NOT the environment in which you want to compete - you need to bring more to the table than a whole department half-way around the world because you alone, living int he West, enjoying the Western standard of living, cost as much as that whole department "over there".

    Courses to get the job come once you have the job, ironically enough. If you want to be a step ahead of the curve, invest in them over a summer. But they're "on the job training" and "professional development" material that your employer will likely pick up to tailor you to a specific project.

    The courses you need to keep the job, to grow with the job, to assume responsibility for the job, are the courses you take now.

    Which would you say is the more worthwhile course, how internal combustion engines work (from chemistry and metallurgy on up), or how to rebuild a Briggs and Stratton lawnmower engine? If you honestly feel the latter is of more value, quit college and get thee to a trade school, as the world does need ditch-diggers more than the civil engineers who tell them what to do.

  125. It's a bit like Art by TheLink · · Score: 2, Interesting

    So what if the current job market for artists/designers requires you to know Photoshop version X, Macromedia, Pantone, etc. You should be able to learn that stuff in a timely manner. But if you can't draw and aren't creative in the first place, maybe you're in the wrong field - it might take a bit too long to teach you that eh?

    What's worth it is learning stuff that would take you a lot longer (like maybe never) if you had to do it yourself, or interesting things that you would never have thought of learning - never knew was there to be learnt in the first place. So what if it seems "Theoretical" only.

    If I were an employer, I'd ask you what projects you'd recently done for fun, not because you were told to or forced to do by your course or previous employer.

    If you call yourself an artist and the last time you drew something was 3 months ago as part of your college course, well that just isn't very convincing. In contrast, you're a pretty good artist if you're absentmindedly doodling a decent caricature of me during the interview ("right brain" just has to do something whilst "left brain" is talking to me).

    Same goes for programmers. I'd expect your college to teach you the theory stuff that will remain true for decades at least - algorithms, information theory etc. But I'd expect you to mess around with current stuff too, on your own, just for fun/interest - it doesn't have to be very much, and nowadays most stuff is just a few google searches away.

    Oh yeah, it's fine if you don't know the fancy tools/buzzwords in the industry. But if you can't do the programmer equivalent of using a "pencil" and sketch something passable, there are plenty of cheaper people in India who can and _will_.

    Saying you know UML and all the buzzwords won't be as compelling to me as you actually having written something interesting which you can describe and explain to me in the interview what bits you think are nifty.

    Anyone can say they know some buzzword and regurgitate the relevant keywords and phrases, and stick that in their CV. If people needed that, they should use google. If they only need just a bit more AI, maybe they should outsource ;).

    However, I'm not an employer at the moment, so maybe you should go with the flow, and listen to that buzzword guy ;).

    --
    1. Re:It's a bit like Art by wiremind · · Score: 2, Insightful

      First off, i totally agree with most of your post. Teaching things too hard to learn on your own, stuff you didnt know to learn, etc.

      Saying you know UML and all the buzzwords won't be as compelling to me as you actually having written something interesting which you can describe and explain to me in the interview what bits you think are nifty.

      But knowing UML means the developer can work in a team and easily speak the same language (uml _is_ a language for describing software systems ) as the rest of the people.

      He made be able to code like a god, but if he cant draw a simple diagram to express the idea in a common language all the developers will understand its useless.

      The biggest thing CS seems to be 'not' teaching is the tools needed to design software. Use Cases, Requirements analysis, UML, Unit Testing. All of those things fit into the 'tools' category, and like a good artist, you have to know your tools.

      Kyle

  126. Good foundations lead to good prorgrammers by Morganth · · Score: 1

    I have to chime in here and say that when I entered college, I too thought that the theory courses were useless. But there is lots of interesting stuff in these courses.

    I'm not a math guy, but I am a computer science guy. I don't think you necessarily have to be a math guy to be a computer science guy (it probably helps for some things, hurts for others). For example, I hate doing computation. I can't multiply a 3-digit number by a 2-digit in my number in my head like some of my colleagues without stressing myself out. Someone recently asked me the square root of 144 and I quickly responded "15" before correcting myself to "12."

    I'm also embarassed by how much of a distaste I have for computation. I reassure myself that this is okay because I really am much more creative than mathematical (not that those two are opposites, just that often they tend to be mutually exclusive).

    Computer programming can be a creative form, and in fact it usually is. (If it weren't creative, you wouldn't have so many hobbyists playing with it.) I think on a very powerful development team you should have mathy computer science guys and less-mathy, more creative ones, because they really can complement each other quite well. Us creative computer science guys often see problems in a completely different light, and come up with sometimes-strange, but usually elegant solutions. The mathy guys often see problems in terms of a powerful mathematical model, and come up with elegant solutions of their own. Together, they can really cover the bases.

    Anyway, the bottom line is, I never found computation particularly interesting.

    But I did find computers quite interesting, not surprisingly. I found that with computers problems could be understood in terms of the necessary computation, but then you could have the machine do the actual computation. In my Linear Algebra course, often for fun, rather than solving problems I used to write programs to solve problems, and then have the programs solve them. I found it much more enjoyable to write a matrix multiplication routine than to just carry out the algorithm myself, using pen and paper. (I know, I know, there's MATLAB, but coding the program actually helped me understand the algorithm better .)

    So what did Computer Science do for me? It largely hardened my conception of the world as a world of patterns and algorithms. I'm talking about courses like "Basic Algorithms", where I learned to grok and describe algorithms in plain language, as well as in formal, symbolic, mathematical logic. Almost everything can be understood as a pattern or algorithm, the trick in being a good developer is finding the most elegant pattern to point to.

    "Computer Architecture" taught me about low-level hardware, how it is designed and why it is designed the way it is designed. It also gave me an appreciation that sometimes our algorithms don't take into consideration hardware concerns, like cache hits/misses, locality, etc. So this added yet another layer for coming up with good ideas toward practical computation.

    "Computer Systems Organization" (which at my college is a fancy name for "Operating Systems") introduced me to assembly language, and let me see the intimate connection an OS often has with the underlying hardware, and how small changes of algorithmic approach can completely change performance. This course was also the most "software engineering-like" course, since we worked with large codebases, often complicated and filled with operating systems concepts and algorithms.

    I enjoyed the systems stuff so much, I took a high-level Operating Systems course, which was my best course thus far because we coded a small kernel basically from scratch in C. We had to work alone, and we had to work weekends, and my social life sucked that semester, but I think it was worth it. In my final project, in which I implemented an in-kernel debugger with C symbol support (!!!), when the damn thing fin

    1. Re:Good foundations lead to good prorgrammers by shobadobs · · Score: 1

      In my Linear Algebra course, often for fun, rather than solving problems I used to write programs to solve problems, and then have the programs solve them. I found it much more enjoyable to write a matrix multiplication routine than to just carry out the algorithm myself, using pen and paper.

      Why would you be multiplying matrices in Linear Algebra? You took the wrong Linear Algebra course.

      I'm a math guy, and I'd say that you actually are a math guy and that you just don't know it yet. You seem to have a strange impression about mathematics.

      I reassure myself that this is okay because I really am much more creative than mathematical (not that those two are opposites, just that often they tend to be mutually exclusive).

      Definitely not true! You can't be good at mathematics without being creative. Could have an uncreative person have invented Cantor's diagonal proof that there are more real numbers than integers? Creativity is tremendously important in mathematics because in order to solve or prove something, you often need to approach the problem from a bunch of crazy angles until one works. And if you're not creative enough to think of these crazy angles, you're not going to solve the problem.

      For example, I can remember people cursing about a simple calculus problem: differentiate 4sin(x)cos(x)/tan(2x). The uncreative person uses the product rule and the quotient rule to grind out the answer. The creative person stops and looks around for any trigonometric identities he can pull out of his ass. And there is one! 2sin(x)cos(x) = sin(2x), so we have d/dx[4sin(x)cos(x)/tan(2x)] = d/dx[2sin(2x)/tan(2x)] = d/dx[2cos(2x)] = -4sin(2x).

      A lot of the early math courses, like Calc I, II, multivariable calc, and differential equations, tend to teach algorithms for solving the problem. Students learn how to grind through derivatives and integrals and differential equations that fall into certain categories. This is not interesting and noncreative students can get by. But later on, you get many more open ended problems. All of my math assignments follow the pattern of "prove this." (I'm a math major.) In my linear algebra course, the idea of vectors as lists of numbers or line segments with arrows on them is something that the professor jokes about. The only numbers I have seen are 1 and 0, and they don't even refer to real numbers.

      You are so definitely a math person, enjoying things like Theory of Computation, it is funny to hear you say otherwise :-)

  127. Become Employable by nsqtr · · Score: 2
    This thread has evoked much theory on Education vs Training. As a 20-year software veteran -- with a M.S.C.S. degree -- and a former adjunct faculty member at a top 10 University, my opinion is to do whatever you can to become employable.

    Start first by attending a school with name recognition. It's just like brand recognition. If, in a job interview, you get the "... and where's that school?" question, you're already on the defensive and at a disadvantage. "Recognizabiilty" (is that a word?... I should know, my undergrad is Liberal Arts), is relative. Some small East Coast schools are well known for their academics, but are little known on the West Coast and vice versa

    Next, if you can't demonstrate productive software development skills during your interview, you're also at a disadvantage.
    What are productive skills?

    • knowledge of an advanced programming language (I'll defer the religious wars to some other thread)
    • skill in using a visual debugger (no print statements)
    • use of a profiler to understand where your code needs optimization
    • use of a version control system so you can play well with a team
    • an appreciation for an optimized build technology/system (Ant, make, JAM, etc.) so you can contribute to the neverending optimizations to make the edit-compile-debug cycle as efficient as possible -- save a Developer 30 mins a day, multiplied over 10 developers... time is money and the money adds up

    If those skills are vocational, so let it be written, so let it be done -- you need employment.

    I had this very same discussion with the Department Chair of the Electrical and Computer Engineering department of the school I mentioned, where I suggested a 1CR course on the above topics as a program requirement for the ECE major (remember... this is an Engineering department) and I got the same push-back, ".... we're hear to educate, not train..."

    I'm back in industry as an employer and I won't hire anyone with less than 5 years of experience because, in the face of economic and competitive pressure in the software industry, I cannot afford to train someone to become productive.

    Do what it takes to become employable -- courses, internship, networking.

    I hear my soapbox creaking, so I'll step off of it.
  128. Its not so much what you study as where by Anonymous Coward · · Score: 0

    When looking for candidates to interview, larger companies will weigh heavily the grades you got, and the school from which you graduated. The details of the courses you took are not that important. Having said that, what you take that is OUTSIDE of your major (a minor if you will) can definitely draw attention. A minor in business and economics, or in health related areas can be a big plus with companies in those areas.
    Once you get the interview, then other factors play a large part in your getting the offer.

  129. It depends on your future by nurb432 · · Score: 1

    It all depends on what you want to do with your life.

    There is no 'right' or 'wrong' answer here.

    Your best bet is to go shopping for the type of job you want, and see what the requirements are. Then match those with the course structure being offered.

    --
    ---- Booth was a patriot ----
  130. I did CS for awhile... by Hangin10 · · Score: 1

    It ended up getting boring, same old shit over and over again. Right now I'm thinking about going a more artistic route (writer). I may go back to technical stuff. CIS or just being a computer repair technician on the side.

    I had a friend recently who wanted to get a picture on his website, but his scanner didn't work (one of those all-in-one "dealies" from Dell). I check his XP comp... no drivers. So pop in the disk. Install. It works. Anyone else, I would have charged 50$.

  131. College is only four years by dalamar70 · · Score: 2

    It always amazes me how much stuff people think you can learn in college. Look at all those course topics listed in the opinion piece: patterns, architectures, usability, security, and more--subjects which take some serious time and experience to learn. However most students spend only four years in college, with maybe half of their classes devoted to CS. It's just not possible to get senior software engineer experience in an undergraduate program, and the colleges don't bother to pretend otherwise either. School is just meant to teach the fundamentals. You'll have the next forty years to develop "experience." :)

  132. Depends on the job you want. by Nebu · · Score: 1

    It all depends on the job you want, of course.

    "Theory of Computation" along with its sister course "Compilers" is what got me the job I'm at right now. I write compiler tools for the Eclipse framework. ToC covers the concepts of computer languages, what is a regular language, what is a context free language, and so on. It also deals with complexity, what is Turing computable and so on.

    With this knowledge in hand, you can actually determine whether a feature a client wants is even computationally possible or not. And if it is possible, you'll know what kind of tools (regular expressions? State machines? stack-based machines?) you'll need to complete the job.

    As for the others, "Numerical Analysis", "Artificial Intelligence" and "Machine Learning", I've taken them too, but they haven't shown to be directly relevant to the job I'm working at. However, I'm sure there exists jobs out there that need training in these domains.

    "Video Games" might seem like an area where AI would be needed, but I have the strong suspicion that smart behaviour of computer controlled opponents is faked a lot more often than actual AI ideas and theories are used.

  133. It helps you THINK about programming. by Anonymous Coward · · Score: 0

    Understanding how computers work, the why of it, enables you to be a better programmer. It also gets you used to the fact that languages are just tools. And usually, each course will require you to learn a new language, as different languages are good at different things.

    It makes you realize that like everything else, languages are tools. So you don't feel stuck using just java, or c, or c++ because that is what you learned for a voc degree.

    A good idea of the crossover between 'theoretical' and 'practical' is the definition of big O. A Voc school may teach you that data structure x is more efficient than y. But why? What if you write your own? Can you determine how good it may be? Knowing 'theoretical' underpinnings such as big O and how to determine it allows you get a handle on your code.

    "Ewww, this routine I wrote is O(n^4), I wonder if I can rewrite it".

    Theoretical classes don't necessarily make you a 'good programmer' by themselves. They make you good at THINKING about programs, which makes you an even better programmer.

  134. Underlying theories and concepts are important by Anonymous Coward · · Score: 0

    At the software company I work for I do a lot of the interviewing for junior programming positions. We hire a lot of recent grads coming out of university. You might be surprised to know that we often don't care about what languages the applicant knows. What we look for is solid understanding of underlying computer science principles and theories. But we also look for indication that the applicant knows how to apply these principles in everyday programming.

    If I ask someone in an interview to write some pseudocode and they can't tell me why it's efficient (both memory-wise and performance-wise) or how it could be improved, they're not getting a job. If I ask them how they would debug a particularly nasty bug and all they say is "um, printf?", they're probably not getting a job.

    I want a candidate who knows what order notation is and how to apply it to his/her code. I want a candidate that can properly analyze a bug and logically determine what is going wrong, and then fix it. I want a candidate that knows 3D math, even if they never apply it directly in their work, because it demonstrates that he/she is capable of taking on complex problems and solving them. I want a candidate that understands what I'm talking about when I ask him/her to implement an A* search. He/she may have to go look it up, but they'll be able to figure it out.

    I want a candidate that has been taught how to think.

  135. Work, Work, Work by pilot-programmer · · Score: 1

    When I was pursuing a computer science degree, I took the heaviest class load I could handle and finished as fast as I could. This left almost no time for work, and in probably any other field would have implied to HR that I was hungry to get into the workforce. I graduated in August 2001 and have yet to find a job in the computer field, but the people who took five or six years to earn their degree instead of three were able to claim experience through their internships or side jobs and get good offers.

    These days a lot of the entry level jobs I see posted require 1-3 years of experience - as I said, experience for an entry level job. So I have become a firm believer that, with the exception of an elective class that may be relevant, the CS classes you take in pursuit of your degree do not matter. As many others have said, there is a big difference between academic exercises and professional programs.

    Put in the minimum work necessary to get good grades and recommendations from your instructors. Then use all the extra time you have to find jobs or summer internships and put as much experience as you can on your resume.

  136. Why are you even in C.S.? by zach+brannigan · · Score: 1

    If my kid were entering college, I'd tell him to steer away from a CS degree. Why? Haven't you been reading? Outsourcing, that's why. Based on personal experience, more and more jobs are being sent overseas, particularly jobs that require little, if any, personal customer interaction, like programming or even radiology. I'd be telling my kid to get into jobs that require face to face interaction, like psychology, medicine (but not radiology), police work (great pension!), law. Program Management in tech fields is still good but even that is starting to lean toward outsourcing.

  137. Deja Vu by Stonan · · Score: 1

    I went to BCIT in 1990 and it sounds like the courses haven't changed, just the titles of them seem to have been visited by the 'goodspeak' guys of George Orwell's 1984.

    I gave up on day-school programs that were taught by professonal teachers that had an interest in a specific field and went to night-school (also at BCIT) and learned from people who worked in a specific field for X number of years and who knew how to teach.

    My degree took about 3 years and I had a 9-5 style job during this. I learned current used practices rather than history which is what most of your classes sound like.

    I recieved a Programming Certification from BCIT. I also recieved a Network Specialist Diploma from CDI College.

    I'm not sure if CDI is in the USA but they are throughout Canada. They don't have set time classes or lectures. You work through courses at your own pace with a combo of reading and hands on work. There are instructors around to help you and answer questions, some of these are previous students.

    This was the ONLY school where I got a job in the field I was studying BEFORE I graduated.

    --
    The GEEK shall inherit the earth...
  138. What was true then is still true today, apparently by RogueWarrior65 · · Score: 1

    I graduated from a university college of engineering back in 1988 for my bachelor's and then in 1990 for my masters. Do I use anything I learned then in my current career? Maybe 10-20%. What I discovered to my utter chagrin upon graduating is that I had been taught a lot of what was needed to get a job at a defense-oriented company. Only problem was that defense companies had just taken a major hit and weren't hiring. One of the things the school was emphasizing was Ada programming. Unfortunately, most of the companies that were hiring wanted C programmers so I was SOL. I got lucky with a defense company who offered to teach me how to program Macs which I had never learned either. Lately, I've had an intern who is also being taught stuff that isn't cutting edge. They're teaching subjects that are several years out of date and no longer marketable skills. Furthermore, my university spent far too much time on theory and not nearly enough on practical applications. Companies rarely care about the fact that you can solve obscure math problems. They want to know that you can hit the ground running. My suggestion is to cut back on the course load to bare minimum and teach yourself subjects that appear in job listings.

  139. What is college for? by wheezy · · Score: 1

    > The type of courses I'm taking are essentially useless for getting a job. [snip] Since I'm just
    > planning to get a job after I grad, am I in the right program?

    A majority of college undergraduates go into the workplace after graduating. This varies somewhat from field to field, but I think it's fairly consistent overall. So compare yourself against these people, whose fields of study range from literature to biology, from sociology to art, and so forth. Their undergraduate education doesn't necessarily have a prescribed path to a professional career. In my opinion, computer science is no different. The only thing that sets it aside in people's minds as a pragmatic and lucrative course of study, as far as I've seen, is the technology economy (though I suspect this was more true in 2000 when I graduated than it is now).

    In agreement with your hypothesis, the courses you're taking are likely useless for getting a job, in a strictly literal sense. None of the courses I took, including a fairly intensive class that called itself "software engineering," prepared me for what a career as a software engineer really entails. But I think that opting for a primarily vocational curriculum over a liberal education rooted in theory and emphasizing breadth is extremely myopic, failing to recognize the forest for the trees.

    Although you pursue a major course of study in college, the nuts and bolts of the major itself doesn't matter as much as you might think. The real purpose of college, in my opinion, is to teach you to think and to communicate. These are habits and skills that cut across all fields of study and professional careers. In my own experience, I find much of what's required of me as a software engineer has nothing to do with straight heads-down coding, and everything to do with finding creative solutions to complicated architectural problems and arguing their relative merits through clear verbal and written communication. For example, every few months at work, we'll be beating our heads against a problem like "how do we refactor this nasty, duplicated code so that we can both share it, and how can we get it done in a way that meets our schedule requirements?" Or better, "product marketing has just given us a new feature requirement that forces us to reset our assumptions and our schedule, how can we compromise?" I find myself writing essays at work to address questions like this, and I think I'd find myself frustrated and ill-equipped for the task if I hadn't taken all those "useless" classes in college.

    My advice is to convince yourself that, although some of the courses you take in college might turn out to be practical in a job, college is not for getting you a job. Take the courses that most interest you, and take them for their own intrinsic merits, not for their relative merit in helping you achieve the short term goal of finding a first job. To help kickstart your professional development, you should be looking for summer internships instead. That will help get you the skills and connections you need to find your first full-time job. And don't forget: your education doesn't end when you graduate.

  140. Re:The choice of degree matters less than attitude by CardiganKiller · · Score: 3, Insightful

    Think about it in terms of a spoken language. At the age of ten, most kids can speak well enough to express anything they want... how they feel, what they want, etc. They have complete freedom with the language; virtually no idea cannot be expressed with the vocabulary and rhetoric of a ten year old. Essentially what is being said is that a ten year old is on the same level as Hemingway or Dickens, because the kid, like these authors of immense literary genius, has the same freedom of language.

    I'm only twenty-three, and I've been writing C/C++ code since I was in seventh grade... my biggest project so far has been in a team of three people and we put out maybe five or six thousand lines of code. I haven't had the necessity to delve into some of the lesser used aspects of C++, let alone the obscure. And I wouldn't dare call myself a master, or even a pro... I still see C++ code that makes my eyes cross for a few minutes. Five or six thousand lines of code to me is a good chunk, but probably chump change to any seasoned pro. I can still do anything I damn well please with the language... like the ten year old, but beyond that scope is being able to do anything I damn well please and do it well. That brings in a whole new level of ability to evolve... some of it language specifc, some of it simply a matter of being a good coder in general.

    Code, like spoken language, is an expression of an idea. A language is created to express an idea, and in the professional world, immensely complex ideas. I learned why Python is so great in about thirty minutes and most of what Python can do in about two or three hours. But let's see how I fare against someone with a few years of experience in writing a simple program, say a client/server chat program. You'll see me stumble over my own ass more times than Jennifer Lopez.

    It's true that the actual language is generally irrelevant to the idea. That's a moot point to this whole discussion though. When I speak or write, I don't think about the language; where I'm putting the nouns, my conjunctive whats'its, and God knows what else don't matter to me, it's mostly automated. Ask someone who doesn't write as well as me to write anywhere near my level (a ten year old for example), and they'll putter around for a bit... and it'll look awkward and forced. Ask me to write on Hemingway's level and I'll crank out maybe a crappy paragraph or two per week. The more I read of Hemingway, or any other seasoned author, the more I have no clue how they do what they do. The more complex ideas become, the more intracate the language used becomes. Little previously-unrecognized nuances can throw the whole idea down the shithole. Hemingway doesn't put an incredible amount of strained and wasted effort into his rhetoric, just like I don't, just like a ten year old doesn't. Each of us can express any idea, does this make us literary equals?

    How will my code compare to one of the maintainers of the gnu C/C++ compilers.? That's the point of this whole thread right? The whole point of a CS degree in college isn't to teach you how to code, but the underlying ideas of coding in general, and hopefully the underlying ideas of that as well. A good undergraduate degree should leave you completely devirginized as to how anything digital functions, from basic circuitry to modular design. At least that's what I got out of mine. You don't get a Bachelor's or Master's degree to become a qualified expert... you do that in your job or Ph.D. program. You get the first degree(s) to become qualified to become an expert.

    Just my two unprofessional pence though.

  141. Education is not training! by david.emery · · Score: 0

    Part of the problem is that industry now considers colleges as training environments, not educational institutions. I'm with the people who say things like "do you think will be around in a couple of years?", especially for things that have become buzzwords over the last 5 years, such as XML, UML, various Java cool topics-du-jour, etc.

    I value my own education in analysis of algorithms, core principles such as concurrency (taught in a Principles of OS course), etc.

    More importantly, the mono-lingual academic environments are actively harmful. I will NOT hire anyone who is not fluent in at least two significantly different programming languages (C and C++ don't count, because it's rare that you find people who understand the differences between these two languages.)* And I'm getting very suspect of C++ and Java, since again the common practice represents these as a single approach to programing with somewhat different syntax.

    When I hire, I'm looking for someone with a good grounding of the basics across the core disciplines, who can think and learn whatever new (or old :-) specific technology I have this year to work on.

    Both Computer Science and Software Engineering education has, in general, failed both the student and the long-term employer. But it has sure populated the "slap the code together and invoke the debugger" culture that seems to predominate these days.

            dave

    * p.s. Regardless of what a Communications of the ACM article said about a year ago, "HTML" is NOT a programming language and does not count against your two language requirement.

  142. replaceable parts or not? by xazp · · Score: 1

    I've been trying to find good computer scientists which has given me some perspective on the issue. If you are lucky enough to work for a rapidly growing company (as I do), one of the dominant engineering problems is "how can we get to x customers with y servers." That is when all the O(n lg n) sorts and data structures and so forth will become very important. People who understand those things are essentially irreplaceable. On the other hand, I view people who script HTML as essentially replaceable (possibly by people off the continent). You can place yourself in the first group or the second group; but I think the first group gets the bulk of the money, management, respect and stability; whereas the other group are right now increasingly being replaced by cheaper people on other continents.

  143. clueless much by micromuncher · · Score: 1

    One problem with software developers in the work force is many of them are lacking the skill to effectively problem solve. Few know about test/debugging out of school, and fewer still know about low level debugging.

    If you're talking a compsci degree for a job, then you should try one of the many 6 month courses to be an object oriented software developer at some of the tradeschools... You'll save yourself a lot of month with, for example, your 2 week introductory course to SQL, C++, Java, and the like.

    If however you actually want to know how to BUILD a computer, and develop algorithms as opposed to finding them in books, knowing a bit about the "science"... then you should stay in compsci. Hell, take a compilers course and learn about LR and RDP parsers... write your own java...

    --
    /\/\icro/\/\uncher
  144. Secondhand Advice by ZombieRoboNinja · · Score: 0

    When I was in college, I used to tease my CS-major friends about the fact that they had a million theory classes, but never actually produced a cool working app. It pissed them off enough to explain the situation to me in simple terms:

    If you want to learn vocational stuff, go to ITT Tech. It's cheap, quick, and you learn the skills to get hired quickly for entry-level tech jobs.

    If you're paying for a pricy 4-year college, you probably don't want that kind of job. You want to understand the concepts and practices of programming, not just memorize some APIs or whatever. With this kind of education, you're not shooting for a low-level programming job; you're shooting for a more challenging career, and you should be a LOT easier to train on new technology than one of those ITT guys.

    So if you want to crank out database code in one of those thousand jobs listed at Monster.com, by all means save some cash and go to a vocational school. Heck, you might want to switch to plumbing or car repair and make better money. But if you're really interested in a full, rewarding career in computer science, you need the theoretical stuff. Any decent company should be willing to train you on their specific technology.

    Of course, all this was coming from guys already paying over 30 grand a year in tuition, so they might be a bit biased...

  145. My experience by fishexe · · Score: 1

    I was enrolled at a private technical college in the CIS program for a little over a year. Their program basically consisted of learning languages (3 semesters VB and 3 semesters C++ required to graduate) and current standards and software (A+, NET+ and Win2k administration courses also required) but with absolutely no teaching of theory. The students had no idea how to solve problems. They knew what various commands did but generally had no idea how to string them together to accomplish something unless it was markedly similar to a previous example. I ended up dropping out because I was learning nothing.

    Now the folks who got their degrees there are going to spend their entire careers being incompetent programmers. Sure, they mostly got good jobs as soon as they got out, but what they learned has ever-diminishing usefulness. VB may have been hot then, it may even still be hot now but it won't be in 10 years, everything I learned in Win2k admin has already been superseded, and at the end of the day that's these students' ENTIRE education. If they had instead been taught how to organize data structures, and how to understand what the computer is thinking, they could always study a book for 6 weeks and take a cert on whatever they needed to know for the job market. The stuff you learn in classes that show you on a fundamental level why things are being done the way they are, while not directly applicable, will last you for the rest of your life rather than just until a new set of languages becomes hot.

    --
    "I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
  146. Even so by Anonymous Coward · · Score: 0

    If your major is CS, or if it is Psychology, or if it is Physical Education, the liberal arts purpose is to produce a critical thinker, not particularly a worker.

  147. CS/SE/IT vs medical education/training by Anonymous Coward · · Score: 0

    (I haven't gone or directly known someone to go through a medical degree, but I base this from what I believe to know about it, so correct me if I'm wrong)

    I wish CS/SE/IT curiculums were more alike those being thaught to become a medical doctor, in which they ARE thaught not only how the human body works AND how to heal it, which includes technical procedures, up to date equipments, etc.

    After all, why is it that we, in the computer/information industry can't have curiculums that teach you both how computers work and how to use them efficiently ???

    I think we should take a cue and borrow a page from the medical profession's handbook.

  148. CS Courses generally worthless. by space_jake · · Score: 1

    Graduated with nothing worthwhile to put on a resume. Theory is generally worthless, scheme, prolog, and pascal too. I think that mainly an employer looking to hire an entry level grad is looking for one thing mainly, that you obtained a degree. I got my piece of paper that says I can get a job, that and a decent interview is all it took to land my first job.

  149. Useless? They're hardly useless classes! by Mouth+of+Sauron · · Score: 2, Insightful

    Just as one's choice of computer should be driven by the applications one needs to run, one's choice of education should be driven by what one intends to do with it. What do *you* intend to do with your degree? I would hardly call "theory of computation" and "numerical analysis" useless classes. This is what computer science is all about: the science of using computers to solve problems.

    There are really three fields that comprise what lay people consider computer science to be. First, there is computer science, then there is computer engineering, and then there is computer technology. (Please note that there is no particular order to this ranking.)

    The first, and most obvious difference is that computer engineers typically build hardware systems, while comptuer scientists typically build software systems. However, computer scientists are generally expected to understand the underlying hardware platform. Computer scientists typically know more about the theory of computation, the design of computer languages and operating systems. This is not to say computer engineers do not program. They do, however, most system level applications and languages are written by computer scientists. Computer engineers apply engineering principles to build computers and computer based systems. Computer engineers often design not only the hardware, but software also.

    Thirdy, there are technologists. While scientists and engineers try to solve unanswered problems, technologists typically work on problems that are better understood. For example, a computer engineer might build a new network or a computer scientist might build a new software system, a technologist might use existing computers and software to implement something new. Technologists typically gain experience with existing systems and protocols, while scientists and engineers will work designing and managing new systems. As always, the line between technologists, scientists and engineers is often blurry because the state of the art in technology moves so rapidly. Technologists often work as computer scientists building new software systems, and engineers and scientists often work as technologists implementing new systems with available technology. Many, if not most people work as technologists in some capacity. Almost all work in the computer field rests on the work of others.

    As an aside, I would say that the theory of computation is of great importance to companies such as Google and Oracle. I'm mildly flabbergasted someone would suggest numerical analysis is unimportant for computer scientists. Numerical analysis is the union of theoretical and applied mathematics toward solving problems with computers. Who could suggest that designing algorithms with a mind to how much memory they are going to use or how much time they are going to take is unimportant? Rounding errors and the stability of algorithms are both important topics within numerical analysis. Also, platform and hardware specific issues also factor into the analysis of algorithms. Maybe someone writing a script to run on a web server to talk to a database hasn't given much thought to concurrency and deadlocks, but his work rests on the work of people who have considered these problems, and more.

    I read Dan Zambonini's article. It sounds to me he is describing more of a technologist degree, than a degree in computer science. I might suggest that he also take some resumes from graduates of technical or vocational schools, as well. Here in the U.S. (I realize the author's a Brit) people tend to slight vocational education, but the curricula offered by schools such as DeVry and I.T.T. are nothing to be sneezed at. I say this as a person who attended drafting school and learned pencil on vellum and ink on mylar. And for the record, I'm a technologist, not a scientist or enginner.

    Thanks if you got this far.

  150. my two cents by myxomycetes · · Score: 1

    i've found that i rely upon my theory classes far more than i ever thought i would while i was nodding off during my advanced linear algebra or machine/assembly language classes. what i've since realized is that, in addition to teaching me how to solve matricies and read assembly commands (in case i ever need to macgyver my way out of a computer?), these classes taught me how to 'think'. rational approaches to logical processes, efficiency design and ergonomics have been far more useful to me in the workforce than c++. the modern workforce is a very strange place. personally, i've decided that the best way to be viable is to be adaptable. i currently have a corporate admin job that i love. i got my foot in the door with my computer skills, but then demonstrated that my problem solving skills were too beneficial for making administrative policy decisions to relegate to the compter support department. currently, you can make a pretty good living as a programmer, but with more and more jobs being outsourced and colleges and night schools continuing to saturate the workforce, you could quickly end up finding yourself in a green apron frothing cappuccinos. good luck.

  151. Depends on what role you want to play. by krunk7 · · Score: 1

    I've worked in the blue collar industry, mostly in petro-chem plants. I've also attended Vocational School courses in programming which interested me enough in the subject to return to a Uni as a Computer Engineer.

    As such, I'd like to make analogy that I find particularly pertinent:
    In petro-chem plants you have two roles that are played. The first is a pipe-fitter. The pipe fitter's job entails taking various pipe and putting it together according to the specifications given him.

    The specifications are usually put together by Engineers.

    Now to do his job well, the pipe-fitter may need to know things like the ability of certain materials to withstand pressure given a particular thickness of the material. Usually, to acquire this info it is looked up in charts or tables containing the info. Again, these charts and tables are usually made/published by Material's engineers.

    In this analogy, the programmer that went to vocational school would be the pipe-fitter. He is a skilled laborer, he knows his craft and how to perform a specific task and does it well.

    The Computer Science major would be the Engineer that understands the underpinings of the job. If something tricky came up like a vessel thickness that was in between those given in the charts or perhaps a estimate of wall pressure as a function of flow into the vessel was required, the pipe fitter would not know how to derive this whereas the engineer would be right at home.

    Some will like to point to unique examples of vocational programmers that are every bit as skilled at the finer points of programming as those that went to fancy colleges. The High School dropout 1337 hacker is a favorite anecdote. But like the pipe fitter that has all the skill of a Materials Engineer, this is the exception not the rule.

    In short, if you just want to code and pick up the basics programming and then get to work learning as you go and maybe on your own initiative becoming one of the top tier CS Engineers...then just go to vocational school and get to work.
    If you want to come out of school with the tools needed to address those really sticky issues that aren't covered in the books and the ability to solve them based on a deeper understanding of the principles involved...stick with College.

    When programmers graduate from a vocational school, they actually know more about churning out code and are more practiced at doing just that. College CS Eng. know more of the principles and theory, but are less practiced in actual programming. However, with practice every good CS Eng. can become a good programmer. The same cannot be said for every programmer.

    Just my 2 cents.

  152. Dan doesn't get it by daVinci1980 · · Score: 4, Insightful

    Now that we've established that Dan doesn't know where to look for jobs in the game industry, let's talk about some of the other things he doesn't seem to get.

    For one thing, the "programs" Dan is talking about are primarily things that I've discovered through years of experience (for example, real world Database Design), or things that I've picked up in a weekend over the course of my employment (for example, a second 'Big' language, a scripting/'agile' language or two, XML (and why it's actually a pretty terrible file format), and common protocols).

    But they all share one thing in common: the courses that Dan are suggesting would be great at somewhere like ITT Technical Institute, or at Devry "University," but they do not belong at an academic institution--by and large. The things he is proposing are largely vocational. They'll make for an okay programmer, and probably only a okay programmer in one field. They do not make a well-rounded computer scientist, nor do they help you out when you decide that you don't want to do database design anymore, you want to write commerical shrinkwrap software instead.

    My well-rounded CS education has allowed me to run the gamut of employment in computer science related areas. I started out in Telcom, moved to commercial shrinkwrap, wrote several video games for very large video game publishers, and now I design graphics hardware for the market leading graphics chip company.

    Which of the courses there in Dan's suggested curriculum are going to allow me to do all of that? I'll give you a hint; they aren't there.

    Without advanced mathematics (Calc II, Linear Algebra), I would've never been able to do graphics programming, which would've kept me out of the commercial shrinkwrap business (where I did image editing software). It would've further kept me from doing 3D grapihcs applications, which would've kept me out of the game industry as well as my current position. Without Advanced Data Structures, and Automata theory, I would've been unable to write code that was efficient enough for the high performance needs of the games I worked on.

    In short (too late), Dan's proposed course load (of bullshit) would lead you to be a moderately acceptable programmer. You would be able to make a living, but you would always be one of the first to be laid off. Get a real education from a real institution of higher learning, and bring me good fundamentals. Because for pretty much all junior level positions, it's on-the-job-training. Without good fundamentals you will be unable to learn quickly enough to be of any use to an employer.

    --
    I currently have no clever signature witicism to add here.
    1. Re:Dan doesn't get it by DustyShadow · · Score: 1

      I just noticed he included "touch typing" on his list...wtf?

    2. Re:Dan doesn't get it by Anonymous Coward · · Score: 0

      Thank you! Having been in similar situations as you over the years, I couldn't have said it better myself.

    3. Re:Dan doesn't get it by Anonymous Coward · · Score: 0

      I took a course in graphics programming during my cs degree. It was only an intro course, but it required lots of linear algebra and all that jazz. The topic itself did not seem particularly theoretical. I mean, like database design, it was a fairly applied engineering oriented subject. If anything, I considered it a niche subject.

      I agree that you shouldn't be expending considerable energy in a computer science program teaching things like specific programming languages, but I don't understand how people call things like graphics programming "computer science" while other topics like usability, interface design, and testing get little or no coverage in many cs programs.

      Outside of academia, there seems to be a lot of argument over what should go into a computer science program. Inside Academia, I'm betting everything is decided by accreditation committees which all aim to satisfy the same outdated national standards. In a field as young as ours, maybe accreditation and national standardization are forms of premature optimization.

      People always say that a college degree is not about a job, it's about learning to learn... that a computer science degree is supposed to give you good fundamentals. This always seems like a cop out to me. You can learn how to learn while learning intellectually deep subjects that will help you in your career. A computer science degree only gives you good fundamentals in the narrow, often inapplicable, confines of whatever people are defining as computer science these days. The good fundamentals argument is bogus because the goal, for which the fundamentals taught are good, is usually left undefined. Unless you are remaining in academia or going into research, a cs program does not give you good fundamentals with respect to any other career pursuit. A software developer with good fundamentals knows about OO design, common development modes like application/web/ntier, usability & interface design, testing, patterns, common tools of the trade like debuggers and IDEs, and they have exposure to various frameworks for things like logging and object persistence (the kind of tools you use once you get deep into languages/platforms).

  153. Such programs exist. by Inoshiro · · Score: 1

    Except they tend not to be as limited as the author wants.

    Take a gander at the U of S 4 year BSc, 4 Years Honours Software Engineering, and Honours program.

    The following courses he wants are not listed in any of these: touch typing, nutrition (although you could take it as an elective), basics of GIS (as I don't know what GIS). The software engineering option touches on pretty much everything he wants, but also does a lot more (making for a full 4-year program). The honours program is similar, except it allows you to focus more on theory of computation, which is great once you realize that practical usage stuff is just as easy to learn on your own Linux machines at home as it is in a classroom setting (if not more so!).

    I know I've learned everything about systems administration by running my own website/email system for the past 7 years. I don't think there's a course that says to take Postfix, DSPAM, Procmail, Cyrus IMAPD, Linux software RAID, MySQL, and combine them all to make a nice email system. I'm taking the honours program (non-SE), though, which means I'm not going to learn his touch-typing classes and basics of nutrition :p

    A science degree is about science -- not programming, even if it's in computers. I'd no sooner expect a CS degree to be perfect for programming that I'd expect a chemistry degree to be good for making a house that lasts a long time, or a physics degree making you good at making fast cars. Science is about research and investigation!

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
  154. Not useful, well unless you plan to keep the job. by gru3hunt3r · · Score: 1

    The topics you are taking aren't useful to getting a job, nobody is going to ask you questions from those classes in an interview.

    The subject content is invaluable in critical thinking and problem solving that is often sorely lacking among many vocational school graduates. In fact vocational school people don't really have the background to understand why things work the way they do - certain problems will always allude them.

    So while they won't help you at all in getting the job - they will help you keep (and succeed) at the job.

  155. Cover All Of Your Bases by Halvy · · Score: 0

    And don't forget to include working for yourself, pt at least.

    The Linux field is wide open and ready to explode.

    Dont' let any one tell you otherwise, when we all know everyone is fed up with m$.

    There is a shortage of good linux guys out there now!

    You'd be suprised at how many business will accept a freelance person like yourself when you show up at their door.

    Most business can not outsource work like you can do-- to some 'hobby-ka-bobby' over in India.

    School is what YOU make of it, no matter where you go..or even if you dont' and just learn on your own, or some tec school.

    That will all depend, or should depend on what your short term goal is.

    But since 'goals' change, I would just have the attitude that I am going to go to school for the rest of my life-- at differnt periods & frequencies, in order to 'brush' up or whatever.

    When i started college..many mooons ago, i was told that if i was interested in writing software i should take CS with the 'Business' option..and if i wanted to get into creating hardware that i should take the 'science' option.

    I don't know if they still split CS majors today... but something to think about.

    :)

    --
    I will gladly loose all of life's battles.. in order to win the war..
  156. Major in Computer Science and don't look back. by brosenth · · Score: 2, Insightful
    You can be a good programmer without majoring in computer science, but becoming a good programmer requires a tremendous amount of time, more than is probably obvious to someone just starting out. Majoring in computer science is a good excuse to spend time in college programming in a wide variety of settings.

    Here's why. To be a senior-level programmer anywhere, you have to understand the following:

    1. "Computer Science fundamentals":
      1. algorithms (so your software can perform)
      2. database theory (so you can design well and optimize your software)
      3. More general modeling theory (so you can write specifications and participate in large-scale projects)
      4. Language theory (so you can write concise, intuitive software)
      5. Operating System theory (something difficult, but possible, to become exposed to outside of a formal curriculum)

      Honestly, most of the time I've wasted as a programmer has been due to not being previously exposed to the more "formal and academic" concepts that underlie what I do.

    2. Good software development methodologies (regression testing, version control like CVS and SVN)
    3. Experience with a wide variety of different languages

      A few reasons here:
      1. Much of "enterprise software development" involves integrating systems that are written in different languages
      2. good software developers can embrace and extend what's out there, and that often involves taking components written in one language and using them in another
      3. you want to be able to choose the best platform for a given project, rather than being limited by only being able to use certain languages]
    4. Experience with a wide variety of different platforms

      You should have a good sense of what sorts of platforms are out there and what it takes to launch a product on different ones.
    5. Understanding different paradigms (ASP / client-server / pure client, microsoft / open-source)
    I would major in computer science, try to do as many projects as you can, build (and finish) as many products as you can, get exposure to web-programming, do a lot of database programming, if you can find an internship or a job doing general ledger programming, I would check that out.

    Just, don't think you can become a successful programmer without a lot of work. It's a long, intense process to be able to program well, but well worth the effort.
  157. Touch Typing?!? by mkcmkc · · Score: 3, Funny
    Parent is right on, and Zambonini is all wet. I was going to joke that he should put "touch typing" in his list of courses that degree programs should require, but incredibly, it's already there.

    CS is your time to master theory and basics--the entire rest of your life will be spent learning languages X, Y, and Z, and the latest trends...

    Mike

    --
    "Not an actor, but he plays one on TV."
  158. CS not even necessary... by dusik · · Score: 1

    ...unless by CS you mean Counter-Strike :)

    Seriously, though. I was planning on being a programmer. So I double majored in math and physics, while doing an internship writing code at a company. Now, indeed, I code for a living.

    I don't know why people assume you need a CS degree for be a programmer. CS = Computer Science != programming. A computer scientist is like an engineer, a programmer is like a mechanic. Of course, it's advantageous to be both.

    IMO, programming is best learned on your own, so it makes sense to get a degree in what you plan on applying programming to.

    Of course, I am referring to programming only. For sysadmins, etc. it may make more sense to major in CS.

  159. Do not forget why you are there in the first place by magnumquest · · Score: 1

    There are literally a million ways to earn money. Not only vocational courses, but trades like Welding and Automotive Repair mechanics can have you earning an easy 35,000-45,000 a year. If you work hard in it, you might as well open your own specialised trades business after a couple years experience and earn as much as doctors earn. The reason I believe one should choose to go to university is to be able to invent and innovate. For that purpose you need the groundworks of knowledge in any subject that you choose. Besides the application of someone else's theories, you need to have enough knowledge to make your own. JAVA for example is 'just' someone's invention, which would be taken over by perhaps another invention a few years later. So is, WINDOWS, .NET Framework etc. So if you knew how these technologies were created instead of how to use them, I think, you'd be much better off int he future.

  160. Higher Education (Computer Science) by srussell2 · · Score: 2, Insightful

    It is best to complete the computer science curriculum. The courses you have listed seem to be relevant and they should teach you about some of the theory behind current computers. Unfortunately, I was not at a college that stressed the theory. I got out and I wondered why are companies not hiring me? Eventually, I went to a reputable college and learned the hard way the I did not know the topics/materials that I need to, in order to be productive.

    Learn these topics well. Although they may not seem relevant now, they are some of the most relevant ones, if you want a rewarding career with computers. If you opt to take only the 'practical' courses, you can get by, but you will always be relegated to menial tasks. And, if you have any drive at all, wonder why you were not chosen for the more important assignments. You will think you can do them, and it is possible, but you will not be able to do them as well or in a timely manner as someone who has had, and understands, the basic theory behind it.

    Example: I used to think javascript was difficult. I would try various things and sometimes it would work and sometimes it would not. Or it would only work in certain cases. At the time I did not know why. Now I realize that origionally I did not have the foundation I needed to understand what the books and examples were trying to tell me. I could not see what was wrong until I went to a 'good' university that had the knowledge to explain the theory and semantics in a way that I could relate too.

  161. BA or BS? by Durinthal · · Score: 1

    I've ended up going to a small liberal arts college, where I'm likely to end up with a BA in CS with a minor in music (a second BA in music is possible but not likely). Is there anything that makes a Bachelor of Arts more or less appealing than a Bachelor of Sciences to an employer?

  162. languages, flexibility, education vs training by Anonymous Coward · · Score: 0

    I liken the idea of learning a computer language, or rather,learning HOW to learn a computer language, to the idea of learning human languages.

    As an undergraduate, I studied international business and through luck and interest, was able to study both international business and language translation at the international interpreters school in Belgium. At this same time (mid to late 90's), CS majors, MIS majors, and pretty much anyone with any technical background were getting very very good job offers right out of school (this was the late 90's), so I decided that it would be a good idea to take a few c++ classes. After c++, I taught myself databases, java, some scripting and some basic sysadmin type stuff.

    While I was in Belgium, I studed translation/interpretation of French, Dutch, Japanese, and English. Prior to studying in Belgium, I only spoke French and English. At the interpreter's school, I learned many languages in a very short time. People ask, "How did you do that". My answer is always the same: "Learning a second language is hard, learning a 3rd, 4th, 5th, etc is much easier, because your brain understands some of the basic generalities of language after the second one.

    Ditto for computer languages: Once I had learned c++, learning c, java, visual basic, etc was much easier because I understood on a basic level the "linguistic transition". Just like in human lanaguages, you migh know what you want to say, you just have to learn to express it in your target language. In programming, you may know exactly WHAT you want to do, you just have to learn how to "speak the language." Of course, the more you do it, the better you get at it and the more versitile you become with each language.

    Speaking to another point: Educated people have a much higher value than trained people, but a combination of training and education makes a person extremely valuable. My undergraduate major was in International Business. I also studied language translation at a world reknown translation school. In addition, through a little bit of training, and a lot of independent projects, I am also very technically savvy. My graduate degree is in International relations, and I have a graduate certificate in Engineering Management(equivalent to the first year of an MS in Engineering plus some project management).

    Currently I am employed in the technology side of the petroleum industry. I will be the first to tell you that my value is recognized. My main job function is project architecture and project management. No, I dont code on a daily basis, but I constantly look at code to explain to others how it works. No, I dont translate on a daily basis, but with our bigger clients (Shell, Exxon Mobil, BP, etc) it is a real asset to be able to speak to a French project engineer in FRENCH. It is an asset to explain to the Japanese CIO the problems with our software localization effort. It is an asset to be able to take a business trip to Holland and not have to be babysat by my host. No, I am not involved in the politics of the energy industry, but having a solid background in political science and economics helps me to understand why certain political events have an impact on the price of gas.

    Did I imagine that I would end up doing something like this? Absolutely not. When I was finishing college, my ultimate goal was to get a mundane type of job as something like a business analyst and be able to make enough money to not depend on my parents.

    My point is this: training enables you to be able to do a job. Education allows you to have a career possibly outside of coding. Ultimately, it is going to be the combination of education and training, plus your own flexibility and self motivation that determines how successful you are. The more value you can add to an organization, the more valuable you will become. Valuable people can command a higher salary

  163. Dan Zambonini's opinions are the worst trash! by Anonymous Coward · · Score: 1, Insightful

    Dan Zambonini's opinions are worth even less than what you paid for them. They are the worst sort of trash.

    On the surface, they give the appearance of having value. These are certainly all skills of immediate value in the business world. Useful resume filler for getting past HR droids.

    But they are ALL TRANSITORY! In a matter of years they will become worthless.

    The point to obtaining a higher educational degree is not to learn these skills. It is to learn how to learn. To be flexible so that, when something new comes along, you can pick it up in the blink of an eye.

    Point of Fact: Five years after getting my B.S. degree in CS, I took a job writing C++ code. I didn't know C++. I had never worked in the language before. Yet I mastered C++ in a matter of days. Why? Because I knew C inside and out. I knew exactly how the code was being translated to assembly, and how it was being executed. I knew enough to write my own compiler. (Which I've since done...) I knew OO inside and out. I had worked in other, more esoteric languages [smalltalk, objectiveC, etc]. I had written software implementing Abstract Data Types in other languages. I was well versed on the concepts behind C++. Learning the language was a simple matter of reading The Annotated C++ Reference Manual to pick up the syntax and its nuances. In a matter of days I was outperforming all their other coders.

    I went on to write the bulk of the software on that project. Team of 10 people, and I wrote more than half the code. What does that tell you about vocational training vs a solid education?

    People with vocational training are useless. They make the absolute dumbest mistakes. Like being unable to figure out why this returns 0 (for all a<b):

    double f (unsigned int a, unsigned int b) { return a / b; }

    Hell, I've had people try to pass off: double * f() { double a; return &a; }

    Or be unable to grasp the difference between O(NlogN) vs O(N^2) algorithms.

    Classes like neural networks, computer vision, artificial intelligence, etc are NOT SUPPOSED to be teaching you real-world skills. They are supposed to be EXERCISING those real-world skills.

    Nobody was born knowing how to walk. Or how to ride a bike. We all learned. And so it goes with coding. You're not born a great coder. You become one by writing a lot of code. By making a lot of mistakes. And by learning from those mistakes.

    My most educational class, as an undergrad, was computer graphics. Not a whole lot of practical real-world knowledge there. But we had four large programming assignments. The last one built upon the 3rd. Taught me more about writing extensible code than anything else.

    Look at Dan's list! "Real world Databases". WTF? I studied Algebraic Structures. Advanced Math: Algebra applied to set theory. Rings. Groups. That sort of stuff.

    Again, no practical real-world knowledge. But when I came across databases in the real world, I was already well versed in applying algebra to sets of data. Algorithm complexity (indexing) I knew inside and out from my programming theory classes.

    Learning SQL is the sort of thing that I picked up overnight. Literally, take the book home, read it, learn the syntax, and I was there.

    Instead of worrying about what this uneducated ignorant loser thinks, try interning. Get a summer job. Take a semester off and work. That real world experience, coupled with a solid education, is worth far more than the computer equivalent of "I am speaking 3 languages. English the best."

    Or to put it another way: 10 years ago, Dan's predecessor would have been telling you to learn "Basic". How would you fare today had you followed yesterday's "vocational training" suggestions?

  164. Re:The choice of degree matters less than attitude by Dachannien · · Score: 4, Insightful

    Have you programmed in ML? Lisp? What about Prolog?

    Maybe you haven't programmed in some or any of these languages. If you have, though, you'll probably know what I mean when I say that, compared to C/C++, none of them are exactly a walk in the park. They require you to think differently about not just syntax, but the entire form of your programs.

    What if your only programming experience was ten years of (not Visual) Basic, and suddenly you were faced with learning Java? The concepts of object-oriented programming would be completely foreign to a person coming from a language that doesn't even have user-definable data structures.

    When I learned PHP (no, I'm no master), I was able to draw on my knowledge of C/C++, which is syntactically practically identical but more importantly the same paradigm. Learning how to tinker around in it was a snap. On the other hand, learning a language like Lisp, coming from C/C++, was much more of a challenge - yes, the syntax was different, but I had the whole ample use of parentheses thing down quickly. It was the fact that Lisp flows as a functional language but stutters as an imperative one that gave me fits. You'll never be a good Lisp programmer until you resign yourself to the fact that when you try to fit Lisp in to the C++ mold, you get crappy Lisp programs.

    You're probably thinking, why the hell do I want to learn how to program in Lisp? I'll probably never use it. True, in a production environment, Lisp isn't anywhere near the most commonly used language. But college is about teaching you how to think more so than what to think. By learning Lisp while you're in college (or another language that doesn't fit into the C/C++/Java/PHP/etc. motif), you give yourself another way to think about how to do things. When you finish your degree and go into job training wherever you end up, that will help you just as much as the program design courses that give you the depth you need to get a leg up in the job market.

  165. No. by Anonymous Coward · · Score: 0

    Get the hell out and make way for an Indian or Chinese student to wants to learn.

  166. Why Computer Science, if not for the science ? by compling · · Score: 1

    If what you want is a programming/software engineering type of job espoused in the article linked, what are you doing in Computer Science ? The modules that you fear will be useless in getting a job are perfectly useful in getting research related jobs - but I don't think this is what you want.

  167. its more of an attitude problem by Anonymous Coward · · Score: 0

    I have seen programs from monay good bad and normal or average schools. i have notice one thing thats wrong. That is attitude of studentts and professors
    Professors never try make sure that student have some interesting questions once leave the class. quest of answers to those questions leads to better CSists. And i hate those math professors(who land up in CS) who dont understand that every student is not going to be a scientist. so please a little less theory. So are the students. I HATE students who actaully believe that after doing home works and cramming for midterms(GPA 3.99 shove it some where) they will be asked by Gate/Linus/Stallman to work for them.
    So its more of an attitude problem. And Professors plz pick real time projects like linux/eclipse/apache etc and work with the students if u dont have the balls to touch some thing big get ur PhD cancelled and start selling cars. i know u r smart talkers

  168. Learn Hindi by slickwillie · · Score: 1

    and prepare to move to India if you want a job.

    1. Re:Learn Hindi by Anonymous Coward · · Score: 0

      Most of the people in the S/W industry in India speak only English and the 3 main centers where S/W Industries are located in India do not speak Hindi and speak their own local language. So you will pretty much end up wasting time learning Hindi.I would prefer to learn a new skill instead.

  169. nay-sayers by Anonymous Coward · · Score: 0

    anyone who tells you that a cs, ee,or ce degree is a waste of time -- most likely doesn't have one. learn the fundamentals and the rest is cake.

  170. Analogy by Quixote · · Score: 1
    Here's an analogy for you.

    Let's say you want to work at a delivery company, stacking heavy boxes. Now, how will you train for such a job?
    By going to the gym and doing weights.
    But, you say: I will be lifting boxes, not dumbbells!

    See the point? A computer science degree teaches you the foundations and gives you the means to build upon those foundations.

    Suppose you are a C/C++ programmer. And overnight Java becomes the language dujour. If you are strong in your foundations (data structures, analysis of algorithms, structured programming, good design, etc.) then making the leap to Java will be almost trivial. On the other hand, if you learnt programming "on the street" (so to say), learning a new language and efficiently using it becomes more difficult (it can be done, but may not be very efficient).

    I used to TA some of these basic courses. So many times I was asked, "what's the point of this bloody big-Oh analysis? All this math is killing me". And then these same people would come back all confused when their bubblesort (the easiest to implement) failed miserably when given 1000000 numbers to sort.

  171. Re:no by Anonymous Coward · · Score: 0

    and you would be working where? the Bill CLinton Foundation? Oops. Impossible. While it sounds like an idea that Bill might come up with, I doubt that he would hire somebody as stupid as you. You must work in the white house. Yeah, that would explain a lot.

  172. Take the theory, but don't pass on the practical. by mpechner · · Score: 4, Insightful

    I've been out there with a CS degree for over 20 years. Yes, the theoretical classes are very important. A good mathmatical CS backgroud will give you a leg up in the long run. As others have said, it is important to learn the theory and why different approaches, OS's and languages exist. It will help you dig into the practical topics as programming languages, platforms and operating systems change. It will let you keep up with different philosophies of how to design a system, and maybe you'll understand why the flavor of the month is popular. Hopefully you'll learn to not be dogmatic.

    Being dogmatic and a lack of flexibility has you using the equivilent of a hammer for everything. Very soon that will cause a career change and not by choice. Employers want people with a full tool belt. People who know how their tools work and why they use them. They also like to see that you change your tools as things evolve.

    Where it is offered, takes classes where design or working within a team is required. It will give you an idea of programming within a team. People skills are important in the real world.

    Do not pass on internships, involvement in open source or school projects. Anywhere there is a team of people writting code that will be used in a production environment by more than a few people. This will give you the leg up when you graduate. To say that you worked on code that is in production somewhere. Even if you can show you fixed a bug a month in firefox or apache. It shows you wrote peer reviewed code. You have code in production.

    Use the internships to find out what you want to do. Try to get an internship with different companies each summer. Different evironments. Different types of projects. Different industries. Do not choose based on the cool company. Some cool startup doing something new might be cooler than google or microsoft.

  173. Research Skills by squirrl811 · · Score: 1

    The courses in college are mostly background information on how everything works, and the real tasks of programming are only lightly touched upon. You have to take the concepts that are taught in class and make them reality through your own coding projects (assuming your professors don't assign such projects.)

    One of the skills I believe is most useful in the field, yet the most overlooked in academics is the ability to do research and expand your knowledge beyond what was covered in class.

    For example, in my college we did boring code exactly as the professors taught. It felt more like learning through repetition than anything else. Then we got a brand new professor who did the unthinkable and assigned a project without concrete guidelines. He simply gave us the requirements he wanted our code to achieve and the language of choice and told us to come up with a solution. Most of the students were suddenly lost. They didn't know where to go to complete the project. All they knew was from the book and lecture. They claimed the assignment was unfair and eventually the professor gave a couple of examples as to what he was looking for to help get them started. In the end, nearly all 60 of the students wrote code nearly identical to the example that was given. It was such a sad sight.

    Students need to learn to research and think independantly. In the working world, your boss may likely know little to no programming. He simple knows what information he has available for you and what he wants in the end. You, as a programmer, need to be able to fill in the blanks in the middle. If you didn't learn it is class (and likely you didn't), you need to be able to find the information you need.

    So yes, your colleges courses provide a framework, but to get a job in programming you need to be willing and able to expand your skillset well beyond the minor pieces of code that your instructors go through.

  174. It's because CS is harder by James_Aguilar · · Score: 1

    It's not really just because of the ingrained expectation of a CS degree that employers prefer it. There is also an element of the CS degree simply being harder and more rigorous than an MIS or CIS degree. The more capable job candidates will probably have preferred to challenge themselves in CS rather than just sailing through MIS.

    The above is definitely not a politically correct position, but it is also definitely true, the same way the average C++ programmer is a better programmer than the average Java programmer and the way the average LISP programmer is better than both of the others. (Note: I do not program in LISP because I fear parens. =P )

    1. Re:It's because CS is harder by superpulpsicle · · Score: 1

      CS majors do program better, no doubt. But MIS majors are more "willing" to fit in anywhere. That's a huge asset in any company. Alot of CS majors are not willing to take a non-programming position since they fear their skills would be lost. I am just being honest from the different companies I have worked at.

    2. Re:It's because CS is harder by James_Aguilar · · Score: 2, Interesting

      I would definitely agree with you on the above. I, as a CS major, am not interested in doing anything except programming (In the immediate term, that is -- I cannot speak to the future.). Most of my MIS friends go into it looking for a chance to jump into management at a company after a few years at the bottom rung of the ladder.

  175. Theory of Computation by weg · · Score: 1

    Just one thing: Any programmer who wants to make you believe that problems like "shortest path" or machine learning algorithms aren't important in a "real programmer's life" has done nothing but web-pages in his whole life. The point is that these problems occur over and over again, but you have to recognize them.

    --
    Georg
  176. CS or Programming? by sholden · · Score: 1

    If you are doing a CS degree why would you expect the courses to relate to programming as done in industry???

    Surely you should expect a bunch of theory, a bunch of math, and maybe to use a computer in second year...

  177. Foundation and Empire by cmjensen · · Score: 1

    As others have pointed out, the goal of your education is to give you the theoretical underpinnings of a wide range of topics in CS. Once you have that, learning a particular job skill is trivial.

    But I'll go one step further and say Dan Zamboni is an idiot. He is unable to recognize the difference between an entirely theoretical pursuit and one that gives you an immediate job skill.

    He says "Embedded Systems" has little relevance to the job market. Huh? That's like a quarter of all jobs! Which means Zamboni is giving job advice without actually knowing much about the job market.

    He says "compiler engineering" is similarly a theoretical pursuit. But that gives you fundamental background on parsing, state machine, regexps that are terribly useful in real life. It also makes you deal with some of the most complex data structures you'll see during school, which in my mind counts as good practice for real life.

    Meanwhile he thinks you should waste your education time on stuff that might not even exist (or be recognizable) in 10 years like XML and UML! He wants you to know all about Databases and SQL, but there are fewer SQL jobs than Embedded Systems jobs! Argh!

    I will say that I agree that AI, Machine Learning, and Bayesian stuff are all pretty worthless -- for example, AI has been a solution in search of a problem for about 25 years now. If they appeal to you, go for it and enjoy yourself! But don't think it's useful.

  178. Consider the SOURCE by MacGabhain · · Score: 1
    This article was written by a hiring manager. He has no reason to have your long-term interests in mind. What he wants is highly trained drones that can be replaced or outsourced by other highly trained drones when the fads his company follows have changed. He wants people he can dispose of rather than train on his company's systems.

    Getting an education is about preparing you for life, either in general or in a particular field. It is not about preparing you to service the temporary interests of the current state of a rapidly changing field. A vocational program teaches you how to work, right now, and does a pretty poor job of that as well (no amount of group class projects prepares you for a real job). A Computer Science program -- one that is true to its name -- teaches you a field, and in doing so gives you the knowledge you need to learn anything you may need to learn in that field.

    So, I suppose if what you truly are looking for is a job immediately after graduating, maybe you should listen to a hiring manager's wish-list. If, however, you would like to also have a job in 3-4 years then you should keep in mind that if Mr. Zambonini (and his counterparts all over the world) are being at all realistic, they don't expect to be paying you in 3 to 4 years. Either you'll be a Computer Scientist who's outgrown their company or you'll be a formerly skilled programmer who was more easily replaced than trained when the next big thing hit Business Week.

  179. Re:The choice of degree matters less than attitude by DarkOx · · Score: 1

    Exactly, I am a young guy as well (22) and I am finishing up my CIS/CS degree now. Haveing interned durring my entire college career I can tell alread the education has made a huge difference. I got into computers because I do have an aptitude for it and I think I instinctively understood alot of what was going on. None the less doing something new was always just that. It required lots of trial and error and was scary at first. It was time consuming and difficult as well because I had to fingure out what worked best each time. With my CIS/CS training I can now approach 'new' things with an understanding of some universal math and principles that lay under all computing machines and have the prespective of a solid set of common software design strategies which also change more often in name then in function. Haveing that fram of reference enables me to master new skills with lots less fear and stumbling around trying to figure out what works best. Generally its possible to move from the generic academic understanding to the particulars of the present situation in a painless way. Much less painless then haveing to cope with seamingly different rules everytime I got infront of a new language or hardware.

    --
    Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
  180. Re:The choice of degree matters less than attitude by Anonymous Coward · · Score: 0

    To add another point, which may or may not be right:

    Almost no programming language out there is designed to only be programmable by those who were taught specificly how to program in that language. (well, none of the good languages anyway)

    They were designed to be used by programmers, and learning how to be a programmer, and learning how to program in C++, are two totally different things in life.

    Thats why its called CS and not "Programming in C++"

  181. Shelf life of your education by Anonymous Coward · · Score: 0

    IAAUCSP (I am a university CS professor). What you learn during your college education is not just supposed to get you your first job right after school, it's also meant to help you get your next few jobs (and you will have many more than one, believe me). Knowing Java, XML, MFC, SQL, even VB, and all might be useful for your next job, but 10, 15 or 20 years from now, nobody will care about that stuff. You need to learn basic methods that have a long shelf life and that are the foundations of CS. This includes things like compilers, machine learning, functional languages, math, statistics, etc. You need to LEARN HOW TO LEARN, so that when the next IT fad comes up, you can catch up quickly.
    In fact, in my opinion, CS majors don't do enough math (at least not enough continuous math).

    30 years from now, you will be about 50, with kids in college and a mortgage to pay. The big things will be autonomous robots, self-learning computers, quantum optimization, bio-engineered circuits, etc....

    If I were you, I would take as many math, physics , statistics, machine learning, and robotics class as I could.

  182. There is a difference by kwilliamyoungatl · · Score: 1

    Between learning 'a/some programing language(s) and learning 'to program'.

      I can learn a new programming language and get 'up to speed' in a matter of weeks. I took a first programming class 10 years ago and I'm still learning to program.

  183. Way to describe Devry by teknomage1 · · Score: 1

    Congratulations Blogger Dan Z. You've just described a degree from Devry or Intellitech or Technical University. All of which turn out "Computer People" tht are easily replaced by outsourcing. The point of computer Sience is to make you underastand what you're dong when you declare classes or mess with bits. And another thing - XML isn't that hard. You certainly don't need a 16 week course to get the drift. Anyway most College students are expected to lean things on their own time as well. Nothing's stopping you from learning perl or python while you're studying algorithms in scheme or working through matrix maths.

    --
    Stop intellectual property from infringing on me
  184. Re:no by antarctican · · Score: 4, Insightful

    you are not. Many CS graduates these days are jobless because of programs like this. Switch to a vocational program while you still have a change.

    This post should win dumbest troll of the year.

    I used to have this debate back when I was in school with people. In the school I began my degree there were two programs, a computer science program and a more "practical" computer information systems.

    In Computer Science we learned the theoretical background, we learned how and why computers work as they do, and more importantly - how to learn. Language and skills were a way to re-enforce this theoretical base.

    The CIS program learned the skills of the day. You know what one of their courses were? "Programming in Visual Basic" How many of those people taking that course 7 years ago do you think are still finding gainful employment programming in VB? And how many had to go back for skills upgrading?

    I remember one summer on coop, two CS students, one CIS student. It was a help desk job, nothing exciting. But a call came in to help a user with Word. The response from the CIS person, "We didn't learn Word, we learned Word Perfect." So? If you had the theoretical background you could figure it out, find the relivant connections between the two.

    As opposed to myself, my primary job these days is programming in perl. Do you think I was ever "taught" perl? No, we did C, C++, Java, etc. But I had the background to learn it on my own, because I learned how to learn, I learned how languages worked through courses such as "compiler design."

    So are you in the wrong program? Depends, do you want a long term job or have to retrain every few years? People like Dan Zambonini are absolutely wrong, things like "learning XML" can be done from a book if you know the relivent background about languages and such schemas. I know that's how I learned (alright, working for the 'father of XML' for a few years certainly didn't hurt...).

  185. Good old saying by ocie · · Score: 1

    The man why knows HOW will always ahve a job.
    The man who knows WHY will always be his boss.

    Computer jobs come in all flavors, but I think the broader your experience in school the more choice you have once you get out. Besides, even in an academic/theory seting, there should be some programming projects.

    --
    JET Program: see Japan, meet intere
    1. Re:Good old saying by ocie · · Score: 1

      should have said "have a job".

      --
      JET Program: see Japan, meet intere
  186. Core curriculum by Anonymous Coward · · Score: 0
    I think the idea behind CS curriculums is to teach people to think about CS, algorithm design, etc. You forget 90% of what you learn, so the theory is that if you teach people advanced AI, they'll be able to do basic AI a few years later. If you teach advanced 3d, they won't have a problem when 3d UIs become common.

    It is harder to get the first job coming out, but the first job will teach you databases, XML, and all those goodies. So will summer internships, only in both cases, they'll be paying you instead of you paying them. After 3 years in industry, your at the same level at the vocational technologies as the guys who learned these in college, but you also have the theoretical knowledge, which gives you an edge.

    Thing is they want the skills they teach at university to be useful 30 years down the line. Had a curriculum 10 years ago had a list of courses to the effect of:
    • CGI programming
    • The Windows 3.1 API
    • COM programming
    • SGML and HTML 1.0
    • Writing DOS device drives and TSR modules
    • Year 2000 engineering
    • Writing database frontends in VisualBasic
    • ...

    The graduates would have had a much easier time finding jobs... Nevertheless, I would argue their careers would have been somewhat stunted in the long term.

    I do happen to use linear algebra a lot when programming, mostly when I need to add a little bit of basic 3D. I'm really glad I learned it. I don't use AI, but I think eventually, especially in UI design, knowning a little bit about machine learning may be very useful (UIs are increasingly trying to figure out patterns in what the user does --- one example: I saw some guy working on a module that would guess what program the user was trying to start from the mouse motion, and if it had pretty good certainy you were going to click on a particular icon, it would begin preloading the relevant parts of the program from the hard drive). I don't know if quantum computing will happen, but if it does, having some knowledge of it can go a long ways...
  187. How many times... by Hosiah · · Score: 1

    Do we have to answer this same question over and over on Slashdot? Yes, as far as technical vocations are concerned, college is as dead as Victrolas, hula hoops, and wolly mammoths. Can we include that in the site status bar for next week's question?

  188. Re:The choice of degree matters less than attitude by corngrower · · Score: 1

    That said, I've run into "architects" with phd's or 25 years experience who couldn't figure out how to write a program that transferred data from an XML file to a database (or visa versa.)

  189. Useless classes are called money soakers by Anonymous Coward · · Score: 0
    The first 4 courses are required in my CS program. I had thought nothing of it until I read an opinion piece by Dan Zambonini, who stresses the type of courses I'm taking are, essentially, useless for getting a job.

    A lot of universities pad their tuitions via a type of class known as "Money Soakers". I.E. classes that are otherwise useless but are required in order for you to graduate.

  190. Outside influences by broxys · · Score: 0

    I think that the CS program I'm in is a great foundation, as I have the freedom to take some interesting CS electives. Still, though, I think the best way to prepare yourself for after school is to augment your regular education with research positions, internships, or open source projects. This helps to make the course material fuller and maybe even applicable.

  191. Depends on the kind of job by Spazmania · · Score: 1

    Dan Zambonini [...] stresses the type of courses I'm taking are, essentially, useless for getting a job. He lists several CS courses useful for a job. Is he right?

    That depends on the kind of job you want to get.

    If you intend to become Dilbert, he's absolutely right. Go get your degree from ITT Tech, pick up half a dozen certs like an MCSE, and go get a job with the Pointy Haired Boss.

    On the other hand, if you want a job where people respect you and value your contribution, where your boss is glad to see you in the morning, Zambonini couldn't be more wrong.

    In the good jobs, you're not expected to know far more technology that you could reasonably be trained in and you're expected to rapidly learn new ones as they come up. That requires a solid grounding in computing theory. You can learn XML; you need to have a solid grounding in database theory so you can rapidly understand XML's strengths and weaknesses.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  192. Re:The choice of degree matters less than attitude by Mad+Marlin · · Score: 1

    You are right, one cannot learn C# in an afternoon: it took me about two weeks. Of course, I had been programming in C for about 8 years before then, and both C++ and Python for about 4 years, so it was easy. C# is very much just a more "C++"-ish Python or Java, so it didn't exactly take very long to learn the new syntax for the old ideas. It is like already knowing Proper British English, and trying to get along in Mississippi: you will need some time to acclimate yourself, but it isn't like you don't know how to even speak.

    That is the point though, really: C# is all old ideas, as is Windows XP, and about 95% of basically any other piece of software that you will see in a corporate environment. This is hardly true to only software, though: how many new ideas do you think goes into building a new highway overpass? Usually not that much at all, and a fresh civil engineer should be able to understand most of it.

    Becoming a good programmer cannot be taught at all, whether in a traditional university, or in a technical school; the only way to become a good programmer is to program a whole lot. That is why a good computer science class will involve many programming assignments, even if they are pointless: the more time you spend programming ideas which you have never had to approach before, the better of a programmer you will become.

    But a good programmer NEEDS a solid understanding of the theoretical aspects of computer science in order to do his job well. He won't need the esoteric stuff most of the time, but every once and a while it will help immensely, because it allows him to understand why something isn't working the way he thinks it should.

    You mention that people with computer science degrees often have trouble not producing beautiful code, and writing what you call "pragmatic" code. If anything, that speaks volumes for the value of a university-level computer science degree, because we have all seen the results of "pragmatic" programmers.

  193. Teach a man to fish... by fbg111 · · Score: 1

    Give a man a fish and you feed him for a day. Teach him to fish, and you feed him for a lifetime. The understanding of theory that you gain in a CS program prepares you for a lifetime of computer-related work, whether it's as a computer science researcher, a middle-ware & web app developer, or a sysadmin. Having a CS background makes it easier to switch roles and to learn and master new technology, especially since almost everything used today is just a variation on something that was invented twenty or thirty years ago. Know the fundamentals, and you can teach yourself the rest.

    I actually RTFA and it really pissed me off (in the American sense). This attitude is, imho, one of the primary things wrong with American (and British?) higher education - the undervaluing of theory. Students want jobs and companies want vocationally trained workers, and everyone blows off theory as if it is useless in that quest. Fools. In the long run the most important thing is theory, as theory both leads to new innovation and guides practice. Our current attitude that higher education should be glorified vocational training is bunk, and probably a threat to our scientific and technological advancement.

    --
    Flying is easy, just throw yourself at the ground and miss. -Douglas Adams
  194. the economics course sounds hopelessly Marxist by technoCon · · Score: 1

    I've been writing software for a quarter-century and my vocational experience has NOT made a lot of direct use of my abstract studies in Mathematics and Computer Science (Masters' degrees in both). What I've found most useful, vocationally, is my undergraduate minor in Philosophy.

    Computer Software is an abstraction, a map of some problem domain, you must understand the problem domain and then encode a model of a Use Case thereof in the language of the day, Fortrain, C++, Perl, whatever.

    Ergo, study the seemingly useless abstract courses and know that you'll never be called upon to devise a heuristic tree search algorithm, but your ability to UNDERSTAND such things will be the tool you'll find most useful in your day to day tasking.

    As for my trollish subject line: Plato had much more intresting things to talk about than Economics. If you want Marxist indoctrination, buy a subscription to the New York Times. I've found Socrates' Apology useful in work, because it got me to analyze issues from every angle. When you have to decide between trade-offs your best approach is to forget whose ideas are what and just seek to understand the consequences of technical decisions.

  195. I would argue that you are in the right program. by Irvu · · Score: 1

    Programming languages come and go (anyone remember ADA?) as do development tools and development enviornments. If you want to learn how to use a particular tool then just take a class in that but I would argue that won't take you very far.

    My undergrad featured the theory, algorithms, etc courses. The only 'language course' that I took was from another student. I would argue that any computer scientist/programmer/engineer should be able to pick up new languages and new tools on their own. An understanding of the basis of the science, of the field, of why it works not just how, is instrumental there.

    If you want to stay employed then you should have a deep enough understanding of the field to pick up and even develop new tools. That level of understanding will also help you to employ the tools in a better way. If you just want to tie yourself to a single tool then so be it but as it goes, so goes your marketability.

  196. MIS curriculm by joemontoya · · Score: 1
    He just described the typical MIS curriculm.

    Maybe in the UK they don't differentiate between an Engineering type curriculm and a Business based one.

  197. Re:The choice of degree matters less than attitude by sribe · · Score: 1

    That said, I've run into "architects" with phd's or 25 years experience who couldn't figure out how to write a program that transferred data from an XML file to a database (or visa versa.)

    I worked for one of those, briefly. Very frustrating.

  198. Re:The choice of degree matters less than attitude by cballowe · · Score: 2, Insightful
    I've stressed the "lot of time" point because I think this is a key problem with CS students. You get the typical line out of them at an interview "I didn't learn C# in Comp Science but I could learn it in an afternoon.." I'm a young guy (22) and I've been programing professionally for nearly four years and I can tell you that this is simply false.
    I must take issue with this. I did my time in one of the top CS programs in the US. I'm pretty sure that I could learn C# in an afternoon. I wouldn't say that I'd be the most proficient in it in that time frame, but I could learn the language. My experience from being thrown at new technologies in typical development shops is that I'm more proficient than 95+% of the staff within a week (assuming I'm only dealing with that technology) and within a month I'm to the point where I'm the expert on several topics related to that technology.

    Learning a language is pretty easy - if you've got solid background in algorithms and know a couple of languages (preferably at least one imperative and one functional) already. Start with finding the base datatypes, then the control structures (loops, functions, etc.) then the object model. At that point you've got enough to implement any algorithm you need. Odds are that's enough to start reading code related to the project you've been put on, and possibly some debugging. Once you start reading the code, look up the object definitions for the object types that are used. Odds are you'll find many places in the code where properties of the object aren't being used because the "developers" have been copy/pasting bad code all over the place rather than learning the objects that they're using, not to mention much business programming is considered finished when it works, not when it works right, works efficiently, or is sane to read - most business programming projects are far more spaghetti like than things allowed in a typical CS program.

    I don't know that this method for aproaching a language was taught in my CS program, or if the program just gave me the mental tools to develop it for myself, but it does work. It has worked for me in several cases in the past, and I expect it to work many more times in the future.
  199. Just My Experience by Anonymous Coward · · Score: 1, Informative

    Generally, it's easier for an engineering grad (lets say Aerospace ;) to *be* a software engineer than it is for a CS grad to *be* an Aerospace Engineer. My point? It's very possible to get a software job being a self taught programmer without a CS degree.

    I work with a bunch of guys who have CS degrees and I'm just as competitive without a CS degree. Granted, I did spend A LOT of my own time learning to code, but if I get tired of software I have lots of options. Not many CS guys can do that.

    This is not a knock on CS, but I just thought I'd mention one of the alternatives to going strictly CS. I've been in software for nearly 10 years and I would say success is more about motivation than what degree you have. Give yourself as many options as reasonably possible...

  200. nonsense by nycguy · · Score: 1

    As a trader and former developer on Wall St., I can tell you that the problem is that current grads have too little fundamental computer science, not that they have too much. I agree that knowing about some real-world programming languages (which does not include Lisp!) and real IDEs, databases, etc., makes one better prepared for the job market. However, being analytically deficient (no numerical methods, machine learning, graphics, etc.) will cut one's earning potential on Wall St. by 50% or more. Knowing about design patterns but not understanding how a hash table is implemented (and therefore not knowing whether the time complexity of insertion, traversal, etc.) makes one completely useless. While Wall St. is certainly not going to employ the entire pool of CS grads, there is still a place for people to earn a large amount of money who have strong grounding in traditional CS fundamentals.

  201. Ludwig, listen to me... by way2slo · · Score: 1
    _________ is what you make of it. Most people insert "Life" but it works well with "College" and "Your career" also.

    What Dan says is good. It sounds like he thinks all CS Majors should minor in General Business or Econ...which is fine. A few thoughs on his article. First off... grammer, touch typing, and nutrition you should have learned in grade school (and they're not that important). There's not enough time in 4 years to have this and all the other stuff too. In fact, there is so much on that list it looks more like a 5 year degree. I'll try to point out the important stuff in a minute.

    While you are still and undergrad, take advantage of your time and try and lean as much as you can in between partying on the weekends. You'll never know for certain what you will be doing when you graduate so try and pick up as much stuff as you can on the way. I'm not talking about taking this elective or that one. I'm talking about learning things on your own time.

    If they teach you C++ in a class, that's great. Soak it up. But don't do all your assignments in it. If an assignment allows you to use any language, pick one you don't know and learn it. This is hard, but worth doing. Ask the professor if they have a suggestion for a language if you need to. Each language you can pick up is one more for on your resume. Find and excuse and lean the following on your own:

    • C++
    • Visual Basic or C#
    • Java
    • Perl
    • some database interaction using SQL
    • shell scripting in Unix (try to use SED and AWK)
    • scripting in Windows (good luck)
    Also, try porting some code you wrote from one language into another. For example, I once had to port some Perl code down to a bash script. Don't ask me why...

    Also, set up your own computer so you can learn different Operating Systems. Configure them so you can use them to send e-mail and browse the web. Thorw on some compilers so you can use it to write your code. Try to make it as secure as possible. Take notes. Ask for advice, but make sure you do it yourself. You don't learn as much by watching someone else do it for you. And test your results. Try to get some experience with:

    • a Modern Windows server..(if you can get your hands on the install media)
    • any version of Linux... (the more complicated the better...you never learn as much when it all goes well.)
    • Solaris 10 or later... (It's not the same on Intel machines as on Sun machines, but it's still worth learning)
    I would say that the majority of classes you take at University are worthless for getting you a job. Do not fret. Employers want to see that degree all the same. And they want to see a high GPA. It shows you did well no matter WHAT was thrown at you...even if it was "Economics from Plato to Keynes" or "Italian Renaissance Art".

    In closing, I would say that as long as you apply yourself and try to learn as much as possible about computers, it really does not matter what program you take. Employers only care about the skills (which you can learn on your own) and if you have any degree with high grades. I work with a Pre-Med student turned Windows Server guru and a dual major Physics & Philosophy that turned himself into a coding guru. Start anywhere, just make sure you are a guru in the end.

    One last thing in case you missed it the first time. The most important piece of advice in this post was this:
    Party on the weekends. Even if you have to throw the party yourself.

  202. Don't Go After The Girl or "The Nash Equilibrium" by Gnuosphere · · Score: 1

    Don't pursue education as a means to an end. If you pursue education simply for the love of it, income will take care of itself.

    Your question is off-kilter.

    Chasing classes with an extrinsic intent is destructive to yourself and therefore, society as a whole.

    Pursue what you are passionate about - not what society says will reap a flashy resume and a 'secure' job. Your passion will take care of your needs so long as you do not abandon it. If you do not have faith in that, you are lost to begin with.

    I cannot back up my claim with quantitative evidence - and that is the beauty of it.

  203. Re:The choice of degree matters less than attitude by Comatose51 · · Score: 2, Insightful

    You get the typical line out of them at an interview "I didn't learn C# in Comp Science but I could learn it in an afternoon.." I'm a young guy (22) and I've been programing professionally for nearly four years and I can tell you that this is simply false. CS major here with the same number years of experience (although mixed with part time and internships). I didn't do it in an afternoon. I did it over 3 nights. I read the APIs and learned the syntax. Where's the challenge?

    --
    EvilCON - Made Famous by /.
  204. It depends on what you want to do by loconet · · Score: 1

    Like many have said, it depends on what you want to do. I learned most of the topics he listed at a community college's 3 year program as well as self taught myself some other ones. This helped me gain a superficial understanding of programming enough to get me a job as a developer making just below "ok" money. I am now a senior developer and think I've pretty much hit a wall in knowledge and experience (and why I'm planning to go to University to obtain my CS degree). The way i see it is that anyone with a passion for the subject should have no trouble in picking up those languages with minimal formal education. It's a whole other game when you want to learn/work with the science behind those subjects and apply them to your career even as those languages change from year to year.

    I know this is an extreme example but take the latest Google high profile employee. If you wish to accomplish a fraction of what Mr. Cerf has done and still be relevant in the field when you are 60 years old, learning the languages without an understanding of the Science behind the field is just not going to cut it.

    --
    [alk]
  205. Take a Philosophy course on Epistemology by wyip · · Score: 2, Insightful

    Since you're going to be reading Plato, you should also look into some Aristotle. He goes into the nature of education and the idea of liberal education. Note, that this is not liberal, like Michael Moore liberal. You should also read about John Dewey's ideas on education, for a more modern view. It's very interesting stuff, and your school probably offers a philosophy course that can help you with your question.

  206. Re:The choice of degree matters less than attitude by Halfbaked+Plan · · Score: 1
    What if your only programming experience was ten years of (not Visual) Basic, and suddenly you were faced with learning Java? The concepts of object-oriented programming would be completely foreign to a person coming from a language that doesn't even have user-definable data structures.


    Are you implying that people who program in Basic don't define their own data structures? There's no mechanism in Basic that designs, so it's pretty much up to the user to define the data structure.

    'object oriented programming' 'structured programming' blah blah. What will be the buzzwords twenty years from now?

    I agree, there are a diverse number of tools for program development. I'm just not content to toss around buzzwords oriented around 'concepts' that are universal, if not 'Universal.'

    Sometimes some of us program micros that have 2-8K of program memory and 64-256 bytes of RAM. Obviously, in a specific Assembly Language.

    Data structures? Yep. Nice tight data structures. Every bit of every word counts.
    --
    resigned
  207. Re:The choice of degree matters less than attitude by Forbman · · Score: 1

    Or... instead of understanding the "mathematics" behind languages, realizing that msot of them in common use are based off of a common syntactic metamodel (i.e., basic, c/C++/Java/C#, fortrash, pascal, etc) makes it a lot easier. All of these languages have basically the same syntactic constructs and conventions: functions/subs/procedures, variable definitions, if-then-else, for-next, do-while, answer=value-op-value algebra (left-to-right order), etc.

    Now, throw a C/C++/Java programmer at Prolog, Lisp, or a functional language (Haskel, OCAML, etc) or a stack language (BF, Forth, PostScript, etc)...

  208. High school counselors are failing our students... by aussersterne · · Score: 2, Interesting

    ...by telling them that you go to university "to get a better job."

    The courses you listed are indeed useless for "getting a job" as they are in nearly every undergraduate major at major universities. And, contrary to what most high school students are told, the more elite the university, the less your degree will be helpful to you in just "getting a job."

    Universities do not claim, and do not intend, to create workers. They do not provide "job training." They are not designed to find you a place at a company, but rather to give you the skills that you need to establish for yourself a place in the world.

    Mere job-seeking and work as "an employee" requires that you limit the authority that you take for yourself and your actions; job seekers must order their universe using the already existing structures of the marketplace and the companies within it, and must order their daily lives and work according to dictates from above, in whatever company the end up working for.

    Universities by contrast, in particular the elite ones, develop individuals who transcend marketplace, corporate, authority, and governmental structures. Their goals are to produce amazing people who will someday create those structures for others (i.e. the job-seekers and employees) rather than efficient people to populate them.

    Many people are not suited to life outside of the employer-employee relationship. It implies a higher level of initiative, a greater amount of responsibility, a greater amount of culpabilility, greater stress (and possibly uncertainty) in life, and the requirement that you always think globally, flexibly, and adaptably, across a number of fields, criteria, consequences, and fronts, rather than just locally within your current task or field.

    Young slashdotters: if you just want "a good job that pays well" with a minimum of other responsibilities, entanglements, or with guarantees about wages, responsibilities, and futures, you should be thinking about trade schools and vocational schools, not university, especially not top universities.

    You simply do not go to a top university "to land a better job." Unfortunately, too many students do just that and then find themselves sitting around afterward unqualified for "jobs," unable to find "work" (because they are actively looking within the existing marketplace and corporate infrastructure of society, which universities by and large do not address), and saddled with debt.

    For the right segment of the population -- bright, creative, self-directed, wanting to change the world rather than to work in it, willing to be flexible and to forego promises and stability -- university is precisely what the doctor ordered. For the 75% of the population that doesn't care what they do so long as it pays well, gives them a 401(k), health insurance, and the chance to climb the authority "ladder" within a single company, university is a colossal waste of time and money.

    --
    STOP . AMERICA . NOW
  209. Software Engineering by przemeklach · · Score: 1

    Reading over this thread has made me become even more uncertain about my education. I am taking a Computer System Technologist Program at a Collage which transfers to 3rd year of Software engineering at a university. People in the industry have given me mixed opinions on whether getting my Software Engineering Degree is worthwhile; for example if I spend the 2 years it would take me to get my degree programming at a company will I be better off? I used to be in a science program, before I decided to go into computers, so I do understand the arguments for having a broad theoretical background, but I don't want to invent the next Java or C++, I want to solve real world problems. So, I understand his frustration because I share it as well. I know a few people that have degrees but I am astounded as to how narrow minded these people are. Real-life world experience has made me a more rounded individual not theoretical classes.

  210. he does have some points... by burnin1965 · · Score: 4, Insightful
    As someone who works with both CS grads and vocational grads I'd have to say that what Dan believes is missing from the CS studies is also missing from the vocational studies as well. And the only outcome of the vocational studies is a graduate who has no understanding of the basics, has a difficult time adapting to platforms outside their study focus, and are missing the same key career tools as the CS students.

    I see nothing wrong with the CS curriculum, however, a student should actively pursue the following weak points which Dan pointed out in his article:


    - Basics of good code architecture: Loose Coupling, etc.
    - The importance and tools of Planning: Spec'ing,, UML etc.
    - Economics, Business Studies, Costing Projects, Commercial pressures
    - Project/Time Management
    - Security
    - Testing, Debugging, Performance, Re-factoring
    - Problem analysis
    - Health and safety (nutrition?)
    1. Re:he does have some points... by CastrTroy · · Score: 1

      Sounds a lot like the areas that were enhanced from the software engineering degree that I took. Regardless of the arguments as to whether or not you can actually engineer software, I have to say that my course prepared me much better for real software development, then the computer science students in my school. There was also lots of theoretical stuff, but I felt that software engineering taught me all the aspects of software design.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    2. Re:he does have some points... by raygunz · · Score: 1


      These subjects are the essentials of any kind of engineering, albeit some with a slight bent toward software (UML, re-factoring). But even those subjects could be generalized.

      When I wrote "Debugging" http://www.debuggingrules.com/ I was trying to avoid narrowing the focus to a particular language or platform, so it would be a "timeless" book. In fact, I had found the rules I used to be universal for both hardware and software, and then had some fun by generalizing across medicine, automotive, and home repair.

      Many general books have been written on time management and business economics, but we could use some on architecture/design, problem analysis, and spec'ing.

      --
      "Debugging" by Dave Agans - the perfect gift for your favorite imperfect engineer.
  211. Re:The choice of degree matters less than attitude by Anonymous Coward · · Score: 0

    Well, probably because you can't transfer data from XML do (SQL) DB without some loss of data in general case. And those folks with PhDs are often maximalists and just want to provide general method, not just the method that suits your particular problem.

  212. Re:The choice of degree matters less than attitude by mixmasterjake · · Score: 1

    It is true that, once you know one or two languages, you can essentially pick up the syntax of a new one quickly. But, simply understanding the syntax of a language is only the beginning.

    These days "knowing" a language also includes a knowledge of the libraries and frameworks that are available. Not to mention the different styles and techniques that are used.

    --
    TODO: come up with a clever sig
  213. Programming languages are NOT interchangeable by Anonymous+Brave+Guy · · Score: 1
    I am sorry, but once you know how to program, learning a new syntax, especially one that is so close to one that most CS students have had experience with, is easy to do.

    Spoken like someone who thinks Java, C# and Visual Basic.Net are the only languages on the planet.

    I don't care how good you think you are, you can't really learn a new programming language from scratch in half a day, or even a week, and be writing code to a good standard after that time. Sure, you can learn the basic syntax, but to write good code in a language you also have to appreciate the syntactic idioms, the libraries, the standard gotchas, how to use the underlying design ideas (structured programming, OO, functional programming, different kinds of type system, whatever), where to find good sources of extra information and additional libraries, etc. Even if you've programmed a broadly similar language using the same (buzzword warning...) paradigms before, the rest takes time, and not just for learning another library.

    The GP post was right on the money about this. One of the problems today is that so many people think that because they know one or two languages, they're some super-programmer who's interchangeable to any other and can be as productive with a new language almost immediately. It just ain't so, although the world is full of crappy code written by people who thought it was.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Programming languages are NOT interchangeable by Anonymous Coward · · Score: 0
      The GP post was right on the money about this. One of the problems today is that so many people think that because they know one or two languages, they're some super-programmer who's interchangeable to any other and can be as productive with a new language almost immediately. It just ain't so, although the world is full of crappy code written by people who thought it was.

      I understand what you are saying, but we're talking about CS students/graduates that not only do they know one or two languages but also the underlying structure and concepts underneath a language. Concepts such as arrays, classes, functions, dealing with exceptions and errors etc. are concepts that keeps popping up for any kind of languages (at least the current ones), and shouldn't be trivial for any CS student with a degree.
    2. Re:Programming languages are NOT interchangeable by Anonymous+Brave+Guy · · Score: 1
      I understand what you are saying, but we're talking about CS students/graduates that not only do they know one or two languages but also the underlying structure and concepts underneath a language.

      That's not really true, though, is it? Sure, you'd hope a decent CS graduate would have some basic familiarity with various programming styles, and perhaps a brief introduction to an illustrative language or two. However, I've never encountered a full-length CS course that taught more than one common languages in the kind of detail I'd expect for a professional-grade programmer using that language. I don't even list most of the languages I studied during my CS course on my CV.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:Programming languages are NOT interchangeable by the_2nd_coming · · Score: 1

      good thing I have never had a class on any of those and the only program I have ever done in Java was one for modern algebra. I learned to do a web applet in 2 days, and it works great...never had any experience with Java before then.... Oh, and I hate MS programing tools.

      thanks for being an idiot though.

      --



      I am the Alpha and the Omega-3
    4. Re:Programming languages are NOT interchangeable by the_2nd_coming · · Score: 1

      of course they cannot teach a language like that.

      they have 60 credits to teach you theory. that is what CS is. they do that by exposing you to lots of different languages.

      you want a vocational system. CS is NOT like that, nor should it.

      a CS student learns how to learn new languages by way of understanding the unifying ideas behind all programming languages.

      I guarantee you that a CS grad will be productive in a totally alien language faster than some one who has exceptional training in one or two languages.

      --



      I am the Alpha and the Omega-3
    5. Re:Programming languages are NOT interchangeable by Anonymous+Brave+Guy · · Score: 1
      you want a vocational system. CS is NOT like that, nor should it.

      You should really read posts before you post a rant in reply. I have never claimed that CS should teach vocational skills; indeed, if you bothered to read any of my other posts in this thread properly, you'd see that I strongly disagree with that view.

      I guarantee you that a CS grad will be productive in a totally alien language faster than some one who has exceptional training in one or two languages.

      That depends on the CS grad. Someone who's good and knows the theory, whether formally or self-taught, will certainly pick up a lot of things faster. But you seem to be equating CS grads with someone in that position, which is a dubious claim in the industry today. I'd take an enthusiastic hacker who learned about this stuff on his own time over a top-flight CS grad who only chose that course because the career is well-paid any day.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    6. Re:Programming languages are NOT interchangeable by bzipitidoo · · Score: 1
      Programming languages ARE interchangeable. Every programming language I know of is universal, and therefore interchangeable. If a language can't be learned in a day by anyone who understands algorithms (algorithms are language independent, in case anyone has forgotten that), then the language may be bad. Perhaps it has too many tricks and traps,

      Libraries are another matter. They're a huge disorganized mess. Seems every programming language has its own quirky libraries tacked on. The libraries all have different organization: versioning conventions, calling conventions, protocols, dependencies, and so on. It's like the situation with PC hardware under MS DOS in the late 80's, when every game and graphics application had its own set of drivers for every common video card, printer, and even mouse. These days, if one wants to write a little graphical application, one has to choose among xlib, Motif, Gnome, KDE, Tc/Tkl, Java Swing, OpenGL, DirectX, .NET, Macromedia Flash, and many many more. Same situation for web applications. Learning that mess does unfortunately take time, and that knowledge will quickly become obsolete, the rate at which libraries are modified. For instance, Java libraries changed a lot between versions. The venerable stdio of C was "upgraded" to C++ iostream, and now the latest change is the addition of revamped libraries with the new namespace syntax. Under the hood were events like the move from gcc version 2 to 3, which among other things forced recompiling of every dynamically linked piece of software, as software compiled under version 2 won't dynamically link to libraries compiled under version 3.

      Don't confuse learning a language with deep knowledge of every function of the libraries of the day. When they say they can learn a language in a day, they're right. An employer shouldn't sneers at that as evidence they don't know what they're talking about. The candidate was improperly questioned. The "do you know C" question really meant "do you know stdlib, stdio, string, etc?" It's ignorant to make a bubblesort algorithm because one didn't know about sorting algorithms such as quicksort. It's about as ignorant to hand code a quicksort algorithm because one didn't know about the qsort() library function. A CS degree addresses the first ignorance, hands on training and experience addresses the second.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    7. Re:Programming languages are NOT interchangeable by Anonymous+Brave+Guy · · Score: 1
      Every programming language I know of is universal, and therefore interchangeable.

      Then I'm sorry, but you are woefully unqualified to be in this discussion. Either that, or you're picking nits over something like Turing completeness while ignoring the point of the discussion.

      If a language can't be learned in a day by anyone who understands algorithms (algorithms are language independent, in case anyone has forgotten that), then the language may be bad. Perhaps it has too many tricks and traps,

      Algorithms are not language independent, or rather the choice of which to use and the way you implement it aren't. How do you implement an in-place quicksort in a pure functional language, exactly? How do you implement an algorithm that uses lazy evaluation in C? You first have to convert your algorithm into a form that makes sense in your target language, or choose a different algorithm.

      I understand what you're saying, but you're seriously underestimating the impact your choice of programming language makes.

      Don't confuse learning a language with deep knowledge of every function of the libraries of the day.

      I'm not. But I think you're confusing learning a language with learning some basic syntax. The latter can be done in a day, but it's only 10% (at most) of what matters apart from the libraries.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  214. being a part of all other professions by akuma624 · · Score: 1

    I have worked with a lot talented people in my day but the IT sector is a very unforgiving place without a four year degree and once you have that you still find that you need a more advanced degree. For example I work with a guy right now that have far more experience and talent on our network but I was offered a promotion over him simply because he didn't meet the stringent rules of the organization when it comes to degree requirements for certain positions. I know it sucks but the fact is that in the tech industry the practical programming/infrastrucure stuff that organizations are looking for are just not the point and aim of a four year institution's class schedule. This is an important reason too, I mean if there is some guy out there that really wants to do some serious number crunching on super-computers in his graduate years he most certainly doesn't care about a bunch of classes that teach him how to make a web-page pretty and easy to get/send to a backend DB. It just seems to me to be a really double-edged sword. akuma624

    --
    ... if music be fruit of love, play on ....
  215. Easy answer by merpaholic · · Score: 1

    You'd be a fool to ignore the theoretical aspects of computer science, as they are completely independent of the platform you end up programming on. The knowledge you gain from these courses will aid you in the future by helping you design algorithms and prevent you from making poorly functioning or inefficient code (hopefully).

    As far as learning the skills you need to get a job, if you don't take your coding projects as serious exercises in software design, then sure, you will most likely not be competitive when you begin interviewing. However, if you attempt to create smart designs instead of just "getting it to work", then you should learn much of the necessary software design skills on your own that will greatly help come interview time.

    Ultimately it comes down to doing what you like. Do you prefer the theoretical aspect of CS? Or do you love getting your hands dirty on some code? If the first sounds most appealing, just continue your education after you finish your undergrad courses. There are plenty of research oriented jobs out there for a CS masters student or PhDs. If the latter sounds like your bag, baby, then realize that it is most likely going to be up to you to learn good software design skills. It also wouldn't hurt to throw in some object oriented courses (preferably one that teaches patterns) and a C++ STL course while you're at it.

  216. Depends on the job you want by Dr_Harm · · Score: 1

    I've had this debate before. It depends on the type of job you want.

    Do you want to work on rev 6 of commercial software which is on rev 5? Add a feature or two, port to Vista from XP, etc.? Just polish the existing product, treading no new ground?

    Or do you want to work on the cutting-edge? Working with the latest processors, memory controllers, and applications? Do things that nobody else has done ahead of you?

    Put another way: I do the later. When I interview job candidates, if they can't explain n-way cache associativity off the top of their head, I'm not interested. Same goes for the Halting Problem. I need people who understand and can THINK, not just code monkeys.

    That's not to say that there isn't a place for code monkeys. It's just not in my shop.

    --MD

  217. Re:no by danhirsch · · Score: 3, Interesting

    I couldn't agree more. Allot of software companies hire CIS grads...mainly because they are cheaper than full CS grads. What happens when a software company retools and moves on to new languages? Either the employees 1) Move on to other companies or professions out of frustration with having to learn a new language, 2) Get canned because they are no longer in need, or 3) Ante up and push through to learn a new language. Unfortunately, 1 and 2 are usually the direction things go. CS grads on the other hand have the theoretical knowledge to move between languages with a fair amount of ease. CS grads are the ones that don't rely on the fancy gui's or pre-built code snipits and controls to do all their work...they know how to do this in code....while many CIS's do not. For me...I can look at pretty much ANY modern language and tell what its doing...get a syntax reference book, and start editing. CIS grads that I know...would just freak...because they were taught more business skills instead of theory. I don't discount the CIS degrees, I just don't think they are very practical for the true-blue programmer or shall I say "engineer". I have recently been struggling on whether I should push through and get a masters in computer science or take the easy way out (for me at least) and get a masters in CIS. I keep having to remind me of these facts...over and over... CIS curriculum teaches "Java" or "VB", while CS curriculum teaches "Data Structures" and "Operating Systems". Sure..languages (c++) are taught in these classes..but the focus is on language structure...not the language in particular.

  218. projects projects projects by davez0r · · Score: 1

    just make sure that you work on interesting projects while you're in school. find out what projects your professors are working on and see if you can help with them.

    are you interested in robotics? see if your university has a sony dog soccer team.

    are you interested in web development? find a department with a really crappy website and give them a free upgrade.

    does your school have a darpa grand challenge car? a solar car? are there any big FOSS projects that you can help with?

    be proactive about finding cool things to actually do that complement all of the cool things you learn.

  219. Also like art... by Anonymous Coward · · Score: 0

    Also like art is the fact that if you don't know anatomy, for example, it doesn't matter how cool your drawings are, they still are going to be technically wrong.

    You see this a lot with artists who learned from drawing from magazines, bad photos, or even comic books. They never got formal training and are only building their education on what they glorked from these tools rather than formally learned.

    If you are a so called "script kiddie", you are probably going to think you know it all, until you actually find out otherwise.

    I am in both boats. I am an art minor and a cs major who started out as a script kiddie as well as learning to draw comics from comics. Now with 4 years of college under my belt at the university of minnesota (decent school for art and excellent school for cs) I can look back and say that I have learned a great deal in both fields because of the formal training. I didn't suck at either before college and could probably have gotten some sort of job in either without college. Now however, I have academic skills in art which aid design (and my illustration) and have fairly advanced training in math and cs.

    The say "when you learn to draw, you can draw anything"... and this is true to for cs related stuff.

    If you not learning this stuff in class, pick it up on the side. I did, and in spite of not learning XML, for example, in class, we studied link lists, etc as a data structure. How is XML DOM not an implementation of link lists. etc etc.

    To the main poster: Stay in school, and learn as much as you can while you are doing it and try to have a social life so you a) don't get overloaded and freak out and b) you have the social skills when it comes down to dealing with a variety of peoples in a work envrionment - outsourced or otherwise.

  220. Programming is a craft by PostItNote · · Score: 1

    Programming is a craft. You only learn it properly by being a defacto apprentice for a while. Computer science gives you the theoretical underpinnings required to give you the potential to be an excellent apprentice.

  221. Perspective by salesgeek · · Score: 1

    Something that has been troubling me lately is the fact that when asked "what do you do?" or "describe yourself?" people answer with something like:

    "I am a ______. I went to ______ University."

    In other words, you are what your job is and you owe your job to the school you paid to educate you and give you credentials by which you got your job. So what. There's a great way to make your mark on the world. If you are shopping or reconsidering your Computer Science program, search for one where you get the foundation that lets you answer "what do you do" or "who are you" as follows:

    "I'm a father of ____ who enjoys (non-work stuff). I'm involved with building ______,_____ (insert interesting topics) for _____ (company)."

    Don't be a robot when you grow up. Have an identity that is greater than simply what you do. Don't focus your education on the job so much. Study something you want to know about and will be able to use your tallents and abilities to further the field - either in it's application or in the core body of knowledge.

    One other thing - most of the people that don't make it in the real world (at least working for me) identify themselves as being their job. Their highest order of value in life is the work they perform. They do great work and are easy to work with until one day the parameters change or what they do becomes less relevent and valued. Then all hell breaks loose - and they becom almost a cancer, finding fault with everyone who suggests they change or that what they are doing is passe. Those who realize their job is one small part of their identity deal with change better and often are able to better prepare for the future.

    --
    -- $G
  222. Waste of Time by klept · · Score: 1

    Universities are just a waste of time. Take it from one who's been there, graduated, and went to one of the more well-known / "prestigous" places. Focus on the degree helping you to provide a living. And what I mean by that is that many occupations / "professions" require certain degress or other college accredation. Get that qualification / accreditation, and forget the rest which is just stupid bs. Unfortunately this accredation / qualification requires a dgree and you'll have to put up with it. Even if the only reason is for a bunch of dumb proffs justifying their own existance. If you really want to learn, you'll do it on your own a lot better.

    1. Re:Waste of Time by CharlesEGrant · · Score: 1
      If you really want to learn, you'll do it on your own a lot better.

      For most folks this is rarely true. Yes, a bad teacher can be a waste of time, but the answer to that is not to insist that you can learn it all your own, but to go find some good teachers. They are out there.

      There are two problems with relying entirely on self-education. First, since you are starting from a position of ignorance, it is pretty hard for you to pick out what material is truly important, and what is not. This results in people gearing up on the buzz word de jour, only to find it obsolete in a year or two. It can be very helpful to have direction from someone who has seen the fads come and go and therefore has some clue as to what you will still be using in 10 years.

      The second problem with self-education is that most of us (myself included) have an amazing capacity for self-deception. It is all to easy to sit down with a couple of O'Reily books, work through some of the examples, and convince ourselves that we have mastered a subject. Meeting with a skilled critic on a regular basis is a terrfic way to learn how to identify your own BS.
      Universities are just a waste of time.

      Your's may have been. Mine certainly was not. There was some purely technical material that I could have learned on my own (and in fact I was mostly left to do so) but I learned to write more clearly, and think more clearly, and I got much better at identifying when I really understood something, and when I did not.
    2. Re:Waste of Time by klept · · Score: 1

      Thank you for some well thought out comments. When I was speaking of Universities, I meant US universities. Perhaps your experience had to do with Europe or somewhere else. Or maybe you were lucky, and just found the exception that proves the rule in the US. I do not know about all American universities or colleges, but from the information I have recieved first or second hand, I can only conclude that most of them are a pathetic joke. As for good teachers, yes I am sure they are out there. In fact my high school experience was superlative. But then at the time it was considered one of the best schools in the country, and even the world. Many of the teachers had doctors degrees, they liked to teach, and they really knew their stuff. And they were fun. It was also really intense, with academic clubs after school. And I would disagree with you about learning on your own. If you really need a guide, I am sure their are curriculum outlines on the internet. But really all you have to do is go to a library. There are series like the Great Books of the Western World, etc., that will provide a decent humanities education, for example. Quite frankly in the US today, learning on your own is really the only alternative for many, maybe most Americans. Of course, that's assuming they really want an education and not some bs degree.

    3. Re:Waste of Time by CharlesEGrant · · Score: 1
      When I was speaking of Universities, I meant US universities. Perhaps your experience had to do with Europe or somewhere else. Or maybe you were lucky, and just found the exception that proves the rule in the US.

      I started off at Reed College, which is an terrific, small, expensive, liberal arts school. I ended up at the University of Washington which is a typical Enormous State University. When I was 47 I went back to UW and got a Master's. My experience was that small colleges like Reed hand you a terrific education on a silver platter. The faculty and staff do their darndest to give you a good, liberal arts education, even if you are callow, clueless, and lazy like I was. I think you can get just as good an education at a big school like the UW, but you have to be mature and self-motivated. Many of the faculty and staff are busy with other matters, so they are perfectly happy letting you sleepwalk through your four years, checking off the requirements. None-the-less, the opportunities are there if you have the strength of will and foresight to go grab them.

      I do recognize a couple of problems. Giant state universities must be all things to all people: credentialing factory, vocational school, liberal arts school, research factory, private nightclub, and pro-football farm team. On top of this, people seem to select colleges for all sorts or random and ill-considered reasons (lord knows I did), and then complain when they feel their needs aren't being met. I think this is why you see so many threads like this one, where CS program are simultaneously criticized for being too theoretical and too vocational. There are thousands of schools in the US. If the one you are attending isn't meeting your needs, you should try shopping carefully for a different school.

      And I would disagree with you about learning on your own. If you really need a guide, I am sure their are curriculum outlines on the internet. But really all you have to do is go to a library
      I certainly don't want to dismiss independent learning. Most of us are going to spend a lot more time out of school then in, so being able to learn material on our own is vital. But think of it this way: if I study the great books on my own I'm going to have to read them, think about them, and draw my conclusions about their meaning and import. If I study the great books at a college or university, I'm going to do all those things too, but in addition I'm going to have to to defend my conclusions to the teacher and my fellow students. Having to defend your idea in front of honest critics really helps to peel away your misconceptions, and helps you recognize when you have had a genuinely good idea.
    4. Re:Waste of Time by klept · · Score: 1

      Concerning two of your statements. You dont have to be at a college to discuss good books and intellectual matters. In fact, I would say that is the least rewarding venue. You'd be surprised how smart a lot of the ordinary pleblians are. For example, my first knowledge of black holes was from an auto mechanic who never finished high school. Second, why if the tuition is being paid at UW, should someone have to go chase after a proff or teacher to have them do their job, which is to teach? Learning from someone requires cooperation and willingness from both teacher and student. Never been at Reed, or heard about anyone's experience there, except for you of course. I believe that is a lady's college, isn't it? No need to tell me. I can find out. Well thank you for expressing your opinion.

    5. Re:Waste of Time by CharlesEGrant · · Score: 1
      You'd be surprised how smart a lot of the ordinary plebeians are.
      My father was a logger and my mother a secretary. I grew up in a small ranching and logging town. Please don't presume to inform me on the virtues of "ordinary plebeians".

      For example, my first knowledge of black holes was from an auto mechanic who never finished high school.
      I know several college professors who do their own car maintenance. I might ask them for some basic advice on car maintenance, but if I want my car's engine rebuilt I'll take it to a real mechanic. Similarly, it's terrific that the mechanic could introduce you to black holes, but if you really want to learn the gritty mathematical and observational details of black holes you'd probably be better off consulting an astronomer at a university.

      Second, why if the tuition is being paid at UW, should someone have to go chase after a proff or teacher to have them do their job, which is to teach

      I think you've missed my point about the enormous state universities having to be all things to all people. You think the professor's primary job is to teach. The professor thinks their primary job is to do research, and they can probably produce the tenure standards to justify that opinion. To be sure, they will acknowledge they have teaching duties: lecturing, limited office hours, and testing. They will not include what they would dissmissively call "baby-sitting" (things like actively begging the students to attend office hours or seeking out and trying to motivate intelligent but lazy students).

      This contrasts with the small liberal arts colleges where the faculty and the students will both agree that teaching is the primary job of the faculty. The embarassing truth of the matter is that even very bright students usually benefit from some "baby-sitting". I remember my sophomore humanities class professor repeatedly snagging me in the cafeteria to urge me to keep up with the reading and to participate more in the discussions. The tradeoff is that you have to pay a small fortune for the student/teacher ratio that allows this kind of mentoring.

    6. Re:Waste of Time by klept · · Score: 1

      Oh why dont you give it a rest huh. You've reduced what was a dialectic discussion into a silly ass argument. Sorry to hear you don't have such a high opinion about your parents. And how the hell would you know what this auto mechanic knew about black holes. If proffs only want to do research, then they should get a job where all they do is research. The problem is that when many, hopefully not most, do get full tenure, they become irrelevant kissoffs. I could go on but I dont want to waste time in a uselss argument with you. Your problem is you assume everybody is as dumb as you and the background you came from. Please dont go any further into this with me, or you are going find out how really nasty I can get.

    7. Re:Waste of Time by CharlesEGrant · · Score: 1
      You've reduced what was a dialectic discussion into a silly ass argument.

      Let's take it back to a dialectic then. I've recited the experiences that lead me to value formal education. Why don't you describe your experience in self-directed learning?
      Sorry to hear you don't have such a high opinion about your parents.

      There seems to have been a miscommunication. I'm very fond of my parents and had a lot of respect for them. They were both very intelligent and well-read which was why I wanted to correct your assumption that I would be surprised at how smart common plebeians (your term) could be.
      And how the hell would you know what this auto mechanic knew about black holes
      (Shrug) I've known several mechanics and I've know several physics profs. It wouldn't surprise me at all to meet a mechanic who's read many of the popular books on relativity. It's just my observation that mechanics who know understand the state of the art of in relativity theory are every bit as rare as theoretical physics professors who are certified master mechanics. That is to say, very rare indeed. If you want to put forward your friend as a counter-example I'd love to hear about him.

      Please dont go any further into this with me, or you are going find out how really nasty I can get.

      Human contrariness being what it is, telling someone "Shut up or I shall taunt you again." is just about guaranteed to raise a response. If you were to simply respond with "This has gotten boring. Let's drop it." I would be happy to leave you the last word.
    8. Re:Waste of Time by klept · · Score: 1

      Glad you are "fond" of your mommy and daddy. I have a life. And that's why I dont bother talking about myself unless it's to give background to my opinion Okay, you think you're an expert on auto mechanics and physics proffs. Bully for you. A Public Relat rep was right. Opinions are dangerous, dont have any opinions. I think I have learned my lesson, or at least not to express them in public. This is getting boring. Let's drop it. You can have the last word, but I wont respond and I will delete it before reading it. Apologies for insulting you. Good bye.

  223. my $0.02 by blackcoot · · Score: 1

    i would not have my current job if i hadn't worked my ass off taking the extra theory and math classes. i end up using almost all my math and ai classwork on a daily basis. the stuff i did in my os and networking classes also come back to haunt me on a fairly regular basis (which is pretty damn galling --- i despised those classes, but i did well in them anyways). i find myself regretting the fact that i didn't do any ee beyond my required digital logic class on an almost daily basis (so much so that i'm looking around at local universities to see about maybe starting a part time m.s. in ee). then again, i teach robots how to see — i'm pretty convinced that i have about the most awesome job ever (the only way it could be more awesome is if i had the budget and what not to research and develop whatever took my fancy).

    so, in summary: if you'd like a job that's easily off-shorable, take dan's advice. if you'd like career that keeps you excited and has you in a position to solve challenging problems on a daily basis, you're going to need a different plan.

  224. school for programming by 101percent · · Score: 1

    why would you want to go to school for a degree in computer science and then get a job developing proprietary software that takes away peoples freedom? become a waiter instead!

  225. No, he's probably horribly naive by Anonymous+Brave+Guy · · Score: 1

    I was going to write a critical response to the article here, but it's so completely missing the point that I didn't know where to start.

    I'm sure you're right, that a few CS courses teach material that isn't really needed below research level today. OTOH, I've seen people who thought they were great programmers write this:

    double pythagoras(double x, double y)
    {
    return sqrt(x*x + y*y);
    }

    and not even realise why it was flawed. I've seen people who thought they were great programmers use a quicksort on data that was known to be nearly sorted already "because it's O(n log n) silly!" and not even realise that it's not, never mind knowing why not and when it is and isn't an appropriate choice of algorithm. I've seen numerous similar examples of incompetence during my professional career.

    No-one who understood the underlying ideas -- basic CS material -- should be making those mistakes, and no-one who doesn't understand those ideas should be writing serious code. I don't care whether the knowledge itself comes from a formal CS education or being keen and learning it on your own, but that knowledge is important for real world work.

    The fact that the guy writing this article is naive enough to think that knowing XML and design patterns is more important than this sound underlying knowledge of How Stuff Works demonstrates why he's totally unqualified to comment on this subject better than anything I could possibly write in a critique.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  226. Re:The choice of degree matters less than attitude by corngrower · · Score: 1

    That is not the reason. And the situation was that the PhD wasn't thinking about the problem in a general manner. I wouldn't be suprised if you yourself would have problems writing a program of this type, A.C. I consider it trivial.

  227. Re:The choice of degree matters less than attitude by StromThurmond · · Score: 1

    If anything, you have just demonstrated the parent's point. Sure, LISP/ML/Prolog are different at their core from C/C++. But that is exactly the issue. IF you had taken a theory of languages course in a respectable BSCS program, you would know that the first two are functional program languages while the latter is a logic programming language. C/C++ and all other c-like languages on the other hand are imperative languages. IF you had the correct academic experience, you WOULD be able to understand why the first two mentioned paradigms exist and why they are so important (ever heard of lambda calculus???).

  228. Sometime's it's the students responsability too... by Bodrius · · Score: 1

    From the blurb, I was expecting Zambonini to be mostly wrong, but it seems he's just putting the blame in the wrong place (mostly).

    This sort of courses may not be useful to get a job, but they can be vital to doing your job well. And therefore, keeping it.
    The information from courses like TOC and Algorithms, for example, are used regularly on the job: pretty much every time you code.

    That does not mean you go and provide correctness-proofs and a full analysis of every code-path you write. That is too costly in most industries.
    What comes 'for free' from someone who has this background is the ability when they look at the problem to discard many bad solutions before attempting them, identify costly/intractable problems that need better specification, and solving concrete problems with very general (proven) solutions.

    He's right that there are other less-academic skills you can use to land a job, but I'd disagree that this is the responsability of a CS program. For many of the issues he brings up, it wouldn't even be the responsability of an Engineering program.

    The career-path is the choice of the students, and their responsability. Although keeping the academic courses relevant is important, I wonder if there are as many complaints about Math majors learning too much Math and not enough business/management.

    Assumption:
    The role of a science university degree is NOT to provide all the information you will conceivably need in the industry (which is too broad and changes month).
    Its role is to provide the student with the fundamental background and the skills for the student to identify what is specifically important from all that knowledge, be able to learn it by themselves, and then make new contributions to that knowledge.

    Considering that:

    - If students cannot educate themselves on technical specifics (a programming language, xml, etc) outside of the college curriculum, they will face difficulties in the real-world regardless of whatever courses they took.
    - From the courses listed, one cannot say for sure, but it sounds you are in the right CS program.
    Just make sure to complement your academic education with practical skills if your goal is to get an industry job.
    - He's right about databases. They're vital in and out of the industry, and they put to use some skills otherwise often neglected.
    A good CS curriculum will include at least 1 course in database fundamentals, with at least a non-trivial practical project.
    - Taking a course because it mentions XML is total non-sense. There is no new deep theory behind XML, only minor technical decisions that certainly do not take a university course to learn.
    While XML makes sense as a case study for a number of related areas (parsers, SE, databases, etc), there is nothing unique a student can't learn in a few hours.
    If a new CS college hire cannot tell when to use DOM vs SAX after a 5 min. explanation on what the acronyms mean, then the problem is less with ignorance about XML and more with lack of those 'useless' CS fundamentals.
    - He's right about students not going into SE, but that is as much the student's fault as the university. In my experience, SE courses are not very popular with undergraduates where they are offered. If your aim is to be a Software Engineer, use the options available in your school. Take them if that is what you want to do with your degree.
    I don't know if this is just more common in the US, or my 'sample' was less random: but from what I have seen many universities provide either an SE program/sub-program or corresponding electives
    If they're not available, learn on your own and do projects that use that knowledge. The main benefit of the SE courses I've seen is identifying the big problems and pointing out old solutions. The interesting stuff you have to learn by yourself anyway.
    - Get real-world experience: internships, co-ops, part-time jobs. The most important

    --
    Freedom is the freedom to say 2+2=4, everything else follows...
  229. Literacy by Anonymous Coward · · Score: 0

    > Grammar, punctuation, concise and clear writing.

          Indeed. I have noticed, among CS students in general, and self-appointed geeks in particular, a very common tendency to have a smug attitude when it comes to grammar and spelling: "I am such a good programmer that I can spell any way I want."

          Well, when it comes to interviewing candidates, good spelling and being able to write clearly are just as important, in my books, as technical knowledge. I would be loath to hire anybody who is unable to tell when to write "its" and when to write "it's" - if they do not have the minimum brain power to understand the distinction, or they lack the interest and curiosity to find out, I do not want them working with me.

  230. What you learn isn't the point by UndyingShadow · · Score: 1

    I am a CIS major, but what means is basically a computer science major sans 2 extra math courses. I spent a lot of time my first 3 years learning silly things like "how to do loops in c," "how to do loops in VB," "how to do loops in Cobol (SHUDDER)" Only in my senior year have I learned "advanced" topics such as linked lists, stacks, heaps, and all that discrete math stuff. What is the lesson to be learned? Your degree is about teaching you how to learn, forcing you to learn how to think, exposing you to a wide variety of topics, and making you realize that "computer science" isn't about spending 3 years learning Java or C++, but teaching you how to think like a computer, no matter the language. I went into college with a wide variety of skills and talents, and I'll leave college with a few more facts, a few new ways of thinking, a lot more maturity, and the knowledge that anything I dont know now, I can know tomorrow, or at most by next week.

  231. Usual mathematically-challenged /.er's wheening by fab13n · · Score: 2, Informative
    You periodically get that kind of guys, on nerd-oriented forums like /., who says "fsck off with maths and theoretical stuff, what I want to learn is LAMP/AJAX hacking or writing big chunks of Java for big chunky compagnies". WRONG.

    First: the school's main purpose is not to teach you your job; it's to teach you the parts of the job you wouldn't be able to learn by yourself. Mastering a couple of languages and patterns is something you'll learn at your first professional position, every code monkey can do that by himself. You'll be allowed to think of yourself as fully trained when applying for your 2nd or 3rd job.

    What you won't be able to learn under the pression of real-job-conditions is more fundamental: it's about having those abstraction capabilities, which allow to understand a problem, turn it into a formal model, find appropriate algorithms to handle this model. That's maths. Indeed, you'll probably never write a computer-vision system or a ray-tracer for a compagny. But by having been drilled on such problems at school, you'll [hopefully] have acquired some skills in complex problem modelisation and solving, that you'll need to write everything but dumb PHP interface to a DB. And you know what? These dumb code monkey jobs are going to become Indian or Chinese long before Duke Nukem Forever is released, so you'd better be able to work on smarter stuff.

    I know, it hurts to admit that mathematical thinking abilities are a must for decent programmers when you're yourself mathematically-challenged. It must be unpleasnt to realize that a lot of tough training is required to acquire these skills. But just translate this attitude to an other field and you'll see how stupid it is: "I want to become a novel writer, so I don't see the point of studying ancient authors: nobody speaks/writes that way these days. I don't want to read war stories or poetry either, as I don't plan to write any. I don't want to hear about mythology, classical litterature theories, or whatever. What I want to be trained at is grammar (spelling is useless now that we have decent spell checkers) and type-writing".

  232. Numerical analysis by Anonymous+Brave+Guy · · Score: 1
    In the real world nobody will give a s**t whether you've taken numerical analysis.

    Perhaps not if you drive a database, but they certainly will if you're working on any sort of scientific or engineering software. You can have the most trendy, pattern-based, OO design you like, but if you still compare two floating point numbers for equality without a tolerance, you're not worth the first day's pay.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  233. Summary of Dan's List by Lally+Singh · · Score: 1

    "I want colleges to train my employees for everything I need now. Actual education is a waste."

    Quite honestly it's shortsighted antielitism like this that's been fucking our industry and country over for the last decade. Man, I've gotta start looking at foreign software companies...

    --
    Care about electronic freedom? Consider donating to the EFF!
  234. Re:The choice of degree matters less than attitude by hackbod · · Score: 1
    Have you programmed in ML? Lisp? What about Prolog?


    This is a good point -- learning languages that use the same paradigm as one you already know (such as procedural or OO) is fairly easy, but learning a new paradigm is hard.

    But guess what? The typical CS coursework does teach you different language paradigms, because that is a fundamental part of computer science. For example, back when I was in school, the introductory "Artificial Intelligence" course was really a "functional programming with Lisp" class. There was also a specific course on ML, to educate on a lot of the new language concepts that were being introduced there. And one of our professors was doing research on multi-paradigm programming, so you could take his class to broaden your foundation even more.

    All of this means that you get grounded in the theory and concept, which you can then take and apply to any specific language you need to use.

    Btw, my suggestion for a rounded CS education: get a good CS foundation from your course work, but also make sure to do an internship and/or practical coding on your own. For example, there is a lot of opportunity these days to get involved in open-source projects, and being able to put this kind of experience on your resume (with code you have written that someone can actually look at) is a big plus.

  235. I don't know... by spdt · · Score: 1

    I'm a C and VB programmer, and I picked up Brainfuck pretty quickly.

    1. Re:I don't know... by Reverend528 · · Score: 1

      Actually esoteric languages are a useful test to give potential employees. If they say that they can learn any language in an afternoon, ask them to implement a rot13 in brainfuck or a quicksort in intercal.

    2. Re:I don't know... by ScrewMaster · · Score: 1

      Geez, and I thought PIC assembler was a headache.

      --
      The higher the technology, the sharper that two-edged sword.
  236. If you don't love programming enough... by Jackmn · · Score: 2, Insightful

    to learn on your own time what isn't taught in your CS course, then it's time to consider another career.

    Programming is hell if you don't love it.

  237. Re:no by nine-times · · Score: 4, Funny
    Over the next few years the postition of IT Support Engineer will reduce in standing until it reaches equality with that of building maintenance engineer.

    What are you talking about? I'm a Helpdesk Manager, and I already get treated worse than the janitor.

  238. Re:no by murr · · Score: 2, Insightful

    As opposed to myself, my primary job these days is programming in perl. Do you think I was ever "taught" perl? No, we did C, C++, Java, etc.

    My undergraduate studies (which started in the mid-80s) basically taught me Pascal, Modula-2, and Oberon (guess which school I attended :-). This hasn't exactly prevented me from getting gainful employment.

    On the other hand, I wouldn't be able to do my current job without Linear Algebra, and there are many days I wish I'd have paid more attention in all my math classes.

  239. "Getting" a job by EEBaum · · Score: 3, Insightful

    Sure, these courses may not be essential for getting a job. However, they're quite handy when it comes to keeping a job. Just about anyone who's read a tech book can code. Knowing how to write code that is computationally efficient, and knowing how common concepts work, will get you much farther. If all you've done is learned a bunch of languages but not the theory behind them, you have a lot more catching up to do when the next language comes along.

    --
    -- I prefer the term "karma escort."
  240. Re:The choice of degree matters less than attitude by Senjutsu · · Score: 1

    Have you programmed in ML? Lisp? What about Prolog?

    Yes, Yes, and Yes. Non-Procedural Programming was one of the requirements for my CS degree ;)

    Which is one of the major benefits of a truly good CS program; it will expose you to a wide variety and languages and language types, along with giving you a good grounding in theory. The more languages (from as many different styles as possible) you're already familiar with, the more trivial it is to pick up $NEW_HOT_LANG, especially given how similar so many of todays "must know" languages are (If you have any experience with Java, C# is an afternoon of messing around at worst, for instance).

  241. Wrong by Tom7 · · Score: 2, Interesting

    I doubt I'm the only one saying this, but let me reiterate:

    * A Computer Science degree is not primarily about getting a job
    * Understanding theory does in fact make you a better, and more employable, programmer

  242. Re:no by Anonymous Coward · · Score: 0

    There's more to working in software than just knowing specific languages. Process, patterns, communication and cooperation. If CIS can give you a significant edge in those areas, consider it.

  243. Re:The choice of degree matters less than attitude by jwiegley · · Score: 5, Interesting
    Disclaimer: I am a university professor in CS. So, clearly, I believe in the value of a university education. But I'll try to explain why...

    "I didn't learn C# in Comp Science but I could learn it in an afternoon.." I'm a young guy (22) and I've been programing professionally for nearly four years and I can tell you that this is simply false. Make no mistake about it, I'm still no coding grand-master and probably wont be for another ten years.

    I think your statement here sums everything up nicely in favor of university degrees. You don't have such a degree, you can't learn new languages fast, can't recognize that ability in others and after four years you're still not an expert at the one language you do know and use daily.

    Aside from the exaggeration of "[one] afternoon" which I agree is insufficient. You believe it's impossible because you yourself are unable to accomplish it due to your limited vocational training. Then you falsely project your own limitations on to others. As other posters have replied: yes. with a well grounded backround in theory and fundamentals it is possible to pick up yet another language in a very compressed period of time. (Though some of us benefit from an advantage in age over you.)

    I have been proficient in the past with Fortran, Pascal, Modula-2, LISP and various assembly languages. I am currently proficient in Perl and shell and an expert in C, C++ and Java. (not trying to brag, a lot of /.ers have similar, or larger, skill sets and will relate to the rapid shifts in technologies that result in such sets.) The last job I took up required teaching advanced data structures in Java; a language I hadn't touched before the first day of class. Within one week I was productive in the language, within two proficient and within a month I was expert and using most of the advanced features of the language. I can't count the number of times my employment positions have put me in such a position where the programming requirements of the job have changed abruptly. I have always been ready to adapt to the challenge in a very, very short time frame and I believe this is due to my university-based education. I'm not afraid to change jobs or be fired because I know I can adapt and be valuable and productive in any new environment.

    Here's two more examples:

    1. Never during my education in CS did I expect to become a programmer and systems administrator for a Nortel phone system. But it did happen. I was ready for it and saved my company a lot of money in consulting fees because a dedicated technician didn't have to be called in to fix little issues.
    2. Second example: One of my students obtained a job with an aerospace company and it was my responsibility to monitor them for a year to make sure everybody was happy with the arrangement. I asked what they were working on and they replied "debugging HPL programs. I've never even heard of HPL! How am I suppose to know this?". I said "neither have I. How are you doing at it". They said "Fine."
    They were "fine" because they had the necessary theory fundamentals squared away. I would trust this student to pick up anything new and previously unknown in a short time period. In general, I would trust university educated people to have this adaptability more than vocationally trained peopl.

    I'm really sorry for all the excellent, creative problem solvers you turned away because of your bias towards a single answer. "I don't know" is a perfectly acceptable answer (in any context) and doesn't, in itself, indicate an unworthy candidate. "I don't know; but I can learn it real fast" can indicate a truly flexible, useful person. Your loss; not the candidates.

    --
    I will never live for sake of another man, nor ask another man to live for mine.
  244. MOD PARENT UP by Anonymous Coward · · Score: 0

    wisdom speaks.

  245. Re:The choice of degree matters less than attitude by Pr0Hak · · Score: 1

    This is a fair point, but one which I think most CS programs deal with well. Most CS degree programs require one or more "programming languages" classes in which students study and analyze the major language paridigms.

    For instance, the languages class that I took as an undergrad CS major not only studied functional, logic, OOP, and imperative languages, but we actually wrote interpreters from scratch for a small language of each type.

    I feel that this cirriculum prepared me well to learn both new languages, and even new language paridigms (although almost all languages fit into one of the above categories)

  246. Do you want a job or a career? by LazyLawyer · · Score: 5, Interesting

    I got my CS degree in 1984. It's still useful, because they taught me theory, The languages they used (Pascal, PL/1 and LISP primarily) aren't.

    My enthusiasm got me jobs. The degree only helped.

    When I went to law school, almost everything I learned was theory. When I started the practice of law, I knew virtually nothing about actually running a trial. Now, I'm writing the book, and a publisher pays me for it.

    Much of what I learned from the practice of CS and of law could have been taught at a trade school. 95% of the time, my work would be competent.

    But that remaining 5% distinguishes between a tradesman and a professional. As a prosecutor, cross-examining the defence's psychologist or engineer, I have the advantage of knowing the basic theory behind their disciplines, because of the courses I took at university. I only tinker with writing software now, but I grok the new languages fast enough (when I get the chance to turn my mind to them).

    I don't knock the trade schools. Enthusiasm to learn takes some people all the way through the theory they need to be pros. They don't need a university degree to be good.

    And uninspired university graduates are so useless that should not be permitted to do anything important. I wouldn't hire them.

    I remember that IBM used to hire only people with university degrees. Not just CS. Any degrees. IBM wasn't interested in what they learned at university. They wanted people who had the the enthusiasm/fortitude to slug their way through dry theory. A degree proved that the kid could work. Isn't that what an employer wants?

    So what do you want? A job or a career? How much do you want it?

    1. Re:Do you want a job or a career? by Tim · · Score: 4, Insightful

      So what do you want? A job or a career? How much do you want it?

      I think that there is a deeper subtext to your post than you are emphasizing.

      Look at your career: you earned a CS degree. You worked as an engineer. Then, you went to law school.

      Granted, you don't tell us why you made that decision, and I'm not going to speculate. But I am going to generalize, and say that your story is becoming the norm, and not the exception. I know a huge number of people who have switched careers mid-track. And the funny thing is, I see a correlation with intelligence -- the smarter the person, the less satisfied they are with their first career.

      Why is this the case? Who knows? But I think it's significant, and I think it speaks to the way that a student should treat his/her college education: Try things. Experiment. Learn ideas, not facts. Learn how to read. Learn how to write. Learn how to live.

      I speak from some experience here -- I spent a huge amount of time as an undergraduate studying the technical, and very little time learning about books, music and culture. Today, I'm a technology burnout. I would much rather read, write, paint, draw, photograph or perform -- basically, anything but spend the rest of my life sitting in front of a computer. I wish I had done things differently.

      Perhaps, had I balanced my education a bit better in college, I wouldn't be facing this problem today. Perhaps not. But either way, I would be much better prepared for the difficulties of life, had I spent a little less time treating college like a trade school for science and technology....

      --
      Let's try not to let fact interfere with our speculation here, OK?
    2. Re:Do you want a job or a career? by Bishop · · Score: 1

      had I spent a little less time treating college like a trade school for science and technology

      I made the same mistake.

      It is a lesson I try to pass on to new students. Unfortunately, as demonstrated by the editorial and posts here, it is a lesson that few people want to hear.

    3. Re:Do you want a job or a career? by drgonzo59 · · Score: 2, Insightful
      Exactly!

      Knowing the time complixity of sorting and searching algorithms, data structures, different programming paradigms (oo, procedural, functional etc.) is something you can always rely on next year, or 20 years from now, but is not something they will teach you at a community college.

      What you need is BOTH. Finish your BS at a University, learn about algorithms, data encoding, database theory, AI, optimization, machine learning, HCI theory, data security, networks, then as your electives go to that university's evening college and take some classes on Java, C++, C#, Apache, MySQL, Oracle or whatever applied classes you need for a short term. This way you'll be set for short term and long term.

      There is a reason that there are CS degrees out there, it is not just a big conspiracy to scam students and take their money. Some things you will learn will seem boring until one day it all "clicks". When you have to make a decision to use a HashMap or an ArrayList (warning: crazy java talk) you will remember about big-O, about Hashes, about data structures and other stuff like that. It will be helpfull, trust me.

      The fundamental question is what kind of jobs did you mean? Did you mean "code monkey" jobs where you re-write someone's code in a new language, or creating web-pages, or mentaining a server farm? If you plan all your life to do just that, one particular thing then take just a couple of community college courses and you are done. But don't complain 5 years later that you are stuck in a dead end job and nobody will hire you.

      Another thing your university career should show is how well can you learn. Your GPA is an index that says "This person can learn new stuff if he puts his mind to it and here is the proof". Don't listen to people who say GPA doesn't matter. It does! It shows that you can learn English, Economics, Calculus, Computer Science, Math, Basket Weaving (well maybe not this one...) if you want. I would want to hire you because anything I throw at you, you will learn. (Imagine the difference between an adjustable wrench and a fixed size wrench.)

    4. Re:Do you want a job or a career? by Anonymous Coward · · Score: 0


      This, friends, is why business school is so popular. You can switch up at any time, and the information is always relevant.

      I've been in SA, NA, and am now a programmer. I'm fortuante enough to be able to "zig zag" when I really dislike something, but the stuff I learned in business school is priceless everywhere I go.

    5. Re:Do you want a job or a career? by Grishnakh · · Score: 1

      Look at your career: you earned a CS degree. You worked as an engineer. Then, you went to law school.
      Granted, you don't tell us why you made that decision, and I'm not going to speculate.


      I can tell you why he did: he sold his soul to Satan and turned evil.

      And the funny thing is, I see a correlation with intelligence -- the smarter the person, the less satisfied they are with their first career.

      I'm not all that satisfied with my first career either, but I'm not ready to become evil and go to law school. I'd also have to get a divorce because my soon-to-be wife hates lawyers with a passion. I'm thinking that starting my own business would be a good alternative. I could keep my wife, do something I mostly like, and not be evil. I could also feel good that I'm still contributing something to society, instead of being a leach on society like lawyers are.

    6. Re:Do you want a job or a career? by Ed+Avis · · Score: 1

      If I interview people, I always ask them about computability or complexity classes or type theory. Knowing the theoretical stuff is a better predictor of practical ability than anything else I could test in a phone interview. If you want a Java programmer, someone who has studied modal logic or compiler design (and understands it) is likely to be a better hire than someone who took the course in Java programming.

      --
      -- Ed Avis ed@membled.com
    7. Re:Do you want a job or a career? by Peter+La+Casse · · Score: 1

      I've often heard it said that it's silly to expect a university freshman at age 18 to decide on a course of study that leads to a specific career before they actually know what real work is like (and, therefore, before they know if they would actually enjoy working in that field.)

    8. Re:Do you want a job or a career? by LazyLawyer · · Score: 1

      I can tell you why he did: he sold his soul to Satan and turned evil.

      I guess you didn't notice in my original post. I'm a prosecutor. I spend my time proving the guilt of people accused of crime.

      Most of the folks who say lawyers are evil make an exception for us prosecutors. And it's true that I do accept somewhat lower wages in return for the satisfaction of helping victims.

      I'll admit that this profession does attract more than the average number of unethical people, but the perception is worse than the reality. I know a many defence lawyers who are honest generous people. (But most of their clients aren't.)

      I won't ask you to change your fiancee's mind. but please keep yours open.

      I'll offer this tip for everyone: If you need a good lawyer, don't the clients if their lawyer was good. It's easy for any lawyer to look good to the client. Instead, ask other lawyers. They'll know by painful experience who's effective, and who's all show.

    9. Re:Do you want a job or a career? by Grishnakh · · Score: 1

      I'll admit that this profession does attract more than the average number of unethical people, but the perception is worse than the reality. I know a many defence lawyers who are honest generous people. (But most of their clients aren't.)
      I won't ask you to change your fiancee's mind. but please keep yours open.


      Well she worked in law offices as a legal secretary for 16 years, and the horror stories she told me about the treatment she endured there absolutely shocked me. Granted, I don't think she worked for any criminal prosecutors; all the stuff she did, to my knowledge, was civil, and had to do with things like medical malpractice, insurance settlements, etc. She finally quit, with my help, the entire profession because it was causing her so many health problems.

      Maybe you can answer me this (although if you're a prosecutor you may not experience in private law firms); why is the legal staff treated like shit in these places while lawyers are raised up on a pedestal? I work in a large corporation, and we simply don't tolerate the blatant unprofessionalism and favoritism that goes on in those law offices, so hearing about it was quite shocking for me. While dating her, it became quite common for her to come home with all the stuff from her desk, because she was fired for some stupid reason. One day it was because she left work early, even though she had given plenty of notice. The attorney she was working for was pissed because she wanted a bunch of dictation done at the end of the day. Apparently, being told in the morning that she needed to take off early for an appointment just wasn't good enough for her.

      And what's the deal with female attorneys? From what I hear, they're the worst of all, constantly spreading gossip, getting staff that they don't like fired, etc.

      Apparently, the only type of person that works out well in a legal staff job is one who's extremely meek and submissive, and will happily accept any verbal abuse the lawyers want to hand out because it pumps up their inflated egos. Anyone who refuses to accept being screamed at on a daily basis is fired.

      But the really strange thing I noticed was how this type of behavior was outright accepted. My fiance would frequently come into a law firm as a temp, and put into a position under an attorney because the law firm couldn't keep any secretaries there--they were all either fired or quit. Mind you, this isn't some dinky two-lawyer law firm, but a huge company with a head office in another state, a big high-rise downtown, and letterhead where all the partners listed out, in small type, takes up the top half of the page! Why is it when an attorney is a complete asshole, and they can't keep any staff working for this person, that they don't (horror of horrors) fire the asshole attorney??? In my company, if an engineer was a complete asshole and mistreated people, he'd be fired in a heartbeat, even if he was some high-grade principal engineer. Why are attorneys exempt from having to practice basic civility and professionalism in an office environment?

      If this only happened once or twice, I might not believe that the entire law industry were like this. If I didn't hear my fiance tell me all kinds of weird stories over and over, all at different places with different people, I might believe it was just her. But you can smell bullshit, and the sheer volume of what she told me, at different firms, over a very long time period, certainly convinced me that the type of people that become lawyers are by and large evil. There were a (very few) exceptions in her career, but they were extremely rare.

      Anyway, you may not be in a position to know about any of this. I noticed you spelled "defense" the British way, so maybe things are better over there, because from what I've seen, it's pure hell over here. I would never recommend anyone to seek a career working as staff in a legal office.

    10. Re:Do you want a job or a career? by LazyLawyer · · Score: 1

      I'm in Canada, actually.

      Your reply explains a great deal.

      In my niche, we have a joke: "Criminal lawyers treat each other civilly, but the way civil lawyers treat each other is criminal."

      It's a joke, but it contains a kernel of truth. I think the problem relates to the objectives. In civil law, they squabble over money. The larger the sums of money involved, the more petty the squabbling can be. But we're talking about humanity here. There are always exceptions.

      Why do lawyers have such huge egos? Necessity. It's a reflection of their clients' needs. Litigation is a high-stakes contest in which the other side will seek to capitalize on your weaknesses. To survive emotionally, one must have great confidence in one's cause, and one's ability to present it. The client needs someone with massive self-confidence.

      Why do lawyers behave like jerks to their staff? Insecurity is one. The constant fear of failure just makes it worse. And it's a terrible shame. Being rude to your staff adds to your risk of failure. I find that happy staff go the extra mile for me. When the stakes are high, that matters.

      If your wife worked as a legal temp, then she naturally wound up at the places that couldn't keep their staff. The ones where the lawyers were jerks. If she worked in the biggest towers downtown, then she worked where the competition between lawyers is most fierce, where the egos and the insecurity play the worst mischief. I feel for her.

      I successfully avoided that rat-race. I started prosecuting in a remote northern town ("I'm just a simple country lawyer..."). My role is also a bit different. We have another saying here: "The Crown never wins nor loses." If the evidence doesn't prove the guilt of the accused, then the prosecutor is not to blame. So my stress levels are different.

      If she needed to work with lawyers again, she should find a small office where the staff don't change much. After the lawyers interview her, she should interview the staff. Privately. Some law firms are families that stick together through good times and bad. My father's staff were like that. They really loved him.

  247. Mr. Asimov had something to say on this topic by Anonymous Coward · · Score: 0

    Isaac Asimov wrote a short story about this very issue. I read this in the sixth grade, and that was about 40 years ago. Here's what I remember about it.

    It's about a student who is depressed because he has to take general studies classes while his friends get to take specialty stuff. It turns out that his friends have a tough time as their specialized (and shallow) knowledge becomes obsolete. He, on the other hand, has been being groomed to help design these new technologies with his more generalized (and thorough) education.

    Can anyone remember the name of this story? I'd enjoy reading it again.

  248. Re:no by Anonymous Coward · · Score: 0

    I agree, but vocational doesn't even really teach you how to code, or at least to code well. If you know your data structures, understand algorithmic analysis, understand processor utilization and memory management... Computers are dumb, they just do what we tell them to. If we understand how a computer works, we can tell to do more things more efficiently. That means that in a production environment, trained computer scientists can save a project money by getting more done with less, faster, and with fewer bugs.

  249. It all boils down to by einhverfr · · Score: 2

    Focus on substance, not on trends. FWIW, I don't have a CS degree. I stopped taking certification exams three years ago (I will be taking the PostgreSQL CE exam by SRA merely as a way to help them improve the exam). FWIW, most of my background is in history, but I have a fairly strong math background as well which helps a lot. Heck, I make my history background work for me too but that is another matter (Occam's Razor makes a great software design principle, but you have to know what William of Occam attually said for it to make sense in this context). The computer science I have learned, I have picked up from discussing technical issues with CS professionals.

    I see nothing wrong with your program though. I run across way to many people who either have CS degrees without a real understanding of the theoretical underpinnings, or a real desire to go and figure something out using the training they have. This is probably the reason why so many end up in jobs outside CS. Yet those I have known who *do* deeply understand the theoreticals and really want to figure things out often go and do very interesting work. Again it depends on the person and whether CS is really what they wanted to do.

    If you want to have a buzzword complaint resume, by all means change course. However, this is very short-sighted in my opinion. If you really want to go deep into CS, then learn the theoretical underpinnings, get internships to flesh out your resume with real experience (or maybe contribute to FOSS software like PostgreSQL) and go for it.

    --

    LedgerSMB: Open source Accounting/ERP
  250. From the article.. by Anonymous Coward · · Score: 0

    >> So why can't computer science graduates tell me when to use SAX and when to use DOM?

    Because you haven't explained to him what the latest, faddest acronym in (originally) java land means. If you were to ask the CS graduate when to use a 'streaming' vs. when to use a 'buffered' API, I'm sure he/she would come up with the right answer.

  251. perhaps by Norny · · Score: 0

    To get the skills you're wanting, you'll have to work through college. You should do that anyway to put experience with academics for a more well rounded resume.

    You should go to college to make sure you mature intellectually beyond high school. In educational learning theory, you're developing your metacognition so you're able to critically analyze your progress in whatever you do. I'm convinced going to university won't give you skills, it gives you a club card that allows you access to the levels of other elites. Unless you own your own business, nobody will really ever respect you in the job world with a high school diploma and a trade school (where you would actually learn skills) degree.

  252. ehhhh... by db10 · · Score: 1

    It occurs to me that if you take courses in computer science, then end up not using any of these skills... ...it is simply poor planning on your part. If you are just a gruntbugger maintaining other people's code designs, it's a little different than an software architect that designs systems... where surely one would apply knowledge gained from a variety of courses?

  253. Re:The choice of degree matters less than attitude by Dachannien · · Score: 1

    The parent of my post was saying, essentially, "You learn one language, you've learned them all," which is what I was refuting.

    In case you were being non-rhetorical, by the way, I've TA'd (and guest lectured during) two separate semesters of the programming language theory course you mentioned. But when I was first learning Lisp, ML, Prolog, etc., I was an EE undergraduate student, not a CS graduate student, so I hadn't yet been exposed to the sort of coursework that would teach me about different programming paradigms. In other words, I've seen things from both sides of the fence (wrestling with programming languages whose syntax is only the beginning of their differences, to later understanding why that can be so difficult).

  254. Theory *and* practice by kabdib · · Score: 1

    I took all the CS theory I could in school. I coupled this with hands-on experience as a co-op at a local company (bonus: The job helped pay for school, and having access to the computing resources at work didn't hurt, either).

    Jobs are great at teaching you everyday mechanics and social stuff (how to check in code, how to negotiate compromises in products and actually ship stuff). CS is for making you a good problem solver. Don't expect anything lasting out of the "Sams" courses -- for instance, once you've taken a good course on compilers, you'll be able to pick up (say) VB in a few days (assuming you want to at that point).

    --
    Any sufficiently advanced technology is insufficiently documented.
  255. Re:no by Anonymous Coward · · Score: 0

    Oh come on, perl practically _is_ C/C++/Java... It's not like it takes a massive leap to jump from being proficient in C/C++/Java to being a decent perl hacker.

        "Learning to Learn" is the kind of BS people use to justify the fact that they wasted a shitton of money on 4 years of useless, simple crap and then had to teach themselves in order to hold their own in the real world.

        You're totally right about being able to learn XML from a book, but you certainly don't need to go through 4 years of college to learn how to read, do you?

  256. Robert M. Pirsig's view on a university by svin · · Score: 1

    When seing "my college doesn't teach me anything useful" debates, I am always reminded of Robert M Pirsig's description of a university in Zen and the Art of Motorcycle Maintenance:

    The real University, he said, has no specific location. It owns no property, pays no salaries and receives no material dues. The real University is a state of mind. It is that great heritage of rational thought that has been brought down to us through the centuries and which does not exist at any specific location. It's a state of mind which is regenerated throughout the centuries by a body of people who traditionally carry the title of professor, but even that title is not part of the real University. The real University is nothing less than the continuing body of reason itself.

    What you IMHO should learn in university is to become part of that great heritage of rational thought. Or as other poster's have described it: "To learn how to learn".

    PS. Great book BTW. It's really worth a read.
    PPS. This might be a bit lofty view, when you have to get up at eight in the morning to go to classes ;)

  257. Computing Curricula 2001 by Anonymous Coward · · Score: 0

    Here you can find out how many experts think a undergraduate program in computer science should look like. http://www.computer.org/portal/cms_docs_ieeecs/iee ecs/education/cc2001/cc2001.pdf

  258. whats the difference? by mseidl · · Score: 2, Insightful

    ok, first off, dont take this as me bragging, but, to illustrate a point, I will compare, me and my brother, since the background is similar.


    Me and my brother are almost 4 years apart. We both grew up on computers, and we both used them a lot. My brother is in his 2nd year at a university studying cs. My brother did better in school then i did. I have not yet been to a school after highschool.

    I recently said to my brother , "My friend is building a dual dual core opteron box" and he asked me, "what is an opteron"

    I mention other hardware stuff and he was completely clueless as to what cache was, or a system bus. So, i will give him the fact, maybe he is a software guy, and not a hardware guy. I have a friend who makes 90k/yr programming at ms, and he couldnt install the heatsink on his p4. I had to do it. go figure. So i start talking about software stuff, and he is completely clueless about that. so, here is where i begin to worry. he doesnt seem to know a lot about computers, and after further probing, he really doesnt know much at all. and I wonder. we pretty much spent the same amount of time on a computer, why is he so clueless?

    One word: Passion

    I have a real passion for computers, you can hear it in my voice when i get über excited about the 2gb of ram I just installed. or the one kilo fanless heatsink i just installed. He doesnt. He just says, cool. I never hear him get excited about anything tech wise. I can code ok. SO, can my brother. only in java. Im a linux monkey, he is a windows mouser. So, who do you want? Someone in school? or someone who cares about what he does? Do you want someone who actively partakes in the programming community and is productive with his computer or do you want someone who as soon as the homework is done starts playing games?

    I love my brother, but, I honestly dont understand why he is taking cs. But, this was to just illustrate a point. My brother is not the only person like this. I know many cs grads that need my help in fixing their computers. or how much they dont know overall.

    My last roomate was a technical recruiter. Everyday he would come home from work and say, hey - i have the perfect job for you. We would always talk about tech stuff, and I could always answer his questions. without any problems. Funny how that works. anywhoo... there are plently of uneducated computer junkies that know a lot. there are also plently of uneducated computer junkies that dont know sh*t. there are plently(mostly, from what i have encountered) cs grads that dont know shit. there are also some who do.

    My point is this---Education doesnt matter, the person who takes advantage of it, or doesnt. Do they grow from it and use the knowledge? or does it become statistical junk? Do they become an individual or do they become just another product of the wonderful education system of the USA?

  259. Re:The choice of degree matters less than attitude by stevejs · · Score: 2, Insightful

    It is trivial to do trivial things in any language. It is not trivial to do engineering in any language. "the 2nd coming", apparently believes syntax and libraries are the only differences between languages. That is wrong.

    Many people mistakenly believe Java and C# are practically the same. Unless you are talking Scheme vs Lisp few have as similar syntax. Yet there are many differences, and the implications of those differences for engineering in each language is much larger. Java and C# are the same if you are not doing engineering in them ... but they are meant to be production languages so the seemingly trivial differences loom much larger.

    Will a day of learning syntax help you understand the difference in how generics are implemented in Java 1.5 vs C# 2.0? Do you think the difference won't matter in how you should use generics in the language?

    Learning a production language at university is a distraction, because you are trying to _learn_ useful long term principles. You are not trying to _apply_ them to a production system. Eventually will need to do that in a job, and the path from junior to senior engineer is the time to do that learning.

    Don't take a class at school about C#, or Java, or C++. Learn it yourself, by making and maintaining a long term hobby project. Just don't underestimate how deep is the problem space around learning to be effective in a language.

    The problem with University education is not the lack of learning production tools. A University is not a trade school. The problem is the lack of perspective given to students about what will be important if their goal is to be a software engineer. You don't need to learn at school all the details that come with experience. However, it is a disservice that most students leave school with the wrong idea about what their future path of learning needs to be.

  260. most of my MIT C.S. courses were useless by peter303 · · Score: 1

    Of the dozen or so MIT computer science courses at MIT, most of them are now useless because the field changed a lot in a couple decades. But the important point was to continue to learn . At MIT maybe I learned 15 computer languages, none of them commmerically useless. I estimate I picked up another 15 since then, probably about four them commercially useful. And still get paid very well for this semi-useless learning.

  261. Re:The choice of degree matters less than attitude by BeeRockxs · · Score: 1

    IF you had taken a theory of languages course in a respectable BSCS program, you would know that the first two are functional program languages while the latter is a logic programming language.
    My teacher in our computer science class in 12th grade here in Germany taught us that.

  262. Re:no by Anonymous Coward · · Score: 0

    > Now, I do not know of any CSers that are
    > unemployed...

    Are you sure you don't want to retract this
    or clarify? It sounds like you're trying to
    say that anyone with a CS degree can get a
    job right now. Of course we all know that
    isn't true and there are tons of people with
    CS degrees who are unemployed right now (mostly
    because of overseas outsourcing and H1B and L1A
    visa programs).

  263. Re:no by ultranova · · Score: 1

    I'm a Helpdesk Manager, and I already get treated worse than the janitor.

    Well of course. If computer management fouls up, then in the worst case no one can do any work and has to go home early. If, on the other hand, janitor fouls up, the bathrooms are going to become truly vomit-inducing places...

    Janitors are more valuable than computer staff to employees, altought not neccessarily to employers, so better treat them better.

    --

    Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  264. Code monkey or developer? by SirKron · · Score: 1

    Simply put:

    Complete all the CS courses to become a developer.
    or
    Quit your four-year program, enroll in a two-year program where they teach you one language and become a code monkey.

    These courses are fundamental for you to think like a developer.

  265. Choose courses that will help you in 15 years time by Anonymous Coward · · Score: 0

    I got my B.Sc. in 1991. Back then people argued about whether Pascal or Modula-2 was the right imperitive programming language to teach. It's obvious that your degree cannot be about details like programming languages that will change totally before you're even a third of the way through your career. If you want to learn programming languages, contribute to open-source projects and do internships.

    What you should be learning in your degree is stuff that will still be true in 20 or 30 years time. That means things like computational complexity, logic, numerical methods, and so on.

    It also means learning skills like "design". This is much harder to teach. If you're concerned about your employability when you graduate I'd suggest you focus on this sort of thing. Do a really good ambitious final-year project. Ideally make it a group project with about 4 to 6 people contributing. Show your employer that you can work efficiently in a team and produce good documentation. This will be much more impressive to them than the number of languages you can list.

  266. Re:The choice of degree matters less than attitude by Animats · · Score: 1

    Learning a programming language isn't a big deal after you've learned a half dozen or so. But today, each one comes with an API of several thousand buggy functions you have to learn. That's the hard part. And it's so unrewarding.

  267. Re:The choice of degree matters less than attitude by Nasarius · · Score: 2, Interesting
    I'm a young guy (22) and I've been programing professionally for nearly four years and I can tell you that this is simply false. Make no mistake about it, I'm still no coding grand-master and probably wont be for another ten years. When somebody says that they can learn a language in an afternoon it doesn't make me think they're lying, it just makes it blatantly obvious how ignorant they are of intricacies of writing code.

    I don't know about C#, but I learned Tcl and Python in about two days each. I do the following:

    • Learn the language philosophy. Just get a very basic feel for what its creators intended, dynamic/static weak/strong typing, how it handles polymorphism and inheritance, etc.
    • Learn the syntax.
    • Read the style guide. Most mature languages have a semi-official style guide. It will usually save you a whole lot of time and frustration

    That takes maybe 3-5 hours. The rest of the time is spent coding with the API reference at your side. I'm only just started my third year of a CS degree (along with Chemistry).

    The fact of the matter is that most languages you'll be using are object-oriented imperative languages. Once you've played with languages like ML and Prolog, you'll realize how similar they all are. The "intricacies of writing code" are mostly design and algorithm choices. Figuring out how to execute the design in your language of choice is trivial.

    --
    LOAD "SIG",8,1
  268. CS degree not enough for a career by oldCoder · · Score: 1
    There is a surplus of programmers and software engineers these days. If you want to get a CS degree you'll need another degree (I'd recommend an MBA) to go along with it. That way you can be the idiot in charge instead of the other way around.

    The science/engineering dichotomy makes some sense. The Physics and Chemistry undergrad 4-year degrees are preparation for graduate school (Masters and Ph.d), while the engineering degrees are preparation for work or for grad school.

    After decades of trying, Software Engineering has finally split off from Computer Science as an undergraduate degree in a meaningful way. Unfortunately, the theoretical stuff is too theoretical and the practical stuff may not last very long. While lisp and RPG programming are still alive (and both were said to be obsolete in the 1960's), lots of technology dies. XML may be gone in a few decades, and hopefully Java, too.

    No matter what you do, when you go for your first job do NOT put the word "Test" on the resume (CV) anywhere. If they ask you whether you tested your software, tell them no, it just worked. And that in team projects the other guys did the testing. Most CS grads do not get jobs writing software. A lot get shoved into testing, which is not what they want. If they offer you a job in testing, just say no. If you once get a job in testing on your CV, you can never leave it.

    In order to answer your questions in further detail, we have to know more about you, what your plans are, and what your goals are. If you're after money, go into business. If you want to code, take as many coding AND CS courses as you can. Even SQL.

    In any case, try to code in as many different languages as you can. And languages that are different, not just variations on the theme of OO.

    Some topics are only prep for grad school, you won't get a job with only a 4-year degree: AI, robotics, graphics, computer vision, machine learning, and probably game programming.

    The following are immensely practical: automata theory, compilers, set theory, predicate calculus, Boolean algebra, algorithms and data structures, searching and sorting, SQL, and specification systems, among others. And by all means learn what TLA stands for.

    And do consider learning Hindi, as the guy said.

    For the last several decades, employers want somebody with 2 or 3 years of experience. Any more or less and they won't hire you. Not everybody, of course.

    --

    I18N == Intergalacticization
  269. YOU matter by stevef · · Score: 1

    I'm getting sick of this line of question... only YOU matter. If you're smart, you'll get a good job. If you're dumb, it won't matter what courses you take. It'll all balance out in the end.

    Steve

  270. Missing the point by aeroz3 · · Score: 0

    Dan's point isn't that CS is not useful, just that CS degrees don't cover everything that is really required to be a true software engineer. I don't think that he's making an argument for CIS or "vocational" programmers, we all know what road that leads down. I have my BS in CS and my masters from Carnegie Mellon in Software Engineering and I think that it is combination of the two that really qualifies me to be a good developer.

    The fundamental problem with CS degrees is that there is ZERO focus on the business aspects of softare: management, design, process, etc. They teach the (very very important) fundamentals of programming languages, computer theory, etc. but they don't teach process, or give any sort of business sense. Students don't learn anything about development lifecycles or software architectures. This means that the average CS graduate is only suited for the build phase of development, often times, they don't have any realization that there is any other phase!

    The solution for this is not to add vocational training to CS curricula but to add courses in software design (architectures/patterns/uml), software processes/lifecycles (waterfall, spiral model, evolutionary dev., CMM, ISO-9001), and software project management (business tradeoffs of software, business reasoning).

    These courses should be in addition to the fundamental courses in operating systems, computer architectures, data structures, programming languages.
    The addition of this sort of coursework would provide the foundation required for CS students to enter the workforce as Software Engineers capable of working on all phases of software development projects.

  271. Numerical Analisis by S3D · · Score: 1

    I think the Numerical Analisis is the only must have form the list. Not for getting the job, but for performing it. Whatever you will do, you will stumble onto floating point sooner or later, and there you have to understand precision, errors, numerical instability, floating point matrices etc. Whatever AI and machine learinig you may need you can learn it yourself. There is not much practically usefull theoretical staff there.

  272. Technology versus science by starfishsystems · · Score: 2, Interesting
    The shopping list that Dan Zambonini has come up with is fine, as far as it goes. I'd consider someone who'd mastered that list to be well qualified as a computer technologist. He's chosen subject matter which is widely applicable and technologically stable. So this could be an appropriate curriculum for a good technical college. Most colleges, in my experience, fall far short of satisfying this list, so I'd agree that there is definitely room for improvement.

    But it's not science. It could be argued that a typical computer science curriculum doesn't teach much science either. Quite possibly the coursework needs to be strengthened, though I know from my modest contacts with curriculum development that in practice it very much depends on how fast students can absorb the material and consider its implications. Faculty discuss this challenge all the time. To get the basics of computer science in four years is, not surprisingly therefore, about the same process, and about as hard, as doing the same thing in chemistry or any other scientific field.

    So it seems inevitable that improvements to the computer science curriculum will move it some distance further away from Zambonini's shopping list than it is already. Science, after all, is a systematic discipline for discovering the nature of the universe.

    I notice that Zambonini is not in the least concerned about that. So why look to a science degree to deliver something that's not in fact about science? You're shopping in the wrong store. Learning how to program, for example, is like learning how to operate a mass spectrometer. Of course you have to master the tools, but in science that itself is strictly not the goal. In a technology diploma it pretty much is.

    --
    Parity: What to do when the weekend comes.
    1. Re:Technology versus science by Feztaa · · Score: 1

      There's a famous quote I'm thinking of, but I forget who said it: "Computer Science is the study of computers insofar as Astronomy is the study of telescopes."

    2. Re:Technology versus science by starfishsystems · · Score: 1
      It was Dijkstra:
      Computer science is no more about computers than astronomy is about telescopes.
      I like it so much that I have it quoted on my website.
      --
      Parity: What to do when the weekend comes.
  273. Re:The choice of degree matters less than attitude by crazyphilman · · Score: 1

    I agree. I have a CS degree and I've been programming professionally for over seven years. Occasionally I find myself having to learn a new language or tool. I've done it enough times that I've even got an algorithm for it. I basically read up on, in order:

    1. all the major constructs of the language, e.g. working with variables, functions, flow control, etc.

    2. handling exceptions (if such exists!).

    3. Interacting with a database, including how to work with transactions

    4. Interacting with the network

    5. GUI design (if such exists)

    6. Any gotchas the other programmers know about

    Once I've figured out these items, which takes a week or two really, I do writeups of all of them and stick 'em in a folder (and on a PDA) for future reference.

    Someone without a CS degree (or any production experience) tends to think about learning a language in terms of reading a 2,000 page book, memorizing it, and so on -- rubbish, of course.

    If they knew better, they could focus their efforts much more effectively. It's all about knowing what to look for, and that comes with education and age.

    Heh heh, being an older programmer myself (35 this month) I deal with a lot of arrogant little shits at work. They think they know everything at 22, then they turn around and build a huge, bloated system all the users complain about bitterly. And I laugh. :)

    --
    Farewell! It's been a fine buncha years!
  274. Only for "Alpha Geeks" by Tablizer · · Score: 1

    The academic-oriented stuff is tuned for the so called "alpha-geeks". That label may only apply to roughly 1 to 10 percent of your class-mates (depending on your university). And, you may not know ahead of time whether you will make it. Getting A's may not be enough. The vast majority of CS students will need more practical "cubicle-warrior" skills.

    Unfortunately, universities tend to ignore this larger group because catering to it harms their reputation. And, business programmers tend not to publish scientific papers because corporations consider most of your work there trade secrets or proprietary. Thus, that group does not boost the universities reputation: their biggest percieved asset.

    However, it is important to understand office politics. Here are some suggested readings:

    * The works of Sun Tzu ("Art of War")

    * Dale Carnegie's "How to win friends and influence others". It can be considered Brown-nosing 101. Dale just finds kinder-sounding euphemisms for that.

    * Dilbert comic strip

  275. Re:The choice of degree matters less than attitude by corngrower · · Score: 1

    You may find you change your mind after trying Prolog, Haskell, or APL.

  276. Drop out & get a job today by Anonymous Coward · · Score: 1, Insightful

    Unless it's your mission in life to be on the government dole^H^H^Hpayroll working for a defense contractor or some federally funded science project, a degree may do very little for you in the long run.

    If you already have computer skills & talent, you could quit college now and make as much money or more in the private sector immediately. By the time your classmates graduate, you'll already have some real life work experience and therefore a superior resume, and may even find yourself as the interviewer when they apply for a job.

    This is basically what I did, and I was able to retire at 39 as a millionaire without ever having taken a single computer class in my entire life. Not one. Ever.

    Had I taken the well-worn route of getting a paper degree and going to work for the government or some defense contractor, I'd still be an employee (though likely in top management) with little hope of retirement in sight, and it would have been far less likely to achieve millionaire status so young.

    A degree is only useful to the extent that it says something about you. It's true a degree will open some doors especially in the short term, but there are other ways to open them, and an impressive work experience & a legendary reputation will open far more doors than any piece of paper ever can.

    Can't a person have both a degree and experience? Sure! But as a practical matter you can only effectively work on one at a time. Once you have work experience, your degree will become increasingly irrelevant. ...All of which begs a question: Why do you really want a degree? Do you really have goals in your life which can only be accomplished with a degree? If so, well great! Go for the degree!

    Or perhaps is it due to all that very impressive marketing of the educational system? Do you feel a need to get some paper degree to validate yourself? If so, then this marketing has been successful, and you're basically just deferring your REAL education - which will only begin when you start working.

  277. University as education for its own sake by xcham · · Score: 1

    There was a time when people went to university (college as you Americans call it) to become educated. When did it turn into a vocational/job training school for people with more money and better marks?

    Seriously, I have no doubt that the CS degree I'm earning will expand my mind and prepare me for life either as an academic or an industry person. There are a section of people at school who always complain that we aren't learning the latest and greatest technologies, to which I respond "go to DeVry if that's what you're looking for". There's no shame in wanting job prep, but a university level education will ultimately prove more valuable with less potential for obsolescence.

    --
    When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
    1. Re:University as education for its own sake by Anonymous Coward · · Score: 0

      There was a time when people went to university (college as you Americans call it) to become educated. When did it turn into a vocational/job training school for people with more money and better marks?

      Good question, and you're right. It did change, at least in America... and I, for one, wish that it hadn't.

      The change involves how secondary education is being marketed to students in America through the channels of both school and family. The prevailing myth in America is that if you don't have a degree, you'll never amount to anything.

      Parents and teachers in America literally drill this into their kids to the point where they are actually afraid of not earning a college degree.

      Because of this marketing, students go to college for "hire education" only to learn (usually after graduation) that colleges and universities aren't very effective at providing marketable work skills.

      Kids attend college with the best of intentions, expecting to land a job after graduation and make more money. That's what they've been told. That's how it's sold. But after graduation many discover they still have no work skills, and end up taking jobs they might have gotten without a degree anyway! Yet they're actually worse off financially, because they now have large student loan debts which need to be repaid. Career-minded college students end up wasting not only their money, but four of the best years of their lives plus the years they subsequently spend working to repay their educational debts.

      In America, college education has changed over the decades from being a noble pursuit into a well-marketed financial scam which provides little, if any, of its promised value.

      The college system isn't solely at fault. It's also the fault of the students who buy into the marketing. And yes, it's still possible to attend college for the traditional goal of pure education. But the skyrocketing cost of tuition these days means that only the wealthier among us can justify such an impractical luxury.

  278. Some good news for you! by Anonymous Coward · · Score: 0

    Here's my two bits:

    Theory of Computation is one of the best possible topics you can be exposed to as a CS undergraduate, in my opinion. It will help you to understand what computers really are and what they are and are not capable of. This understanding, if and only if you apply it, can change the way you think about interacting with these machines.

    Data structures is another super-essential course. Understanding fundamental data structures and algorithms can and probably will change the way you write code-- and will do this because the understanding will change the way that you think about problems.

    As to the others, they may or may not be useful to you. What you have to ask yourself is "what kind of programming do I want to do?" (I think the author of that article was also heading down this track.)

    The reason is this: Yes, there are indeed a lot (perhaps even the majority) of programming jobs out there that you don't need any sort of understanding of proper computer science to do. That's the truth.

    However, start paying attention to who's saying what-- most people who say this don't have degrees. Or, they were able to apply themselves in situations in which a degree did not matter (think about ultra-sucessful college dropouts).

    So what you need to be asking yourself, in my opinion, is "am I going to take the knowledge being offered to me and do something with it or not". If you just want a good job, forget about college.

    Commit to learning whatever the popular language-du-jour and its tools are, focus on writing business applications, and I can about guarantee you will find steady work if you continually apply yourself.

    If you want to really understand something significant about computers and view developing software as a type of craftsmanship, then I absolutely and without hesitation suggest that you entirely forget about worry about whether you can use computer science knowledge to make money or not: Because you will learn things that you absolutely in the long run increase your understanding of all aspects of computing.

    Pay attention to the really good programmers you know. Entirely regardless of whether or not they went to a university to learn it, they have a good understanding of data structures, don't they? They probably have at minimum a strong intuition of autonoma theory as well, I'll bet.

    Don't forget about the other numerous benefits of a good college education. Forget about your CS classes, how about all those other things you get the chance to be exposed to? Even the ones that you will hate have value.

    Ultimately, however this "value" is completely something which you must make yourself. I know several 'A' CS students who can't write code worth a damn. I know a number of people who went through college and felt that everything that wasn't in their major was a complete waste of their time.

    And I know others who mined that opportunity for all it was worth and made something of it.

    It's your life. Have fun! :)

    1. Re:Some good news for you! by Anonymous Coward · · Score: 0

      Oh, also-- if you ever have any aspiration for working for a major company or especially doing any work Internationally-- you absolutely want a degree.

      More than a B.Sc. would be helpful there. But that's the minimum.

      I know, because I've done it. :}

  279. Re:The choice of degree matters less than attitude by LordoftheWoods · · Score: 1

    What you would recommend then? Does SE or CIS somehow make you 'jump' up to the 'middle rung'? Are they really valued so much more than the apparently lowly CS majors who study what's actually happening and can hopefully apply that to any programming task, even those problems best-suited for a SE or CIS student? Or are you implying that programmers are no longer needed in the US; that the entry point to the field has been cut off? That seems bogus to me. I do not understand the implication of your post and would appreciate clarification.

  280. Re:no - scientist vs engineer vs MIS technologist by Anonymous Coward · · Score: 1, Insightful

    antarctician is correct - dont confuse the different types of disiplines.

    each is important, but each is different (yes, of course there is some overlap).

    at the risk of over-simplification: scientists discover new laws; engineers apply them; technologists help both do their job.

    so if you are not interested in knowledge for its own sake, then yes you should quit CS and switch over to a vocational track. there is a great sense of achievement and satisfaction in solving practical problems that make an immediate impact upon people's lives (bridges, damns, roads etc - these are not trivial things).

    but if you want to actually want to understand the way the universe works - which includes man and machines - then you should not even blink for one momment at studying theoretical subjects.

    most people are not suited by talent or temperment to be scholars of any kind (in the sciences or otherwise); they enroll in science (instead of engineering or MIS) for the same reason that many enroll in university instead of community college - because it is a status symbol. They really have no business being there. The entreprise of inquiry is not their passion. they should be at a good polytechnic school instead (where this idea is taken seriously elsewhere in the world, it produces amazing results).

    So dont fret about it for a minute.

    In fact, the one aspect that is really missing from your cousrework is lots of courses on logic, the most basic subject any educated person must study (whether in the arts or science) - you will need this in order to appoach all the important issues in computer science ... model-checking, theorem-proving, AI & ML.

    If you want to start looking at cool stuff for your AI classes, then check out the debate in knowledge represenation as between those who believe in low-order representations like Genetic Programming vs mid-order representations like Bayesian networks versus high-order representations in second order monoadic logics used to model agent languages like BDI (belief desire intentions).

    If the big stuff (like AI) intrigues you, then you will relish university for the chance to think clearly & deeply about the way man constructs (himself and) the world - especially through his machines. One of the key issues you will come to terms with is the nature of representation in general; the issue of of REFLECTION will become an important subject for you as you try to understand everything from why meta-classes are crucial to how Godel's incompleteness theorem. Any system that can (not) describe itself in its own terms is (not) a powerful way of constructing the world. So you will truly have a momment of clarity when you learn learn how the meta-circular interpreter wroks in LISP; and the joy you will experience reading Sussman's classic textbook (MIT) will awaken your mind to the whole subject of language & thought are related.

    most of all - have fun! dont be afraid to be wrong or stupid.

    next to love, the carrer of the mind is the most important journey you will ever take in your life.

    cheers: dlf

    ps: sorry for typos - in a huge hurry.

  281. Education a Waste? by Kroz00 · · Score: 1

    This has been the biggest question I have faced in my life. Is a university Degree really worth the money? I mean what do you get out of it? Is it going to help me in the real world? Well i have some partial answers that you might agree or disagree with. I think ill start out with non-educated people vs educated people. Now, If your a CS Student or CE student, and you walk into a job interview with ONLY your CS/CE Degree, the chances of you getting that job are 0. Now if you were a non-educated programmer, who walks into the job with a portfolio with 6-7 projects in it...Yea your going to get the job. Limitations of the walk-in, with projects is that he/she is going to lack the theoretical background to understand the "big" picture. I always liked to think the educated people are Big Picture thinkers. They have the ability to understand and relate to where everything fits in. The Educated person has the upper hand in the long-run, as they will be able to adapt to new changes in the CS environment. Not to say the un-educated person will not. Basically it comes down to 1 thing in the real world. EXPERIENCE If you come out of a degree program with 0 experience, nothing in your portfolio...hell ya you are going to have a difficult time getting a job. So for all of you reading this taht are currently sitting on your butt, and do not have side-projects, i highly suggest that you get off your butt and find some work. Webpages, basic databases...anything like that. You would be suprised how local businesses, actually run their business. There are a lot of good opportunities for students to come into a business setting and pitch better ideas for data-organization. I have worked with several companies re-organizing different aspects of their business for a reasonable price :) This type of work is invaluable, especially when it comes to getting your first job out of university. So does the degree reallllllllly help you get a job? No. Unless you have experience using your degree-IE Portofilio...Then you are most likely not going to score your dream job. However the degree does give you all of the knowledge to understand and design code with more structure. For example, most of you will take 2-3 courses in data structures...Binary Trees, Heaps, Queues, Stacks...stuff like that... You are also taught when to use those structures. However an uneducated person most likely will not have formal training in datastructures...so that they might find other ways of doing things in a more complex way that takes longer time. I am only in 2nd year, but i can still tell successful CS students from non-successful ones. Most of you can probably relate. Educated people ask different types of questions than un-educated. This is the difference...The CS or CE Degree that your doing now, is providing you another level of knowledge. This is why you are doing your degree, because you are not satisfied with the teacher just telling how it is, you seek true and full understanding of the whatever concept. By knowing everything there is to know about something...if another technology comes out based upon that concept then it is easy to understand. The CS/CE Degree is all about the future...By having this degree it is ensuring that you will be apart of the computer community for a long time to come as the basics of computing have not changed alot. its still only 10's, just as the good saying goes... There are only 10 types of people in this world. Ones that understand that and ones that dont ;) Glenn Eggleton

    --
    -2nd Year Comp Sci Student -Currently has learned nothing -Is School a Waste? - Na Theres lots of chicks!
  282. Re:no by DerekJ212 · · Score: 1, Funny

    You sir win my award for butchering the spelling of "a lot" the most.

  283. From where I sit (molecular modeling) by Anonymous Coward · · Score: 0

    Dan Z writes: "I look at the list of modules they've studied, and although they sound very interesting, there seems to be little relevance to the current jobs market: neural networks, computer vision, artificial intelligence, robotics, compiler engineering, machine learning, quantum computing, Bayesian networks, embedded systems..."

    Let's see - pieces which have been used to develop molecular modeling software:

    neural nets: used for non-linear model building/property prediction. computer vision: used for protein/ligand docking codes. artificial intelligence: not so much, although things like machine learning (supervised and unsupervised) are of interest. robotics: not in modeling, but combinatorial chemistry's all robot-driven, and many companies have built their own. compiler engineering: err, no, got me on that one. machine learning: see above - model building's a huge field for us. quantum computing: way too blue sky. Bayesian networks: assuming this it learning-related, back to model building. embedded systems: not so much.

    Oh, and having 1-2 semesters of chemistry is a huge win - it's way easier to work with developers with some domain knowledge, especially those with more than the minimum. Even better if they can read the literature! Oh, and we work on at least Linux and Windows, so make sure you're up on platform-independent methods. Math skills are a big win, too.

    Remember, if you're "just a developer" you've got to differentiate yourself from the crowd - otherwise, I'll get somebody else or do it myself.

  284. Re:no by Anonymous Coward · · Score: 0

    But I had the background to learn it on my own, because I learned how to learn

    It always makes me very sad when people think they need to go to college to "learn how to learn." I know plenty of people who could beat any CS grad in practically any coding challenge that you could think of, who yet haven't even set foot in a college. They'd code circles around people like you, who seemingly have to go to college to be able to understand XML from a book.

    things like "learning XML" can be done from a book if you know the relivent background about languages and such schemas.

    You know what? You can learn it without the "relivent [sic.] background" too, whatever that is. XML is a piece of cake to anyone who's moderately intelligent and has some programming experience.

    "We didn't learn Word, we learned Word Perfect." So? If you had the theoretical background you could figure it out, find the relivant connections between the two.

    HAHAHA! Thanks for that little tidbit. You were able to figure out word because of your "theoretical background"? Give me a fucking break!

    Look, a college degree in CS is fun, and it is useful. But take a moment and reflect on the kind of platitudes that you're spewing out and to what extent they actually reflect reality. You're just as brainwashed as people like Dan Zambonini, except in the opposite direction.

  285. Computer science is not a vocational degree by geekee · · Score: 1

    Computer science is not a vocational course to make you a good programmer. Computer science is the study of computing machinery. Therefore a lot of effort is placed in learning formal proofs, finite automata, turing machines, etc, which define what is possible with computing machines. A computer science degree should help you become an expert on the fundamentals of computing machines capabilities and uses, not make you a better web developer.

    --
    Vote for Pedro
  286. Theory vs. practice by Jan+Joris+Vereijken · · Score: 1

    Do yourself a favor, and stick to the theoretical subjects. Your university years are about getting an education, not about getting a job. And yes, you will still get a darn fine job with a proper education. I did a perfectly useless CS PhD, and got a perfectly nice job in industry nonetheless. My friends who took the "vocational route" back in univeristy are on average certainly not doing better, not financially, and not in terms of having an exciting job.

  287. Re:My God. by Anonymous Coward · · Score: 0

    "You STILL haven't stopped "signing" every paragraph of whatever you post with your initials." - by StarKruzr (74642) on Sunday September 11, @12:42PM

    Hahahaha...

    Now, look @ that score of yours, vs. APK's of +3 and then tell us who was worth listening to here in these replies: himself, or yourself.

    It seems the moderators here scored him +3 for interesting & informative.

    What did you get scored?

    My God. (Score:-1, Flamebait) - by StarKruzr (74642) on Sunday September 11, @12:42PM

    Big difference there and so much for your opinion of:

    "No one listen to this guy. He spent several months on Ars Technica trying to convince everyone he was some kind of super programmer, but it fell apart pretty fast when it became clear that he actually didn't know his ass from his elbow." - by StarKruzr (74642) on Sunday September 11, @12:42PM

    He literally kicked the shit out of every arstechnican @ your forums consistently and at other forums where you followed him around as you did here, & on technical issues in this field, each AND every time you tried him.

    No wonder you deranged lunatics follow him around and try to pester him, you're all still hurting from the beatings you took from him. You just do not bat in the same league.

    The most hilarious part is that in the end, as your score there notes (and contributes nothing to this topic here no less), you only have yourselves to blame, and end up having to realize how stupid you look doing it and yourselves in each time.

    Just like your score above (lol, below zero) indicates.

  288. Job in the future by marshmeli · · Score: 0

    To help get a job, suck it up your Jr year of college and get an internship (hopefully paid, but I took an unpaid one) it led to a job with that same corporation and other job offers... experience matters but you need to the coursework so emplyers will know you have been exposed to the basic concepts and theory...

  289. Re:The choice of degree matters less than attitude by kcbrown · · Score: 1
    It is trivial to do trivial things in any language.

    Uh, well, not any language.

    Here's a counterexample: Intercal

    :-)

    --
    Use 'slashdot stuff' in the subject line in any email you send me if you want to get past the spam filter.
  290. Follow your passion by jamej · · Score: 1

    First, college isn't trade school. As long as you excell at what you do the money/employment thing will take care of itself. Don't forget the degree you're interested in is called computer SCIENCE not "easliy exported to India low level apllication developer." If you are not a high end guy with the science part you're in jeopardy of having your position shipped to a low wage country. Stay focused -- you'll do great.

  291. Dan Who? by Anonymous Coward · · Score: 0

    Lets look at who is Dan Zambonini. His background is a masters in
    astrophysics, not computer science, nor software engineering, nor computer
    engineering. He is a member of a garage-company of about 20 people who do
    grunt-level web programming.

    Is this the guy you want to listen to?

    I would bet that 90% of the posters on Slashdot are more knowledgable in
    computers than Dan.

    I think you need to ask yourself, "Do you know what you want to do in 5
    years, 10 years?"

    If you aren't sure (which is my guess), the smartest approach is to take
    the CS bachelors courses and also to get summer jobs at high-profile
    computer company like Sun, IBM, Microsoft, Google, etc.

    Then you will have the option to do anything.

  292. Re:no by WindBourne · · Score: 1

    Right now, here in Colorado, I do not know of any CSers that are unemployed (that may be changing soon). Within the /. arena, there probably are some. But the level of unemployment for CSers is much lower than the level of unemployment for CISers.

    In addition, when jobs thin, almost all of the jobs will require a CS, CE, or EE degree. They will not admit a CIS due to the technical nature of what is probably going to be the last bastion of jobs here. Many of the jobs that are going to India are business programming.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  293. Interesting... because... by aduzik · · Score: 1
    I was chatting with my thesis advisor just the other day, and we were talking about how much it bothers both of us that students see a degree as simply a means to an end. Having a job is nice, but if you're not interested in learning the SCIENCE in computer science, then your university experience will be four plus years of hell.

    You see, when people tell you that the skills you learn in a CS program will be out of date in five years, they're absolutely right. So what do you do? You don't go to school for skills. You go to school to learn how to learn. You go to learn the science that undergirds computer science, which is independent of any particular technology, programming language, computer, what-have-you.

    Theory of Computation was my favorite course as an undergrad -- and it was again when I took it as a grad student. Now, a lot of what you learn in the beginning of that course -- regular languages, context-free languages -- is really practical in a real job, particularly if you ever implement an interpreter or compiler. (If you don't think that happens, I have an uncle who developed a special purpose language specifically for energy futures traders.)

    But the stuff you learn later in that course -- computability, complexity, and all that good stuff -- it may not be as practical, but it's sure a hell of a lot of fun, and it becomes practical because it influences the way you see a computer or program. It enhances your theoretical understanding of what a computer can and can't do. You tend to waste a lot less time trying to develop an (efficient) algorithm to solve an unsolvable problem.

    Here's the way I see a university education in CS: if you wanted to be an auto mechanic, you'd go to a trade school for a couple of years to learn the skills you'll need. If you want to become an automotive engineer, you go to a university for an engineering degree: it requires a different kind of understanding to be an engineer than a mechanic. The same is true of CS. If you want to be a "programmer", go to a community college and get your MCSE. If you want to be a professional computer scientist, you go to a university and get a CS degree. It's all a matter of what you want to do.

    That said, a university is certainly not the right place for everyone. There's nothing wrong with going to a community college. But you have to understand the benefits and costs of doing one instead of the other.

    --
    If it's not one thing it's your mother.
  294. Computer Science vs Software Engineering by SnprBoB86 · · Score: 1

    This is why I am studying "Software Engineering", not "Computer Science".

    Dispite already having 3+ years professional software development, I am a student at Drexel University. Computer Science, which was my original major, is the traditional university scientific approach, but Software Engineering focuses on more real world application development stuff.

    You can find the software engineering recommended plan of study at Drexel here:
    http://www.drexel.edu/provost/catalog/dynamic/plan year.asp?plan_id=172&coop_type_id=2

    More universities should make this distinction.

    --
    http://brandonbloom.name
  295. Ask them what their education is? by Conficio · · Score: 1

    Hi there, if anybody hiring suggests to you that a vocational school is just enough, then ask them what their education is? Chances are, they are academically trained. After all 40% of top-tier managers in public companies have a PhD and much more have academic training. Why would that be? In the odd case you find a boss, that has only vocational school, you should ask yourself, how does he/she know the difference? I'm not here to say people that proclaim these things are dummy's. No, they are simply out for their own interests and not for yours. It is cheaper to have any new hire learn the programming languages and procedures on their own time (= money). However, it is in your interest to get an education as good as it gets. First, if you know how a programming language is translated into executable commands (compiler building), you'll understand a programming language that is new to you much faster (as mentioned before). If you have implemented some device driver in your OS class, then you'll understand what security levels are and what memory management is and why you need to use resource-locks and mutex and can translate it into your algorithms. If you have studied databases (not just used MySQL in a web application - no pun intended), then you'll understand the difference between queries that work and queries that perform as well as transactional dead-locks and how to avoid them (hopefully). An academic training does not only pursue particular skills. More importantly, it does train you in the basics of a field. A good academic institution does challenge your intellectual ability up to a certain point (batchler, masters, PhD exist for a reason). I personally profited more from being forced to proof a mathematical theorem, than from learning any of the 20 odd programming languages in my master of CS. It taught me to understand concepts, rather than only procedures. It gave me the ability to challenge my own thinking and to learn new paradigms, because I know that what appears to be truth is merely a/my model of things. Yes, it is true an academic training does not prepare you for a job. There is much more then skills to a job. You need to learn to follow instructions, social skills and effective communication. You also need to learn dress codes and company procedures. You need to learn to accept impossible dead lines and budgetary constraints and office politics. You will learn sooner or later, that your boss gets the promotion for your brilliant idea, while you are stuck with a non compete agreement and no part in the royalties the company gets for your patented inventions. You better learn how to read and negotiate contracts and to take advantage of company benefits and how to save some money for your future. You also need to learn how to balance work with personal life. That all is not taucht in universities nor is it in vocational schools. However, if you study long enough, you might just learn these things later in life, when it is harder to do so. The bottom line is if you want to study not just for the next job, but for life, you'll better go for an academic education, assuming you like the studies and can master them. If you ever want to get out of the entry level programmer job, you better have learned more than the OS/language/database/library/paradigm/pattern-set of the last five years. If you don't believe me, ask yourself, which school teaches you the language that is in demand in three years (after you finished the program you are about to start)? If you want to maximize your job skills, take internships, where you can get familiar with the social world of the work place and try to make as many different internships as possible (small company vs. large corporation, robotics vs. business programming, start-up vs public institution, ...). It allows you to get a sense of what you would like to do after the diploma is on your wall. Good luck!

    --
    Busy helping non technical users of OpenOffice.org - http://plan-b-for-openoffice.org/
  296. comment on college by Anonymous Coward · · Score: 0

    I think he is right. The data structures is the most important. If you cannot explain what object oriented programming is or build a small application during an interview on scratch you pretty much shoot yourself in the foot.

    I work in a group where my job goes from troubleshooting hardware and reading assembly for a PIC to writing front end software on the same project. Then I find myself writing ASP code for another project. In college I never specialized in any particular field e.g. embedded systems. I tried to broaden my skills by understanding the basics of programming and language design. Backed by many software engineering classes. Building software really is not about being a code monkey and pounding out 5000 lines of code in a day. It is about understanding what the customer wants. Even if you work in a company where you do not interface with a customer one on one, your manager, your team members, the people who give you the specification act as your customer. You should understand how to communicate efficiently with them. Communication is key.

    Now, you ask if these classes are going to affect you for an interview or later in your career. I say I think you would be doing yourself a great diservice if you did not take something like embedded systems or machine vision. These classes usually have a project that consumes a large percentage of your grade. As an employer I am going to be looking for a project you did at school with other team members. That gives me two major pieces of information. It tells me that you can face a technical problem and solve it. And it tells me that you can work in a group. When it comes down to it, that is all I really care about. Are you going to do something, and are you going to be a pain in the rear end to work with if I hire you.

  297. consider electrical engineering by techrunner · · Score: 1

    If you are interested in software engineering, a degree in electrical engineering is a great option. Electrical engineering might seem very different from computer science, but it requires a very similar set of logical skills. I have worked with many software engineers who had degrees in electrical engineering.
     
    In addition, once you have an electrical engineering degree, you have many options available. You can go into software engineering, embedded systems, IT, digital design, or traditional electrical engineering.
     
    An electrical engineering degree, in my experience, will give you more job options than a computer science degree.

  298. Yes I'm posting twice, but it's because... by aduzik · · Score: 2, Informative
    I read TFA, and I can't believe that this guy is advocating software engineering. I reread an old, but not too old, paper by Edsgar Dijkstra called "On the Cruelty of Really Teaching Computer Science". In it, he refers to software engineering as "how to program if you cannot." That one had me rolling on the floor because, more often than not, it agrees with my own observations and experience.

    Our university teaches software engineering. The professor who teaches most of the software engineering courses is an idiot. For my project, my group and I wrote a pretty kick-ass app with some pretty kick-ass code. How? We snuck in some agile methodology, which just seemed perfect given the size of the group and the size of the project. Even though our project was the best in the class, we got a C because the specifications weren't complete, and she wasn't convinced that our automated tests would really test the code. (The other groups who got A's for testing wrote some very non-specific paragraphs about how they might test their code. None of them actually did any testing)

    What this proves to me is that software engineering is easily the most useless discipline in computer science. I have never had a good experience with it. I've never known anyone who said that software engineering really makes things run smoothly. It's a business-centered/management-centered unrealistic approach to software development. It may make your boss feel all warm and fuzzy, but it won't get the software out the door on time, nor will the developers have any degree of confidence in it.

    --
    If it's not one thing it's your mother.
    1. Re:Yes I'm posting twice, but it's because... by Alioth · · Score: 1

      You can't just write off the entirity of the idea of 'software engineering' because your professor is a dork.

      I've worked on some *very* large projects, where we employed software engineering processes (specifically, the SEI's CMM). When I started on the project, we were doing it exactly how you did it for your 'kick ass project' - which works great for a small project btw, but resulted in all nighters, missed deadlines, LOTS of bugs and lots of heartache on our big project. Of course everyone complained when we started moving to proper software engineering processes (including automated testing and proving that the automated testing was indeed working, and writing COMPLETE specs BEFORE writing a single line of code). It wasn't an enjoyable transition. Then came the independent audits. I had the dubious pleasure of being development's rep (read: the guy they interrogated mercilessly) for the audits since I was the senior developer on the project.

      But it was a revelation - the road to Damascus if you like. Employing proper processes and sticking to them meant some really interesting things happened:
      - Within a year, we became extremely accurate at sizing new tasks
      - Within a year, there were no more all nighters or vast gobs of unpaid overtime to be done - indeed, we were all working 40 hour weeks.
      - The code quality improved DRAMATICALLY. The difference was like night and day.
      - Customer satisfaction turned right around from us nearly losing the contract to having an extremely good relationship with our customer.

      At the start, I was as skeptical as you and saw the whole 'software engineering' thing sucking all the fun out of my job.

      A year later, I realised it had prevented us from being burned out (and fired by the customer) and had actually kept the job being fun.

      Properly done software engineering processes really do work in the real world. I still didn't (and still don't) enjoy going to requirements reviews and writing detailed niggly specifications, but I'm happy to do them because I realise that way I get to spend weekends and evenings doing my own thing at home instead of pulling all-nighters.

  299. Dan sounds like an idiot by MeerCat · · Score: 1

    I've spent the last 10+ years building teams of people who understand the basics and the fundamentals enough that they can learn any technology in a few days.

    And dismissing all those people who may know the latest technology but don't understand it, or know how it compares to what went before (or what will come after).

    I get hundreds of CV's from people like Dan, and they all go in the bin - they know something today, but in 12 months they'll be behind the curve without the ability to even know where they are, never mind the self-knowledge to know where to go next.

    So ask yourself, do you want just one job, or a career ?

    --
    I spent a lot of money on booze, birds and fast cars. The rest I just squandered. - George Best
  300. Your classes... by NitsujTPU · · Score: 1

    ...are computer science. You signed up for a Computer Science program, not at "become a programmer" program.

    If you wanted to go to a trade school, you should have.

  301. That's the Right Kind of Curriculum by the0ther · · Score: 1

    Consider yourself lucky. The rigor of that kind of study is going to suit you well after you leave school. I've been programming for money for the past six years now and am elated to find an occasional new hire with a classic CS background. The crap where a school teaches you a programming language, or teaches you about database modelling or network topologies, that shit is the low-grade thinking.

  302. Re:no by poopdeville · · Score: 1

    I agree with this as well. But to keep from sounding like an AOL user, I'll make a suggestion. If you're in a formal CS program and are worried about getting a job school is over, keep up your school work and find a project that will show people that you have the ability to manage and organize lots of information, complexity, or people. Work your ass off on that, and put it proudly on your resume when you're done.

    --
    After all, I am strangely colored.
  303. Re:no by sunhou · · Score: 2

    On the other hand, I wouldn't be able to do my current job without Linear Algebra, and there are many days I wish I'd have paid more attention in all my math classes.

    As someone who teaches Linear Algebra, I'm very curious -- what kind of job do you have? (I figure it may be another motivator for my students.) And don't say you are a Linear Algebra teacher. ;-)

  304. Re:The choice of degree matters less than attitude by sribe · · Score: 1

    It's all about knowing what to look for, and that comes with education and age.

    And online documentation at our fingertips makes up for our failing short-term memories, enhancing the advantage we get from education and experience. It pays even more to see the big picture when you don't have to memorize arbitrary details...

  305. Computer Science major by virtualthinker · · Score: 1

    Obviously you have been paged out for a while now ..
    Does not mater whether your courses are vocational or college level, there are no CS jobs anyway.
    Sorry.

  306. Re:The choice of degree matters less than attitude by sribe · · Score: 1

    But today, each one comes with an API of several thousand buggy functions you have to learn.

    If it weren't for those bugs, we would be so productive there might not be enough work to go around ;-)

  307. I wish I had taken: by duckpoopy · · Score: 1

    database software engineering bioinformatics network security Having just concluded a job search, these are topics that appeared in most of the postings I saw. Look through job openings at cra.org and see what is hot/desirable.

    --
    word.
  308. he is right but .. by guacamole · · Score: 1

    Who said that each and every course that you have to take at the universities must be relevant to a particular type of job?

  309. Re:no by Anonymous Coward · · Score: 1, Insightful

    This is the right idea, it reminds me of something from Donald Knuth's website, when he is asked, "Why does Knuth replace MIX by another machine instead of just sticking to a high-level programming language? Hardly anybody uses assemblers these days?" anyone interested should read what he has to say under the heading "Why have a machine language?" at http://www-cs-faculty.stanford.edu/~knuth/mmix.htm l

    The short version is programming languages come and go, right now Java is probably the en vogue language before that C++, before that C, and so on. The point is not to become dependant on any one language and learn the (as Knuth puts it) "timeless truths." Dont learn how to implement a concept, understand it, and once you gain that understanding you should be able to implement in any language that need be.

  310. Academic programming / CS vs. SE by Dire+Bonobo · · Score: 1
    > Academic coding is about producing beautiful programs

    I can only assume your experience with academic coding is fairly limited, then---any serious programming projects in academia are generally ugly, containing large parts that are hacked desperately together in the last few nights before the deadline.

    Questions of maintainability, dependability, and even bugginess are often not merely secondary, but entirely ignored---getting it done now is often the over-riding concern. If anything, I would expect academic coders (at least those with research experience) to have to be trained out of this "make it work" approach.


    > I'm still no coding grand-master and probably wont be for another
    > ten years. When somebody says that they can learn a language in an
    > afternoon it doesn't make me think they're lying, it just makes it
    > blatantly obvious how ignorant they are of intricacies of writing code.

    Most code ain't all that intricate.

    A sharp kid with a CS degree couldn't learn all the clever details of C# in a week, but he could certainly learn enough of it to write functional, workman-like programs. He won't be a "coding grand-master", but, frankly, most coding projects don't require one. He won't be able to exploit all the features of the language, but he should be able to write mostly-language-independent parts of the intended functionality, and gradually move into more and more areas where the language has specific tools or constructs that should or must be used.

    Really, most imperative languages (C/Pascal/Fortran/Java/Perl/...) are pretty much the same, with a little bit of syntactic difference, at least in my programming-for-money experience with them - the only trouble I had moving from one to the other was learning the syntax. The algorithms are all basically the same, and all that's required is to figure out how to express that algorithm in the given language.


    > I think that having a CS degree is no real advantage over
    > having a physics, chemistry or maths degree.

    I can't help but wonder if that kind of attitude lumbered MapQuest with an O(n^3) algorithm early in their development, when an O(nlgn) algorithm is easy, and an O(n) algorithm is possible. (Yes, my officemate worked there; his was the nlgn version.)


    It's certainly true that "computer science" and "software engineering" aren't the same thing, and much of the former is very rarely useful to someone with a job doing the latter.

    It's also true that a great deal of programming isn't all that complicated, and the vast pool of theory of computer science is pretty much irrelevant.

    It's again true that most programmers don't really need to be computer scientists---expressing pre-designed algorithms and requirements in C# requires mostly skill in C#, not computational theory.

    It's not true, though, that a CS degree is no more useful for programmers than any other degree. Admittedly, if you just want a programming job, a CS degree is really kinda overkill in many cases---anyone who knows how to program and has proved they can work (i.e., a degree or experience) would probably be sufficient. Design, architecting, and tricky algorithms, though---physics and math don't touch those at all, and somebody in the company needs to be able to do them.

    If you want that person to be you, then maybe you want a CS degree.

  311. Re:no by offlerthecrocgod · · Score: 1

    He's a Linear Algebra student.

    --
    Shin: a device for finding furniture in the dark.
  312. Dan Zambonini and his idea of a scientific... by Anonymous Coward · · Score: 0

    curriculum leaves everything to be desired.

    IOW I think that what this boils down to is that Mr. Zambonini wants technicians, but he want to avoid the associated unions, etc. Why? The types of courses are exactly what I would expect a technician level employee to have taken. For example, XML does not by any stretch of the imagination really require its own course if the student has a modicum of intelligence, the same goes for various languages etc. On the other hand I suspect that technicians wouldn't be quite as bright, (otherwise they'd be in a University and not a trade school) and require the structured environment to assist them in picking up new material, etc.

    His commentary is merely an attempt to trivialize yet another scientific discipline, making it little more than a business+ curriculum, or slighlty above underwater basket weaving...

  313. Re:no by toddbu · · Score: 1
    Work your ass off on that, and put it proudly on your resume when you're done.

    I went to school at PodunkU, but it had a very good theoretical CS program. When I found myself in around the MIT and Stanford grads, I didn't have any real problem keeping up with them on the theoretical side of computing. Throw in a healthy Midwest work ethic, and I had a real advantage.

    The guys who suffered the most were those who were self-taught. They didn't understand simple concepts like bit manipulation or queue theory. Now while I'll admit that I don't often think about Dijkstra's algorithm, I have had a practical application of it recently. So I don't want to pick on anyone who doesn't have a CS degree because I've seen some really good work, but I do tend to see a difference in those with a CS background and those without.

    --
    If you don't want crime to pay, let the government run it.
  314. Curriculum by kartan · · Score: 1

    I tend to think that an university education should stress scientific topics over vocational ones...
    (emphasis mine)

    They could probably stand to add some grammar topics as well

  315. Finding a Job by hackus · · Score: 1

    There was nothing in your course lists, that would suggest finding a job is going to be a problem.

    I think it is going to be a problem, in fact a much larger and more difficult problem than what you will face in your 4 year degree program.

    I would also like to point out, that do to the technology and nature of this industry, millions of extremely qualified graduates in India, China are going to be competing for your job as well.

    Don't forget, as well. That unless you are going to a little community college, the bank is going to want its money fairly soon out of college.

    Right now, it takes about 2-3 YEARS for college grads to find jobs when they graduate from tech fields such as CS in the USA, worst case.

    I wouldn't want to be a 20-25 year old and certainly not anyone over 40 in that field looking for a job in the next 10 years thats for sure.

    -Hack

    --
    Got Geometrodynamics? Awe, too hard to figure out? Too bad.
  316. Re:The choice of degree matters less than attitude by Nasarius · · Score: 1

    As I imply, I've done Prolog and ML. Sure, they took longer than two days to learn well, but they're not that difficult either. I'm certainly not fluent with functional idioms, but I know enough about the concepts to pick up the rest of it if I ever have to.

    --
    LOAD "SIG",8,1
  317. Re:no by Bill+Dog · · Score: 1

    Generally agreed, but once you have your BSCS (i.e. already have the theoretical underpinning), and are a working professional in the industry, going for an MS in CIS, or, even better, SE, over an MSCS might be better. I've looked at the local universities' CS grad programs, and being 12 years out of school, I'd have to go back and re-learn a lot of the theory stuff, like the mathematics behind SQL, which just isn't relevant to me (never really was, actually). I wish there was a good MSSE program near me, maybe something like this (no language courses in there).

    --
    Attention zealots and haters: 00100 00100
  318. Yet another by cpritchett · · Score: 1

    Is it just me, or is Slashdot trying to fill it's monthly "My computer science degree is useless" quota with this one.

    I left the engineering program at my school because I realized the only reason I started in it was because I had convinced myself it was the only way to get a good job. Now that I'm in the CS program, I'm confident knowing that I came to college to get an education, not to learn a trade.

    Stick with what you enjoy.

  319. Re:no by Anonymous Coward · · Score: 0

    By 'Computer Information Systems', do you mean 'Management Information Systems'? My university's business school refers to it's MIS program as CIS.

  320. Re:no by WindBourne · · Score: 1

    Absolutely. In addition, there are many "CS" programs that are actually CIS/MIS. The right answer is, if they focus on the local business need (which is for small business, how to program), then it is probably teaching C, C#, COBOL, RPG, .neyt, etc. If it is a proper CS program, then it is a one language program that typically will teach A language course, Data Structures, and discrete mathmetics in the first or 2'nd year (normally first). It will then focus, on theorey, with you the student providing loads and loads of programs weekly as labs. BTW, if they do not teach Discrete mathmatics, it is almost certainly a CIS program. Discrete is the entire core of CS.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  321. Indrustry-Oriented Degree by lokk · · Score: 1

    If you're interested, this is an industry-based (albeit, mainframe oriented) degree that I'm studying in Australia as part of an industry-sponsored mainframe traineeship. I think you need to be careful not to do a pure computer science degree. Soft skills are now more valued than technical skills, at least to begin with, because technical skills can be picked up on the job, whereas soft skills, such as good documentation, management, and leadership skills, take longer to learn and are important from the beginning. In short, make sure your degree is well balanced.

  322. People still don't get it... by JohnsonWax · · Score: 1

    Computer Science != Software Engineering just like Physics != Mechanical Engineering.

    If you want to work as a computer scientist - which many places do, but usually with a small cadre of employees and usually heavily stacked toward Ph.D. then you're fine - provided you get the M.S. or Ph.D.

    If you want to direct a software project, then you're in the wrong major and should seek out one of the unfortunate few Software Engineering programs around the country. Keep in mind that you will be expected to work with people a lot of the time.

    If you want to slug through code, that's increasingly becoming the work of the coder, the software equivalent of a tradesman and either DeVry or relocating to Manipal is sufficient.

  323. well, yeah by Anonymous Coward · · Score: 0

    no shit that's why i dropped out years ago !

  324. Oops. by StarKruzr · · Score: 1

    You forgot to sign this post.

    lol, below zero!

    Also, I love your username.

    --

    +++ATH0
    1. Re:Oops. by Anonymous Coward · · Score: 0

      Your initial post score StarKruzr:

      My God. (Score:-1, Flamebait)
      by StarKruzr (74642) on Sunday September 11, @12:42PM

      vs.

      My initial post score:

      Re:if you want more vocation, plus a better chance (Score:4, Informative)
      by Anonymous Coward on Sunday September 11, @11:51AM

      ----

      That's all anyone needs to see, your score vs. that of my own on our replies being rated...

      (& I didn't do the judging, others here did in the forums moderators).

      So much for that.

      * I mean, how much more do you arstechnica forums members wish to embarass yourselves?

      APK

  325. Re:TEAM skills - Very Important by pg--az · · Score: 0

    I just searched-from-top-of-page, and you're the only other instance of "TEAM" - everyone else must be living under a rock ! Ditto the internship advice - my worldview changed radically due to each of my two internship experiences, the incestuousness of the "teacher's college" academic paradigm so easily gets out of touch with reality.

  326. Never underestimate a liberal arts education by moosesocks · · Score: 1

    Harvard is not a tech/trade school. Their graduates don't seem to have any problems finding jobs in the real world.

    There is a definite trend where employers are looking to hire people with a broader educational background. They may not start the job with all the necessary skills, but will definitely be able to learn those skills rapidly, and adapt to whatever is thrown at them.

    Alas, I do not attend harvard, but am currently attending a similarly-minded public institution, and can already see how this applies. Rather than being enrolled in exclusively compsci/physics/engineering courses, I'm taking a smattering of courses this semester, each from a different department. Although I have no intent to become a psychologist, I can easily see how what I'm learning in the class would apply to UI design. The english course I'm taking certainly isn't going to help me write better code, but will certainly help me document that code.

    I believe that all but one or two of our CS courses are predominately theory-based. Although useful, learning the language itself is peripheral to the overall theory.

    --
    -- If you try to fail and succeed, which have you done? - Uli's moose
  327. Computer Science is very relevant by borgheron · · Score: 2, Insightful

    Most people think that you can just be sat down in front of a computer and taught to "program". What is the essence of programming? Is it the language? No. Is it the operating system? No.

    It's the *CONCEPTS*! Computer Science teaches the concepts behind the programming and why you should do certain things. It teaches you to discern for yourself how complex systems act. People who have certificates have reduces this profession to something most people think of as a "vocation" which is a crying shame.

    A vocation is something that people learn to do without much understanding of the science or technical justifications behind what they are doing? Do you think a mechanic knows the physics of how a car works down to the smallest level? No, he only knows that which he needs to get the job in front of him done. And guess what, when he needs to learn about a new car he has to go back to school to learn about it.

    Computer Science gives you the tools you need to get the job done AND it provides you with the knowledge you will need in the future to adapt because you have a deep undestanding of how things work, instead of simple rote memorization.

    Understanding the concepts is what give Computer Science and, indeed, any science or engineering discipline it's power over a simple "vocation."

    Don't listen to the guy who wrote the article (I already forgot his name) he sounds like he doesn't know what he's talking about.

    Later, GJC

    --
    Gregory Casamento
    ## Chief Maintainer for GNUstep
  328. Re:The choice of degree matters less than attitude by the_2nd_coming · · Score: 1

    I wrote a Go Fish program in LISP. I actually love LISP. I am a double major, CSC and MTH and LISP fits right in who how I think mathematically.

    I picked up LISP quite easily.

    --



    I am the Alpha and the Omega-3
  329. Re:no by Anonymous Coward · · Score: 0
    So basically, MIS/CIS people are the janitors - the mud people - of the technology world, the first to be laid off, with bleak prospects for any sort of a career. Everything that can be done by an MIS/CIS graduate can be done better by a CS/CE graduate.

    Perhaps the best thing for me to do is drop my current course load and switch to computer engineering. Fortunately, I'm at a point now where I can go either way with a minimal loss of credits and money.

  330. Theory good. CS Degree != CS Theory by fizbin · · Score: 1

    I worry a bit that you're conflating the academic background associated with CS departments with a piece of paper that certifies one has done time near a CS department and paid the appropriate tuition. (I paid the requisite tuition but did my time one door to the left and so have a degree in math)

    I agree that the academic side of CS is at least interesting, even if I find precious little application in my day job. However, I'm not sure how important the undergraduate CS curriculum is as an introduction to the area of study - in CS, there are today so many cutting-edge academic papers available freely online, and so many wonderfully readable introductions, not to mention newsgroups, discussion boards, wikis, etc. that any motivated student needs only a web browser and time.

    An unmotivated student isn't going to learn the theory if you sit over them with a whip and a chair, or is going to have forgotten all their academic CS work within 3 years of graduation.

    I suppose that there is a middle category of partially motivated students for whom a CS degree program will make some difference, but I wonder how big that category really is - I tend to figure that after a few years away from college, these students will have migrated into either the group that continues to learn, seek out, and read about CS theory or the group that ignores it. There might be a difference after two or three years in the workforce between someone who went through a CS degree program and someone who didn't, but after 5, 10, or more years your major won't mean squat. What will matter is whether during that time you have tried to become a better programmer, and whether you have continued to learn, study, or think about CS since you left school.

  331. Re:The choice of degree matters less than attitude by the_2nd_coming · · Score: 1

    Actually, I was not intending to say that. But I guess I sort of did.

    I was meaning to say that learning the theory of languages makes picking up a language very easy.

    hmm, yes that definitely sounds better than what I said at first.

    --



    I am the Alpha and the Omega-3
  332. Common Question-Booster seat. by Anonymous Coward · · Score: 0

    Uh, huh. So all those people who went to ITT for an EE, and learned about math, and physics (both regular and Solid State) are inferior how? Did the rules of math change in the intervening years? Is the ITT math inferior to the university math? How about solid state physics? Are the university "holes and electrons" superior to the ITT "holes and electrons"? How about ME? The ITT "hydraulic rules" inferior to the University "hydraulic rules"? And let's hear it for the ITT english. Get with the program and use university english. It's da bomb. Oh and I hear their history is worse than university history. The ITT CEO was the first president of the United States.*

    *So basically everyone's exposure to real ITT (or DeVry for that matter) education consist of "I read a brochure once".

  333. Re:no by strstrep · · Score: 1

    Linear algebra is extremely useful in many engineering contexts. Circuit & structural analysis come to mind off the top of my head. While much of this just boils down to Gauss-Jordan elimination, you can sometimes save a lot of time or prove some things by using some of the more complex linear algebra topics.

  334. Re:The choice of degree matters less than attitude by Anonymous Coward · · Score: 0

    In my experience, knowing the theory is crucial if you want a good software career. You will still need to focus on becoming a programmer, and the best thing to do for that is to practice on your own.

    A few years ago, when XSL came along, and was the latest catch word of the day, I was one of the few people who get actually get things working properly because I had programmed in LISP in college. The other programmers who only had C++/Java experience took about a year of constantly asking me questions to get proficient at doing complicated things with it.

  335. Right on. by Malkin · · Score: 2, Insightful

    "People like Dan Zambonini are absolutely wrong, things like 'learning XML' can be done from a book if you know the relivent background about languages and such schemas."

    Agreed completely. When the original RFC for XML hit the scenes, I downloaded it, and read it my own damn self, and later studied up on what to do with it. Who in the hell wants to waste their tuition on stuff like that?

    The technology flavor of the month is the WRONG THING for a university to be teaching. If that's what you want, you can go to a community college, or some tech training school, and save yourself some cash. Theory lasts way the hell longer than specific technologies do. Any university that isn't giving you the fundamentals is wasting your money.

    As an employer, I'm often hiring people for positions which require unusual skillsets. Because it's highly unlikely that I'll find anyone who has the full set of skills they need to do the job, I'm always on the lookout for people with strong theory and fundamentals. They will be more likely to be able to figure out the things they don't know than the guy who studied whatever was hip at the time.

  336. Re:no by WindBourne · · Score: 1

    Most MIS/CIS programs get a little business management, a little marketing, a little math, and a little bit of classes such as what is a VGA monitor. In addition, they have a class in either cobol or basic (typically == to about 3 weeks of a CS language course). Good examples of this would be that most CSers take 1-2 semseters of engineering based calculus. A CIS takes a business calc. class, which typically introduces the student to derivates and integrals (their class is ~= 2-3 weeks of a engineering based calc) Basically, not much.

    Now, as to wether to take CIS, CS or CE, that is your business. I have 2 degrees, one in microbio/genetic engineering and another in CS (both from Colorado State). CS has served me well. But if I had to do it all over again, I would look at a CE degree. It includes the core of both CS and digital EE. That will allow you to work at Intel, but also at a business place. There are times, where I wish that had been available back then. It would be useful right now to me.

    Something else to think about. Most CSers can find jobs right now. But in the future, they will be tough. Your best bet is a start-up. A CE degree gives you a good rounded education and will enable you the best shot at. esp, if you already have the core business work done (management, legal, marketing, etc).

    Good luck either way. Personally, I do hope that you stick with CE. The world needs more engineering types and fewer middle men.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  337. UCSB's CS program and my experience by Supergibbs · · Score: 1

    I graduated from UCSB and here are my thoughts... The first 3-4 years you get a broad range of required classes. I had almost no CS experience coming to college so I learned a lot. After (mixed in with) these courses you take 4 CS electives. I choose a networking, 2 database and a security class. There were some logic/theory classes that I though were boring and had no coding invloved but they do help in teaching you how to think a certain way. Even the classes I hated, looking back I can see how they help. I do think there are other things that could be cut back on. Do we really need 5 quarters of calculus, 2 of statistics, and 3 of physics (3 quarters = 2 semesters)? Sure for some it helps, but not most. Making some of that optional and allowing us to take more electives would be better I think. Plus as far as I know, there is no scripting languages (Perl, PHP, etc)or XML classes offered. I graduated and managed to get a job doing web programming. I had learned Perl before hand on my own and done some perl/mysql websites. For the job I picked up PHP, XML and more perl/mysql. Honestly if you know any language picking up new ones is infinitely easier and perl/php and easy to learn. Some classes would have been nice though. -Jesse

    --
    First post! (just in case I am...)
  338. Re:Theory good. CS Degree != CS Theory by sribe · · Score: 1

    I mostly agree. Just a couple of points. First, I've found that math majors make fine developers. Second, there are many programs now that call themselves "CS" that are really just overpriced vocational training in fad-du-jour tools.

    ...in CS, there are today so many cutting-edge academic papers available freely online, and so many wonderfully readable introductions...

    Well, yeah. I mean my alma mater (MIT) has their CS program online ;-)

    There might be a difference after two or three years in the workforce between someone who went through a CS degree program and someone who didn't, but after 5, 10, or more years your major won't mean squat. What will matter is whether during that time...

    Even twenty years later, there will be a difference between someone who learned about inductive proof and someone who didn't, even if the one who did never kept up with current research.

  339. re:computer sci by memoi · · Score: 1

    My reply may be a dup but I ran out of steam before I got to the end of the 500 or so replies... The way I see it, understanding the theories behind what you do will get you much farther than just knowing a few languages. If you have a good understanding of principles of design/analysis/structure etc (whether it be OOP or relational DBs etc), you can apply it in any appropriate language - and the next person can work with it. If you throw a bunch of code together and play with it till it works, its likely to become a mess that cannot stand one revision, let alone the major changes that come along all the time in both scientific and business applications. AND... you can take a look at the various languages available and decide which one is most appropriate for the methodology you are following (or vice versa - pick a methodology that can be supported by the language(s) you have available.) Theory is NOT "history of" and is definitely beneficial. But, you have to figure out which theories are most beneficial to learn. Coders are a dime a dozen. If you want a career, you want enough solid education behind you for a sound foundation, regardless of where you get it. Once you have this, you can build on it out in the industry, and you can learn to apply any language. JMHO Good luck to ya!!

  340. English ... by bizitch · · Score: 1

    In today's market where everyone uses IM speak - a four year degree from a traditional university is an enormous asset. All those term papers and endless hammering on language fundamentals will help separate you from the herd.

    --
    ---- "Logoff! That cookie shit makes me nervous!" - A. Soprano
  341. Re:The choice of degree matters less than attitude by spawn1970 · · Score: 1

    While a "university" education can be very useful, think about the people like myself, who learn better and faster by reading materials and trying it themselves, than learning from an instructor who has to stop to make sure everyone understands.

    I tried the whole higher edication thing, and found myseld bored out of my mind. I do, however, read many technical books and reatain the information. I am a fast reader and learner, but I felt held back by the pace of structured classes. I am not saying I am a genius, but that I learn differently than some people.

    I have been declined jobs for not having a degree, but I have also landed jobs where the hiring managers said a degree was absolutely required.

    for the most part, college is an extension of high school, and you lose at least 4 years of real life experience while you are there. I know because I built my first home long before any of my college graduate friends, and I am doing at least as well as all of them.

    it works for some and not for others. Decide how you learn best and head in that direction. If you have the motivation, you can make it with or without a degree.

  342. Wrong Program? almost... by PhreakOfTime · · Score: 1
    I tend to think that an university education should stress scientific topics over vocational ones, but since I'm just planning to get a job after I grad, am I in the right program? "

    No, you are in the wrong SCHOOL.

    Actually, you are wasting your time, and money. You are basically paying someone to train you for a job in 4 years, that you may or may not have.

    If you are really interested in copmuter science, then you need to place yourself in an environment where that will be your focus throughout the day. Not pay someone to tell you what you need to know, which more often than not is what the large contributors to the technology school would like you to know.

    Experience in technical matters and solutions will carry far more weight for you in the real world than whatever a PHB might think about what school you attended for 4 years of your life.

    Your initial pretense is right though, school should focus more on science than vocation. Perhaps you are in the wrong program if all you want is a job. Hell, why waste any more time or money? Just sign up for a correspondence course for your 'piece of paper'.

    Although, if you havent figured out by yet that most schools in the US are nothing more than employee factories, than you might be better off just aiming for a 'job'. Probagbly a job with someone who didnt waste their time and money and just started up a business 4 years ago, and is just waiting for you to graduate for the cheap labor and mind numbing tasks you are about to embark upon.

    Enjoy!

  343. worked in IT for 25 years, never used calculus by walterbyrd · · Score: 1

    I have even worked in developing software that is designed for highly quantive purposes.

    I have degrees in math and computer science. Virtually everything that is taught in those theoretical courses is useless.

    Comptuter *science* might be a good for actual scientists. People who go on to get a PhD, and work in very high-level R&D for NASA, or something. But for 99% of real world work, it has no value.

    Academia is totally out of touch with the real world. Academia stresses theory, real world demands experience with specific products, i.e. Oracle, Java, ClearCase, etc.

  344. You are right - but employers don't know that by walterbyrd · · Score: 1


    I agree entirely. But, when an employer wants to hire a Java programmer; that employer doesn't give a damn about how much Lisp or Prolog you have studied.

    In fact, in many cases, the employer prefers that you haven't worked in other languages. Because if you have worked in other languages, then you are not dedicated to Java, and you not a Java specialist.

    Sorry, but that is how things work in the real world.

  345. Re:no by sunhou · · Score: 1

    Yes, I'm aware of the applications of linear algebra to circuits and structural analysis. I also do a simplified version of google page-rank using eigenvalues in my class, and adjacency matrices, error-correcting codes, applications to biological models, economic models, traffic flow through networks, and Markov chains. But I'm still curious what kind of job murr has.

  346. College is not to get a job by jayp00001 · · Score: 1

    College is not a requirement for IT employment- experience is. Drop out- get an entry level IT job and go back if you want an education- while you are working. You'll learn more on the job than you will at school- but, if you want the paper, you'll at least be usefull to someone after graduation.

  347. Suggestions from someone who's been around by Anonymous Coward · · Score: 0

    Having gone through a University to get my BS CS degree, and have over 20 years in the business (yes, I'm an old fart who actually used punched cards and such).

    Do not discount the Economics course. Programming is fun, but you should understand some business basics.

    As others have said, make sure you get some solid courses:

    Operating Systems, where you actually write some code for Linux or a pretend operating system. This will teach you how and why O/S's do what they do - which can give you an edge over a simple code monkey. After all, if you are scanning a 100,000 by 100,000 element array, who cares if you do it row or column major, right???

    Data Structures - others have commented on it, and I fully agree.

    A Database Course, should be practical Relational Database theory and operation. Back in my day, they wouldn't let you actually screw with databases, but the knowledge was very valuable. Nowdays, anyone should be able to hack a PostgreSQL/MySQL database and do some real useful stuff.

    Assembly Language of some type(s). You should know what the system is really doing. This also complements the Operating Systems course.

    Some Software Engineering course where you work in a group on a "Project". Projects that are simple games are more fun, and his class helps you learn to work with a team.

    My best advise is to get a part-time student job at the Computer Center. I got my best experience in trouble-shooting, doing real system maintenance, learning languages and practical knowledge outside of the classroom. As a side benefit is you sometimes help students solve problems or debug programs that you haven't taken yet - so when you take the course, you have an advantage.

  348. MOD parent up! by walterbyrd · · Score: 1


    Damn good point. Why get a nearly useless BSCS, when for the same nickle you can get a degree in engineering and be considered a real professional, with pay to match?

  349. Re:no by Anonymous Coward · · Score: 0

    I'm a Helpdesk Manager, and I already get treated worse than the janitor. are you black? :(

  350. Useless to me by Diablo1399 · · Score: 1

    I'm doing a Bachelor of Software Engineering (graduating this November) at the University of Canberra, and virtually the entire degree has been a joke. The actual coding skills you pick are rudimentary at best -- you spend the majority of your time doing Project Management and Information Systems Management without learning anything significant about the major programming languages. I personally hope to become a games programmer, and I've had to learn virtually all the skills for that profession independently. So in short, my experience at Uni has been pretty crap. Don't know if that's the general trend, but as someone who wants to become a programmer, I've found the majority of it totally useless.

  351. Re: Computer Science Curriculum in College by Courageous · · Score: 1

    Here's how it worked out for me. While the various and sundry theory classes in CS weren't immediately useful in the first several years of my work, they provided me with a valuable base; this allowed me to outstrip my peers in later years, as I actually had an interest in and retained the fundamental bases of CS, pushing me to the top as they foundered.

    Long term planning, fellow. Don't worry, capture this stuff, and move into an environment where it is appreciated.

    C//

  352. Badly needed courses by Anonymous Coward · · Score: 0

    They should have two CS curricula. One scientfic/theory one for the person that plans the study of CS or OSS and one pragmattic curricula for the joe that just wants a damn job in computers.

    The scientific/theory path badly needs some additional courses for it's grads to help them cope. Classes I see needed include:
    1. Your parents basement - Getting the most out of it.
    2. Sunlight - not all bad.
    3. Corporate America - not as evil as you think, remeber kids that's who your parents work for so that's who provided the basement you live in.

  353. Software Engineering is the one you're after by StrayLight · · Score: 1

    Software Engineering is basically the bits of computer science which get applied in the real world, plus the team, software methodology etc aspects you need to actually develop software. To take a hard-line view there's no realy reason for a coputer scientist to be interested in unit testing, because it's not 'science'.

    That said, more and more computer science courses are more like (software) engineering than science courses these days anyway.

  354. Re:The choice of degree matters less than attitude by FuzzyHead · · Score: 1

    Obviously, isn't aware that I am finishing up a Bachelor's in Biblical Studies. However, that's still a more useless degree than CS. Unless of course you start a huge church and pass the plate a lot. :)

  355. Solving Hard Problems by V_drive · · Score: 1

    I finished my computer engineering degree in 2000 and took a programming/engineering job. One year ago, I quit and became a grad student at one of the big four.

    When asked "so, what can you do?" a year ago, I would answer, "programing C/C++, UNIX/Win32 environments, ..." It was a sad and painful realization that I was nothing more than a digital carpenter.

    When asked in a year, "so, what can you do?" I will answer, "solve hard problems."

    I question whether the typical slashdotter knows what a "hard" problem is, I'll tell you it's one that can't be solved by simply (although with great skill and time investment) digging further into documentation and sourcecode. Since the vast majority of programming jobs require no solving of hard problems, I can understand the confusion regarding what a CS degree is for. Perhaps the best way of becoming a programmer has more in common with becoming a plumber than becoming an electrical engineer.

    There's nothing wrong with being a programmer, but that's not for me.

    --
    char *mySig;
  356. Who would you rather have? by fishexe · · Score: 1

    Therefore a lot of effort is placed in learning formal proofs, finite automata, turing machines, etc, which define what is possible with computing machines. A computer science degree should help you become an expert on the fundamentals of computing machines capabilities and uses, not make you a better web developer.
     
    Who would you rather have doing your web development, someone who uses methods that they've theoretically proven to work or someone who just does whatever seemed to work pretty well in the past? Who do you think is going to have a better grasp on how to fix things when they go wrong? This is the difference between a CS major and someone with a more vocationally oriented education.

    --
    "I don't care about the Constitution!" --Bill O'Reilly, November 17, 2009
  357. Re:no by danhirsch · · Score: 1

    Yea, thats kind of my delima. However, there are some great courses in some of the programs I am looking at for a MSCS. I actually "want" to learn this stuff...artificial intelligence, computer vision, etc... IN response to your MSSE quest...I have heard good things about Auburns program .. it is distance. Here is a link: http://www.auburn.edu/distance_learning/programs/e ng_mcse/ This is one I briefly considered in the past. The two programs I am trying to decide between are Columbia's MSCS program and Boston's MSCIS program...which looks very nice. Hope that helps!

  358. Re:no by danhirsch · · Score: 1

    Thank you...I feel honored a lot! Actually, its one of my commonly mispelled words/phrases. In my haste to reply, and forgetting its slashdot, I neglected to proof and/or pay attention...therefore the error. I can assure you it might not happen again. :)

  359. Database fundamentals are essential. by Stopher2475 · · Score: 0

    If you're out to get a job in business then a good db background is very helpful. That's what people are paying for anyway.

  360. Bleh, you can learn to program on your own by autopr0n · · Score: 2, Insightful

    I did. Having graduated from collage, I now realized I knew enough going in to do most programming jobs out there. Computer science is a branch of mathimatics. If you just want to program without learning anything, take MIS, and quit cha bitching.

    --
    autopr0n is like, down and stuff.
  361. CS or coders? by POds · · Score: 1

    Unfortunatly most computer science students end up coding in software teams, for commercial organisations. But there are other fields, such as research and development that make greater use of CS skills. For exmpale, I did Theory of Computation last semester. Hard subject, but i thought it was great. It gave me a back ground on computers in general, the P vs NP problem etc. But is also went into completeness, analysing problems etc. A very important subject from a computer science point of view, but maybe not from a coders point of view, which is what most CS students end up doing.

    --


    Giving IE users a taste of their own medicine since 2005 - http://pods.-is-a-geek.net/
  362. Getting a Job by CaptainPercolator · · Score: 1

    If you're just trying to "get a job" maybe this Dan guy is right, but I wouldn't listen to him.

    Who are you? Are you an okay student, bright enough, and want a job as a 'programmer' for a few years? Then just take Dan's courses, but don't be surprised when your job moves off shore or you never move up.

    If you're ambitious, smart, and want a well paid career doing interesting work, then take the time now to understand your field deeply and set yourself apart from others. Mastering data structures is relatively easy; find skills that make you unique.

    AI, machine learning, and numeric methods are at the heart of my company's work, and the last thing I want is to hire another vanilla programmer.

    Well having said this, I could poke holes in it, but we'll leave that to someone else.

  363. Your school got it right by ChrisA90278 · · Score: 1

    You are right. I was a CS major 20+ years ago and I'm sure happy I did not wase my time learnning the "technology of the day needed to get a job" COBOL on punched cards would do me no good today. But I did study the exact same subjects you will "theory of computation, machine leaning and so on. You should be studying the theory of language design and not any one specific programiing language. The theory of operating systems, compiles and databases was not changed from the 1970's when I first studied those things. Yes we did lots of programming but hte profs would not waste lature time explaining how to write a "foor loop" the TAs did that in the lab or we read up on our own. If they start teaching basic programming to CS majors what is next? Classes on how to use MWS Word for English magers? No, programming is something you just have to know before you can study CS.

    1. Re:Your school got it right by ChrisA90278 · · Score: 1

      Re-reading what I just wrote. Maybe they should have made us take "typing 101".

    2. Re:Your school got it right by Tidal+Flame · · Score: 1

      "Classes on how to use MWS Word for English magers?"

      You must be thinking of business majors. ;)

  364. Surprised at the curricula by BigLinuxGuy · · Score: 1

    Given several names in the industry have noted that college degrees are little more than Java certifications these days, I'm pleasantly surprised to see that computer science is still taught instead of being yet another language-specific implementation set of courses. The sad truth is that while there is nothing wrong with Java as a language, per se, most college graduates come out knowing little else than how to program in Java. Many of them that I've spoken to or have worked with didn't get much in the way of data structures, or any other advanced topic because the coursework seems to be focused specifically on programming, not learning the theory behind the programming. Of course, their justification was that they wanted to get a job right out of college. It's sort of sad, because we have a generation of "Java Programmers" who will be lost when the next disruptive language/paradigm occurs because they won't have the background to deal with it.

  365. Re:The choice of degree matters less than attitude by Vraeden · · Score: 1

    Thanks for being a professor. I enjoyed my CS degree getting experience and will always appreciate having the degree. I never cared for the jobs I got, but I'm moving on to law school now. I still think that my CS degree was completely worth it.

  366. -1 Retarded by panaceaa · · Score: 1

    Do you really need to create your own datastructure?

    No, he doesn't. He specifically said he wants the "knowledge to see quickly if the standard Java libraries have this structure already built".

    And it's important to have the knowledge of the underlying data structures before choosing them. For example, for a List, should he use an ArrayList, a LinkedList, or a Vector? (Or maybe a LinkedHashMap works better for the problem at hand?)

    If you haven't taken a data structures class, or studied the issues in your spare time, you likely couldn't come to a proper decision. Proper decisions involve efficiency (therefore you should understand Big-O notation), and oftentimes threadsafety. If you don't know Big-O notation, the sentence "The add operation runs in amortized constant time, that is, adding n elements requires O(n) time." from the ArrayList JavaDoc would be gibberish. And you wouldn't know that by switching to LinkedList, you would get O(1) time for insertions because the LinkedList JavaDoc doesn't explicitly state that. (It ASSUMES you know the underlying data structure -- and unless you've taken a data structures class, you probably don't.)

    Therefore knowing the Java Collections Framework exists and knowing how to use it properly are two completely different things. If you're writing Java apps as a hobby, using ArrayList all the time will work well enough in most situations. But once efficiency and threadsafety enter the picture, understanding data structures at a low level gives you a major leg up.

    1. Re:-1 Retarded by boomgopher · · Score: 0, Flamebait

      Geez, relax Mr. CS..

      No, he doesn't. He specifically said he wants the "knowledge to see quickly if the standard Java libraries have this structure already built".

      Okay I skimmed that part - however I've run into a bunch of newbie grads (myself included) who were all foaming at the mouth to reinvent the wheel when it comes to data structures and sorting algorithms. However, it would be far better in 99.99% of the cases to use the existing implementations (designed by CS brainiacs at Sun) or at least code to an appropriate Collection interface. And as for sorting, implement the Comparator interface, etc.

      This is far better than finding some one-off MyDataStructure.java in your product's code-base, no matter how elegant it is.

      Professional software engineering != computer science

      --
      Your hybrid is not saving the environment. Its purpose is to make you feel good about buying something.
  367. True story by Mark+Programmer · · Score: 1

    I worked a nine-month internship with a software company that writes satellite tracking software. One of the first projects I worked on was to re-work our hard-coded compiler control software--written in C#--to use an XML "script" to control the compiler operations. I'd never touched C# before, and I'd only worked with XML on one other short project.

    Employing some techniques I'd learned from a semester of "programming theory"--a course that relied heavily on ML but assumed you'd learn the language yourself as the semester went on--I banged out a functional-style codebase using first-class functions, one function per grammar element in our scripting language. I then hammered out a script that did what our previous hard-coded engine had done and a DTD to validate the script (the DTD was superfluous, but hey, I'd just taught myself everything I needed to know about XML from two websites, so I figured I'd put it to good use). Final verdict: better than the original.

    Could I have executed that bit of magic without a Comp. Sci degree? Hard to say. Would a technical curriculum that taught me XML and C# have also suggested to me that using functional-programming style to mirror the data-driven design of the language in the parser itself makes the parser easier to maintain by creating a one-to-one conceptual mapping between adding phrases to the grammar and adding new functions to the parser? I suspect not; I think that seeing such conceptual interrelations is a skill that only comes from experience--or a good science course. At the end of the day, identifying, deriving, and verifying patterns is what any science--Computer Science included--is all about. I somehow doubt that I'd see that if I'd been taught XML and C#, but never general programming theory or functional programming.

    Of course, the plural of "anecdote" is not "data..." but anecdotes can be fun.

    --

    Take care,
    Mark

    There is a solution...

  368. Re:The choice of degree matters less than attitude by GiMP · · Score: 1

    I have a similar experience. In my college years, I learned TCL, Java, and Scheme, over a weekend each. TCL/TK, I learned while a passenger on a road trip to Florida (to visit my school of choice). I learned Java in a glorious cram-session on the first weekend of the semester for my Java class.

    Was I a master at these languages? Of course not. I was pretty confident I could write programs in these languages, provided I would need a reference handy. After two weeks and being throughly bored of playing with Java's ClassLoader, I suspect I reaching that goal (of mastery). I asked questions my professor didn't have answers to, eventually discovering the answers myself. Sometimes I'd already have the answer, but I'd ask anyway ;)

    Now for me, C# is a slightly different story as it touched on some topics I hadn't dealt with in some time, or invited new concepts. I also wasn't as focused (older, etc). I still wouldn't say that I know it, only because I haven't used it enough.

  369. All of those classes are useful by tjstork · · Score: 1

    The theory of computing is what gives you a real competitive advantage over Chubb school people. If you can look at an algorithm and classify it based on N, N log N, N^2, N^N, then, you have a huge advantage over people that really just don't know the difference.

    Similarly, once you get that all computers is are is twisting trees and networks from one shape to another, everything sorta falls into place.

    --
    This is my sig.
  370. Computer Science Curriculum in College by oh_my_080980980 · · Score: 1

    It amazes me the number of times I see posts about the futility of a CS degree in its' ability in getting you a job in the IT industry. I don't suppose people bother reading the classifieds anymore but most full-time postions, that pay anything, require a CS degree. Or put another way, READ THE BLOODY CLASSIFIEDS TO DETERMINE WHAT SUCH AND SUCH A COMPANY REQUIRES!! Why on earth would you put any stock in what some pin-head says on his web-blog or what have you. This moron is already employed you are not. Do you want a job? Then go out into industry and ask them what they require. Don't ask jerk-wads on slashdot or what have you. Back in my day when I was in high school they had these things called "Career Fairs," where people from different industries would come and you could talk to them and ask them what they do, what's it like and what kind of education/training was required for their position. IT'S CALLED RESEARCH! This is high school guidance counseling 101. So yes maybe a CS degree is not required for certain types of IT jobs. Yes maybe some companies will hire you without a CS degree. But you are not going to KNOW THAT unless you ASK THE COMPANY doing the hiring!! Or better yet READ THE FREAKIN' JOB-ADD!!!

  371. Re:The choice of degree matters less than attitude by uncreativ · · Score: 1

    I agree with much of what you say--though a CS degree in particular may not suit every IT job. I can't tell from the original posting what type of job the poster would prefer, but I find CS majors often do not have a well rounded enough education to fit in at my place of work. I hire people to do more than just programming--should I need a full time programmer, I would probably look for a CS guy/gal.

    I prefer college educated candidates, and give extra bonus points to non-CS majors who have learned significant CS skills on their own. A CS major candidate would have to demonstrate the ability to learn new skills outside the CS field for me to be impressed.

    I myself have a degree in math and physics. I've even found a humanities degree holder who is great at learning new technical skills. The weakness I've seen in all the CS majors I've worked with in the past is the breadth of their education (despite the fact that CS is often located in liberal arts colleges on many campuses). Like many companies, the one I work for is a medium sized company that has a handful of geeks running an IT department. Web programming, database applications, network management, phone systems, end user support, etc are the main focus. While a CS major could handle any of the technical requirements for these skills, I have found it difficult to get them to learn/understand:

    1. How their CS skills can best be used to improve business processes.
    2. How to work in a team with members from non IT related departments.
    3. How to communicate IT/CS concepts to non IT/CS people.
    4. That the company they work for does not exist for the sole purpose of propogating an IT department.

    Companies that have good IT departments tend to have the above points figured out. Those companies that have bad IT departments tend to be missing the boat on one or more of the above points.

    So I suppose the argument will be advanced that I should hire MIS people. I find that MIS folks tend not to be very creative and too conservative.

    Any way, I don't exclude CS people from consideration, but previous experience makes me be more careful. I'd love to see a candidate with CS + just about anything else. CS + one of humanities, arts, math/physical sciences, etc
    would definitely impress me--the more dissimilar the second major to CS, the better.

  372. Zambonini A Clever Pseudonym by FrankDrebin · · Score: 1

    When reading TFA, I initially thought this guy may have a point. Then when he recommends a course on "Cleaning And Preparing An Ice Surface For Pleasure and Competitive Purposes", I'm like, WTF? Then it dawns on me. This man may actually be a Zamboni. Never trust a Zamboni.

    --
    Anybody want a peanut?
  373. no by Myopic · · Score: 1

    if you want to learn how to program, to go a tech school. if you want to learn *computer science*, get a BA and be happy you have it.

  374. Degrees mean nothing, here's what to do by Anonymous Coward · · Score: 0

    I've never been asked for my high school degree in my entire life and that's all I have.
    I can out engineer any "corporate" engineer (electronics or programming) and always go to the president of any company I want to consult for, that is when I feel like coming out of retirement.
    The engineers at these companies are always threatened by my skills and really try to mess me up every chance they get. It gets old fast.
    Just see if this makes sense:
    Either you got it or you don't. In my case it comes natural. I am into figuring out how things work, I take apart everything, that's how I learn.
    You only remember those things that are important to you. I remember IC numbers and their pinouts, but I forget birthdays. Why? Because the ICs allow me to design new and cool things, so I remember that stuff.
    So do this, go play with stuff, get yourself a linux box and program it. See if you like it or not. Go with what is natural.
    Then, if you like, go take only the courses you think you need help in. The rest, learn on your own.
    You can do it 20 hours a day and are un-restricted by other idiots that are just there to get some stupid paper and a paycheck raise.
    If you were president of a company would you want the guy who can actually do something useful or the guy who has some paper that says he went to school?
    If you are going to be a doctor, ignore all I just said, the government doesn't let you be a doctor without papers, sorry.

  375. Re:no by murr · · Score: 1

    As someone who teaches Linear Algebra, I'm very curious -- what kind of job do you have?

    I work in speech processing and use Linear Algebra for some speech synthesis related issues and for junk mail filtering.

  376. Lots of passionate people! by Zambo · · Score: 1

    As the author of the original weblog entry, I just thought I'd put some additional comments here, and respond to some of the criticisms (and hate email!) I've had.

    I think one of the main criticisms is that I've confused Computer Science with Software Engineering. And I did a little, and just gloss over the differences. But as I hinted at in the original post, my main worry is that - at least, here in the UK - the majority of 'computing' courses on offer are Computer Science, which may not fairly reflect the current and emerging IT job market. Maybe I'm wrong.

    Many have also pointed out, correctly, that University is mainly about 'how to learn', 'how to work', and so on, and not about particular skills. I concede this point, but the bottom line is that the act of going to college/university teaches you most of this, not a particular course. So, they have to teach you _some_ specific skills in a computing (I won't say Computer Science!) course, and my personal opinion is that these could be better aligned with (what I perceive to be) the job market.

    My original passing comment on XML has also been taken a bit too seriously! OK, so XML may not be around in "20 years", but so will most of the specifics that you're taught - this is I.T., where technologies change on a weekly basis. Who's to say that the Bayesian Network and Computer Vision techniques won't also be outdated in 10 years?

    Many of these skills could be learnt on the job, but for most small/medium sized companies (which perhaps make up a fair proportion of the market?), a 3 month induction/training course isn't viable - we need graduates who can come in and hit the ground running. It's a shame, because - as someone has said - students can't be geared up for every type of IT job out there.

    Just a small couple of justifications on some of my choices... Code Reading: absolutely, I stand by this. How much of a daily 'programmers' job (whether in web, software, science, or whatever) is taken up with code maintenance - 50%? 70%? The ability to read code is therefore just as important as the ability to write code. Nutrition? Ok, I put a question mark after it in the original post, as it was just a minor thought... But concentration is important for programmers, and a fast food and soda diet (ah, the old IT cliche!) are related to the ability to concentrate. Economics and Business Studies? Sure - I wouldn't want a nurse to attend to me without understanding the need to prioritise patients and how the bigger, healthcare system works. Similarly, I think it's important that a programmer understands that not all 'neat' functionality can always be delivered, and that not all problems can be fixed. None of these have to be 3 month courses, they could just be hour-long lunch-time topics. I'm just throwing ideas into the air, really.

    I'm glad this has given rise to a debate, it's extremely interesting to hear both sides of the argument. But, if you're going to post a comment, please read the actual entry - note that the 'draft' list of topics I list are just a 'stream of consciousness', not a finalised module list!

    As a final point, for those that assume I'm anti-mathematics... I studied a masters then a PhD in astrophysics, mainly due to my love of maths. It's not that I don't think maths is important, it's just that differential equations, integration and fourier transforms are possibly not as important as some of the other topics that could be studied.

  377. Re:The choice of degree matters less than attitude by Alioth · · Score: 1

    Probably because you didn't do any CS-like learning is why you think learning C# in a very short period of time is 'simply false'. (Another poster mentioned libraries so I won't belabour that point. It took me about 45 minutes over lunch one day to get up to speed with the syntax and features of Objective-C having never written a line of ObjC in my life; it will take a lot longer to know Cocoa (the class library) inside and out. But you can just look up library details on the fly, especially if you have an existing project to look at. I wager it would take me no longer than 45 minutes to grok the syntax of C# too - all it is is a variation on a theme, and again, I can just trawl the library documentation).

    You will probably learn this with time. Of course you don't say what languages you do use - but if you're monolingual, perhaps that's why you think that. A CS student is likely to have been exposed to many languages, and in the course of this has recognised that really what is important is not the language but the principles of computer science and will already realise that picking up the basics of a new language of a given type is really a 45 minute job. Your dismissal of CS graduates (who generally will have this skill) just shows you still have an awful lot to learn yourself which you may have done if you had done CS :-)

  378. Code Monkey by kaffiene · · Score: 1

    The guy is clearly a code monkey and doesn't understand what an education is for.

    I mean, FFS! LEARN XML???? Why the fuck do you need to take a course to LEARN XML???

    Here's a hint: thousands of people working in IT now use XML without having taken courses in it? How are they capable of this amazing feat of knowing about something without having to have taken a course on it? Because they have a decent education and they've learned how to learn. They have a good theoretical base in the art which makes new technologies easier to absorb and understand.

    I repeat: the original article author is a code monkey.

  379. It's the business context dudes.... by ITgrrrl · · Score: 1

    It doesn't matter what IT, IS, CIS or other computer science fiction courses you sign up for if you don't combine them with the ability to analyze a problem, write a cogent sentence, understand history, make a little small talk and do a good job presenting. Community colleges often offer the most practical applied coursework for things like data structures.

    --
    'The longing to be primitive is a disease of culture' George Santayana
  380. My Take on CS Curriculum by pilanian · · Score: 1

    Based on my experience of having a Masters degree in Computer Science, I would say that for "education" you need to be taught concepts; "training" will teach skills that you need in your day-to-day jobs.

    I don't agree with Dan Zambonini's list for many topics (and I am sure that many would not agree with my list that follows).

    My suggestions for CS undergraduate courses would be:

    1. Data Structures.

    2. Algorithms (Basic and Advanced, 2 courses).

    3. Theory of Computation.

    4. Discrete Mathematics.

    5. Basic courses in Physics, Chemistry, Linear Algebra, Numerical Analysis, (now) Biology.

    6. Some courses on Literature, Languages, Report Writing, Technical Communication, Psychology.

    7. Some Courses on Economics and Management Principles.

    8. Basic courses in Electronics (atleast two).

    9. Operating System (atleast 2 courses).

    10. Compiler Design.

    11. Computer Organization and Structures.

    12. Computer Architectures (one covering uPs and one advanced concepts).

    13. Atleast 2 programming languages (one of which is C).

    14. Atleast 1 scripting language (Perl).

    15. Internet Technology and Practices.

    16. Control Systems, Instrumentation and System Design.

    17. DBMS related (2 courses).

    18. Networking and Computer Networks.

    19. Data Communications.

    20. Grid Computing / Network Computing.

    21. Projects and Seminars under various courses.

    22. .... and some more ....

    --
    -- Raj
  381. The real problem.. by Stud1y · · Score: 1

    is people are stupid. You can go to a class that teaches theory. or you can go learn how to strictly code. which one is better and will turn out the better programmer? Neither. I have a combination of both, college theory and my own learning. The problem with on your own, is people only care about the "RIGHT NOW" idea.. the "I need to learn this because it's what I need to complete this task", then it's added to their basket of tricks. The problem with the theory students? it's all they've got. they know about some douche-bag that make some theory that they try to make everything fit into. My way of thinking, either you've got the analytical and logical processes to do the job, or you don't. Just because you can get a degree in the field doesn't mean you're really cut out for it. The degree just gets you in the door. But that's me, and I just happen to hate people. Degree's don't impress me, and never will... exceptional thinking, creativeness, and the like are impressive, and colleges don't teach people how to do that. They just teach you regurgitation processes.

  382. Re:no by Anonymous Coward · · Score: 0

    Good for all of you, I know a rotten University in the Philippines where almost *all* of the teachers on computer engineering department (they are fond of calling themselves engineers) are incompetent about computer subjects they are teaching. With regards to computers they are *mediocre* at best. They teach students how to use windows, word, excel, powerpoint, etc. They even go as far as teaching html and javascript on subjects designated in the curriculum as "Advanced Programming". By the way, the name of this university is Rizal Technological University. gah!

  383. I agree, but dissagree by mbabauer · · Score: 1

    I have a Bachelors in CS myself, and could honestly say that if I had all my limbs hacked off, I could still effectively count how many times an employer has asked me to write a compiler. Its just not a "real-world" skill.

    That being said, I have also worked with many IS majors. We refered to IS at my school as "CS for dummies". Basically, they had mostly the same general programming classes, but while were were in ODE, Fundamental Physics, and Calc 3, they took Intro to Business, Economics, and Business Writing courses. There is nothing wrong with this track, but I can honestly say that the quality of people who enrolled in IS over CS were not of the same caliper.

    I am not knocking IS at all...most of my best friends were IS majors, but they are not the geekiest of the geeks. While I was building a mame machine or some other geeky project, my IS friends just looked at me like "Why would you want to do that?"

    Now, fast forward to today. I am a Software Developer, and I still work with IS majors. And even though I have never written another compiler since school, I HAVE used the skills I learned in doing so, like languange parsing. Plus, knowing how the internals of a compiler works helps understand what certain errors mean. The same is true for most of the other classes.

    I guess my point is, take what you can from the classes you are in. The knowledge may not be directly applicable, but you can apply anything.

  384. You'll get the best education while on the job. by polishedturd · · Score: 1

    I have nothing against Universities teaching people a curriculum that broadens there minds. However, with the cost of college tuition these days, I think college students would be much happier to see a return on investment right out of college. I'm a senior software architect/programmer for a medium sized company. We interview a lot of people fresh from college. I have no doubt that they are all intelligent people with an abundance of knowledge that helps them to be a well-rounded person. However, when we are looking for programmers we look for criteria that is similar to what was listed in the original article that spawned this Slashdot article in the first place. I've provided the link to the article below as well as the criteria mentioned in the article. http://www.onlamp.com/pub/wlg/7757 If you are a student going to college make sure that you are getting the following curriculum from your expensive, well-rounded education: * The basics of Programming (variables, data types, references, pointers, scope, error handling, iteration, core algorithms - searching, sorting, etc.) * Basic mathematics, basic statistics * Patterns and Anti-Patterns (With real world examples, not just theory) * Real world Databases (Normalisation and De-normalisation, SQL, Indexing) * Basics of good code architecture: Loose Coupling, etc. * OO Design, Interfaces, etc. * The importance and tools of Planning: Spec'ing,, UML etc. * Architectures: client/server, SOA, P2P, etc. * A 'Big' language or two (Java, C#, C/C++) * A scripting/'agile' language or two (PHP, Perl, Python, Ruby) * XML (DOM/SAX, XSLT/XPath, etc.) * Economics, Business Studies, Costing Projects, Commercial pressures * Copyright, Privacy, Data Protection * Project/Time Management * Internationalisation, Localisation, Encoding, Unicode * Grammar, punctuation, concise and clear writing * Interface Design, Usability, Accessibility, HCI * Security * Code Reading * Common Protocols (TCP/IP, HTTP, SMTP, FTP) * Testing, Debugging, Performance, Re-factoring * Problem analysis * Source control, change management * The typical Software lifecycle * Metadata, Information Architecture, etc. * The basics of GIS * Touch typing * Health and safety (nutrition?)

  385. Education over Vocatin by DevCybiko · · Score: 1

    If all you want is to write code then you can go to ECPI or get a book and learn to write Java. If you want to understand Systems and set the foundation for a career in Computer Science, study the fundamentals and work in a job on the side that teaches implementation.

  386. gotta be well-rounded by Sjobeck · · Score: 0

    Education is for both preparing you to make a decent living, nothing more, *AND* also for making you a good, educated, thoughtful, ambitious citizen as well.

    We lack this second type of condition in the population. It is why we are at war right now, why we are plundering the planet right now, why children are not a focus, why people are dead & dying in the central south of the US right now.

    Prepare to be a good citizen. Read a book on the Trojans and their compulsory citizenship.

  387. My choice of cirriculum, fits most needs. by giftedtiger74 · · Score: 1

    I do not yet have my B.Sci but am working on getting one from a reputable state school's distance education program. UofMd. University College. They had a true "Computer Science" bachelor's program but I decided to go with the "Computer and Information Sciences" degree, which is about 50% computer science and 50% information science. Classes include network and system administration, C++/Java/OO programming, discrete math, data structures, and your typical electives.
    I have spent the last eight or nine years as a system admin/engineer and done a bit of web development freelance, as well as C/C++ programming on my own. I took 2 years of computer science in high school (Yay Pascal!), and feel that I have a well rounded knowledge of programming/networking/operating systems. Do I really need the degree? Not currently, but I feel that it will complement my current skill set as well as bring me up to speed on the theoretical side of computer science.
    After I am done, I plan on taking a couple years off then going back to get my masters degree.
    Anyone else done similar? -gft

  388. Re:no by Stephan+Schulz · · Score: 1
    Pascal, Modula-2, and Oberon (guess which school I attended :-). This hasn't exactly prevented me from getting gainful employment.
    Well, if you graduate in CS from ETH in the early 90s, it probably was hard not to drown in job offers. I don't know if it has anything to do with languages.

    At U. Kaiserslautern, I mostly learned Modula-2, LISP, Fortran ("voluntary" - hah) and C (not taught - pick it up or die, 90% of 3rd-year+ work required it).

    --

    Stephan

  389. Keep talking by StarKruzr · · Score: 1

    I haven't gotten my US RDA of irony yet.

    This might help, though:

    Slashdot moderation is an absolute arbiter of my worth as a human being, knowledge, and intelligence!

    --

    +++ATH0
    1. Re:Keep talking by Anonymous Coward · · Score: 0

      "Slashdot moderation is an absolute arbiter of my worth as a human being, knowledge, and intelligence!" - by StarKruzr (74642) on Monday September 12, @05:28PM

      You said it, not myself, & if that's how you feel? I am forced to agree... lol!

      OK? You happy now?? You're RIGHT for once!

      Besides: Your initial post score StarKruzr:

      My God. (Score:-1, Flamebait)
      by StarKruzr (74642) on Sunday September 11, @12:42PM

      vs.

      My initial post score:

      Re:if you want more vocation, plus a better chance (Score:4, Informative)
      by Anonymous Coward on Sunday September 11, @11:51AM

      ----

      That's all anyone needs to see, your score vs. that of my own on our replies being rated...

      (& I didn't do the judging, others here did in the forums moderators).

      So much for that.

      * I mean, AGAIN, how much more do you arstechnica forums members wish to embarass yourselves?

      APK

  390. Machine Learning by GWBasic · · Score: 1

    Machine Learning is a hot topic in software engineering jobs that involve factory automation. AI is a hot topic if you ever program for NASA. These classes are only irrelevant if you're just going to be a menial grunt-work coder.

  391. Make yourself a better person... by Castar · · Score: 1

    ...not just a better employee.

    One of the most valuable courses my University had was a required survey course that exposed everyone to important ideas, and the "big questions". Essentially a philosophy course, but more accessible.

    The only time you're going to encounter anything like that - something to change people's opinions, force them to come to terms with their beliefs, and learn something about everyone else and other fields of study, is in an academic setting. You'd be doing yourself a disservice if you went to a college and only ended up with the ability to be a good 9-to-5er for some corporation. A lack of respect for knowledge is common these days, but being well-rounded and exploring all your options will give you a fuller, richer life.

    Major in CS or CIS, but take courses in literature, biology, history, philosophy, education, interpretive dance, or whatever else you can. You'll be happier for it.

    --
    I yearn for you tragically. A. T. Tappman, Chaplain, U.S. Army.
    1. Re:Make yourself a better person... by (1+-sqrt(5))*(2**-1) · · Score: 1
      One of the most valuable courses my University had was a required survey course that exposed everyone to important ideas, and the "big questions".
      For lesser minds, I'm afraid, such survey courses tend to install a sense of well-read hubris: the veni, legi, vici syndrome.

      I've had much more thoughtful conversations with the unread than I have with the half-read.

  392. I don't think I'm done embarrassing myself yet. by StarKruzr · · Score: 1

    Why don't you tell us all about APKTools and how they are the power user's wet dream?

    Flipping those registry values sure is hard work, isn't it?

    That's all anyone needs to see! The evidence speaks for itself! APK is my master! Iraq DEFINITELY has weapons of mass destruction!

    --

    +++ATH0
    1. Re:I don't think I'm done embarrassing myself yet. by Anonymous Coward · · Score: 0

      You're losing it man... seriously.

      APK

  393. Re:The choice of degree matters less than attitude by garote · · Score: 1
    You make good points, but consider that perhaps your own qualifications are not the best yardstick for evaluating the usefulness of a CS college education: You differ from your students most definitely in age, and quite possibly in the type of background.

    I started programming in Machine Language, and collaborating with others in a forum via dial-up modem (which developed EXTREMELY important technical writing skills) when I was eleven years old. It was the only way to accomplish my goals on a computer as "slow" as the Apple II. I transitioned to C and C++ in about a month, when I took up a summer job for a DoD contractor and bought a PC. Finally, three years later, I bootstrapped my way into the UC system as a CS major ... and was greatly annoyed.

    Why? In college, my fellow CS students were being fed the theory and the details as though both were new, and running off on all kinds of bizarre tangents because, on a fundamental level, they still didn't really know what the computer was actually doing with the instructions they gave it. Upper-division compiler design and basic circuit engineering courses were supposed to correct this ... I think ... but when I encountered them (and breezed through them) I was struck by how far out of sequence the knowledge was, relative to the supposedly "easier" CS 101 stuff (where students were asked to make an object-oriented version of that ancient data structure, the doubly-linked list, before they could really appreciate the reasons for using an object-oriented approach in the first place.)

    Because my immersion in computers had occurred during a period when "high level" languages were inaccessible, this had forced me to drill down and cultivate a thorough understanding of the details of computer architecture, and paradoxically, that created such a solid foundation that the overarching theory became obvious - second nature - to me. For example, I picked up object-oriented programming in a week - secure in my understanding of exactly what exceptions to the rules the advanced compiler was allowing me to make in my programs, which illuminated the unique ways in which object-oriented languages could and should be leveraged.

    Based on this anecdotal evidence, I think that in Computer Science as a field, the only difference between teaching "theory" and teaching "details" is in THE AGE OF THE STUDENT.

    You learn your first language, that's almost all details. You graduate to upper division, OR get a different job, OR get a new computer -- that compels you to learn a second language. From then on, the ratio of details to theory shrinks. My "official" CS education only served to fill in gaps of an understanding I'd already cultivated. In the job world outside and beyond college, I continued to rely mostly on the flexibility I'd developed before stepping into that first college class. I DIDN'T LEARN that flexibility in a classroom, nor am I convinced that the classrooms I sat in could ever adequately instill it.

    However, if I was to point the finger in any one direction, to identify what made that flexibility possible, it would be the time I spent learning Assembly Language, and learning how to use it to do everything from graphics to sound to databases. That's the point where the actual hardware meets the actual programming logic, after all. Go up and down from that point and you're entering separate universes.

    So why isn't the first CS class we take, an assembly language course in an emulated Apple II? (Aside from the whining voices of the students declaring its obsolescence?)

  394. I have not yet begun to troll! by StarKruzr · · Score: 1

    Why don't you tell everyone about how highly rated you are on ZDNet?

    Come on. Surely you're down to only one star by now.

    --

    +++ATH0
    1. Re:I have not yet begun to troll! by Anonymous Coward · · Score: 0

      Your initial post score StarKruzr:

      My God. (Score:-1, Flamebait)
      by StarKruzr (74642) on Sunday September 11, @12:42PM

      vs.

      My initial post score:

      Re:if you want more vocation, plus a better chance (Score:4, Informative)
      by Anonymous Coward on Sunday September 11, @11:51AM

      ----

      That's all anyone needs to see, your score vs. that of my own on our replies being rated...

      (& I didn't do the judging, others here did in the forums moderators).

      APK

    2. Re:I have not yet begun to troll! by Anonymous Coward · · Score: 0

      What have you ever written that others can use in the way of programs featured @ websites online that have done well over time?

      And, since you asked, here is their latest model for you:

      http://www.softlookup.com/download.asp?id=9610

      (I'm curious about that... you state earlier you are "intelligent" but, don't you realize that all the intelligence in the world doesn't matter if you are lazy?)

      Also, YOUR initial post score StarKruzr:

      My God. (Score:-1, Flamebait)
      by StarKruzr (74642) on Sunday September 11, @12:42PM

      vs.

      My initial post score:

      Re:if you want more vocation, plus a better chance (Score:4, Informative) by Anonymous Coward on Sunday September 11, @11:51AM

      ----

      That's all anyone needs to see, your score vs. that of my own on our replies being rated...

      (& I didn't do the judging, others here did in the forums moderators).

      * I mean, how much more do you arstechnica forums members wish to embarass yourselves?

      APK

      P.S.=> Additionally: Uhm, what is your problem and why are you trying to pester myself in your replies here? The forums moderators liked my initial reply, and not yours (margin of diff. between them was 5 total points, yours being below zero no less)... obviously.

      You don't get it: You aren't capable of bothering myself, but apparently @ some point in time I got the better of you SO badly, you are just hurting still over it... let it go!

      I say this, because You most certainly look like somebody who has some 'severe problems' since you started this out rated as a "flamebait" trying to 'get my goat' & all you're doing?

      Is making yourself look bad)...

      Instead, why don't you spend your time learning about this science, & then writing up a toolset of utilities or even a single program others can use instead of being a nuisance that embarasses your fellow arstechnicans as you have here?

      Your time would be spent better that way for yourself and others, or don't you realize that??... apk

  395. You misunderstand me. by StarKruzr · · Score: 1

    I'm not trying to hide the fact that I have no respect for you whatsoever. If I gave the impression that I did, my apologies.

    In point of fact, I am a doctoral student in computer engineering at the University of Notre Dame, and this coming semester I will be implementing a real-time (m,k)-type scheduler which uses smart i/o-bound job dropping to achieve better power management. We'll be investigating the prospect of dynamically scheduling by looking at the i/o usage history of processes and projecting that usage into future predictions of i/o behavior. In this way we can drop jobs which occur in-between i/o-bound jobs, push them together and eliminate the overhead of switching i/o devices off and back on again (rather than dropping them just based on plain (m,k)-firm constraints).

    However, none of this was about me, really - it was more about me GREATLY enjoying trolling the hell out of you because you're an imbecile who enjoys belittling others. Don't think we forgot why you were banned - and it's clear you haven't changed. The 3rd-person mockery post proved that. It must have been a significant effort to restrain yourself from putting "apk" at the end of every sentence.

    --

    +++ATH0
  396. Re:You misunderstand me. No, YOU'RE JUST A STUDENT by Anonymous Coward · · Score: 0

    I think you had best read this, start-to-finish, for your OWN good:

    First of all, My question to you, last post? It simply went unanswered (as I knew it would):

    "What have you ever written that others can use in the way of programs featured @ websites online that have done well over time?" - APK

    NOTHING/NADA/ZIP - you are either lazy, or just a talker.

    Now, You also stated in your replies to me that you were "intelligent"...

    (Personally? I don't think so based on your over use of profanity & such as well as attacking your betters)

    New News: Well, you can be the MOST intelligent person in the world, but if you are a talker & lazy? Not worth a wooden nickel.

    What is the old saying? "Genius is 1% inspiration & 99% perspiration" or something like that... & talk IS cheap. Both apply to you hugely. After all, I asked you to show me something you have done others can use online... what did you show me? NOTHING.

    "I am a doctoral student" - by StarKruzr (74642) on Tuesday September 13, @02:15PM

    LOL, above all? You're JUST a student: ONLY A STUDENT!

    Well, so you say, @ least. BUT, let's assume you are @ the levels you state. Think you get MY respect? LOL... good enough of an answer from me? Here goes, as to why:

    (And, not ONLY are you JUST A STUDENT, but a typical 'thinks he knows it all arstechnica blowhard student', no less!)

    Hey, I can say I am Bill Gates for all you know, couldn't I? Not that it'd matter, because deeds speak more than just words.

    You do a set of tools as large & comprehensive as my own that have done as well as they have over time @ various websites & such rating well (mainly amongst my peers @ a site that BORLAND THEMSELVES ALSO HOST, who program Borland Delphi there, receiving their TOPMOST rating, from programmers in this field who are pros no less, & not just 'student wanna bes' like yourself here:

    http://www.torry.net/pages.php?id=583

    (2nd product down, rated "HOT" their topmost rating & the ONE THING I am proudest of, of all accomplishments that are public I have done in this field because it was rated thus by my peers... not just end-users, & there IS a difference of range of knowledge there! So, so much for your putting them down!)

    Also, You do that? We'll talk then. OK?? Until then? Well, I will let others do the judging! Just as the moderators here rated my init. post here a +4 & your Mr. Phd Student, a -1... lol!

    (That programs toolset is one example, along with many others as well in publications over a decade now in this field... for example, like "Windows IT Pro" magazine issue April 1997, entitled "Back Office Performance" pg. 61 for the products SuperCache & SuperDisk (on paid contract for them, even later, I improved the primary program up to 40% in efficiency & speed) rated EXCELLENTLY, no less, back as far as 1997!)

    Now, in addition to that? Their own technical editor, a Mr. John Enck, was featured on that companies' website for a decade beside myself... but was it HIS theories that took them to Ms' Tech-Ed 2000 & 2001 finalist placement in said hardest category? NO... mine did, right here, as to how to use one of their tools to MAXIMUM ADVANTAGE, & in the very field I make a living in (Databasing/dataprocessing, the bread & butter end of this field where there is always work):

    http://www.functional-it.com/ramdisk.htm#t6

    (Once more, for you: Talk's cheap... Have you done the same? NO!)

    Want more? I can provide it, because that is just a SMALL SAMPLING. That ramdisk article took that same company involved thru research I did for them to 2000 & 2001 Microsoft "Tech-Ed"'s finalist placement in the hardest category - SQLServer Performance Enhancement, 2 years in a row... you have yet to, if ever, do such things. Personally? Judging by your demeanor here? You NEVER will... mark my

  397. Hello again! by StarKruzr · · Score: 1

    That must have wasted an enormous amount of your time, opening up with both barrels of insanity on me like that.

    Hey, here's a good one.

    "APK: "Thanks for the ammunition I suppose, this will help my attorney alot, Ken "Caesar" Fisher"

    The New York Bar lists three attorneys named Ken Fisher. Which one is yours so I can call him and ask him if he really represents you. You ARE aware that it's illegal to file false charges, aren't you?"

    HAHAHAHAHA

    Nice job at barratry there, pal!

    Man, reading through the rest of this WindowsITPro article it sure looks like you spammed the hell out of their comments system. Pages upon pages of fake 3rd-party posts by people who don't exist that you made up to support you. Did you ever actually register as a user there? I can't find anything posted by "APK," just page after page of anonymous posts. Is this because you were worried about getting banned?

    You can't make this stuff up, folks.

    I LOVE that you finally invaded Slashdot. I can't wait for the REAL trolls (I am but a padawan, as you say) to get to you.

    GNAA 4EVA

    --

    +++ATH0
  398. Re:Hello again! FACE THE MUSIC, answer a question by Anonymous Coward · · Score: 0

    http://slashdot.org/comments.pl?sid=161862&thresho ld=-1&commentsort=0&tid=146&mode=thread&pid=135492 82

    Just answer the questions there "BOY"... what's the matter, can't 'face the music'?

    You started this show, I will let you finish it... and, yourself along with it.

    LOL, you're just a MERE STUDENT (allegedly, from his own mouth, supposedly etc./et all), however, one who thinks he is "John Carmack's second-coming in this field" no less from how he talks...

    So, answer my question above in that URL, that's all... I am a "show me person", so... show me!

    Why are you avoiding that question & others I asked you?

    My reply, after all, merely asks a SIMPLE question... one a BOY like you can manage to answer I imagine, with proofs backing it up, correct??

    (It's not some unsolveable equation, after all).

    After all, you ARE 'the intelligent one' as you said, right?

    WELL, what's that 'intelligence' of yours done for you in this field we ALL can see that rated well & is useful etc. as I gave you a SMALL SAMPLE of what I could in that URL above... simply for comparison. After all/again:

    You ARE 'the arstechnica intelligent one', right?

    (The diff. between being a MERE STUDENT, & being a pro in this field, it was right there, for your OWN good & was shown you there in that URL above)

    That was the POINT!

    (& you just don't get it apparently, & are not as "intelligent" as you think I suppose)...

    HOWEVER, since you are such a profanity artist, & b.s. artist to boot?

    Well, let's see you answer my questions that just asking for samples of what you've done in this field of note vs. the tiny sampling I have...

    (Again, so we can compare!)

    After all, a "STUDENT BOY" of your "arstechnica intelligence" must have done SOMETHING of note we can all see & verify, or use, right??

    * :)

    LOL! (not...), and now, in the 'usual arstechnica style' he has resorted to calling me 'insane' etc. & what-not...

    Yes, yes - he must ALSO be a PhD (or a student & therefore "master of") psychiatry &/or psychology as well, eh? LOL...

    APK

    P.S.=> Instead of attacking us seasoned pros, as you have me here starting up with me?

    Perhaps you can learn something from us... instead of being an 'arstechnica blowhard' who likes to start things with others as you have myself here attacking me in your initial posting to mine, where the mods rated me +4 & you, a -1?

    Gee, wonder WHY that is... lol!

    apk

  399. MERE STUDENT BOY STUDENT MERE BOY by StarKruzr · · Score: 1

    Why is this all so important to you?

    And ask yourself the following question: Why do you think you are the only "pro" I feel the need to "attack?"

    Also, what is this "profanity artist" crap?

    I note the "usual Ars Technica style" seems to include OSY and WITPro as well. Gee. I wonder why that is.

    You are a very, very sad little midlife crisis, aren't you?

    --

    +++ATH0
    1. Re:MERE STUDENT BOY STUDENT MERE BOY by Anonymous Coward · · Score: 0

      My God. (Score:-1, Flamebait) by StarKruzr (74642) on Sunday September 11, @12:42PM (#13532123)

      You STILL haven't stopped "signing" every paragraph of whatever you post with your initials.

      Are you going to start pimping your APKTools2010+++ v.2.9.9.9.9.666 now?

      No one listen to this guy. He spent several months on Ars Technica trying to convince everyone he was some kind of super programmer, but it fell apart pretty fast when it became clear that he actually didn't know his ass from his elbow.

      ---

      Didn't you write that and the mods nailed you for it, with a -1 score (vs. my own parent thread of yours rated @ 4 (interesting/informative, etc.))

      ?

      Funny you should ask the question YOU did then, eh??

      APK

      P.S.=> Answer the question(s) I asked you here, especially the first one, since you are avoiding it thru 5-6 postings now already:

      http://slashdot.org/comments.pl?sid=161862&thresho ld=-1&commentsort=0&tid=146&mode=thread&pid=135492 82

      So you can embarass yourself "Mr. Intellectual" (you are mere student is all, with no visible/provable accomplishments to your name, but you state what you did about ME initially?).

      Ok, back up your b.s. then, & answer the question I ask you @ the start of that URL above.

      That's all!

      After all:

      YOU, started this show, I will let you finish it and yourself in the process...

      With your OWN words.

      You arstechnicans: You THINK you're so 'smart', but you're SO easy to maneuver into corners, it is amazing...

      Funniest part is? You only do it to yourselves, everytime & do yourselves in. It's not even a challenge to me anymore, but more of an amusement.

      SO... By all means, keep coming - like "the terminator"?

      I'll wade right thru you and rip your hearts out, 1 by 1 as I have each time you have tried this...

      It is funny @ this point to me. Not even effort, you only do yourselves in.

      Now, you're where I want you, quit avoiding the questions big talker.

      You said you're intelligent? NOW, that's funny...

      Intelligence is being able to solve your way out of things, you are NOT showing that here.

      AND, You started things up, as I illustrate above... but apparently cannot finish them & face the music when faced with a simple question, & facts about myself vs. your lack of them regarding this field, since you stated what you did about me above (it's ALL in that URL, just facts)... show me you've done better vs. the SMALL sampling about myself I gave you (all facts anyone can see in url linkages) & VERY verifiable.

      Unlike your statements about YOURSELF.

      "Also, what is this "profanity artist" crap?" - by StarKruzr (74642) on Wednesday September 14, @09:15PM

      Hmmm, didn't you use the word 'crap' in the parent post to this one?

      I've looked thru a great deal of your postings, and you tend to use loads of profanity like the "F" word & such, in addition to calling me names.

      Now, screw your questions BOY: Enough patented arstechnica evasions & answer mine in that URL above.

      AND, since I am such an "imbecile" (another insult directed my way anybody can verify here) as you called me thru the postings in addition to what you just stated?

      LOL, who do you think you are fooling??

      I showed a small sampling of what I can prove that I have done in this field that did well...

      Well, since I am this 'imbecile' as you called me? Now, surely I can be outdone by an 'intelligent arstechnica genius' like yourself, right??

      Show us then, what have YOU done in this field that proves it... that's all. :)

      Everyone ready to wait until the "12th of never" for Mr. Bigshot 'intelligent arstechnican' to backup his b.s. directed my way vs. the facts about myself I provided for him in said URL above?

      apk

  400. This is Slashdot, retard. by StarKruzr · · Score: 1

    No one cares about whether or not someone says "crap" or even "fuck." Language is a tool, like a Swiss Army knife, and sometimes it is amusing or an expedient to use the toothed sawblade of vulgarity to express yourself.

    You, on the other hand, are TERRIBLE at expressing yourself. You repeat yourself ad infinitum and believe it amplifies your "points." You can't organize thoughts. You don't know the meaning of the word "paragraph." You claim "victory" in "wars" in which you are the only combatant and everyone else sits by and watches you flail and slash at the air.

    As for your all-important question, "What have you ever written that others can use in the way of programs featured @ websites online that have done well over time?"

    Answer: Nothing! Yay! You apparently believe that is a testament to your superiority as a computer scientist and human being. I do not. I feel there are other metrics of a person's worth and intelligence, such as how well they can compose their thoughts into words.

    I would *love* to see a publication written by Alexander Peter Kowalsky. Please, Alex. PLEASE write a paper and submit it to a conference. You need the drain on your ego desperately.

    Here is an example of a software system produced by the academics you love to deride. If you ever produce something of even slightly comparable quality or utility, get back to me and I'll be properly chastened.

    (Hint: Comments on ZDNet do not a high-quality piece of software make)

    --

    +++ATH0
  401. READ THIS and call me "retard" ok? ALL TAKE A READ by Anonymous Coward · · Score: 0

    "(Hint: Comments on ZDNet do not a high-quality piece of software make)" - by StarKruzr (74642) on Thursday September 15, @12:01AM

    No, maybe not, since YOU (with no visible accomplishments to your credit we can see/verify in this field no less) say so... just like you speak for ALL OF SLASHDOT below which I note in my p.s., but, we can get back to THAT point, later.

    HOWEVER, above all?

    The 5 of 5 star rating my wares got @ ZDNet &/or CNET circa 2000-2002? That's FAR more than you have that you can show us that YOU have done w/in this field, now isn't it?

    YES, or NO??

    BUT, I guess that's NOT enough for you... and, as usual, you'll 'evade' that like a coward. You've proved that to us here already.

    OK, then fine! We know you're a coward, big talker/blowhard (& probably also a COMPLETE liar about being a doctoral student as well no doubt).

    So... since you say that's "not good enough"? WELL, read on McDuff:

    Let's "rehash" some of what I wrote you earlier, which you evade to NO end like a coward (since I asked what you had done better since you called me an imbecile, and started this all out saying I didnt know my ass from my elbow, almost verbatim on that at this URL next):

    http://slashdot.org/comments.pl?sid=161862&cid=135 32123

    So, now here in this reply? WELL, You asked for data from publication I have been involved in?

    Sure, no problem!

    Here tis, for a company called EEC Systems/SuperSpeed.com, no less, whom folks @ these forums will NO DOUBT be aware of:

    "Windows IT Pro" magazine issue April 1997, entitled "Back Office Performance" pg. 61 for the products SuperCache & SuperDisk (on paid contract for them, even later, I improved the primary program up to 40% in efficiency & speed) rated EXCELLENTLY, no less, back as far as 1997!

    Now, in addition to that?

    Their own technical editor, a Mr. John Enck, was featured on that companies' website for a decade beside myself...

    But, was it HIS theories that took them to Ms' Tech-Ed 2000 & 2001 finalist placement in said hardest category? NO...

    However, mine did!

    Right here, as to how to use one of their tools to MAXIMUM ADVANTAGE, & in the very field I make a living in (Databasing/dataprocessing, the bread & butter end of this field where there is always work):

    http://www.functional-it.com/ramdisk.htm#t6 [functional-it.com]

    (Once more, for you: Talk's cheap... Have you done the same? NO!)

    Want more? I can provide it!

    (Because that is just a SMALL SAMPLING).

    Fact is, that ramdisk article took that same company involved thru research I did for them to 2000 & 2001 Microsoft "Tech-Ed"'s finalist placement in the hardest category - SQLServer Performance Enhancement, 2 years in a row...

    You STUDENT BOY? You have yet to, if ever, do such things!

    QUESTION FOR YOU TO ANSWER:

    So... what have YOU done, professionally, academia boy, that's better than that?

    NOTHING/NADA/ZIP!

    Now, how about a site that BORLAND themselves host in Torry's Delphi pages then, since ZDNet/CNET are not enough?

    Where, rated by my peers in Delphi coders, my wares their TOPMOST (ratings done by programmers, not end users?) right here:

    http://www.torry.net/pages.php?id=583 [torry.net]

    You ever done a set of tools as large & comprehensive as my own that have done as well as they have over time @ various websites & such rating well (mainly amongst my peers @ a site that BORLAND THEMSELVES ALSO HOST, who program Borland Delphi there, receiving their TOPMOST rating, from programmers in this field who are pros no less, & not just 'student wanna bes' like yourself there)

    ?

    (2nd product down, rated "HOT" their topmost rating & the ONE THING I am proudes

  402. Slashdot ate your subject line. by StarKruzr · · Score: 1

    None of that was peer-reviewed conference or journal writing, it was random unrefereed text posted on a web site. I could do that quite easily if my time wasn't usually taken up in research (tonight I can spare a few minutes to laugh at you).

    Research is not glamorous; this much is true. Most of the time, anyway. It's the results that you get from it that are what's really worthwhile.

    This has gotten boring. You're repeating yourself again. I note you still didn't actually rebut anything I said about RT systems, btw.

    You don't "eat full Ph.D.s for lunch." Your employers tolerate you because you're an experienced programmer for the work you're doing. The people you "destroy" either get angry at your foolishness or sit there and roll their eyes at you, perhaps pausing to check their watches to see how long you can rant.

    "You're nothing in this field, & never will be, paduan learner. You talk the "jedi talk" but show us, walk the "Sith Lord WALK", ok?" ...

    APK, really.

    Who writes your dialogue?

    --

    +++ATH0
  403. Re:Slashdot ate your subject line. I eat Phd's... by Anonymous Coward · · Score: 0

    3 enumerated points, vs. your own:

    (With verifiable examples (one even from professional on the job experience, what the hell, so you know what I am talking about with names & companies you can call & ask about exactly what I cite in fact vs. PhD's & such)):

    As far as this statement by you:

    "None of that was peer-reviewed" - by StarKruzr (74642) on Thursday September 15, @01:36AM

    1.) Oh, really? The Windows IT Pro Magazine article about SuperDisk &/or SuperCache (which I improved by 40% on the latter on paid contract to do so once prototype work was done & 110%, & helped them realize how to use the former TO MAXIMUM ADVANTAGE in dataprocessing, for EEC Systems/SuperSpeed.com, to make it to Microsoft Tech-Ed 2000 & 2001 iirc, as a finalist in the HARDEST CATEGORY THERE, 2 years in a row?)??

    I'd call that "peer review" my boy, professionally & in publication, ESPECIALLY THAT PUBLICATION, which is (in case you haven't known this, a widely known one in this very field)...

    Great review there for wares I worked on & improved up to 40% in one, & using the other to take that company thru ideas I wrote up for them to a finalist position two years in a row in SQLServer Performance Enhancement (the hardest category @ Microsoft's OWN "Tech-Ed").

    Both @ a programming level, for quality, & also @ an IT/IS/MIS level on how to use their programs to increase the speed & efficiency of SQL Server & other backend industrial strength grade DB engines.

    Now, in addition to that? Their own technical editor, a Mr. John Enck, was featured on that companies' website for a decade beside myself... but was it HIS theories that took them to Ms' Tech-Ed 2000 & 2001 finalist placement in said hardest category? NO... mine did, right here, as to how to use one of their tools to MAXIMUM ADVANTAGE, & in the very field I make a living in (Databasing/dataprocessing, the bread & butter end of this field where there is always work):

    http://www.functional-it.com/ramdisk.htm#t6

    (Once more, for you: Talk's cheap... Have you done the same? NO!)

    Kid, not only am I a programmer/software engineer/analyst (whatever title you wish to assign, I have held them all) but also Tech/Team Lead, Project Lead (currently), & have been a Network Tech/Administrator over the years as well. In this field, you wear many hats. Especially professionally from 1994-2005 in my case (doing ALL of those, coding's been since 1996 as a pro).

    ----

    2.) The review of my apps @ Torry's Delphi pages, a site which is also hosted @ BORLAND no less & has been REPEATEDLY CITED by publications (such as Delphi Informant) as a TOP Delphi coders page?

    Who do you think does the ratings there??

    http://www.torry.net/pages.php?id=583

    (2nd product down, the one you put down, seemed to have gotten their TOP RATING of "HOT" years ago, in far older versions than the current model I supplied you a link to no less)

    Programmers who host the site... they are pros, write & ask them, yourself. In fact, ask for Maxim Peresada, ok?

    Please, do so.

    ----

    (So much for those comments by you to me - you with NO professional experience no less, especially after your initial post to me insulting me here no less which I cite below in my P.S., now, here is the one YOU want to see most no doubt, ok? Get ready, put on your mental seatbelts, you'll NEED them).

    ----

    "You don't "eat full Ph.D.s for lunch." Your employers tolerate you because you're an experienced programmer for the work you're doing. The people you "destroy" either get angry at your foolishness or sit there and roll their eyes at you, perhaps pausing to check their watches to see how long you can rant." - by StarKruzr (74642) on Thursday September 15, @01:36AM

    3.) Ahem - First of all, either you SKIM badly, OR perhaps not your f

  404. You ascribe actions to people by StarKruzr · · Score: 1

    that they haven't taken.

    Who's running? Not me. I couldn't care less where you work or what IT applications you've worked on, to be quite honest. I have a hard time believing you've done what you've said you've done, if only because you've been known to lie in the past (and the posing-as-other-people thing REALLY detracts from your credibility).

    If you actually have done what you said you have, bravo, honestly - but your behavior takes away any possible respect I would have for you about it.

    That's the truly sad part - maybe you could be a productive member of an online community only on the merits of your experience and knowledge, but your narcissistic personality disorder prevents you from being taken seriously or communicating your ideas in a useful way.

    Get help, APK, before you die lonely and twitching at a keyboard, firing off one last flame++2035 v6.9 SR71.

    --

    +++ATH0
  405. Re:You ascribe actions to people: YOU LIE by Anonymous Coward · · Score: 0

    "Get help, APK" - by StarKruzr on Thursday September 15, @03:49AM

    Don't need it against you, all I need are facts, like the question of mine you avoided for @ least 10 posts now. You attacking me first here & your name calling of me? Proves that point cleanly!

    "Who's running? Not me" - by StarKruzr on Thursday September 15, @03:49AM

    OK - Then, answer my questions here, or do you need to continue lying as you have been:

    http://slashdot.org/comments.pl?sid=161862&thresho ld=-1&commentsort=0&tid=146&mode=thread&pid=135492 82

    (The main one's RIGHT @ the top of that page!)

    Just answer it & HERE publicly, that's all I ask... you have evaded it thru @ least 10 posts by now. Do you realize how POORLY that alone makes you look?

    (After what you said to me & about me here which I note in my p.s. below? I would, just to admit I was wrong were I you)...

    Then again, if you do answer it? YOU LOSE FACE HERE, badly. Which is WHY you have avoided answering that question like the plague it seems!

    LOL!

    (Kind of a pickle you put yourself in, eh? Like I said earlier - you arstechnicans? So easy to maneuver into a corner you can't escape by using your OWN words no less, everytime! Just like @ the Windows IT Pro mag forums I cite below as well!)

    "you've been known to lie in the past" - by StarKruzr on Thursday September 15, @03:49AM

    Where, show us all, where? Prove it please. I show you evade questions I have been asking you for @ least 10 posts now.

    Such as the Windows IT Pro points/examples from there about arstechnicans you mentioned no less as well which you now avoid like the plague also.

    (There, though? Their forums mods AND Dr. Russinovich, the PhD lol, first edited out my posts wholesale since PhD Mark Russinovich couldn't disprove my points which toss his article into the wastebin, along with its namecalling of other software authors like myself).

    Now, where they once edited out my points ENTIRELY (which I exposed them for here, which shamed them & they stopped doing it... an 'ancient jedi mindtrick' but an EFFECTIVE one nevertheless, lol, well? NOW, they disabled my account there so I cannot blow away the last point of theirs I wanted to on LOBS/BLOBS).

    That however, is NO biggie - Tomorrow, I can just post from the job to put the final nail into their coffins factually. There's NO stopping that, as I have not posted from there yet to that page I cite below yet from work.

    (That's JUST to get my last point in on LOBS/BLOBS, & blow them away for this latest antic of theirs of disabling my account now, & get the better of them yet again, on technical issues there).

    Anyhow, on THAT note & that site? WELL now, if anyone lies and loads of them? I can PROVE it's your arstechnica crew, easily. Including yourself with your last statement in the title of your post no less... bad move!

    E.G. -> The Windows IT Pro URL where I ran your pals off, Jay Little & Jeremy Reimer whom you mentioned earlier??

    If ANYONE was caught lying, it was arstechnica people like yourself... The VERY arstechnicans you yourself mentioned in Jay Little specifically in fact & Jeremy Reimer:

    http://www.windowsitpro.com/articles/index.cfm?art icleid=41095&cpage=124

    (If you have to deal with their cookies & ads? Just see the last page, 124 specifically, & the 2nd post on it for the facts)

    Jay Little's (another arstechnican like you who made the mistake of attacking me, email harassing me non-stop with Jeremy Reimer, also busted for that too, & libelling myself & violating his TOS with his hosting provider) own lies ran him right out of Windows IT Pro forums in fa

  406. Gadzooks! by Engineer-Poet · · Score: 1
    You, sir, urgently require the services of S.M.U.S.H.

    Get thee to a grammarian, go!

  407. I think by StarKruzr · · Score: 1

    we should make a distinction between "getting run off like a bad dog" (as you said of Mr. Reimer) and "getting bored with navigating through 3 feet of APK insanity."

    Also, I answered your question in the negative, and stated that it was more or less irrelevant, a couple posts back. I leave it as an exercise to you to find it.

    --

    +++ATH0
    1. Re:I think by Anonymous Coward · · Score: 0

      For anyone's reference to points I am about to make, 3 feet of facts not insanity as StarKruzr stated:

      http://www.windowsitpro.com/articles/index.cfm?art icleid=41095&cpage=124

      (If you need to wade thru their ads & cookies, again, just see the last page (124 @ this point before those 2 attempt to bury it) & the 2nd posting down - it's quite amusing regarding Jeremy Reimer and Jay Little, and they only brought it on themselves pursuing me there as they are wont to do, and many arstechnicans 5 years later STILL do, as StarKruzr himself here has)

      StarKruzr probably is Jeremy Reimer really, I would wager/guess. In fact, I would take a guess, & say that like Reimer, his ISP/BSP is Shaw.ca...

      (Moderators - up to you to check on that, but somehow, I wager I am right on that note)

      Here we go:

      "we should make a distinction between "getting run off like a bad dog" (as you said of Mr. Reimer) and "getting bored with navigating through 3 feet of APK insanity." - by StarKruzr (74642) on Thursday September 15, @12:33PM

      I don't think so, not @ all... in fact, I very well KNOW not:

      Jeremy Reimer got run off for attacking me and his reactions were that of a child!

      He is 33 years of age, and supposedly is a 'technical authority' & author of arstechnica articles: Albeit, one with no degree, nor certifications even, nor (above all) practical professional experience w/in it either... yet, he touts himself as a "technical author" @ arstechnica.

      I don't know about you, but THAT? Reminds me of pseudo-doctors of medicine known as quacks.

      His 'articles' hosted @ a site he ingratiated himself into (arstechnica) but ONLY there afaik? Some accomplishment, lol...?? Are mere historical rehashings of already known information, a high school CHILD could put together.

      Nothing anybody used to gain performance, or more, as articles I authored did for KNOWN corporate entities in this very field no less.

      (Articles? The easy part - writing up code, large bodies of it?? MUCH harder imo, a professional one no less).

      And, Jeremy Reimer, For such a 'tech authority'?

      He never ONCE posted on-topic there @ Windows IT Pro either iirc/afaik... in fact, I welcome anyone to verify that.

      Instead, Jeremy Reimer had to summon Jay Little to help him in THAT capacity.

      What was the result? LOL, Jay Little failed, badly, as that URL there catches in quotes he made directed my way, many of them using EXTREME profanity & worse.

      (That's not joking around - he is quite the "exciteable boy", & should not be if you note some of this profane quotes directed my way from he that I quoted, lol: That, & the fact Jay Little weighs what appears to be 350lbs or more of PURE LARD? Well being 'upset/hyper' for a fatboy like that is definitely NOT good for him... the man's a walking heart-attack & a hideous corpulent monstrosity & parody of a man... to let one's self go to THAT extent? A sin imo!)

      BUT, both Jay Little and Jeremy Reimer were stopped in email harassing myself once both were repeatedly asked to stop doing it (and neither would not listen & Jeremy Reimer even denied that his ISP contacted him, I quoted otherwise)...

      Jay Little had a BIT worse happen (being kicked from his webpage hosting provider, which must have HURT him as I know he works on Navision products & does .ASP etc. and CrystalTech.com is one of the FEW that do ASP iirc... this may have burned him worse than I thought, but again: He brought it on himself)

      Jay Little, above all, just got used like a STOOGE imo by Jeremy Reimer. I hope he realizes it.

      After all, Jay Little came there @ the behest of Jeremy Reimer and acted MUCH worse than Jeremy Reimer did in many ways, imo... then again, I do not think he is too smart either, just judging by his career & results there at the URL above which a

  408. You don't know much about Slashdot, do you? by StarKruzr · · Score: 1

    Moderators cannot see any personal information about anyone on this system. That is not the way the moderation system works. Mods are chosen at random from the set of users with positive karma (like myself, as opposed to you with no karma) and rate posts according to how they feel about their usefulness.

    Also, I'm not Jeremy Reimer, but you can keep thinking that about me if you like.

    Is it possible to get a SHORT post out of you that doesn't involve you cutting and pasting what you said over and over again?

    Anyway, I gotta run to go talk to my advisor; I think I have a good lead on an EDF scheduler to use for this project.

    Sham on, APK. Sham on.

    --

    +++ATH0
    1. Re:You don't know much about Slashdot, do you? by Anonymous Coward · · Score: 0

      Ok... here we go some more, to your detriment again. You are a 'glutton for self-punishment' aren't you? Apparently so.

      "You don't know much about Slashdot, do you?" - by StarKruzr (74642) on Thursday September 15, @03:06PM

      Well, to answer your post title question: I know what I need to - that I come here to share & get knowledge, not useless "karma points". There are some VERY SHARP & accomplished people here, I know this from your developer forums section... e.g.-> One of my "technical heros" in Mr. John Carmack comes here, and from the likes of he? I can gain WORLDS.

      That's all I feel I need to know.

      Onto the rest of your 'points':

      "Mods are chosen at random from the set of users with positive karma (like myself, as opposed to you with no karma) and rate posts according to how they feel about their usefulness." - by StarKruzr (74642) on Thursday September 15, @03:06PM

      The ONLY reason I have no rather useless imo 'karma points'?

      Is that I do not login here... still, I can post, read, & contribute.

      Was I not modded up +4 here vs. your -1, Mr. PhD student (allegedly a doctoral student, but no proof thereof on your end, & anyone can talk... lol, like I stated earlier - I could say I am Bill Gates, right?)...

      Anyhow: To me? I have been a forums mod on a forums that made a UK magazine as one of the 'best of the best' etc. circa 2001 iirc, & a technical forums/channel admin-mod years before it on IRC thru the mid to late 90's on a technical help channel for Windows (one endorsed by K. Marden Bey the creator of MIRC no less) on Dalnet... been there, done it.

      Don't want it anymore, I know better!

      (Why? Well, I don't want it (moderation/administration) because to be BLUNT about it? It is truly a thankless job that does NOT pay and you have to deal with the worst of the worst imo - sycophants, yes-men, & butt kissers!)

      PLUS, I do not work for free, usually.

      LOL, so... as you see, from my 'point-of-view'?

      Those "karma points" are worth zero to myself & worthless! I know better, but... I suppose it is a matter of PERSONAL values, &/or a point-of-view.

      Karma Points? LOL, useless imo, a professional one in this field.

      They are NOT 'technical merit' points @ all...

      True, or untrue?

      Well, let's use my favorite tool, facts:

      (And, a page from iirc, largely a gent named cmdrtaco about "Why login" etc.)

      http://slashdot.org/faq/accounts.shtml#ac050

      Do you HONESTLY think that type of thing interests me? Newsflash - not whatsoever.

      I am here to hopefully learn, and to help others out as (since you used the term) because imo, REAL TRUE KARMA?

      Well, it is all about that & what goes around? COMES AROUND.

      You get what you put into things in this life, in equal OR greater measures sometimes, both good & bad (the latter YOU are finding out for attacking me here, first, arstechnican).

      You'll forge your own opinions & decisions, I do not knock you on that for how you use forums. That's up to you. Me? I use them to give & share knowledge/experience.

      It pays off. Or, haven't the facts (small sample) I gave you about my career in computers noted that for you, vs. your lack thereof in terms of noted well & verifiable accomplishment which you TOTALLY lack in the field of computer science?

      Now, I read what "Karma Points" were about from the documentation here pretty much & a brief skim of it!

      That is my opinion as a pro in this field (whereas you had to admit you are not & just a noob/novice/student (allegedly) in this field)...

      "Karma Points" are simply an inducement to "join here" and post as a logged on user only.

      Do you think that interests me? AGAIN - No... in fact, it repels me, because of the antics & pursuit of you arstechnicans. You can waste your time anyway you like, I would advise against it, as you see YOUR resu

  409. What is the difference... by StarKruzr · · Score: 1

    ... between useless karma points and useless ratings on ZDNet?

    The reason I mentioned Jeremy and Jay is because a simple Google search on your name turns up tens of hits regarding people who despise you and wish there was a court order requiring you to never be connected to the internet again.

    Hey, what kind of English is this? "You just need to grow up, & learn 1 thing: "Brick not hit back" but, apk do!"

    Speaking of English, you're sure one to talk about profanity, aren't you? Nice bit of anti-Semitism on you, too. Don't you just hate it when your past catches up with you?

    (Oh, and please don't try to tell me how terrible my past is - I have Excellent karma, thanks very much)

    I also find the fact that you consider the word "student" to be a pejorative to be a sad commentary on the history of your life.

    Didn't do so well in school, did you? Barely squeaked out passing grades? Became embittered at the fact that your professors didn't think you were anywhere near as brilliant as you thought you were? A sad, but all-too-common story. You're not special, Alex. There's lots of people out there like you (academically, at least - your particular combination of poor academic performance and narcissistic personality disorder is quite unique, I'd say).

    You make mention many times of how I'm "paying the price" or "being destroyed" or "reaping what I sow" or etc. etc. yadda yadda ad infinitum et nauseum.

    Er... what exactly is HAPPENING to me here? Are you sawing off my legs and somehow I'm not noticing? I have to tell you I really don't feel any different (other than extremely amused).

    And finally, something about you that truly, truly bothers me is that you actually think people have "betters." Must tie in with your anti-Semitism problem. Again, I implore you - seek help.

    --

    +++ATH0
    1. Re:What is the difference... by Anonymous Coward · · Score: 0

      "... between useless karma points and useless ratings on ZDNet?" - by StarKruzr (74642) on Friday September 16, @05:48AM

      ZDNet, CNET, Torry's Delphi pages are all very well known sites.

      http://www.torry.net/pages.php?id=583

      (2nd product down, the one you put down, seemed to have gotten their TOP RATING of "HOT" years ago, in far older versions than the current model I supplied you a link to no less)

      Especially Torry's Delphi pages!

      Where there, & amongst my peers - Delphi Programmers (novice & professional alike), since it is hosted by BORLAND itself, and its ratings are given by it's hosts who are in fact, professional coders in that language, I did VERY well... as good as you can in fact.

      Also the fact that website for Delphi coders was cited year in/year out by "Delphi Informant Magazine" as one of the top 2 sites there was for that programming language, often sharing the topspot with Delphi SuperPage

      So, ok: My wares @ them, @ EACH OF THEM, always got the topmost ratings possible.

      The QUESTION I ASKED YOU, AGAIN, ANSWER IT:

      What have you done that myself or others can see, read, or use online that was rated well by others or a jury of our peers in this field (computer scientists of varying types, professionals etc.)?

      (You don't have 1 single thing to your credit. I gave you 3 decent ones I had, but they only needles in my haystack of them. They were enough it appeared.)

      However, myself by comparison, & the sites I mentioned where I did well?

      (Like Torry's Delphi pages especially rating my work you tried to put down their TOPMOST rating which I am especially proud of)

      Also, the pages of Windows IT Pro magazine April 1997 "Back Office Performance" issue page 61 (for professional development work for a company on paid contract improving their well rated ware SuperCache by up to 40% in fact) was also what led to the 3rd merit I pointed out:

      http://www.functional-it.com/ramdisk.htm#t6

      That very research for them, took EEC Systems/SuperSpeed.com to a finalist placement 2 years in a row @ Microsoft Tech-Ed 2000 & 2001 iirc...

      Have you done such things?

      NO.... You could NOT show me 1 even.

      Those sites and magazines, like this site, are for technical achievement &/or technical news in THIS field, computer science (whereas this site covers MORE than that, but often has computer related news)...

      Above all:

      "Karma Points" aren't about technical achievement at all, I read about them. All you have to do pretty much is just show up & post here.

      So, how when you started this with me, I was modded up +4 for "Interesting/Informative", whereas you, in your outright attack on me for NO REASON, were modded down -1... being modded up for THAT is worth (imo @ least & I am sure most others) a hell of a lot more than "karma points"... lol! No doubt of that.

      See, your precious "Karma Points" aren't about technical merit, & this site's about technical achievements in various fields imo/iirc.

      "Hey, what kind of English is this? "You just need to grow up, & learn 1 thing: "Brick not hit back" but, apk do!" - by StarKruzr (74642) on Friday September 16, @05:48AM

      It's a quote from both a Bruce Lee Film, & from a Jean Claude VanDamme film... you must not be into martial arts onscreen since you are unaware of that.

      (Resorting to the last stand of the 'defeated' eh? OR trying to, but not realizing I had the quotation RIGHT no less, in spell/grammar checking??)

      Yup, between THAT & your profanity directed my way numerous times in this exchange/discussion where you attacked me first no less & were modded down -1 for it?

      Speaks for itself. Calling me retard, imbecile, & more... well, if I am those things, and yet can prove and show I have achieved FAR MORE in this field than you have?

      What does that mak

    2. Re:What is the difference... by Anonymous Coward · · Score: 0

      starkruzr he has a point. you did attack him first and for no reason I could tell other than being a dick on your part. I have to admit that being modded postively as he was to 4 and you getting what you deserved at -1 is all anyone needs to see. Arstechnica people who have bothered apk and yes I have seen it many times online just get what they have coming everytime which is getting their asses handed to them and resorting to spelling checks which is funny because apk just asks to prove you have your doctorate in english which I have yet to see any of you prove you have or arstechnica people then resorting to calling apk insane which is funny because he asks to see your degree in psychiatry each time when you try that and you cant produce evidence of it which he easily counters with undisputable facts about this field which anyone reading this here sees he has you in particular far outclassed and you are light years behind him in experience. Better luck next time starkruzr or maybe you will get smart and leave this man alone finally.

  410. Are you still here? by StarKruzr · · Score: 1

    Posting without punctuation and carriage returns is a neat trick, but your writing style and verbiage still shows through.

    I just don't care enough to keep posting this crap, sorry. I was busy having sex with a beautiful woman all weekend.

    --

    +++ATH0
    1. Re:Are you still here? by Anonymous Coward · · Score: 0

      Take your medication nutjob.

  411. I win! by StarKruzr · · Score: 1

    You're getting even more bored with spewing your psychotic babble than I am responding to it!

    Game, set, match.

    --

    +++ATH0
  412. Re:I win! Sure you do, with a -2 rating? by Anonymous Coward · · Score: 0

    I was just written about THIS b.s on your part yet again directed MY WAY from you by a friend of mine who comes here & in fact, intro'd me to this site...

    Ah, man, only to have myself pursued & attacked first everytime by you & yours from Arstechnica/OSY, etc. (only as per usual, to your own detriment).

    Well, is about ALL I have to say in reply:

    http://slashdot.org/comments.pl?sid=161862&cid=135 32123

    Are your own words, that entire exchange where you only got what you deserved.

    (& I will let others do the judging, as they have... note my rating of my post, & yours where you attacked me outright for NO reason?)

    Yes, sure: You're "winning" alright!

    You're now down to -2 moderation (down another -1 you fool) rating, for your starting a fight here with myself there. Your "karma points" (useless b.s. imo), have you up to ONLY, lol, a -1 total score.

    What did my parent post to yours get rated again? Please, refresh my mind & that of others here?? Thank you.

    Some "win" on YOUR end.

    Your own rather unbelievable arrogance & blatant disregard for others only did you in. Fact is, judging by your demeanor & attitude?

    I am certain that in YOUR life, this isn't the first time, & won't be the last that things like this happen to you STUDENT BOY.

    Once more - Learn a lesson, or just get burned by YOURSELF, continually into the future of your life.

    (A "win" on YOUR end? Hehehe, Man... You must be delusional, blinding yourself in your arrogance (for what though? Being a mere STUDENT/ROOKIE in this field?), or otherwise mentally challenged/troubled)

    Hey, keep it up, believe-you-me:

    I don't care - keep it up, you arstechnica/OSY forums people?

    LOL, everytime, you only do yourselves in miserably each time, everywhere you do so.

    It's only your rep after all.

    BUT, from your standpoint in this field? One that doesn't exist??

    LOL, YOUR non-existent one in this field, after all.

    I asked you to show me "who you are online" & you couldn't put on 1 SINGLE NOTED WELL ACCOMPLISHMENT... not a single 1.

    I put out 3, could have done MANY more, including making a "Freeware of the Year" candidate back in Windows Magazine in 1996-1997, but that was overkill vs. yourself. You're just a rookie/noob/student still w/in the confines of THIS field (comp. sci.).

    Yet again StarKruzr - Time to send you to school, again & FOR YOUR OWN GOOD:

    LOL, & this last reply of yours about/to me?

    Mr. ALLEGED "PhD STUDENT", for your OWN good/seriously, above all - Learn a lesson:

    * Respect your elders & BETTERS in this field, & this life... or, you'll just keep getting 'disciplined' as you were in the url above.

    Anyone can read this entire exchange in the URL above I posted, in which it appears yet another moderator has, & he/they just burned you even MORE for your initial reply to myself (picking a fight doing it, & being soundly beaten by facts you couldn't dispute)!

    Your being modded down yet another -1 on your TOTAL SCORE, lol, which in a way, I am sorry to see, but you need this...

    No doubt in my mind, or apparently those of the mods here as well... after all: They DO do the judging here, not myself.

    Here endeth the lesson...

    APK

    P.S.=> YOU, bottom-line, started ALL of this! Right here, in THIS post of yours to me:

    "It was more about me GREATLY enjoying trolling the hell out of you because you're an imbecile who enjoys belittling others." - by StarKruzr (74642) on Tuesday September 13, @02:15PM

    I never "belittle" anyone, or attack anyone, until first attacked...

    After all - You attacked me first here, did you not? True, or untrue??

    Need refreshing? See the URL I posted above. That's for YOU, & others like you that have tried to 'get my goat'? JUST like you here?? I fin

  413. I KNEW you couldn't resist! by StarKruzr · · Score: 1

    You lose at the internet, APK.

    Also, you can't get a -2 rating on Slashdot. That's a nice try, though.

    "STUDENT BOY"

    You really are out of your mind. A shrink would have a field day with your inferiority complexes.

    Ask yourself this: if it is so easy to disprove what I am saying (and by the way, what AM I saying? what is my primary argument? Hm?), why do you feel the need to dump rant after insane rant on everything I post in reply to you? If you've already "won" - and one of the things I am trying to demonstrate to you is that it doesn't matter who "wins" an argument on THE INTERNET, for GOD'S SAKE - then why are you compelled to dump pages upon pages of repetitive text on me over and over?

    It's because there's something wrong with you, Alex. Very, very wrong.

    --

    +++ATH0
  414. Re:I KNEW you couldn't resist! Embarrassed? by Anonymous Coward · · Score: 0

    "you really are out of your mind. A shrink would have a field day with your inferiority complexes." - by StarKruzr (74642) on Wednesday September 21, @03:27PM

    First of all: Care to show me & anyone reading your PhD in psychology OR psychiatry, those "precise" field(s) of endeavor (NOT)?

    (You know - the one you don't have??)

    "Also, you can't get a -2 rating on Slashdot. That's a nice try, though." - by StarKruzr (74642) on Wednesday September 21, @03:27PM

    You know? LOL, probably not: I just got a +4 on the one you received a -2 for... that's good enough for me!

    After all - facts ARE facts.

    "If you've already "won" - and one of the things I am trying to demonstrate to you is that it doesn't matter who "wins" an argument on THE INTERNET, for GOD'S SAKE - then why are you compelled to dump pages upon pages of repetitive text on me over and over?"

    I thought you said "I win"? And, to answer YOUR question (though you evaded the 1 I asked & we BOTH KNOW WHY)?? To teach you a lesson: Can't you comprehend what you read???

    Fact is, I was just written about THIS b.s on your part yet again directed MY WAY from you by a friend of mine who comes here & in fact, intro'd me to this site...

    Ah, man, only to have myself pursued & attacked first everytime by you & yours from Arstechnica/OSY, etc. (only as per usual, to your own detriment).

    "It's because there's something wrong with you, Alex. Very, very wrong." - by StarKruzr (74642) on Wednesday September 21, @03:27PM

    Ah, the PhD STUDENT BOY "expert of all things & master of ALL things mystical online" + speaker for ALL of "\.", (and now? mistakes) speaks out!

    "why do you feel the need to dump rant after insane rant on everything I post in reply to you?" - by StarKruzr (74642) on Wednesday September 21, @03:27PM

    Uhm, lol: I already told you that - To teach you a lesson in humility, for starting up with me here. Simple. Does your brain memory capacity fade after 2-3 days or something? Or, are you just "blocking out" the fact you beat yourself into the ground here, with your OWN WORDS, & attacking me & failing BADLY??

    Well, is about ALL I have to say in reply:

    http://slashdot.org/comments.pl?sid=161862&cid=135 32123

    Are your own words, that entire exchange where you only got what you deserved.

    (& I will let others do the judging, as they have... note my rating of my post, & yours where you attacked me outright for NO reason?)

    Yes, sure: You're "winning" alright!

    "Also, you can't get a -2 rating on Slashdot. That's a nice try, though." - by StarKruzr (74642) on Wednesday September 21, @03:27PM

    That's FUNNY, because your TOTAL score @ that URL, IS A -2... you somehow managed the IMPOSSIBLE, lol, being impossibly badly rated... hilarious! I'd take a look @ that page, CLOSELY, & see your overall scoring by the mods here... lol!

    Yes, that's RIGHT: You're now down to -2 moderation (down another -1 you fool, lol) rating! See the 2nd line, from that URL above:

    Starting Score: 1
    point Moderation -2
    50% Flamebait
    50% Overrated
    Extra 'Flamebait' Modifier 0

    Total Score: -1

    (Argue with the numbers STUDENT BOY & as a former student (& 13 year pro in computers, whereas you are JUST a noob/student? I'd brush up on your research + math also! lol...)

    For what? It was for "flamebait" & for your starting a fight here with myself there. Your "karma points" (useless b.s. imo), have you up to ONLY, lol, a -1 total score.

    "I am trying to demonstrate to you is that it doesn't matter who "wins" an argument on THE INTERNET" - by StarKruzr (74642) on Wednesday September 21, @03:27PM

    So YOU say STUDENT BOY! I suppose you 'know all', right? B.S.! That much you've already demonstrated by your lack of accomplishment in this field alone (comp. sci

  415. Why by StarKruzr · · Score: 1

    do you think ANYONE cares about your "discipline?"

    It's words on a page, Alex. None of any of this means anything, a fact you must be acutely aware of since you enjoy masquerading as your own supporters. You claim to be "teaching me a lesson in humility." Consider that I may never learn the lesson you are trying to teach. Why, then, do you persist?

    You are indisputably my elder, but your concept of "better" fascinates me. What makes one man intrinsically better than another?

    My goodness you make a fascinating case study.

    P.S. Moderation on Slashdot means nothing. I would not be at all surprised if you kept a number of logged-in accounts whose posts you valiantly struggled not to "sign," and after collecting enough karma with them to get mod points, modded me down. It would be precisely your modus operandi.

    --

    +++ATH0
  416. Why? Why NOT?? You start this, you finish yourself by Anonymous Coward · · Score: 0

    "do you think ANYONE cares about your "discipline?"" - by StarKruzr (74642) on Thursday September 22, @04:54AM

    Who cares about it? I do for one, as it appears others have as well posting in my defense!

    Fact - YOU started this with me, did you or did you not??

    See the URL below in my P.S. here, to anyone reading this, it's all you need to see in regard to my statement to this person. Just facts, & all I need.

    You need it imo, & deserve it after all the crap you've tossed my way... including name calling & worse.

    I mean, to me?

    It seems as if YOU think you can go and startup crap with people with impunity & not get any retaliation from them.

    WRONG! And this time?? You STUDENT BOY, picked the wrong person to try it with... you needed to be humiliated & exposed for it.

    "It's words on a page, Alex. None of any of this means anything" - - by StarKruzr (74642) on Thursday September 22, @04:54AM

    OH, really? Then why bother reply?? Why avoid those words & questions of mine as you did & still do???

    Ahem (cough) "B.S."...

    "you enjoy masquerading as your own supporters." - by StarKruzr (74642) on Thursday September 22, @04:54AM

    LOL, against the likes of a talk-alot, start hassles, name calling STUDENT BOY like yourself who has done nothing of note in this FIELD?

    LOL, man: Newsflash - I don't HAVE to...

    Does this reply of mine & facts I used in other posts here as chastisement of yourself for starting up hassles here with me also include the parent post of mine being modded to +4 & your rather idiotic reply being modded down -1 for it? I am those moderators??

    NO! Not yet... but it's in my P.S. below as another backing fact for me to use vs. yourself, your own actions & words here, for anyone interested.

    E.G.-> Also, I used facts about myself & what I've done (small sample) in this field of endeavor & then asked you a simple question:

    "What have you done like it that we can see/use/verify & that did as well?"

    (Especially since you put down some work of mine that did EXTREMELY well & I did not the judging of it @ Torry's Delphi pages for example, either gaining/earning their TOPMOST rating possible for wares programmed)...

    I didn't do the voting, no external parties can - Their mods/admins did, who are professional coders also & my peers in this field who rated the same work YOU put down (you being merely a STUDENT BOY/NOOB/ROOKIE in this field no less who is simply out to get my goat & can't: YOU DON'T HAVE A THING TO YOUR NAME THAT SHOWS YOU ARE A PEER OF MINE IN THIS FIELD, & therefore, are someone I can just laugh at to be blunt about it).

    Additionally? I masquerade as nobody! That statement of yours takes some nerve, here is why:

    Fact is, you give away your very own modus operandi with that statement.

    (That's one of THE VERY NOTORIOUS THINGS that you arstechnica/osy idiots are KNOWN for. Do I have to point out the sites like 3dfiles.com, ntcompatible.com, windowsitpromag.com, tweakfiles.com, majorgeeks.com & other spots online where arstechnica forums people did that & admitted it after being caught in that very thing @ them?)

    "What makes one man intrinsically better than another?" - by StarKruzr (74642) on Thursday September 22, @04:54AM

    Many things, including NOT starting up fights/hassles needlessly with others as you have with myself here for one.

    You asked me, what makes another man 'better than another'?

    Deeds/actions & Facts - NOT WORDS!

    I gave you an example of that, here it is again (hate to 'burst your bubble', but ALL MEN ARE NOT CREATED EQUAL & their accomplishments tend to lend credence to it).

    E.G.-> There is probably NO WAY I could beat Micheal Jordan in a game of basketball. He has me physically overmatched, & experience-wise as well. He is one of the best IF NOT THE BEST @ his game.

    (I know this already because of what h

  417. Nobody posts in your defense. by StarKruzr · · Score: 1

    You're not fooling anyone. You never have. Your first reply to me was OBVIOUSLY the "anonymous" comment directly under my first reply to you; no one writes in that sentence-by-sentence stream-of-consciousness way. You're a lunatic. Whether or not I have written programs (and I haven't written anything of note! nope! end of discussion!) has no bearing on my ability to observe your behavior and judge it abnormal.

    The original test of your character here was to see how you responded to me calling you out as a liar (something that is essentially undisputed by anyone who counts). You could have chosen to say "I don't flamewar anymore," or "I don't bother with that kind of crap anymore," or any number of way classier responses than the endless stream you direct out of your fingers to the keyboard from /dev/random.

    Stop making up supporters for yourself, try being a good person, and above all learn how to let things go.

    Maybe someday if you can learn how to express yourself in ways that don't involve tearing other people and their opinions down, I'll be able to say "boy, that Kowalski, he really turned himself around and into an asset to the computing community." That day is not today.

    Stop being obsessed with "destroying" people online and try focusing on actually HELPING.

    --

    +++ATH0
  418. Nobody posts in your defense. Oh, really? by Anonymous Coward · · Score: 0

    Those anonymous cowards could be you as well, I could easily state that... but the fact they did berate you & point out facts as I have? They did evidently stick up for me, & blast you bigtime.

    Why? Well, YOU, bottom-line, started ALL of this!

    Right here, in THIS post of yours to me:

    "It was more about me GREATLY enjoying trolling the hell out of you because you're an imbecile who enjoys belittling others." - by StarKruzr (74642) on Tuesday September 13, @02:15PM

    I never "belittle" anyone, or attack anyone, until first attacked...

    After all - You attacked me first here, did you not? True, or untrue??

    Need refreshing? See here:

    http://slashdot.org/comments.pl?sid=161862&cid=135 32123 [slashdot.org]

    Starting Score: 1
    point Moderation -2
    50% Flamebait
    50% Overrated
    Extra 'Flamebait' Modifier 0
    Total Score: -1

    YOUR score there StarKruzr, isn't me doing the judging, & like usual? You did yourself in. Classic arstechnica/OSY blunder.

    (Any questions? That's your moderation score here, a -1 for flamebait & starting hassles with myself. I didn't do the judging of you here, others did, as they did my post you posted that to, & modded me UP +4 no less for...)

    That's for YOU, & others like you that have tried to 'get my goat'? JUST like you here?? I finish them off, everytime... just as I did you, with facts!

    LISTEN, above all:

    Don't even TRY to preach to me kid, or sound condescending - you don't have the age, wisdom, skills in this field, or to be BLUNT about it? The wits needed!

    In the end? I just level you with verifiable facts, as I have in EACH post reply to you...

    Point-blank - You don't have the wits, intelligence you said you have, or the means/information @ your disposal to get the better of me & YOU KNOW IT, I know it, & now anyone reading here... knows it.

    All you have is name calling, innuendo & libel, & blatant disregard for others by starting up crap... did you, or did you not, startup with me here?

    Yes, You started this for no good reason - I will let you finish yourself off with your OWN words!

    Just as I have every other arstechnican who talks a good game, but when it comes down to showing proof of achievement in this field we can all see/use?

    Not a one has to date, been able to do so, & you are just yet another one for me to dispose of...

    Heck - you arstechnica/OSY forums members only dispose of yourselves, everytime: TOO easy... way too easy.

    Keep maneuvering your Arstechnica/OSY forums selves into a corner for me, with your own words & lack of visible/proveable accomplishment in THIS field...

    It's FUNNY! apk

  419. You just copied and pasted AGAIN. by StarKruzr · · Score: 1

    You lose.

    --

    +++ATH0
  420. POT CALLING THE KETTLE BLACK NOW, are we? by Anonymous Coward · · Score: 0

    Well, the pot's calling the kettle black first of all: Didn't YOU just "cut & paste"?

    Those anonymous cowards supporting me could be you as well, I could easily state that... but the fact they did berate you & point out facts as I have? They did evidently stick up for me, & blast you bigtime.

    Why? Well, YOU, bottom-line, started ALL of this!

    "Stop being obsessed with "destroying" people online and try focusing on actually HELPING." - by StarKruzr (74642) on Thursday September 22, @03:27PM

    WTF? Who started this?? Myself OR YOURSELF? You did... care to deny that? I won't back down when attacked: LEARN THAT!

    (Especially when I can EASILY prove your motivations, not good ones, so please: Don't try to pull the "Satan turns to Christ" move, ok? It's NOT working, and won't, when I point out your actions/deeds, vs. my own, with you clearly shown every time to have started up with me, first!)

    NOW, As to helping others online?

    LOL!

    I've done that & been at it probably FAR longer than you have been online, & before you EVER had the abilities to do so.

    IRC from 1994 onwards in fact, where I was a mod @ a tech channel for Win32 OS there, one endorsed as "the Official Help channel for Windows" by K. Mardem Bey, the creator of MIRC, on Dalnet. There, & before it existed, on other chat channels there, right on up to today in forums.

    Especially on technical levels in this field. Noobs, & programmers alike even (ask Jay Loden the author of AIMFix in fact, whom I am helping to better his code right now where I can where he asked questions about it on his site when he hit walls in certain areas that I know how to "work-around" as my most recent evidence of this... as well as being modded up here repeatedly (10-15 times now in a SHORT (relative) time-frame here so far, less than 6 months or so)).

    No... your motives are in question, since you've tried this SEVERAL times now on me, & cause the disturbances... proof?

    Well, it's not from myself doing the judging on THAT account, but the mods here as well!

    In fact, I evidence that, right here, in THIS post of yours to me:

    "It was more about me GREATLY enjoying trolling the hell out of you because you're an imbecile who enjoys belittling others." - by StarKruzr (74642) on Tuesday September 13, @02:15PM

    I never "belittle" anyone, or attack anyone, until first attacked...

    After all - You attacked me first here, did you not? True, or untrue??

    Need refreshing? See here:

    http://slashdot.org/comments.pl?sid=161862&cid=135 [slashdot.org] 32123 [slashdot.org]

    Starting Score: 1
    point Moderation -2
    50% Flamebait
    50% Overrated
    Extra 'Flamebait' Modifier 0
    Total Score: -1

    YOUR score there StarKruzr, isn't me doing the judging, & like usual? You did yourself in. Classic arstechnica/OSY blunder.

    (Any questions? That's your moderation score here, a -1 for flamebait & starting hassles with myself. I didn't do the judging of you here, others did, as they did my post you posted that to, & modded me UP +4 no less for...)

    That's for YOU, & others like you that have tried to 'get my goat'? JUST like you here?? I finish them off, everytime... just as I did you, with facts!

    LISTEN, above all:

    Don't even TRY to preach to me kid, or sound condescending - you don't have the age, wisdom, skills in this field, or to be BLUNT about it? The wits needed!

    In the end? I just level you with verifiable facts, as I have in EACH post reply to you...

    Point-blank - You don't have the wits, intelligence you said you have, or the means/information @ your disposal to get the better of me & YOU KNOW IT, I know it, & now anyone reading here... knows it.

    All you have is name calling, innuendo & libel, & blatant disregard for others by starting up crap... did you, or did you not, startup w