Do Tech Entrepreneurs Need To Know How To Code?
An anonymous reader writes "Learning to write code has become something of a trendy thing to do. New York City Mayor Michael Bloomberg has said he intends to learn code this year. Estonia has recently announced a scheme with the aim of getting every 6-year-old in the Baltic state to learn programming skills. The demand has spawned a number of start-ups offering coding lessons. General Assembly, which teaches off-line courses, has recently opened up in London and is recruiting ahead of a launch in Berlin. On-line education site Codecademy landed $10 million to expand from its home base in New York. Zach Simms, the 22-year-old co-founder, said in an earlier interview with The Wall Street Journal that not everyone has to learn to code, but everybody 'needs to learn the notions of algorithms, realizing what you can use code for.' But do they?"
No.
Coders are the pillar of our industry. We need more of them. Here, get Visual Studio and start coding today!
Know how to make toasters to make toast?
A 'singular oddity' is an event that cannot be explained and only happens when you are alone.
It's an increasingly vital part of how absolutely everything in the world works. It's the battleground for various political factions (everything from stuxnet to DRM to Anonymous hacks). It increasingly determines what you can and cannot do with the stuff you think you own.
Not knowing anything about programming or how it works is something I consider nearly as bad as illiteracy in our society.
Need a Python, C++, Unix, Linux develop
Do people need to know how to program in C? No. Do they need to know how to think logically? It sure doesn't hurt. But there are other means of teaching formal logic; geometrical proofs are the standard for high school logic. I'm not sure that programming is necessarily the best way to go about it. The kids who have a natural knack for it will gravitate to it, so giving students the option as early as elementary or middle school is probably a fair thing to do. I don't think it should be a mandatory subject, especially at advanced levels.
Occasionally living proof of the Ballmer peak.
to be taught to everyone is Morse code. ... --- ...
www.chihuahuarescue.com- Help to end dog abuse, abandonment and cruelty
I think I can generalize this. If you're doing a startup in the tech community, there's often something that's your bread and butter. There's gotta be something that sets you apart from a big guy clone otherwise you're not a startup, you're just another business trying to do business. This bread and butter is often complex otherwise someone else would already be doing this. If you're the leadership on a startup, the less you know about this core element of your startup, the riskier your venture is going to be.
... yeah I've been involved with rule based systems projects where it was pretty clear the people in charge of me didn't know the limitations of rule based systems. Back then, I'd draw out a functional flow block diagram for this system and show them the black box and explain to them why this was going to be trouble.
... but in the end I don't understand the science or the chemistry behind that process, it's probably going to die on the vine. Sure, software is a common misunderstanding for tech startups but it could just as easily be the frequency limits of modern RAM accesses or why a 700 Mhz ARM processor isn't gonna get the job done or how many points a resistive touch display can track at once accurately etc etc.
Coding is a common one because it's powerful. But your startup could just as easily depend on some hardware thing, like, say Fusion IO cards. And if the leaders of the startup don't understand the power and limitations of those cards, then you're in trouble. I think most of the time what I've seen ruin things inside a Fortune 500 company that does R&D that is supposed to mimic startups is that the leaders don't understand statistics and P-values and recall rates. Software is basically complex math so I guess you could say that was their misunderstanding of what software and "algorithms" could do but
If I started up a new drywall startup and claimed I had a new mixture of gypsum and lime pressed between two special kinds of paper done in a certain manner at a certain temperature making it more resistant to moisture, more durable, comparable in price, etc than the crap coming out of China
Basically if you don't understand the core concepts that your startup depends on and offers, you're gonna have a bad time.
My work here is dung.
If they were learning to architect software systems, that might be useful and help them to understand what's possible and what's not.
But learning to code doesn't help them at all, and is more likely to give them a false sense of the complexity of large software systems. He'll say stuff like "Hey, what's so hard about doing this, I can write a function to add this feature in 10 minutes, so go make it happen!", while the engineer is saying "But this is a fundamental change in the data model and means touching nearly our entire code base"
Of course there are lots of examples of great tech entrepreneurs who can't write a single line of code, so it's obviously it's not a requirement. But I do think it's a practical skill to have, especially in the beginning of your new company when resources are scarce. You can save lots of money and time by being able to whip up your own demo's and prototypes, instead of having to let 3rd party developers create them for you, especially as there tends to be lots of different versions and ideas at the start. And later on it is a great benefit to have a general knowledge of what it is your company offers and the people working for you are doing in your ability to manage your company properly.
Pretty good is actually pretty bad.
If your a CEO of a motorcycle company you should know something about motorcycles If your CEO of a Twinkies factory you should know something about baking.
They need the ability to detect bullshit; what is and is not feasible given a schedule and some amount of talent. They need they ability to weight the value of capabilities and features or the significance of flaws.
Coding, managing systems, etc. is important to the extent that it facilitates these abilities.
TFA does not ask (or answer) "Do Tech Entrepreneurs Need To Know How To Code?" Rather it asks "Do nontechnical entrepreneurs of digital start-ups need to learn code?" (emph. added).
This really depends on which stage of a startup you're at. If you're in the garage building the prototype, yeah, you pretty much need to be R&D, which involves coding. If you're further along in the enterprise, perhaps raising money, perhaps building a team, perhaps concentrating on distribution or manufacturing, then being on the ground floor of R&D is much less important. Many founders turned CEO who started at ground zero developing products are ousted (bringing in an outside CEO or other manage) at later points in the life of their company simply because they are too focused on the minutia of product development and R&D, and haven't actually learned how to run and manage their organization.
Make no mistake, ideas are dime a dozen. Everyone has one, and everyone thinks their idea will make them a million dollars. The reason not everyone is a millionaire is that the conversion between idea and money is dependent much more on execution of the idea than the idea itself. If more entrepreneurs understood this instead of focusing on the product, there would be fewer failure stories to talk about. Now don't get me wrong, a good product is *very* important, but it's still a small part of the larger picture.
Someone creating a digital start-up definitely needs to understand the product or service they're creating, both the fundamentals and the specifics, but that doesn't mean they personally have to be able to build it. There really isn't a need for a company's creator/owner/whatever to be involved at such a level (unless they actually are an expert in such coding), and there are undoubtedly better things they should be doing with their time. And if they aren't already skilled in responsible coding, they definitely shouldn't be messing with things.
When someone says, "Any fool can see
No, but you do need to understand how a toaster heats the bread in order to know what you can do with a toaster and how to set the toaster correctly.
Can people exist in our society without the ability to read? Certainly there is proof of that.
What level of education do we want for our society? Do we draw the line at literacy? Rational thought? Able to change the oil in a car? Fix a cell phone? Fill out a tax return? Write a spreadsheet formula? Implement a C compiler or operating system for a microcontroller?
“Common sense is not so common.” — Voltaire
I teach mechanical engineers. About half the mechanical engineering students do not know anything about code or computers. However they need to use computers daily. Its sad to see many of them doing things manually that a for loop would solve in few seconds.
The end run of this experience is that the tools actually reflect this. The way local companies work is horrible, i mean even indexing the metadata of their 3d Models is a task that they can not solve. Even with millions in cash. Mostly this is due to the fact that since they don't have any understanding of code they can not think about the problem in a way that would make them automatic. As a result they need to pay roughly 15-30% too much for labor. Mainly thsi time ie spent correcting manual mistakes and doing the same thing over again.
Now the thing is you can not hire a coder to solve your problem, if your not willing to change the way you work. Understanding how to do rudimentary coding in form of scripts helps one to see what the coders should do. It helps you to explain the problem and thus get a good solution for you the end user. For fraction of the cost with less bugs. Lets face it coders sure as hell don't know how to design physical objects. So their solutions don't necessarily meet with your needs.
'Coding' is syntax. Learning how to explain how to do something using a specific syntax. I think just about anyone can learn how to do that.
'Coding' is reading a spec and converting it to a specific syntax. I think just about anyone can learn how to do that.
'Programming' is taking a nebulous idea, breaking it down into a series of inter-related processing components, and then coding those processing components. It's being able to recognize if the processes as defined work as desired and if not, figuring out how which components do not work properly and correct them. It requires certain degrees of spatial skills depending on the complexity and number of processes being coded so that their inter-relationships can be understood.
Programming is a far more difficult thing to teach, because it requires someone to be able to develop a process where none already exists, or convert an existing process that is not computer-based, into a series of logical processing components and link them together to produce the desired results. It requires someone to step outside lines where everything is neatly defined and define their own instructions.
When so many people can't even follow directions on how to set the clock on their microwave oven, how the hell does anyone think they can learn to do anything but code what someone else has already written the instructions for.
I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
Besides, fewer people that know programming means more job security and less competition for me.
It also means fewer people interested in acquiring tools for programming, which means less competition among tool makers for programmers' dollars and mind share, which ultimately means more expensive tools for people like you who do know programming.
Not everyone needs to know how to code, which I consider a Very Good Thing(tm), for one simple reason...
Most people either can not or will not ever learn to code. I'd say the mode of thinking itself automatically rules out a good third (at least) of the population simply for raw capacity to learn the necessary skills; on top of which, the vast majority of people who could learn to code find it unbearably tedious and boring. Most people see coding as roughly on par with doing their taxes for "fun".
Let's look at a successful mega-companies and see what they do: Yahoo. They know to only hire CEO's with Computer Science degrees. To do otherwise might cause disruption and financial losses to their business. They would never hire a CEO without a CS degree and they do a very thorough investigation into whether they might be trying to pretend like they have one. Yes, you need to know how to code.
Adidas To Bring Back Sneakernet
I think its important for people to know, because it allows them to understand the opportunities as well as the limitations of software. Working in Finance, its painful seeing how few people understand what opportunities lie within 1 hour's worth of code to simplify their life. Even the number of people who print something out in order to scan it is mind boggling. Its not even about whittling at their headcounts and working hours, its about changing the focus. The job should be about ensuring matches and verifying payments, not scanning and renaming files and manually typing in information that's already on your computer. Mundane work creates mistakes and takes away from what the job is supposed to be.
Then the limitations come into play. When implementing a new system, such outlandish requests without understanding what it will take to accomplish them create rifts and a lot of headbutting. It also helps you understand errors and why things aren't working. "Oh shit, I got an error box, I should call the help desk." Why did it happen, and why doesn't it normally happen? Understanding the way code works allows you to see into the solution in many cases.
The most successful tech entrepreneurs had significant technical skills. And that absolutely mattered - without those skills, they have no way of evaluating technical employees and applicants. If they weren't in charge of product development themselves, then they at least had to know who they should hire to run product development.
For example: Bill Gates was an extremely effective developer and architect (worth reading is Joel Spolsky writing about a time he met with Bill Gates). Larry and Sergei of Google were well-respected developers doing graduate work at Stanford. Steve Jobs wasn't at good at the technical stuff as Woz was, but he had tinkered with electronics and done technical work for Atari.
Many MBAs of the world would like to think that managers don't need to understand the details of their product line. But that's simply not true - the manager that understands the details will hire better people, make wiser decisions about how to accomplish tasks, and have a more realistic outlook of what the organization can do.
I am officially gone from
Gee, this is just a fabulous idea. Imagine the dotcom days where everyone and their goldfish were jumping on ship to 'code' because the $$$ was flashing in their eyes. What was the result? Massive massive quantities of crap.
Now lets magnify that umteen-fold, because suddenly everyone 'knows' how to program. Yeah, that's a great idea. Lets give everyone an unlimited amount of rope and let the Dunning-Kruger effect do the knot tying...
Peddled soda before becoming CEO of Apple. Everybody thought that his CEO expertise would carry over to any other kind of business. He didn't understand computers and thought he could beat the competition by turning macs into commodity computers and outmarketing the rest of the field. He very nearly put Apple out of business.
Computer Science is not IT and some times not even coding as well.
I know a guy who started an IT consultancy company about 10 years ago and has made a considerable amount of money from it. He figured if you hire the right people, you don't need to fully understand the technology. You just need to understand the needs of the (potential) customers and make sure the company meets them. The tech guys can work out the details. Now and again he still calls with basic IT questions :)
Just as most "college-bound" high school graduates have a broad awareness of history, literature, and science in addition to specific skills in these and other areas, anyone who wants to be able to appreciate what humanity and the modern world have to offer "needs to learn the notions of algorithms, realizing what you can use code for."
So, no, it's not essential for tech entrepreneurs to know how to code or be able to recognize an algorithm's O() complexity, but they will be better people and better entrepreneurs if they invest some time to learn about algorithms and what is an is not computationally feasible.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Yes. They also need basic math and physics skills. They don't get those either.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
I think that usability and user experience are more important that programming. I think usability and user experience should be taught to everyone at school. It wouldn't require that much hours as it is mostly common sense. And because it is common sense, it would be really easy for people to learn, unlike programming.
Imagine doors that people can open to correct direction without a mistake. Imagine books where the information you seek is easy to found. Imagine ovens that are easy to heat and light switches with 10 buttons where you instantly know which button will start which light. That all is reality, if people had a little knowledge about usability.
Imagine alarm clocks that gently wake you up. Imagine a wheelchair that makes you look cool. Imagine an error message that informs you about your own mistake so politely that it makes you feel good that you made the mistake. All this is possible if people had a little knowledge about user experience.
Imagine if all the programmers would read just a couple of books on this subject. Does Entrepreneurs need to know this stuff? No way. But I'm pretty sure that Jobs did.
Modeling is a skill that's necessary to developers, and even to base coders it doesn't hurt. And it's also useful to entrepreneurs, especially when it comes to modeling flows of information and materials. They can delegate that skill, of course, but it's only a possibility in a large enough structure. To a small to medium company, having some skills in that matter is important. Owners of very small companies often manage to do that intuitively, but it only works to an extent, and can cause problems when they expand.
I sometimes half-jokingly state that if a company grows enough that it can have a second coffee machine, a full audit of the information system should be performed before said coffee machin is installed: it might disrupt informal communications between branches (who often happen around the coffee machine), which calls for a formalisation of communications before proceeding.
To sum up: management students have some courses in common with developers.
There's nothing like $HOME
Code is just syntax. Syntax that you use to feed your ideas into your compiler. Then you will start it and it probably won't run.
Code teaches you something important. An idea that doesn't work is bullshit. You can't blame anyone else, you just need to fix it and make it do the right thing.
Anyone who hasn't experienced this is not ready to be a member of a team and certainly not a leader.
When Argumentum ad Hominem falls short, try Argumentum ad Matrem
Step 1: Read the question
Step 2: Record current time
Step 3: Think.
Step 4: Re-examine current time.
Step 5: If elapsed time 1.0 seconds, goto Step 3
Step 6: If answer to Step 1 != "yes", Goto Step 1.
Once I had a manager who made decisions without thinking about the software.
Then he made a decision that had a terrible impact. He stipulated conditions that seemed straightforward, but required extensive software modifications
I showed him the plans for new software that was required to meet his requirements. He did not realize that his "simple" changes required extensive modification, and so his changes turned out to be not so "necessary" after all.
Since then he has learned how to code, and now he thinks about the software before he requests changes to policies.
If you want to run a tech business then you need to know the difference between crappy programmers and quality programmers. If you don't know anything about code and what quality code looks like, you could doom your business to failure before you even launch your first product. The longest running product I've got going is 3 years old. The design decisions early on are requiring some massive reworking but the actual business logic of the code is remaining untouched. The code was properly designed to be upgraded to new methodologies without breaking everything. In less than 80 hours the old code will be able to take advantage of new methodologies and we can go full steam ahead with new features.
Plenty of companies don't have that ability because they hire crappy programmers. 3 years down the road, they'll find out the code has to be thrown out entirely because it has turned to unmanageable spaghetti. And the end result is you're out of business.
Work Safe Porn
If you run a software startup and don't know software, you will forever be making errors of judgement due to your lack of that understanding.
You can't hire people effectively. You can't manage projects effectively. You can't call BS when your engineers tell you it will be done impossibly soon, or isn't possible. You can't *judge*.
I do tech startup consulting, and a fair bit of my work is helping non-tech founders hire, manage, and analyze. It's crucial to have this ability on your founding team if you're a software startup. That MBA is not enough.
Looking for a Rails developer in Chapel Hill?
It helps to be able to tell the difference between a claw hammer and a screwdriver. Yes, you can hammer with a screwdriver, but it's so sub-optimal that it's not even funny. Heck, if you are careful with the claw end and you have all day and enjoy torturing yourself, you might even be able to use it as a screwdriver.
Similarly, it helps to know that a special-purpose language optimized for a particular type of problem is frequently superior to a general-purpose language for the task it was designed for, even if on a theoretical level both languages are general-purpose languages and either one can be used to implement any algorithm that the other one can. It's also very important to know that using the special-purpose language for other tasks is very likely to be very inefficient in some way or other.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
You took a CS program that spoke nothing of languages? Not even mathematics? You completed a worthless CS program.
And if you've checked his plan at any length, after giving the wealthy a $6.5 billion that leaves a gaping $4 Billion deficit. You might also want to mention the elimination of the social safety net, putting Medicare recipients on a voucher program, eliminating the investment of government monies on education in general and carving Social Security back far enough to make sure baby boomers will need to live in packs to afford their dog food. His own Catholic Church said that his plans are "Unchristian" serving only the wealthy and viciously attacking the poor, homeless, and disenfranchised.
Don't get me wrong, I believe that folks on welfare could be put to good use, working to rebuild the American Infrastructure, seems only fair that if you're going to receive support that you earn that support by helping the nation grow and thrive. Call it a something for something program. I just don't believe that the guy with 12 homes and elevators in his 200 car garage, needs the government subsidy worse than the poor bastard in the rust belt with two kids whose only crime is his town's industry (owned by the clown with 12 cars) moved to China.
I graduated with first class honours in 1997 in EE engineering. I found once I got into the design side of things (IRL work) that whilst you could put someone else's HW/SW in front of me and I could work it out down to the bare metal, asking me to build the same from a spec was a different matter - I quickly realised I just don't have the mindset. I did however find I did very well at evangelising technology, and it has served me well to date in several sales and marketing roles since. Now I know S&M is a dirty phrase on /. (for many reasons) but the fact of the matter is engineers would have no jobs if there was no-one to market their hard work, but there would be no need for marketing if there were no talented engineers (and I have known and respected many - by the way there are some shit engineers out there on a par with the shit 'marketdroids', as we are known). The fact of the matter is that there are shades of skill in tech, and after all is taken into account we all rely on each other. One thing I have noticed is the 'playboy' CEO's who only give a fuck where their next yacht is coming from. Those people need weeding out, but as they say, shit always floats.
if soda_ounces > 16 then Buyer.Terminate_Sale else Buyer.Allow_Sale
// Here, I fixed that code.
// It originally was Buyer.Terminate which led to several unfortunate incidents.
Maybe having everyone learn C or Java is a bit of a stretch. But one language that I think everyone (who works in an office setting) should learn is SQL, and maybe some analysis package like Matlab or R (but Excel is probably enough). It's amazing how much knowledge you can get about a business by analyzing even a small internal database.
Today, managers don't want to learn how to manipulate data, and programmers don't want to understand the business that they're in. Most managers and programmers are unable to quickly explore a database and search for useful information.
Not knowing how to manipulate data is like not knowing how to manipulate numbers. Sure, people can "get by" without an understanding of math or stats, but it is an incredibly useful skill and not many people have it.
Or at least have the experience even if only to fail miserably at it. There's no faster remedy to delusions of the "A" for effort, "you did your best, that's what counts" crowd than to have your compiler parade your incompetence across your screen. No better wake up to the dreamers of realities that do not exist than application crashes and catastrophic data loss.
Two of my imaginary friends reproduced once
If you plan to sell an Item with embed software, IMHO, you had best know at least how to read that code. That's not programing, but when there is a depute that you need to get involved in over some code issue You Had better know what is going on.
I do have mod points, and would have given you an off topic mark, but I do agree that people need logic. And I do agree that Coding is Logical Thinking. You do not need to program in 'C', but it is not a bad place to start. Logo (turtle) might be more fun. My last boss thought a few lines in a spread sheet was his clam to fame in coding. But I say no, he lacked basic logic skills to boot. I got the #*!! out of there, I am retired now.
Some where in this thread someone asked how much of society needs logic. I would hope all of the voting population has good logic skills. Also voters need a good science background so they can see throw the smoke and mirrors the people that would run a muck just to make a dollar.
(And I *don't* count Bill Gates as an example. He was definitely an entrepreneur, but to me it appears that he skill as a developer is all PR and "theft". [I'm willing to concede that I have no evidence that he actually broke any laws. So theft is in quotes.])
Bill Gates himself wrote several pretty succesful BASIC interpreters (among them the one in C64). Also he did a lot of code reviews, and was respected for his technical insights while being the CEO of the early Microsoft.
What the fuck planet are you living on.
Earth.
The tools are free.
For some platforms, as of 2012. For other platforms, Apple (iOS) and Microsoft (Xbox 360 and Windows Phone) charge $99 per year to run code that you wrote on a device that you own. The fear of post-PC alarmists is that all computing devices sold for home use will start to work that way because the vast majority of people have no need to write their own programs; to them, the "walled garden" is a desirable security measure. In the alarmists' view, general-purpose computers will be for businesses alone.
sort of... Jobs' famed "reality distortion field" flies in the face of that though.
accepting the constraints of reality is something we all have to do, but it's difficult not to think yourself into a box that way. given TFA is about entrepreneurs, it's possible that knowing what is and isn't possible is a bad thing.
to paraphrase something i read in a /. sig:
"if you don't go to far you'll never know how far you can go".
something like that. i like it.
...I have had during my entrepreneurship has been my ability to program.
I have two bouldering gyms and my background as a programmer has helped me a lot.
Coding has taught me logical thinking, ability to optimize processes and a way to think every task as something that could be made easier, better, faster etc. I'm not afraid to tinker with new gadgets and technologies to make things even better.
I also chose to make my own POS, small ERP, door entry system, web shop and so on. And I have an easy system which employees can and will use. Which in turn talks to the accounting firms systems (who do our accounting, sales ledger etc.)
For a couple of years it was a mess, but now that the system is matured a bit, I wouldn't go back.
Jobs knew what was should be possible even though it had never been done. He also knew how to fix an idea and that real artists ship. How to work through issues and improve things, how to identify problems and identify potential solutions. He learned this from being an engineer at Atari and other experiences hacking as a young man. Jobs was not ignorant of reality, what could be done or how to do things, otherwise he would have failed completely, since he didn't know how to kiss the arse of foolish investors and make money off a profitable failure.
When Argumentum ad Hominem falls short, try Argumentum ad Matrem
After the computer is available, the necessary software tools can mostly be had for free or a very nominal fee.
That's the problem: I imagine that a lot of high school students trying to teach themselves programming can't necessarily afford "a very nominal fee" of $99 per year out of their allowance.
The advantage of virtual machines is that they are simpler and more regular. 7094 assembler would have similar virtues, but nobody has a machine to run the code on anymore. (Actuall, if you get into I/O, 7094 assembler also loses the "simpler and more regular" advantage.)
As for need... The need is to teach logical thinking. This is something that's quite difficult to do if there's no ready test of correctness. Programming offers such a test. So does electrical engineering with separate components. (Leave transistors out of the elementary version. Diodes and triodes are, however, ok. Transistors require fancier math to handle properly. Integrated circuits hide the basic features under a mask, and present a complex interface.) But Electrical engineering is about a lot more than just thinking properly. Something can fail to work because you didn't solder a connection properly. Programming is more purely about thinking properly. I can see an argument that one should do all the basic programming using "not", "and", "nor" etc., but that's really too limiting to be interesting. If you're working at that level, a game to play tic-tac-toe would be a semester project. That's for more advanced students that really want to get into the details. And Lisp has never been popular. Most people just don't readily think that way. Ditto for Forth. (Forth is in interesting mixture of assembler and high level language, but that's not enough to recommend it as an introductory language.)
So I picked a selection of languages that make it easy and quick to get interesting results, and that can be done in a way that skips most of the underlying details. And a virtual machine assembler to give one the idea of what the underlying details are like. NOT to do much work in. But a simplified environment. The 8086 was too complex, and it's descendants have not only kept the complexity, they've increased it. If the dominant CPU had been the Motorola 68000, then I might not have felt so strongly that one should use a virtual machine rather than an actual assembler. That was a CPU with a fairly regular language. That said, I must admit that I don't know what the modern assemblers are like. Perhaps with an increasing address space, and 64-bit words, they have returned to a more regular and orthogonal assembler code. But if so, I haven't heard so.
I think we've pushed this "anyone can grow up to be president" thing too far.