Learn Basic Programming So You Aren't At the Mercy of Programmers 313
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.'"
Does programming necessitate the use of a computer (Score:3, Insightful)
... just askin'
I'm going to be the asshole programmer (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.
What about the server side? (Score:5, Insightful)
Sure because that's all is needed... (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...
Re:Does programming necessitate the use of a compu (Score:4, Insightful)
No.. just no... (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?"
Re:What about the server side? (Score:4, 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?
Possible solution:
1. first, you learn enough JavaScript to mock the interaction with a server (which is quite a lot of Javascript, honestly) and develop a fully fledged standalone client - yes, you can do it.
2. next, if you already learnt in this process this heck of a lot (not only enough JavaScript, but also SW engineering), learning a server-side flavour is a piece of cake.
(yes, you're quite observant, there's not "step 3. ???" and no "step 4. profit")
And suddenly, you discover yourself transforming from a guy with disruptive ideas into a guy that sends his CV left and right and hope someone will hire him as an... a****** programmer.
And... hold on... this is called "growing up" (as in "coming of age in software").
Re:Also works for drawing (Score:5, Insightful)
True (Score:5, 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.
Re:Incredibly stupid (Score:5, Insightful)
Re:Does programming necessitate the use of a compu (Score:5, Insightful)
Programming? Yes, just like learning to play the piano requires a piano.
Computer science? Strictly speaking, no.
Re:I'm going to be the asshole programmer (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.
Re:True (Score:4, Insightful)
If they know all that, what do they need computers for?
That's kind of the point. There's always some things you will have no idea about, and risk getting ripped off by asshole 'experts'. 'Zen and the Art of Motorcycle Maintenance' covers that pretty well though.
Sure, being able to have the basics of a range of things can be satisfying. However, if you're going to be an entrepreneur you're going to need to learn the ability to manage people with skills you don't have.
Re:I'm going to be the asshole programmer (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.
learn basic entrepreneurship... (Score:5, 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.
Re:Incredibly stupid (Score:4, Insightful)
Thank you for helping make my point, tho.
Re:Does programming necessitate the use of a compu (Score:5, 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.
Pretty much (Score:5, Insightful)
(And conversely, programmers also benefit greatly from learning some basics of business to avoid being at the mercy of managers.)
Re:I'm going to be the asshole programmer (Score:5, 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.
Re:Does programming necessitate the use of a compu (Score:4, Insightful)
I'd like to create an Alan Turing! Now if I can just find a hot babe to make him for me
You should learn basic gestation so you aren't at the mercy of hot babes.