Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Programming Education

Do Businesses Really Need to Hire CS Majors? (cio.com) 473

A new article in CIO magazine argues that when it comes to computer science, "few of us really need much of any of it." Slashdot reader itwbennett offers this summary: At the heart of the matter is the fact that most businesses don't really need programmers to be deep thinkers. For them, it's "just as worthwhile to hire someone from a physics lab who just used Python to massage some data streams from an instrument. They can learn the shallow details just as readily as the CS genius," according to the article.
CIO's anonymous author promises an incomplete list of "why we may be better off ignoring CS majors." Some of the highlights:
  • Theory distracts and confuses. "Many computer scientists are mathematicians at heart and the theorem-obsessed mindset permeates the discipline."
  • Academic languages are rarely used. "...the academy breeds snobbery and a love for arcane solutions."
  • Many CS professors are mathematicians, not programmers. "One of the dirty secrets about most computer science departments is that most of the professors can't program computers. Their real job is giving lectures and wrangling grants...."
  • Many required subjects are rarely used. "...it's too bad few of us use many data structures any more."
  • Institutions breed arrogance. "...the very nature of academic degrees are designed to give graduates the ability to argue one's superiority with authority. "
  • Many modern skills are ignored. "If you want to understand Node.js, React, game design or cloud computation, you'll find very little of it in the average curriculum... It's very common for computer science departments to produce deep thinkers who understand some of the fundamental challenges without any shallow knowledge of the details that dominate the average employee's day."

"It's not that CS degrees are bad," the article concludes. "It's just that they're not going to speak to the problems that most of us need to solve."


This discussion has been archived. No new comments can be posted.

Do Businesses Really Need to Hire CS Majors?

