Slashdot Mirror


Learn Basic Programming So You Aren't At the Mercy of Programmers

An anonymous reader writes "Derek Sivers, creator of online indie music store CD Baby, has a post about why he thinks basic programming is a useful skill for everybody. He quotes a line from a musician he took guitar lessons from as a kid: "You need to learn to sing. Because if you don't, you're always going to be at the mercy of some a****** singer." Sivers recommends translating that to other areas of life. He says, 'The most common thing I hear from aspiring entrepreneurs is, "I have this idea for an app or site. But I'm not technical, so I need to find someone who can make it for me." I point them to my advice about how to hire a programmer, but as most of the good ones are already booked solid, it's a pretty helpless position to be in. If you heard someone say, "I have this idea for a song. But I'm not musical, so I need to find someone who will write, perform, and record it for me." — you'd probably advise them to just take some time to sit down with a guitar or piano and learn enough to turn their ideas into reality. And so comes my advice: Yes, learn some programming basics. Just some HTML, CSS, and JavaScript should be enough to start. ... You don't need to become an expert, just know the basics, so you're not helpless.'"

25 of 313 comments (clear)

  1. He describes how he learned to sing, too by Krishnoid · · Score: 5, Informative

    It's in one of the comments, and a pointer from that linked page shows some exercises his instructor had him perform -- singing at different speeds and pitches. I myself wonder why software engineering never tries to teach solving the same problem in a variety of paradigms or languages; 99 bottles is the closest example I can find.

  2. I'm going to be the asshole programmer by Anonymous Coward · · Score: 5, Insightful

    "I have an idea for an app" is exactly what riles up programmers. Ideas are a dime a dozen. If you, the "nontechnical person", do your job right, then you'll find a competent and cooperative programmer. If, on the other hand, and this is is much too common, you expect the programmer to do your work (requirements engineering, reading your mind for what you want, correcting your conceptual mistakes, graphics design, business planning to get the scale right, etc.) on top of the actual programming in return for a one-time payment while you expect to sell "your" startup for millions, then you'll get asshole programmers - and you deserve them.

    1. Re:I'm going to be the asshole programmer by Anonymous Coward · · Score: 4, Insightful

      A programmer's job is to implement a specification. People who "have an idea for an app" only want to pay a programmer (I'm being generous here, often they don't even want to pay a programmer, see the article), but expect to get a business analyst, graphics artist, software architect, marketer, programmer and system administrator rolled into one, so that they don't have to give away too much of the money they expect to earn with their creative idea. Someone who thinks you can learn a little programming to avoid being at the mercy of programmers isn't looking for a partner, isn't willing to share with a partner and doesn't deserve the input from a partner.

    2. Re:I'm going to be the asshole programmer by Anonymous Coward · · Score: 4, Insightful

      The thing is, if you have no concept of programming, it is just black magic to you, and you want to create this app or whatever (btw, an app is not written in HTML/CSS, but I digress), you have no idea where to start, you have no idea what a programmer would need to do it. You don't even have a "language" in which to express your demands. The reason why there are so many of these half baked ideas that we have to pretty much mind read out of people is, they have this problem. If you cannot program, you cannot write pseudocode, and you don't know how or why to write down the demands you have in a correct form. If however this guy were to learn enough programming that he would have a chance to write this app himself given a lot of time, he might much more easily understand the problems of the programmer he wants to give the task to. And even if he does try to do it himself, this is not such a bad thing, cause then he will not bother any programmers and he will either learn to do it properly, or he will end up with a mess and understand that this is not something trivial he is asking of programmers. Maybe at that point it will be possible to explain to him that it is not just about writing the thing either, it's about maintenance when he has made his 32414.th request for a major change without regard for the overall design of the thing that is being made. If your code becomes a big mess because of change requests from the user it is really hard for the user to really understand this before he has learned some basic programming and seen how easily a program becomes a big mess.

    3. Re:I'm going to be the asshole programmer by aaarrrgggh · · Score: 4, Insightful

      I'm an engineer. I want to remodel my home. I come up with ideas, document them, and give them to an architect to build into a complete design that conveys scope to the general contractor and trades. Me being educated about the process helps me to manage scope and hopefully get the product I want in the most efficient manner possible, while also taking advantage of the expertise of others. A prima donna architect that only wants to create something they find to be beautiful might not solve my problems.

      Programming is no different. If I convey something in pseudo code or user interface, I would expect a skilled programmer to be able to provide a critical evaluation of my idea and guide me into the best direction. I might not be able to break down the functions for security the right way, but I would at least be highlighting the need for security as an example.

  3. What about the server side? by G3CK0 · · Score: 5, Insightful

    Sure, learn enough client side tech and you can fumble through putting together an interface - but what then? What about storing state or any number of instances where you need to talk with a DB or do some type of server side magic? And another thing to consider, it's not just learn some HTML, JavaScript and CSS - it's also figure out how the different browsers handle the quirks of each of those technologies. It's one thing to be an informed consumer, and an entirely different thing to be a backseat driver who does not actually know how to drive.

    --
    A clear conscience is usually the sign of a bad memory.
  4. Re:HTML, CSS, and JavaScript by Anonymous Coward · · Score: 4, Funny

    It's the only legit way to trace the killer's IP address.

  5. Sure because that's all is needed... by Anonymous Coward · · Score: 5, Insightful

    No training, no knowledge of computer science, algorithms - nothing. Just some HTML, some JS, and you're developing rocking apps and sites! What can possibly go wrong with that stellar advise...

  6. I'm writing this slashdot comment... by tangent3 · · Score: 5, Funny

    ...because if I don't, I'm always going to be at the mercy of some a****** slashdot comment writer.

  7. Also works for drawing by Tagged_84 · · Score: 5, Interesting

    While I have no problem with programming I am at the mercy of an artist for my games. So the last couple months I've been practising drawing with Vectors (I've actually found InkScape to be easier than Illustrator) so that I no longer have to find a willing graphics artist for my games. I've been drawing the assets for my next project as I figured that's the best way to learn, never have to stop and think of what to practice drawing next as I have the list in front of me.

    It also means if I end up with sub-par results at least I've improved my art skills and have a strong list of assets for the artist! Plus it's another step that forces me to consider each asset before throwing it in there as not only do I need to design and code but now I need to spend the time drawing it, the end result being a cheaper contract rate from fewer art assets.

    1. Re:Also works for drawing by Tagged_84 · · Score: 4, Insightful

      Thanks captain obvious!

  8. No.. just no... by Anonymous Coward · · Score: 5, Insightful

    > 'The most common thing I hear from aspiring entrepreneurs is, "I have this idea for an app or site. But I'm not technical, so I need to find someone who can make it for me."

    He should be telling them: "Ideas are a dime a dozen. The value is in the execution. If you cant execute your idea, then what are you bringing to the table?"

    1. Re:No.. just no... by Kjella · · Score: 4, Interesting

      If it's an idea that is scribbled down on the back of a napkin, maybe not. But I'm reminded of the founding story of one software company I heard, the initiator was an electrician but he couldn't code worth shit. So he found a tech-savvy friend and said "I've been an electrician for 20 years now, I worked with most the software tools out there and think there's a market for something better and more streamlined to an electricians daily life with these and those features. I have many contacts in the business we could sell to and I know what the competition is charging because they've been selling to me and there's good money in this. I have done some layouts of how I'd like this to look and work and I can continue to work on that if you can write code to make it work."

      Long story short, friend take a look at it and decides the ideas are implementable, they start a company together, huge success. Of course you could say he brought a lot more than an idea, he bought domain knowledge, proper requirements, specific key features that could sell the product, market contacts and so on but he had absolutely no execution ability on his own. Should he have gone back to school for learn to do it himself? Yeah right. That would have taken years and you can bet that if the first version was made as a newbie's first "real" solo coding project it would have been horrible and flopped. So what do you do if you have all of the above, but no tech-savvy friend? Of course by Sturgeon's law 90% of everything will be crap, but to dismiss everything just because they "need to find someone who can make it for me" is silly.

      --
      Live today, because you never know what tomorrow brings
  9. Re:NEWS FLASH! by Anonymous Coward · · Score: 5, Funny

    G'day, Frosty!

    Did you mean "Übernerds" and "Übernerdliness"?

    ProTip: The best trolls all use Windows-1252. Unicode is vastly overrated.

    Yours in Umeå,
    Roald Engelbregt Gravning Amundsen

  10. True by Frankie70 · · Score: 4, Insightful

    Yes, everyone should get to it right after they learn carpentry, blacksmithy, masonry etc. Then they will never be at the mercy of others when they get ideas.

  11. Re:Incredibly stupid by BronsCon · · Score: 4, Insightful

    If you're going to drive a car, learn basic vehicle maintenance, so you at least know when to involve a mechanic. If your very survival depends on you eating food, learn where it comes from so you know how to get it. If your big idea depends on programming, learn enough to be able to effectively communicate with the programmer you're expecting to make it happen. If you can't do these basic, simple things, don't be surprised if your car breaks down and you starve to death on your way to chew out your programmer for not including some feature or process you never actually discussed because you weren't willing to put forth the effort to not fuck yourself over.

    --
    APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  12. Re:Does programming necessitate the use of a compu by Z34107 · · Score: 4, Insightful

    Programming? Yes, just like learning to play the piano requires a piano.

    Computer science? Strictly speaking, no.

    --
    DATABASE WOW WOW
  13. Re:Does programming necessitate the use of a compu by NoNeeeed · · Score: 4, Interesting

    As Dijkstra once said - "computer science is no more about computers than astronomy is about telescopes"

  14. learn basic entrepreneurship... by retchdog · · Score: 4, Insightful

    so you aren't at the mercy of vulture capitalists.

    if the entrepreneurs learned programming, maybe they'd realize what many programmers already do: that most of these "entrepreneurial" ideas are really stupid and obvious, and that a lot of the game is just convincing people dumber than you that you're a genius and the idea you came up with on the john a few days ago is going to replace google and facebook and blah blah blah.

    looking at the converse question is rather illuminating: why aren't more programmers entrepreneurs? a meritocratic mindset is very inefficient if what you want is to make money in a society which does not directly appreciate merit.

    a lot of the challenge of entrepreneurship is realizing that the market really does want fairly obvious, warmed-over ideas packaged extremely fucking well*. pursuing technical training can serve to, paradoxically, blind one to this.

    *: of course a truly novel insight packaged extremely fucking well is necessary to be a great success, it's hardly necessary if all you want is, say, to have a decent chance at bagging a few $million.

    --
    "They were pure niggers." – Noam Chomsky
  15. Re:Does programming necessitate the use of a compu by rduke15 · · Score: 4, Insightful

    No more, and not less. Astronomers started by being fascinated looking through telescopes.
    And while programming can be abstract logic and algorithms, the fun is that it actually makes computers do stuff. A computer scientist may not need a computer, but he certainly started to get interested in the field by having fun playing with one.

  16. Not sure it would help by Moraelin · · Score: 4, Interesting

    I'm not sure that learning some superficial idea of a language is going to help. And I'll give you a couple of reasons why:

    1. Dunning-Kruger. The people with the least knowledge on the domain are those who overrate their knowledge the most.

    Now I really wish to believe that some management or marketing guy is willing to sink 10,000 hours into becoming good at programming, and have a good idea of exactly what he's asking for. I really do. But we both know that even if he does a decent amount overtime, that's about 3 years of doing NOTHING BUT programming, i.e., he'd have to not do his real job at all any more. Or more like 15 years if he does some two-hours a day of hobby-style programming in the afternoon. And he probably won't even do that.

    What is actually going to happen, if at all, is that he'll plod through it up to first peak of his own sense of how much it knows, i.e., the Dunning-Kruger sweet spot. The point where he thinks he knows it all, except, you know, maybe some minor esoteric stuff that doesn't matter anyway. But is actually the point where he doesn't know jack.

    2. And from my experience, those are the worst problem bosses. The kind which is an illustration of Russell's, "The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt." The kind who is cock-sure that he probably is better at programming than you anyway, he just, you know, doesn't have the time to actually do it. (Read: to actually get experience.)

    That's the kind who's just moved from just a paranoid suspicion that your making a fuss about the 32414'th change request is taking advantage of him, to the kind who "knows" that you're just an unreasonable asshole. After all, he has no problem making changes to the 1000 line JSP or PHP page he did for practice (half of which being just HTML mixed in with the business code.) If he wants to add a button to that one, hey, his editor even lets him drag and drop it in 5 seconds. Why, he can even change it from displaying a fictive list of widgets to a fictive list of employees. So your wanting to redo a part of the design to accommodate his request to change the whole functionality of a 1,000,000 line program (which is actually quite small) must be some kind of trying to shaft him.

    It's the kind who thinks that if he did a simple example program in Visual Fox Pro, a single-user "database", placed the database files on a file server, and then accessed them from another workstation, that makes him qualified to decide he doesn't need MySQL or Oracle for his enterprise system, he can just demand to have it done in Visual Fox Pro. In fact, he "knows" it can be done that way. No, really, this is an actual example that happened to me. Verbatim. I'm not making it up.

    3. Well, it doesn't work on other domains either, so I don't see why programming would be any different. People can have a superficial understanding of how a map editor for Skyrim works, and it won't prevent them from coming with some unreasonable idea like that someone should make him every outfit from [insert Anime series] and not just do it for free, but credit him, because, hey, he had the idea. No, seriously, just about every other idiot thinks that the reason someone hasn't done a total conversion from Skyrim to Star Wars is that they didn't have the precious idea.

    Basically it's Dunning-Kruger all over again.

    I think more than understanding programming, what people need is understanding that ideas are a dime a dozen. What matters is the execution.

    What they need to understand is that, no, you're probably not the next Edison or Ford or Steve Jobs or whatever. There are probably a thousand other guys who had the same idea, some may have even tried it, and there might actually be a reason why you never heard of it being actually finished. And even those are remembered for actually having the management skills to make those ideas work, not just for having an idea.

    Ford didn't just make it for having the idea of making a cheap

    --
    A polar bear is a cartesian bear after a coordinate transform.
  17. Pretty much by Arancaytar · · Score: 4, Insightful

    (And conversely, programmers also benefit greatly from learning some basics of business to avoid being at the mercy of managers.)

  18. Re:Does programming necessitate the use of a compu by BrokenHalo · · Score: 5, Interesting

    Well, no reason why it should. Just about anyone should be able to write some form of pseudocode, however incomplete, for whatever task they want to accomplish with or without the assistance of a computer.

    That said, when I first started working with computers back in the '70s, programmers mostly didn't have access to the actual computer hardware, so if the chunk of code was large, we simply wrote out our FORTRAN, Assembly or COBOL programs on a cellulose-fibre "paper" substance called a Coding Sheet with a graphite-filled wooden stick known as a pencil. These were then transcribed on to mag tape by a platoon of very pretty but otherwise non-human keypunch ops who were universally capable of typing at a rate of 6.02 x 10^23 words per minute. (If the program or patch happened to be small or trivial, we used one of those metal card-punch contraptions with an 029 keypad, thus allowing the office door to slam with nothing to restrain it.)

    This leisurely approach led to a very different and IMHO more creative attitude to coding, and it was probably no coincidence that many programmers back then were pipe-smokers.

  19. Re:Does programming necessitate the use of a compu by maxwell+demon · · Score: 5, Informative

    Someone on Slashdot pointed me to the Greasemonkey script Moderatrix. It works great.

    --
    The Tao of math: The numbers you can count are not the real numbers.
  20. Re:HTML, CSS, and JavaScript by BotnetZombie · · Score: 4, Informative

    JavaScript is Turing complete AFAIK. What do you mean it's not a full blown language?