Slashdot Mirror


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

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."


37 of 473 comments (clear)

  1. Heh by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re: Heh by Anonymous Coward · · Score: 5, Funny

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

    2. Re: Heh by Mogusha · · Score: 4, Informative
      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.

    3. Re:Heh by Spazmania · · Score: 5, Insightful

      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.

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    4. Re: Heh by admin7087 · · Score: 5, Informative

      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.

    5. Re:Heh by arglebargle_xiv · · Score: 5, Interesting

      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.

    6. Re: Heh by ceoyoyo · · Score: 4, Insightful

      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.

    7. Re:Heh by Oligonicella · · Score: 4, Funny

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

      So, Frank Lloyd Wright?

    8. Re: Heh by jimbo · · Score: 4, Insightful

      My decades of experience have taught me that the type of degree is irrelevant when writing maintainable code. It's about experience.

      Almost all the new people in their first job, regardless of background, are obsessed with how clever they are and writing compact ingenious stuff that's impossible to maintain. Writing maintainable code comes with experience and being hammered in peer reviews (by me) so as to be brought into the mindset.

      There are ofcourse older primadonnas too who write unmaintainable stuff, not all companies offer a culture to teach otherwise.

  2. No! Just use open source by Anonymous Coward · · Score: 4, Funny

    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.

    1. Re:No! Just use open source by Archtech · · Score: 4, Insightful

      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?

      --
      I am sure that there are many other solipsists out there.
    2. Re:No! Just use open source by PolygamousRanchKid+ · · Score: 5, Funny

      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 . . . ?"

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
  3. Bitter much? by locater16 · · Score: 5, Funny

    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!"

    1. Re: Bitter much? by phantomfive · · Score: 4, Insightful

      I think he's wrong about a lot of his facts. At least, all the CS professors I've met can program.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Bitter much? by GrumpySteen · · Score: 4, Insightful

      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.

    3. Re: Bitter much? by godrik · · Score: 4, Interesting

      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.

    4. Re: Bitter much? by serviscope_minor · · Score: 5, Insightful

      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.

      --
      SJW n. One who posts facts.
  4. Success without college by Tough+Love · · Score: 5, Insightful

    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.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
    1. Re:Success without college by TeknoHog · · Score: 4, Insightful

      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.

      --
      Escher was the first MC and Giger invented the HR department.
    2. Re:Success without college by swb · · Score: 4, Interesting

      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.

  5. My Take... by beheaderaswp · · Score: 5, Interesting

    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.

    --
    Another consultant who stuck it out.

    "We are the Priests, of the Temples of Syrinx..."
  6. Epic stupid by HeX314 · · Score: 5, Insightful

    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.

  7. It's not that CS degrees are bad by Tough+Love · · Score: 4, Insightful

    "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?

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  8. An Open Secret Known for Decades by clawhound · · Score: 5, Interesting

    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.

    1. Re:An Open Secret Known for Decades by Cederic · · Score: 4, Insightful

      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.

    2. Re:An Open Secret Known for Decades by JaredOfEuropa · · Score: 4, Insightful

      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.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  9. Re:Depends on if you want good software or not. by Tough+Love · · Score: 4, Funny

    Let the physics major debug it, thereby proving themselves.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  10. clickbait by Martin+S. · · Score: 4, Insightful

    Clickbait aimed at the hard of thinking

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

  11. The GP is right, ... to a certain degree. by Qbertino · · Score: 4, Informative

    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.

    --
    We suffer more in our imagination than in reality. - Seneca
    1. Re:The GP is right, ... to a certain degree. by swilver · · Score: 4, Informative

      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.

  12. It depends by Amiga+Trombone · · Score: 4, Insightful

    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.

  13. He recommended physicists for engineering role by raymorris · · Score: 4, Insightful

    He sounds to me like he recommended hiring physicists for an engineering role, because he's unaware that software engineering and systems engineering exist. He thinks computer science is supposed to be programming.

  14. Bc completely unaware software engineering exists by raymorris · · Score: 5, Informative

    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.

  15. From an old timer ... by johnlcallaway · · Score: 4, Interesting

    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.

    --
    I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
  16. software architects by Kenneth+Stephen · · Score: 4, Interesting

    Sigh. I hear this argument often, but its not true. You don't need a separate person as an architect when your project is small. Do you need an architect for putting together the barn behind your house? No. But its not because an architect isn't needed. Rather its because, building the barn is such a small problem that the builder (programmer) can perform the trivial architecture piece all by themselves (in most cases, in their head, without needing to formally declare it on paper).

    It takes a while before college graduates deal with the big problems. Until one understands that big problems come with challenges that require a different approach, its hard to understand why an architect is needed. To go back to the example of the parent post: the architect isn't specifying how exactly one needs to implement the code. It is a false argument to say that they are taking away anyone's flexibility in that area; this viewpoint makes it clear that the poster doesn't know what an architect does. To go back to the building analogy: suppose the customer comes to the builders and say that they want an office building. Who gets to make the decisions on what it should look like, how tall it should be, how many entrances and exits, where does the supporting infrastructure (pumps, networking and telephony equipment, etc) go? Its not the builder or the electrician, or the brick layer or what ever the trade is. They are not laying down the vision of what to build. The architect - whether it is civil engineering or software engineering - is describing what it is that you need to implement - not how. An architect is NOT a lead developer. If you have to blame someone for taking away your flexibility in programming style, blame the lead developer.

    --

    There is no such thing as luck. Luck is nothing but an absence of bad luck.

  17. Defending ignorance by dpons · · Score: 4, Informative

    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

  18. Re:Bc completely unaware software engineering exis by Darinbob · · Score: 5, Insightful

    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.