Comments Filter:
  • Heh (Score:5, Insightful)

    by Anonymous Coward on Sunday August 05, 2018 @02:39AM (#57071968)

    This sounds like it was written by a non-CS major who has tied all their business processes to wonky VBA macro laden Excel workbooks.

    • Re: Heh (Score:5, Funny)

      by Anonymous Coward on Sunday August 05, 2018 @03:37AM (#57072114)

      You forgot the part where they are running production databases on Microsoft Access.

      • by raymorris ( 2726007 ) on Sunday August 05, 2018 @08:29AM (#57072908) Journal

        Sounds like the author is completely unaware that software engineering and systems engineering are fields, and people get degrees in each. He thinks computer science is the degree for programming. Realizing that computer science teaches a lot that isn't programming, he suggests hiring a physicist who learned a little programming.

        Maybe an analogy will help him:

        If you want to design and build a physical thing, such as an engine, you get an engineer to design it. The *science* of how an engine works is physics, applying that science is engineering, not physics. Specifically, you want a mechanical engineer.

        Similarly, applying knowledge to design computer-based systems is the job of an engineer as well, a different type of engineer. Either a software engineer or a systems engineer. The difference is that while an engine needs to be designed in detail, blueprints made, before it is built, for software the detailed blueprint *is* the software. You don't need the extra step of machinists physically constructing it after the blueprints are made.

        Computer science is to programming as physics is to engine design.

        Computer engineering, like mechanical engineering, is a degree that teaches you how to design robust, cost-effective things. Programs in the former, machines in the he latter.

        • by sjames ( 1099 ) on Sunday August 05, 2018 @01:53PM (#57074094) Homepage Journal

          Agreed to a point. Enlarging, if you just want a privacy fence you don't hire an architect, an engineer, a general contractor, and a work crew. You just hire one guy who probably doesn't have a degree in anything and he hires a couple helpers and they put up a fence. You certainly don't hire people degreed in materials science and physics.

          Likewise, you don't need to hire a EE to put a dimmer switch in your dining room. You don't hire an ME to figure out why your Ford stumbles on acceleration.

          The guys who install home theater speakers aren't acoustic engineers.

        • by bjwest ( 14070 )
          So I'd need a structural engineer to design the bridge spanning the internet between the independent networks of my field and home offices?
        • by Darinbob ( 1142669 ) on Sunday August 05, 2018 @02:34PM (#57074232)

          I've worked with these scientists that need a little programming. It makes no one happy, the programming is lousy and the scientist is dismayed at not doing more science. I've got one guy who says "I wrote all the code, I just need you guys to clean it up and integrate it into your stuff", or "why are you designing that piece, I already wrote it!"

          Let me tell you, some of the worst programmers out there are physicists. It sometimes seems like they even forget their math as they complain that their exponential time algorithm takes too long to run.

    • Re: Heh (Score:4, Informative)

      by Mogusha ( 1091607 ) on Sunday August 05, 2018 @04:44AM (#57072314)
      Sounds more like someone who doesn't understand that computer science isn't a degree in programming. It's a degree in the theory of programming, not in programming itself. So, to say that it's bad that a computer science teacher doesn't know how to code means nothing bad about them if they know the theory. Pretty much the only reason CS majors learn to code is to implement the theoretical algorithms and structures in a way that is concrete.

      Depending on the institution many of the CS departments came directly out of the mathematics Department. Which is one big reason why many of them are highly math oriented.

      • Re: Heh (Score:5, Informative)

        by Unknown User ( 4795349 ) on Sunday August 05, 2018 @07:00AM (#57072656)
        100% this. It's a blatant misunderstanding of the discipline to think the main goal of computer science is to enable someone to program. Maybe you could say that being able to program is a prerequisite to start learning CS, though. In Germany the discipline is called "Informatik" which is perhaps a better term than CS. However, in the end CS is a branch of applied mathematics, but one that is important enough to warrant its own discipline. In that respect it's similar to statistics.
        • Re: Heh (Score:5, Insightful)

          by ceoyoyo ( 59147 ) on Sunday August 05, 2018 @07:25AM (#57072716)

          The anonymous author of the article has apparently learned (through long and hard business experience) that if you want someone to engineer software you need a software engineer.

          Which has very little bearing on whether computer scientists are useful in industry. Lots of businesses find mathematicians invaluable. Computer science is a highly related field. But if youâ(TM)re using either one as a code monkey, youâ(TM)re doing it wrong.

    • Re:Heh (Score:5, Insightful)

      by Spazmania ( 174582 ) on Sunday August 05, 2018 @05:16AM (#57072396) Homepage

      This. You hire CS majors because they know about the problems you don't know you have and can prevent them from becoming business catastrophes.

      Construction doesn't need every carpenter to be an architect but you'd better have an architect.

      • Re:Heh (Score:5, Interesting)

        by arglebargle_xiv ( 2212710 ) on Sunday August 05, 2018 @07:12AM (#57072686)

        Construction doesn't need every carpenter to be an architect but you'd better have an architect.

        Or just a competent builder. My dad was a builder, and almost every single architect-designed house he built needed anything from significant through to major design changes to get it from what the architect wished for to being physically buildable and in compliance with building regulations. There was one house that was so bad he refused to build from the architect's plans when the owner wouldn't agree to him fixing them. Forty years later the owners are still in the house, and they'll be there till they die, no-one in their right mind would buy what they ended up with.

        I've seen the same thing with software, I once did a bit of work for a company where their salesdroids would spend their lunch hour telling me why their Grand Poobah System Architect's design couldn't ever work. It didn't even take a developer, even the sales guys could see why it couldn't possibly work, and they had things like MBAs and BComs.

        • Re:Heh (Score:5, Funny)

          by Oligonicella ( 659917 ) on Sunday August 05, 2018 @08:32AM (#57072924)

          no-one in their right mind would buy what they ended up with.

          So, Frank Lloyd Wright?

          • no-one in their right mind would buy what they ended up with.

            So, Frank Lloyd Wright?

            Someone with 1/100th of Wright's talent, but all of his engineering skills.

        • by rastos1 ( 601318 )

          Forty years later the owners are still in the house, and they'll be there till they die.

          To me it seems that the house works as expected.

          no-one in their right mind would buy what they ended up with.

          Oh, was the intent to sell the house once it is built? Well, that's probably a different task, isn't it?

          The scenario is not unlike to the topic at hand. In many cases, the code is cobbled together to scratch an itch. The CS comes in when the project grows too much in size, has more developers, has to scale, has to

          • Re:Heh (Score:4, Interesting)

            by Darinbob ( 1142669 ) on Sunday August 05, 2018 @03:03PM (#57074346)

            Also, when the project gets complex, you will NOT be allowed to start over from scratch. Because it's complex, chances are you can't even disassemble it into workable components that you can reuse. Too many projects like that which eventually get to the stage that the entire team does nothing but keep it limping along until there's a competing product that takes over.

      • This. You hire CS majors because they know about the problems you don't know you have and can prevent them from becoming business catastrophes.

        Construction doesn't need every carpenter to be an architect but you'd better have an architect.

        Exactly. Hire people with the skillset needed to do the job. Designing systems and programming are different skillsets, both are needed at the appropriate time. You don't hire engineers to be mechanics, and mechanics to be engineers. They need to work together, using their own knowledge and skills, to build a workable solution.

      • by jon3k ( 691256 )
        Kind of like how not everyone needs to hire someone who designs programming languages or builds compilers, right? Most people just need someone who can build simple business applications using pre-built tools (compilers, libraries, etc). In that analogy, the programmer is the carpenter.

        I think for people designing operating systems or working at companies specifically building complex software, you probably do need a CS degree. Although let's be honest, many of the best programmers many of us probabl
        • by perpenso ( 1613749 ) on Sunday August 05, 2018 @11:35AM (#57073614)

          Kind of like how not everyone needs to hire someone who designs programming languages or builds compilers, right?

          Studying programming languages and compilers is important. Such a foundation to build upon is how we CS grads can easily learn and switch to whatever "new" language is the flavor of the moment, while writing decent code that has some understanding of the limitations of the underlying architecture it all runs on.

          Not having such a foundation can lead to those degenerate situation where "fans" of a language try to use it everywhere for anything and require 3 GHz quad core CPUs and 16 GB of RAM to accomplish relatively simple things.

          In short those CS classes and projects teach a young developer there are many ways to do things, a wide variety of tools are available, some tools are better for some tasks, and they learn a little about what happens at the architecture level where all the levels of abstraction have to meet and execute on the available hardware.

          Now can a young developer learn these things outside a formal degree program, sure, but very few have the personal initiative to do so and most need the coercing of the university. And the direction of the university as well since many of the seemingly "unnecessary" classes actually turn out to be useful.

          ...so much software is written now, and the tools are so mature and easy to use, not everyone needs a CS degree to write all software.

          If you think a CS degree is limited to complex problems and inapplicable to modest projects, you are mistaken. CS and other degree programs are a foundation, and with a stronger foundation the personal study one does and the experience one gains will be more effective. Again, its just starting on day one with a bigger toolbox and more tools.

          And for the record, I've gone both the self taught and formal university route. The former is not a replacement for the later, the two are not mutually exclusive, and the CS grads that have an inherent interest in software development (as opposed to those who were told its a good career path) likely have practiced the former as well.

  • by Anonymous Coward on Sunday August 05, 2018 @02:42AM (#57071976)

    The whole point of open source is that the software is already written. Just need to put it together like Lego blocks. CS Major won't help. Outsource the development and it will be done in no time.

    • by Archtech ( 159117 ) on Sunday August 05, 2018 @03:55AM (#57072172)

      The whole point of open source is that the software is already written. Just need to put it together like Lego blocks. CS Major won't help. Outsource the development and it will be done in no time.

      Have you ever written any software?

      If not, don't talk about what you don't understand.

      If so, why don't you "put it together like Lego blocks" yourself and save the trouble and cost of outsourcing?

      • why don't you "put it together like Lego blocks" yourself and save the trouble and cost of outsourcing?

        Yeah, lego blocks knobs are as unchangeable as API's :D :D :D

      • by Megol ( 3135005 )

        I think you are responding to a post full of irony.

    • by PolygamousRanchKid ( 1290638 ) on Sunday August 05, 2018 @05:29AM (#57072442)

      The whole point of open source is that the software is already written. Just need to put it together like Lego blocks.

      Software development will soon be replaced by automated AI Blockchain technology, which googles and copies & pastes code blocks from Stackoverflow according to the natural language that you speak to Alexa.

      There will be no need to understand what gets copied . . . the Blockchain AI will understand it for you!

      . . . and then Alexa will say, "Thank you for ordering an Obamacare Website!"

      "Customers who ordered Obamacare Websites have also ordered Triple-Headed Dildos."

      "Add to Shopping Basket . . . ?"

  • by locater16 ( 2326718 ) on Sunday August 05, 2018 @02:43AM (#57071982)
    Is this written by some guy that can't get a programming job because he doesn't have a degree?
    "Wah, they're all elitist nerds. Now I have to write for this stupid website to pay rent. They're the stupid ones, not me! Why don't I get paid $200k a year? Wahh!"
    • Re: Bitter much? (Score:5, Insightful)

      by phantomfive ( 622387 ) on Sunday August 05, 2018 @02:47AM (#57071996) Journal
      I think he's wrong about a lot of his facts. At least, all the CS professors I've met can program.
      • It really depends on the school and person.

        One professor would literally hand-wave "Those are implementation details."

        *facepalm*

        WTF!!!

        Outside the academic ivory tower in the real world we write programs to run on REAL hardware today -- not some imaginary future computer that has zero latency.

        Hell, it was just a six years ago that Bjarne Stroustrup was so far out-of-touch with modern hardware and its L1 cache that he was surprised to learn that doubly linked lists give shitty cache usage. [youtube.com]

        • Well there aren't many 'professional' programmers who understand cache levels. That's already advanced stuff, you'll need to hire an optimization expert. For most people it's just gluing together APIs.
        • Re: Bitter much? (Score:5, Interesting)

          by godrik ( 1287354 ) on Sunday August 05, 2018 @11:08AM (#57073502)

          One professor would literally hand-wave "Those are implementation details."

          But it depends what you teach. I teach computer science. And when I teach algorithms I could not care less how some of the bricks are implemented. I care about teaching correctness and complexity analysis.
          Your example on doubly linked list that trash the cache are a particularly good example. I don't even care that there are trashing the cache because they just change constant. And ignoring them enables me to get my students to focus on something more important in that class: Is it correct? What is the complexity?

          Now when I teach High Performance Computing, I typically tell them that the only thing they should care about is the performance. And therefore the complexity may not be as relevant as before. There is even a very famous case in matrix multiplication that highlights that fact. Because constant definitely start to matter. But you need to care about different things at different point of the curriculum if you plan on driving the concept of the day through the students' brains.

        • Re: Bitter much? (Score:5, Insightful)

          by serviscope_minor ( 664417 ) on Sunday August 05, 2018 @11:18AM (#57073544) Journal

          Outside the academic ivory tower

          I've come to the conclusion that anyone using the phrase "ivory tower" is probably an idiot with a chip on their shoulder.

          we write programs to run on REAL hardware today

          Well done you understand your job. However it's the height of arrogance to assume that because you don't understand academic jobs that they're somehow worthless.

          Hell, it was just a six years ago that Bjarne Stroustrup was so far out-of-touch with modern hardware and its L1 cache that he was surprised to learn that doubly linked lists give shitty cache usage.

          It takes a special kind of arrogant to take someone who is telling people why a technique is bad and go herp derp he's a stupid he doesn't know its bad.

        • Yes, implementation details, because the profs are teaching a different subject from implementation details. That's an exercise for the students. One does learn a lot more if they have to think about what they're doing rather than copy snippets of code together. Which today is a problem because snippets of code are everywhere and so easy to find.

          As for Stroustrup, I can see that. He started back when caching was rare except on the highest end computers. However paging was a big deal, and the earliest C++

      • When I was a Junior, I had an assignment to write a lexical parser. The professor spent basically a week explaining how to build and maintain a stack, something like 400 lines of code. I didn't know much at the time, but I wanted to vomit looking at it. I wrote my parser the sane way -- recursive, about 80 lines. Turned in a printout (dates me), it comes back "see me". The coot couldn't understand it so I had to explain it to him.

    • More likely someone annoyed he's expected to pay for experts when all he needs is trained monkeys. The majority of so called programming tasks are just grinding out endless variations of existing code. Sometimes without any obvious programming involved.

      That said a little CS could stop the monkeys routinely choosing the worst library calls for the code blocks they're wrapping with print systems. Maybe time for a CS lite, where you don't learn the math much but do get basic coding and how to pick the right al

    • Re:Bitter much? (Score:5, Insightful)

      by GrumpySteen ( 1250194 ) on Sunday August 05, 2018 @06:16AM (#57072544)

      It's more likely that it was written by someone with an MBA who adheres to the typical MBA mantra of improving the bottom line by replacing better paid, experienced employees in favor of inexperienced people who accept far less than the market rate for the position. They tend to be almost as cult-like as the anti-vax crowd, latching onto any and every justification for their belief regardless of how ridiculous or misinformed it may be.

    • It's also very common to hire people with higher degrees than needed. Back when I was young, one guy at our school was so good he got the highest possible final degree in every discipline. He then went on to study mathematics, where there was a more level playing field for him. Then he became an SAP consultant. Another friend of mine studied physics. He is now working for Siemens in middle management (I presume). I also knew a mathematician who did his Ph.D. in something very complicated I couldn't possibly

  • Trolling (Score:3, Insightful)

    by Anonymous Coward on Sunday August 05, 2018 @02:59AM (#57072014)

    So basically this magazine allowed an anonymous troll to write a flame bait piece for them. What an outstanding feat of journalism!

    Sure, there are probably a lot of instances where someone with a degree is overkill for the job, but this disdain for education is appalling. I wish the anonymous coward (and in this case it is not some cute ./ term but the very definition of the words) would tell us where he works so I can avoid hiring their services forever.

  • TL;DR (Score:4, Insightful)

    by Kremmy ( 793693 ) on Sunday August 05, 2018 @03:02AM (#57072024)
    "I don't want to pay for people who understand what they're doing."
  • by Tough Love ( 215404 ) on Sunday August 05, 2018 @03:04AM (#57072028)

    Another success without college article, usually writen by someone who did not go to college. Sure, there are auto didacts able to learn good software engineering principles on their own, but few possess the necessary self discipline. To learn to think you need to hang out with thinkers. To learn a subject well it helps enormously to have good teachers. To learn discipline it helps to have structure. Nothing beats college for that, it's an opportunity you should seize if you possibly can.

    Never mind the parities, networking and abundant supply of premium specimens of the opposite sex.

    • by Anne Thwacks ( 531696 ) on Sunday August 05, 2018 @03:22AM (#57072080)
      self discipline. Nothing beats college for that,

      Dead right: nothing is the clear winner compared to college when it comes to discipline. As a former mature student, I am in a position to speak on this.

      • by TeknoHog ( 164938 ) on Sunday August 05, 2018 @03:55AM (#57072174) Homepage Journal

        nothing is the clear winner compared to college when it comes to discipline. As a former mature student, I am in a position to speak on this.

        It's interesting you mention being a mature student. I've gone back to the university a couple of times after an early graduation and a few years in the workforce, and it's meant a huge difference to my learning. In that position, you (a) appreciate the value of your education much more, and (b) you have some real-life basis for things like "hey, I could use this theory in my field" and "nope, it doesn't really work like that".

        I've also come to reflect this "reverse order education" in other aspects of my life. For example, I've dabbled in electronics since about the age of 8, and of course it was much later that I learned enough theory to design more complex circuits myself, largely through formal education. I'm worried about students that take years of theory before they get to do anything hands-on; by that time they might realize they're in the wrong field.

        More specifically, it's an issue with the vocational vs. academic divide: if you want to dabble in electronics, you go to the trade school. Or if you prefer to learn quantum theory for electron transport in solids, go to the university. But for certain things you need people that know both, and there isn't a formal eduction path for such a thing, so people need to learn by themselves. Indeed, there were times when I did consider the more vocational route myself, though I'm now glad I didn't. Because you can usually learn the hands-on bits about electronics and programming yourself, but something like advanced math takes a bit more discipline.

      • Comment removed based on user account deletion
        • Certainly not the military

          Militaries don't teach discipline, they teach obedience. It's not the same thing.

          • by swb ( 14022 ) on Sunday August 05, 2018 @06:16AM (#57072546)

            I think obedience is doing what you're told, discipline is doing it on your own without being told again.

            I've never been in the military but I've worked with a couple of guys who have and they all carry a certain amount of military discipline with them, even the ones that say they hated the military.

            Now maybe it's worthless self-discipline, but nearly all of them were *extremely* tidy. Personal work spaces kept fucking spotless, and whenever they dealt with some cabling or something else that would be easy to keep on the slightly chaotic side they all were completely OCD about organization.

            They were all extremely neat in their personal presentation, too. IT has a lot of fucking slobs, but these guys were totally neat -- shirts tucked in, shoes shined, etc.

            Oddly, all of them deny it was because of the military but I think they get it drilled into their head so much it's part of their identity.

            If I had a criticism of them its that they're prone to low initiative on problems, preferring to report conditions and await instructions. American business culture mostly isn't like that, though, and their trained-in desire to await orders vs. committing on their own accord seems to be the only real drawback.

            • If I had a criticism of them its that they're prone to low initiative on problems

              I've also worked with former military people and I have exactly the same criticism. They've all needed close supervision and to be told what to do. I found it immensely disappointing.

    • by swilver ( 617741 )

      To learn something well, you only need a genuine interest and curiosity on the subject.

      • There is a famous quote about this from Vince Lombard: "Only perfect practice makes perfect" Flawed practice reinforces the flaws. And learning entirely on one's own is likely to re-inforce beginner's flaws without some competent feedback to guide the work and correct them.

        This is not to denigrate the self-taught, or the genuinely interested student of a field. But some help learning to do tasks well can be critical to do robust, effective work.

  • My Take... (Score:5, Interesting)

    by beheaderaswp ( 549877 ) * on Sunday August 05, 2018 @03:07AM (#57072036)

    From my standpoint, this is an earmark of of the end of IT as a professional specialty.

    At this point technicians are treated as hourly workers- if they exist at all. The word "engineer" is being banished from the IT profession. Support is by phone script. The network is built on appliances. Configurations done by subcontractors. Job qualifications require education over experience. Certifications are required- but are generally useless without a degree.

    Programmers are shuffled in and out on contract....code is undocumented. Competence is un-rewarded.

    And management doesn't understand the technology with a mentality that says: "Do the minimum possible to get a short term result".

    The net result is lots of titles like "Network Manager"... "Network Architect"... "Vice President of Information Systems".... ETC.

    And yet none of these people have functional knowledge of real practical networking or server administration. They function as gateways to subcontractors, some of which follow the executive from job to job, and the officer level of the company is so ignorant of the issues involved that it continues.

    Then there's the "Cloud".

    It's the biggest ripoff any company can be subjected to. A multi-layer IT staff that only administrates the actions of sub-contractors. And yet while this management structure can be three layers deep- it does nothing, presents no skill set, and is useless without the added expense of subcontractors which provide "IT Expertise" as a service. And the company... isn't even in control of it's own data. It's security and availability is now preserved by a third party company whose interest is singularly profit.

    So when "CIO Magazine" writes an article saying that CS majors are not needed all I can do is chuckle.

    • It explains nicely why the profession is in such a sorry state. And while it sounds like the author of that article doesn't know the first thing about programming himself, it would appear that he is in academia teaching CS (from a remark at the end of the article). That makes it even sadder.
  • Epic stupid (Score:5, Insightful)

    by HeX314 ( 570571 ) on Sunday August 05, 2018 @03:09AM (#57072038) Homepage

    It's almost comical just how false most of these stereotypes and arguments are.

    1) Knowing lots of theory allows you to approach a problem from multiple possible analytical angles. Lacking that kind of critical thinking will make you an excellent drone employee who can execute orders given by smarter people.

    2) I take issue with "rarely used." I know CS people love their esoteric languages, but they are hardly the norm for example code.

    3) I don't think I've met a single CS professor who couldn't write code.

    4) Data structures? You use them all the fucking time. ALL THE TIME. You just don't know it because someone made it idiot-proof, so now even your dumb ass can use them.

    5) There may be some truth to credentials making people more confident, but the same could be said of anyone with any recognized accreditation. Furthermore, I feel like this applies more to businesspeople than scientists.

    6) There's a reason you don't find highly-specific industry trending software tools being taught in "the average cirriculum." It's the same reason you learn to dribble a basketball before you learn to dunk: fundamentals.

    The highlights read like garbage written for adult children.

    • Re:Epic stupid (Score:4, Insightful)

      by next_ghost ( 1868792 ) on Sunday August 05, 2018 @05:14AM (#57072388)
      This. Ad 6) A CS degree will teach you about callbacks, asynchronous processing, and all the other fancy stuff you'll use in Node.js, React and any other brand new revolutionary technology that was originally invented in the 1970s. When you know the theory, you can learn the latest shiny technology by reading the manual over a weekend and then coding a small toy project over the next week. If you don't know the theory, it'll take you a year or more before you figure out how those cool but so damn counter-intuitive features really work. And then you'll have to rewrite everything you did over the past year from scratch.
    • The highlights read like garbage written for adult children.

      -1, Redundant. The summary *already* says it was CIO magazine.

  • by Tough Love ( 215404 ) on Sunday August 05, 2018 @03:09AM (#57072040)

    "It's not that CS degrees are bad, it's just that they're not going to speak to the problems that most of us need to solve."

    What is that problem you need to solve? How to appear to be doing your job when you are actually laying waste to your company's future?

  • by clawhound ( 811481 ) on Sunday August 05, 2018 @03:10AM (#57072042)
    This is an open secret that's been known for decades. The best minds that I've work with are almost invariably from other majors. The sharpest programmer that I know came out of the music department. In most positions, technical skills represent about 1/5 of what you need to do a job. Those other 4/5 matter a whole lot. It's easier to teach a humanities person some technical skills than it is to teach a technical person humanities.
    • by Cederic ( 9623 ) on Sunday August 05, 2018 @04:14AM (#57072226) Journal

      While I would want evidence a humanities graduate can cope with the logic and other demands of programming, I do agree that this is hardly news.

      People under 35 or so don't seem to realise how rare university degrees used to be. Some of the best programmers I've known didn't go to university. All of the best programmers I've known didn't get a degree in Computer Science.

      That doesn't mean a CS degree is worthless. Any technical degree has merit. It just doesn't mean they're any good at delivering working software in a business environment, which is where the majority of programming jobs lie.

      I have no objection to hiring CS grads but it's fucking lunacy to require it.

    • by JaredOfEuropa ( 526365 ) on Sunday August 05, 2018 @05:01AM (#57072348) Journal
      The sharpest programmers I've worked with almost all started programming before they graduated high school. They went on to do a variety of majors, a few doing CS, most of them mathematics, EE, physics or chemistry. Point is, they combined a solid grounding in science and mathematics with a passion for programming. I know a few great programmers who are largely self-taught without the benefit of a degree in a related field, but they are very rare.

      For some time, CS majors might not have been the best choice for programmers, but not for the reasons mentioned in that CIO magazine, but because the IT job market was red hot, and CS drew in many students without a real passion for the subject.
    • by dwpro ( 520418 )
      They may be sharper minds, but they don't have what they need to be a programmer. One counter-anecdote: my wife is from the humanities and is one of the smarter people I know (certainly smarter than me) and she is being forced to learn python to code for her genetics analysis.

      I've spent a fair bit of time attempting to instill some of the fundamentals of programming (separation of concerns, types, organization of code, ) While she's learned enough to get things done, every task is a new exploration of h
  • clickbait (Score:5, Insightful)

    by Martin S. ( 98249 ) on Sunday August 05, 2018 @03:53AM (#57072166) Journal

    Clickbait aimed at the hard of thinking

    When a headline asks a question, the sensible answer is always a resounding No.

  • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Sunday August 05, 2018 @03:56AM (#57072176)

    I've been progging for 33 years, since my teens. Classic 80ies computer kid. I do that for a living since 18 years ago. I've finally enrolled in a BSc CS track that I'l pobably manage to complete, after having done my German GED High School diploma 3 years back. I'm in the second semester, only taking a few courses at a time, and pushing a wave of exams in front of me. I do part-time, because I'm working as a professional webdev too.

    Here's my observation and it's 100% spot on with my expectations and one of the reasons I'm doing CS in my late 40ies:

    The basics - Math, theoretic CS ("Theoretische Informatik" ... dunno what that's in english exactly), graph theory, expanded theory of sets and so on are exactly what someone doing anything computer related at a professional programmers and software architects level should know and be able to wrap his/her head around. Being able to algebrahicly express and calculate the complexity of a relational graph in a database is a level or two above simply discussing which goes in what entity. It's tough - boolean algebra is a particularly neat alien monster to tackle if your not into algebra that much - but it's doable and it ups your understanding of what you're doing in your everyday work and it does away with the fog that covers many deeper areas that IT people encounter every day and should know more about. This is the reason you should do CS if you'e doing IT professionally. At least a bit of it on the side, in Kahn Academy or something.

    Point in case: I'm in a CS project group right now reimplementing RSA to learn all the n00ks and crannies about it. Very nice. Slow as hell and crappy n00b code by my 19 year old comrades, but we all (me included) learned new stuff. For instance: Asmetric is hard and demands performance, thus is only used to do a preceeding exchange of a symetric key before the show starts. That's why https handshakes take up 1.5 of the 3.5 second rule for loading and displaying websites. Now who without some CS knowlege is aware of this?

    However, there is the other side that the GP mentions, and this is a very simple cold hard fact that CS faculties need to get into their collective head: The avantgarde of software development is not in academia anymore. The regular skills you're teaching your students are most likely sub-par and will be nigh obsolete once your students leave for the real world. Yes, there is the occasional Scala that comes out of a university and then gets some hype in the industry, but that only works if the Prof who invented it is in the industry himself aswell.

    Point in case here: We're doing this project in IntellyJ Idea already (bad idea imho). The introduction into the IDE was sub-par and the Prof talked bullshit and wrong details about Git. I could've given his introduction on the spot and he would've learned some new things. ... That's because they probably only moved from SVN a few years back.

    Kotlin is barely on their radar and it's already being used in the industry, in non-trivial projects.

    Bottom line: As far as practical skills go, CS is too far behind the curve. I'm sure they are becoming aware of this and many a college is trying to catch up with close ties to the industry, but right now I learn more and better at local meetups than in class. Graph theory and math however I doubt I find some better place to learn that than at my faculty.

    • by swilver ( 617741 ) on Sunday August 05, 2018 @06:34AM (#57072576)

      For instance: Asmetric is hard and demands performance, thus is only used to do a preceeding exchange of a symetric key before the show starts. That's why https handshakes take up 1.5 of the 3.5 second rule for loading and displaying websites

      This has absolutely nothing to do with the performance of the assymetric encryption, but everything to do with the two extra roundtrips it takes for the HTTPS handshake.

      And no, I don't have and never will have a CS degree -- I only have a solid interest in how stuff works (tm), which has led me to expand my knowledge in all kinds of areas.

  • ive been hiring and in charge of development for the last 4 years and even with seasoned professionals i constantly see

    * no logging
    * over optimising unncessarily

    your developer wont be good until theyve worked with you for a year

    • by GuB-42 ( 2483988 )

      There are different ways of doing things. I've worked with projects that do extensive logging, some with none at all. Sometimes, optimization of every part is important, sometimes, well, just throw hardware at the problem. They all work provided you have a good vision.

      Adjusting to your vision of the project requires a bit of time, but 1 year sounds like a lot. The only project I spent that much time getting fully operational is a 3Mloc, 20+ year old monstrosity that did the work surprisingly well considerin

  • by gweihir ( 88907 ) on Sunday August 05, 2018 @04:20AM (#57072248)

    And they ignore that the cheap coders used so often today are already hugely expensive because of their low level of competence. Making this even worse will drive costs for software up, not down.

  • Comment removed based on user account deletion
  • by borgheron ( 172546 ) on Sunday August 05, 2018 @04:59AM (#57072340) Homepage Journal

    Non-CS majors are likely not to recognize intractable (NP-complete) problems when faced with them. I have seen many non-CS majors who call themselves programmers ignore (or just plain not be knowledgable of) simple approaches / heuristics to solve these problems. Also, non-CS majors tend to be unaware of time saving solutions to problems and will often go for the "straight forward" or "brute force" approach which ends up being more costly algorithmically (the difference between solving something in O(n) vs O(1) can be horribly expensive).

    I don't know why questions or assertions like this come up every so often within the community, but I find it deeply concerning that many people hold the opinion that CS isn't needed or that an institutional education makes you arrogant. By definition, someone who is intelligent is flexible and willing to change... if they are not, then it's a problem with the person, not the institution.

    CS is needed. Make no mistake. If you don't have someone who is a problem solver and knows what they are doing on your staff, you're wasting time and, possibly, lots of money. There is a reason why Google looks for the best of the best from CS programs all over the world.

    • There's a simple reason why this question keeps coming up every so often: Code monkeys are cheaper than real programmers.
  • by l3v1 ( 787564 ) on Sunday August 05, 2018 @04:59AM (#57072342)
    " most businesses don't really need programmers to be deep thinkers"

    This whole writing is a large pile of stinking bullshite. You don't need people with knowledge? There are plenty of those. You only need shallow coders for a short un-important job who'll move along after the job? Even more of those. Good luck building a company for the long term using such people.

    Plenty of "programmers" and "coders" are out there with some level of lanuage knowledge, but what people like the writer above don't always realize is that they usually need people who solve problems, and the ones not being deep thinkers are seldom capable of that. The iidiotic examples about NP completeness shows how the writer is a bigger idiot that those people (s)he praises.

    And the bashing of maths, arrogance, etc? It seems the writer is a disgruntled lunatic, toxic and unproductive. Someone I'd really never want to work with, ever.
  • Comment removed based on user account deletion
  • What an idiot... (Score:4, Interesting)

    by LordHighExecutioner ( 4245243 ) on Sunday August 05, 2018 @05:38AM (#57072468)
    throwing away the importance of modern math and CS theories is suicidal. Never had to do with problems due to rounding errors, for example ? Try fixing them without somebody with skills in CS and math! The author of TFA is probably somebody involved with the development of web interfaces, and we just appreciated the results [slashdot.org] of many years of progress in web development.
  • TI;DR

    Management does not want to know the business process (or in other words they want to just sit around and do nothing).

    So the Business only wants Business Analysts who can do a little IT.

  • It depends (Score:5, Insightful)

    by Amiga Trombone ( 592952 ) on Sunday August 05, 2018 @07:11AM (#57072684)

    I'm old enough that when I got into programming, CS degrees weren't really that common. Most companies were hiring programmers by giving aptitude tests and training people in house. I eventually did end up going for a university degree, after I had been programing for about 10 years, but dropped out after my third year because there was little relevant to the work I was actually doing and the skills I actually needed. For a lot of projects I worked on, being a virtuoso programmer was a lot less important than subject matter expertise. At one time most accounting software was written by people who were accountants that were trained in programming as a sideline.

    I've found CS degrees are analogous to music degrees. Having a advanced degree in music doesn't make you Jimi Hendrix, but on the other hand if you want to be a symphony orchestra conductor or write arrangements, you're probably not going to get too far without one. But I've certainly met plenty of musicians with advanced music degrees who could barely play their instruments. And I've met plenty of terrific musicians who have had no formal training at all.

    Likewise, there are talented programmers with CS degrees, but a CS degree is not a guarantee of talent. And there are plenty of talented programmers with no degree at all.

    Personally, my programming career would have gone just fine if I'd never gotten anywhere near a university, but then, I spent most of it in corporate IT. I wouldn't have a clue where to start writing a search engine, but then, it's highly unlikely I'd ever have been asked to write one.

    Whether you need CS majors or not depends on the work you need to have done. If you're going to develop compilers and OS's, then yeah, probably a good idea. If you're doing routine business applications, then probably not so much.

  • There's a certain website that catalogs disaster in the IT industry. First two examples in the article:

    Theory distracts and confuses: Lack of theory causes people to implement O(n^3) procedures when there's already a stock solution that does something default. In one case, someone managed to do an O(n^2) insert for a hash table.

    Academic languages are rarely used: I haven't seen these "academic" languages either in the wild, nor in the classroom. However, users should still be able to port their knowledge

  • by johnlcallaway ( 165670 ) on Sunday August 05, 2018 @08:33AM (#57072928)

    I have only taken two computer classes in my 40-year career -- Fortran and Cobol. The first was for the credit in case I ever got a degree, I had already taught myself Fortran because I had already taught myself BASIC for a project in my calculus class (I was a math major) and realized I could teach myself far faster than the school can. I took COBOL because I was a computer operator and they wrote programs in COBOL, and I didn't want to stay a computer operator. Every other programming language I've learned since then has been on my own. Except for C++, I took an online course for that.

    It doesn't take a CS major to be a programmer. It does take someone who can understand logic and I believe has spatial awareness, the ability to 'see' how chunks of code and external processes fit together and be able to manipulate them in their head. The best programmers I've ever met were musicians, and I think it's because the best musicians have a high degree of spatial awareness so they can 'fit' different parts of a piece together in their head.

    There are different types of programmers. There are those that need a spec to get anything done because they aren't able to figure it out on their own. Some CS work will help with that, but I think at some level you can't teach it. It's like teaching me to play the piano .. I can learn where the notes are but I'll never be a concert pianist because I just don't have the dexterity and coordination. That's why I play the saxophone instead of the piano. Then there are the natural programmers that just get it, CS will help them get a job because it checks off a box in HR, but for the most part, they are very capable of learning themselves.

    While I believe all aspects of CS can be learned on one's own, they can also be taught faster. Testing techniques, architectural designs, data designs, and a whole host of things can be learned by googling. But, if one doesn't know something exists, one may not be able to find it. A CS degree, at a minimum, should provide exposure to a wide range of knowledge that can be extended as one needs it and technology changes. Let's face it, while we may have come a long way since I wrote assembler, deep down inside, it's still all ones and zeroes, registers and memory.

    Idiots abound, both untrained and trained. If companies were more focused on hiring smart people, paying them well, and then hiring the next level down and letting the smart people mentor them and give them the tedious tasks, we all get a lot more done.

    Regardless of what degrees they have. Degrees don't mean squat, one has to actually talk to someone to figure out if they know anything.

    This isn't mean to disparage learning things, I'm only saying the HR department needs to look past the degree to the person before making decisions. I've known very smart people with and without degrees, and the same goes for idiots.

    I'd rather have smart non-degreed workmate than an idiot with a degree. Ok .. I'd rather have a genius with a degree, so the actual order is:
    1. A genius with a degree.
    2. A genius without a degree
    3. The rest of the idiots for tedious tasks, a degree is irrelevant.

  • Defending ignorance (Score:4, Informative)

    by dpons ( 1624705 ) on Sunday August 05, 2018 @09:05AM (#57073028)
    This needs to be repeated: "The idea of programming as a semiskilled task, practiced by people with a few months' training, is dangerous. We wouldn't tolerate plumbers or accountants that poorly educated. We don't have as an aim that architecture (of buildings) and engineering (of bridges and trains) should become more accessible to people with progressively less training. Indeed, one serious problem is that currently, too many software developers are undereducated and undertrained. Obviously, we don't want our tools--including our programming languages--to be more complex than necessary. But one aim should be to make tools that will serve skilled professionals--not to lower the level of expressiveness to serve people who can hardly understand the problems, let alone express solutions. We can and do build tools that make simple tasks simple for more people, but let's not let most people loose on the infrastructure of our technical civilization or force the professionals to use only tools designed for amateurs." - Bjarne Stroustrup
  • trades / apprenticeships can work good in tech vs theory loaded people and the trades / apprenticeships people are not 60K-80K in the hole when they are done with school.

  • by CaroKann ( 795685 ) on Sunday August 05, 2018 @09:39AM (#57073142)
    It really depends on the type of programming/systems work that needs to be done. Full stack development is different from back end development, which is different from database development, which is different from business logic development, and so on. Each of these require a different set of knowledge and skills.

    Overall, you need the ability to think logically and to be able to understand how the entire system works together.
    For some tasks, such as analyzing/implementing business logic, an understanding of the business itself, the ability to manage people, expectations, and timelines, and good communication/documentation skills are paramount. If you're working within a system that is designed to hide away much of the technical cruft, allowing an employee to focus on business logic without the need for so much technical knowledge, then I suggest that a non-stem major, such as an English or Business Management major, can achieve the best results. A CS major might feel out of place, and become frustrated at not being able develop some of the more technical skillsets.

    For other tasks, such as those that build up the system that ultimately supports the business, you will need specialized database knowledge, set knowledge, scaling knowledge, systems design knowledge, and so on. For those, a CS, Math, or Systems Architect major can achieve the best results.

    One trend I see in corporate CS is the fact that some companies are becoming frustrated with proliferating technical skillset requirements, and are trying to disengage themselves from the tangled technical web many systems become, even going so far as to develop their proprietary own in-house programming languages that require very few industry-standard technical skills to use.
  • a programmer how to do engineering.

    I got my degree in Mechanical Engineering. My whole class had PCs with DOS, Basic, Fortran and 8088 cpus. And access to Vax/VMS sometimes.

    In heat transfer, we coded a Chebyshev differential equation to figure out the optimal thickness and spacing for cooling fins. It would take 30+ minutes to run at a minimum. Or 8 hours if you were way off. You learned a bit about better algorithms and speed when things took so long.

    It's not the kind of thing I'd expect a programmer to be working on. And the engineer isn't going to be able to solve it w/o programming because of the thousands of number calculations that are needed.

  • by thsths ( 31372 ) on Sunday August 05, 2018 @01:58PM (#57074110)

    Part of the problem is that we often confuse Computer Science and Software Engineering. We actually need a lot of the latter, but a lot fewer of the former. Just like we need a lot of people who can install satellite dishes than radio scientists.

    If you need an engineer, get an engineer, not a scientist.

  • by Stormy Dragon ( 800799 ) on Sunday August 05, 2018 @02:11PM (#57074172)

    Is why so many companies have data breaches. They hire people who don't know what they're doing, but can jury rig a bunch of crap together so it looks like its working from the outside.

  • by PJ6 ( 1151747 ) on Sunday August 05, 2018 @08:33PM (#57075582)
    No, you can't get rid of the programmers, but yes, in my experience it is the most educated who make the absolute worst programmers. Violent disregard for maintainability of any sort.

    Not because they're stupid, but because that's not what they're hired to do. Academics often make terrible engineers.

    Most programming is a trade.

Think of it! With VLSI we can pack 100 ENIACs in 1 sq. cm.!

Working...