Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Businesses Programming

Why Non-Coders Shouldn't Write Code 421

jfruh writes "Software firm FreeCause made a bit of a splash with a policy that requires all its employees — including marketers, finance, etc. — to write JavaScript code. And not just 'code to learn basics of what JavaScript can do,' but 'write code that will be used in production.' Phil Johnson, a tech writer and editor who himself once coded for a living, thinks this is nuts, a recipe for miserable workers and substandard code."
This discussion has been archived. No new comments can be posted.

Why Non-Coders Shouldn't Write Code

Comments Filter:
  • by nurb432 ( 527695 ) on Thursday September 20, 2012 @04:48PM (#41404361) Homepage Journal

    It will at least give the non coders an appreciation of what is being done.

    Now, they need to take the coders and make them do sales for a day.. finance go clean trash for an afternoon.. .etc etc.

  • by davidwr ( 791652 ) on Thursday September 20, 2012 @04:49PM (#41404381) Homepage Journal

    We were all non-coders once.

    Saying non-coders shouldn't write code is like saying non-writers shouldn't write.

    How about: Don't expect consistently professional-quality code from inexperienced coders.

  • Wrong way to do it (Score:5, Insightful)

    by gman003 ( 1693318 ) on Thursday September 20, 2012 @04:54PM (#41404433)

    There's nothing wrong with making all your employees learn how to code, if you're in the coding business. That can help the non-coding guys realize the limitations of code, and let them write quick, dirty code themselves to test something. And if they have a knack for it, maybe they can serve as a coder as well as their old position (assuming your corporate structure is flexible enough for this).

    But demanding everyone be putting code into production is wrong. Would you demand all your employees learn graphic design and have them all create graphics to be used in production? Would you demand all your employees study law and write contracts?

    No, because that's stupid.

  • CS101 (Score:5, Insightful)

    by Larry_Dillon ( 20347 ) <dillon.larry@nOSPAm.gmail.com> on Thursday September 20, 2012 @04:55PM (#41404439) Homepage

    In a tech company, it makes sense to have everyone take something along the lines of CS101. Specifically JavaScript? I don't think it matters but it helps give everyone a sense of how computers really work and what they can and cannot do.

  • by csumpi ( 2258986 ) on Thursday September 20, 2012 @04:56PM (#41404459)
    At every place I worked at, executives and managers had never any clue what they were talking about, what their decisions meant or in general what the programmers/artists/workers did. This made for lots of meetings to explain them stuff , stupid decisions and lost money and effort.

    So making them learn about what the company actually does, could accomplish:

    a) that they make better decisions or, preferably:

    b) that they let the people who know what they are doing do their job
  • by MrEricSir ( 398214 ) on Thursday September 20, 2012 @04:59PM (#41404491) Homepage

    We were all non-coders once.

    And did you learn to code because you wanted to, or because your company required it?

  • Re:Code? (Score:2, Insightful)

    by benjfowler ( 239527 ) on Thursday September 20, 2012 @05:01PM (#41404519)

    Node.js is for hipsters and overgrown web monkeys who think they can code.

  • by Anonymous Coward on Thursday September 20, 2012 @05:03PM (#41404545)

    The other side of the coin... why non marketing guys shouldn't write marketing materials:

    function MarketingFunction(originalText) { var revisedText = new String(originalText + ", which will help build synergy and increase marketshare."); return revisedText; }

    Quite true, unlike marketers and politicians, IT professionals usually have an aversion to lying or even stretching the truth via "spin". Your marketing will fail when compared to your competitors if they aren't mostly lies and half truths.

  • Been there... (Score:2, Insightful)

    by Anonymous Coward on Thursday September 20, 2012 @05:06PM (#41404571)

    Many moons ago, I was called in to clean up a project which had been assigned to an individual chosen for a particular task because he wasn't doing anything at the time...

    The code in question was a real-time application that was to run on an in-house production system. People would flick a badge at a badge reader, which would transmit data to the production system in question, and the app, in real time, would do the usual things -- is the user authorized for this reader, log the event, do the right thing.

    Except what usually happened was someone would walk up to a reader, flick their badge, and buggy real-time code would bring down the entire system.

    After a few days of this yo-yo routine on a valuable system, I was given the opportunity (sic) to fix things.

    Mess, spaghetti code, dog's breakfast, n^2 monkeys on bad acid, it was worse than that.

    Previous "author" returned to his previous position. I re-wrote the pig (after writing a spec), debugged it on a non-production machine, and when it was checked out, put it into production.

    Pain in the ass. Yeah, most everybody can be taught to write programs. Not everybody can write correct or good programs.

    Oh, HTML isn't programming, but I'll leave complex website design to them that knows what they're doing.

  • by reallocate ( 142797 ) on Thursday September 20, 2012 @05:11PM (#41404633)

    People who are really professional coders ought to resist this kind of silliness because it is rooted in the notion that anyone can create professional quality code. If that's true, why pay the real coders?

    It isn't true, of course, no more than is the notion that if you can stick a frozen pizza in the microwave you should be preparing food in a restaurant.

  • Re:Code? (Score:2, Insightful)

    by Anonymous Coward on Thursday September 20, 2012 @05:13PM (#41404663)
    I know better than to feed trolls, but what exactly is wrong with Node.js - I get that it is a polarizing topic (anti-hipsters versus hipsters?). I'm just making some of my first web apps, and am very comfortable in c-type languages. I don't love javascript, but I don't hate it either, and have found some really nice projects in Node that have been easy to get started with, and seem to "just work" the way I expect so far. Is there something I'm missing?
  • by fm6 ( 162816 ) on Thursday September 20, 2012 @05:17PM (#41404723) Homepage Journal

    Back in the 60s Robert Townsend [wikipedia.org] was brought in to turn around a dying Avis Rent-a-Car. He decreed that everybody spend some time working a rental counter so they would understand the activity that was at the core of the business. He was very amused by the experience of his chief programmer, who fled in panic upon seeing his first customer!

    That was appreciation. This is geekcentric nonsense. The CEO doesn't just want everybody to better understand the coding, he actually thinks everybody can contribute to the codebase in an ongoing fashion. This is the classic geek fallacy of "everybody's brain works just like mine."

  • by Hatta ( 162192 ) on Thursday September 20, 2012 @05:24PM (#41404811) Journal

    Everyone should know enough about coding to ask smart questions of the actual coder. If you say something like "if you put into the machine wrong figures, will the right answers come out?", you don't know enough code. If you've never touched a line of code, you're not going to be able to adequately describe your needs to your coder. You may be asking for the impossible and not even know it.

  • Re:CS101 (Score:5, Insightful)

    by radtea ( 464814 ) on Thursday September 20, 2012 @05:35PM (#41404973)

    In a tech company, it makes sense to have everyone take something along the lines of CS101.

    And in a legal practice or doctor's office it makes sense for everyone to have a bit of legal or medical education, which for the most part people do.

    But only a gibbering idiot would think that in any way supports the statement, "Everyone should learn to draft contracts" or "Everyone should learn to diagnose and treat diseases" simply because they work in legal or medical environments.

  • by CanHasDIY ( 1672858 ) on Thursday September 20, 2012 @05:41PM (#41405029) Homepage Journal

    At the same you complain that Marketing people look down on you. But your job is important right? You're better then janitor right?

    Huh? I used to be a janitor, fella, and I can tell you, the people who spend their careers cleaning up your shit so you don't have to are some pretty fucking awesome people.

    Here's a word of advice - your pay scale does not, in any way, reflect what kind of person you are. One look into any boardroom in this nation is all one needs to know that most of the people who take home the lion's share are complete, abject pieces of shit. Hell, nevermind looking at them, just look at how much they pay themselves to do virtually nothing, compared to how much they pay the people who actually make their money for them.

    You want marketing people to respect you, but you don't respect them, or people that make your work comfrtable.

    I couldn't give a shit less what 'marketing people' or anyone else thinks of me, Chief. Spending your entire life trying to live up to other people's expectations of you is no way to live.

  • Scott Adams did. (Score:5, Insightful)

    by Medievalist ( 16032 ) on Thursday September 20, 2012 @05:47PM (#41405083)

    He didn't just spout computer-generated buzzwords on the phone, though, he actually put on a fake mustache and physically attended a meeting - spouting total drivel. Nobody noticed until he started drawing Dilbert cartoons on the blackboard!

    http://www.tealdragon.net/humor/articles/dil-hoax.htm [tealdragon.net]

  • by Genda ( 560240 ) <mariet@nOSpAM.got.net> on Thursday September 20, 2012 @06:26PM (#41405505) Journal

    Welcome my friend to the land of the Pointy Haired Bosses... See, you can tell a person whose playing their first games of Chess, mate in 18 moves and that sounds like voodoo. But you've bothered to study openings, middle and end games, and you can see in those first 7 moves this is now a done deal. Telling the pointy haired boss, that an appreciation for consistent, tight code, that is syntactically succinct, clear, conforms to coding conventions, is well documented, but most of all, reflects that the coder understands abstraction, algorithms, reusable elements, and order of precedent to name but a few basic concepts, is the difference between an application that is quick, elegant and highly useable, and a reeking pile of digital sewage. If anyone could write software, it would pay $8 an hour and robust brown gentlemen you picked up a the day worker center would hustle you out an application after pulling your weeds. It actually takes years to learn enough to write proper programs and more years to hone that skill to a useful edge. Expecting people to just learn syntax who haven't the fundaments of logic or information management, to write code that isn't just a slow motion disaster, is at best deluded.

  • by multicoregeneral ( 2618207 ) on Thursday September 20, 2012 @06:30PM (#41405547) Homepage
    Everyone has to start somewhere. And in production, it doesn't really matter if javascript is clean. It just needs to work. Everyone has to start somewhere. And everyone should at least know how to do it. I don't get people on Slashdot. When you're talking about running it as a server side language, everyone complains that it's not a real programming language anyway, and how running server javascript is a dumb idea. But, dear god, if amateurs even think about writing it... they'll never be able to work with a programming language as sophisticated as js and be able to write readable code. So which is it guys? How about some philosophical consistency?
  • by theshowmecanuck ( 703852 ) on Thursday September 20, 2012 @06:39PM (#41405627) Journal
    Sometimes (OK often) I think it is one of the reasons that companies think young guys are better programmers. Because too many managers want to believe the young programmers who do this. Yep might as well get rid of the older guys who say it'll take a month when this kid can do it in a week. And if the kid does it in a week it is shit, but everyone is so excited the feature is done that they refuse to notice it really sucks for a few weeks.. And then we get people writing papers about what is wrong with the software industry and blah blah blah. Rose coloured glasses on almost every manager sinks both projects and reasonable programmers.
  • by Tom ( 822 ) on Thursday September 20, 2012 @06:45PM (#41405679) Homepage Journal

    It will at least give the non coders an appreciation of what is being done.

    No, it won't. A simple javascript program is not representative of a complex system design, and it will, on the contrary, make people think that this new MIS they are requesting from the software development department can't be all that much more complex than a bit of jquery.

  • by fm6 ( 162816 ) on Thursday September 20, 2012 @06:53PM (#41405727) Homepage Journal

    That's the classic lamer fallacy of posting a comeback that makes no sense.

  • by Anonymous Coward on Friday September 21, 2012 @01:15AM (#41407871)
    This is only a real argument because there are a bunch of tools who only want to hear marketing speak on the other end. So you get a bunch of engineers on one end making a product that doesn't make any sense to them, and then their marketing team sells it to another group of nontechnical employees that doesn't even understand what the product is supposed to do much less how bad it is at it, and then engineers get frustrated on the other end when they have to use some product that doesn't actually solve any problem they had because somebody signed a three year contract on it without asking them.

    Both sides would have been better served if they had put their paper pushers and bean counters out on the street.

I've noticed several design suggestions in your code.