Slashdot Mirror


Does Learning To Code Outweigh a Degree In Computer Science?

jjp9999 writes A college degree may not the best route when it comes to jobs in coding. Jobs for computer science majors flow aplenty, yet employers (and job-seekers) often learn quickly that the college grads don't have the skills. "This is because the courses taught in virtually all computer science curriculums focus on theory, and they only dabble in teaching practical programming skills," says Cody Scholberg on Epoch Times. This ties into a unique factoid in the world of programmers. Nearly half of the software developers in the United States do not have a college degree. Many never even graduated from high school. Instead, many aspiring programmers are turning to open source learning materials, or to the new programming bootcamps popping up around the United States. While theory does have its place, the situation raises the question of whether colleges are teaching the right skills people need to join the workforce, and what its place is amid the rise of open source learning.

546 comments

  1. Probably not. by Richy_T · · Score: 3, Interesting

    I wouldn't say learning to code outweighed a college degree. But having the mentality that would lead one to want to learn to code... That's a sure bet. Of course, that mentality might lead one to attend college but it's my contention that that is less advantageous for many (certainly it turned out to be a time sink for me).

    1. Re:Probably not. by Jane+Q.+Public · · Score: 5, Insightful

      I wouldn't say that learning to code necessarily outweighs a degree. But I do think university courses are too heavily focused on theory, and not enough practical application.

      They complement each other. The big problem here (having gone though both, most but not all of the college being quite a while ago) is that a computer programmer back in the day HAD to know theory well, because programming was hard work! Input/output was so slow that you had to get it right the first time. Often you would present your code to somebody at a window to run on the mainframe, and if you were lucky you got a printout (!!!) the next day. If you got it wrong, a whole day was down the tubes.

      Memory and storage were always in short supply, and CPU time was expensive. So everything had to be optimized. Sometimes for speed, sometimes for size, somethings a compromise of both. Theory was everywhere and you had to use it.

      Heavy on theory, short on practice model that university CS was built upon, out of necessity. And they've kind of stuck with it, because universities are slow to change such things.

      But I would also say that it is not a waste of time. As a practical programmer, theory will get you far. Look! De Morgan's Theorem just let me reduce those 5 lines of code to 2. You may not need to know linear algebra to work on sets of numbers, but if you do, hey, check it out. Now our program is half the size and our memory usage is down by 2 orders of magnitude.

      So I don't think either one replaces the other. They complement each other. But I do think universities could concentrate, at least for their BS programs, a bit more on practical programming and just a bit less on theory.

    2. Re:Probably not. by Anonymous Coward · · Score: 0, Offtopic

      In the US, having an H1B is worth more than a CS degree.

    3. Re:Probably not. by whereiswaldo · · Score: 1

      Question should be rephrased: Does learning to code outweigh learning to code _better_?
      It also ignores the other things you learn while getting your degree, and learning to cope with pressure which isn't present when you're learning to code whenever you feel like it.

    4. Re:Probably not. by i+kan+reed · · Score: 5, Insightful

      My university took the attitude that computer science was an engineering discipline. You need to understand the theory, because the theory helps you classify and interpret that problem you're dealing with. But as an engineer, you're also on the hook for the process of design, and the actual design itself.

      Certainly they do not want to just teach you a programming language, because that's like teaching a mechanical engineer the tools and settings for a single CAD program. Or an architect just how to draw blueprints.

      But they still called it a computer science degree because I guess the world assumes people with a "software engineering" degree don't understand theory? I don't know why they made that choice.

    5. Re:Probably not. by Drethon · · Score: 1

      One problem with shifting from theory to practical application is there is so damn much of it. After 10 years in the field I know a ton of theory but I'm learning new practical application nearly every day. Though the engineering courses were rather good at 3 hours a week of theory and the rest of the week of lab assignments with "go build it".

    6. Re:Probably not. by Matheus · · Score: 1

      I've got 2 side to this issue:
      1) There's a LOT I didn't know after I graduated about "how to code". Given *when I graduated a lot of that was pretty immature and my school wouldn't have been able to teach me anyway (Version control is completely different now, Frameworks? What are frameworks? plus some countless design patterns that weren't as formal as they are now... oh yeah and the Web was on 1.0) but there were some aspects at the time that were definitely missed that would have helped me post grad (I'd never coded a UI before graduating for example... just never had the need with all of my profs being Unix/Command Line friendlies)) Honestly I'm not sure where that would have fit in anyway but even an advanced coding class beyond the Intro to Programming class we had would probably have been useful. All of my classes post that course were all teaching theory and just used the language as a tool to do so.

      2) ALL of that I learned just fine on my own post-grad. Given I graduated right before the big bubble popped I saw first hand the hordes of "Learn to Code in 30 days" developers that absolutely swamped the job market. The degree on my resume meant something but most of the time I had to argue the merits. The real answer which many employers discovered the hard way (why I have no trouble finding jobs now) is the simple fact that it's easier to learn the practical on your own than it is to learn the theory. In our field we are learning new tools/etc every day or we are falling behind and losing our value. Yes maybe it would have been nice to have a few more under my belt upon graduation but all of that would be fairly obsolete by now anyway. The *Theory I learned rarely expires and helps me be a better *Engineer every day. If my job was just being a coder I'd be bored and honestly I have to work with people who that's all they can do more often than I'd like. (Like cream I rise to the top but honestly it'd be nice to to have to carry their load all the time)

      Long story short: Yes my University could have taught me a bit more practical but in the long run I don't see that as a problem that really needs to be solved as what they did teach me was SO much more valuable.

    7. Re:Probably not. by wiredlogic · · Score: 4, Insightful

      Heavy on theory, short on practice model that university CS was built upon, out of necessity. And they've kind of stuck with it, because universities are slow to change such things.

      They've stuck with it because college isn't supposed to be about vocational training.

      --
      I am becoming gerund, destroyer of verbs.
    8. Re:Probably not. by BasilBrush · · Score: 1

      Look! De Morgan's Theorem just let me reduce those 5 lines of code to 2.

      So what? The 5 lines probably represent the set of logical questions that makes sense to a human. Once it's been manipulated by De Morgan's laws, the connection to the problem is lost. (If it was maintained, you wouldn't have needed De Morgan to optimise them.) You have fewer logic operations, but less legible code.

      De Morgan was useful when computers were underpowered. And even more useful for hardware engineers. But they are useless to the mainstream software engineer. I haven't had any call for them in probably 25 years.

      Same goes for most things they used to (and maybe still do) teach in CS. As another example, understanding half a dozen sort algorithms is pointless. If you're writing your own sort function, you're doing it wrong. Just call the one in the API. In the extremely rare case of someone having to implement sort from first principles - the internet will get you the best algorithm for your use case in no time.

      There's a few things from CS that programmers would be better for knowing, such as time complexity of algorithms. But there's not enough of them to make the time and money to do a CS degree worth it.

    9. Re:Probably not. by AaronW · · Score: 2

      In my case I studied computer engineering. I did not take a programming class per-say. I took classes where you were expected to learn the programming language but it was more about the algorithms than the language. For example I learned C in my first upper-division algorithm programming class but most of our time was not spent on the programming language.

      My degree also gave me access to a lot of things that would not be easily doable outside of the university such as a lot of hardware concepts. A lot of what I learned was also hands-on. For example, we designed and built our own CPUs and systems built around the CPUs. Back when I did it it was a combination of wire wrap and FPGAs and a number of discrete chips. We had access to the various data sheets and learned about concepts like fan-out, propagation delay, glitch free logic and more.

      The skills I learned in college I use to this day even though it was 20 years ago and those skills are in high demand. It would be far more difficult to be self-taught in all of the knowlege I learned there. What I learned in college gave me a good start to continue learning once I joined the industry and where I continue to expand my skills where I work on the bootloader and the Linux kernel for multi-core 64-bit MIPS CPUs (currently 48 cores) and high speed networking (40Gbps).

      --
      This post is encrypted twice with ROT-13. Documenting or attempting to crack this encryption is illegal.
    10. Re:Probably not. by thetoadwarrior · · Score: 1

      I would agree and if people think they'll complete a Learn PHP book and then get loads of job offers that's simply not going to happen. You'll still have to put work in to build something that proves you know what you're doing. I don't have a degree but that certainly hasn't stopped me and the bulk of the jobs I've applied for over the last 7 years or so claimed to require a degree. But I've also got over about 12 years of experience and really that's what companies want. They want to know you can do what you claim (and ideally you're not an asshole). A degree is certainly a short cut in the eyes of many to proving you know what you're doing. It is still worth considering getting one but I think only if you're still going to something extra into like have at least one or two side projects that show you're not just going through the academic steps or better yet do some side job freelancing. I think even if you're making shitty little static html sites for people if you're proving you can manage customer relations that will matter a whole lot more than you think. Anti-social competent programmers are a dime a dozen.

    11. Re:Probably not. by LinuxFreakus · · Score: 1

      College is a Joke. Degrees are largely worthless because grade inflation has gotten so bad that basically anyone with a pulse will graduate from the CS programs... doesn't matter if it is Harvard, or MIT, or Stanford, or lowly state schools. The students all whine and complain and talk to the dean, etc, etc... until they get a passing grade. It sucks for those who actually are GOOD because you end up with the same grades and the same degrees as the idiots who can't code their way out of a paper bag.

    12. Re:Probably not. by jmcvetta · · Score: 1

      If you're writing your own sort function, you're doing it wrong. Just call the one in the API.

      Amen.

    13. Re: Probably not. by slingshot2hell · · Score: 1

      Yeah, I don't have a CS degree, and it took awhile before I was able to get the high paying jobs. But now with over 12 yrs exp I also work jobs that "require" degrees. I think the experience trumps the degree, I know my pay is higher than a new CS graduate.

    14. Re:Probably not. by Anonymous Coward · · Score: 0

      Indeed. Programming is a trade tool and can be taught in a trade school. Computer Science is Software Engineering (without licenses it can't be called such professionally in areas). Programming is and should only be a tool for a person studying Computer Science. Only the last year or maybe two of a 4 year degree goes into theory of any sort. Once I went into graduate courses, the material was a lot more theory based, which made it interesting in many respects. Just wish that all of the teachers had at least one hands on project for the material. The best ones did at least. Software Testing with only theory? Pfft.

    15. Re:Probably not. by Anonymous Coward · · Score: 0

      I recently received a degree in CS myself. and i would have to agree with your assessment.
      However much of what I learned at the university for CS was not theory. But it was not very practical, for example I learned OracleDB, which was great and all but i never learned how to access that DB via an actual program just through Oracles software. That may be good for a simple printout but is useless for having me code a dynamic search.

      But the theory I learned is highly useful for handling larger sets of data. For example I if your creating a MMORPG game you would want someone who could optimize path-finding, and not just someone who can make the enemy run at you. (if they can even do that in 3D)
      Probably the easiest way to break it down is to look at how much data your dealing with. If you only have a small amount of insecure data, then any run of the mill coder will do, but if you have a large database that needs to run efficiently and securely then it's probably better to get someone with a degree.

    16. Re:Probably not. by qpqp · · Score: 2

      There's a few things from CS that programmers would be better for knowing, such as time complexity of algorithms.

      Yeah, there's like absolutely no point at all in learning about distributed systems, concurrency, databases, patterns, functional programming, network and OS fundamentals, graph (i.e. network) theory, agents, model based and/or driven approaches, fault tolerance, streaming systems, ...
      For a programmer, that's totally unnecessary. For a software engineer, though it's a different story.

    17. Re:Probably not. by UnderCoverPenguin · · Score: 1

      Question should be rephrased: Does learning to code outweigh learning to code _better_?
      It also ignores the other things you learn while getting your degree, and learning to cope with pressure which isn't present when you're learning to code whenever you feel like it.

      I agree. Except for the first 2 classes (which I bypassed), the CS classes offered at the university I attended (and graduated from) simply expected that we could code. The graders barely looked at our code. If they could compile and run it, then if the results were correct, our programs were correct. There was no feedback, let alone instruction, on readability or maintainability. And the closest we got to software planning was that our term project design documents were 30% of our midterm grades (along with 30% from homework and 40% from test scores).

      So yes, universities should add classes on software planning and improve classes on coding practices (while I did bypass the 2 "coding" classes, I did see other students' assignments and code, so I could see that the classes were more about applying coding to problems than coding practices).

      --
      Don't try to out wierd me, three-eyes. I get stranger things than you, free with my breakfast cereal. --Zaphod Beeblebr
    18. Re:Probably not. by Anonymous Coward · · Score: 0

      I don't want you to learn to code, I want you to learn to THINK.

      I can teach a monkey how to write code properly, but the thought process that creates a functional application requires far more theory and understanding than simply knowing a programming language.

      Also keep in mind that languages come and go, what's the current fad? node.js? ruby?... if you know how to think you can work on any language. If you just know how to code, well, you get the idea.

    19. Re:Probably not. by BasilBrush · · Score: 1

      What did you not understand about "a few things" and "such as"? Though much of what you list is either learned as you go, or is entirely unnecessary, depending on your particular niche.

      As to "software engineer", some jurisdictions may require a qualification to call yourself "engineer". The piece of paper justification for a degree counts here. Other than that the term is interchangable with programmer. "Software Engineer" is just chosen as something to go on a business card by people who think it sounds better than programmer. Often with the word "senior" in front of it, even when they have no supervisory responsibilities. It's usually good for demanding a better salary too.

    20. Re:Probably not. by RackinFrackin · · Score: 1

      Look! De Morgan's Theorem just let me reduce those 5 lines of code to 2.

      So what? The 5 lines probably represent the set of logical questions that makes sense to a human. Once it's been manipulated by De Morgan's laws, the connection to the problem is lost. (If it was maintained, you wouldn't have needed De Morgan to optimise them.) You have fewer logic operations, but less legible code.

      What a silly argument. Optimize the code and use a comment to explain what's happening.

    21. Re:Probably not. by StripedCow · · Score: 1

      I guess the world assumes people with a "software engineering" degree don't understand theory

      People don't understand software engineering. Period.

      --
      If Pandora's box is destined to be opened, *I* want to be the one to open it.
    22. Re:Probably not. by BasilBrush · · Score: 1

      What you just said is much sillier. Optimise logical operations in code using De Morgans laws? Ha ha! This is what Knuth means by premature optimisation being the root of all evil. It's extremely unlikely to make any difference as the compiler will optimise it in te best way anyway. And if you do need to optimise for speed you'll be doing so with a profiler, not De Morgan's laws.

      Don't complicate code and excuse it by commenting.

    23. Re:Probably not. by Anonymous Coward · · Score: 0

      I wouldn't say that learning to code necessarily outweighs a degree. But I do think university courses are too heavily focused on theory, and not enough practical application.

      Should I learn carpentry or study architecture?

      Carpentry can get you a nice job, if you have a knack for it. It also has great future prospects: you can step in to management as a foreman; you can freelance as a contractor and be your own boss; you can start your own company. You can specialize in fine custom millwork. You can specialize in mass-produced furniture. You have tons of options as a carpenter. These are well-traveled career paths, and it's a skill the world needs, just like coding.

      However, unless you study architecture, your chances of becoming an architect are negligible. Even if you do study it, you might end up doing drafting or CAD forever...there are no guaranteed jobs, and the competition is stiff. The same holds true with computer science.

    24. Re:Probably not. by Anonymous+Brave+Guy · · Score: 1

      As another example, understanding half a dozen sort algorithms is pointless. If you're writing your own sort function, you're doing it wrong.

      Obviously your second statement is over-generalised, but in any case, you're assuming that the only reason to understand different sorting algorithms is to implement them. How do you know which of a variety of algorithms to choose, or even that there's a useful question you could go ask the Internet, if you aren't even aware of the possibilities that are out there?

      Sure, I could go read a bunch of papers every time I needed to choose which tool to choose, but if I had to do that then someone who actually knew their data structures and algorithms would be getting useful stuff done while I was reading. What next, don't bother learning the syntax of your programming language, you can just look up operator precedence in the on-line help of your IDE, and if you get it wrong your compiler will probably just give you a warning anyway?

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    25. Re:Probably not. by sensei+moreh · · Score: 1

      But I do think university courses are too heavily focused on theory, and not enough practical application.

      If you don't want to be a computer scientist (or, at least, educated in computer science), don't go for a computer science degree. If you want to be trained to be a programmer, find an institution that will train you to be a programmer - it may not be a university.

      --
      Geology - it's not rocket science; it's rock science
    26. Re:Probably not. by Anonymous Coward · · Score: 0

      What's wrong with optimizing something by hand if it's so blatantly simple? And what makes you assume that is would automatically be premature?

    27. Re:Probably not. by qpqp · · Score: 1

      Thanks for the attempt at mentoring. You obviously are much more qualified than me to distinguish what makes a programmer a programmer, a software engineer a software engineer, and a computer scientist a computer scientist. Just stick to your opinion and go wreak some more havoc, so I can clean up after people like you and get myself another house and maybe this time a plane.

    28. Re:Probably not. by Sperbels · · Score: 1

      Question should be rephrased: Does learning to code outweigh learning to code _better_?

      A degree does not make one code better. Experience makes them code better. A degree and experience is even better (I'm not sure about this one because I've known experienced degree holders who still write awful code).

    29. Re:Probably not. by Anonymous Coward · · Score: 0

      Of my 6.5 years in college (Bachelors in Electrical Engineering, Masters in Computer Engineering), I'd say 1.5 years were essential skills learning, practice, and building value as an employee of the future. 0.5 years were "rounding out" courses - literature, philosophy, etc. - things that "educated" people have in common. The other 4.5 years could have been skipped and I would have been just as good of an employee - maybe better able to do the jobs I have done for the last 20 years.

      Thing is, I might not have gotten any of my first 4 jobs without that Masters' degree, so.... this is the way the world is. College wasn't an un-fun time, enjoy it.

    30. Re:Probably not. by mysidia · · Score: 1

      My answer is twofold.... (1) Getting a degree in Computer Science is not good enough to get a high-level programming job, however..... (2) Just learning to code is not good enough to get a high-level job in the field, either.

      The fact is.... if you learn how to code you won't necessarily learn the theory.

      You will probably be able to get a job coding however..... you will even get experience, and possibly advance within the art.

      At some point, unless you stay within the same coding job and don't keep moving up to more challenging more highly-paying work, then you are likely to eventually run into a "ceiling" where you have to know the theory to do something.

      In that case, you may be stuck and need help, or require additional training. It may block or slow down your professional development, to not have basic knowledge.

      You may find that you want to take on a job or reach a level of promotion, that your employer won't allow without a College Degree.

      It matters little whether the degree is in CS or not. When you are applying for a job or looking to apply or get into a higher-level role in software architecture/design, or managerial position --- the degree may very well serve as a litmus test to the employer, before even evaluating your skills, So... the choice to only learn coding could be detrimental later.

    31. Re:Probably not. by Anonymous Coward · · Score: 0

      But I would also say that it is not a waste of time. As a practical programmer, theory will get you far. Look! De Morgan's Theorem just let me reduce those 5 lines of code to 2.

      Are you arguing that theory made you worse at what you do?

    32. Re: Probably not. by Anonymous Coward · · Score: 0

      I would hope that, with 12 years experience, you make more than a new CS graduate. That being said, what are those with a degree and 12 years experience making? Likely, they are earning more as most probably have moved into senior management.

    33. Re:Probably not. by maz2331 · · Score: 1

      If you actually want to make software, then yes it does. If you want to make money in a corporate job, it doesn't.

    34. Re:Probably not. by Anonymous Coward · · Score: 0

      Has anyone looked at an undergraduate curriculum in CS? The beginning courses have to teach practical matters like a couple of languages as mechanisms for expressing algorithms, and elementary data structures and algorithms to keep the kiddies from doing stupid things (only one e.g.: bubble sort?). Then the rest of the required courses are quite broad in nature, intending that the student will be required to learn all kinds of new stuff throughout their careers. Unless a student wants to pursue theory, optional courses generally cover a wide range of useful stuff--networking, databases, security, principles underlying programming languages (making new ones easier to learn), systems programming (only one e.g.: how to build a parallel barrier synchronizer out of only software in a distributed system), operating systems, and system administration.

      If you think that's too theoretical, then you don't recognize that none of the hitters in hot computing organizations graduated from ForProfit U. On one hand, if your goal is to be a drone software emitter, by all means take the short cut at FPU to a permanent career at that level. In the middle, if you intend to rise in responsibility and remuneration in your career, a BS is the entry gate. At the other end, if the student's goal is an advanced degree, then the above needs to be beefed up with more content-full material.

    35. Re:Probably not. by Anonymous Coward · · Score: 0

      It is not the college's fault that you were too lazy to make college into a real learning experience rather than a grade-getting exercise.

    36. Re:Probably not. by beelsebob · · Score: 1

      I wouldn't say that learning to code necessarily outweighs a degree. But I do think university courses are too heavily focused on theory, and not enough practical application.

      The job of a university is to teach theory. These are not vocational collages, they are universities. The practice is meant to be something you are more than capable of teaching yourself if you're any good at the subject.

    37. Re:Probably not. by Jane+Q.+Public · · Score: 1

      My university took the attitude that computer science was an engineering discipline. You need to understand the theory, because the theory helps you classify and interpret that problem you're dealing with. But as an engineer, you're also on the hook for the process of design, and the actual design itself.

      Certainly they do not want to just teach you a programming language, because that's like teaching a mechanical engineer the tools and settings for a single CAD program. Or an architect just how to draw blueprints.

      But they still called it a computer science degree because I guess the world assumes people with a "software engineering" degree don't understand theory? I don't know why they made that choice.

      I basically agree with you but the complaint seems to be that many people are coming out of university without the basic programming skills needed for real-world jobs. I'm not claiming it's true, I'm just saying that's the complaint.

    38. Re:Probably not. by smellotron · · Score: 1

      What's wrong with optimizing something by hand if it's so blatantly simple?

      In what situation will an application of DeMorgan expected to actually be an optimization? I expect the compiled code would just end up using inverted comparison instructions and swapping ands/ors around. Net benefit: nada. In such a situation, the effort of optimization is a total waste and any resultant obfuscation is also a total waste, so that's what is wrong.

    39. Re:Probably not. by CaptQuark · · Score: 1

      And who writes and optimizes the sort routine in the API?

      Same problem with "Just use the routine in the library". Who writes the libraries? What if I don't want to include a 9Mb library to my project just to get a sort routine and some string handling functions?

      And don't say "just check Google". Once again, someone has to develop the code you're using for inspiration.

      ~~

    40. Re:Probably not. by martin_dk · · Score: 1

      The question is unbalanced. Learning to code is one or more courses out of many other courses in many fields.

      I would say N years of daily work and practice could outbalance a N years degree

    41. Re:Probably not. by TheRaven64 · · Score: 1

      De Morgen's laws are widely known and trivial to automate. Any vaguely modern compiler knows about them and will do the transform for you. Not only will it do it for you, it will do it for you everywhere and base on knowledge of the target architecture.

      That said, it won't rearrange things that might have side effects. In C, for example, you have short-circuit evaluation, so if you have something cheap on the left of an or and something expensive on the right, then it will be faster unless the compiler can determine that the expensive thing has no side effects. If you have a negation of a long string of ands, the arguments to each of which is expensive to compute, then turning it into a string of negated ors is faster, because the compiler can stop computing once it's found one that's failed.

      --
      I am TheRaven on Soylent News
    42. Re:Probably not. by BasilBrush · · Score: 1

      How do you know which of a variety of algorithms to choose, or even that there's a useful question you could go ask the Internet, if you aren't even aware of the possibilities that are out there?

      Because even non-degree programmers aren't stupid, and this kind of general knowledge about their profession is acquired as they go.

      Sure, I could go read a bunch of papers every time I needed to choose which tool to choose, but if I had to do that then someone who actually knew their data structures and algorithms would be getting useful stuff done while I was reading.

      The number of times you are dealing with stuff that was learned in a CS degree is minimal. Again for most programmers this kind of fundamental stuff is implemented in APIs that they use. Every programmer has a bunch of stuff that they already know and a bunch of stuff that is new to them and they need to research before doing a task. The proportion is mostly dictated by amount of experience, not whether they have CS degrees or not.

    43. Re:Probably not. by BasilBrush · · Score: 1

      Thanks for the attempt at mentoring. You obviously are much more qualified than me to distinguish what makes a

      You're welcome. And yes, unless you've had more than 3 decades of being a programmer and/or senior software engineer, I am more qualified, yes.

    44. Re:Probably not. by philip.paradis · · Score: 1

      I happen to largely agree with BasilBrush, and I must note that your arrogance is not only positively dripping, but quite possibly misplaced. It is likely that I not only earn significantly more than you, but also maintain a lower overall cost of living (even while supporting my family), resulting in a substantial net economic edge over your position. It is highly likely that I possess deeper knowledge in the areas you listed (distributed systems, concurrency, databases, patterns, functional programming, network and OS fundamentals, etc) than you do, and I'm probably younger than you at 33. While I've been programming since childhood, I am a high school dropout.

      Instead of crowing about houses and planes, I'm rather more interested in considering how I might leverage my present position to build an even better one over the next few years, hopefully one that provides even more opportunities for young programmers and systems people to shine. While my "day job" title is a senior engineering role and I report directly to C-levels, I'm typically more interested in helping other employees learn and advance in the workplace than I am in tooting my own horn at the office.

      Always remember: businesses are made of people, and there's always someone brighter and/or better equipped than you, sometimes closer than you think. Whether you take it as mentoring or not, my advice to you would be to spend a bit of time in introspection and in furtherance of your interpersonal skills.

      --
      Write failed: Broken pipe
    45. Re:Probably not. by Anonymous Coward · · Score: 0

      Heavy on theory, short on practice model that university CS was built upon, out of necessity. And they've kind of stuck with it, because universities are slow to change such things.

      They've stuck with it because college isn't supposed to be about vocational training.

      So if College isn't supposed to be about teaching (its original founded purpose centuries ago), what is it about, an endless series of parties, raves, keggers, social engagements and general money sinks to get the middle class into debt? College IS supposed to be about Vocational Training not where Dumbledor hides his wand or other lame classes you can squander money on. Any college that isn't vocationally based needs to demolished, its instructors fired and sent to Mosul to live their remaining lives.

    46. Re:Probably not. by philip.paradis · · Score: 1

      I didn't see your reply here until I'd already posted my own, but wanted to take this opportunity to say you brought a smile to my face this morning. If you ever find yourself anywhere near Dallas TX, I'd be glad to buy you a beer.

      --
      Write failed: Broken pipe
    47. Re:Probably not. by Anonymous Coward · · Score: 0

      But they still called it a computer science degree because I guess the world assumes people with a "software engineering" degree don't understand theory? I don't know why they made that choice.

      Software engineering and computer science should teach different sets of theory. Computer science is all about deep analysis and mathematics. Software engineering is about getting the implementation right, even though you don't understand why that crazy algorithm actually works. So computer science course produces an analyst while software engineering course produces a highly skilled and efficient code monkey. They perfectly complement each other but they're by no means interchangeable.

      However, both courses need freshmen who can already code at a decent level. If you want to get a CS/SE degree, you need to start programming during freshman year of high school or earlier. Otherwise you won't understand the importance of the most important parts of the theory, learning it will be much harder (because it won't make sense to you) and you'll forget most of it before the ink on your diploma dries.

      (Self-taught programmer with a CS degree here.)

    48. Re:Probably not. by Anonymous Coward · · Score: 0

      Same goes for most things they used to (and maybe still do) teach in CS. As another example, understanding half a dozen sort algorithms is pointless. If you're writing your own sort function, you're doing it wrong. Just call the one in the API. In the extremely rare case of someone having to implement sort from first principles - the internet will get you the best algorithm for your use case in no time.

      If you think that implementing a sort function yourself is only ever useful for sorting things like with a library implementation, you should return your geek badge.

    49. Re:Probably not. by julesh · · Score: 1

      As another example, understanding half a dozen sort algorithms is pointless. If you're writing your own sort function, you're doing it wrong. Just call the one in the API.

      Understanding those algorithms is still important, though, even if you're just using the available APIs. I know that depending on what framework I pick, the API's sort function will either be an implementation of quicksort, quicksort with an optimization to prevent worst case performance on presorted data, mergesort or (rarely) a handful of others. In many cases it is important to know which one is being used. Is resorting an already sorted list going to give me poor performance? Will elements that compare equal be maintained in order or would they be psuedorandomly transposed? If I know the details of common sorting algorithms I can tell this at a glance, and can easily remember which applies to which framework. If I don't know the details, I'll have to dig into documentation (or, quite frequently, stack overflow questions) to find the answers, which will take much longer.

      And the other thing that CS teaches is that there are alternative approaches: why are you using a sort function, when you could be keeping your data in a tree structure instead?

    50. Re:Probably not. by Anonymous+Brave+Guy · · Score: 1

      Because even non-degree programmers aren't stupid, and this kind of general knowledge about their profession is acquired as they go.

      Is it? I've worked for plenty of employers who said they offered things like on-the-job training, but in practice that often meant they had a book shelf and sometimes a senior developer would give a 45 minute talk. Compared to attending multiple lectures every day for a few years... well, it's hardly a comparison at all, it's a completely different depth of study.

      As I wrote elsewhere, I firmly believe that studying for a degree is not the only way to acquire this level of theoretical knowledge, but I find the idea that any developer would just pick up the same material as a normal result of day-to-day work in a typical programming job implausible. It's not about being stupid, it's about being ignorant (in the literal sense, not the derogatory one), and it takes a lot more than reading a few chapters in a book from the office library and a couple of blog posts to meet the standard.

      The number of times you are dealing with stuff that was learned in a CS degree is minimal.

      Perhaps, if all you do is join-the-dots programming for CRUD front-ends. Personally, my clients pay me to create new data structures and algorithms that solve problems no-one ever solved before. I can't just write result=solve_my_problem(), because I'm the guy they hire to create that API.

      Remember all that theory about space and time complexity, and which guarantees you can and can't achieve in distributed systems, and formally proving algorithms correct, and how compilers and virtual machines and run-time environments work? I use this stuff all the time.

      Every programmer has a bunch of stuff that they already know and a bunch of stuff that is new to them and they need to research before doing a task. The proportion is mostly dictated by amount of experience, not whether they have CS degrees or not.

      Yes it is, but the quality of that experience -- what you know and how you think as a result -- matters. As has been noted many times in this industry, there is a difference between someone who has had ten years of experience and someone who has had the same year of experience ten times.

      A good CS degree course is one way to gain a lot of useful experience in a relatively short time. There are others, but a job where you spend all day writing glue code that joins up someone else's library and framework APIs isn't one of them.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    51. Re:Probably not. by Anonymous Coward · · Score: 0

      A counter point: I never went to school for programming. I went for computer animation, which dabbled for about a week in Python scripting, at which point I really didn't care about anything involving code. I picked up what I know on my own, both practical and theory. Granted I spend a lot of time educating myself and reading the books every programmer should read, but I noticed as I built projects and designed interfaces, that the theory almost fell into place if you wanted to maximize efficiency. In other words, you'll know if something is not optimized just by the way it looks and runs. Maybe not everyone can see that, thus I rose to a senior developer and then lead architect in a matter of years rather than decades like most I know.

      I do know from second hand experience though, that a CS major does not necessarily understand the theory all the time. I've interviewed many people with degrees who just get a glazed look over their eyes when I mentioned inheritance, and if you don't at least know the practical part, then I'm afraid I can't hire you. I blame this primarily on the reports mentioning how CS jobs are in high demand, so kids go for that thinking there will be a job with good money in it. They never factor into the equation whether they actually care to understand what they're doing or not; they just want a piece of paper saying they can do something. We all know that does not cut it in the field.

    52. Re:Probably not. by Anonymous Coward · · Score: 0

      If you want to learn job skills, go to Vo.Tech. College is meant to teach folks how to think.

    53. Re:Probably not. by Anonymous Coward · · Score: 0

      I did not take a programming class per-say.

      Looks like you skipped french too.

    54. Re:Probably not. by DanielOom · · Score: 1

      Practical programming skills have limited value and obsolesce quickly.

    55. Re:Probably not. by Anonymous Coward · · Score: 0

      I think it depends on who is reading your resume. Generaly people wiith college degrees don't like it when those without can do it better. My advise learn to code and get the degree when you have time. Don't forget to regurgitate what the college proffesor wants to hear and do so by not using what you already know, because that is not what they are looking for. There are lot of engineers that graduate that don't a what a open end wrench is for or even looks like in your tool box.

    56. Re:Probably not. by whereiswaldo · · Score: 1

      In the cases where coding experience alone makes someone better than someone who has education and coding experience, that would lead me to suspect a high level of innate coding talent in the person without formal education in the field. Certainly could happen. If you could take the same person and measure their talent with and without formal education, what would you expect to find?

    57. Re:Probably not. by Anonymous Coward · · Score: 0

      THANK YOU!1 I was wondering when someone would point out that Education != Training.

    58. Re:Probably not. by DocHoncho · · Score: 1

      Pointless replying to an AC, I know, but I think you mean Latin there, smart guy.

      --
      Celebrity worship is a poor substitute for Deity worship and costs more to boot.
    59. Re:Probably not. by qmuser · · Score: 1

      I was a self taught programmer before I got a computer science degree. As a self taught programmer, I could always get the program to work, but my code was sloppy, inefficient, unprofessional, and badly written. With the computer science degree, I write far better code. If you are going to hire people without CS degrees, have someone with the proper background write a good set of style guidelines, do the code architecture, and conduct code reviews. Also encourage your non-degreed programmers to read "Code Complete", "Design Patterns", and a book on data structures and algorithms.

    60. Re:Probably not. by MooseMiester · · Score: 1

      In 1979 got a degree in Economics with a minor in Psychology and Philosophy. Took "Introduction to Data Processing" - required for all business majors - got a C.

      First job out of college? A programmer. Have spent all those years since then in I.T.. Now I hire people... and I have found that people with a CS degree believe it's all that and then some, but some of the best developers working for me have degrees in all kinds of crazy things.

      It's very simple, If you have "the spark" - also known a "the desire" or "the drive" or "coding is not work" mindset... you'll get a job as a programmer, one way or the other, and you'll be damn good at it. The biggest thing missing from graduates in my experience is that they have some really crazy ideas about how the real world works. But this may just be that I am getting old. I'll tell you this... the best developers don't hit the door at 04:59:59 - they are oblivious to "The clock", don't feel like "The Company Owes Me" and you can see the passion in what they do, both by reading the code or talking to them.

      If it's all about the money... please don't become a developer...

      --
      Murphy was an optimist
    61. Re:Probably not. by qpqp · · Score: 1
      The post was not about 'endowment' measurements, and my comment about buying a plane was to make it clear that it is quite important to know about the fundamental theory. It just makes it possible to better use your talents.
      We're in the same age range, and I've (unfortunately) not met many people in my line of work that had a really broad and deep understanding of the concepts that make up the work that feeds them, whether autodidacts or graduates. From the ones I did, all had a university degree in CS (or a related area).
      I do my best to teach the people around me and learn whenever I can, mostly it's both at the same time, unless I'm in crunch-mode, and just need to get something done.

      It is highly likely that I possess deeper knowledge

      This is where you're crossing the line as there's no way you can safely assume that.

      my advice to you would be to spend a bit of time in introspection and in furtherance of your interpersonal skills.

      Thanks for the advice. I don't believe I have be politically correct in a forum of (supposedly) my peers and just say straight out what I (and many others) believe is right. If you want to talk about politics, and "communication skills" I suggest you go to your local university and enroll in a couple of related courses. It's much more satisfying talking about a topic with people in a context, where they're set to do so.
      My "arrogance" as you call it, is just years and years of experience. As others have pointed out, it is not necessary to have a degree to be able to perform a function, but for someone who enjoys learning, there's probably no better place than there and the more you know and understand, the better you are. Yes, even you.

    62. Re:Probably not. by qpqp · · Score: 1

      unless you've had more than 3 decades of being a programmer

      So you're one of the people that think with age always comes wisdom, eh?

    63. Re:Probably not. by Anonymous Coward · · Score: 0

      Per se, not 'per-say'. http://en.wiktionary.org/wiki/...

    64. Re:Probably not. by BasilBrush · · Score: 1

      I'm one of those people who know that in youth people invariably have a false confidence in their ability. When they get older they begin to realise how much they didn't know back then. That's one of the key elements of wisdom. But it's no point telling younger people that. They have to experience it for themselves.

    65. Re:Probably not. by BasilBrush · · Score: 1

      I actually don't disagree with the balanced view you've written. In part, as is my inclination, I'm being the devil's advocate and contrarian.

      Time complexity was my premier example of something you may miss out on if you don't do a CS degree. And I also pointed out that you only needed to know the details of sorting when you are implementing rather than using APIs. So we agree on a lot.

      It sounds like a you're doing a reasonable amount of actual computer science along with your programming, and of course the degree helped setting the fundamentals for that.

      But the vast majority of programmers, with or without degrees aren't doing that. They are writing applications that use libraries for most of the difficult stuff. And that's true right across pay scales. That most certainly doesn't mean they are not learning on the job as they go. They just are learning stuff at a higher abstraction than you.

    66. Re:Probably not. by qpqp · · Score: 1

      Yeah, in contrast, there's a point in giving advice such as "a CS degree is not worth the effort." A grandmaster of wisdom you are, gramps.
      Should I get off your lawn now, or would you like me to dig you a deeper hole?

    67. Re:Probably not. by Anonymous Coward · · Score: 0

      How Much Is #MyFreeIncomeSpot Worth?
      http://www.myfreeincomespot.com/

    68. Re:Probably not. by antsbull · · Score: 0

      What if the main VM already has optimised sorting algorithms like most do? Then you would have to come up with another strawman argument.

      If you aren't happy with the performance of the existing sorting library functions, then that is when you should investigate alternatives or writing your own.

    69. Re:Probably not. by BasilBrush · · Score: 1

      "a CS degree is not worth the effort."

      Who are you quoting there sonny? You do realise the purpose of quote marks, no? That's one thing you should've learned in first year of college if not before.

      Look I can see you're pissed, because you feel your achievement of getting a degree being undermined. But higher education is for you as a person. The fact that it doesn't make you better than people with experience shouldn't upset you, as long as you feel it was worth it for you.

      A degree is certainly good for getting your first job. But after that it becomes less and less useful for work, as experience gives you the real knowledge you use day to day.

    70. Re:Probably not. by qpqp · · Score: 1

      You do realise the purpose of quote marks, no?

      You do realize, that not everything in quotation marks has to be a quote, regardless of your attempted "assault on my credibility?" (See what I did there?)

      Look I can see you're pissed

      I'm not pissed, just providing a counter-weight to your purely anecdotal "wisdom" you're "providing" here. (Oh, he did it again.)

      The fact that it doesn't make you better than people with experience shouldn't upset you

      I'm totally chill, dude, so chill in fact that you may call me Mr. Mellow, if "chill" is too nu-school for you.
      I'll always have an edge over most other self-taught people (except for those, who make a point of studying actual theory), not only due to the fact that I've been constantly acquiring real-world experience over the past 15+ years, sophisticated, (some - very) well-paying and quite demanding projects in terms of knowledge and understanding requirements, but also, because the theoretical foundation (which doesn't change a lot, if you know) will always (on average) allow me to understand concepts better than someone, who only focused on practical applications.

      A degree is certainly good for getting your first job. But after that it becomes less and less useful for work, as experience gives you the real knowledge you use day to day.

      You must have had a shitty experience in higher education, because what I've learned in university and now teach to others helps me every time I work on anything and is a formidable foundation on which to further my studies and expand knowledge.
      As you might have guessed, I went (much) further than just getting a bachelor.

    71. Re:Probably not. by BasilBrush · · Score: 1

      You do realize, that not everything in quotation marks has to be a quote, regardless of your attempted "assault on my credibility?" (See what I did there?)

      I see what you did there was wrong. There are other uses of quote marks, for example in code, or to indicated invented speech in works of fiction. But in prose, you are claiming someone said something. And in both cases you've done it no one did. If you've see someone else do what you're doing then they are wrong too.

      Enough.

    72. Re:Probably not. by qpqp · · Score: 1

      Regardless of this digression, that's the gist of what you said, so beat it.

  2. Is Coding Computer Science? Of Course! by machineghost · · Score: 1

    Let me rephrase that question: "does knowing how to do a job outweigh knowing abstract theory about that job?" I think the answer there is pretty obvious: *of course* coders who actually know what they are doing are more valuable to an employer than some kid with a CS degree and no idea how to actually do a programmer's job.

    1. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 3, Insightful

      Ever hear of the phrase you don't know what you don't know? What I have seen are people that are self taught and be a pretty good but they have a very limited domain of knowledge, specifically limited to the things they studied. Usually they have huge gaps in information from algorithms, discrete mathematics, and other things that are very valuable as knowledge that can be applied practically to their coding directly or indirectly. The computer science or computer engineering degree purposely teaches a wide range of topics so that you have a large tool set to work with depending upon the problem domain. Self-taught people almost always lack that knowledge. There are extremely rare cases, the exceptions, people have been self taught but they basically study all of the topics that you were studying computer science overtime. Those people are definitely be exceptions and I have met one or two of them in my 15 years as a software engineer. I think people are just fooling themselves saying they don't need a computer science degree it's cheaper and it's way easier basically a limit to how fast they can get a job and that is it and is there a way to grow sometimes but you'll always see people with degrees make a lot more money on average and have a lot more career opportunities. Besides most companies HR require some sort of degree and at most A computer science degree to be hired as a software engineer. Moreover, to be promoted into management you definitely need some sort of for your degree and often a Masters in business or something else. So once you hit that limit then you basically got to start over, get your four year degree and then get a masters to advance and you're doing this when you're old and have children and your basically doing in the toughest way possible when you could've gotten it out of the way when you're young.

      On a selfish note, I will never, ever have to compete for a job with someone that does not have a bachelors degree. So this is good for me and it's not good for our country but hey you're going to do what you want to do dummy.

    2. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

      > I will never, ever have to compete for a job with someone that does not have a bachelors degree

      Ah? Why?

  3. No by Drethon · · Score: 4, Insightful

    There are too many things that an employer is looking for from a degree that has nothing to do with coding. Ability to follow through with a royally painful task, well rounded as in able to communicate clearly and plenty of other things.

    Do colleges actually teach useful skills? I got the very basics out of my college and the rest I learned on an internship and on the job. I do think colleges could be improved but I'm not smart enough to say how.

    1. Re:No by Richy_T · · Score: 2

      Colleges are a four year theme park for most. They could be improved by jettisoning about 80-85% of the student body. That doesn't pay for fancy buildings and grand soirees though.

    2. Re:No by Drethon · · Score: 2

      Yeah, do a 5 year engineering/CS course in 4 years and there is no free ride in any of it.

    3. Re:No by GameboyRMH · · Score: 1

      Don't forget being saddled with enough debt that they'll think very carefully about any risky job changes.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    4. Re:No by Anonymous Coward · · Score: 0

      There are too many things that an employer is looking for from a degree that has nothing to do with coding. Ability to follow through with a royally painful task, well rounded as in able to communicate clearly and plenty of other things.

      Do colleges actually teach useful skills? I got the very basics out of my college and the rest I learned on an internship and on the job. I do think colleges could be improved but I'm not smart enough to say how.

      For this particular degree, it is a complete waste of time. Colleges know this. Employers know this. Colleges won't change because there is far too much profit to be made. Employers won't change because they feel the "well-rounded" nature of a college degree should help everyone in some magical way that's worth $80,000, mainly because they had to "go through it".

      No this shit doesn't make sense. It's not supposed to. It's supposed to make money. And it does.

    5. Re:No by Drethon · · Score: 1

      Start at a community college and transfer to a low price state college. At the college I went to a one year internship that was part of the degree payed for all four years (though not books or any living expenses). I will say after that was done, 50 hours a week seemed like a vacation.

    6. Re:No by Drethon · · Score: 1

      I found it worthwhile. Statistics, logical math, differential equations, basics of Java, Network Communications, Operating Systems, Microcontroller and FPGA design, assembly, and I can't remember the other courses I use regularly. Of course I didn't pay nearly $80k for the four years.

    7. Re:No by Anonymous Coward · · Score: 0

      Bad idea if you're going into an engineering college where you'll have to take a full load no matter how many credits transfer.

    8. Re:No by japhering · · Score: 1

      Probably the biggest reason behind all those thousands (if not milions) of failed projects in the industry is coderz who learned how to code without learning why to code.
      A degree in computer science doesn't teach you how to code but how to think.

      As well as constant scope creep and timeline reduction.

    9. Re: No by pele · · Score: 1

      Again, introduced by coderz and managerz who learned how to manage projects and not why. It all boils down to the same thing really...

    10. Re:No by Savage-Rabbit · · Score: 1

      There are too many things that an employer is looking for from a degree that has nothing to do with coding. Ability to follow through with a royally painful task, well rounded as in able to communicate clearly and plenty of other things.

      Do colleges actually teach useful skills? I got the very basics out of my college and the rest I learned on an internship and on the job. I do think colleges could be improved but I'm not smart enough to say how.

      That is true, but I take issue with the 'basic skills' thing. You don't just learn basic skills when completing a CS degree you learn to analyze code and the way it works and that set of skills is often mostly missing with many of the self taught coders. For example when you hire a guy with a CS degree you get somebody who is more likely to write, say, an O(n log n) algorithm when a guy who just taught himself to code might come up with an O(n^2) or O(n^3) algorithm. In fact you'd probably struggle to find a self taught coder who even knows what Big Oh notation is. Coding is not just about writing clean code, it's about having been taught to understand mathematically what code does and more importantly what it will do even before you write it. You are also fairly certain to get a guy who recognizes the benefits of using a parser generator like Yacc when parsing complex files rather than writing a more naive parser that will quickly run into trouble as the complexity of the text increases. Most self taught coders that I have run into don't even have the knowledge to understand what tools like Yacc & Lex (and others like it) do to in order to be able to use them. Of course there are no guarantees that a CS guy didn't have a rich daddy who bought him a degree or that your applicant didn't just scratch his way through school just barely passing all of his exams between keg-parties and Chlamydia shots and retained little of the knowledge; just like some self taught coders are really smart and have skills way above the average self taught guy. However, as long as he came from a proper school and has proper grades, with a CS graduate you will at least get somebody who has had all of this stuff pounded into his brain so the odds of getting a guy who will write decent code are somewhat greater.

      --
      Only to idiots, are orders laws.
      -- Henning von Tresckow
    11. Re:No by rwa2 · · Score: 1

      Yeah, one of my roommates did something like this at Cornell U... took all of the core courses while enrolled in the Math & Applied Physics program (in the land-grant Arts & Sciences College), and then transferred to CS in the Engineering College which had much higher tuition. I think this kind of scheme could work well enough even at most other "high end" universities. Plus, the guy ended up with almost twice as many friends/connections (compared to most people... probably 100x compared to me :P )

    12. Re:No by Darinbob · · Score: 2

      Ability to put up with classes on theory is a big plus. Who wants to hire someone who's attitude is "this is boring and I'll never use it"?

    13. Re:No by Anonymous Coward · · Score: 0

      As an engineering major, college seemed like it was a country club to the rest of the student body.

    14. Re:No by Anonymous Coward · · Score: 0

      I have met experienced developers who believed that deadlock resolution was an unsolvable problem. The only thing you could do was restart the system when it deadlocks. In computer science courses, you learn the various solutions that have been around for decades.

      So, there is value in learning the theoretical side of programming as well as the practical.

    15. Re:No by anonymous_wombat · · Score: 1
      I got my masters degree back in the olden days, 1988. I didn't have any practical experience, and it took me 18 months and dozens of job interviews to get my first job.

      In my experience, companies want BOTH a degree and experience if they can get it.

      The main things that I acquired from school 25 years ago that I still use are an understanding of runtime complexity, and encapsulation.

      There was lots of coding in the undergrad classes, but almost none at the graduate level. Almost all the useful stuff I learned was in the undergraduate classes.

    16. Re:No by Bite+The+Pillow · · Score: 1

      "An employer" is vague. as is your generalization. Some employers need a warm body to fill a position, and need that body to have the necessary pedigree to justify spending money. Other employers need someone who is competent and worth their salary.

      You will find these graduated, for example having a Programmer I through Programmer IV job title.

      Would you hire someone with a CS degree just out of university for the Programmer IV position? If you said anything other than "Yes, instantaneously" then you undercut your own point.

      And if you're not smart enough to say how colleges could be improved, and you only got the basics and learned the rest while getting paid, your argument just shite its pants and you'll find it in the toilets wishing it could be home right now.

      I spent time in fourth level undergraduate classes with some of the most idiotic classmates you can imagine. Some of them graduated.

      If nothing else, the way colleges could be improved is to offer a beginner's degree and an advanced degree. Not "Master" advanced, rather just a way to distinguish "came to class and didn't fail most tests" with "was an avid student and learned a crap ton."

      That differentiates the barely educated from the truly educated. By the end of second year, the university can have a private meeting with each student and say you are going into basic or advanced track, and here's why. This will never happen, but I can at least list a way to improve on the current system.

    17. Re:No by the+phantom · · Score: 1

      If nothing else, the way colleges could be improved is to offer a beginner's degree and an advanced degree. Not "Master" advanced, rather just a way to distinguish "came to class and didn't fail most tests" with "was an avid student and learned a crap ton."

      Wouldn't it be great if there were some kind of scale to indicate the quality of the work that a student does? I'm just spitballing here, but I'm thinking that a four point scale might make sense. Your "avid student [who] learned a crap ton" could get four points for their efforts, while a student who "came to class and didn't fail most tests" might only get two points. After a student graduates, all of the scores that they get in their classes could be averaged together in some manner, which might give potential employers an at-a-glance summary of the student's level of performance in college, and a record of all of the scores could be transcribed into a document of some kind that could be given to potential employers at their request. That really would be wonderful!

    18. Re:No by Drethon · · Score: 1

      Well it was a quickly typed and not exceptionally carefully worded post, don't usually have the time for those. By basic skills I'm talking about how to make java compile and what is object oriented code. These things I can fairly easily translate into other languages and then learn the more advanced stuff with real experience.

  4. It's widget making by Anonymous Coward · · Score: 0

    It's all about what you know, not where you learned it. It's tricky to get started fresh without references in any career.

    1. Re:It's widget making by Richy_T · · Score: 1

      For some. The only lead I ever got from my time as a student ended up very weird and cost some of the others who got involved with it a decent amount of cash.

  5. Re:Is Coding Computer Science? Of Course! by machineghost · · Score: 1

    Shoot Slashdot ate the greater than sign in my title. It was supposed to be "Is Coding > Computer Science? Of Course!"

  6. how vrs why by Anonymous Coward · · Score: 0

    I think the debate then needs to focus on how vrs why. Theory pokes at thw why. Learning to program is learning how. Can you get a job knowing 'how' and not why? YES. I have a CS degree. The why is important to me. Its helped me grow and move beyond. And I think it makes me more flexible as I can understand things better than if I just knew how. This may not be the case for all.

    From an HR persective, I would see the degree as 3rd party approval of what you've been exposed to. Its a benchmark of sorts. Coming with experience and self-taught programming requires you have a repuation that you can stand on build by yourself.

  7. False premise by sinij · · Score: 0, Insightful

    >>A college degree may not the best route when it comes to jobs in coding.

    If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics. Without a degree you will find nearly impossible to get past HR gatekeepers. Nobody actually cares where the degree is from, just that you have one.

    Sure, you can beat the odds and be The Exception, but life is hard enough already that it is unwise to invite additional difficulties.

    1. Re:False premise by glennrrr · · Score: 1

      So you are disagreeing with the facts of the summary which say that half of coders don't have degrees?

    2. Re:False premise by machineghost · · Score: 1

      >>A college degree may not the best route when it comes to jobs in coding.

      If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics. Without a degree you will find nearly impossible to get past HR gatekeepers. Nobody actually cares where the degree is from, just that you have one.

      Sure, you can beat the odds and be The Exception, but life is hard enough already that it is unwise to invite additional difficulties.

      Maybe you missed this part of the heading (not even TFA):
      "Nearly half of the software developers in the United States do not have a college degree."

      That isn't just saying not a "computer science, engineering, math, or physics" degree, it's saying any college degree at all. So, presumably a lot more have college degrees with other majors.

      So how exactly is almost half plus every programmer with a non-STEM degree "The Exception"? It seems to me the STEM majors are the exception.

    3. Re:False premise by sinij · · Score: 2

      Absolutely. For any reasonable definition of 'coder' that approximates definition of 'employed IT professional' that statement is false.

    4. Re:False premise by sinij · · Score: 4, Informative

      This is simply not the case today, especially as applied to 20-somthing trying to get a job. If you are still skeptical, I invite you to go to talk to HR and ask them what it would take to get entry-level job without a degree.

    5. Re:False premise by Anonymous Coward · · Score: 0

      There are no cites for the "almost half" . For all we know, some kid w/ no degree made it up.

    6. Re:False premise by Anonymous Coward · · Score: 1

      It depends on the type of job you're going for - at the low pay end of the sector there are hundreds of developers writing small scripts, websites etc. They don't need a degree. At the highly-paid end of the sector where large complex systems are written (finance,telecoms,ibm,google) you're going to require a degree. Anyone can learn how to code. Coding well requires some abstract knowledge of how things work. Coding complex systems requires exposure to various concepts such as stacks, queues, IPC, distributed systems that computer science degrees give you an overview of. Degrees also introduce you to many useful algorithms, which can change how you approach tasks and teach you methods of how to design them. Try getting a self-taught programmer to deal with graph theory or convert a recursive algorithm to an iterative one.

    7. Re:False premise by Drethon · · Score: 1

      Where I work there was one person hired without a college degree and the only way we were able to have him work for one of our major customers is because he was going to school while working. May be slightly different working in the avionics industry though (a lot of things are in many painful ways).

    8. Re:False premise by machineghost · · Score: 2

      Since I'm directly involved in the hiring for my company I can tell you for a fact that we are desperate for qualified candidates, and their college status is like item #25 on the list of things we care about. Given the incredibly competative job market we have, the idea that we (or any Silicon Valley company) would turn down an otherwise-qualified applicant simply because they lack a diploma is laughable.

      Now, that being said, we have multiple PhDs on staff, so it's not like we're anti-education. I'm just saying, when you can't hire enough qualified people, the last thing you want to do is throw up hiring roadblocks that don't server any real purpose.

    9. Re: False premise by Anonymous Coward · · Score: 0

      That's even better for stems majors. They will always get hired first before some flunky 'self taught' looser.

    10. Re:False premise by jmcvetta · · Score: 1

      Without a degree you will find nearly impossible to get past HR gatekeepers.

      Depends where you are. In my experience, what you say is very true on the East Coast. However in California it's not true at all, and I think out here not having a CS degree might even be a slight advantage.

    11. Re:False premise by Anonymous Coward · · Score: 0

      If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics. Without a degree you will find nearly impossible to get past HR gatekeepers.

      That is absolutely false. I dropped out of a Computer and Information Technology degree program 23 years ago, having a couple years of paid experience already before college, and have been continuously employed as a software developer with several great companies ever since. A few might screen for a 4 year degree, but it's probably nowhere you'd want to work. For the most part no one cares. It's hard enough to find someone really good, the last thing you want to do is skip over someone because of whether or not he has a degree. We don't look at it at all when we hire where I work now. It is just not relevant.

    12. Re:False premise by sinij · · Score: 1

      I wouldn't turn down qualified applicant ether, but the simple fact that HR departments exist make this unrealistic goal for any large organization. The resume of such hypothetical person will never land on our desks. Moment you grow past 20ish people shop and have to have procedures, policies, equal opportunity and all that other annoying but often necessary bureaucracy you lose your "just hire the gal/guy" ability.

    13. Re:False premise by Anonymous Coward · · Score: 1

      That's really what I look for too and value in a degree -- it shows that they have at least some history being committed to a large effort, seeing things through, learning new things, having communication skills, knowing how to write technical reports, etc.

      Sadly, most of those seem to be gone from most modern CS curriculum. It seems that with the influx of non-native English speakers in technical fields, that a lot of enforcement of coherent, correct English in papers and the use of brief, concise project/progress reporting has gone the way of the dodo. They get taught none of that now, and here I was thinking that being able to express yourself clearly, concisely and in an educated manner was a mark of higher learning. Now it's getting hard to find college students that have a decent idea of how to express their thoughts well in code or in technical papers. Makes putting a good team together that can interface well with the rest of an organization kind of tough.

    14. Re:False premise by Vellmont · · Score: 1


        If you are still skeptical, I invite you to go to talk to HR and ask them what it would take to get entry-level job without a degree.

      Not all companies have HR gatekeepers. HR is their to filter out job requirements. If the job requirements say "Or equivelent experience", that's your ticket. If there's no HR department (the case with many smaller companies), then that barrier is gone.

      Bascially, I'm calling bullshit here. I've known many people, including myself with very successful careers in IT without college degrees. Please stop applying your experience to everyone.

      --
      AccountKiller
    15. Re:False premise by Anonymous Coward · · Score: 0

      Mod parent up. It's true.

      I have a degree in Biology. I write C++ for a living. The degree in a scientific field from a respected school says that I am scientifically literate and know how to learn. These qualities are important to employers in technology fields who pay people essentially to sit in a chair and think.

      That being said, a lot of coding jobs today are at startup companies where naive enthusiasm and passion for hipster-tier webcrap technologies are valued over experience or a degree.

    16. Re:False premise by machineghost · · Score: 1

      Well, to be fair my current company is a "20ish people shop" :-) But that being said, my previous company was 100+ people, had an HR department, and was just as in need of qualified programmers (and just as willing to hire candidates without degrees).

      I think you've had experiences with one specific type of company, but you shouldn't over-generalize your experience to assume the whole industry is identical.

      Also, keep in mind that for many Silicon Valley companies these days, HR isn't the gateway, the on-site recruiter is. And that guy measures his success by how many qualified people he gets hired, so you can bet that (unless his employer tells him otherwise) he's not going to turn down opportunities simply because they lack a degree.

    17. Re:False premise by sinij · · Score: 0

      Sorry, degree has nothing to do with competence. Self-taught programmer competence distribution would be representative of general programmer distribution, with individuals falling above and below average competence.

      The key reason you need degree is to get past the gatekeepers to get a job. We could argue about value and return on investment of getting a degree, but the article clearly focuses on getting a job.

      it is what it is.

    18. Re:False premise by pr0fessor · · Score: 1

      That's not really true, my studies were applied arts and the company I work for tracked me down.

    19. Re:False premise by sinij · · Score: 1

      I dislike dealing with HR most of the time, except when "that unqualified disabled visible minority candidate is now suing us for discrimination" or "Joe from IT was seen doing lines off the servers, and by the way servers he suppose to be watching halted and caught fire" situations turn up. Then I am thankful they exist.

    20. Re:False premise by butchersong · · Score: 1

      Nah. You just have to get your foot in the door with an entry level position of some sort then prove yourself. Build a resume for a year or two. At least.. that is all I did.

    21. Re:False premise by geekmux · · Score: 1

      ...If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics. Without a degree you will find nearly impossible to get past HR gatekeepers. Nobody actually cares where the degree is from, just that you have one..

      Uh, you do realize that your latter statement is throwing fresh bullshit all over your former statement, right?

      Either HR "gatekeepers" give a shit what kind of degree you have, or they don't.

    22. Re:False premise by Minwee · · Score: 3, Insightful

      Absolutely. For any reasonable definition of 'coder' that approximates definition of 'employed IT professional' that statement is false.

      Clearly we live in different universes.

      In yours, it seems that "employed" means "employed by a large corporation whose organizational chart can only be displayed on several bedsheets stitched together", while in mine it means "hired or being engaged to perform work for pay".

      My universe is full of people who are employed as IT professionals without having science or engineering degrees. Most of them landed their current positions on the strength of previous work in the field, and are just as capable as their degree-bearing and ring-wearing coworkers. As long as you can do your job, nobody cares what kind of expensive picture frames you hang on your wall.

    23. Re:False premise by Drethon · · Score: 1

      Yes most of the self taught programmers I've known are very competent. Most of them are not as disciplined and it requires a fair amount of discipline to put up with a painful degree for four years. Admittedly I've also known some very disciplined self taught programmers and very undisciplined college graduates.

    24. Re:False premise by Anonymous Coward · · Score: 0

      You are out of your mind. I've been a coder and engineer at some of the biggest enterprises in the world with no degree. You just need good skills. Only at Goldman Sacs did I get called out on the degree and I still got hired there.

      Degrees in IT and computer programming are superfluous.

    25. Re:False premise by pspahn · · Score: 1

      The degree in a scientific field from a respected school says that I am scientifically literate and know how to learn.

      As if there aren't a dozen or more other ways to display these skills to an employer? That you don't realize this displays to me that your college education left you closed minded and not open to new ideas. Your second comment about naive enthusiasm and hipster-tier webcrap (whatever that even means, I hear, "it's not C++ it's crap!") simply reinforces that notion.

      What if you were to find that many of these folks didn't have a degree? Based on their real-world reputation (not some imaginary reputation you get for going to a school), would you say they are scientifically literate and they know how to learn (I'd bet they know how to teach also)?

      --
      Someone flopped a steamer in the gene pool.
    26. Re:False premise by perbu · · Score: 1

      If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics. Without a degree you will find nearly impossible to get past HR gatekeepers.

      This is simply not true. It might be true in parts of the world and I suspect that the person who wrote this lives in the US, where HR seems to have a lot more power than in the rest of the world.

      Being able to showcase actual work and relevant experience outweigh a college education any day of the week. At least in small and medium sized businesses most of Europe. IBM might not accept you without a degree, but who would want to work for them?

    27. Re:False premise by Anonymous Coward · · Score: 0

      So you are disagreeing with the facts of the summary which say that half of coders don't have degrees?

      What he is saying is that if the degreeless coders were trying to get a job in today's job market they would be at a significant disadvantage compared to those with degrees. It's one thing to BE in a job without a degree, it's quite another to GET a job without a degree.

    28. Re:False premise by aristotle-dude · · Score: 1

      That's really what I look for too and value in a degree -- it shows that they have at least some history being committed to a large effort, seeing things through, learning new things, having communication skills, knowing how to write technical reports, etc.

      Everything you wrote above can be applied to someone who has been with an employer for a number of years and been committed to a large project. Changes in teams, technologies and positions can demonstrate the ability to see things through, a willingness to learn new things, having communication skills and knowing how to write technical reports.

      --
      Jesus was a compassionate social conservative who called individuals to sin no more.
    29. Re:False premise by wiredlogic · · Score: 1

      If you haven't applied searched for a job recently you have no idea how bad it is with the idiot recruiters and HR staff rejecting your application because you only match 90% of their keywords even with a degree. You are treated like a static entity with no ability to learn new skills on the job. To them, no degree is an instant trip to the reject bin.

      --
      I am becoming gerund, destroyer of verbs.
    30. Re:False premise by Anonymous Coward · · Score: 0

      Shit, don't tell my boss that. I have a BS in Biotechnology, and am quite gainfully employed in the technology field.

      If you tell him I'm not worth hiring because I have no degree in cs, engineering, math, or physics, I'll be ruined!

      Also, don't mention that the guy next to me worked for 10 years as an automotive tech before his love of computers brought him into the industry, and the film school guy across the hall who realized that film school wouldn't probably pay his bills, so he better turn those computer skills into a paying job. Or the mother of 3 kids next to him who has an English degree from her undergrad days.

    31. Re:False premise by mark_lybarger · · Score: 1

      that's a completely made up statement. i have worked in lots of IT shops and the only place to find folks w/o a college degree is in the help desk/desktop support. i've came across but a handful of developers who didn't have a degree.

      i've been involved in the hiring process for my companies, and the candidate's college status is a major part of the package. we expect someone to come in with "bright" eyes and to know deeply what they're talking about, not someone who can bs here and there. college only gives part of that. in addition, they need to be a go getter. the should know about code management processes, and about enterprise architectures, n-tier, etc. development patterns, etc.

      Maybe you missed this part of the heading (not even TFA):
      "Nearly half of the software developers in the United States do not have a college degree."

      That isn't just saying not a "computer science, engineering, math, or physics" degree, it's saying any college degree at all. So, presumably a lot more have college degrees with other majors.

      So how exactly is almost half plus every programmer with a non-STEM degree "The Exception"? It seems to me the STEM majors are the exception.

    32. Re:False premise by plcurechax · · Score: 1

      Maybe you missed this part of the heading (not even TFA):
      "Nearly half of the software developers in the United States do not have a college degree."

      Did you not notice the lack of citation, age, or accuracy of this "factoid?" It's worth less than the electrons used to create it, with no creditability to be seen.

      "Nearly third-quarters of software developers smell funny." Hey look, I created a "factoid" too. Just as meaningful as the one in the article and summary, and probably slightly more reliable and accurate.

    33. Re:False premise by jedidiah · · Score: 1

      Lies, damned lies, and rhetoric...

      See there. That's something from my worthless University degree adapted and mangled to fit the situation.

      "Having no degree" is a bit different from "having no CS degree".

      Getting past the gatekeepers is the problem. You can have a degree in theater or math and still get a job in computing. The bar is having SOME kind of degree. This is not a problem just in computing. It's a general corporate affliction.

      In some jobs, other fields it seems like an even more gratuitous requirements.

      The guys I've known with no college education stand out because it's so unusual for them to get past the gatekeepers.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    34. Re:False premise by sinij · · Score: 2

      I have relatives, retired in their 50s after a career in early days of programming (60s-70s era). Almost nobody had a degree back then.

      Today? Things changed. If you are giving advice to young people on how to get a coding job, saying "don't bother with a degree" would set them up for a life of hard knocks. Would they still make it? Perhaps, but why make things harder on yourself?

    35. Re:False premise by alvieboy · · Score: 1

      I don't have any degree. Plus, I doubt if any one with a degree and even 5y experience can perform my job as I do.

      You are mistaken, heavily mistaken.

      Additionally, if your HR team, for an IT job, assume they actually know how to evaluate their candidates, get a new HR team. Technical evaluation is for technical people.

      Signed: Mr. Exception.

    36. Re:False premise by Darinbob · · Score: 1

      And if you want to get past the junior coding monkey job and get a better job then all that theory and science is not just a means to get past HR but an actual part of the job itself.

    37. Re:False premise by Darinbob · · Score: 2

      Most coders don't actually program. They just write some lines of code that connect libraries together. They wouldn't know where to even begin if asked to write the libraries themselves, or write the networking protocols, or the operating system, or the compilers, or the GUI frameworks, or the browser, or even a simple scripting language.

      I see some of these people in interviews, and they say "I do middleware". I ask them how the product they work on actually works and they honestly don't have any idea. They just take data from one layer and pass it to the next layer. They can't even start to describe how they'd be useful to our team since they can't even say how they were useful to their old team.

    38. Re:False premise by Darinbob · · Score: 1

      Getting past gate keepers is one thing you get from a degree. But it is not the only thing. Anyone who went far while being self taught probably could have gone even further while getting the degree. Even people like Zuckerberg have to settle for the "dropout who got lucky" title instead of "boy genius".

      The main problem with most (not all) self taught people is that they only teach themselves the interesting stuff. There is no incentive to hunker down and learn the boring stuff, the theory, the formulas, doing all the math problems at the end of each chapter, or the stuff that they don't think matters. Further, the self taught person often misses out on the advice and guidance from teachers and mentors, mistakes and bad habits aren't corrected.

      Now college is not necessarily going to fix all that. But someone with the motivation to be a great self taught person is always going to be better with school and being self taught. We really don't have a better system than colleges today, because we can't afford one-on-one tutoring for everyone. Yes, college has its problems but lack of college is an even bigger problem. The key thing some people get from college (those who apply themselves that is) is the ability to learn new things and think abstractly, as well as to have a broad base of education instead of just a narrow short term focus.

      "Getting a job" is an extremely low goal to achieve. I know many parents think about this, they worry and fret over what the first job for junior will be. However it's more important I think to worry about what job junior will be in at age 50. Do you want a 50 year old doing a job they hate, or a 50 year old who is achieving some dreams, getting promoted, doing the interesting stuff, etc?

    39. Re:False premise by Anonymous Coward · · Score: 0

      Self taught programmers may be competent - and they may not. Good at user interfaces and interfacing to databases - but fail on stuff any CS person have learned. Bubble sort because it is all they know, dismissing graph algorithms for being "too difficult". And so they fail when the task at hand require hard stuff.

    40. Re:False premise by Anonymous Coward · · Score: 0

      Even a large shop doesn't have to leave hiring to a HR department. It is perfectly possible to have a team leader do interviews and hire someone who can demonstrate enough relevant knowledge. The large business may then have thousands of people making hiring decisions, and function in a way similar to a collection of smaller organizations. Things don't have do be done a certain way.

    41. Re: False premise by slingshot2hell · · Score: 1

      I'm a developer at Microsoft and I don't have any of those degrees. And neither does almost half my team. It might take more time working for small places to get the experience, but it does seem like there are plenty of us.

    42. Re:False premise by JDG1980 · · Score: 1

      Most coders don't actually program. They just write some lines of code that connect libraries together. They wouldn't know where to even begin if asked to write the libraries themselves, or write the networking protocols, or the operating system, or the compilers, or the GUI frameworks, or the browser, or even a simple scripting language.

      Converting business requirements into executable processes that a computer can understand is programming, regardless of what language or API is used. There's nothing noble about re-inventing the wheel just to prove you can do it; it's just stupid and inefficient.

      More to the point, organizations don't care about hiring well-rounded Renaissance Men. They want people who can get a specific job done. Whether that job satisfies non-customers in some far-off ivory tower is completely irrelevant.

    43. Re:False premise by gestalt_n_pepper · · Score: 1

      Well, thank goodness I stuck it out and got that BA in psychology.

      Seriously, no joke. That's my degree. These days, I design and code automated testing systems for seismic visualization and analysis software and the control systems for my virtual machine cloud that runs that system.

      But I do a lot of that in vb.net and vb-form code (plus some healthy dollops of powershell), so that means I'm not a real programmer. Fortunately, nobody knows that so they pay me just as if I used curly braces. :)

      --
      Please do not read this sig. Thank you.
    44. Re:False premise by Darinbob · · Score: 1

      The fun with 20ish people shops is that they provide years and years of work for people to come along after them and clean up all the mess. Then when someone asks why the product is so weird I just say don't blame me, it was written by a 20something who's now a CTO where he can do no more harm to innocent programs.

    45. Re:False premise by Darinbob · · Score: 1

      People who can get a specific job done are often useless once that specific job is over. The renaissance man often sticks around at the company for a longer time, gets to work on multiple projects, takes on leadership roles. The rennaissance man designs things and then the person on the specific job does the specific actions according to the design. Both are programmers though.

    46. Re:False premise by cascadingstylesheet · · Score: 1

      This is simply not the case today, especially as applied to 20-somthing trying to get a job. If you are still skeptical, I invite you to go to talk to HR and ask them what it would take to get entry-level job without a degree.

      Every programming job I've held, including my current one which I started about a year ago, has "required" a degree. I don't have one.

    47. Re: False premise by Anonymous Coward · · Score: 0

      Hmmm. Should remind my HR about that they must have missed it with me and many others. This is a huge fortune 10 technology company in a major metropolitan area. And it's not the only one like this, and it's not just development work but BAs, POs, PMs, directors etc. Heck, they don't even put degree required anymore on the description. The mass amount of tuition these days doesn't justify the spend for the return in this field. In my experience over the last 10 years competent people in the tech field have no lack of great high paying job opportunities, degree or not (and many in the field are without degrees). Employers have become more wise in their hiring and their qualities, they really don't care what grades you had in college, instead preferring real world examples of success and ability over "let's play pretend for 4 years".

    48. Re:False premise by Minwee · · Score: 1

      Getting past the gatekeepers is the problem. You can have a degree in theater or math and still get a job in computing. The bar is having SOME kind of degree. This is not a problem just in computing. It's a general corporate affliction.

      "Nearly half of the software developers in the United States do not have a college degree. Many never even graduated from high school."

      Unless half of the software developers in the United States are self employed and work out of their own basements, only one of these statements can be correct.

    49. Re:False premise by NormalVisual · · Score: 1

      that's a completely made up statement. i have worked in lots of IT shops and the only place to find folks w/o a college degree is in the help desk/desktop support.

      With the exception of my first job back in the late 80's, every IT shop I've worked had at least one senior dev without a degree - me. Fortunately, my resume and documented and verifiable accomplishments tend to make the degree issue moot in my case, and questions about my educational status are few and far between.

      That's not to say that I don't think that a college education is a valuable thing, but there *are* a lot of us out there that took the time on our own to learn what we needed to be successful in the field. My copies of Knuth and Sedgewick are just as dog-eared as anyone else's.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    50. Re:False premise by mark_lybarger · · Score: 1

      sure, and you're the exception, not the norm. i've seen at least one senior dev in each shop too w/o a degree. there are 20 senior developers and 40 junior developers in said shop.

  8. India has this MCA/BCA degrees. by 140Mandak262Jamuna · · Score: 3, Interesting
    In India many colleges and universities offer Master/Bachelor of Computer Applications degrees. It started out teaching simple Word, Excel, dBaseIII, FoxPro. Now a days they have added PeopleSoft and Oracle too. Some colleges add things like Ansys, ProE, ProSteel, Fluent, Ansoft HFSS etc.

    These are the graduates who end up in USA via H1-B process most of the time in HR, IT, banking projects. Quality of the graduates vary significantly. But they all make decent salaries in USA, comparable to high quality engineering grads from US schools on salaries. I have seen these programmers of questionable abilities pulling 100K to 140K a year easily.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:India has this MCA/BCA degrees. by Darinbob · · Score: 1

      So if US citizens are underqualified by getting no CS education, and even H1-B workers are underqualified by not getting CS education, this spells doom for US computing industry as a whole!

  9. Computer Science vrs Software Engineering by Anonymous Coward · · Score: 5, Insightful

    Computer Science is teaching EXACTLY what Computer Science is supposed to. Theory. It's an academic pursuit, not an applied skills program.

    If you want to learn how to build usable software, that is a different skillset.

    I've got a Comp Sci degree, and I've been a professional software developer for the past 19 years. While some things I learned in my degree program have come in handy, I learned to code professionally AFTER I entered the workforce, and primarily from working with other people's code and being mentored by those that had done the job.

    There should be a professional "Software Engineering" (or call it something else if the Engineers get upset about the term) program for those that want to actually build code.

    1. Re:Computer Science vrs Software Engineering by Richy_T · · Score: 1

      I seem to recall that the Comp-Sci people where I studied got to choose BSc or BEng.

      Though that may have been compensation for their building having fallen into a railway tunnel :)

    2. Re:Computer Science vrs Software Engineering by blue9steel · · Score: 1

      There should be a professional "Software Engineering" (or call it something else if the Engineers get upset about the term) program for those that want to actually build code.

      Most developers are doing engineering work not science so I'd have to agree.

    3. Re:Computer Science vrs Software Engineering by pthisis · · Score: 2, Insightful

      Computer Science is teaching EXACTLY what Computer Science is supposed to. Theory. It's an academic pursuit, not an applied skills program.

      If you want to learn how to build usable software, that is a different skillset.

      Precisely. Getting a computer science degree in order to become a programmer is like getting a mechanical engineering degree before becoming a mechanic. Yeah, it's kind of vaguely field related and will help give you some background about why things are done a certain way, but it's not at all necessary to the occupation and for many people is a big waste of time. Conversely, a typical programmer can't do CS work (just as a typical mechanic can't do most mech E work) without significant training in that arena.

      There should be a professional "Software Engineering" (or call it something else if the Engineers get upset about the term) program for those that want to actually build code.

      My school had these, http://www.sei.cmu.edu/ vs http://www.cs.cmu.edu/ The SEI only offered masters and higher level degrees, though, which seems backward if anything.

      --
      rage, rage against the dying of the light
    4. Re:Computer Science vrs Software Engineering by Anonymous Coward · · Score: 0

      If you can't code, then you can't properly experiment/test your theories, and therefore can't do the science.

      The theory-only CompSci graduate is useless.

    5. Re:Computer Science vrs Software Engineering by Darinbob · · Score: 1

      No, computer science is also a practical applied science. The problem is that too many people do not look past the entry level jobs to see where the theory can be applied.

      Algorithms is a skill that can be used everywhere in programming, except for the modern style of programming where you are forbidden to reinvent the wheel and must use someone else's library (and presumably if that someone must use someone else's library, then it's libraries all the way down). If and only if people give a shit about performance, and on the web or PC people don't care because they just get faster computers. But on embedded systems, tiny devices or phones, the engineers actually do care because they've got to squeeze stuff into tiny spaces, make it run fast, and make it run cool.

      Number theory is useful anywhere you use floating point numbers. Sure, you can skip it, but then don't complain when your accuracy is very low. I've seen people complain that "1.3" could not be represented precisely and wanted to know if we could get a better compiler to fix that.

      Complexity theory is vital, the whole chip industry depends upon it. You think it's painful that it take hours for the VHDL to get synthesized, imagine how worse it could be. Travelling salesman problems sounds like a made up thing to make student's lives miserable, but it's a fundamental problem to solve in many industries who need ways to approximate good answers to it in polynomial time. I've seen people who don't understand it writing exponential programs to solve something like it, not realizing how useless it's going to be when scaled up beyond their simple test cases.

      Basically all of computer science gets used in practice, and in real programs. Maybe you don't see if if your job is writing some silly JavaScript code for an ad infested web page, but it's there inside of JavaScript engine and inside of the browser and inside of the operating system, and inside of the chip. Now computer science is supposed to encompass computing all the way down to the computer itself, the logic gates and such, but because so many CS grads never did more than programming it is becoming increasingly common for EE grads to do this low level work.

    6. Re:Computer Science vrs Software Engineering by Anonymous Coward · · Score: 0

      I don't remember software engineering degrees at CMU when I was there. It was the beginning of the B.S. in computer science though. Until then they only had a doctoral program. People who wanted to go into CS took Math or Physics with a specialization in CS. They developed an undergraduate CS degree when they realized that the CS majors were taking over the other programs.

      Incidentally, if people are interested in getting undergraduate degrees in software engineering, Full Sail has a very good program. I think it's at http://www.fullsail.edu/degree...

      Graduates come out with a particularly strong background in unit testing, something that my CS training skipped entirely. This is odd since unit testing may well be the most important aspect of programming. Efficiently getting an incorrect answer is less useful than a slow but correct answer in almost all circumstances.

    7. Re:Computer Science vrs Software Engineering by Anonymous Coward · · Score: 0

      (or call it something else if the Engineers get upset about the term)

      If going to jail is a potential consequence of simply doing your job badly, then you've earned the title "Engineer"

      (and if you don't think precise terminology matters, then you definitely aren't one)

    8. Re:Computer Science vrs Software Engineering by Anonymous Coward · · Score: 0

      OIT (Oregon Institute of Technology) offers an ABET certified BS in Software Engineering Technology.

    9. Re:Computer Science vrs Software Engineering by Anonymous Coward · · Score: 0

      There should be a professional "Software Engineering" (or call it something else if the Engineers get upset about the term) program for those that want to actually build code.

      You can call it what you want. We got a bit startled and mildly entertained when the term "Sanitation Engineer" got used outside the field that actually designs sanitation facilities. I suspect we will survive pure code monkeys calling themselves Software Engineers too. There are plenty of EEngs that spends half their time writing software anyway.

    10. Re:Computer Science vrs Software Engineering by u38cg · · Score: 1

      I think part of the problem is that for other professions, there's a fairly well defined transition between university education and real world application. When you graduate from a civil engineering program, you don't get put to designing bridges from day one. There's a very clearly defined career path and learning structure to get you from academically capable to I-trust-this-guy's-bridges-to-not-collapse. That doesn't exist in programming, except sporadically.

      --
      [FUCK BETA]
    11. Re:Computer Science vrs Software Engineering by pthisis · · Score: 1

      I don't remember software engineering degrees at CMU when I was there. It was the beginning of the B.S. in computer science though. Until then they only had a doctoral program. People who wanted to go into CS took Math or Physics with a specialization in CS. They developed an undergraduate CS degree when they realized that the CS majors were taking over the other programs.

      I was there during the end of the Mathematics/CS degree era (1993-1997). The SEI was definitely around and offering degrees (Masters only, IIRC) then. I worked for them one summer, 1995ish.

      Graduates come out with a particularly strong background in unit testing, something that my CS training skipped entirely. This is odd since unit testing may well be the most important aspect of programming.

      It's not odd to me. Unit testing is one of the most important aspects of programming, but it's largely irrelevant to most computer science. To extend the analogy above, it's like a mechanical engineer not knowing how to change brake pads. That's pretty crucial for a mechanic, but largely irrelevant to most mechanical engineers.

      --
      rage, rage against the dying of the light
    12. Re:Computer Science vrs Software Engineering by Anonymous Coward · · Score: 0

      Um... or maybe just point out to people that they need to take a class or get a job or do a project to develop some programming skills to apply that theory. Getting a moderately rounded education and good theoretical grounding and critical thinking skills and one or two programming languages to learn some basic programming is a lot for 4 years of schooling. It is supposed to help start a long career and provide a framework to build upon during that career. There are many ways to get programming experience... the degree should help get more results from those efforts.

    13. Re:Computer Science vrs Software Engineering by pthisis · · Score: 1

      No, it shouldn't. It's a computer science degree, not a programming degree, it shouldn't be trying to prepare you for a career in programming any more than a mechanical engineering degree should be preparing you to be an auto mechanic.

      In fact, it's not a professional program at all; the idea that college degrees are supposed to prepare you for a job of any sort is one of the biggest problems with the modern university system in the US (it began partially when professional programs like law schools and med schools got folded into universities, and has caused a dramatic falloff in the respect given to vocational schools that aren't part of the university system).

      --
      rage, rage against the dying of the light
  10. One still needs to learn the fundamentals. by cruff · · Score: 1, Insightful

    So much of the code that I've seen is poor because the people writing it have not learned the fundamentals of requirements determination and problem solving skills. Then you need to understand how to choose appropriate algorithms and tool sets to apply. Then you learn what you should have known in the first pass and you start again on a better solution. While colleges attempt to produce people having those skills, they often do not provide enough practice. For all four years of my degree program, only one course was about software engineering itself, and because it was only for a quarter, not nearly long enough to cover what takes years to pick up once you are out in the real world.

    1. Re:One still needs to learn the fundamentals. by Bite+The+Pillow · · Score: 1

      Given that the current curriculae attempt to teach basic algorithms and fundamentals, how are you going to fit this in?

      If you provide more practice, does that mean more 3 hour labs with 1 hour credit? Or do you take away existing courses to make room?

      This sounds like whining - I want to read about solutions.

  11. You Never 'Need' A Degree by Anonymous Coward · · Score: 0

    You've never needed a degree to do anything. You can learn anything on your own in time. A degree is just a piece of paper you spend far too much money for to say you know something. But employers need to have some sort of proof to say you actually know what you're talking about. Having your own successful projects, some interesting employer history, or a degree are the only ways they can tell really.

  12. Loaded Question by buk110 · · Score: 1

    Am I going to learn all the skills I need in undergrad? Probably not. But I will learn how to deal with idiots, how to get along with others, and commit to something and follow it through all the way. Plus HR wants the degree - so you get the degree.

    1. Re:Loaded Question by Anonymous Coward · · Score: 0

      Plus HR wants the degree - so you get the degree.

      Lick that boot! :-P

    2. Re:Loaded Question by Anonymous Coward · · Score: 0

      An agreeable, desperate buffoon with high debt isn't a desirable worker.
      Some display of skill is required, even if it's a hobby or volunteer project.

  13. Yes by Anonymous Coward · · Score: 0

    People who can teach themselves to code are vastly more effective then those who do not teach themselves.

    1. Re:Yes by Anonymous Coward · · Score: 0

      Before you know it two people start their own search engine after College that literally destorys MS stock value, so who really needs experience about why a company is failing.

  14. Waiting for the Apple ii assembly language stories by Anonymous Coward · · Score: 0

    *gets popcorn*

  15. Programmer or Engineer? by knightghost · · Score: 1

    A Programmer Codes. An Engineer Designs. Which do you want to be? The theory that CS teaches is mostly and directly translatable to Software Engineering.

    And on a tangent, anyone with the intelligence to get a CS degree should instead be focused on getting a couple bachelors then MIS or MBA. Twice the pay for half the work.

    1. Re:Programmer or Engineer? by jmcvetta · · Score: 1

      An Engineer Designs. Which do you want to be? The theory that CS teaches is mostly and directly translatable to Software Engineering.

      The considerably majority - tho by no means all - of the CS majors I have worked with couldn't design a clean, elegant API if their job depended on it. Alas, it never does.

    2. Re:Programmer or Engineer? by knightghost · · Score: 1

      Quality matters. The CS graduates from my school could design a clean OS, much less API. To bad that quality doesn't matter much to management.

    3. Re:Programmer or Engineer? by Anonymous Coward · · Score: 0

      alot of electrical engineers don't know what end of a soldering iron gets hot and couldn't design a circuit if their life dependent on it

    4. Re:Programmer or Engineer? by Anonymous Coward · · Score: 0

      The considerably majority - tho by no means all - of Programmers I have worked with couldn't design a clean, elegant API if their job depended on it. Alas, it never does.

      Fixed that, the problem the market has is not about bad programmers coming out of CS courses, it's about bad programmers everywhere pretending they're not.

  16. Complete Bullsh*t by Anonymous Coward · · Score: 0

    Any decent candidate has *both* a CS education and experience. That's the way engineering has been since day one. This article has a sly hint that somehow getting a CS education makes you less fit for the job. Wrong.

    The truth is that neither education nor experience makes you a good programmer. We all have to study our craft, and we all have to practice our craft.

    It's possible to give yourself a thorough computer science education with self study. It's hard work, but possible. The trouble is, most self-taught programmers only dabble in the core CS fields. Data structures, algorithms, numerical methods, analysis of programs -- these are hard work. And 99% of the time, they're useless. But that 1% is what makes the difference when a hard problem comes along, and when it does, the knowledgable programmer saves so much time and money that it's worth it.

    When a candidate comes in my door without a CS degree, he or she has a much higher hurdle to get a job. A degree doesn't prove you're a good programmer, but it does prove you know how to work hard, persevere, deal with asshole professors, and achieve a goal that takes years -- all critical skills on any project. Someone without a degree has to have a LOT of experience to show match this achievement. On top of that, there's a pretty good chance a CS grad actually knows computer science.

  17. False Falseness by SuperKendall · · Score: 2

    If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics.

    I have never found that to be true at any company I've ever worked for.

    As a consultant I have never had anyone ask about my degree.

    I do have a CS degree, and I find it valuable myself - but I don't think everyone needs one.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:False Falseness by sinij · · Score: 1

      As a consultant you already have your clients, list of projects and so on. Good luck getting that entry-level job to build these without a degree.

    2. Re:False Falseness by SuperKendall · · Score: 2

      As a former employee of large and small companies we OFTEN hired programmers that did not have degrees. Luck was not required, skill was.

      If you are a company waiting around for only candidates with CS degrees, all I can say is good luck!

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    3. Re:False Falseness by Anonymous Coward · · Score: 0

      Apparently you only need enough luck to beat 50/50 odds. Not compelling evidence, in any sense. I have qualified and been involved in hiring for years. A degree is of little importance compared to attitude, aptitude and technical familiarity in the problem domain.

    4. Re:False Falseness by pspahn · · Score: 1

      I have interviewed at plenty of places that paid well and would say things like, "oh, most of our developers are self-taught." Certainly there are places that are adamant about having a degree, but definitely not all of them.

      I've found that you can surround yourself with brilliant people at work and learn plenty. You can also surround yourself with idiots at work. The same can be said for college. Depending on where you go, you will be surrounded by a varying mixture of brilliant people and idiots. I would rather work for a funded startup with people that have a track record than attend your average diploma mill (assuming bettering myself and career was the goal). Similarly, I would rather attend Carnegie Mellon than work as technician at Fry's.

      --
      Someone flopped a steamer in the gene pool.
    5. Re:False Falseness by Darinbob · · Score: 1

      Consultants usually never get asked about degrees, as they are being hired for the current at-the-moment task. Full time hires however often need this because they're being assumed to be around for several years and need to be adaptable to both current and future work.

    6. Re:False Falseness by Anonymous Coward · · Score: 0

      When I first started out, I had a little difficulty because I didn't have a CS degree. But if you have successful projects you can show a prospective employer, they will bypass HR themselves to hire you. That's exactly what happened to me, as the company that hired me had been using my software for months already and established it into their pipeline.

  18. Re:Is Coding Computer Science? Of Course! by edibobb · · Score: 1

    You are assuming that the job is only coding. There are many positions that require computer science in addition to or instead of coding.

  19. No degree = no job by Anonymous Coward · · Score: 0

    As a person who not only does software development but also hires software developers, I would never hire someone who doesn't have a bachelors in a programming related degree (CS, CE, MIS). Although they never have the exact skillset to be a very productive developer at first, they have a background in theory which is necessary to be a good programmer. Hiring people right out of school and expecting them to be productive immediately is stupid. But having the background to understand things like lists, arrays, hashmaps, variable context, and the difference between strong vs weak typing and the pros and cons of interpreted vs compiled languages is invalueable and people I have worked with that didn't have that background were poor programmers. If you want to get cheap labor by hiring right out of school, expect to have to teach them the specific language skills you are developing in. And of course the best people will have already been doing some sort of programming while in school so should have some experience.

    1. Re:No degree = no job by vipw · · Score: 1

      But you really think it's so unlikely that someone picks up this knowledge without a degree? The textbooks used in universities are available to the general public, and there are also resources like Coursera that do provide a semi-traditional learning environment without conferring a diploma.

      Unless you're really drowning in candidates, it probably makes more sense to interview for knowledge of CS theory (or use a standardized test) instead of doing a resume-filter.

      Your anecdotal evidence is easily countered by other peoples' anecdotal evidence. Mine, for example.

  20. Trade school vs College by irrational_design · · Score: 1

    You are describing a trade school. Colleges/Universities are about a lot more than training job skills. I see computer science being about theory. Go to college if you want to study theory. I see software engineering being about practical work skills. Go to a trade school/boot camp/etc if you want to study practical job skills.

    1. Re:Trade school vs College by NewWorldDan · · Score: 2

      In terms of hiring, I have yet to see a college or trade school that does an adequate job. Fundamentally, I'm hiring people to develop web apps on the MS MVC stack. That requires a bit of theory, architecture, security, and hands on coding skills. If you can't actually code, you're worthless. I give all applicants a CS101 level coding test. Anyone worth hiring will be done in under 5 minutes. From there, it turns in to an interview about your theoretical knowledge and patterns. Anyone without a basic grasp of security and best practices is a liability. And most recent grads, even if they have all that covered, take 6-12 months to really become useful. At which time, they expect to get paid a boatload of money, except I've got to somehow account for the expense of training them to be useful. It's all kind of frustrating, really,.

    2. Re:Trade school vs College by Anonymous Coward · · Score: 0

      I think what you're underestimating is the degree to which a bachelors is intended to educate. They're not going through an equivalent of med school whereupon your specific job requirements are but a subset of what they will have been expected to master. Your expectations, in addition to being fairly specific to a particular platform require a collection of skills that even many Senior level professionals may be light on (security/best practices) depending on where they've worked. Bottom line, it's nowhere close to an entry level position and you're wasting your time milling through candidates that will never meet your specific requirements. This is not to say there aren't fresh grads that are capable of handling such a position with minimal training, but these are the exception to the rule and are already likely to be looking at juicy high paying positions.

      Even if you ignore that and are still looking for the more highly qualified individuals, focusing on Computer Science is the wrong degree (undergrads need to understand this as well). Computer Science is a study of the theoretical, much the same way that a degree in math or physics is. In most reputable colleges it's not intended to be an engineering degree (despite offering electives that are applicable) with the explicit purpose of making useful software engineers. They instead offer a Software Engineering degree for this purpose. If there were a likely candidate that came really close to what you're looking for right out of college, they'd actually be a double major CS/SE

      Entry level positions in many organizations are those that treat the typical fresh grad as little more than a virtual assembly line worker, where all the decisions regarding algorithms, security, etc... are already largely specified down to a function level. They're literally just translating specifications to code. And of course they're a liability. Either you invest in making them not a liability or you resign yourself to competing over pre-trained senior talent (often having to lure them from other engagements) and/or exorbitantly expensive consultants.

  21. Two completely different things by Anonymous Coward · · Score: 0

    Computer Science is more math and theory and the underlying nuts and bolts.

    Coding is just one specific application of that knowledge.

  22. Don't know where the code runs by jfdavis668 · · Score: 1

    One of our Java development teams was discussing a new project, and one stated she doesn't know where the code runs. I over heard this, and went over to join the discussion. This is one of our best teams, and know one knew the answer. So I explained how Java Server Pages compile, and where each piece physically runs on multi-tier architecture. When these people learned to code, they learn though an IDE. Hit compile, and deploy the code, and it goes off into wonderland to run. They never learn how it actually happens. Have the same issue with SQL. Without the mathematical knowledge behind it, coders can't write complicated queries. Just learning to code is a good career, but you also need someone with the depth of knowledge to make it all work.

    1. Re:Don't know where the code runs by jfdavis668 · · Score: 1

      Sorry, no one not know one.

  23. Being a developer is about more than code by darylb · · Score: 2, Insightful

    Being a developer is about more than code.

    For example:
    1. You'll follow and (perhaps later on) write and refine software specifications. You need to learn different ways to do this.

    2. You'll need to select appropriate algorithms for the task at hand, and evaluate performance for new code -- which you wrote against a trivially small amount of data -- against production data volumes.

    3. You'll need to understand pros and cons of different software development approaches, particularly waterfall and the broad category of "agile". Why would you pick one over the other?

    4. You'll need, at least on occasion, to understand one or more software modeling systems, and perhaps to create models that represent what you're suggesting.

    5. You may very well need advanced mathematics for your job. Just a couple of months ago, I had to write some vector-handling code, in PL/SQL of all things.

    Sure...you could learn all this on your own. But a good compsci curriculum will provide you with at least an introduction to all of these, with some kind of attestation of basic familiarity.

    If you want to be "just a coder," go right ahead. However, you'll never be all that competitive with those possessing the larger body of skills needed to be a solid technical professional. Of course, real experience is very helpful in landing the first job. That's what student jobs, interning, and cooperative education are for. I'd never have landed my first job without some of the skills I learned over four terms of co-op.

    1. Re:Being a developer is about more than code by darylb · · Score: 1

      Incidentally, point #2 is key. For some reason, even compsci grads like to think their algorithm analysis course(s) was(were) useless. But having watched an MIT EECS grad write a web application that was, as I recall, O(n^2), just because he didn't want to use a database, I can only say that the course is essential. Dr Susan Mengel, you were one tough cookie, but, boy, did you teach me that stuff well.

    2. Re:Being a developer is about more than code by Drethon · · Score: 1

      6. You'll need good communications to talk with the requirements developers who gave you little more than "make it work" and then complain when it doesn't work the way they imagined it.

    3. Re:Being a developer is about more than code by Anonymous Coward · · Score: 0

      Being a developer is about more than code.

      In the same vein, getting a college degree is about more than learning to code.

    4. Re:Being a developer is about more than code by Anonymous Coward · · Score: 0

      But having watched an MIT EECS grad write a web application that was, as I recall, O(n^2), just because he didn't want to use a database,

      You can't say that is wrong without putting numbers to O and n.
      Quite often I see massive overhead to work efficiently on a data set that will contain between three to ten elements.

    5. Re:Being a developer is about more than code by Bite+The+Pillow · · Score: 1

      Are you arguing for CS or against?

      1) Not taught in CS
      2) Barely taught in CS
      3) Not taught in CS
      4) Not taught in CS
      5) Maths are often required, but poorly understood, and as you said not required

      So CS will give you the fundamentals, as you claim. Are the fundamentals enough? By your post, you assert yes.

      Also, by your own post you are an idiot, since waterfall development was described by Royce only as an example of something to avoid. Trick question? Most coders don't get to choose, so the joke's on you.

      "Solid technical professional" really needs description. You may have a different experience from, like, 6 million other people on the planet.

      And we are left with "real experience", which many people can gain through open source collaboration or other avenues.

      A personal portfolio goes a long way for me, regardless of a CS degree. Especially if the examples are ground-up implementations instead of adhering to a stylistic convention imposed on a particular project. It demonstrates that "real experience" you say is helpful. And if student jobs, interning, and co-op provide that, then I cast doubt on your assertion that CS is in any way important.

      If you would have never landed your job without co-op, are you really defending pure CS education? Or is there a personal experience to this that makes you favor one side or the other? What if you had the co-op opportunities without the CS education? What if you had the CS without the co-op?

      I'm pretty sure you are, if you are being honest, clearly on one side or the other, and are better able to articulate your position now.

    6. Re:Being a developer is about more than code by Anonymous Coward · · Score: 0

      Please teach them also usability, security, testing, debugging and refactoring.

  24. They should make a Programming degree by Spy+Handler · · Score: 1

    Let the really smart kids (IQ > 130) take traditional CS. They can deal with the theory and advanced math.

    The kinda bright kids (IQ 100 - 120ish) can take Computer Programming where they learn to code in the real world. Teach some business-y stuff too while they're at it. Only math required would be high school algebra and geometry. Maybe some trig but that's it.

    1. Re: They should make a Programming degree by Anonymous Coward · · Score: 0

      Exactly. Most people are average, on average. average people don't design programming languages, they don't design frameworks, they don't design programming methodology, they don't design anything. Average people if they're smart enough, can consume these things that other smart people made. The dummies don't know how to do any of that and they sweep floors at the hair salon and wash your car and do other menial jobs that we really really need because I sure the hell don't want to do it.

    2. Re:They should make a Programming degree by Anonymous Coward · · Score: 0

      As somebody with an IQ north of 140, that helps typical students with CS, I don't think IQ has anything to do with this. The big issue is curiosity and determination. Anybody with even a moderate level of intellect with those two things can do quite well in any computing related field.

  25. In equally surprising news by nedlohs · · Score: 2

    Astronomy graduates don't always make the best telescope lens grinders.

    Microbiology graduates don't always make the best microscope builders.

    1. Re:In equally surprising news by bill_mcgonigle · · Score: 1, Flamebait

      Dude, it's Slashdot, you have to say, "does learning to replace a transmission outweigh a degree in mechanical engineering?"

      It's OK. We play this game:

      The servers are really slow.
      Your app is pegging the CPU. It didn't yesterday. What did you deploy?
      Nothing.
      What did you deploy?
      Well, just an update to module foo.
      What does the update do?
      It adds a feature to do X.
      What's the big-O of your algorithm to do X?

      This is where the deer-in-the-headlights look begins. And the sysadmin analyzes the "developer"s algorithm and shows him why it's n^3 and how to make it nlog(n).

      Being able to swap out a transmission is good, and if you're designing a transmission you better damn well know how somebody is going to swap it out, but just because you can swap out a transmission doesn't mean you're ready to design a new one.

      Car people have it easier, though, because car factories are really expensive. But that also limits the possbilities of having 999 crap new transmission designs for one brilliant one that the factory owners' employees never thought of. Mixed blessings.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  26. SubjectsInCommentsAreStupid by lesincompetent · · Score: 3, Funny

    Of course it does. You're hired. Your first assignment is to write a simple program to check wether my program terminates or not.

    1. Re:SubjectsInCommentsAreStupid by angel'o'sphere · · Score: 1

      Hehe, in a morbide sense that is actually funny!

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re: SubjectsInCommentsAreStupid by johnamadsen · · Score: 1

      I've heard of those things!

    3. Re:SubjectsInCommentsAreStupid by Anonymous Coward · · Score: 0

      No problem. I can write a simple program that predicts that your program terminates and then makes your program terminate.

    4. Re:SubjectsInCommentsAreStupid by Anonymous Coward · · Score: 0

      *Writes my program to terminate yours whenever it's seen running* "Why yes. Whenever I run my program to test your program yours always terminates"

      The halting problem is not solvable given any possible input, but that doesn't mean it isn't solvable for all input. There are subsets that are solvable and there are programs that do solve them. One must also learn understanding, not just recall.

      Anyway, I don't understand why people in IT think we're so much better than everyone else. Anyone with the willpower and dedication can learn any subject without going to school. CS isn't special. Some subjects are harder to learn, such as micro-electrical engineering because fabrication labs are expensive, but anyone can still buy and read the textbooks.

    5. Re:SubjectsInCommentsAreStupid by Anonymous Coward · · Score: 0

      Everything terminates. Stop bringing your metaphysical, ontological question bullshit into the hiring process, bro!

  27. Short sightedness by Anonymous Coward · · Score: 0

    Employers are looking for a specific skill. People with degrees know the theory and fundamentals. Hence, they can pick up a new language or skill quickly. People who focus only on a specific language may know it in depth, but that knowledge may not translate well outside of that specific language.

    A linguist can pick up a new language quickly. Someone who moves to a foreign speaking country will eventually be fluent in the new language and know its idioms. A linguist would likely speak a language "proper", while the native speaker would use slang and such.

    Language is language, be it spoken or typed.

    1. Re:Short sightedness by Anonymous Coward · · Score: 1

      This

      When we interview for a new engineer 1 position we are well aware that they probably dont have the greatest C (we are a c embedded shop) skillset. We focus on the basics of logic when asking them to do code examples, does their code make sense ignoring any syntactical errors? Did they get to a solution logically? Do they understand the difference between if and while (surprisingly we've had many candidates with bachelors and masters from Indian colleges who honestly randomly threw those around and didnt understand why what they did was wrong when questioned)

      As long as at some point they covered 2 or more languages during school whether actually programming, scripting, whatever, they should be able to do just fine. As you said the language doesnt really matter, once you've done some projects in college in various languages you realize it doesnt matter and you can pick up a new one in a month or two. We look for understanding the concepts, not if they understand the language we use right out of the gate since its going to take them a couple months to begin to understand the code base anyway

  28. Programming by Anonymous Coward · · Score: 3, Funny

    I have been an employed programmer for about 8 years now, dropped out of school to get paid instead of paying. Every single person I have had to work with who had a CS degree have had two traits in common. First, they love to remind you they have the degree. Second, they barely contribute anything to production except great ideas of how not to do things.

    As a non-degree'd person, I have done contract work for 3 separate universities so far. You would think they would have an infinite supply of proud cheap labour to tap before giving me a call.

    1. Re:Programming by Anonymous Coward · · Score: 0

      Having a degree does not a talented developer make. It has just the same probability of making an inept middle manager, or as you have found a total douchebag. Everybody will program as to their personal abilities regardless of education ... but one thing an education gives you is exposure to knowledge. This doesn't always translate into lines of usable code per day, but it does pay dividends in unexpected ways. constantly.

    2. Re:Programming by Anonymous Coward · · Score: 0

      I don't know the specifics, but sometimes knowing what won't work is helpful. It doesn't get the job done, but it does help narrow the focus.

  29. Do you need a degree in Poli Sci... by Anonymous Coward · · Score: 0

    To be a politician? No, of course not. Fun fact: I studied political science, and now work as a programmer.

  30. Re:Is Coding Computer Science? Of Course! by machineghost · · Score: 2

    I'm assuming the vast majority of programming jobs require the ability to code, and no further domain specific knowledge. This is just based on my reading of many, many programming job listings over the years.

    I'm sure there are jobs that require CS knowledge, just as I'm sure there are (programming-related) jobs that require Biology knowledge or Architecture knowledge or whatever. But all of those are niches: a very small subset of all programming jobs require those specific areas of knowledge. ALL programming jobs require coding though, and even among the ones that require domain-specific knoweldge, I'd imagine the bulk involve a lot more coding than anything else.

  31. Where Do These Stats Come From? by eldavojohn · · Score: 1, Informative

    Nearly half of the software developers in the United States do not have a college degree. Many never even graduated from high school.

    What? I pored over the article and the US BLS link in it to find the source of these statements. Aside from a pull quote that appears as an image in the article but isn't even in the article itself and is unattributed, could someone find me the source of this statistic?

    Because I'm a software developer in the United States with a Masters of Science in Computer Science. All of my coworkers have at least a bachelor's degree in one field or another. And my undergrad very much so started with a sink-or-swim weed out course in Scheme and then another in Java. Yes, they were both easy if you already knew how to code but ... this article almost sounds like it's written by someone with no field experience. Granted that's a low sample set, I'd like to know where the other half of us are. Everyone keep in mind that a Computer Science degree is a relatively new thing and there very well may be elderly coders doing a great job without technically a degree in computer science.

    The only way I can see the misconception spreading is that people who use Wix to drag and drop a WYSIWYG site (for you older readers that's like FrontPage meets Geocities) erroneously consider themselves "software developers".

    --
    My work here is dung.
    1. Re:Where Do These Stats Come From? by Anonymous Coward · · Score: 0

      Most of the old coders here in Germany have a degree in physics or math. As do many of the new ones. Actually, in my experience they work just as well as CompSci grads. Coding is not particularily hard, structured thinking in models/algorithms is. And math/physics teaches the latter arguably much better than CompSci.

    2. Re:Where Do These Stats Come From? by Anonymous Coward · · Score: 0

      good for you
      only 200 comments for the basic first question to be asked

    3. Re:Where Do These Stats Come From? by wisnoskij · · Score: 1

      Well based on how you define it, you can get pretty much any statistic. Most people who code some amount for their job, who do not have a comp sci degree is probably far over 50%.

      --
      Troll is not a replacement for I disagree.
  32. "coding" by jmcvetta · · Score: 1

    Can we stop using the pejorative term "coding" as tho it were equivalent to "programming" or "developing software"? Coding is for code monkeys.

    1. Re:"coding" by Krishnoid · · Score: 1

      You can't make a statement like that without at least linking to the video.

    2. Re:"coding" by ZombieBraintrust · · Score: 1

      Coding is not a pejorative. It is a perfectly fine verb describing the creation of code. Code Monkey uses the non pejorative "code" with the pejorative "monkey". You can add the word monkey to other nouns to creat other pejoratives. Grammer Monkey, Slashdot Monkey.

    3. Re:"coding" by 0xdeadbeef · · Score: 1

      Wrong video.

      When people call themselves "coders", it always reminds of that scene in Jurassic Park, where the miner foreman says of the world famous paleontologist: "Grant's like me, he's a digger."

      Yup. Totally the same profession.

    4. Re:"coding" by jmcvetta · · Score: 1

      Imho,

      coding : developing software :: typing : writing literature

    5. Re:"coding" by TeknoHog · · Score: 1

      Agreed, you can be a programming monkey or a software development monkey. To me, the use of a higher register often implies the kind of professionalism where a suit and a bunch of certificates matter more than real problem solving ability.

      --
      Escher was the first MC and Giger invented the HR department.
    6. Re:"coding" by Anonymous Coward · · Score: 0

      When people call themselves "coders", it always reminds of that scene in Jurassic Park, where the miner foreman says of the world famous paleontologist: "Grant's like me, he's a digger."

      Yup. Totally the same profession.

      Context is important. The miner didn't reefer to the profession. He was talking about the dedication to the work.

  33. Employers by Anonymous Coward · · Score: 0

    Employers cannot afford CS majors, so they simply will declare that a degree is not important.
    I wonder... when / where can I do dentistry, med. doctor, architect, mycologist, attorney, accountant, civil engineer without a degree ?
    What the heck is wrong with this profession and what makes you think that experience can replace 5 years of in-depth studies ?
    I live on a day-to-day basis with cs "engineers" without any formal background and let me tell you... it is obvious they don't understand what they are talking about.

    1. Re:Employers by pr0fessor · · Score: 1

      I have an older brother-in-law that was Army CoE and has years of experience as a civil engineer. I don't think he has a degree outside of military training, I'll have to ask him next time I see him.

  34. false dichotomy by mr_mischief · · Score: 1

    If you are hiring someone to develop code and you must pick one or the other, pick the person who knows how to code. If you can find someone with a degree in CS, math, physics, accounting, philosophy, a natural language, law, or anything else who also knows how to code then hire that person.

    Especially if they have a degree in the subject matter and know how to program that's a bonus. Sometimes the actual subject matter really is CS. Sometimes it's accounting, medicine, physics, geology, or something else.

    Saying one must hire a degreed person (with a specific degree no less) exclusive-or someone with skills is just silly. Don't weight the degree heavier than it deserves, but don't dismiss it either.

  35. Structured thinking and problem solving matters by CptJeanLuc · · Score: 1

    Some form of higher education involving logic, problem structuring and rational thinking is needed, though not necessarily computer science. Either that, or taking some sort of structured approach to learning that set of skills elsewhere, e.g. through mentoring or self-studies. You need to figure out what skill set it is that you need to learn, and then make sure you somehow learn it, either at university or some other way. That being said, I know plenty people with CS education who I would say make very poor programmers - it is easy to go through higher education and still learn very little. One of my favourite quotes, "he who has no plan goes nowhere fast". Just being somewhere and following some curriculum is not the same as pursuing a roadmap towards becoming a "real" programmer.

    I myself am pretty much self-taught when it comes to programming, having taken an interest in that since the age of 9 with Basic and C64, but never taking any formal training. Higher education in mathematics has given me all the additional experience and skills I have needed. I have worked with programmers and managed programmers for several years, and though they are often better at coding than I am (which is not so strange given it is their job, whereas for me it has been just one of many different responsibilities), I often have an edge when it comes to e.g. structuring, algorithms, wading through complexity, or taking a critical point of view whether we are building the right thing.

    If you want to be a top programmer who is productive in a work place, you need both programming skills and higher order rational logical thinking (plus being able to collaborate). It doesn't matter how you acquire it (in terms of learning it, not necessarily how attractive you are to employers). Everything else, e.g. new programming languages and such, is typically easy to learn once the basics are in place.

  36. They should not by OldGoatDJ · · Score: 1

    Colleges are not workforce training grounds. They are for higher education. College should prepare you for workforce training. They should not be training students in the latest language fad but giving students the ability to learn the skills needed to pick up the current fad, the next fad, and so on. Training for today's workforce will not be adequate for tomorrow's workforce. Corporations are attempting to push their responsibility of training their workforce back to colleges. A new computer science college graduate should not be expected to be a C++, Java, Design, Testing, project management, etc expert.There are too many skills that corporations need and that change too often for a colleges to produce such. Go to college for higher education, go to trade schools for workforce training.

  37. What scales are you weighing against? by quietwalker · · Score: 1

    If the metric of comparison is employment, you need to be able to produce output rather than cite theory. In fact, I know of no developer, ever, who was hired on the strength of his awareness of theory with no programming ability. There is a chance you could get something like that in emerging fields like machine learning or data analysis, but you'd still have to have some ability to implement your theories or processes. Of course, you'd also have to be an acknowledged expert in the field, and that's not likely without products.

    If the metric is the ability to produce a secure, well-architected product that utilizes some of the more popular frameworks and libraries, working with the common IDEs, build and testing tools, team collaboration tools, and awareness of the software development lifecycle, well again, being an actual software developer is better.

    If the metric is ease of writing more efficient code (less memory, faster), or being able to evaluate, generate, and implement complex or new algorithms and heuristics such as key based encryption, trend analysis, predictive modeling, physics frameworks, and so on - well, in these cases you need the strength of the CS degree. You can't do it without picking up a great deal of necessary knowledge.

    As a side note, at least 98% - probably more - of software business needs revolve around simple data manipulation, trivial calculations, and user interfaces of ever-increasing complexity. They want an inventorying system, or a way to generate a report on sales, or to send a digital payment from one customer to another, or whatever.

  38. Re:Is Coding Computer Science? Of Course! by Tuidjy · · Score: 1

    Of course, a CS graduate who does not know how to program is a worse candidate for a programming job than someone with a few projects under his belt.

    But I have to say, I have very little experience with CS graduates who do not know how to program. Every single Course VI (EE&CS) person whom I knew in college had serious programming chops.

    No, I never took a programming class (I TA'd two) but it was because I felt I was a hot-shot programmer going in. Every summer I would take a project that would pay in the 15-30K range, and mostly, it would be finished before the first day of classes. Most of my friends had internships, and those were programming jobs. I very much doubt they were learning the basics on the job, either.

    Many of my classes (computer vision, distributed computing, etc...) assumed that we had working knowledge of C (maybe C++) They all had final projects that could not be approached, let alone completed without serious programming skills.

    As for those who felt that they needed to learn a language, they were classes for that, as well. I am not saying that there aren't people who graduate with a CS degree without having even basic programming skills, but they seem to be the exception to me, not the rule. Hell, every category has its fuckups. But in my experience, it isn't CS graduate without programming experience vs high school graduates with programming experience. It's programmers with or without a college degree. And frankly, for programming jobs, I tend to hire both. I also happen to spend hours explaining some basics to the ones without a CS degree. In the long run, they may become just as good as the ones with a degree, but they sure do not command the same salary. And it is fair: in general, they take more training.

    Actually, in August, I had to recommend a book to one of my guys, and answer his questions about it. He had tried to implement a commit/roll back mechanism without any theoretical background, and had made a mess out of it. No big deal. He was smart enough to learn.

    --
    No good deed goes unpunished...
  39. it's not a factoid by donour · · Score: 1

    factoid (n): something that seems true, but isn't

  40. The fundamental question by werepants · · Score: 1

    The real question is not 'whether colleges are teaching the right skills people need to join the workforce'. First you need to address this assumption that the point of college is merely to qualify you for a job or increase your future earnings potential. Because it isn't at all clear to me that it would be a problem if college wasn't preparing people to enter industry - the only thing that a university degree specifically ought to prepare you for is further schooling and life in academia.

    That said, even if we accept the notion that institutes of higher learning are really degree mills and tickets to future career success (which I admit they are fast becoming), why the hell does anybody expect a computer science grad to have any particular skill in programming? Degrees exist for the discipline in question: it's called software engineering. This is analogous to hiring a physicist to do electrical engineering or mechanical engineering work - sure, the physicist has demonstrated some aptitude in relevant areas, but physics training is in abstracted, idealized, theoretical scenarios, so there's going to be some difficulty making the transition to the concrete, rule-of-thumb, applied world of engineering. Anybody who doesn't understand this distinction shouldn't be in charge of hiring - there are computer scientists, there are software engineers, and they both offer different skills that are required in different degrees depending on the project.

    Of course, that is how things ought to work in hiring. How things do work is another matter entirely.

  41. No by Anonymous Coward · · Score: 0

    Theory lasts a lifetime, practice, lasts until the next paradigm shift (10 years and you're out).

  42. FizzBuzz is a good start by Krishnoid · · Score: 1

    A working programmer and a computer scientist are two different things, but the computer scientist should be able to write a basic program:

    A surprisingly large fraction of applicants, even those with masters' degrees and PhDs in computer science, fail during interviews when asked to carry out basic programming tasks.

    For programmers, this is a basic test, but when a computer scientist can't do something this fundamental, it calls their higher-level qualifications into question; and even if it doesn't, it makes you worry that their architecture or design will consider real-world issues and implementability.

    1. Re:FizzBuzz is a good start by nblender · · Score: 1

      I guess my problem with FizzBuzz type questions (I've neven really interviewed for a job so don't know how I'd actually do) would be that I'd look at the question and know that it's too easy and there must be some hidden gotcha so I'd start second and third guessing; playing with the algorithm and debating with myself which one the interviewer wants to see (correct but not optimal, correct and optimal but a little less obvious, etc)...

      So maybe I'd be the guy sitting there for 10 minutes... But not because I don't know the answer...

      I have trouble believing that the vast majority of programmers can't do that.

    2. Re:FizzBuzz is a good start by Anonymous Coward · · Score: 0

      If you're hiring a computer scientist to perform basic programming, then you're wasting a ton of money on expertise that you don't need.

      Anyways, there's a bit of a glut in the market and anybody that can program but lacks the CS degree and multiple years of professional experience probably can't apply anyways.

  43. Re:Is Coding Computer Science? Of Course! by gunner_von_diamond · · Score: 1
    I definitely agree with you that

    the vast majority of programming jobs require the ability to code, and no further domain specific knowledge

    However, the theory of Computer Science and the history of it is still important to teach an aspiring programmer/computer scientist (still don't even know what that really means.) I think that the CS curriculum needs to teach more practical applications of things, including pure programming, but also necessary skills like using a version control system. Or how to download and install packages on different platform or using continuous integration servers/databases and other commonly used technologies. Learning the theory of SQL databases from 50 years ago is certainly not as helpful as learning how to set up and actually run a local database. More practical/hands on work, less theory and reading text books.

  44. Computer Science vrs Software Engineering by Anonymous Coward · · Score: 1

    I think you hit the nail on the head here. I am kind of doing it backwards, but I learned to code, got a job, am currently working as a software engineer and am now getting a CS degree as a part-time student.

    I don't think not having a degree has been much of a hindrance to me finding a job, but I want the degree for my own self-fulfillment, to set an example for my child, and because learning is awfully fun.

    If anyone asks me for advice about whether or not you need a CS degree to develop software, I always say, "You don't need one, but get the degree if you can." Having to learn about pointers, memory management, data structures and algorithms is vital to being a better developer, and not always what self-taught programmers choose to learn.

  45. Don't get a degree by Anonymous Coward · · Score: 2, Insightful

    Nope. University/College is a scam. Just watch youtube videos and read slashdot and you'll be golden.

    Disclaimer: I have both an undergraduate and graduate degree in computer science, and while I have an amazing job and make more money than I thought possible, I don't think my education had *any* impact what-so-ever on my success.

    Disclaimer2: This question appears almost weekly and is clearly a circle-jerk...

    1. Re:Don't get a degree by Anonymous Coward · · Score: 0

      I agree, dont get one, so I can get paid more and more jobs.

  46. Able to Code != Professional by mtippett · · Score: 1

    Title aside, the ability to code is a workplace requirement, and if you are not looking at traveling/work internationally, you aren't going to get very far without a degree.

    Some of the "college drop out" success stories are no longer just coders. They are now C-Level executives, different rules apply. If you don't have a degree then in general you won't be eligible to get Visas to work in other countries.

    Independent about how good you are, without a degree you are restricted to your local geography (country, etc).

    1. Re:Able to Code != Professional by Anonymous Coward · · Score: 0

      Why would I want to go to some shit-hole that our for-fathers left behind because they were shit-holes then?

      College degrees aren't worth the paper they were printed on, and depending on which outsource providing nation you look at, 80% of the time weren't even earned by the person that claims to have it, and if they did earn it, then they used google to cheat to pass. There's about 1% of the top 1% from certain large outsource providing nations that are actually worth a shit when it comes to programming, the other 99.99% of them couldn't program their way out of a for loop.

    2. Re:Able to Code != Professional by Anonymous Coward · · Score: 0

      World Wide Developer Summits are rare!

    3. Re:Able to Code != Professional by Anonymous Coward · · Score: 0

      You *may* not be able to get a work visa, but in most cases it's not actually a problem. In any case, it's easy enough to set up your own company and work as a contractor. In point of fact, once you do this, there's a tendency to wonder what it is about working in an office that people enjoy so much.

      I have no idea what confusion of ideas could produce your conclusion, but I think you'll find that, while there are countries that require evidence of college education in order to obtain a work visa, it is the exception and not the rule, even in the first world.

  47. Coding vs. Degree is not Theory vs. Practice by wchin · · Score: 1

    Absolutely, to be a top notch software developer, learning to code trumps a CS degree. After all, you can get a degree but who knows how much attention you really paid in class. Further, learning to code goes beyond what is taught in a CS degree.

    However, this isn't an issue of theory vs. practice. It's like saying, would you rather have a surgeon that learned surgery the traditional route with 4 year degree heavy in science, specifically biology classes and then went to med school, etc, or a self taught surgeon that learned at a field hospital during a war? Obviously, both would have to learn the basics of surgery itself, that is the actual cutting, the sewing, etc. The former is likely to have a far better grounding in a wider range of subjects to treat the patient, even if the a particular of the latter might be better at the actual cutting and sewing.

    When one graduates with a CS degree, they might not have yet learned how to code, especially in a professional setting in a group. A coder can learn everything that a person with a CS degree learned, but that is basically going to each of the CS classes. Sometimes the hinderance to getting the degree isn't the CS classes, it's the other classes required for an undergraduate degree. In either case, to be a very good coder, you basically have to master both the theory and the practice.

  48. Yes by jackspenn · · Score: 1

    ... and I didn't have to read the article to know that. Real world experience is better than "untested outdated group think", I mean "progessive college theory" any day. I know may people make 6 figures programming who decide "I'll go to college now, to learn even more about programming" and after a semester or two they all say the same thing "I corrected my professor, he said you cannot do X or Y in JAVA, I tried to explain how we do it all the time by doing Q and R, but he just looked at me and said 'if you don't say it is impossible on the exam, you will not get credit.'" And they stop going. It's terrible when you think about the fact that more discovery and learning is going on during meetups and company events or small hack-a-thons among friends for free or little cost, than at schools charging $25,000 or more a year.

    Good Will Programming

    --
    Respect the Constitution
  49. Degree are a joke by bi$hop · · Score: 1

    I just started an upper division CS course at my university (all coding is in C), and it's already lame. Our first assignment is to solve various bit-shifting puzzles while artificially restricting ourselves to a very small number of language constructs (e.g. we can't use if, while, for, most logical operators, functions, or many other parts of C). It's not clear what we should be learning from this, other than that artificially restricting C makes it really tough. Or perhaps that wild guessing is a critical part of software development.

    1. Re:Degree are a joke by Anonymous Coward · · Score: 0

      Duh. You should be learning to think outside the box. What if you were writing for an embedded system that had a limit of 32KB of program space? Each conditional or loop you write is eating precious space in ways you may not understand. Spend a semester writing assembly, then talk to me.

  50. Yes and no. by Anonymous Coward · · Score: 0

    Does learning carpentry outweigh learning structural engineering?

    1. Re:Yes and no. by jmcvetta · · Score: 1

      Buildings large & complex enough to require a structural engineer generally aren't built by carpenters. Afaik (I don't work in construction) for large steel frame or ferroconcrete building there is role equivalent to the master carpenter on a wooden project - a single person who in theory could build the entire building by himself.

  51. Depends by drolli · · Score: 1, Insightful

    I hoold a PhD in Physics, but coding is a important part of my usual jobs (i am a consultant).

    Educating myself in conding and following a master, and then a PhD in Physics trained very different aspects of my skills.

    None of each outweiths the other, and i am feeling very confident that i will never be without a job

    1. Re:Depends by drolli · · Score: 1

      My rates will be higher then.

    2. Re:Depends by Anonymous Coward · · Score: 0

      You will be if you go for a job that requires communication (spelling) skill.

    3. Re:Depends by frank_adrian314159 · · Score: 1

      How can you guarantee that? You are a man who seems to ignore basic economics (i.e., no one can guarantee success in any market inherently driven by randomness - that's why they talk about both reward and risk) and the Dunning-Kruger effect. And before you try to escape with "I'll always be able to find work, due to my inherent hard work, hard-won abilities, and stunning personality developed over almost twenty-some years of steering toward perfection", I know that you're a precious little snowflake and all, and that there's always someone willing to pay someone extraordinary for their skills, but, really... are you actually planning on a second career as a male prostitute?

      --
      That is all.
    4. Re:Depends by drolli · · Score: 1

      You have no fucking idea of my plans (or where i live) and yet, you conclude that they must fail.

      I can assure you: Working as a prositute is not one of these.

  52. CS is not programming by Toasterboy · · Score: 2

    Computer Science is largely very specific applied math and theory. It includes algorithms, algorithm efficiency, a bunch of math, data structures from a theoretical design standpoint, and computer architecture. It tends to be very academic.

    University programs vary widely on what the programs focus on, but generally Comp Sci is about the math and theory, and programming is something you do on the side to get the assignments done to illustrate the theory you are learning. With Computer Engineering and Software Engineering programs, things tend to be more hands on and focused more on doing than theory.

    Programming, as desired by business, is NOT computer science. Business wants the most simplistic designs (i.e. always use linked lists instead of more appropriate data structures), and above all, they want you to code whatever it is FAST FAST FAST so you can SHIP SHIP SHIP. Because generally, most business are not software businesses, and they don't value developers or software beyond getting the minimum quick and dirty solution out of them as fast and as cheap as possible. Also, most business are not doing anything remotely resembling state of the art, and value the ability to hire a newbie to replace you.

    CS grads have it rough. They know too much theory to be satisfied with basic programmer jobs, but they don't know enough about efficiently slapping out code day in and day out to have an easy time in a basic programmer job. The degree can get you in the door though. A lot of places filter out folks with no degree.

    Not that there aren't some grads who still can't code their way out of a wet paper bag.

    There's all sorts of stuff about programming that you will never learn in a CS program, such as when to select designs based on implementation risk and ease of maintenance, rather than algorithm efficiency. It sucks, but the people who pay for you to write the software could not give two shits about how well the code is designed as long as it mostly works and ships on time. For the most part, that CS theory is mostly only directly relevant to later in your programming career, and when you actually have some autonomy to "do it right" versus "do it yesterday", or if you strike out on your own.

    1. Re:CS is not programming by Anonymous Coward · · Score: 1

      You still have to test your theories. Thus you need to code, and to code effectively, avoiding pitfalls and other software flaws that will poison your results. If you can't code, you can't do computer science -- one is a prerequisite for the other.

      All you can do with such a skill-set is learn about what other real computer scientists have done before you -- because you can't do a meaningful experiment if you don't understand what compilers are telling the hardware to do, and how to control that code generation to effect you will. You have to be an EXCELLENT coder to be a good computer scientist - period.

      I think the reality is there are many CompSci grads who are in love with the idea of being clever, but are wholly unprepared to fill any useful role in a real company.

  53. Programmers / Engineers are different thinkers by Anonymous Coward · · Score: 0

    The mindset required to be a good programmer or systems / software engineer is totally different from the one required to be a corporate professional.

    Unfortunately, college courses take years to define, layout, setup curriculum and teaching aides, books, documentation, etc.. By the time all of that is worked out, the language is probably dead or so changed that all of the course materials are years out of date.

    This is why college degrees in Computer sciences related to programming and systems engineering are worthless.

  54. I know this one coder who when to a 4 year state s by Anonymous Coward · · Score: 0

    I know this one coder who when to a 4 year state school and have found bugs / oversights in stuff he was worked and I'm not even in QA.

    Now it may not be 100% there flat it may be that there QA / testing does not thing out of the box / they only test with pro users who don't use / don't really need parts of what is being made. They people with an testing mine set that have the power to change settings / manually setup different starting points / etc.

    names are withheld but they are at least not working auto drive cars or autopilots.

  55. No by pele · · Score: 1

    Probably the biggest reason behind all those thousands (if not milions) of failed projects in the industry is coderz who learned how to code without learning why to code.
    A degree in computer science doesn't teach you how to code but how to think.

  56. No School Can Teach Every Technology by Perl-Pusher · · Score: 1

    You will always not have some skill listed on the requirements. When was the last time you seen : Wanted someone fresh out of school with 0 years experience in the technologies we are currently using. Though you might see:

    Wanted unpaid/paid intern!

    Usually what you will see is something like:

    Wanted highly motivated individual with at least 5 years experience C#, and MCPD certification is mandatory. Experience with Agile and SCRUM is highly preferred.
    You won't get that anywhere except by taking entry level position. And then you still could have your job taken by an H1B visa holder. Many if not most technical schools teach you to pass a certification exam and that's it. Having the certification without the experience isn't going to impress anyone but the the HR person with a checklist, you still need to get past the interview. I have interviewed at least a dozen applicants for positions over the years. I have discounted people because they had the certifications paper but not the skills. Or no breadth of knowledge. The job I ended up with my CS degree not only required programming, but also a good foundation in higher mathematics, physics and chemistry. You won't get that at a technical school. Bottom line pick a goal and get the training for that goal and a CAREER PATH after attaining that goal.

  57. It depends on field by Derekloffin · · Score: 1

    If you're just going for code grunt who just needs to implement X, then a degree is largely worthless verses just general coding ability. By contrast, if you're getting lot of 'I have problem X, can you solve it' situations, theory becomes a lot more important and the coding a lot less. However, i suspect the bulk of programming positions are more the former than the latter.

  58. Oh, geez, not this shit again by 0xdeadbeef · · Score: 1, Insightful

    By Sturgeon's Law, most colleges that offer CS degrees are diploma mills. That isn't to say they're all scams, and you could certainly learn how to program well despite your shitty education, because after all, you really learn how to program on your own in any case, but simply because they teach things like Java and SQL, instead of things like actual fucking CS, you're not going to learn how to solve interesting software problems. You're going to learn how to be cogs in a corporate hierarchy and do what the people who inspired Dilbert ask you to do, valuing keywords on your resume instead of demonstrable achievements.

    But if you got a CS degree from one of the schools near the front of this list, it's a pretty good bet you're not a retard, and if even if you're not yet a great programmer, at least you're not one of morons who can't pass fizzbuzz, and we can assume you'll learn on the job and have the theoretical background to keep up.

    "Oh, but I'm such a great programmer and I learned all that theory stuff on my own and you can't judge me!"

    Who said I was? You're the one framing it like that. Every good programmer is an autodidactic dilettante in many things. You have to be, because every job requires you inhale a bunch of domain knowledge about the real-world problem you're solving in addition to the technology you're using. You're not special.

    But the people who spent four, or five, or ten years surrounded by the some of the smartest people their age doing nothing but having fun and (mostly) learning what interests them is going to be a lot more well rounded than the kid who went chasing dollars right after high school. All else being equal, the kid who went to a good school is better at this than the kid who didn't.

    1. Re:Oh, geez, not this shit again by Anonymous Coward · · Score: 0

      Autodidactic dilettante is the best description of what a programmer has to do in the real world that I think I've ever read. Thank you for that.

    2. Re:Oh, geez, not this shit again by 0xdeadbeef · · Score: 1

      Harvey-Mudd graduate! We've got a Harvey-Mudd graduate over here!

      See, nobody cares.

      I know, but US News stupidly doesn't rank undergrad CS, only computer engineering.

  59. Re:Is Coding Computer Science? Of Course! by lgw · · Score: 1

    Many people are self-taught, not just "coding" but also computer science. It's not like you can't read a few books to get the underpinnings that will ever matter on the job.

    OTOH, I've interviewed quite a few people with degrees but only very shallow coding skills (no real understanding of pointers or debugging), and who still didn't have strong fundamentals in computer science. I seriously wonder what some schools teach for four years.

    But none of that really matters past the first few years in industry. Trying to get that first job without a degree is a heck of a thing, and of course it will pay less, but after 5 years or so it just doesn't matter.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  60. Runtime vs Runtime by drpimp · · Score: 1

    With someone that just codes, runtime equals XXX ms, with a comp. scientist, runtime equals big O notation for time and space.

    --
    -- Brought to you by Carl's JR
    1. Re:Runtime vs Runtime by Anonymous Coward · · Score: 0, Interesting

      With someone that just codes, runtime equals XXX ms, with a comp. scientist, runtime equals big O notation for time and space.

      In fairness, anyone who actually learns to program on their own can muddle through with a couple of printf's and a stopwatch to see where things are slow. the De Morgan's comment way up there is a good example. I don't care if it takes 1ns or 10ns to compute if I'm doing it a couple times. Honestly, even if I'm doing it a on a million items, O(N^2) vs O(N) isn't a big deal - hardware is cheaper than my time. If we're talking about something taking hours instead of minutes or even minutes vs seconds for most things, it might be worth seeing where the bottleneck is, but in most cases saving someone a minute a week is not worth spending an hour up front to expedite things, even if there was no possibility of unintended consequences in changes a working, if suboptimal program.

      Life and death, nukes, flight control, e-trading, billion dollar companies? Sure, they'll spend the extra cash, but getting everyone an extra 4GB or SSD will make things a lot faster for the typical small business than spending those resources on any DB or other optimization.

    2. Re:Runtime vs Runtime by jedidiah · · Score: 3, Insightful

      > In fairness, anyone who actually learns to program on their own can muddle through with a couple of printf's and a stopwatch

      That approach is so crude and unsophisticated that just about anyone would know well enough not to admit to actually doing something that primitive.

      > Honestly, even if I'm doing it a on a million items, O(N^2) vs O(N) isn't a big deal - hardware is cheaper than my time.

      No. Not really. Plus that difference you are glossing over there can mean the difference between the problem being solvable with currently available hardware (or not). There's only so much hardware you can throw at a problem before you exhaust that approach.

      Actually. The more I look at your statement, the more the mind simply BOGGLES.

      boggles...

      --
      A Pirate and a Puritan look the same on a balance sheet.
    3. Re:Runtime vs Runtime by Darinbob · · Score: 1

      Someone who just codes don't even think "XXX ms", they just think "this is slow, I need to get a faster computer".
      But hey, that's the future. The current crop of programmers only know how to tie together different parts of a framework, that's not even real programming.

      For an automobile analogy, there are car designers and factory floor workers who screw bolts in as the parts go by on an assembly line. The question is asking "does learning how to tighten bolts outweigh learning how to build cars?" We've got a generation of programmers who think the job on the assembly line is their end goal.

    4. Re:Runtime vs Runtime by TheRaven64 · · Score: 1

      Honestly, even if I'm doing it a on a million items, O(N^2) vs O(N) isn't a big deal

      If you're doing a million items, then the difference between O(N) and O(N^2) is a factor of a million. If each operation takes one cycle to complete, then on a 2GHz CPU you're going to take 500 microseconds. More plausibly, if each iteration takes 10 cycles, then it will take 5ms. The O(n^2) version, assuming the same ten-cycles per operation (which is pretty small - even a bubblesort on integers in an array will be hard pressed to be that quick), will take one hour and 23 minutes.

      If you really think that the difference between 5ms and almost an hour and a half is irrelevant, then I really hope that I never use any code that you write.

      --
      I am TheRaven on Soylent News
    5. Re:Runtime vs Runtime by Anonymous Coward · · Score: 0

      Honestly, even if I'm doing it a on a million items, O(N^2) vs O(N) isn't a big deal - hardware is cheaper than my time

      Yesterday I managed to get a customer's testing system down from 'this is so unbelievably slow that we can't show this to our managers (read: about 10 seconds to start up)' to 'this is actually pretty fast' (read: 0.5 seconds to start up) just by noticing that a library function was using a O(N^2) algorithm two times and by replacing it with my own that used a O(N) algorithm once.

      The size of the input was only about 300 items.

      And no, telling your customer that they have to buy new faster hardware for each of their 100 employees is not going to make you new friends.

    6. Re:Runtime vs Runtime by Anonymous Coward · · Score: 0

      You sound like someone that doesn't actually work with code. Internal language interpretations and branch prediction often have greater effects on process times than someone trying to calculate O the way he learned 20 years ago.

      In fact, fuck it. CIS grads priding themselves on O(n) are the some of the stupidest fucking people on the planet. They think their shit don't stink because they think nobody's ever asked themselves "How many times is this loop going to run?" Any uneducated programmer worth his salt knows that without sitting down, whipping out his dick and masturbating to the idea of "OMG.... MY LITTLE N IS SOOOO BIG AND MY BIG N IS SOOO BARELY NOT BIGGERRRR.... UNNGGGGFFFF..... ahhh.... best four years of my life..."

      Who cares? If you had run that shit through [your language's list-search process], it would have run in 1/100th the time because [your language] is better at using [list]s than [array]s, or whatever, since the latest version. Is O(n) and O(N) calculation useful if you're stuck writing sort functions all fucking day? Sure, for both guys in the country that do that. Of course. Should people wave it as their mighty banner as to why their student debt and entering the workforce 4 years later was totally worth it? No.

    7. Re:Runtime vs Runtime by Anonymous Coward · · Score: 0

      ...in most cases saving someone a minute a week is not worth spending an hour up front to expedite things, even if there was no possibility of unintended consequences in changes a working, if suboptimal program.

      Others have already pointed out problems with your approach (the mind boggles, indeed), but here's more.

      I was once called in because a query for a web-based report was taking about half a minute to run. It was expected that this report would be run twice a day at most by one or two people, but more likely only two or three times a week. After a half hour of my time, mostly spent asking questions about the semantics of the data and the desired report output, my rewritten query took roughly half a second. The business consequence of that change was converting the client's "we're not happy with the system and we'd like to discuss a partial refund" into "we're really happy with how quickly we can view the status of the system".

      You think your time is too valuable to shave off a minute a week, but that minute is still valuable to someone else. And that someone might consider their time far more valuable than your pay.

      - T

    8. Re:Runtime vs Runtime by Anonymous Coward · · Score: 0

      Original AC here. I agree with the other AC's sentiment, if not tone. I have a degree, and I've done the whole SQL+Excel+"Excel is not a database" cleanup thing too. I was defending someone who bothered to teach themselves well enough to get a deliverable - something many of my CS classmates couldn't get done.

      That approach is so crude and unsophisticated that just about anyone would know well enough not to admit to actually doing something that primitive.

      Why? If you have something generating a report as output and it takes enough orders of magnitude more than expected to complete... Why not toss in printf's and use a stopwatch to time them? Guaranteed access to the system clock isn't always available, so why reinvent the wheel by trying to shoehorn that in to already suspect code? Is it 0.5 seconds to get the data and 299.5 to format it or the other way around? The first step in solving a problem is identifying from whence it came.

      Even if a worst case DB optimize sort takes 1000 seconds instead of 1ms of CPU time, I probably don't care unless that sort is a core function of the system being run in front of humans. If I'm sorting a million files on a drive, the drive is the bottleneck, not the CPU. If I have time to spend on optimizing the operation, focusing on batching the writes that take up 99.99% of time is a lot smarter than fiddling with the sort that takes the other fraction.

      You ignored all of my qualifying statements - I specifically mentioned times in nanoseconds because that's how long it takes to access L1 cache memory on modern desktop hardware as well as lining up with a 1Ghz CPU. If nothing else, at least you can take away this link:

      https://gist.github.com/jboner/2841832

    9. Re:Runtime vs Runtime by Anonymous Coward · · Score: 0

      Honestly, even if I'm doing it a on a million items, O(N^2) vs O(N) isn't a big deal

      If we're talking about something taking hours instead of minutes or even minutes vs seconds for most things, it might be worth seeing where the bottleneck is, but in most cases saving someone a minute a week is not worth spending an hour up front to expedite things , even if there was no possibility of unintended consequences in changes a working, if suboptimal program.

      If you're doing a million items, then the difference between O(N) and O(N^2) is a factor of a million. If each operation takes one cycle to complete, then on a 2GHz CPU you're going to take 500 microseconds. More plausibly, if each iteration takes 10 cycles, then it will take 5ms. The O(n^2) version, assuming the same ten-cycles per operation (which is pretty small - even a bubblesort on integers in an array will be hard pressed to be that quick), will take one hour and 23 minutes.

      If you really think that the difference between 5ms and almost an hour and a half is irrelevant, then I really hope that I never use any code that you write.

      Original AC here. Like the other commenter, you ignore the 1ns qualifier on the million access example and the fact that I explicitly called out the minutes vs seconds as potentially worth examining. I've bolded it for you.

      If the sort algorithm for a million file disk operation takes an hour instead of a millisecond... I probably don't care since the drive is likely to be spinning for tens of hours anyway. I worry about things that takes thousands of large time units before I worry about thousands of small time units. If I have time and budget for both, great, if not, I just worry about the numbers left of the decimal point.

  61. It's a business by GWBasic · · Score: 1

    Schools are in the business of producing degrees and protecting their reputation. They aren't in the "teaching" business. If I knew more about computer science when I was in high school; I'd have applied to very different schools. Unfortunately, I needed a few years in my career to really learn how to judge a school.

    1. Re:It's a business by Anonymous Coward · · Score: 0

      Schools may want a reputation, sure. In my experience, nothing is better for reputation than being able to say "Big companies (located several schools away) send recruiters here to hire half the class every year. And they don't bother with those scools in between."

      So how to get that sort of reputation? By "teaching" well. By understanding what the industry needs. By producing graduates who knows their stuff, and mercilessly rejecting those who don't. Fewer degrees in the short run, more in the long run when good students flock to the "success school".

  62. It's not exactly one or the other.. by Anonymous Coward · · Score: 1

    Every great programmer I know has a university degree AND learns to code on their own. The college grads that don't have any skills probably haven't bothered to look at any open source code or learn anything on their own.

    Some purely self-taught developers are good but most lack the theory to really understand what is going on behind the scenes. This often leads to terribly inefficient or necessary code.

  63. it depends on the degree by thebeastofbaystreet · · Score: 1

    I was lucky enough to study in a department that made all computer scientists write a lot of code. I often interview CS grads these days however who've basically done none. To answer the original question though, the combination of being able to code, having been taught to do the basics well and having a good theoretical foundation in algorithms and other areas of CS is unbeatable. Being a self taught coder with good experience who does it for the love of the art is better than having a low quality CS degree and no interest in programming though.

    --
    my blog of work misery - http://beastofbaystreet.com
  64. Re:Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 1

    Actually, we had to put into practice a great deal of computer science theory just recently when working on a budget modeling application for a major public transit agency.

    The amount of data and the complexity of the calculations involved demanded either a machine with a large number of compute cycles or some nifty CS theory-style rejiggering on the back end. In the end, the whole thing will run nicely on a modern, fairly average laptop as opposed to requiring the processing power of a huge server (or cluster).

    In the end, I would say that universities should tip the balance of education away from theory and more toward practicality, but the theory is still important.

  65. Short-term versus long-term by Tablizer · · Score: 1

    In the short-term if you take the time to become a master coder on your own, you can probably get a decent job as a coder and avoid a few years "wasted" in school.

    However, if you later grow tired of coding, wish to move into management, get RSI and wish to do other IT, etc., then the degree will have notable benefits. HR departments feel more comfortable with degrees when it comes to hiring semi-generalists.

    Look at it from HR's perspective: If 19 candidates with degrees and 1 without apply, if HR selects or approves the 1 without and things go sour, HR looks pretty bad. If they pick a degreed person and things go sour, then it looks more like a random bad apple.

    Plus, a degree exposes you to more subjects than just IT, making you more well-rounded, and perhaps a better communicator.

  66. It's theory vs. practice by Todd+Knarr · · Score: 1, Insightful

    The difference between someone with a Computer Science degree and one who's learned practical coding is the difference between a residential-home architect and a construction-oriented master carpenter. The first can design your home and tell you why it's designed that way. The second can actually build it, tell you what goes into the construction and why, and when certain design elements are going to muck up the physical realities. In the end, you're going to need both skillsets unless you restrict yourself to just building cookie-cutter copies of existing house plans. And ideally your senior people should have both skillsets so their designs take into account the grungy details of turning them into working code.

    The absolute worst situation is senior architects/designers with no practical experience, they tend to turn out beautiful, elegant masterpieces that're a nightmare to actually implement. That's followed only slightly by pure practical programmers trying to do high-level design while being ignorant of the overarching principles and abstract concepts that help guide you when it comes to what's the best way to approach a problem.

    1. Re:It's theory vs. practice by Kjella · · Score: 1

      The absolute worst situation is senior architects/designers with no practical experience, they tend to turn out beautiful, elegant masterpieces that're a nightmare to actually implement.

      And that fails to actually fulfill the requirements because reality doesn't conform to their model, rather than the other way around.

      --
      Live today, because you never know what tomorrow brings
  67. Coding is the best way to learn coding. by jcr · · Score: 0

    I didn't bother with college. When I graduated from high school, I figured that four years of experience would be worth more than the degree, and that proved to be the case.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
    1. Re:Coding is the best way to learn coding. by Anonymous Coward · · Score: 0

      That's a dangerous advice.

  68. People Cheat by ZombieBraintrust · · Score: 1

    It isn't true that Universities don't focus on practical coding. In school I had to code many things. They had to work. Many students cheat. They have other people do their assignements. Or they do the assignments with a study group. Or they use google to find the solutions to problems. They get out of school and cannot program simple things. This is why internships are so important. Companies need to try out people before the commit to them. They need to work with for a few weeks to see if they are fakers.

  69. They must Want to code.. not for "job security" by JacobA.Munoz · · Score: 1

    Classess or not, the issue is never going to be the "ability" to program, it's the desire to program that will be most important. Skills can be learned and updated, but the desire is the most important factor you cannot teach. Being a programmer involves lots of frustration sporadically broken by moments of accomplishment - Its really not for everyone. I have several friends who simply refuse to handle "coding" in any real sense for extended periods of time, they just burn out. I'm not comparing this work to manual labor where you reach a point of physical exhaustion, it's more of a kind of self-esteem exhaustion. When you reach a problem you simply cannot mentally abstract and solve, you can get very depressed. Most people hit this wall with no inner incentives to continue further, they assume "this is all I can understand" and decide they can find more satisfaction doing something else. Its not necessarily a bad thing, I do the same thing with advanced calculus - I simply do not understand much of it, so I go elsewhere and focus on functional logic instead (aka: programming). If we didn't do this, most people would be even more miserable for most of their lives because they're not doing what they really want. I don't diminish calculus, I just have no inner burning desire to comprehend higher calculus. Perhaps more exposure to programming and logic will give more students the chance to see what programming lets them do, but a badly-conceived course can ruin the experience and potentially drive away as much interest as it gains. And as a career, programming is not exactly stable or secure with long-term advancement - its more cutthroat than most markets, so telling students that programming is reliable work is misleading.

  70. Not vocational school by Lawrence_Bird · · Score: 1

    College degrees are not the same as those from vocational schools which is what it sounds like at least some in industry prefer. Nobody graduating with a college degree has a very high skill set for a particular task - not even accounting majors. All start on the lower rungs but are expected to advance rapidly because they have the necessary broadbased knowledge to learn and use knew skills effectively. Simply put, they are not one trick ponies. Did somebody say ponies?

    1. Re:Not vocational school by frank_adrian314159 · · Score: 1

      Did somebody say ponies?

      OMG!!!!11!!!

      --
      That is all.
  71. Learning has nothing to do with "degree" by netsavior · · Score: 1

    If getting a degree is part of your career plan, it is probably worth it. If you expect to "learn a trade" or "see where you land" or "get an education" you are in for a huge sea of debt and disappointment.

    If you are going to college to learn to be a computer programmer, that might be possible, but it will be NP hard, and I have never seen it done successfully.

    There is this kind of false dichotomy that ignores the benefit of a degree because everyone confuses a college education with "learning."

    The day I showed up for freshman orientation, I had all the skill I needed for an entry level programming job... I know because I started both at the same time. The people in my classes who were ALREADY coders were the only ones who did not drop the classes. You go there to learn what everyone else calls that one cool trick you saw that one time (recursion, or tree-sort, or adaptors or injection or bitwise and or whatever). You go so you can commiserate in your peer interviews about "towers of hanoi" and "9 queens." You go so you can prove to an employer that you can do something hard for 4 years. You go so you can get past the HR desk monkeys. You go so Mister CEO won't feel bad paying you 100k for doing 'puter stuff.

    Learning to code is a completely different thing from getting a degree in computer science. They are married in people's heads, but they are oranges and orangutans. You don't go to the SAT to learn to do math. You don't go to the DMV to learn to drive. You go to PROVE you can do something roughly equivalent to the thing that future employers want. As bad as the comparison is, there is nothing else (and no Certifications don't do anything).

  72. Experience versus Credentials. by bigpat · · Score: 3, Insightful

    This is an age old question not necessarily particular to Software Engineering... Are credentials or experience more important?

    I would say experience is what you need to do the job, while credentials are often what you need to get the job in the first place and advance your career beyond your current role. I think that holds true for the majority of jobs, but there are plenty of examples and counter-examples of people having success without experience and/or without relevant degree credentials. Career wise I would suggest maximizing the financial return on all your strengths in the near term and either address your weaknesses as best you can or just go around them. Medium to long term always be looking to fill in the gaps in your experience or education that might be relevant to the types of jobs you may want/need in the future.

    1. Re: Experience versus Credentials. by BigThor00 · · Score: 1

      The problem is there is a shortage of jobs to develop experience.

    2. Re:Experience versus Credentials. by thunderclap · · Score: 1

      Credentials are meaningless without experience. Experience can only be gained by doing. The best examples are the coders who hacked the icloud. There are craploads of people with MS in Comp sci who couldn't even comprehend that Icloud is like a safety deposit box at a bank, let alone fix the problem with the other service that allowed the break in,. (and if it turns out its good old social engineering then that makes my point even sharper. Most MS CS can even begin to compete with that) If you doubt I will point you to Thomas Edison and the light bulb. Look how many times it took for him to succeed, Where were his credentials?

    3. Re:Experience versus Credentials. by Xest · · Score: 1

      It depends on your definition of experience, I had a CV sent to me just the start of this week - "Exceptional candidate, 23 years software development experience" and sure enough there was 23 years professional development employment on his CV. But here's the thing, he was only looking for £40k a year, that rings alarm bells with me, why would someone with such a vast amount of experience only be looking for a mid-level salary at best? after all that time I'd expect him to be looking for at least double that if he was actually any good (I don't buy the argument that maybe he wanted an easier life - I've found the higher you get up the career ladder, the easier it gets, not vice versa).

      The problem is that some people's 10 years of experience is actually just 6 months of experience repeated 20 times over - they've sat and stagnated doing the exact same thing, such a candidate doesn't really have 10 years of experience, they've got 0.5 years experience and 9.5 years of time spent not improving or learning anything new.

      Consider this question, who would you rather employ, a guy like that I mention above with over 20 years experience but nothing to suggest there'd been any real progression of skill or understanding in much of that 20 years, or Sergey Brin and Larry Page in 2001 when they only had 3 years professional experience but had turned the search engine market on it's head creating a multi-billion dollar company?

      That's why I tend to think experience is meaningless, it can give you a rough understanding sometimes, but I've seen kids fresh from university but with an incredible passion for the subject that meant they spent every minute not studying working on open source projects and so forth perform far better than folks who'd been sat in the same chair for 10 years stagnating.

      So I'd say credentials (providing they can be authenticated as being valid and not made up), experience is too often misleading, it doesn't really tell us anything of any worth and I've never ever once made a hiring decision based on experience, if I had I'd have lost way too many good candidates and potentially ended up with far too many wasters. Good credentials stem from years of good experience anyway, so good credentials tell you what you need to know without the murkiness and chance to mislead provided by experience alone.

    4. Re:Experience versus Credentials. by bigpat · · Score: 1

      Experience and credentials always need to be judged against the Job being offered. I agree that merely looking at the number of years of experience in a broadly defined job type is meaningless. The meaningful experience is what a person actually did in their job, not what their job title was.

    5. Re:Experience versus Credentials. by Hentai · · Score: 1

      It depends on your definition of experience, I had a CV sent to me just the start of this week - "Exceptional candidate, 23 years software development experience" and sure enough there was 23 years professional development employment on his CV. But here's the thing, he was only looking for £40k a year, that rings alarm bells with me, why would someone with such a vast amount of experience only be looking for a mid-level salary at best? after all that time I'd expect him to be looking for at least double that if he was actually any good (I don't buy the argument that maybe he wanted an easier life - I've found the higher you get up the career ladder, the easier it gets, not vice versa).

      I've been exactly that guy. 20+ years experience, applying for a US$35K salary.

      Because between mental health issues and just being tired of work-related drama, I didn't think I was worth the $120K I used to get.

      And yeah, I get that self-confidence and salesmanship go a long way, but they're also really tiring for some people to emulate.

      --
      -Hentai [in vita non pacem est]
    6. Re:Experience versus Credentials. by Xest · · Score: 1

      Sure, don't get me wrong, I have a few friends are the same - some people are fine to stay low and take an easy life, and in many ways I respect that (being career driven can be a curse as much as benefit - you often find yourself running out of time to simply unwind and have fun because you spent it all learning), but if you're looking for the people with the greatest ability to do the most fantastic job you need those driven people who have put in the time and effort to keep learning - I'm not saying either side is worse than the other, I'm just saying I wouldn't have a place for them in my line business, we don't just do run of the mill CRUD stuff, we need people who can genuinely innovate and create great new products and who are driven to constantly improve their skillset to keep pace with that.

    7. Re:Experience versus Credentials. by Hentai · · Score: 1

      I'm just saying I wouldn't have a place for them in my line business, we don't just do run of the mill CRUD stuff, we need people who can genuinely innovate and create great new products and who are driven to constantly improve their skillset to keep pace with that.

      Okay, so serious question:

      how can someone who used to DREAM of jobs like that, who has become completely disillusioned and beaten down by having to code crappy CRUD work for 15+ years, break out into the kind of work you do?

      --
      -Hentai [in vita non pacem est]
    8. Re:Experience versus Credentials. by Xest · · Score: 1

      I guess it's potentially as much about where you live and whether such opportunities are available, but I'll be honest with you I've done a brutal amount of CRUD work myself before I found what I was looking for - there's not much of it where I am in the UK unless you live in London or Cambridge. More than anything I'd say it's a result of two things:

      1) Studying maths such that I can genuinely come up with solutions to problems that your average developer will say "That's not possible", this doesn't require a Phd, but even graduate level maths is enough - fundamentally all you need to be able to do is know what tools exist in the mathematical toolbox, you don't have to know how to implement them off by heart, but if you can turn around and say "Well, that's a classification problem, we're going to need something like neural networks", or "That's an optimisation problem, we can frame it like the travelling salesman problem and look at algorithms that provide approximate solutions from there" then you have everything you need - the actual math and implementation details can be learnt or read up on from articles in books or on the web after that - the key thing is knowing what the options are, implementation and use of the math in question can come when it's relevant.

      2) Going through enough of the CRUD crap to get to a level where I'm respected enough to be able to make the choice about when we try something new. For years I saw opportunities to make our products better wherever I worked but when I was starting out no one listens, you've got to know when to say fuck your boss saying no and just do it anyway so you can show them it does work - remember the adage, "It's easier to just do something and ask for forgiveness, than it is to get permission in the first place" or in cases where you know you'll get shot or wont get chance to do it you're stuck doing things the old fashioned and ineffective way, or just not solving said problem at all and leaving some feature out of your software.

      So it's ultimately about being able to show you can do it, and using a combination of that, and sitting out the boring shit long enough to get in a senior enough position that there's someone to tell you you can't take a risk and try something different to make your product better than the competitors. It gets easier and easier - the more you take that risk and it pays off the more you're given the freedom to do so. I never did it, but it often crossed my mind that maybe there were times I could've sacrificed some of my spare time to prove ideas I wasn't allowed to prove at work, whilst I don't think people should have to do that due to the fact I firmly believe in people having a good work life balance, it's an option depending on how much you want something and if you feel it's the only way to make yourself heard and get that respect to have the freedom to do it at work in the future. But above all else, you need that ability mostly through maths/comp. sci. knowledge to be able to see scope in everything you do to do it better in a way that's maybe not been done before to differentiate your product.

  73. No, The CS degress is essential if you are real by Anonymous Coward · · Score: 1

    I would of never learned about algorithm complexity (Big O notation), the cpu pipeline (The dream of computer science), or data structures (lots of pointers ewww) on my own. Maybe some people could do this but definelty not me and I came into college with 2 years of java and basic. College made me confront these corner stone aspects of computer science and conquer them. Even after being out of college for two years they affect the way I code everyday. Sure you dont need a degree if you want to be a dime a dozen web app program for some CRUD website. Even as I write this I can already see the commits comming in from non-degree people that have horrible runtime complexity code.

  74. Degree is not carrer preperation by EMG+at+MU · · Score: 1

    While theory does have its place, the situation raises the question of whether colleges are teaching the right skills people need to join the workforce, and what its place is amid the rise of open source learning.

    This part:

    raises the question of whether colleges are teaching the right skills people need to join the workforce

    begs the question of whether or not a university exists to train people to enter the workforce.

    I do not believe this to be the case. I think that if you are resourceful, think critically, and learn quickly you are employable in many fields. You are ready to join the workforce. If you are all of those things we can basically train you on the job. Then why get an education at all? To build knowledge.

    University educations exist to expose you to knowledge so that you can use that knowledge and your critical thinking ability to synthesize solutions.

    Example: Understanding algorithms and data structures + critical thinking = knowing when to use a linked list vs an array.

    You can tell a programmer: "use an array for faster random element access and use a list for faster element inserts at arbitrary locations". Great, he/she might remember, probably doesn't understand why thats the case but whatever. Now in some new standard library there is a Map. The guy who actually understands data structures is now gone and the programmer doesn't know what the fuck a map is nor how to use it. Thats not a good situation.

    Now if that programmer had gotten a CS/CompE education he would have the tools to synthesize a solution based on the knowledge he as about data structures and his critical analysis of what is important in the problem's context.

    The programmer could receive data structure / algorithm knowledge on the job but thats not what is going to make his company money. If he comes into that job with that knowledge then he can learn the domain specific knowledge of whatever his company is and then start solving problems.

    I think it is really sad that people expect to be trained in a university. It is short sighted because that training will one day be obsolete and then your fucked, and it also allows the student to shift the blame when they can't find a job. The student can rationalize it as "my university didn't train me, now I cant find a job" instead of " I don't have the skills to be employable (resourcefulness, critical thinking ability, good learner), so despite the fact that I got a 4.0 and can regurgitate shit from a book I don't have the ability to synthesize solutions so I'm useless.

    /rant, I'm just really sick of people bemoaning the university system when it is very clear that they just expected to be handed a great job despite lacking any kind of critical thinking or problem solving skills. In university you (largely) get rewarded for recitation, in a job you get rewarded for synthesis. If you cant turn your knowledge into solutions to problems you are just a walking book.

  75. Maybe not, but it can help too by technomom · · Score: 1

    I don't think a degree is necessary but a lot of everything in your work life depends more on where you intend to go from there. College can also give you skills in business, leadership, writing and negotiation skills. Those can be very helpful if you want to ever get out of the coding business or just want to expand your horizons outside of coding. The thing you find out quickly in this business is that there are a lot of coders, but fewer people who can organize requirements from customers, architect solutions to scale to enterprise level, negotiate a schedule for release, or even lead a group of programmers in a large scale project. Yes, even those things might not require a college degree, but if you don't have those skills to begin with, college can be a good place to acquire them.

  76. Re:Waiting for the Apple ii assembly language stor by UnknownSoldier · · Score: 2

    At the risk of being pedantic, you mean Apple ][ and Apple //e, but now that is out of the way ...

    Lots of game programmers never bothered with a CS degree.

    The world has moved from the 1980's. Whether it be programming, or devops, having a degree helps make you stand out and get past the HR drones.

    Once you have 5-10 years _experience_, no on cares about the _theory_ that you learnt, or were supposed to know.

    Having a degree gives you the possibility for more doors to be open for you. Not having a degree doesn't give you the same opportunities.

    --
    "Theory always comes after Application"

  77. More than 20 years... by RedMage · · Score: 3, Interesting

    We've been arguing this for more than 20 years. Not much has changed, and it's not a new question. Code Slinger vs. Book Knowledge. College of Hard Knocks vs College of Ivy. I'm a greybeard now, and while I won't pretend to answer the whole question, I will provide some perspective...

    I was a code slinger type - Right out of high school with some programming knowledge, some commercial success (with the C64), and whole lotta balls. I did some college, but it wasn't for me at the time. It didn't connect with what I wanted to do, which was code. I joined a contracting house, and they sent me all over the country. I learned more in 10 years doing that than any college would ever teach. Databases, Integration, GUI's, network programming, mulithreaded programming, and real-world problems, both programming and political. C, C++, Cobol, Fortran, BASIC, assembly (various), and eventually Java.

    In the late 90's, I went back to school. Why? Not to learn programming - I was already at the top of my game. I went back to learn all the other stuff, and to do other things. I took psych courses, math courses, art classes, electronics, music, law, languages (Living: French, Dead: Nahuatl) ... I did it on my terms (Harvard Extension, no time limits.) I will graduate next year.

    Do colleges teach some basics? Sure - Data algorithms and Graphics programming were very useful. Are they realistic? Not really - sometimes horribly so. Massively Parallel Programming was a mess of math decomposition problems I dropped quickly. Did I need them to enter a career of commercial programming? Nope.

    I would say college education is not a prediction of coding ability. Having a college degree when you are entering the field can be useful, but having a CS degree IMHO is not any more useful than a general BA or BS. If you go to college, go to get a general education, learn how to think critically, expose yourself to some interesting things - but it is NOT a training program for coders. Technical schools are a whole 'nother thing, and I would avoid them like crazy. My experience is that they do train you, but the training is narrow and short-sighted. In the end, it would be throw-away time, and the student would have very little gained.

    College? Sure - go do it. You will be a better person, and you will have some great social experiences. But if you want to code, you need to put the time in yourself and learn the skills. College won't teach you that.

    --
    }#q NO CARRIER
    1. Re:More than 20 years... by Anonymous Coward · · Score: 0

      do you actually speak Nahuatl? does it drive you crazy when you hear some hick say "chi-pol-tay" ?

  78. You need both coders and designers by bugnuts · · Score: 1

    If you only have designers with degrees, nobody will be happy doing grunt work. User interfaces will suck. Artwork will suck. That isn't to say nobody can do art or user interfaces, but a self-taught person will have more drive to learn what "feels good" instead of the bare-bones proof of concept.

    If you only have coders without any degreed theorists, code optimization will regress to converting bubble-sorts to shell-sorts. There's a reason theory is taught. Self-taught coders are unlikely to have ever computed the big O of an algorithm or done a recurrence relation or converted a complex math problem to a tractable computer program.

    A mixture of both can be useful for actually making stuff.

  79. It depends by bananaquackmoo · · Score: 1

    It REALLY depends. There are several fast-moving and emerging programming disciplines which are too new to even exist at an educational institution yet. Once they DO exist at an educational institution, you can bet the info is outdated and the people teaching them have no idea what they're doing. Now I hear you saying that if you learn the fundamentals in school that they're applicable elsewhere. This is true, assuming they're the correct fundamentals, and there is a good possibility they are NOT. Once again, outdated info can hurt in the programming world, depending on which area you end up working in. Someone else posted about needing a degree to get past HR. Once again, this is partially true. On the other hand, if you make your own project, library, framework, or some other programming project, release it into the world and show it off, people WILL hire you. These days the #1 request I get from anyone is "show us your github code repository" or "show us examples of your work." It is ENTIRELY possible to get coding work without a degree. In fact, sometimes the people doing the hiring will PREFER that. That said, a large portion of college has NOTHING to do with learning a profession.

    1. Re:It depends by Anonymous Coward · · Score: 0

      Yes. I absolutely require seeing a public repository of code before hiring anyone. It not only proves they can invest time into projects, but also that they know version control. Before I took over hiring, we had a guy that refused to learn version control (we used SVN at the time, switched to git a few years back). He ended up costing us a LOT of money because he destroyed some of our repos due to his ignorance and unwillingness to learn a fairly simple concept. He supposedly graduated at the top of his class from UC Berkeley with a Masters in CS, but we all suspected he lied about it after that tragedy.

  80. Statistics from old mainframe days? Or military? by DutchUncle · · Score: 2

    How much of that "nearly half" without a college degree is from the era when computer science degrees didn't exist? I went to a Top 10 engineering school, and we didn't have "Computer Science" or "Computer Systems" until my junior year - the closest was either a Math or EE specialization. There were already people leaving college early directly for industry, because the market was hot in both industrial and military applications. Alternatively, how many are from military training? I have worked with two people, both at the engineering level, both alumni of Air Force technical training in computer-based systems.

    I concur with the many posters pointing out that a degree isn't just about coding; I keep having to fix things by people who can code, but never learned to DESIGN.

  81. Re:Is Coding Computer Science? Of Course! by dnavid · · Score: 2

    I'm assuming the vast majority of programming jobs require the ability to code, and no further domain specific knowledge. This is just based on my reading of many, many programming job listings over the years.

    I'm sure there are jobs that require CS knowledge, just as I'm sure there are (programming-related) jobs that require Biology knowledge or Architecture knowledge or whatever. But all of those are niches: a very small subset of all programming jobs require those specific areas of knowledge. ALL programming jobs require coding though, and even among the ones that require domain-specific knoweldge, I'd imagine the bulk involve a lot more coding than anything else.

    You don't need "domain specific knowledge" to code, but I think most such programmers are subpar. Code is like writing; you only need to know English (or your native language) to write, but if that's all you know then you're not going to be a particularly useful writer. Code implements algorithms, algorithms solve problems, and knowledge of the problem space is always not just valuable but the difference between uninteresting scribbles and a best selling novel.

    A lot of the time, code supports other code; its code designed to address computer system issues explicitly. Knowledge of how computer systems work is essentially to being able to write or debug or sanity check reasonable code. Sometimes code directly tackles a non-computer problem like code to analyze data in another space. Its not *mandatory* to understand that space, but its extremely limiting on a developer to write code to analyze data about a subject matter they know nothing about. They will always need someone else to translate every little thing for them, and they will never be able to know if their code is actually doing something useful. If it goes awry, someone else will have to tell them that.

    You have to be an extremely stellar programmer to be worth it, if you don't understand what you're coding about.

  82. Re:Is Coding Computer Science? Of Course! by Tuidjy · · Score: 1

    OTOH, I've interviewed quite a few people with degrees but only very shallow coding skills (no real understanding of pointers or debugging), and who still didn't have strong fundamentals in computer science.

    It's not that I doubt you, but how do you catch that? I am actually asking, not being facetious.

    By the time I invite someone for an interview, I have looked at their resume, and I have had them answer a few questions that are supposed to tell me of their CS grounding OR of their command of google and their ability to wade through bullshit.

    At the interview, I mostly talk about their projects and give them short task that tell me about their programming tasks. I certainly expect to notice if an applicant isn't comfortable with pointer arithmetics, or has never wondered about character set representation, for example.

    But their understanding of CS fundamentals? Sure, I try to see whether they come up with the test answers on their own, or looked them up, but for the rest... Unless you are counting basic algorithms and complexity, you need time to see how well grounded they are. And if they lack the programming skills, I will let someone else investigate their CS credentials.

    --
    No good deed goes unpunished...
  83. what does this say about /. editors? by Anonymous Coward · · Score: 0

    What does this say about /. editors?

  84. The degree matters unless you are your own boss. by Anonymous Coward · · Score: 1

    My husband was involved in coding and tech for years because he got in the game before a degree was a requirement. But he capped out on his salary and companies refused to pay him higher even though he was more skilled and managing most projects, because he didn't have a stupid degree. He had 12 years more experience over everyone around him and was actively training and updating his skills, but still they refused to pay him 6 figures without the degree. That company tanked and went under a year after he quit and he is in business for himself now making more money than ever. But because of his own rules, own company.

  85. Whatever allows you to add value by Anonymous Coward · · Score: 0

    Coding is about being smart and solving problems. Especially modern coding, it's less technical and more listening to business/users and using existing systems to solve a problem.

    In my education practicality was very important, every quarter we did a project with a group resulting in a working piece of software. I don't know what US computer science looks like but maybe they are not teaching what the companies need.

    I think the value of a degree depends on what you want to do. If you want to design websites (visually), a highly technical degree is probably not that useful. I don't mean to say that work is easy (I could not do it) you just don't need to be technical to do a good job.

  86. It depends. by Anonymous Coward · · Score: 1

    A CS degree is a foundation of knowledge on which to build a career as a programmer. In much the same way as an accounting degree can lead you to deeper understanding the numbers that any layman can plug into Quickbooks. It doesn't mean that one person or another will be better at it ... each will perform as their ability and interest permits ... but a degree holder might have a deeper understanding of how the internals work. Sometimes this yields helpful benefits.

    As an example, a year or so ago I was reading some online MS documentation about one of the generic containers in .NET which claimed O(1) efficiency. My degree knowledge told me this was at least improbable and very likely impossible, so I wrote a test program and discovered O(n) efficiency. Without looking into the matter any more, I immediately understood why the documenters claimed O(1) (they were judging the hashing part of the algorithm, not the lookup part) ... and also immediately knew the coders chosen an utterly horrible implementation. Using this knowledge, I put together my own O(log n) solution which ran orders of magnitude faster than the readily available generic container in .NET. Discussing the matter with some non-degree-holding co-workers yielded a lot of blank looks ... until I explained what O() notation was ... and explained why it told me how the internals of some sight-unseen .NET library were operating.

    Degree holders also have some cross-field knowledge ... most programs require some amount of physics (probably calculus based) ... some EE ... some telecommunications. I wouldn't have any knowledge at all of wireless spectrum, bit rates as a function of frequency, or signal attenuation today had it not been for a college education. Is that directly applicable to writing a for-each loop? Nope. But knowledge pays dividends in unexpected ways every day.

  87. Re:Waiting for the Apple ii assembly language stor by Anonymous Coward · · Score: 0

    In my day we had to scan the disk for D5 AA 96 and we were happy!

  88. Re: Is Coding Computer Science? Of Course! by RavenLrD20k · · Score: 5, Interesting

    You may have a BS in Comp Sci, but I'll tell you one thing: I'd really hate having to read your Implementation Docs or code comments if they look anything like the post you just made.

    Your post also brings into question exactly how good of a programmer you really are as well. You see, English, much like programming, has a structure and a syntax. While you may have syntax, there is no structure. You may not have to compete for a job with someone who doesn't have a BS in CS, but you will most certainly have your cover letter compared to another person with a BS in CS who actually puts structure into his correspondence.

  89. Re:Is Coding Computer Science? Of Course! by machineghost · · Score: 2

    The amount of data and the complexity of the calculations involved demanded either a machine with a large number of compute cycles or some nifty CS theory-style rejiggering on the back end. In the end, the whole thing will run nicely on a modern, fairly average laptop as opposed to requiring the processing power of a huge server (or cluster).

    I can't speak to your case specifically, but there's a trend in our industry (because of virtualization, AWS, etc.) to do the exact opposite of what you did. The basic equation of why goes like this:

    X = the cost of a programmer for a month (or however long it took), including not just their salary but also their medical, 401k, the fractional cost of their manager's time, etc.
    Y = the cost of the cheapest AWS machine you could get away with for the next 5 years

    If X > Y then you're wasting money/your programmer's time by making them optimize the code.

    So again, I can't speak to your specific case, but a basic truth is that people are expensive and hardware is cheap, so it takes a lot of hardware to make an optimizing programmer worthwhile.

  90. Wrong Paradigm by wisnoskij · · Score: 1, Insightful

    It is not as simple as theory vs practice. Yes, Comp Sci is very theory heavy and far too much so for the workplace. But companies are often not just looking for code writing monkeys. Being able to code is not nearly enough to actually write a useful program or even just a tiny part of it. You need a lot of math and advanced logic, and at least some of that theory they teach in comp sci.

    Otherwise it is like trying to solve calculus problems without any formal calculus knowledge; You might be able to hack your way through it, but that is about it.

    --
    Troll is not a replacement for I disagree.
    1. Re:Wrong Paradigm by Anonymous Coward · · Score: 0

      I found after being a "code monkey" that I learned a few tricks when I studied computer science. But actually I don't use more than 10% of those tricks I learned there. Data structures and some algorithms for instance, and maybe some numeric math. It turned out later I kept learning quite a lot more tricks to the point people used to call me the monster. I didn't even got the best notes but actually many things were uninteresting. Like grammar theory for compiler construction. Many things were even old ideas based on big huge tables and such. There should be like 1% or less of people who ever used that after finishing the career. I remember there was also all that database theory stuff. A load of saliva and boyce codd theory to finish in normalization and SQL. And today even most people don't even does normalization, or can't cause object relational mapping doesn't let it and probably even soon relational databases go completely out of style. Is like... hmm so much time of my life wasted. Is not that all was wasted many things were valuable, but I mean the universities should come closer to software houses to focus on the important things and study more how the computer world is evolving instead of laying in so many old ideas.

  91. Re:False premise - Negative by Anonymous Coward · · Score: 0

    Eh wrong.

    I've been working in the industry for 28 years, during my last year of high-school to now. College would have been a step back.

    I've worked with College grads that couldn't program a simple for loop, or think outside what they were taught.

    I'd rather have a no college person with the right attitude and aptitude than any masters program computer science guru any day of the week, and twice on Sundays.

    When the college folks say "It can't be done" i'm usually halfway through implementing the solution.

  92. False premise by Anonymous Coward · · Score: 0

    As an IT professional since 1994, I can safely say that you are 100% wrong in your assumption. I did not complete high school, I have never been to college, and I have only held two IT certifications (neither were in Microsoft products). However I live a very comfortable life making six figures because I have the experience, desire, and will to not only try and keep my skills updated but improve them when possible. I have seen many programmers and other IT professionals out there that have ended up at Burger King simply because they wanted to get someplace where they could make money and did not care what career path they took. I learned UNIX and Linux simply because I wanted to and it has lead me to a very productive and happy life. All without a piece of paper and the debit that goes with it.

    All that being said, I do believe that over the past 20 years in IT, it would have been very helpful to have been to college for the purpose of learning more of the math and much of the theory behind computer science. It isn't a waste to go to college for an engineering degree in CS, but rather an addition to your experience and a certificate of proof that you are willing to put your money where your mouth is and buy into the field (literally) with four years of your life.

  93. Regulated industries by tepples · · Score: 1

    You've never needed a degree to do anything. You can learn anything on your own in time.

    Not necessarily. Several regulated industries, such as law and health care, require a degree as a condition of a license to practice. Other fields, such as development of software in industries where closed platforms are the norm, require some employer to take a chance on you first. And a lot of times, a relevant degree is the only way to convince an employer to take a chance on you.

    Having your own successful projects, some interesting employer history, or a degree are the only ways they can tell really.

    In a regulated industry, there's not much of a lawful way for "your own successful projects" to happen before you get hired.

    1. Re:Regulated industries by Anonymous Coward · · Score: 0

      Several regulated industries, such as law and health care, require a degree as a condition of a license to practice.

      That's not necessarily true of law. While most lawyers get a law degree, it is possible to go through an apprenticeship program instead (at least in some states). Also, until relatively recently it was possible to take the bar exam without any preparation. I think that Montana was the last to add other requirements beyond passing the bar in the 70s.

  94. Re:Is Coding Computer Science? Of Course! by Oligonicella · · Score: 2

    ... so it takes a lot of hardware to make an optimizing programmer worthwhile.

    If and only if that programmer does the optimization after coding and has not learned to code in an optimized fashion to begin with.

  95. Re: Is Coding Computer Science? Of Course! by Oligonicella · · Score: 1

    Have to agree. I read about the first two lines then thought "Screw it" and jumped to your comment.

  96. Only if you never want a good job by gweihir · · Score: 1

    There are a lot of programmers that do not make a lot of money and have low job-security. That are those that do not know theory, background, algorithms, complexities, etc. In order to be more than a low-level code monkey, you need all that Comp Sci knowledge and skills. Of course, you also need to teach yourself coding, as most CS programs are indeed weak on that, but learning to code is easy if you have the talent for it. If you do not have that talent, do not go into the field in the first place, you will never be any good. And yes, there are quite a few CS graduates that do not have the talent for programming and hence will never be good programmers. That is likely what these employers are picking up on.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  97. It's all bunk. by fyngyrz · · Score: 3, Informative

    The premise in the summary is wrong. Employers have not learned that actual skill outweighs the fact that someone survived college.

    The fact is that such a degree in no way indicates that obtaining it involved actually learning what was presented for longer than it takes to pass the relevant examinations.

    On the other hand, if the programmer presents a series of complex projects they have completed, this does positively indicate they have both the knowledge (what the degree should attest to, but really doesn't rise to the challenge) and the ability to employ that knowledge (which the degree does not assure anyone of, at all.) Those completed project should also serve to demonstrate that the required portions of theory have both been absorbed and implemented, presuming the project works well and as intended.

    Employers and HR departments are rarely focused on actual performance, except in the very smallest of companies. Most use a combination of bean-counting, related age-discrimination, and the supposedly valuable rubber stamp of a degree to winnow out programming job applicants. After all, if said employee screws it up, that's the employee's fault. Not the HR person.

    This, in fact, is why most corporate software goes out the door with so many problems, and it is also why those problems typically remain unfixed for very long periods of time.

    It sure would be of great benefit to end users and companies if actual skill *did* outweigh a degree. But that's most definitely not happening. It's wishful thinking, that's all. And if you're an older programmer, even your sheepskin won't help you -- you cost too much, your health is significantly more uncertain, they don't like your familial obligations, they don't like your failure to integrate into "youth culture" as in no particular fascination with social media... or even your preference for a shirt and tie. Welcome to the machine. You put your hand in the gears right here. Unless you've enough of an entrepreneurial bent that you can go it on your own. In which case, I salute you and welcome you to the fairly low-population ranks of the escapees.

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:It's all bunk. by jedidiah · · Score: 5, Insightful

      The value of "learning to program" is roughly comparable to the 1st year of CS classes at a reputable University. It is certainly not a replacement for the entire degree. Also, the degree is no replacement for practical experience.

      There really aren't any shortcuts. There's a certain amount of time and effort you need to spend getting really good at something. Even Mozart couldn't escape from it.

      This reminds me of one of my cousins that thought you could get into computing by taking shortcuts like a weekend bootcamp. It was ultimately motivated by the usual underlying contempt that people have in general for anyone else's profession. (It's not just a computing thing)

      --
      A Pirate and a Puritan look the same on a balance sheet.
    2. Re:It's all bunk. by UnderCoverPenguin · · Score: 1

      Employers and HR departments are rarely focused on actual performance, except in the very smallest of companies. Most use a combination of bean-counting, related age-discrimination, and the supposedly valuable rubber stamp of a degree to winnow out programming job applicants.

      Yeah. This, along with "buzz word compliance". This strongly rewards those who are good sales people over actually technical ability. software people seem to especially vulnerable to this. Some times this can be worked around by knowing who's getting ready to post positions so those managers can tailor the requirements to fit. However, more and more HR departments are moving to standardized requirements. Although technical managers actually realize this is happening, the message that gets to the executive suite is "we can't find qualified candidates".

      they don't like your failure to integrate into "youth culture" as in no particular fascination with social media... or even your preference for a shirt and tie

      Interesting. My company's execs complain that too many employees are fascinated with social media. And no, the execs are not senior citizens. Also, the older members of the engineering staff are the ones most likely to not wear a tie.

      --
      Don't try to out wierd me, three-eyes. I get stranger things than you, free with my breakfast cereal. --Zaphod Beeblebr
    3. Re:It's all bunk. by umghhh · · Score: 1

      I fully agree with you that HR practice is full of BS. Yet as the world is getting smarter very minute we use proxies to select items because that is easier and most of the time the only possible way. The question is thus - can you chose a proxy or set of them that can with high probability tell you whether a person is a good fit for the job. These proxies should involve indicators for technical skill in coding, in design of stuff, test, communication skills, management skills as a bare minimum. This however is uneconomical. You take a crude measure and if that indicates a chance of success and no major risk factors then you give that person a chance. That is actually cheapest way of doing personnel selection. It is cheapest because all other parameters can be gamed or are not measurable in any reasonable way. Often it takes some time in a project to determine if a person fits. So we are stuck with crude methods that you indicated for foreseeable future.

    4. Re:It's all bunk. by Anonymous+Brave+Guy · · Score: 5, Insightful

      The value of "learning to program" is roughly comparable to the 1st year of CS classes at a reputable University. It is certainly not a replacement for the entire degree.

      Yes. IMHO this is what most often gets overlooked when people debate university CS/SE as a mostly-theoretical discipline as distinct from practical experience in industry.

      You can study practical skills in using a certain language or library or tool, and you can become somewhat productive. But without sufficient theoretical understanding, you're just doing cookie cutter coding, and you will always have a relatively low glass ceiling on how much you can achieve.

      Put more bluntly, practical skills are what you pick up to get from incompetent newbie to vaguely useful programmer in the first year or two on the job, but improving your theoretical understanding is what gets you from there to seriously useful senior developer a few years after that when you're no longer just writing simple GUI logic in C# or trivial ORM code for a Ruby on Rails web site back end.

      Also, the degree is no replacement for practical experience.

      Indeed, but someone with good theoretical understanding will pick up any given tool based on that theory fairly quickly.

      Now, at no point in this post did I imply that getting a degree is either necessary or sufficient to achieve a good understanding of the theory. As far as I'm concerned, you absolutely can get there with time, effort and an open mind.

      However, I think even autodidacts will find the process significantly easier if they've developed rigorous mathematical thinking and the ability to read and digest technical writing first one way or another. Also, for better or worse, the reality is that having that degree certificate will probably get you better jobs early in your career, which in turn will give you better experience and better colleagues to learn from at work.

      In any case, just reading lots of casually written tutorial blog posts by people who've been playing with a tool for six months longer than you have certainly won't get you to that level of understanding alone. It's very easy to spend a lot of time doing that in a field like software development, feel like you've learned a lot and can be super-productive, and never even know how much you're missing if you've never found the right course of study or mentor or on-line learning resource to open your eyes. That, IMHO, is the biggest risk for people who haven't studied formal CS/SE one way or another, and sadly you can always find plenty of examples in the on-line forums for whatever the latest shiny technology is (currently I'd say it's front-end web development).

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    5. Re:It's all bunk. by Anonymous+Brave+Guy · · Score: 1

      This, along with "buzz word compliance". This strongly rewards those who are good sales people over actually technical ability. software people seem to especially vulnerable to this.

      How do you spot an extrovert programmer? He's looking at your shoes while you talk.

      Seriously, self-promoting incompetents are a hazard in any technical field, but in proper engineering disciplines objective assessment can make up for a lot of bull. Because software development isn't yet mature enough as an industry for that to work, it's relatively easy for a snake oil salesman to do well (almost invariably at the expense of the colleagues who are constantly clearing up his mess and ultimately the organisation they all work for).

      Although technical managers actually realize this is happening, the message that gets to the executive suite is "we can't find qualified candidates".

      The remarkable thing is that the executive management team are often so disconnected from the reality of their business (read: ignorant and incompetent) that they haven't even noticed their company's job ads are literally asking for things like five years of experience with Leading Programming Toolkit 2014. I'm guessing the global pool of qualified candidates by that standard is... sparsely populated.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    6. Re:It's all bunk. by Anonymous Coward · · Score: 0

      "Employers and HR departments are rarely focused on actual performance"

      That's a No True Scotsman argument. Of course they're interested in "actual" performance, it's just ridiculously difficult and time consuming to judge "actual" performance, especially when hiring. And for a large organization, it's likely more cost-effective to rely more heavily on relatively weak indicators like a degree than to examine employees more closely.

      Even Google does this. I got turned down for a senior engineer position, despite the fact that several of my non-trivial open source projects were already used internally at Google (and Apple, Hulu, and others). I don't have a CS degree[1], and they posed some optimization problems related to 3D rendering that I was entirely unfamiliar with, but which if I had gone to school for CS would have been infinitely more familiar. The solution may have been general, but I got lost in the details, I'm not very communicative, and I bombed it spectacularly (I know they don't expect you to answer the questions correctly, but I really got lost in the weeds).

      And FWIW, the job description had nothing at all to do with the questions they asked, although they were admittedly decent questions. Interviewers tend to ask questions about areas they're most familiar with. Again, it's simply easier/cheaper for them. Personally I prefer asking questions about which I know little, because if an interviewee can teach me something, then I think that bodes well, and in any event it's a win-win for me, rather than a time suck.

      [1] I studied politics in undergraduate and got a JD later in life, all the while working as a professional programmer in the server and embedded spaces. I think CS theory is extraordinarily important as an engineer. Knowledge of seemingly esoteric algorithms can be applied in a multitude of unexpected circumstances. Look at Google's MapReduce. MapReduce had been around since the 1970s and was thoroughly explored by the 1980s. The implementation of MapReduce is in some sense trivial. Google's innovation was in its application, and because it hadn't been applied in that particular space, the engineers had to have studied the algorithm before they could make the leap to it's novel application and implementation. Without a CS degree, you have to be a seriously dedicate autodidact to acquire a sufficient breadth and depth of algorithmic knowledge.

      However, unlike most fields, in CS there are almost no external or intrinsic barriers whatsoever to learning, practicing, and applying both the theory and practical engineering know-how. Contrast CS with the law or medicine, two fields where it's legally impossible and in any event entirely impractical to acquire the necessary knowledge and skills without formal education.

      If you know all you want to do is programming, I think it's lazy of a young person not to get a CS degree. Of course a degree is not strictly necessary, particularly in CS. But in most circumstances people are simply making excuses for their irresponsible and unrealistic preferences. Most people who have a strong commitment to learning the theory already will tend to drift to a CS degree anyhow, because university is an amazing resource for knowledge acquisition. If college seems too onerous, then you're probably not particularly motivated anyhow to learn the theory. And if you're not interested in the theory, then all you'll ever be is a code monkey. Maybe a well paid and highly productive code monkey, but a code monkey nonetheless. Your code is unlikely to ever be unique or inspirational.

    7. Re:It's all bunk. by i.r.id10t · · Score: 1

      A framer, roofer, brick layer, plumber, or electrician will often have more regular work and possibly a higher spendable income than an architect.

      Both types are needed, which is why we have AS degrees from community colleges where students after a programming centric degree will usually have a semester or two on 3 to 5 languages (I had VB, C, C++, SQL, Java, and JavaScript plus the non-programming HTML coding in the mid and late 90s - current degree track is C++/C#, Java, Objective C, SQL, JavaScript and again HTML/CSS stuff). Sure, you don't master a language, but you learn the basics of programming in each language and with project based grading you actually have a small portfolio of real programs/applications when you graduate. By contrast, the large state University just a few miles down the road from us teaches exactly one semester of one language - Java - in their software engineering degree track.

      --
      Don't blame me, I voted for Kodos
    8. Re:It's all bunk. by mysidia · · Score: 3, Insightful

      The fact is that such a degree in no way indicates that obtaining it involved actually learning what was presented for longer than it takes to pass the relevant examinations.

      I think you misunderstand. They are using the degree as a method of verification that you know or can know. The degree is not proof that you know everything that was taught, BUT that you were at some point capable of learning everything that was taught well enough at one point to pass the test.

      If you could learn it well enough to pass the exam once, then you are more capable than the vast majority of the population.

      Which shows you more suitable than the average person as a mentally capable employee of learning and working in th field.

    9. Re: It's all bunk. by TiggertheMad · · Score: 4, Insightful

      I taught my self to code at age 8, dropped out of college, with only a 101 comp sci class. All elementary school comp sci education was self taught. I recently got thrown on a team at work with a guy who was a couple years out of college with a masters in cs. He is pretty sharp, but he knows little about anything other than elementary algorithms, was no experience with assembly, sql, and hasn't even heard of touring and has never read Knuth. Give me a passionate, self motivated coder any day. They will teach themselves whatever the need to know to solve an interesting problem.

      --

      HA! I just wasted some of your bandwidth with a frivolous sig!
    10. Re: It's all bunk. by Anonymous Coward · · Score: 0

      What is your point or worked for you?
      Or no should go to college to learn to program?

    11. Re: It's all bunk. by Anonymous Coward · · Score: 0

      How can a large or even a small company sort job candidates.
      Interviewing takes time and money.

      I know I am not good at it.
      I rarely picked winners.

    12. Re: It's all bunk. by Anonymous Coward · · Score: 0

      (...) hasn't even heard of touring (...)

      *snicker*

    13. Re: It's all bunk. by Anonymous Coward · · Score: 0

      "and hasn't even heard of touring"

      Is that touring by bike, motorcycle, or car?

      Anyway, anecdotes are useless. For every story like yours that is another of a successful college graduate working with an incompetent hacker. Big deal.

    14. Re:It's all bunk. by Anonymous Coward · · Score: 0

      I disagree with "Indeed, but someone with good theoretical understanding will pick up any given tool based on that theory fairly quickly."
      Not everyone can translate randoms facts into practical knowledge. Coding also is gift based, just like music, writing, acting and so on. If you have the gift of coding, then yes you are correct. If you don't then no matter how much theory you have. you will do sub standard to what the gifted can do. "you're just doing cookie cutter coding, and you will always have a relatively low glass ceiling on how much you can achieve." Non gifted people will never move beyond this no matter the amount of Theory they can cram in the selves because it is a language. Oh and -1 overrated is my censorship tool and I wield it like a cudgel.

    15. Re:It's all bunk. by Anonymous Coward · · Score: 0

      Yes exactly. Learning to program is what lets you become a CRUD app producing drone, the type that whinges on about how they're not paid enough and that software developers should earn far more.

      Learning CS and Mathematics is what lets you be the R&D type of developer that can come up with genuinely new solutions to unsolved problems - i.e. it lets you do the interesting, well paid work. Instead of being a mindless consumer of layer upon layer of library and framework that wraps up everything in cotton wool for you so you don't have to care it allows you to be the person that writes those libraries that make things automagically happen for the amateurs.

      Disclaimer: I got my start in development before having a degree and used to parrot the line that a degree wasn't necessary to be a developer, I did a degree in Mathematics after I was already developing professionally mostly out of an interest in pure mathematics and I'm extremely glad I did as it's been the single most important factor in improving my abilities. I don't have to worry about job security, and I don't have any reason to complain about salary. I can jump ship tomorrow and get paid even more if I feel like it.

    16. Re:It's all bunk. by Hodr · · Score: 1

      I took the bog standard BS in Computer Science (so not Software Engineering), but had to learn basic proficiency in multiple languages.

      CS101/2 was C++. There was a machine language course where we learned theory (MIPS) and practical (SPARC assembly). There was a data structures course that required labs to be done in Java, and expected you to learn it on your own if you weren't already familiar.

      There was an Artificial Intelligence course which required you to learn and use Lisp and a compilers course where we developed compilers for our own limited scope language, and an operating systems course where we built an OS using our compiler from the previous course.

      And who could forget the database course with the flavor of the day SQL, or the computer graphics elective that made use of OpenGL.

      There was also a general languages course where every 2 to 3 lab sessions we switched to a new language. Obviously we didn't learn anything in depth about them, but we were exposed enough to get the basic concepts and to determine when / where they would be most applicable.

      So sure, the degree wasn't laser focused on one or two languages, but to say we weren't exposed to programming is laughable. And while the BA in Computer Technology (the programming only degree we had at the time) was also offered, our BS CSCI students with decent grades could be guaranteed several offers from recruiters while the BA CT students almost never received such attention.

    17. Re: It's all bunk. by rtb61 · · Score: 1

      Getting a computer science college degree does not preclude you from learning how to code. The college degree does exactly what it needs to do, it gets your foot inside the door, what other knowledge you bring gets you past the interview and of course goes on to build your career. Not having that degree more often than not means you wont even get a look in to the many and varied jobs within the computer industry. Of course how much extra education you gather in your own time or whilst employed will define where you go beyond that.

      --
      Chaos - everything, everywhere, everywhen
    18. Re:It's all bunk. by Anonymous Coward · · Score: 0

      He said "theoretical understanding". You're talking about "random facts".

      If you think those are the same you're probably a script monkey or a plumber.

    19. Re: It's all bunk. by Chris+Pimlott · · Score: 1

      He must have gotten that master's degree from the back of a cereal box. It would be literally impossible to go through a complete CS program at any half-decent school without ever hearing about Alan Turing.

  98. Probably not. by Anonymous Coward · · Score: 0

    Perhaps better coders but definitely worse persons.

  99. Probably not. by Anonymous Coward · · Score: 0

    I would say that to be a good coder, it is far more important to know how to identify a problem and detail the steps to solve it. And unfortunately, I think this is often more innate problem solving life skills, and is far harder to teach than coding (I'm not even sure some coders I've met *can* be taught this).

    I also think people that learn to code on their own tend to have this. I think colleges try to teach this when they teach theory, because quite honestly, if they teach you today's hot new language, you'll be obsolete by the time you graduate. I've always said that colleges aren't a good place to learn. Rather, they are a good place to learn how to learn. Unfortunately, too many people go to college for a CS degree not because they have potential, but instead because someone told them it was a good money making career.

    So I believe both are important and complementary - you have to know how to identify problems and define processes to solve them (theory), but you also have to be able to translate that theory into code. However, I also believe coding is far easier to teach than problem solving.

  100. It goes the other way too by xednieht · · Score: 1

    There are a lot of home grown coders that lack the theoretical expertise for modeling complex systems. You certainly would not need a degree to build Twitter or Facebook, but you need some pretty good math and theory to support millions of simultaneous users.

    --

    Hope is the currency of fools
  101. Nope by prefec2 · · Score: 1

    They complement each other.

  102. Oh, geez, not this shit again by Anonymous Coward · · Score: 0

    Note that the list you linked only includes schools with graduate programs in computer science. A few really strong undergraduate-only schools have been left off that list.

  103. Depends by xednieht · · Score: 1

    ... and i am feeling very confident that i will never be without a job

    wait 'till you hit 50

    --

    Hope is the currency of fools
  104. Yes by Anonymous Coward · · Score: 0

    I am an IT professional and I have been in the industry for 30 years. Network Engineer, Programmer, etc. etc.

    Yes, real experiance outweighs a degree. The IT field changes too quickly for universities to keep up. By the time they have a new class, the technology is outdated. As new products come out, the manufacturers provide their own classes for their products.

    When you apply for an IT job, they will likely set you down and give you a hands on test. Either you know how to do it, or you don't. All the pieces of paper in the world will not make a difference.

    If the employer puts a degree as more important that real experience, then they don't know much about the IT field, and you will be better off looking for a position elsewhere.

  105. Er, what? by Anonymous Coward · · Score: 0

    When a company needs a programmer, why are they even interviewing computer scientists? Computer science isn't about programming, it's about reasoning about computers and programs.

    1. Re:Er, what? by Anonymous Coward · · Score: 0

      You think a CS degree make you a computer scientist?

  106. Why not both? by Anonymous Coward · · Score: 0

    While in college full time I had a job with the web department, ran my own LAMP server, worked on a networked puzzle game in VB, and a shmup in C (with direct X at the time).
    You get back what you put in.

  107. YAWWWWWN... by Anonymous Coward · · Score: 1

    Haven't we posted enough articles and comments about the value of X-type computer degree vs. Y-type life experience???

  108. Well, there you go again. by PopeRatzo · · Score: 1

    Does Learning To Code Outweigh a Degree In Computer Science?

    The answer to this questions is the same one that the doctor gave Nancy Reagan when she asked how she was going to keep Ronnie from pooping his pants during his last State of the Union speech:

    "Depends".

    --
    You are welcome on my lawn.
  109. No school can teach it by Livius · · Score: 1

    What is needed in today's job market is someone who can work as part of a complicated project, perhaps even a bloated one. That means communicating with team members, understanding client requirements, comprehensive testing, and some basic engineering principles. Neither school assignments, even team projects, nor self-taught hobby project, ever reach that level of complexity. That means the workplace is the first place a programmer/computer scientist is exposed to it.

    For simple projects, where the design is straightforward or has been provided, a coder can do well without a post-secondary education. But there aren't many simple projects left, and education matters for complex projects and working within large diverse teams.

  110. Personal Decision by Anonymous Coward · · Score: 0

    I beleive that a person should make decisions about education for themselves. But, I also think people should use some data in those decisions.

    1. Employment Projections from BLS (http://www.bls.gov/emp/ep_chart_001.htm)
    2. The College Degrees With The Highest Starting Salaries

    If you read the chart and the article and then conclude that college is not worth it for your profession, so be it. It is also your prerogative to completely ignore my opinions or any opinions in the original article.

    1. Re:Personal Decision by Anonymous Coward · · Score: 0

      How does this apply to the topic? Without data for those with a degree or without, all you've done is list incidental information that should not influence your decision to seek a development career with or without a formal education.

  111. Re:Is Coding Computer Science? Of Course! by MikeKD · · Score: 1

    You're also assuming that the people who wrote the listing actually know WTF they need (vs what they want vs what Everyone Else Is Doing So We Need To Do It).

  112. How does this kind of shit by pooh666 · · Score: 1

    Still get through the firehose? SICK TO DEATH of this topic.

  113. Re:Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    Course VI is EECS at MIT. Speaking from experience, those are not your average CS grads.

  114. Priorities? by plcurechax · · Score: 2

    Actually in terms of self-awareness, development and personal growth, experiencing university life can have a tremendous impact beyond the classroom. On average, I'd say it can at least doubles your social skills to an order of magnitude improvement social skills for some, and improve your quality of life. My personal opinion is that for many young people (and perhaps those not so young) considering this question, this can be an far greater benefit, and a more important benefit to your quality-of-life.

    Having a degree can also make it easier to get a chance to be considered during a tight job market, and improve chances at negotiating a better salary / contract.

    Getting a degree, without learning to code, will certainly make you an incompetent bane of your co-workers existence, no matter how short that career may be.

    While being aware of the financial realities (and potential opportunities for assistance) of the cost of university, the strongest case tends to obviously be: do both.

    Others have pointed out the obvious complimentary nature of knowledge (theory) combined with experience (practice). If you don't know what to work towards, you can waste a lot of time and effort doing things the hard way or rediscovering the bubble and merge sort. Or if you don't know what can and can't be done, or how to do it, you end up a hard working monkey with a very limited playbook. You may find the ever constant change in technology a burden, rather than an enjoyment (I mean after the first 5 years), because in my experience those who understand the fundamentals, those abstract or theoretical bits, can adapt to change more readily and often with dramatically less effort.

    Most famous university dropouts (in Sciences and IT) both made it through admissions obviously, and more importantly left before they could finish their degree: that is to say, they were most likely in their 3rd or 4th year, not entirely flunking out first semester (though having a rough to horrible first year grades isn't particular uncommon even for many who later become professors themselves). In a fair number of cases, including some William guy from Redmond, they complete their degree later in life.

    In the end; it is what you make of it, just like everything else in life.

  115. Re:Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    Optimizations are not obviously optimal. Sometimes you need an implementation and then the experience to make finer decisions. This is the nature of "new markets" and "new products". There is often no time to "learn to code in an optimized fashion" when there's not enough data, to begin with.

  116. Re:Is Coding Computer Science? Of Course! by Hentai · · Score: 2

    Premature optimization is terrible.

    --
    -Hentai [in vita non pacem est]
  117. When I was working at a major DoD contractor... by Anonymous Coward · · Score: 0

    ...I found that people who had focused on learning to code were the ones that needed the most hand-holding when it came to solving new problems that didn't mostly involve cut and paste from StackOverflow posts. They also had more trouble picking up new coding languages. Whereas the ones that had a solid understanding of the theory behind computing were most often the ones to jump in and come up with creative solutions to new problems. They also generally picked up new coding languages more quickly.

  118. Trade School by Princeofcups · · Score: 1

    How many times do we have to go over this. College is NOT supposed to be trade school. Yes, you learn things that have no real world application except on an intellectual level. No, all the classes are not tailored for making you marketable in the work place. No, computer coders should not expect schools to be turned into their personal trade schools.

    So please set up coding schools where they can learn their trade along side the welders and auto mechanics, and leave the colleges alone.

    --
    The only thing worse than a Democrat is a Republican.
  119. Re:Is Coding Computer Science? Of Course! by lgw · · Score: 1

    All you can assess in an interview is stuff tied to coding problems: data structures and algorithms, mostly. I personally use a coding question that leads to a discussion in which I try to determine whether the candidate understands how a hash table works (everyone seems to blindly use them, but surprisingly many don't understand how they're implemented with all that implies).

    At previous companies, we've phone screened based on knowing the simplest things about pointers (which culled nearly half, but I'm currently in a Java shop so we don't care), and we've also done a debugging-centric coding problem as an interview test. (Here's a laptop and someone to help you with anything you're unfamiliar with, solve the following problem in 2 hours. The solution was just a few lines of code, but the problem was set up where you'd need to discover stuff through debugging or some sort of experimentation.)

    At the large companies I've worked at, interviews are general 1 manager session asking resume-related questions, and a set of timeslots with engineers where the candidate demonstrates coding ability on the whiteboard. We all try to come up with questions that reveal fundamentals over playing "compiler trivial pursuit".

    --
    Socialism: a lie told by totalitarians and believed by fools.
  120. Re: Is Coding Computer Science? Of Course! by jedidiah · · Score: 1, Insightful

    Yes. Because a few off the cuff remarks given little effort because they are ultimately no real value certainly implies that all of his professional work is substandard and useless. [/sarc]

    Clearly the classic subjects are being neglected here either in primary education or at University.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  121. Diving deeper by petes_PoV · · Score: 1
    No. Learning to code is like learning the alphabet and some basic words.

    Learning to be a programmer is being able to use a word-processor, having the rules of grammar, the 4 modes of discourse, a huge vocabulary and a storytelling ability fluently available to you.

    "Coding" tells you the structure of a for loop. Being a programmer tells you when to use it and how to deal with the exceptions it could throw up. Sadly there are no job interviews I have ever encountered that are deep enough to split the one from the other.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  122. Universities aren't trade schools by chubs · · Score: 1

    Every time I see an article like this I cry inside. Universities are not trade schools. The point of an education is not to get a job. It's to learn and to expand your horizons. I always hated the kids both in high school and college that raised their hands and asked "Am I ever going to use this in the real world?". The teacher/professor's job is not to train you for any job or real world application. It's to teach you knowledge that you can then go apply to whatever real world you want. A student once asked Euclid how geometry was going to help him in real life. The reply was "Give him threepence, since he must make gain out of what he learns". Euclid wasn't offering job training. He was teaching geometry. If you are going to a university just to get trained to do a certain job, then you are absolutely going to be disappointed. And no, they are not the most efficient job training centers, because they were never intended to be. Why does everything in your life have to revolve around you working for someone else's vision? You eat candy because it tastes good. You play games because they are fun. Some of you have friendships because they are fulfilling. Do you ask how you are going to use these things in your career? Of course not, because your life is about more than your career. Why is education different? Why can't someone teach you something just because it's interesting? Now that that's out of the way, we still have an interesting question posed here: are university-taught computer scientists more or less proficient than self-taught coders? Yes, self-taught coders do have certain skills that fresh graduates do not (version control, the lastest, greatest, probably going to be obsolete next week programming fad, etc). I'm going to say it depends on what you need. Are you doing mobile apps, websites, and other small-scope stuff? Great. A coder is all you need. Are you doing performance intensive, critical, large and/or complex projects? If so, you probably want someone who spent time learning about how to optimize algorithms, mathematically validate an algorithms' correctness, and other such things that most self taught people view as "theoretical and not very practical". Admittedly, there are more jobs requiring the former than there are the latter, so perhaps HR people need to rethink why they are requiring a degree. You can say there's no difference after 5 years of experience, but I disagree. People will almost always incorporate new knowledge into their existing mental model. If they start out with theoretical model and fit practical knowledge into that, they will have a whole, cohesive understanding of what is going on. If, however, they either never learned all that theory or, like a large number of CS graduates who really wanted a trade school job training, never bothered to let it sink in, the knowledge will either be missed or not be understood holistically. I guess you could argue that a lot of people with CS degrees were looking for job training and therefore didn't pay attention to the theory they were taught. They come out of college with no practical knowledge but also with no theoretical framework within which to place new knowledge. It sounds like the /. community believes this represents the vast majority of graduates. If that is the case, I guess I can't argue with the conclusions of most of the commentators here. However, someone who went to a university to actually take advantage of the theory taught at a university will come out much different than the stereotype being described by everyone. This has been quite the ramble, but so be it. These are the thoughts I had in roughly the order I had them. What think ye?

  123. It depends at what level you work at. by Anonymous Coward · · Score: 0

    Skilled tradesman vs architectural engineer, to give an analogy from architecture.

  124. Stupid Question..... by David_Hart · · Score: 1

    The answer, like always, is "It depends...."

    Is a CS degree valuable to a programmer? Yes, it teaches the theory that a programmer needs to handle advanced situations such as creating algorithms, handling matrices, etc.

    Is a CS degree needed to get work as a programmer? No. Most HR departments look for a degree, but it can be in anything as long as you have some experience in the position that you are applying for.

    As usual, most people here are debating the value of a degree and whether it is worth it. In today's job landscape, it would be silly not to get a degree. Mainly because having one gives you more options by exposing you to a wider range of concepts and theory. Plus it gets your foot in the door. However, It doesn't have to be a CS degree. But, if you are determined to be a programmer, it would be the one that would fit the best. That doesn't mean that you couldn't take another degree and minor in CS.

    What you get out of college is up to you. Unlike high school, you will not be nagged by the professors to do the work or study. It's up to you to be mature enough to direct your own life. Yes, you can spend the whole time in college partying. You can also take the opportunity to make an effort to learn. Most learn that there is a balance to College, much like there is in life.

  125. just for comparison by globaljustin · · Score: 2

    this is an interesting discussion...I always like reading what actual coders have to say

    i was in middle school in the late 80s-early 90s and first used a computer running DOS...i understood coding conceptually & we did a few command line things, also formulas in spreadsheets...i learned coding mostly from doing database management...then got an MS in information and communication science which included getting our CCNA

    in academia i used SSPS which has (IIRC) a python-like (maybe Fortran?) scripting language for hand coding your crosstabs & such

    my degree was an Engineering degree but not coding per se...we only used code to solve a problem or set up a router

    in my research work, the SSPS code view was actually really helpful...the only way I learned how to do all the high level statistics coding was by meeting with the head research scientist at our university (they oversee all the research projects) and had him tutor me for a semester

    the kids graduating from my MS program were getting $50,000+ jobs left and right and really like their work...I always wanted to see a coding option for our program because we had all this great expensive Cisco shit and awesome computers but no one in our program ever **made** anything...we never made apps or anything like that, because really **none of us could code in those languages**

    --
    Thank you Dave Raggett
    1. Re:just for comparison by mcmonkey · · Score: 2

      this is an interesting discussion..

      ..if you think confusing computer science and software development is interesting.

      Complaining about the lack of programming in a CS degree is like complaining that physics majors don't build bridges.

      "the courses taught in virtually all computer science [curricula] focus on theory, and they only dabble in teaching practical programming skills"

      Well, it's good to hear virtually all computer science programs are doing it right!

    2. Re:just for comparison by qpqp · · Score: 1

      Absolutely right. Thank you!

    3. Re:just for comparison by Anonymous+Brave+Guy · · Score: 1

      I agree with you that CS is more about theory than practice, but it's easy to construct a false dichotomy here. A lot of university-level CS courses are less beneficial than they could be even in teaching theory precisely because they get so stuck on theory that they forget to give either motivating examples or sufficient practical skills for students to explore on their own.

      University-level mathematics often seems to suffer from the same affliction, presenting undergraduates with the kind of obscure, magical results that might be interesting to someone with a heavily theoretical mindset working on a PhD, but ignoring the reality that even among undergraduate mathematics students, those who have that mindset are probably a small minority. Maybe more of them would develop that kind of thinking during their studies and go on to enjoy or develop deep theoretical work, but if you confuse and/or bore them out of academia first you'll never know.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:just for comparison by kristianbrigman · · Score: 1

      Computer science _should_ be much more like civil engineering.... a good civil engineer knows how to build the bridge AND understands the physics behind it. Maybe the problem is that if CS IS like physics, there isn't a good analogy to civil engineering... 'computer engineering' exists, but isn't that common, and often is hardware-focused... i guess 'software engineer' would probably be the equivalent, but it's not nearly as common as CS, and unlike a civil engineering degree doesn't cover as well the equivalent of 'physics' usually.

      that said, if what you are building is a house and not a bridge, or even if you HAVE a bridge but are just renovating the gate house, you don't need either the physics major _or_ the civil engineer.... construction is more of an apprenticeship model, and maybe some programming shops are more like that...

  126. Betteridge's law by Anonymous Coward · · Score: 0

    The answer is no. I have met over the last 20 years a slew of self taught people versus degreed people. There are exceptions to the rule.. there are people who are geniuses that are self taught. I believe, however they would have been even more amazing if they had gotten that degree.
    You just don't have the ability to teach yourself what you don't know you need to know. I've had things come back to me from that tiny tidbit in an algorithms class, or the now antiquated numerical methods class I took... people today would say "oh just use mathematica", but those same people wouldn't even know where to begin when they had a job that required higher math and they didn't have a library to do it for them

  127. Re:Is Coding Computer Science? Of Course! by Darinbob · · Score: 1

    But someone who can code AND knows the theory is better than some stupid code-only monkey anyday.

    If you just want a 9 to 5 job with no future and no job satisfaction, then skip school and just code. Learn how to fix computers for people making double your salary and hope that your job isn't lost to some outsourced foreign guy with better English grammar than you. But if you want to actually build stuff and create things then you can't take the short cuts.

    Nobody in a senior position only does coding. Computer science is being used, physics is being used, mathematics is being used, economics is being used, every science is being used somewhere. You get hired and the first job is "optimize this library", but you don't know the first thing about algorithms because you thought the class was stupid and only for computer nerds, then what do you do? Or you're asked to change the routing protocol, but you skipped all the classes and didn't know that queueing even had a theory. Or you're handed a schematic and told "write me a driver" but can only mumble "um, isn't there a library for that?"

    The stuff in Computer Science is not just ivory tower games with no practical purpose. It all gets used by people in the real world with real jobs, including real programmers.

    Ignorance is not a virtue!

    Sure maybe the majority of programming jobs are just dumb jobs that the majority of people can handle, and if all you want is the most basic job then go for it. But do that damage only to yourself, do not encourage other people to follow you in the paths of ignorance.

  128. I gotta call BS on this by DaChesserCat · · Score: 1

    In 1990, with a couple semesters of college behind me (including formal courses in C and Fortran) and a LOT of self-directed learning behind me in high school (including AppleSoft Basic, 6502 Assembly and Machine Language, 8080 Assembly Language and Pascal), I took an entry-level development job. I was working with C (on which I had formal training), an assembly language (different from the others I'd already learned) and a language called Occam II.

    It did not go well.

    While I had a good understanding of the basics, and I could do bitwise logic and such (courtesy of my assembly language and machine language experience), I found myself struggling. Hard. It took me a while to get stuff working, because I had to "feel my way through" on most everything and I was severely handicapped in how complex the code could get before I was lost.

    I eventually went back to college and got the Computer Science degree.

    Being able to program is a useful skill. But if you don't know enough theory to handle relational databases, trees and other fairly complex data structures, you're hampered right out of the gate. Yeah, that's theory. Being able to code a balanced tree is useful; understanding when you do and DON'T need that data structure is more so.

    Additionally, I don't get where they're saying these degrees are all theory. I had to write a pile of assignments in C++ during my college studies, as well as learning enough Scheme, Java and MIPS and x86 Assembly Languages to write assignments in those languages. That's practical, hands-on development, gaining experience with the language and its associated APIs. Additionally, if you do an internship somewhere while you're in college (I didn't, but I've managed/mentored an intern or two, now that I'm an experienced dev), you have hands-on experience with more than just a programming language.

    Every company does things a little differently. Different standards, different conventions, different infrastructure. Ergo, it is PHYSICALLY IMPOSSIBLE for someone to walk in, with no existing experience with that company, and go right to work, being productive for the employer on day one. Yes, Human Resources and management keep indulging in that pipe dream. If only the schools would teach THIS, not that. If only they'd spend less time on math and more time on the finer points of this framework. Failing to realize that they'd be chopping out useful theory which could (and quite frequently, will) be useful down the line.

    Besides, if you were trained in EXACTLY what this company needed, you would never be able to jump ship to another employer. Too many employers keep finding excuses not to provide raises that keep up with the cost of living. The only way to keep up, these days, is to jump ship every few years. And your next employer will need stuff the last employer didn't need. So, getting trapped in a pipeline which is heavily customized for one employer is bad for your long-term prospects.

    --
    ... by the Dew of Mountains the thoughts acquire speed, the hands acquire shakes, the shakes become a warning
    1. Re:I gotta call BS on this by geekoid · · Score: 1

      In general, I agree with you. Here is a personal anecdote fro the 1st day of the worse company I every worked for:

      'Here is you desk and computer, and here is a stack of bugs, please start fixing them.
      No log on info, not knowledge of where the source code was, nothing.
      By the end of the day I fixed 50 bugs.
      Granted they where minor.
      By the end of the week I had fixed 2 bugs the other programmer had deemed, and I quote 'impossible to fix'.
        month later, I saved them a bunch of customers, got the run time up to a month before reboot, as apposed to every 3-8 hours.
      Naturally, when they decide to trim the employee for resale, the kept the programmer who didn't even know how memory worked, and let me go. The person who fixed their shit.
      The moral of the story? when some hands you paper bug reports, says fix em and walks away on your fist day. Start looking for a job right then.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  129. CS is a SCIENCE; programmingis a TOOL by Mr_Wisenheimer · · Score: 1

    Some companies what scientists; some want handymen.

    CS degrees are similar to applied mathematics. Many of them tend to focus on how to solve serious problems, often in the natural sciences. Most CS degrees require extensive amounts of science and mathematics courses like physics, biology, Calculus, statistics, discrete mathematics, and linear algebra, courses that don't really come in handy in using programming as a simple tool unless you happen to be working on a scientific project, like analyzing data using complicated physical laws or designing advanced artificial intelligence algorithms for commercial use.

    This is also why a lot of companies that want to accomplish these tasks hire people with advanced degrees in subjects like physics, statistics, and astronomy, because while they might not be formally-trained programmers, most have learned programming as a tool and they have the mathematical and scientific knowledge to apply algorithms to real world systems in finance, artificial intelligence, et cetera.

    You don't really need someone with an advanced degree in physics, statistics, or computer science to handle most of the low-end programming tasks that are dealt with.

    If all you want to do is code, I don't really see the point in going to school for a CS degree other than to "check the box" on a liberal arts education, as many companies require to even be considered.

    However, if you want to work on something like AI for Google or analyzing data for NASA, a CS degree is pretty much a requirement.

  130. Computer Science vs. Computer Programming by Art+Deco · · Score: 1

    Computer Science is one thing. Electrical Engineering is another thing, Software Engineering is yet another. You can study all of these things in college. Programming and coding are skills. Most people studying CS, EE, or SE pick up some programming along the way. In my experience most CS majors don't even like programming; they view it as a necessary evil. They don't want a job as a programmer unless perhaps if it is a stepping stone to a "real job." If you really like programming and want to do it than a lot of CS will seem like a waste of time. Personally I always enjoyed both theory and programming. I enjoyed learning theory and how computers and system software works and got a CS degree. I learned more about programming from a few Plum hall books than all my CS courses combined though.

  131. some experience vs fresh grad? by unimacs · · Score: 1, Interesting

    That seems to be the question. Personally I'd rather have somebody with experience AND a CS degree. ;)

    I've been in the field awhile and have worked with many people who are self taught and either have no degree or a degree in another field. I've also worked with many CS grads. It's anecdotal but in my experience the CS grads in general will pretty quickly surpass the non grads in programming acumen, - all else being equal (and they seldom are). They often grasp concepts quicker and develop a larger set of tools to draw upon. There are many exceptions of course and I've hired and worked with good software developers that don't have a CS degree. It's not a pre-requisite for working for me but I consider it a strong plus.

    It's not surprising to me that half the programmers in the US don't have a CS degree. That's partly because historically programmers have been in high demand. A more interesting statistic would be which group tends to be more successful in tech careers over the long haul.

  132. Code Monkey or Software Developer by Anonymous Coward · · Score: 0

    Sure you can just dive into Open Source projects and learn Linux and PhP on your own. You might get hired. But you will be a code monkey. I run across smart people who do not understand a lot of the principles of programming. They never heard of the principals of software development (Ada who?). A University Degree gives you a lot more of the foundations and a lot more debt.
    With that debt, you will want a higher salary. Sadly, too many managers do not know the difference. They want to pay code monkey money to a professional software developer.
    I find myself cleaning up monkey poo far to often.
    How many of the professionals you hire would you want to have "learned it on the fly"? Your dentist? Your lawyer? Or do you consider coding closer to being a tire changer or a window washer?

  133. Re:Is Coding Computer Science? Of Course! by Enry · · Score: 1

    Coding is computer science, but computer science is not just coding. I got my CS degree 20+ years ago, I've been in the field ever since, and I only spent a few years doing actual coding. The rest is all sysadmin/hardware design/architecture.

  134. Algorithms, Linear Algebra, Set Theory, etc by Anonymous Coward · · Score: 0

    All of it is near useless. Modern development has plenty of jobs for programmers that are closer to tradesmen than the developers of yore. Of course, here on slashdot you'll get lots of posts from academics defending academia and floating-among-the-clouds architects defending years of theory study before you even dare to touch a keyboard.

    The harsh reality is that most of your time will be spent fighting with CSS/HTML/JS to make the page look nice on all 3 browsers.
    The rest of it will be using someone else's (the cloud floaters) API to read/write data. In the advent you have to build the API, most of the storage problems are solved with 2nd Normal Form (master-detail records); and even that is becoming passe with NoSQL.

    Someone above was posting about optimization & De Morgan's Theorem. This is wrong and bad, very bad.. Code should always be readable. Even Knuth stated that the root of all evil is premature optimization. Writing code that looks neat & does cute tricks is pretty bad when someone else has to read it years after you're gone.

    Sure, if you find yourself with free time, pick up a beginner's book about 8051 embedded development, and buy a processor, LEDs & resistors, & USB programmer for $25 from ebay/china. You'll learn about how everything is actually working under the hood and why some of the greybeards here are so obsessed with optimization & algorithms/patterns.

    1. Re:Algorithms, Linear Algebra, Set Theory, etc by Anonymous Coward · · Score: 0

      Even Knuth stated that the root of all evil is premature optimization.

      Yes, but not all optimization is premature.

      Code should always be readable.

      I agree. If an optimization is something as simple as using De Morgan's rule, it can be explained in a brief comment.

  135. Companies want perfect fit - not theory/practice by odds10-1 · · Score: 1

    This report is about two things: (1) most "software developers" are just incremental writers or hacking on trivial systems; (2) companies want a perfect match between young (cheap?) developers and the companies' technologies.

    What if it's a new/small company seizing the advantage of a freely-available new/exciting approach? Sure, there will be lots of self-schooled practitioners (and if they're not educated to think they know better, they're cheaper and more compliant).

    But mostly companies work with legacy technologies in mish-mash systems, and they have a hard time finding people who know or love the technology. This is a variation on the "skills gap" that drives H1-B programs. The reality is that companies don't want to invest in training, particularly when developers leave as soon as they can find better work. My guess is, the companies would be better off providing work guarantees to older developers who wanted job stability, but that wouldn't fly at the C-level.

    Now, should colleges teach practical skills? No. They're best learned in real practice, with real clients. Colleges will never be up-to-date with technology or business trends. Schools should focus on developing insight and analysis required to solve large problems and cut through B.S.

  136. Re:Is Coding Computer Science? Of Course! by jmcvetta · · Score: 5, Insightful

    The best-run company I ever worked with took what I thought was a sensible approach to optimization:

    We were working on a complicated production system with hundreds of individual components and intense uptime requirements. The vast majority of the programmers (about 1000) were to focus on writing "robust" code that worked in an "obvious", easy-to-maintain way. The Performance Engineering team would look at system metrics (everything was instrumented) to find the actual performance bottlenecks. Then they would send in a crack team of commando programmers to do trippy, non-obvious optimizations on very small pieces of code.

    The idea was, in a complicated system it's very unlikely that your specific piece of code is going to be the limiting factor in overall system performance. So it's better to have less performance-optimal but more robust code in most places; and to use fast but brittle code only where absolutely necessary.

    FWIW, the company in question is outlandishly profitable, and their software is widely considered the best in their industry.

  137. Re:Is Coding Computer Science? Of Course! by Tuidjy · · Score: 1

    Thanks for answering! I guess we pretty much do the same thing, except that we draw the line between programming skills and CS fundamentals in a slightly different place :-)

    --
    No good deed goes unpunished...
  138. Really???? by Anonymous Coward · · Score: 0

    If you're asking this question then it is very likely you don't have a college degree.

  139. Re:Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    i work for a company that sells electromechanical instruments for use in labs
    the cost to customers is 10 - 20 thousand
    there is extensive custom software, user GUI, drivers for stepper motors and PMTs, reports back etc
    I would say that in our case, N=1, the programmer doesn't need any domain specific knowledge, but he does have to be able to understand at some level what the instrument is doing

  140. Does Learning Mechanical Engineering Outweigh ... by jdagius · · Score: 1

    ... learning to operate a rivet gun or steam shovel? A bridge or building could be more cheaply built by skilled operators with little or no knowledge of stress and strain, but how long would these structures stand?

    The same could be said for computer programmers, who may be skilled in coding, but have little or no knowledge of the best methodologies for constructing robust and reliable software systems and structures.

  141. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    It is slashdot, his statement in his free time does not necessarily represent his performance, aptitude, or attention to detail in their other aspects of life.
    -different AC

  142. Technician vs. Engineer by Anonymous Coward · · Score: 0

    First - let's exclude the slashdot crowd. Afterall - we are the exceptions to the rule not the general herd.

    For me (having been on both the hardware and software side of the world) - the difference is very similar to a hardware technician vs a hardware engineer.

    The technicians are often self taught and very practical in their solutions. There are degree programs -but almost always are very hands on approach and 2 year degrees. Some technicians are absolutely brilliant and worth more than a handful of engineers. In general though they are very good at the day to day stuff, but when a difficult problem arises or some deep analysis they need help from an engineer.

    The engineer is much more theory based. Great at understanding how the system should work and optimizing based on theory. Often missing some common sense or simple real world solutions that technicians handle in a couple of minutes of thought.

    The 2 really go hand in hand. And I think software engineering really is the same. You have the general day to day programmers/coders that work on making code to specifications and deal with 80-90% of daily work and you need a couple of engineers at the top level to focus on the theory providing the guidance on how the system should work and coming in to work on issues that need that extra level.

    (of course - my underlying belief is many 'engineers' (hardware and software) are really just technicians. can't solve a problem without guidance but willing to beat their head against a wall until 3am)

    1. Re:Technician vs. Engineer by umghhh · · Score: 1

      I take practitioner before theorist every time. 20y of practice thought me that.

  143. Re:Is Coding Computer Science? Of Course! by JDG1980 · · Score: 1

    But someone who can code AND knows the theory is better than some stupid code-only monkey anyday.

    It's true that "pure" coding is becoming less valuable, but that doesn't mean that Comp Sci skills are your only way (or even the best way) out of that niche. Being able to understand business requirements and translate them into functional products is a lot more important than understanding five different sort algorithms that you'll never use (since the API handles all that crap for you).

  144. Re: Is Coding Computer Science? Of Course! by Hentai · · Score: 3, Interesting

    As someone without a BS in anything, I've actually found the opposite.

    Yes, people who are self-taught often have gaps in our knowledge, but we tend to be *much* faster at filling those gaps. Also, the fact that we acquired all the knowledge we did without a college degree indicates that we are motivated to fill those gaps ourselves.

    It is very likely that there are things we have not been exposed to, even if we match your 15 years' experience as a software engineer. However, upon exposure, I am willing to bet that we will beat you soundly at rapid acquisition and assimilation of knowledge - especially since, if you've been in the field for 15 years, your degree is over 15 years old. Which means that plenty of things which are new to me will be new to you, too.

    You're absolutely right that you'll never have to compete for a job with someone that does not have a bachelor's degree. I, on the other hand, have to compete with people like you for the right to do my damn job all the time, because you're absolutely convinced that four years in a university beat four years actually in the field working on real-world problems, while voraciously consuming papers and books, and while corresponding with experts in the field - because unlike you, my tools were not handed to me by a university; I had to build them myself.

    None of which translates well to a bureaucracy-approved stamp I can stick on my resume, so you're right - good on you. You'll get fast-tracked to management, where you'll continue to pretend like you know what you're doing more than I do, where you continue to ignore my explanations of why your harebrained ideas won't work, and where you'll continue to get me fired when they fail in exactly the way I warned you they would. You've certainly got it all figured out.

    Except how to fucking code.

    --
    -Hentai [in vita non pacem est]
  145. Re:Is Coding Computer Science? Of Course! by qpqp · · Score: 1

    Premature optimization is terrible.

    So is unmaintainable spaghetti-code. Usually.

  146. Degree = More Interviews by Anonymous Coward · · Score: 0

    30 years programming experience, rarely got interviews after applying. Degree, 5 applications, 5 interviews, 4 job offers.

  147. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    Google used to hire people with PHD, not one trick ponies programing in a basement.

  148. Coding vs. Degree is not Theory vs. Practice by Anonymous Coward · · Score: 0

    I am a self taught coder/engineer. The idea that self taught people are more practical then the "elite educated" milled out CS folks is patently false. I spend most of my time developing superior theoretical approaches above all else. I do the math, see how it works and try to improve. I've learned languages such as VHDL, designed processors, built operating systems and single board computers. I do financial maths and numerical analysis. I've seen CS graduates who are confused as to what threads are and how virtual memory works or how numerical instability happens and what the ramifications of floating point algorithms are. Very few can read code, and that is my metric of having even 2 cents. Lot's of people don't like to work with me because of getting bogged down in the actual understanding of the problem and understanding how to solve it.

    I'm not saying university students are all bad. Most smart people do that kind of thing. But just because somebody didn't get a rubber stamp doesn't mean that can't code, don't understand the theory or have a broad body of knowledge.

  149. Re:Is Coding Computer Science? Of Course! by machineghost · · Score: 1

    This is EXACTLY the right approach. Not that everyone needs a "crack team of commando programmers" necessarily, but just that every programmer should write for maintability/readability primarily first. Then, AFTER looking at real performance metrics (and not just "Bob thinks it's probably slow because of X") specific performance pain points should be addressed, and in those areas only readability/maintainability should be sacrified for the benefit of performance.

    But again, if you get to where you have a performance issue, and it's possible to solve it by throwing money at a hardware solution (which isn't always the case), it's very likely that you should throw the money at the hardware, and not at a programmer to fix the issue. Not all the time of course, but with the cost of hardware dropping and the cost of programmers rising, most of the time the hardware solution will be cheaper.

  150. Re:Is Coding Computer Science? Of Course! by machineghost · · Score: 1

    Sorry, I wasn't trying to ask the question my subject line asks, it's just that Slashdot silently ate my ">" character. I was trying to ask "Is Coding > Computer Science?"

  151. No. by TheBilgeRat · · Score: 1

    NEXT!

  152. No by geekoid · · Score: 1

    A college degree is the highest probability you will get to do interesting work.
    It also means you have a wider set of experiences and interests. This is critical because being able to understand the business/industry is more important then the language you use.

    Sure, you want to work at a boring company writing html that workd with every IE version of the last 10 years? Then you probably don't NEED a degree.
    You want to do robotics? areospace? actual computer science? get a degree. And learn many other subjects that you can. Be interesting.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  153. Re:Is Coding Computer Science? Of Course! by Darinbob · · Score: 1

    Who writes what is under the API?

  154. Yay the weekly 'does having a degree matter' post by Anonymous Coward · · Score: 0

    thats right get those clicks dice

  155. I find one utterly worthless, to be honest. by Gallefray · · Score: 1

    I do not have a degree, as I am not at 'university age' yet, however, I used the appropriate guides, and over the course of two or three years, toyed and hacked around with code. I am now at the stage where I can bearably read The Dragon Book, comfortably code in (x86) Assembly, C, and Lua (and soon Scheme and Common Lisp (I've been using a mixture of SICP and The Aluminium Book for the latter two)). I know someone who's doing a CS degree at a JavaSchool, I have had to teach him really basic things like what a kernel is, how it meshes with the hardware, etc. I find it utterly appalling that they aren't teaching him [i]any[/i] concepts related to programming, they aren't even teaching basic CS concepts like B-trees, pointers, et cetera. So I (personally) find a degree utterly worthless aside from satisfying the prerequisites of employers who are too lazy to look at experience, or employers who think I can find a 'better' education at a university.

    1. Re:I find one utterly worthless, to be honest. by Gallefray · · Score: 1

      Aaarrrgh, /. beta chomped my line breaks! :

    2. Re:I find one utterly worthless, to be honest. by Shados · · Score: 1

      Keep in mind not all schools are equal though. Considering a lot of the big name companies will ask you to write the fucking b-tree during the phone screen (never mind what they'll ask you on site), they'd have a hell of a time hiring if schools didn't teach it...yet they don't.

      I don't have a bachelor either, but my wife does, and straight out of college you'd have been hard pressed to make her flinch on any of the topic you mentioned....after her first year.

  156. Coding in which language? by Anonymous Coward · · Score: 0

    Once you start to teach coding you have to consider which languages and to what depth - do you produce people who can code in just one language and hope it's the right one (ie the one there's a demand for) or a little bit of a lot of them?

  157. Re:CS is a SCIENCE; programmingis a TOOL by geekoid · · Score: 1

    "because while they might not be formally-trained programmers, most have learned programming as a tool and they have the mathematical and scientific knowledge to apply algorithms to real world systems in finance, artificial intelligence, et cetera."
    I found that not to be true.
    I have worked with many extremely smart experts in their field, but there software was broken. When I consulted, I was often called in to work with those people.
    Every time there where serious flaws in the software. Often the result they were getting weren't the resolution they thought the were getting.
    There are numerous reasons for this:
    Not knowing how to evaluate libraries, not aware of memory techniques, or data import issues.
    Performance was often bad. Things taking 'over night' that should take 30 minutes.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  158. Re:Is Coding Computer Science? Of Course! by Half-pint+HAL · · Score: 1

    1 self-taught coder may be able to build a better app than 1 computer science graduate, but a team of 5 self-taught coders is going to be a nightmare. The problem with the self-taught coder is that their code is very idiomatic. Not knowing the theory results in a lot of hacks and workarounds that are not easily understood by anyone else.

    --
    Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
  159. Degree are a joke by Anonymous Coward · · Score: 0

    Could it be that it's for learning how to think about solving a problem?

  160. PE In Software Engineering by mx+b · · Score: 1

    There should be a professional "Software Engineering" (or call it something else if the Engineers get upset about the term) program for those that want to actually build code.

    The engineering community seems to be accepting it. After talking with some colleagues about software engineering being a discipline that potentially needs certification, I found out you can actually be a PE (Professional Engineer) in Software Engineering now, in addition to traditional PEs in Mechanical, Electrical, etc. Link on NCEES website.. They just started this last year basically!

    I'm interested in pursuing it potentially, I wonder how you get it if you normally need to study under a PE for x years but there are none at first? I guess there's a grandfather in period for those with experience, even though it wasn't under a PE. I do not know anyone with a PE Software Engineering yet though. Anyone out there taken the exam? What do you need to apply, how hard is it, what does it emphasize, etc.? I should probably contact the board myself and ask. My guess is that a cert like this will be a big thing in a few years. Some big companies will want PEs as the managers. Maybe government contracts will require a PE in charge.

    If this is the case, then CompSci majors (or anyone really) will be able to take the FE exam and become Engineer-in-Training like other disciplines, and this will separate the professionals from the academics. Once the FE for Software becomes popular, I imagine Bachelor of Software Engineering will start popping up to start preparing student for the FE exam, much like mechanical, electrical, etc., today.

    1. Re:PE In Software Engineering by bloodhawk · · Score: 1

      The engineering community has never had a problem with someone being called a software Engineer. The objection has always been people being labelled software engineers without needing any formal certification and hence degrading the term engineer. Where I work here there are 3 hundred people that label themselves software engineers, of that maybe a dozen have any real certification in the field that would approach that of a real engineer, the rest just have computer science degrees or on the job training.

  161. Commitment is a factor by TWX · · Score: 1

    Having a college degree does help an employer see who was at least committed enough to run through a voluntary four-ish year program from start to finish. That's no small factor if a company wants to have mature products, including software products. That kind of ability to commit can be demonstrated through work experience, but if one is starting out, then the degree will be a leg-up to get in the door before other factors are considered.

    The other side of it though, is that learning to write software through a college program is a top-down approach, where one should learn project management, cost/benefit analysis, group-interaction, and other non-coding parts of work that will affect how the programmer thinks about the task of coding. By contrast, a bottom-up approach, for self-taught programmers, may give the programmer good fundamentals of the language and an ability to play with idiocyncracies of that language to one's benefit, but might not get the rest of the picture.

    It really depends on what's being written, for what audience, and how the company plans to further maintain the code (free updates, paid updates, paid full-new-releases, etc) and who will be doing that maintenance, and who will handle what aspects of the original design versus maintenance coding. A company might not want to hire a non-degreed person into a position where they're laying out the framework for the project as there could be condsiderations that the non-degreed person simply hasn't considered, but would hire them for the maintenance side because they're following an existing framework.

    That being said, you can't really know what they'll want until the interview, and they might not even know what they want until they see it.

    --
    Do not look into laser with remaining eye.
  162. Here's the value of the degree by Anonymous Coward · · Score: 0

    I'm not talking fake value (like your employer wants you to have it just to have it). I spend an obscene amount of my time at work having to turn hackers into programmers. For that, they need to know computer science. Otherwise, I end up with hundred thousand line programs written with algorithms without scalable algorithms, unmaintainable structure, no demonstrable reason to believe in their correctness, etc. One of the best computer scientists I've ever known didn't have a college degree, and many people with CS degrees don't how to write code that rests on a sound theoretical foundation, but by and large, if you want to write really great code, it pays to learn computer science, and a good university CS program is a great way to do it.

  163. And it shows . . . by Anonymous Coward · · Score: 0

    "Nearly half of the software developers in the United States do not have a college degree. Many never even graduated from high school."
    And it shows. But if we're talking games, then who cares?

  164. You went to the wrong college... by Anonymous Coward · · Score: 0

    I learned plenty of useful skills in college that directly apply to writing good quality software. The fact the half the programmers out there don't have a degree may be one of the reason there is such poor quality of software.

    Did I learn everything I need in college? No. But I did learn how to analyze a problem and build a comprehensive structured approach to solving the problem. All too often poor programmers get the job done by writing monolithic unstructured software that is hard to understand and even harder to maintain.

    Structuring a system so that it can be easily maintained and expanded takes up front requirements, design, implementation, some re-design (loop those last two a few times) until it is complete.

    I highly agree with an earlier poster about being mentored. I learned a lot about writing simple code that is easy to understand from a co-worker early in my career.
    I used to try to write highly efficient optimized code which isn't always the easiest to understand. Now I focus on writing simple easy to understand and maintain code and only optimize it if there is a large performance issue. Which with today's processors isn't that often. That doesn't mean my code is a CPU hog, I just don't waste time on optimizing code to save a few milliseconds on code that only runs once in a while.

  165. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    The one thing someone with a BS doesn't do is make sweeping generalizations. None of them do. Ever.

  166. Same story, different day by BigThor00 · · Score: 1

    How many articles with this same theme am I going to read?

  167. But what is practical is also temporary ... by perpenso · · Score: 1

    The problem is that theory persists over time far far better than practical applications. And the truth of the matter is that the practical applications that most student complain about are really implementation details. Operating systems, programming languages, hardware architectures, ... these things change.

    My undergrad CS program was Unix based. Many students complained about wanting practical experience coding under MS Windows. That is where the jobs were. The way the dean explained it at a faculty/student meeting was that the university's job was to teach the more persistent theoretical and conceptual knowledge. The theory and concepts of a compiler, operating system, of algorithms and data structures, the theory, concepts and mathematics of computer graphics, etc. Things that are largely relevant regardless of whether you are coding under Unix or MS Windows, OpenGL or Direct3D. That things like a particular editor or IDE, C++ rather than C, Windows API rather than Unix, ... these are implementation details for you to learn on your own time. Labs with Windows based PCs are available, you are free to use them for personal development and independent study. If and when appropriate, and only with the consent of the instructor, you might ask to do a particular class project on these PCs. However do not expect the instructor or TA to teach you the Windows environment and coding for it. That's your responsibility to figure out if you want to go down that alternate path.

    The preceding seemed reasonable and fair to me but some still complained. They literally wanted an elective class to teach Win32 programming. To get university credit for working their way through the earlier chapters of the Petzold book I suppose.

    I think I agree with the dean and professors. The University classes are to teach you the persistent stuff like theories and concepts. The more practical stuff is for you to figure out on your own time, although the University will make resources (ex Windows PC) available to you.

    1. Re:But what is practical is also temporary ... by Anonymous Coward · · Score: 0

      We had the same argument when I was in college--and the platform they wanted was Windows 95.

  168. Re:Is Coding Computer Science? Of Course! by JDG1980 · · Score: 1

    Obviously, people doing low-level systems programming do need to have the background to understand this stuff. But that doesn't really matter – there are a hundred application programmers for every systems programmer. It's like saying all programmers need to be able to write in assembly and count cycles, just because some embedded work still requires that sort of stuff.

  169. Re:Is Coding Computer Science? Of Course! by Darinbob · · Score: 1

    So what about the next job? Should the application programmer never change jobs to a systems programming job? Should programmers only be prepared for the current job and never for the next job?

    Learning the minimum necessary was never the goal we had when the US was in the lead in technology and science, but maybe it's the goal today. Learning extra stuff is never a waste of time.

  170. This debate again? by Anonymous Coward · · Score: 0

    It must be Thursday

    *yawn*

  171. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 2, Insightful

    I have been programming for 15 years professionally. I was self taught and programmed for about 6 years before my professional career.

    A few years ago I started going part time to a State University for CS. I think your theory that you are somehow going to be superior to any, or even most, college grads by virtue of the fact that you never went to college is a load of bullshit. I also think your assumption that you will learn and assimilate knowledge faster than any, or even most, college grads is equally baseless.

    I think if you actually did some rigorous education in Computer Science you might find it a lot more beneficial and useful than you seem to think. But you never actually went to University, so you don't seem to know what types of things are taught there. Sure, there are lousy schools with lousy programs. And yes, many of my peers (who are of normal college age and not in their thirties like me) are unmotivated and not going to win Developer of the Year awards. But I've learned things that I failed to teach myself and have found immensely useful in my day to day work.

    When I was young I thought I knew everything. Around 27 I started to realize there was all this stuff I didn't know. I tried to teach myself many of the theory aspects (things ranging from algorithms, data structures, automata theory, etc) and failed. I failed because I THOUGHT I understood what I was learning, and it wasn't until I had good professors who were showing me where I was wrong and forcing me to understood things that I would normally not be motivated to teach myself until I actually started to grasp things.

    You claim you built your own "tools." I doubt that. I doubt you built your own OS, I doubt your built your own compiler. Your tools WERE handed to you. They were made by people who went to Universities and learned the hard theory and engineering practice to build them. I took a course in Compiler Construction, and let me tell you that parsing theory is difficult. Register allocation, code optimizations (dead code removal, constant & copy propagation, constant folding, etc) and supporting multiple back ends are difficult. You might be one of those rare autodidacts that can teach yourself these things, but I'm able to admit that I wasn't. I need someone to point out mistakes, push me to complete assignments I didn't particularly want to do and large scale projects that were difficult to deadlines. Most people similarly cannot just teach these technically complex topics to themselves.... It is much more difficult then learning the latest fad web framework.

    Another thing you would learn about in some University is a false dichotomy. Your post has an obvious one, which is that programmers who went to University are fundamentally and irreparably inferior to those that do not. The truth is, knowledge is good. When you take a good programmer and give them theory, they can do things they couldn't before. If you studied CS at a half-way decent school, YOU could do things you couldn't before. You would be able understand problems and solutions that you can't understand now, and you would be able to derive useful analogies to your daily work.

    But instead you have an inferiority complex about how all these hair brained college grads are coming in and ignoring your "explanations" (which of course must be right), get you fired (which you clearly didn't deserve) all because you know how code and anyone who went to school by your definition does not.

    By the way, I would be interested to check out all the tools you built yourself. It would be interesting to see the OS you use that isn't Linux, OS X, Windows, etc. I would also like to see your compilers that are most certainly not LLVM (started as a college research paper), GCC (includes many academic projects in it's implementation), Visual Studio (I'll just speculate that probably a few people who worked on Visual Studio went to college), Python, Ruby, Java (James Gosling thought going back for his CS PHD was immensely worth it).

    I would love t

  172. A "degree" is useless to those who don't care by Theovon · · Score: 1

    As someone who teaches computer science for a living, I can tell you that if you're only majoring in computer science because you think you need to get a degree, then the degree will be useless to you. You'll do the minimum work to pass (if that) and not retain anything you learned. Then you'll have a hell of a time trying to find a job. Employers have become jaded and assume that although you have to be a college graduate to apply, almost all college graduates are morons. This is because most of them are there just to get a degree, and employers have to go through gargantuan efforts to find those few who are actually good.

    On the other hand, if you're the kind of person who is good at learning to code and you actually find computer science interesting, then getting a degree will help you immensely. If you're really smart, you would learn most of this stuff on your own anyway, but classes help you organize the knowledge, and professors can help you with the difficult questions. If you go to a good school, you'll learn more than you would if you did it alone because college degree programs help direct you along and force you to practice as you go along. Finally, when you're done and graduate with good grades, you have verifiable evidence that you've been exposed to this knowledge. If you just learned it yourself, you'd have to ask the to take your word for it, and they're not going to do that.

    Also, let's not forget that finishing a degree is also proof that you are able to start and finish a long-term project. It means you have attention span and can be dependable. Being able to finish things is another rare trait that employers put a lot of effort into looking for.

  173. The problem with being self taught ... by perpenso · · Score: 2

    The problem with being self taught, having only experience, is that the experience tends to be only in what was necessary or what was interesting. Very few aspiring developers have the ambition and discipline to study and learn all the topics that one will be "forced" into studying in a formal degree program. For most aspiring developers the formal degree program will give them a broader set of knowledge and tools to build upon. The purely self taught that have such a broad set of knowledge are exceptionally rare. Most of us need someone to push us to do a little more than we think is necessary.

    That said, being very good at software development is not simply a matter of having the correct broad set of knowledge to build upon. A person absolutely needs some inherent curiosity and interest in the field. To be truthful, many in college have no such curiosity/interest. They are just in college to get their "ticket punched", to meet some requirement on a HR checklist. This includes some in computer science and related programs.

  174. Re: Is Coding Computer Science? Of Course! by AthanasiusKircher · · Score: 2

    Yes, people who are self-taught often have gaps in our knowledge, but we tend to be *much* faster at filling those gaps. Also, the fact that we acquired all the knowledge we did without a college degree indicates that we are motivated to fill those gaps ourselves.

    Meh. Your generalizations are just as bad as someone arguing the opposite. I agree that someone who is self-taught AND motivated can be amazing -- ultimately, that's sort of what college used to be about, i.e., taking you from the high school "spoon feed you knowledge" mentality to the self-learning place where you can teach yourself what you don't yet know.

    Good college grads learn to teach themselves, sometimes as a result of university training. Other people pick up the self-teaching and motivation skills on their own, and they would have done so regardless of whether they went to college or not.

    The vast majority of people in the world are probably not that motivated and aren't particularly good at teaching themselves, and those sorts of people exist both in the college-degree crowd and among the people without one. The vast majority of people who don't have a college degree were also challenged intellectually to a lesser degree, and therefore they are probably somewhat less likely to have picked up those skills.

    But whatever. These are meaningless generalizations. I've met people who never went to college whom I would count among the most intelligent, clear-thinking, amazing folks I've ever known. I've also met Ph.D.s who are idiots (even from prestigious universities).

    One can argue the merits and drawbacks of college, but one thing I think is pretty clear: very few people have the kind of natural motivation to self-teach that you describe about yourself. If someone challenges you with tasks that require you to do so, I think you have a somewhat better chance of picking that up. It could happen on a job with the right boss or the right team; it could happen at college. Traditionally, a broad-based college education was partly about exposure to a lot of ideas, and in the process of critiquing those ideas from various fields, you'd learn how to think, how to learn knew things, and how to think intelligently about them. Nowadays, college has often become a glorified trade school for lots of students (though admittedly, it always had part of the crowd who went there just to party, it's just in the past those were just rich people's kids who had time to waste and money to spend). So it doesn't surprise me at all that lots of college grads today come unprepared with practical knowledge and what they learned in technology may be out-of-date by the time they graduate.

    But that doesn't mean all higher education is crap, or that it can't help some people to learn how to think... it just depends on the school, the program, and the motivation of a student. Motivated people can often get ahead anywhere.

  175. Re: Is Coding Computer Science? Of Course! by Bite+The+Pillow · · Score: 1

    If they are of no real value, why did GP comment?

    If the first paragraph is a wall of text, why would I think the functions/methods would be smaller?

    If the whole post looks like it was dictated but not edited, why would I expect any thing more than type-and-commit?

    Here is the complete post to which GP replied:

    Let me rephrase that question: "does knowing how to do a job outweigh knowing abstract theory about that job?" I think the answer there is pretty obvious: *of course* coders who actually know what they are doing are more valuable to an employer than some kid with a CS degree and no idea how to actually do a programmer's job.

    Here's the reply in question, paraphrased:

    Self-taught people, in my experience, have missed important concepts. Most of the ones I can list have to do with things most coders won't encounter. I have rarely met people who know everything they should, because either the courses I think are necessary really don't teach what they should, or most people are stupid. Either way, a CS degree won't help. And it seems like I agree with OP, because the 2 people in 15 years are those "of course" people. Also, things I don't know anything about, and lots of homophone type spelling mistakes.

    And here's the part I really like.

    On a selfish note, I will never, ever have to compete for a job with someone that does not have a bachelors degree. So this is good for me and it's not good for our country but hey you're going to do what you want to do dummy.

    First, we were talking about the importance of a CS degree vs. not a CS degree. AC definitely has to fight for a job with people who have a degree in something other than CS, making that completely irrelevant. Stream of consciousness poster has forgotten the point, making most of this gibberish irrelevant. Defend irrelevant points if you want - oh wait, you did, so ignore that.

    More importantly, if it's not good for the country, then learning to code outweighs getting a CS degree. That defeats whatever point he/she might have had.

    There is no logic, and code requires logic. There is no attention to detail, and code requires attention to detail. Communication skills in code are not obvious, but if you cannot communicate your intent, either by code or comments, then you have failed to communicate the importance of your implementation, or other details.

    There is nothing good about the post you are defending, in the context in which I found it. That you defended it, seemingly without truly considering your defense, makes me question your competence. Note, I am not personally attacking you, merely evaluating your response on its merits. And it has none.

  176. Questionable ability!!!! by bayankaran · · Score: 1

    What exactly is this "questionable ability"?
    Most of enterprise software development is working on some code base which is a huge hairball and you do not need any "advanced degrees" to do the job. If you are an excellent / above average programmer you are probably wasting your life in such environment.
    You should not equate the skills needed to do the above with ability to write "elegant code".

    --
    Tat Tvam Asi
    1. Re:Questionable ability!!!! by 140Mandak262Jamuna · · Score: 1

      Bayankaran, please don't scare me ;-) I know many Enterprise software coders write very bad software. They don't have a good grasp of writing proper SQL queries. They constantly cut/paste code. So much of dumb hardwiring it is not even funny.

      --
      sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
  177. Seeing it from the other side by Taco+Cowboy · · Score: 1

    I wouldn't say learning to code outweighed a college degree

    I started as a college student, spending days and night digging into each and every details to the machines (big irons) that we were using in order to make things work

    Then I worked, starting as a coder, then a team leader, then in charge of the entire department, then I was hired by another company, and another, and another, and end up I started one company, and the next, and the next ...

    What you say may be true, from the end of the coder, but if you see it from the other side, as I have done, for more than the past 3 decades, you will know that hiring people base on their sheepskin alone is beyond stupid

    Of the people that I hired, and those who ended up being my partners in my businesses, most of them didn't even finish their college degree - but they possess the skill that no college student have, they have the experience and the instinct to know where to look and what to fix when something fucks up

    --
    Muchas Gracias, Señor Edward Snowden !
  178. help keep wages down too.. by Anonymous Coward · · Score: 0

    Don't have to pay those non-degreed blue collar workers as much.

  179. Me too. I teach CS part time. by Anonymous Coward · · Score: 0

    The popular expectations are all totally wrong. The college system is a big business as well so they don't want to let CS die into obscurity like it should have decades ago (perhaps it never should have left the Math dept?) being replaced with Software Engineering or some non-science degree program better suited to reflect the careers out there. Most students are only thinking job training and are in a certification mindset - these people do not belong in college. Computer work out there is far more like a skilled trade desperately in need of a union; if you look into the traditional trade unions, they have a superior education model to the college system. They spread out education with experience over a long period of time and it is more akin to a MD program--- which is one of the few degree programs that bent to fit the traditional apprenticeship education model.

    Employers are lazy SOBs and are totally geared to cost externalization (especially MBAs) so they don't want to train anybody or be attached to any employees and then wonder why employees are not loyal! They expect the college to do all their job training for them. We get complaints about not teaching some framework or buzzword and it is really sad when it comes from people who should know better. I don't think of employers as jaded-- but as selfish and clueless with an extremely narrow perspective. They want as little responsibility as possible and zero loyalty. Doesn't matter if your are a genius, if you don't know BUZZWORD X for 5 years longer than it existed then they need more H1B visas (speaking of which those people won't likely know X any better.)

    College is not for everybody. By making everybody go there even when it is not necessary or when it does not properly fit the needs you create a evolutionary like pressure which will degrade college education (and has been already.) In my state, we have college in the high school already which just shows how horrible the high schools and colleges (well, the gen ed portion) have both become. We have students gaming the college system like they did the high school system and if you flunk all those punks (and I have) you get pressured by other parts of the school that something must be wrong because their simplistic statistics show a negative deviation.

    Now if people think education is just a recited lecture you could just video and coursework you can just multiple-guess (or as a student said to me "BS my way thru") then they should love all-online learning! correspondence school can become popular (but under a new name to hide the stigma... add E or CLOUD to it...) Thing is so many people have not experienced anything else they don't see the problem, then they come to me... and their mind is blown. Discussions, real work and interaction-- where somebody has to participate or they fail. You can't BS my oral exam process. No idiotic paper test can replace my brain's evaluation. Even I have to bend... but if I had tenure... it would be a 1 man war!! This Sensei isn't giving you a black belt if you are going to have your ass handed to you in your 1st real fight... No, I'm not hated... but I am avoided by some because I can't be fooled.

    Americans now have an attention span of 8 seconds. it was about 13 a decade ago. Goldfish now win at 9 seconds. Should we bend to cultural declines? I think not! If you are not good enough there should be prep schools... the apprenticeship model won't let you progress until you are ready (or at least it is more difficult to warp.)

    College graduates are elite. or they were. That is why it was valuable. Even if you make it all work; the elite status will get somewhat diluted. I also think some degree programs shouldn't exist. Making something you learn on the job and putting it into a serious of courses shouldn't be enough... again, I blame lazy employers helping to create this mess. We are not a certification center for businesses. They can create those if they want to lower training costs! My father was a corporate instructor bac

    1. Re:Me too. I teach CS part time. by Theovon · · Score: 1

      In my university, we accept huge numbers of international students because they pay higher tuition. If we didn't do that, we wouldn't survive financially, because the state's economy is poor. So in terms of keeping the institution alive, this is the best thing to do. And in any case, this never seems to negatively impact our very good reputation in the northeast. (Besides, it's not like we're giving good grades to bad students anyhow.)

      As long as those poor students aren't TOO distracting, the revenue they bring in is good for everyone else. (And some of them get brought around to actually find the subject interesting.) Our domestic students are almost all very good. And there is always a nontrivial portion of the international students who are also very very good. I like to think about the cases where a student who had trouble getting into to other schools was given an opportunity to unexpectedly shine in ours. This happens plenty.

  180. It is a question that should not be asked by Anonymous Coward · · Score: 0

    If you have to ask this question, then the answer is that it isn't going to matter. There are plenty of examples of people without degrees who are excellent coders, such as Bill Gates. There are plenty of examples of people with college degrees who don't code well. There are also plenty of opposite examples. Gates didn't drop out because he had "learned" everything. He dropped out because he was confident and was certain that he knew what he was doing. He taught himself coding. He also taught himself business management. He also worked extreme hours. Supposedly in the early 80s people would call Microsoft around midnight on the weekends because Gates was the only person working at that time and would answer the phone. If you are that motivated, then you would not ask random people on a website what you should do.

    If you have not been coding since middle school for fun, then you probably should go to college. But while you are in college, you should teach yourself coding in addition to your coursework. The people I know who code well taught themselves. Some have college degrees, some do not. Not a single one of them made a decision of "Should I learn to code or should I go to college". They all taught themselves just because they wanted to know how.

  181. theory trumps specific languages by Anonymous Coward · · Score: 0

    If we'e lucky they are taught theory. I have a CS degree and I was taught C++ strictly. I had no clue that learning a variety of languages was key. Now I know better and I am appalled at my school's curriculum.

  182. Nope by Anonymous Coward · · Score: 0

    If you're just a script monkey, fine.

    if you're doing signal processing algorithms, encryption, loop control, modelling, and a slew of other things that require advanced mathematics. Unless you consider yourself some kind of savant (which you're not, asking questions on Slashdot) who can just pick up a book and learn it all, pack yourself off to college.

  183. Most learning should be open source learning by iamacat · · Score: 1

    If you need access to a particle collider, yes you need a big, formal research facility. For everything else, there is enough free information to get a solid job. It's too bad recruiters are looking for a degree, they shouldn't. A programming test can be administered very inexpensively and the problem space is too big to learn every possible question by rote. Current system basically ensures that only rich white and asian people have a shot at a well paying job with their $100K+ degree, regardless of aptitude and effort.

  184. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    Bitterness, check. Jealousy, check. Rationalization, blaming others for your own station in life, inferiority complex the size of Superdome--check, check, check.

    Congratulations! You have exhibited all the negative stereotypes we associate with non college grads. You may now proceed to explain to us why, if you are so much more intelligent than us, you are so dissatisfied with your life relative to ours.

    Signed,
    Just Another College Graduate

  185. Why does this keep showing up? by Anonymous Coward · · Score: 0

    Is the goal to convince people self learning is better than a structured leaning environment.

    You a comparing people who became programmer because they heard it paid well. The did not program before college. They did no more than the class work.
    Compare that to some who has programmed in there spare time for years. College will make that person better.
    This works for sports music art.
    The all what to train with a pro
    Why would programming be any different.

  186. Wow.. by LordLimecat · · Score: 1

    "Does practical experience outweigh a properly trained structural engineer?"

    I'll let you decide-- let me know whether you choose to buy a house that was designed with the help of one of those untrained engineers.

  187. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    Faster isn't necessarily better. Anybody can learn a crapton of random stuff. However, that doesn't mean that there's going to be real integration with the other information they know. Nor does it imply that they'll be able to take that new information and generalize it for application in unrelated tasks.

    I'm sure there are self taught folks that can do that, however, that's one of the major things that schools tend to hammer on.

    As far as bureaucracy goes, a degree isn't the end all be all of competence, however it's a lot easier to check to see that somebody has at least completed the degree than it is to have to administer tests to all applicants over that kind of range of topics.

  188. Re:Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    How does it help if the "obvious" code used the wrong data structures and algorithms in the first place, requiring obvious (rather than non-obvious) design optimizations to the whole thing?

    We're discussing CS vs. self-taught, I doubt those coders at the company writing the obvious and easy-to-maintain code lacked the CS degree and knowledge.

  189. Bad Analogy by clf8 · · Score: 1

    Coder == Carpenter
    Degree == Architect

    Being able to write code is a skill. You can put together some good stuff, but you wouldn't want them designing a skyscraper.
    Now a carpenter who has lots of experience definitely picks up many tricks of the trade and will understand things better. But can they do the math to understand how wind shear should be accounted for, how many elevators are needed for the occupancy, or all of the fire codes? Is that to say an architect can build a beautiful piece of furniture? Not necessarily but a skilled carpenter certainly will.

    Now someone with a CS or CE degree will be able to write code, not only from their first year basic course, but having to implement basic algorithms and data structures. Later, they'll get into Design Patterns to understand useful structures. They'll get into OS courses to understand inter-process communications and race conditions. And finally and potentially most importantly, they'll eventually learn how to evaluate their algorithms to ensure they're doing things in the most efficient manner.

    Depending on what types of apps you're writing, simply knowing coding can be plenty. But at some scale and/or level of complexity, 4 years of college coupled with an internship/co-op of actual experience will outweigh just coding. Yes, experience will certainly get you there as will lots of personal motivation and curiosity. Don't get me wrong, there are plenty of kick ass carpenters but sometimes you need something more.

  190. Here's my 3800 satoshi by cshark · · Score: 1

    As someone who learned how to code without school, and gradually since the early days of the internet, I think I come to the table as someone with a lot of practical experience on this subject. Practical experience is great. But when you are a self taught programmer, you're (at least initially) going to speak a slightly different dialect than your counterparts that spent years in school learning how to do this stuff. And that's okay, because it's something that's workable.

    You're also going to end up with a lot of experience that revolves around the way you think, and the way you, personally, happen to solve problems. This is going to be an issue for you until you have about a decade of experience or so in the corporate world. The advantage here, is that there will be certain areas where you run circles around the college guys, which is great for your ego, and strong egos are important in young programmers.

    The drawback is that there are going to be other areas where the college guys can expound on a subject at length, and you'll have no idea what they're talking about. If you're smart enough to keep up, you'll get it; just bear in mind that there will be things that you'll have to begin learning that the college guys spent half a decade studying.

    The best thing you can do, as someone who teaches yourself code is remember that everything you're doing, and everything you have done is part of the learning process. Unlike a lot of the guys who earn degrees, you're never going to stop learning, and for simple reasons of economy, you're going to have to remain faster, stronger on the practical matters of your trade, and more open minded to changing platforms and workflows than your counterparts. This is what makes you competitive in the marketplace.

    In the event that you do end up going back to school, usually because you've convinced yourself that you need an expensive piece of paper, I urge you not to make the mistake that I've seen some of the best self taught programmers make. Don't unlearn what you know. Don't forget what you've done, or the practical experience you have. Just because you happened to hear it in a CS lecture doesn't necessarily mean that this is the most accurate or up to date information on any given subject.

    If you decide not to pursue the academic route (like I did), my best advice would be to take your craft seriously. Young programmers are like cats with imposter complexes, and they can make the mistake of seeing other programmers as competition. What I'm telling you is that you need to run directly against that instinct, and go out of your way to find good mentors. Most people that would mentor you work day jobs, and with a little cyber stalking, it's not really especially difficult to get yourself on their teams.

    Comb through big open source or high profile proprietary products that you can verify are much stronger programmers than you, who may work in areas you're interested in. Seek these people out, stalk them, try to learn from them. Apply for jobs where they work. Try to get jobs on those teams. Then... learn how to take orders, and let them teach you what they know about programming and life. Of all of the options available to you as a programmer, this is the most challenging. But in my experience, it yields the greatest rewards... even if it is an exercise in humility at times.

    There will be days when you feel the job has beaten the shit out of you, but that's how you know you're learning.

    Don't give up.
    Don't pretend you don't belong there. It's never your place to make that call.
    Rinse, repeat.
    Do this for a years, and you'll be among the best.

    Hope that helps.

    --

    This signature has Super Cow Powers

  191. I'm a B.A. in History by Anonymous Coward · · Score: 0

    As a successful coder who lacks a CS degree, I say: get a CS degree. Sure, you can learn all that stuff on your own, but you'll learn it faster and more thoroughly in school.

  192. Re:CS is a SCIENCE; programmingis a TOOL by Mr_Wisenheimer · · Score: 1

    I am not sure you are understanding my point. My point was that they understand the systems and are responsible for implementing them. They are not necessarily writing the actual code themselves.

    In theory, a computer scientist does not even have to have ever written a single line of real-world code and knowing how to code is worthless if you do not understand statistics, linear algebra, calculus, physics, or whatever underlying task the program is relying on.

    Ultimately, it all depends on the individual and what their role in a project is. The dirty work of coding and the higher level conceptual work are too very different things.

  193. lawsuit up teh college by Anonymous Coward · · Score: 0

    bunch of false ads.
    Here's how your RESUME goes in the Real World

    yes we love your degree in "not knowing crap about this stuff, nice you know what a PN junction is, and your destiny/fraud based programming of your place in the universe is impressive yet borderline delusional." Sad. ya just don't meet our qualifications.

    You can't actually DO anything can ya, as you have no REAL experience.
    If we were looking for another leader with a vision of "PN Junction, MOV AX 1" we wouldn't have created this corporation in the first place.

    .

    Hey I will pay ya fucking $700 an hour, HOW MUCH are you going to MAKE ME?

    1. Re:lawsuit up teh college by Anonymous Coward · · Score: 0

      *** BONUS QUESTION ***
      I WILL PAY HAPPILY PAY YOU $15000/hour
      What DO YOU PRODUCE that I don't?

      food? Energy= LIFE
      resources? A+B = C
      hand held working technology?
      energy? Got eCAT LENR HHO/HODs'? You work out that 1:1 = greater than 1, infinite cycle?
      Can YOu make that U-CLAMP with the 9 volt, and Electro Magnetic Lift to build Pyramid yet?
      Reverse Engineer Stanley Meyers VW?
      current exploitable stolen data - monetary control? (if I was an oath breaking/ world war 3.1134 planning spy..)

      We ain't even touching greentard poo here. Carbon tax. Agenda 21, sardine cans. Gee that's sustainable.
      Obumerfraudcare. Death by neglegence, apathy, and unconstitutional oath breaking
      Fukushima, Volcanic, Earthquake denial of reality

      You are FAR down the rabbit hole now
      GOOD LUCK! You need it.

  194. Eventually... by John+Allsup · · Score: 1

    Imagine a world where coding is as ubiquitous as reading and writing is to us today. Bear in mind that centuries ago, reading and writing was about as ubiquitous as coding is today, and was at one point in time the preserve of the masses. Writing for machines and reading machine instructions will at some stage become part of our everyday literacy. The thing is, efficiency matters: in a competitive marketplace, for a given market niche, barring underhand business tactics, the more efficient (and effective) software will tend to do better. Eventually underhanded business tactics will become too inefficient relative to the state of the art, and will be destined to die out (as, in general, will self-serving greed, it too not being the most overall efficient use of resources). Maths is unavoidable, and computer science is an outgrowth of maths, and is the part relevant to modern digital computers. Furthermore, concepts and phenomena we see in computer science and artificial intelligence often have implications and applications well beyond digital computers once considered in mathematical generality. Long term, coding is not enough, but not being able to code when computers are as ubiquitous as they are today is as sensible as not being able to read or write, or do simple arithmetic.

    --
    John_Chalisque
  195. What happened to High School by Anonymous Coward · · Score: 0

    I thought HS was skills for a career, a life, a job.

    College was for higher learning, not just a job.

    ===

    Now HS is a daycare center

    and college, a la BS degree, is summer vacation

    and college, a la MS or higher, is entrepreneurship for some social networking startup.

  196. It's a difference between theory and practice. by Z00L00K · · Score: 1

    Some degrees contains a lot of theory around algorithms but they miss the point of how do you code in a good way - produce code that's easy to maintain.

    The bulk of the code written is essentially just bread and butter, check this, check that, merge strings, store data, retrieve data. Few have to concern themselves with indexing algorithms, best function to seek data - it's in the database API.

    The "How to write quality code" chapter seems to have been lost (if it ever did exist) for many that are coming out fresh on the job market.

    Employing someone with a degree in Computer Science can even mean that you employ a code jockey that re-invents functionality that already exists in a library - with the risk of new interesting bugs introduced.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  197. Re: Is Coding Computer Science? Of Course! by NJRoadfan · · Score: 1

    While in college, I saw a frighting amount of CS majors that didn't know how to program. Those folks later graduated with a degree.

  198. Program to check if program terminates by Animats · · Score: 1

    Been there, done that, 30 years ago.

    Every Windows driver with WHDL certification has passed the Microsoft Static Driver Verifier, which is a proof of correctness checker. Passing means that the driver won't blow away the rest of the OS with a bad pointer, subscript error, or other fatal error. Since Microsoft started requring this in Windows 7, Windows OS crashes have been way down.

    About 5% of verifications either require too much time or too much memory. Any formally undecidable program would hit one of those limits. If it's that hard to tell if a driver has a bug, they assume the driver has a bug.

    So there. Solved problem in practice.

    1. Re:Program to check if program terminates by lesincompetent · · Score: 1

      Please recompile yourself, may i suggest you
      #include lightheartedhumor.h
      this time?
      (Angular parentheses not allowed by this comment system.)

  199. Re:Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    Coding is engineering, not science. A fine distinction, but a distinction nonetheless.

  200. Source: Epoch Times? by Animats · · Score: 1

    This story is from the Epoch Times, the poltiical paper of the Falun Gong movement. Anything there that's not political is filler to make it look like a real newspaper. Probably not a good source for programming wisdom.

  201. Are "self taught coders really better? by typo-lfm · · Score: 1

    Well, you do learn to code in colledge too. It may be not the style the employer wants, but people who learn coding outside of classrooms may not be all that much better in the long run. Of course there are exceptions on both sides.

  202. Re: Is Coding Computer Science? Of Course! by grcumb · · Score: 1

    Your post also brings into question exactly how good of a programmer you really are as well. You see, English, much like programming, has a structure and a syntax. While you may have syntax, there is no structure. You may not have to compete for a job with someone who doesn't have a BS in CS, but you will most certainly have your cover letter compared to another person with a BS in CS who actually puts structure into his correspondence.

    "Your post also brings into question your abilities as a programmer. English, like programming languages, has both structure and syntax. While your writing has syntax, it is largely unstructured. You may not have to compete for a job with someone who doesn't have a degree in Computer Science, but you most certainly will have your cover..."

    ... Oh, forget it. Your last sentence doesn't actually have logical coherence.

    Hugs,
    QA

    --
    Crumb's Corollary: Never bring a knife to a bun fight.
  203. Re: Is Coding Computer Science? Of Course! by Dahamma · · Score: 1

    Probably one of those programmers who doesn't understand how tabs and spaces work. Honestly, I don't give the first shit whether you prefer tab or spaces: when you edit *existing* code, MAKE SURE YOU FOLLOW THE CONVENTION IN THE FILE! :)

    It boggles my mind how some people can't comprehend this, and makes me question their attention to detail in other areas...

  204. How about *Computational* Science? by Anonymous Coward · · Score: 0

    At USC Beaufort, we have a relatively new undergraduate major in Computational Science that includes elements of software engineering and high performance computing with an emphasis on problem solving and application over theory. We don't ignore theory altogether -- we just teach it in the context of actually *building* something. Computational science is not computer science--it's more like "science, computationally." The students seem to like it, so we're growing as a program, getting NSF grants, hiring new faculty, and placing our students in internships and full-time jobs ranging from web & app development to support of large-scale engineering projects. It's not perfect, but we must be doing a few things right, no?

  205. Re: Is Coding Computer Science? Of Course! by Dahamma · · Score: 1

    Stereotypes go both ways. Why would you assume there are not plenty of students who loved to learn and hack while in college? In fact, my "extracurricular" projects were always what intrigued interviewers out of college, and I guess that has carried over to my interviews of potential candidates now.

    Honestly, I had *fun* in college, as well. And also double majored, played a sport, made tons of life long connections (friends and networking). I appreciated that I had the opportunity to study and do many other things besides one specific future-job-related-skill. I understand not all college students got as much out of it as I did, but that doesn't mean my experience wasn't valuable in many ways, job-related and otherwise.

  206. It depends on the actual person by soccerisgod · · Score: 1

    Just my $0.02:

    I've met all kinds: self-taught (for the most part what I am), university educated with varying levels of degree and anything in between. I've seen lots of people with high level degrees who were totally useless as soon as actual code was involved, but I've also met the other kind, highly intelligent people with degrees that at the same time were able and especially willing to use what they had to craft superb code.

    If you want to learn to program and do actual work instead of just meditating about computing theory or fiddling with database concepts, you will. In the end, you must want to learn it, you must be interested, and you have to be a practical girl or boy, interested in getting into the thick of it and getting your hands 'dirty'.

    IMHO, whether you get a degree or not has nothing to do with that.

    --
    If a train station is a place where a train stops, what's a workstation?
  207. that explains by Anonymous Coward · · Score: 0

    where all the bad code is coming from

  208. No by Anonymous Coward · · Score: 0

    You simply won't be considered without a degree in a relevant numerate subject. It doesn't have to be computer science though. There are also specific software engineering degrees that typically diverge from the computer science stream, after the first 1-2 years.
    In the United States, consider a masters. The first year or so of a degree, is typically high school level material.

  209. Learning to code is learning a tool by YoungManKlaus · · Score: 1

    it wont help you shit in how to design the thing you want to build.

  210. Re:Is Coding Computer Science? Of Course! by mjwalshe · · Score: 1

    not that many most jobs are CRUD type applications

  211. Re:Is Coding Computer Science? Of Course! by mjwalshe · · Score: 1

    I once had a recentish graduate comment oh 3Db isn't much :-) Its more than Double BTW!

  212. Absolutely yes by Anonymous Coward · · Score: 0

    I'm 45. I started coding at the age of 14-15 (GW Basic) and still love it today (mostly C/C++). While in school, me and others were always way ahead of our teachers, we had to "learn" again what we already knew. Yes coding can be taught, but not the love of it, nor the art of it. Also, for your code to work, it has to be beautiful -some will understand what I mean by that-, simple and one-task dedicated. Coding is a beautiful thing.

  213. Being a developer is about more than code by Anonymous Coward · · Score: 0

    I had to write some vector-handling code, in PL/SQL of all things.

    Doesn't really seem sane. Why was that needed?

  214. Re:Does Learning Mechanical Engineering Outweigh . by soccerisgod · · Score: 1

    Maybe the problem is the definition of 'code'. Is is just cobbling together bytes that seem as if they want to fit together, trying to fit the round piece in the square hole until you realize that may be the wrong way to do things? Or is it the same as programming, which should involve a plan and design and a deeper understanding of the problem and possible solutions? 'Code' certainly sounds a lot more like "I hacked together something and it even works!" than 'programming'....

    --
    If a train station is a place where a train stops, what's a workstation?
  215. Re:It's all not bunk. by thunderclap · · Score: 1

    The value of "learning to program" is roughly comparable to the 1st year of CS classes at a reputable University.

    And that it the delusion that people operate from that got us a hackable Icloud, and endless years of buggy MS software, UX and other abominations.

    Also, the degree is no replacement for practical experience.

    This is true.
    Here is the problem, Learning and programming are far, far, far more important that theory. I have (as one of) a degree in Avionic. You know how long of the two year course was spent in theory of electronics? 6 weeks. Theory of flight? 6 weeks. Actual repair, assembly, fabrication, customization of the actual avionics components (which are miniature computers now not the old fashion dials and gauges, but I digress) The entire rest of the course. Computer theory is meaningless without the ability to actually code, debug, and compile actual complex software as know the principles of flight is with being able to fix or fly a plane.
    12 weeks max. No more. When someone one leaves a college, they should be able to code in at least three languages something that would be production ready. Just Like my final test was to fix a malfunctioning avionics component on an ACTUAL 747 (yes we had a gifted one in our hanger that was used for tests. It was no longer flight worthy but we were never told that until after the test.)

  216. Re: Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    AC is the reason people can fap to J Laws and Kate Uptons nudes right now.

  217. Re: Is Coding Computer Science? Of Course! by thunderclap · · Score: 1

    I would so mod you up right now. You are so my point I was making earlier.

  218. Yes it does. by Anonymous Coward · · Score: 0

    Does Learning To Code Outweigh a Degree In Computer Science?

    Yes it does. In the "real-world" at least.

    There's been lots of talk in this entire thread of learning to code only getting you so far and will only make you a "cookie-cutter programmer" whilst getting theoretical understanding that a degree will give you helps you to go much further and be a true "engineer".

    I don't disagree with this, however, the sad reality of the real-world is that there is far more demand and opportunities for "cookie-cutter programmers" than there is for "engineers". Most employers don't really want engineers who'll spend excessive amounts of time working out the very best solution to a given problem, they want code monkeys who'll quickly throw something together that works so they can get it out of the door quickly and invoice the client.

  219. Oh God Yes by Anonymous Coward · · Score: 0

    Funny enough, I myself am completely self taught and have not needed a computer science degree to land work because I was lucky to have pushed for work experience, internships, etc. I have attended zero Unis and paid little to nothing for my education while most others I know who have gone to get the degree are drowning in debt.

    Employers look highly upon folks with actual industry experience, most don't even give a rats ass about your piece of paper... it's worth as much as toilet paper to them. The last company I worked for, when I first applied for work there, there was a cocky little bastard waiting with me to get interviewed for the position. He scuffed at me not having any degrees of any kind telling me "bro not sure why you're even here". Long story short, the guy walks out the door all confident and gloating and I'm the last one to go in. I showed the employer (my former supervisor and very good friend now) the two companies I worked for over a period of 2 years and I landed the job then and there. Didn't even include any of the other work experience and internship stuff I had done, only the full time work I had landed.

    Degrees win you fuck all. Degrees are a new age of "permits" so to speak. Don't fall for the BS scam of the new age. You look back 40-50 years and most people were either self educated or were taught by people who knew the trade.

  220. Reason for college by carys689 · · Score: 0

    College computer science programs are doing the right thing. There's no point in college if all you want is "practical" programming skills.

  221. Coding by DaMattster · · Score: 1

    I would really like to learn to code and a job doing it. I can setup and maintain LAMP stacks in my sleep. I'm just tired of the infrastructure side of IT.

  222. Well it depends by macshome · · Score: 1

    A practical job writing code all day probably gains little benefit from a CS degree if you can learn the fundamentals another way.

    If you want to do research and design then you probably should go down the CS degree path.

  223. Absolutely YES by Anonymous Coward · · Score: 0

    Some of the best coders I know are CS major dropouts. I hire and lead Web UI devs for my area at a Dow 30 company for the most visible consumer-facing web apps. If you can whiteboard out the code I need and show an aptitude for learning more, you're in.

    Education looks good for the initial HR and management filters, but seriously- 10-15 years into your career, how much design pattern work that you're then using did you actually pick up in college?? Myself, I'm not doing so much Pascal and emacs work... If you're not continually learning, you're dead-ending yourself. So if a candidate shows they're already in that self-learning track, that is much more tangible to me.

    Know the scale of where you are applying for a contract or FTE. If it's enterprise, know and have experience in enterprise SDLC and don't put down PHP and MySQL without having working knowledge of Agile, source code management, and a good diverse swath of languages, platforms, and frameworks.

    And bite off a little more than you can chew. Never overstate yourself, but do show the inclination to learn. I can teach anyone to code, but I have to see that thirst in the very short amount of time during you're interview.

    Am I saying to skip college? Absolutely not. The life experience is worth it. Is it essential to landing a great coding contract or job? No.

  224. Yes by Anonymous Coward · · Score: 0

    But less literate then (sic) those with an educaton.

  225. Programming by psymastr · · Score: 1

    I have been an employed programmer for about 8 years now, dropped out of school to get paid instead of paying. Every single person I have had to work with who had a CS degree have had two traits in common. First, they love to remind you they have the degree. Second, they barely contribute anything to production except great ideas of how not to do things.

    As a non-degree'd person, I have done contract work for 3 separate universities so far. You would think they would have an infinite supply of proud cheap labour to tap before giving me a call.

    You sound pretty bitter.

    Also, has it dawned on you that people might be doing a degree because... they want to learn things, i.e. not necessarily to make money on their job? Is this notion so outlandish to you that you fail to even acknowledge it?

    Also, in many (most?) countries you do not pay to go to university.

    --
    Improve at backgammon rapidly through addictive quickfire position quizzes: www.bgtrain.com
  226. Except by DarthVain · · Score: 1

    However your University may not have used Java or some buzzword fancy new language that is all the rage, but rather used an older core language.

    So when you are competing against some one year code monkey for a job that lists whatever language is the flavor of them month that you don't necessarily have it doesn't work out well. I have tried explaining that the fundamentals are the same, or that I would be able to pick up any language very quickly, however to management and HR, the guy who had the training in the fancy wing ding gets the position.

    1. Re: Except by Anonymous Coward · · Score: 0

      The guy with the flavor-of-the-month experience also probably made a working project for the employer to look at.

        It's easier to imagine someone doing something, when they've DONE IT, and they show you they've done it.

  227. Re: Is Coding Computer Science? Of Course! by Hentai · · Score: 1

    Congratulations! You have exhibited all the negative stereotypes we associate with non college grads. You may now proceed to explain to us why, if you are so much more intelligent than us, you are so dissatisfied with your life relative to ours.

    Because my parents couldn't afford to send me through college, and I was too busy coding in junior high and high school to keep my grades up or network with the right people.

    --
    -Hentai [in vita non pacem est]
  228. Re:Is Coding Computer Science? Of Course! by Hentai · · Score: 1

    Absolutely. And usually early optimization leads to way more spaghetti code than properly describing the problem, coding a conceptually elegant solution, and then optimizing from there.

    --
    -Hentai [in vita non pacem est]
  229. Re:Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    Symantec? You worked at Symantec?

  230. Code VS structure by phorm · · Score: 1

    I've met people who were brilliant sysadmins or developers but who never went to college/uni, let's call them the enthusiasts. In fact, I'd say many of the best free-thinking problem-solvers (those that could deal with an "unexpected" issue and sort it out quick) were not college-educated.

    However, there is one thing the "educated" people brought - other than an expensive piece of paper - was structure in dealing with long-term support, mainly documentation. The college people tended to indent nicely, comment code, and use variable names more descriptive than $x1, $x2, etc. They tended to leave a paper trail that was easier for successors or co-workers to follow.

    When sh*t hit the fan, the college guys sometimes fell into a "OMG it's not in the book/docs, what to do!?" whereas the "enthusiasts" were quick to come up with useful but sometimes unortherdox methods for diagnosing and fixing issues.

    I'm more of a middle-grounder myself. I spend years dealing with crazy computer issues before Uni, but still managed to scrape up the cash to attend. Having industry experience was also helpful in finding a decent gig post-Uni (for that matter, I *highly* recommend a course that has co-op - work-terms, generally paid - if available). If you *like* code, there's no reason you can't go to Uni and/or do some side projects of your own for fun and learning. Again, in my personal experience, Uni provided me with the *structure* that helps maintain the systems I run, but experience and an interest in the industry provided me with the ability to deal with quirks and unusual situations. Engaging in activity that show you have good group-work/communication skills is also *very* helpful.

    For those hiring, a team with some educated coders/admins and an enthusiast be *very* effective. The problem is generally in finding people who work well together, as both types tend to come with their own variety of ego. It's sometimes hard to get the enthusiasts to commit to building good documentation or working on longer projects (they work well on-the-spot but can be more easily distracted/bored), and you get a lot of upmanship (upwomanship?) in either direction.

  231. False premise by Anonymous Coward · · Score: 0

    I'm not sure what market you're in, but here in Dallas TX it's super easy to get a job in technology. Extremely easy.

    I dropped out in 9th grade and it's only been an issue in a handful of interviews. Never had a gap in my work history and make 6 figures.

  232. Comp Sci != A Programming Degree by Anonymous Coward · · Score: 0

    Programming is something you do to learn comp sci, but it's not the point, much like the point of carpentry is not to learn how to swing a hammer. This view that a comp sci graduate should automatically know how to program large projects is asinine, that's not what real comp sci is. Vocational degrees are great if what you want to do is simply learn to develop software, go know yourself out. On the job training in an entry level position for someone with a comp sci degree (or you know, an internship) solves this problem as well, I don't know why this whinging comes up so often.

    I'll tell you one thing my degree is freaking great for, not getting my resume thrown out with the 250 applicants that had no degree. Technically, personal references trump everything, I'm not sure how well half our industry does with those given the high rate of "interesting" personalities.

  233. Best path by rhyous · · Score: 1

    Become a programmer through self-study/training course and get an entry-level job with a company with tuition reimbursement. Then take night classes. Get practical experience as you get theory. Get paid. Get school reimbursed. It will take six or years instead of four, but you will have 6 years experience and have a "staff" title, working on your "senior" title when you graduate.

  234. Author missing the point by Anonymous Coward · · Score: 0

    The original author of the article missed the point of a USA university degree. The goal is not to become technically proficient in a career choice as fast as possible. Good universities in the USA give the student a broad perspective on diverse topics from ethics to history to philosophy to mathematics to [insert your career]. A 4 year Bachelors degree can be one of the funnest and greatest times of your life where you are given room to explore and make discoveries and mistakes. Ten years after they graduated, the majority of the people I know who went to a top 50 university regard it as the one of the best times of their lives.

    Take a chance, grow your soul while you have a chance.

  235. A Degree is Good by pmcizhere · · Score: 1

    Having ANY degree is a good thing, though. It shows that you can follow through with a long-term project, which is what a degree ultimately is. I'm getting a degree in Information Systems, which includes database and other applicable programming. It's much less theory, and a lot more relevant learning.

  236. engineer vs hacker by Anonymous Coward · · Score: 0

    degree is morely to produce an engineer, self taught is morely to produce a hacker. This refers to a planned approach vs "just start writing / changing code".

      The very best engineers (in my experience) were self taught. The very worst hackers were also self taught.

  237. Ponder this by NorthWay · · Score: 1

    "Learning To Code" and "Computer Science" One is a subset of the other.

  238. C'mon — 73.6% of all statistics are made up. by tagattack · · Score: 1

    Those numbers "about half of all software engineers have a degree" [wikipedia]. "Nearly half of the software developers in the United States do not have a college degree. Many never even graduated from high school" I haven't been able to find a single study that confirms those statements, and it isn't corroborated by my own experience. Even if they were real, what would they even mean?

    If all people who write programs of all type are included, the number may have some validity, but in my team which builds software that runs an advertising network 6 of the 8 software enigneers have a degree. The two outliers are a developer with twenty years experience building software, and a senior graphic designer who is holding an internship level software engineering position because the company wanted to support his desire to change careers. Across the engineering department, a hand full of engineers have degrees which aren't computer science, but very few of them have no degree at all.

    Building software is a lot like other skills, skill sets vary. You don't hire a detailer who you pay $20/hr to wash cars to paint a car if you want car-show quality results; you hire an auto-body expert and pay him $100/hr. Similarly, you might hire any old contractor to build a garage, but you don't hire any old contractor to build you a thirty story building — you hire a real architect, and a real engineer. On the same note, you can't hire someone who just "can program" to build a system that runs a business of much scale.

  239. Re:Is Coding Computer Science? Of Course! by Anonymous Coward · · Score: 0

    Michael Jackson's (no, not that one) first two rules of optimisation:

    1. Don't do it.

    2. Don't do it yet...

  240. Hammer & Saw vs. Architect? by YouTahDoug · · Score: 1

    Metaphor: So are you asking whether or not learning to use a hammer and saw outweighs becoming an architect? People who just learn to code are most likely to produce unstructured, difficult-to-maintain, "spaghetti code." Why? Because they are focused on a line-by-line development process, and rarely see or give thought to the overall structure of the software they are developing. This can be OK for small programs or software for personal use. Programs developed by coder-only people often have code that flows out like an amoeba rather than code that has an expandable solid structure to it--impossible for the next guy to alter or maintain. Granted some colleges don't see this and instead equate coding with software engineering. The best CS curriculum dwell on structure and testability of the software, and focus less on what textual syntax actually produces the executable binary code. True software engineers design the software--coder merely fill in the blocks within their little corner of the design.

  241. problems in our industry by globaljustin · · Score: 1

    ..if you think confusing computer science and software development is interesting

    i think solving the problems in our industry is interesting, and it's clear that many attribute some of those problems to their education experience

    the notion that 'computer science' and 'software development' are two different 'things' is reductive and confuses the question

    it is a false dichotomy, as another pointed out, on many levels

    i used to teach in academia...in an **academic setting** within a greater 'school' I can certainly see the need to differential between 'computer science' and 'software development' as distinctions **within computing generally**

    they could be two different major options within a greater "math and computing" program, just as an example...

    in *that* case, the distction is relevant and logical...

    in general discussion, the two activities frequently describe the **same behavior**

    they're overlapping terms in common parlance...so yes, this all matters...because how we train the people who work in our industry matters...when we talk about the problems of "computer science" we really confuse the discussion and make things more confusing by drawing hard-line linguistic distinctions as you do

    --
    Thank you Dave Raggett
  242. Re:Is Coding Computer Science? Of Course! by TsuruchiBrian · · Score: 1

    This is like saying that most buildings don't require architects. This is true if you don't care if the final result sucks. When software fails it's usually just inconvenient. When a building fails, people usually die. We typically care more about building quality than software quality. If you don't care about software quality than hire a self taught coder. If you don't care about your building being safe, then hire a construction worker to design it.

  243. appearances matter by abramN · · Score: 1

    As someone who worked as a software developer before and after I got my degree, I can tell you that the degree matters. I experienced a 50%!!! increase in salary after I got my BS in CIS. I got my last two jobs after I received my diploma, and both employers looked at my education during the background check. I agree that it shouldn't matter, but unless you have a killer app on the android store, or some other tangible piece of evidence of your coding prowess, the employer is going to want to see the degree.

  244. Re:Is Coding Computer Science? Of Course! by TsuruchiBrian · · Score: 1

    Of course a construction worker who actually knows what he is doing is more valuable than some kid with an architecture degree who has no idea how to do his own job.

    That's true until your building falls down because the construction worker/self-taught architect didn't know the fancy theories behind calculating loads and stresses, and only knew how to attach metal piece together.

  245. Get a Degree If You're Serious by Anonymous Coward · · Score: 0

    Getting a Master's Degree in Computer Science has not only afforded me a professional advantage in every job I've ever applied for, but also provided a solid foundation in the fundamental algorithms, data structures, and patterns that underlie the high level tools and platforms that I use every day. I know from first-hand experience that the degree gave me a broader perspective and deeper power of insight than colleagues without degrees who merely pick up the language-of-the-day as they go along.

    Get a degree if you have the opportunity and want to learn this discipline from the theory to the metal.

    I don't think any unbiased person out there could suggest that a solid academic foundation could actually hurt.

  246. Re:Is Coding Computer Science? Of Course! by machineghost · · Score: 1

    Maybe that analogy holds up for some companies; as I said, there are companies that need computer scientists who can code just like there are companies that *need* biologists, architects, or artists that can code. I want the Adobe Illustrator team to have artists on board, and I want Google's search team to have computer scientists on board.

    But the reason your analogy falls apart is that not all applications are Google search. At all of the software companies I've ever worked for, and most of the ones my friends have worked at, knowing big O notation is *completely* useless. In contrast knowing that you want to cache your jQuery selector before starting a for loop (vs. re-querying on every iteration) is pretty important. But even still, I've interviewed plenty of developers with major companies on their resumes that didn't even know that much.

    The simple truth is that a large number, if not the majority, of applications you use and websites you visit have team members with no CS degree. Some of them don't even have a person with a CS degree on the team. But those applications/websites aren't crashing and burning because they lack academic knowledge: they're (successfully) powering your life.

  247. Anyone equating 'coding' with software development by Anonymous Coward · · Score: 0

    Gets what they pay for.

  248. That Explains A Lot by Anonymous Coward · · Score: 0

    From the post: "Nearly half of the software developers in the United States do not have a college degree."

    Well, that explains a lot! Colleges teach people how to think critically. Not knowing how to think critically leads to the kinds of flaws which are exposed daily in software.

  249. Misplaced expectation put on grads by w1gglyw0rld · · Score: 1

    I feel that there is an unfair expectation put upon new grads here. "graduates...are often ill prepared for the work force." The unwritten expectation here is that the graduate will be proficient at programming, and able to code at their employer's request the day they graduate, as if colleges and universities are just pumping out coding machines ready for the factory floor. I think it's entirely unreasonable to expect a fresh grad to have the wherewithal to code in a real world production scenario on day 1. At university, they've been schooled in the concepts and skills they will need to help them grok the scenarios they will later encounter in the work force. That's what college is, a place to learn; some application is needed, most certainly, but the foundational learning is crucial. Software engineering programs aren't like a trade school, where after 1-3 years you come out a skilled plumber or other skilled craftsperson ready to rock it. But that's how I feel that the aforementioned employers are viewing software engineering, like a trade, that has specific parameters to learn, the graduates of which should immediately be plug-and-play in the workforce. This kind of naive short-sightedness permeates the software industry, and reveals itself in computer-illiterate management and product-owner types who's mindset is analogous to "it's just programming, its all the same". "Oh you went to school for programming? So you can fix the e-commerce system then." "You know Java so you can you fix the web page layout issues." "Is it fixed yet?" External coding schools and programs are fine, but if they aren't teaching theory and the foundational concepts, they're just creating a bunch of do-it-yourself coders who, in my decades of programming experience and now software management experience reveals, are more often than not sloppy cut-and-paste hacks who burden the forums with questions they would know the answers to with proper foundational education. This is not always economically feasible for some, I know, but that's a different topic. Get the degree. You'll be glad you did.

  250. What about advancement? by Walter+White · · Score: 1

    I'm not going to comment about the value of the degree to the employer. I have my own opinion and it and it has already been covered more than adequately. I want to point out the value of the degree to the developer.

    When my son was in college he mentioned that a friend of his had been offered a job with a decent starting salary without the need to finish his degree. That was in 1999. The industry was flying high. I pointed out that he risked stagnation w/out the degree. It would be difficult to move to another employer w/out the paper. This meant that his current employer need not pay him commensurate to his skills. I saw it as a cynical move on the part of the company to capture talent that would then find it harder to leave. Worse, if the economy tanked. he would be competing with degreed professionals for the better jobs.

    He took the work, the dot com boom turned into the dot com bust and he was out of a job. At that point he returned to school and finished his degree. Fortunately he was in a life situation where he had that kind of flexibility. Had he a family to support and perhaps a new car and mortgage to pay off, he might have been in a pickle. Lots of degreed professionals found themselves out of work at that point but I'm sure the degree gave them an advantage finding something else to do.

    And just for grins, I interviewed for a position today and they *did* ask about my degree (earned in '82) and how applicable it was for the work involved. And yes, I will start Monday.

  251. Re:Is Coding Computer Science? Of Course! by Nethemas+the+Great · · Score: 1

    Learning syntax and APIs are one thing. Maybe you're particularly adept at that. However, this is only a fraction of what makes a good software engineer. Theory is critical to their application. The development of robust, efficient, and maintainable software more than just knowing how to mash the keyboard and hit "compile". The theory of application for those APIs, the theory underlying data structures and algorithms, theories of architecture, etc.. With out these your projects will suffer as you constantly reinvent the wheel and "learn from your mistakes." Yet, those who went the self-teaching route most often skip the theory, skip the mental exercise, narrowly focusing on syntax and APIs.

    I'm not saying a college degree is a perfect accommodation for producing best of breed software engineers. I think many colleges are missing the mark on providing necessary experiences encountered by those in the trenches. So much of the course work feels like bringing a tank to a knife fight and it provides a distorted sense of reality that undermines the point of what they're learning.

    --
    Two of my imaginary friends reproduced once ... with negative results.
  252. Re: Is Coding Computer Science? Of Course! by Nethemas+the+Great · · Score: 1

    Self-taught, while not always, usually means all syntax and APIs but precious little theory except that which is obtained through osmosis. Due to the "you don't know what you don't know" factor this limits not only the domain of problems that can be solved but the efficiency, robustness and maintainability of their solutions. Most often they reflect a focus on too many trees and far too few forests. A reflection similar to their decision to try to shortcut their way around the prerequisite of a formal education.

    Mean while anyone having to work with them or their products is forced to waste time waiting for the reinvention wheels as well as fixing or working around their messes.

    --
    Two of my imaginary friends reproduced once ... with negative results.
  253. Re:Is Coding Computer Science? Of Course! by Nethemas+the+Great · · Score: 1

    You would be surprised to see how many interviews you can cut short by asking questions like: "what is the purpose of inheritance in OOP?" or, "You are told that you are going to be assigned to a project involving a number of technologies for which you currently have no knowledge. How would you prepare?"

    --
    Two of my imaginary friends reproduced once ... with negative results.
  254. Re:Is Coding Computer Science? Of Course! by TsuruchiBrian · · Score: 1

    At all of the software companies I've ever worked for, and most of the ones my friends have worked at, knowing big O notation is *completely* useless.

    You need to know about things like time and space complexity when selecting appropriate data structures. For people who don't know what their doing, an array works just as good as a linked list (until it doesn't), and someone who understands time complexity needs to figure out why the code is slow and fix it.

    Some plain old coders know the basics of computer science, but there are a lot that don't. There are even people with CS degrees that don't know the basics of CS theory. So no, not ever programmer needs to know about the halting problem and finite state machines, but you need to at least know the basics to write code that doesn't completely suck.

    I'm not saying you need a degree. I'm saying that a degree usually indicates at least a basic understanding of CS theory which I think is indeed very important. There is more to being a software developer than "Knowing how to code" (i.e. Writing code with correct syntax). And I have found that many if not most self taught coders (along with some CS degree holders) do not really have the skills necessary to write *good* code, due to lack of understanding about basic theory. And by good code I mean code that doesn't have to be rewritten at some later point by someone knowledgeable.

    Some of them don't even have a person with a CS degree on the team. But those applications/websites aren't crashing and burning because they lack academic knowledge: they're (successfully) powering your life.

    Most code sucks. The reason websites continue to work (sort of), is because they are all relying on good software written by people who *did* know what they were doing. And this code is usually so good that it helps people who are incompetent make something that kind of still works despite themselves (given enough time). Most of the time it is not even cheaper to hire incompetent people because it takes them so much longer to get things done even with all the great tools out there. It costs the same to pay someone $100/hr to finish something in 2 days than it is to pay someone minimum wage to finish it in 2 months.

    And as far as people who know a lot of theory but don't know how to actually make anything... I don't think those people really exist. I too spent most of my time in college drawing boxes and arrows rather than coding, but even with a heavily theory based program I was exposed to 2 wuarters of C++, 1 quarter of assembly, 1 quarter of Java, 1 quarter of networking (udp/tcp), 1 quarter of SQL, etc. Learning to code competently is relatively simple. I'm not saying that theory is very hard, but if it were easy, then everyone would do it (without school). There are many of coders for every person who knows theory. And even new grads pick up coding in a few months if they don't already know how to code pretty well at the time they graduate.

  255. Re:Is Coding Computer Science? Of Course! by machineghost · · Score: 1

    The development of robust, efficient, and maintainable software more than just knowing how to mash the keyboard and hit "compile". The theory of application for those APIs, the theory underlying data structures and algorithms, theories of architecture, etc.. With out these your projects will suffer as you constantly reinvent the wheel and "learn from your mistakes."

    Amen, but ...

    Yet, those who went the self-teaching route most often skip the theory, skip the mental exercise, narrowly focusing on syntax and APIs.

    Now you just made a logical leap that I can't follow. Especialy when we both agree:

    I think many colleges are missing the mark on providing necessary experiences encountered by those in the trenches.

    So is there more to being a good programmer than just syntax and APIs? Absolutely. But you'll need to give me some sort of evidence if you want to claim that fresh college graduates have more of the practical "theory of application" knowledge than an un-schooled coder, since that goes directly in the face of my experience. The way I see it, a college graduate is more likely to know how to implement a linked list (which they likely never will do), while the self-taught coder of the same age has at least worked on some projects and learned from some "reinvent the wheel" mistakes.

  256. Re:Is Coding Computer Science? Of Course! by Nethemas+the+Great · · Score: 1

    It isn't always about primitives--bubble sorts, linked lists and the like. Theory deals far more broadly.

    --
    Two of my imaginary friends reproduced once ... with negative results.
  257. A communist plot! Mired In Shitski (MIS) by RAVEN2 · · Score: 1

    It's a person with the ability to logic and reason a problem to its completion regardless of their coding skills or degree. But..... Most CS or MIS grads I've worked with were for the most part unable to cross the road on their own. They were however skilled in manipulating management into believing their CS-speak. Of course this also goes for the "bulldozer coders" who amuse and confuse management with piles of listings and errors only they can deal. Plot.... Myself and others have always contended that our college professors were all members of a Red Sleeper Cell hell bent on creating future impotent CS leaders. Case in point would be Gates, Jobs and the whanker who came up with C.

  258. Re:Does Learning Mechanical Engineering Outweigh . by umghhh · · Score: 1

    This is not the point you are trying to make but maybe it is, not sure here: most of the cohders I know and have known over the years (this is now more than quarter of century) have no f. clue about construction of robust and reliable software systems and structures. In fact those that do are a few and far between. The difference between those that do and those that do not have a clue is striking and does not involve speed of coding but rather speed of development - in case of really good guys you still have to refactor but there is visible sense in it and you do not have the feeling you got yourself dirty when you are done with it.

  259. Two Tracts - Formal versus Certificate by Anonymous Coward · · Score: 0

    This is an interesting post regarding computer science degrees.

    I believe there are two tracts – formal education (BS, MS, PhD, and certificate tracks (MCSE, CCNA, etc.)

    Each has valid application.

  260. I made that mistake. by nesdave1 · · Score: 1

    I went to university late in life, it was 2003. At the end of the first semester, I looked at the syllabus thinking, how am I going to get a degree in IT if they don't even do lab work until the last quarter. SO I went on my own and started learning programming, not IT.

  261. Re:It's all not bunk. by Anonymous Coward · · Score: 0

    I have (as one of) a degree in Avionic. You know how long of the two year course was spent in theory of electronics? 6 weeks. Theory of flight? 6 weeks. Actual repair, assembly, fabrication, customization of the actual avionics components (which are miniature computers now not the old fashion dials and gauges, but I digress) The entire rest of the course.

    In other words, mostly rote memorizing that on a model XYZ the red plug goes here, etc etc. Monkey work.

  262. Re:Is Coding Computer Science? Of Course! by Dixie_Flatline · · Score: 1

    This is how the games industry works. This was particularly necessary in the previous generation when writing 'optimised' code wasn't guaranteed to really be that much faster depending on the platform. The PS3 is fast, but making things run well on it involves jumping through a lot of hoops and understanding what data needs to be in what bit of memory at what time. As long as the general developers were writing code that wasn't obnoxiously slow, it was fine.

    It's almost always a surprise when you run instrumentation tools and find out what the real bottlenecks are. There are a lot of interactions between various agents in large-scale games, so doing anything other than writing obvious, clean code is just making trouble for everyone else.

  263. Re: Is Coding Computer Science? Of Course! by Dixie_Flatline · · Score: 2

    A lot of other people have gone over what's wrong with your argument, so I'll try not to rehash that too much.

    I'll admit that my 13 years as a professional programmer (after my degree) are years that I would say are more fundamental to my general programming skill than my CS degree, but I learned a lot of things in University that are hard to come by elsewhere. I learned a lot of things that aren't about computers, and that's been really helpful.

    Being good at programming isn't the only thing that makes a good programmer, it turns out. I'd way rather have 5 programmers on my team that rank as 7-8 out of 10 than 5 10/10 programmers. In my experience, those guys are too interested in being good at programming and not interested enough in making something that's going to work for everyone. I'm in the games industry, and our programmers need to be able to talk to artists and designers. You need a few of those really exemplary programmers here and there, but being broadly interested in things is way more useful than being able to pick apart a C++ compiler.

    But also, I have a lot of options available to me now. I won't always work on games. I could probably jump ship to an environmental science firm without too much effort because my minor was in Earth and Atmospheric science. I speak geologist and meteorologist and even some palaeontologist. So much programming is undertaken by scientists that have no other choice but to program their own tools because the programmers of the world don't understand the problem space and it would be harder for them to learn the problem space than for the scientist to learn how to code a bit.

    Lastly, I think you misunderstand computing science as a discipline. The fact that I finished my degree 13 years ago doesn't mean that much of it is out of date. The optimal rasterization of a line is still the same, algorithmically. All the graph theory that I learned is permanently correct--and permanently useful. Compiler implementations change, but compiler theory is largely the same. The stuff that you learn in computing science is actually really fundamental, which is what prevents it from going out of date. I can't stop learning without being left behind--the same as you--but I learned things up front that will always be mathematically, provably true. I'm not saying all of it is immediately useful (I think a lot of it isn't, in my field) but just because it's old doesn't mean that it's useless.

    I wouldn't discount hiring a programmer without a degree. I've worked with several excellent--really, truly excellent--programmers that came to the industry without anything other than motivation. But don't tell me that just because out of my 18 years of being academically involved with computers, 4 of those were spent mostly in the classroom that I don't know how to fucking code.

  264. Re: Is Coding Computer Science? Of Course! by Hentai · · Score: 1

    I wouldn't discount hiring a programmer without a degree. I've worked with several excellent--really, truly excellent--programmers that came to the industry without anything other than motivation. But don't tell me that just because out of my 18 years of being academically involved with computers, 4 of those were spent mostly in the classroom that I don't know how to fucking code.

    Sure, there's going to be exceptional members of each class. But look at it this way:

    Who am I, as a un-degreed programmer, more likely to run into when dealing with someone with a degree - you, or the guy who can't code and who is using his degree as a crutch to bully the people who actually know what they're doing?

    Who are you, as a degreed programmer,more likely to run into when dealing with someone without a degree - me, or the guy who just knows how to cargo cult his way through a CRUD web form?

    I've taken a strong interest in biology, biochemistry, physics, neuroanatomy, sociology, psychology, history, and abstract math; while I have no major or minor in any of these subjects, I can generally have an interesting discussion about the relative merits of Bohm vs. Everett-Wheeler or the cellular hormone signalling going on in butterfly metamorphosis or the peculiar sociopolitics that influenced the transition from the last Chinese emperor to the pseudo-communist regime. And not everyone who didn't go to college is like that, but generally speaking, neither is everyone who went to college. And I've found that being a college graduate is completely orthogonal to knowing what the hell you're talking about, whether it's within your major or outside it.

    But the thing is, if you're coming in as a Lead Developer, and you have a degree, I can't discount the possibility that you got the job on the merit of your degree rather than your skill - so from my perspective, the likelihood that you know how to code is less likely if you have the degree, because it provides an alternate (and regrettably much more salient) hypothesis for how you got here.

    Does that make sense?

    --
    -Hentai [in vita non pacem est]
  265. It depends by submain · · Score: 1

    If all you wanna do is code, then you don't need a computer science degree. There are plenty of companies looking for people to do form plumbing.

    Now, if you wanna do real computer science, yes you will need a degree. By real computer science I mean things like improving performance using algorithm complexity analysis (Big O), knowing when to utilize the best data structures, architectural optimizations, AI, writing your own lexers and parsers - the list is endless.

    Computer science is different than coding. Whereas coding is a tool, computer science is the study of any kind of computation. You can implement a quicksort algorithm on C++ or while sorting your own clothes in the closet. Both are computer science.

  266. Yes, If... by obscuro · · Score: 1

    If "learning to code" include some careful, thorough attention to theory, algorithms, oop and patterns AND a deep, productive dive into building real functioning software, then, yes, it's beats the shit out of a BS from most colleges. Languages and frameworks are essentially built environments. Theory and ease in learning core language features doesn't compare at all with extensive experience with a set of useful, well supported libraries and frameworks. Most wheels have been invented. Most problems require the applicarion of existing structures. Yes, there are important instances where extensive knowledge of theory matters but you can add a HELL of a lot of net value without deep theory that is impossible to add without specific knowledge of libraries and the application of patterns.

    --
    Every rule has more than one consequence.
  267. Depends on who you ask by Anonymous Coward · · Score: 0

    Self learned coder: yes
    Coder with a degree: no