Program Or Be Programmed
On Thursday night I gave a talk at NYU Poly and in the Q&A a young man asked me for advice for "those who aren't technical". I said he should try to get technical. The next morning I met with a bunch of Sloan Business School students doing a trek through NYC. A young woman asked me the same question. I gave her the same answer.
I don't mean that everyone should become a software engineer. I do mean that everyone should understand software engineering (or whatever technical subject/industry you want to work in). I don't speak French fluently. But when I go to France, I know enough French to speak it badly until the person on the receiving end changes the language to English.
Dennis Crowley claims to be a terrible programmer. And yet he and Naveen built the first version of Foursquare together. Their third team member was Harry and Harry's first job was to rewrite all of Dennis' code. Dennis is the kind of technical I'm talking about. Learn how to hack something together so that you can get people interested in your idea, your project, your startup. If you can do that, then you have a better chance of success.
Another great reason to "get technical" is so that you can work better with technical people. If you understand at least some of what they are doing, if you can look at their work product (the code) and understand what it is doing, if you can pick up a ticket and contribute when time is tight, then you will be seen as part of the team. And that is critical.
I haven't written code professionally in twenty-five years. The last application I built was a custom app for my mother in law's company. She ran her business on it for twenty years. I wrote simulation software for a company building ships for the US Navy. And I wrote software that ran data acquisition for a lab at MIT. I was never a great programmer. I was a hacker. But I do understand the basic concepts, I can build something. I think most everyone can get to the place I got to and I'd encourage everyone to try.
Our partner Andy wrote a great post on the USV blog announcing our investment in Codecademy. He wrapped up his post with a quote from Douglas Rushkoff. It's where I got the title of this post from and it says it well.
When human beings acquired language, we learned not just how to listen but how to speak. When we gained literacy, we learned not just how to read but how to write. And as we move into an increasingly digital reality, we must learn not just how to use programs but how to make them. In the emerging, highly programmed landscape ahead, you will either create the software or you will be the software. It's really that simple: Program, or be programmed.
I think this is a great resource for ctos to get a better understanding of code. (if not originally coders). Fantastic.
Huh? Why would a CTO NOT have a good understanding of code? They aren’t a CTO if they don’t.
Scratching my head a bit on that comment too, I was.
IMHO a CTO is more of a technical visionary, not necessarily a skilled coder….at least that is how i like to sometimes justify calling myself a CTO while being a terrible coder 🙂
I think what you described applies to a CTO of a large company where they can be removed from actual software development. But in a startup, a CTO that hasn’t gotten their hands dirty in programming will not be able to manage and coach developers properly.
yes don’t think they need to code on a daily basis but need to have done it understand it and help direct their team for solving larger complex problems. Otherwise they’d be called the CEO 🙂
CTO NO CAN DO HANDS ON WORK IS CTO THAT NOT GET WORK.
I would like to see code-academy grow into a huge network of “subject”-Academy services…For example…Fund-academy: Learn how to fund start-upsLanguage-academy: Learn any new languageDesign-academy: learn how to designClothes-academy: learn how to make/sell clothesFood-academy: learn how to cookUSV-academy: Learn how to become a portfolio company of USVFredwilson-academy: learn how to look, act and talk like Fred Wilson…Ya coding is awesome, but I want to see the “academy” name grow into more than just a coding-learning network. I want it to be integrated with all the portfolio companies, I want it to encompass all learning categories. I wanna see it grow….
great vision. but one step at a time
Codeacademy has the framework and resources to expand. If you push them to create more academies, their network as a whole will expand substantially and their brand will be deemed a “keeper” in the industry. Its a win-win for everyone: Codeacademy, Users, and the VC.
Can’t know what competitors will hop in whether in the same or other verticals for learning. Exciting? Yup. Smart to not expand into everything right away? Yup.
There are similar (offline) products for learning how to program a router, or other command-line intensive tasks. Heck, Vim has a pretty good little command-line tutorial program. Codecademy is awesome at this, I love the site. The instant reward from seeing something you typed DO something is what makes it great for me.I wouldn’t want to learn marketing or finance from a command line though.
The last 2 will have more ppl paying.
Lol I would make a freemium business model, allowing users to pay for additional information, videos, tutorials…etc Heres my personal-academy on USV and FredWilson:USV-Academy: How to get noticed? 1: TRACTION! TRACTION! TRACTION!2: Must eat, sleep, and shit ‘SOCIAL’ 3: Must be technical4: Must have an amazing new vision/productFredWilson Academy: What is he made up of? 1: Blog2: Start-ups3: Internet4: Apps5: Technology6: Droid7: Gotham Gal
Umm, the smart money would move #7 to the top. 😉
Well, I was saving the best for last..
Good answer. 😀
That is an awesome idea, sadly you have to start small. Like Fred said, give it time. The current start they have is awesome and if they keep this momentum it will be sooner rather than later.
The way I see it, the sooner they establish their presence as a MULTI-ACADEMY NETWORK, the sooner they will receive their award for creating an innovative and new idea/framework for learning online. Code-Academy created a certain way to learn online.Why limit this great way of learning to just coding? They can apply the same framework to just about anything! Cmon!!
I believe you can never loose in educating people. I live in a continent, Africa, that drastically needs education. I am not talking about a small percentage of our 700 / 800 million people, but a huge majority of our continent need education, just saying.I truly believe a screen/monitor/tablet and the web can be such a major step forward for villages, towns, cities, in Africa that dont have teachers.Its that second best option.I am bullish as one can be on educating Africa. sorry a little off the topic, but have to push where I can on this.
Exactly. Ties in with my comment on learning globally, especially Africa comes to mind.
@wmoug:disqus great comment, and totally agree
Perhaps Africa can implement the same strategy as India, offering the worlds cheapest tablet to bolster growth in education.
@conradschulman:disqus Its been close to a decade where I dream of Screen + Web helping out villages, places, town and so forth in Africa. Never as aposed to a teacher but where no teacher. Screen + Web would be that dream, and the tablet is that one device that has both. Please know that in terms of connectivity Africa still needs help, but I recently looked at how quickly Nigeria is becoming connected and it gives me hope.
where in africa are you? i am extremely bullish on africa…..the opportunity that china was 15 years ago, africa is today.
Cape Town, thanks for your great comment @kidmercury:disqus
That is what global economics have wanted. Bring cheap production to Africa.I hope it goes differently though. Safety and health need to be taken care of much better. Countries have to be accountable for the conditions of who they’re buying from. Though I think this added cost will bring back a lot of local production. It will be interesting to see what our 1st world country leaders decide is acceptable …And we need to be off of fossil fuels too within the next 100 years or we’re fucked – the good news being it’s possible.P.S. We still need fossil fuels for product production, just not to burn for energy; Even China realizes this as they’re putting in $300+ billion (to start) into renewable energy development.
yes that is what i’m working on, i think stackoverflow is positioned to do this as well. someone is going to figure out how it works — we’ll get there soon enough i think.
What I’m starting to think about myself is how society will look and leverage the skills these tools will cultivate. There’s a bit of a half-life for the amount of programmers that we’ll need. We will need ‘creatives’, with technical skills (being a plus), and having an option for third-party tools to select from for learning will allow people with different learning styles to learn what they can.We’re very much lacking on trades. I want the world to be covered in beautiful sculptures, stone buildings with amazing carvings, artwork everywhere. Nature intertwined with human structures. No pollution – physical or otherwise. AHHHHH – breathe in that fresh air, let your body relax without that car noise, and giggle as you savour some freshly picked rasberries that were growing along the walkway!
My first startup was based on an idea I had. My previous programming experience was limited to some Fortran in undergrad. I didn’t write code, and despite my endless enthusiasm, the project sputtered and died.After that I started teaching myself to code.I am now the owner and coder of my second startup. I love coding. You are creating something out of nothing. I’ll never be great, but I can now hack together a mvp for most anything I can envision. If you aren’t doing something hard, you’re probably not doing something worth much.
Yes! Programming is where the rubber meets the road. Engineering, architecture etc is at a higher level of abstraction and does not result in anything that is of demonstrable end user value no matter how smart your thinking is or how well architected your diagrams are. They need to make it to the browser and are useless on paper. You can build all the wireframes, dataflow diagrams, schemas and plans you like but if you cant code you cant make something that is usable. At the MVP level it doesn’t matter how well architected it is. The great thing about the web is that you can build something that looks like a Porsche on the outside but has the engine of a Go-Kart on the inside and when there are enough drivers to justify a new engine, you can just drop that in (i.e. Hire coders to make your sloppy code scale).I think UI/UX is also important and is the next layer up from coding. Coding + Photoshop UI/UX skills are a great combination. Coding + Photoshop UI/UX skills + Business/Marketing/Vision is lethal!
there’s also communication: doing with words what visual designers do with color and shape and images
CODE FOR RIGHT BRAIN. UX FOR LEFT BRAIN. AWESOME IS FOR ALL BRAIN. #NOLIMITSELF
First, congrats on this latest investment- another growing network of engaged users!I think the nail on the head in this post for me is “you can work better with technical people.” That is so true, and so important. If you are a non-technical founder or CEO, your thinking must be very aligned with your CTO’s or head of software development. You must understand a lot about the “what” and some of the “how” without actually doing it. If you don’t, you won’t know how to manage them properly to maximize their productivity. If you don’t, you’ll be asking them to do the wrong things because you don’t understand how software engineering works.But I see a service like Codecademy as also being useful to users in remote areas and in less developed countries. Anyone can learn programming on their own and develop a skill that can help them build a product or service that can improve their lives. That’s a greater promise that I think should be realized.
If I had to choose one single fight for Africa, education would be it.
And not just Africa. Education would improve conditions in many places around the world. Look at what the Asian University for Women is doing. Many of the students there are muslim and otherwise without access to a full education (not all, by any means), but educating women (everyone really) from troubled regions has potential for heroic benefit.
I am doing the same during my study. I knew nothing about ITIL, so I picked up an entry level degree.I new nothing about Prince2, so I bought the thinnest book explaining it. I knew nothing about ISO standards, I asked my school to purchase them and now have access to 5 of them and I understand the basics. How ever, when it comes to coding, I do know how it works and what is possible, yet I do not have the mindset to learn it. I tried it 10 years ago, keep that up for the longest time, but stopped due to it being boring in my honest opinion. And now for my startup I tried picking it up again, but cannot focus long enough to build and increase the skill. Keep in mind that I’m based in my own home on a personal laptop, which also brings a lot of different temptations .
40 years ago Robert Persig wrote Zen and the Art of Motorcycle Maintenance.
Damn good book. Especially the part about “motivation killer”
i’m bullish on this style of learning (amongst others).for ruby there’s rubykoans.com — which also installs Test Driven Development in the learner.on the web ruby and python are strong. they’re outstanding at text-processing, and have some great frameworks (rails and django for example).as good as koans is it’s not a platform and has limited capacity to grow.it’ll be interesting to see how this grows (and how big).
Started playing with Codeacademy last night and loved the gamification aspect. Dreamt of becoming more technical and hope that codeacademy is that way. Got so frustrated last night not being able to move forward, but that challenge is the hook. Think I could be a codeacademy user for sometime.
When I started OtherInbox I hadn’t programmed anything in many years, but I taught myself Ruby on Rails and built a working prototype. Then my co-founder came in and rewrote it all. But I was able to get a prototype working and start exploring the product on my own and that made a huge difference. It also makes it easier for me to stay in a designer / architect role even though I’m not actually coding anymore.
wonderful case in point Joshua. that’s the way to do it
Love the overall idea…hope it does find the connection with people to stick with it and grow their skills (we can always use more developers and hackers in the world).Combine this platform with the kickestarter platform and you’ve got the basis for changing the world.
There are so many great resources for teaching yourself or getting help from others on the net : codeacademy, skillshare, rails for zombies, Kahn academy, and tapping peeps at github, stackexchange, and quora. Amazing what’s out there!
Or as someone smarter than me said: Coding is the new literacy.
A society able to visualize and code in the primary language of nature “ORANIC POCESS LITERACY” is a society than can begin to program their own collective reality outside the puppeteering forces of top down power and wealth control.The emerging neural net of interconnected open APIs is simple a key enabling subset of a much larger social trend towards global networkable programming literacy.
my 15 yr old daughter just jumped for joy and clapped her hands (no really) and asked if she could join.She’s wanted to learn how to code ever since she read the girl with the dragon tattoo
That’s the best news I’ve heard all day. This stuff is powerful.
She’s already playing around with it — it will be interesting if it works for teenagers (although truth be told her ability set a goal and just learn it far exceeds my own)
I think it will work very if they get the game mechanics right. Khan Academy has kids who have advanced years above their level because of they’ve done this well.
Considering the popularity of that book, do you think it will become in to hack?
well truth be told she originally said she wanted to learn how to hack and we evolved it into coding 🙂
the dragon tattoo is the antidote to the social network!!!!
That’s pretty friggin awesome.
I am learning PHP now because I am most familiar with WordPress as a CMS. Just by messing with my blog constantly, I became familiar, and slowly, I wanted to know more. I’m now going through a Headfirst book and I’m surprised how much I understand and get. I want to learn Java next and have done some of the intro Codeacademy exercises. I’m excited because it seems like if you understand one language, it’s easy to hop into another. Then, of course, Ruby. For me, I am learning not just so I can hack some of my own ideas together, but also because I manage PR & Marketing at the start-up I work for. And I would never get any development resources allocated to the splash pages, and blog redesigns, and microsite campaigns I wanted to do. It was very frustrating. So over the past year, I taught myself enough where I could do all of that on my own. Which, I think, just might be invaluable for a start-up marketing department.
Smart approach Rebecca.Smart because even when you contract out work, knowing what you are buying at a detailed level makes the process your own. And you as the creative force.And smart because most marketers just don’t understand that the market is the network and that marketing is tied into distribution. Think about the power of APIs as connectors and brand builders. The more this thinking becomes part of your marketing DNA, the better.
This is how I originally learned how to code when I was 11. I used to play MUDs (multi-user dungeon games; think text-based World of Warcraft).I thought they could be better, so I found free source code (CircleMUD) and started tinkering with it. In the end there were over 10,000 custom rooms with long descriptions all written and connected to by volunteers.Fallen Shadows was its name.There was lots being contributed to it, even an awesome ASCII login screen with Fallen Shadows beautifully and elaborately drawn with text characters.This is how I ended up learning HTML/graphic design as well – I wanted a website for my game! I had learned a lot at that age, though I didn’t have any local support to help me continue, no one around to suggest how I could get help to further my ideas.Sadly it was hosted on a server someone offered me to use for free, and one day they just disappeared. I had no backups off server and they didn’t return my call. It sucked.. but after trying a few weeks to get in contact there wasn’t much more I could do.That experience has obviously been valuable and molded what I am trying to do today, and I agree that that skill you’re developing is invaluable especially to a start-up marketing department.
Sadly it was hosted on a server someone offered me to use for free, and one day they just disappeared. I had no backups off server and they didn’t return my call. It sucked.. but after trying a few weeks to get in contact there wasn’t much more I could do.That experience has obviously been valuable…what i learned from that is be skeptical of free
He was a guy who had a small hosting company helping out an 11/12 year old. There’s no good reason he ignored me and didn’t let me get a backup though.You can get burned whether something is free or if you’ve paid money.. and even with contracts involved it doesn’t really matter most of the time due to monetary cost to pursue, and time costs to pursue.Later on in life I spent a good ~$8,000 seeing if I could pursue someone for an internet company they fucked me out of owning. I spent 1 1/2 years helping the owner of the company out, not a lot but enough, with the understanding that I would be taking it over with a date set, providing them with a downpayment, $y paid back monthly out of profits until $x reached, etc.; Verbal contracts in Canada are binding so long as you can prove there were contract terms, and it was agreed upon, and some action has occurred).After spending that money, the conclusion was I had a very good chance of winning, but was it worth the minimum ~$160k it probably would take, up to 8 years – and the emotional toll, etc.. And I didn’t have $160k. It was suggested by one lawyer to use the money and time to build something bigger, better. What I learned from this? Good lawyers are good counselors, who charge a lot, and won’t really give you a firm answer as to not be liable later on.
php is awesome! you can do so much in tht lang + runtime.
Totally personal thought:I can (sort of)hack in ruby. The hacking at is the easier part. Algorithmic thinking and I/O is the hard part.And I keep seeing more stuff aimed at the (sort of) hacking rather than what makes the hacking work. It is very frustrating.
You’re one in a million, Shana.I learned to code by copying BASIC code listings out magazines with my Dad: type in a 1000 lines of code -> eventually get it to compile -> maybe have something resembling space invaders -> change a few things and see what happens. We built stuff. Building stuff is fun.Years later I got a formal CS education in university: formal methods -> discrete mathematics -> data structures -> operating systems.It took 2 years before we built any stuff. Not fun (though incredibly valuable).The attrition rate was something like half in the first year and a third again in the second year. You can still take this kind of course, and some people absolutely should, but I am so glad that most introductions now start with a few basics and then get down to the fun of building stuff. Everyone should read the Iliad, but it’s better we don’t make ’em learn ionic greek first. ;)Edit: If you really, really want to learn that stuff you can do much worse than working through SICP: http://mitpress.mit.edu/sicp/ . Finish that and you’ll be in some pretty esteemed company.
Abelson and Sussman’s Structure and Interpretation in Computer Programs is a definitively on of the best book written on subject of computer programming.It deals with LISP, that is definitively not a programing language for novice programmers, but anyone who wants to become a good programmer must learn it or at least try to understand it.By learning various computer languages one will acquire routines necessary to write decent programs (algorithms).Sometime product of your work could be opposite to the methods of the programming language you are using for your project, but it will be operational and suitable for further optimization by expert programmer.When I started programming at university (time of good old VAX minicomputers) majority of our work has been done by using “pseudo languages”. What was important was to learn how to solve the problem, design algorithms and other useful stuff.I see many young programmers that are familiar with various libraries that help them in rapid development, but are unable to write rather simple algorithms or procedures. What even worst, they have habit to change those libraries according to latest hypes, what definitively makes them average programmers with good potential but incapable of doing more complex work .
I actually quite like Scheme for teaching. It’s clean and simple, and has very few special cases. MIT switched to Python which would probably be my first choice, but idiomatic Python is a little harder to impart.
When I am a tad less busy, I probably will get through it.It was more an observational point. Another observational point is that we teach towards attrition. We could teach towards more understanding. (which I would actually prefer)It would be like teaching the Illiad so that people understand the idea of apoina without teaching them greek. Understanding its moral center is a great discussion for the rest of your life, and yes, it is hard, but it also approachable.(Oh, college, how I miss thee)
here’s some good ruby books if you get a chance to read them:http://www.informit.com/art…and rubyrogues.com is a boon.
Shana – thats because a lot of the lower level stuff is mostly ‘done’ in pc and web space ( not really, but sort of ).A great way to get practce these days in the down to the metal stuff is in embedded. Dont let any one convince you its “hard” – just go dive into arduino ( or similar ) ..and maybe C and your hacking will feel totally different 🙂
^2 for arduino. robots are cool http://letsmakerobots.com/ and lilypad is awesome http://web.media.mit.edu/~l…
Ha, that is why I did ruby to begin with. My mom is an extremely good programmer, and it makes for an interesting form of intimidation. She doesn’t know ruby 🙂
thats really cool that your mom is a programmer. ..must make for geat conversations and humor 🙂 My dad and step-dad are both programmers too ( plc’s in industrial control systems , robotics etc) …much different than what i do so we often fall back on wood working, cars and other diy when we shoot the breezeI’m going to try to get my daughters into programming – both are maker/fixers
THINK IN CODE RIGHT HARD. REQUIRE RIGHT SHAPED BRAIN.HACK CODE TOGETHER EASY, CAN DO WITH ANY SHAPED BRAIN.
these are great as well:http://openclassroom.stanfo…thanks stanford!
As a marketing guy who does software marketing, among other things, I can’t write code. But I understand how code works, the underlying logic. More important, I, by necessity, became a user interface expert. Why? Because I represent the user. Even if you don’t program, you need to know UI design. That’s where prototyping comes in. The prototype is there to test the premise of the software by giving actual users something to try out. Once proven it can be rewritten (and almost always is) to support a business model. Doing things like making it scalable is the second stage of development. Getting usability right has to come first.Startups that are entirely engineering-driven often miss this critical step.
Any other advice for biz students? Thanks!
hang out with makers not bankers
read make magazine ..start building toys
We’ve reached that point in human existence where every person will touch code at some point in their lives.We don’t all have to be good at it (we can’t..), we just have to understand it.
The nitty gritty of coding is anathema to many. Specialists in the medical field, most of the specialist in the humanities find coding a drudgery. I did my coding in Fortran, using punch cards on an IBM 1130. It was the era before the PCs and minis.As an Algo Trader, I have defined my problems in programmable terms, quitte successfully. Understanding the coding arena is more important than coding itself….like they say..to know whether an egg is good or bad you really do not need to know how to lay one !!
Codecademy is really cool- I’ve tried several times to “get technical”, by trying out online programming tutorials and various other things, but nothing ever really stuck. I’m going to give this a try and learn some more basics. It is definitely a cool format too and one that could easily extend into other domains.
I graduated from NYU-Poly with a mechanical engineering degree. At the time taking a course in C++ was mandatory but later became optional. I remember a lot of students hating that class and being unable to program well. Looking back at it now I think it was one of the best classes I’ve taken, just being able to talk a little shop with programmers goes a long way. I find myself wishing I opted to take more CS classes but there’s always CodeAcademy now. People need more early exposure in order to gravitate toward it, high schools should start adding programming to math classes and computer classes.
I’m all aboard the online education train! I’ve been taking the online Stanford Artificial Intelligence class, I’m in a masters program right now and constantly watching videos at Khan academy or youtube trying to relearn math concepts that have escaped me. Keep pushing online education!
this ai mit course is spot on (marvin minsky): http://ocw.mit.edu/courses/…i’m a massive fan of education online. it’s a great way to learn, and even a better way to relax.
^2 Khan Academy
Great synergy and lineage:I can learn on Codecademy, teach on Skillshare and help others on StackExchange.
I asked @fredwilson:disqus on #SloanNYCTrek: “As bschoolers, how can we add the most value?” I coded for 4 yrs, MIT B.S. Sharing notes from Fred’s thoughtful 2nd part of answer:- Be a product-oriented person. Scope, specs, go-to-market.- Have the expertise or talent to give us a high degree of confidence from the founding CEO.- Leadership skills. Get investors, recruit. Some may call it salesmanship, but it’s more than that. It’s having a vision, communicating it, and getting people excited about that vision.- Be likable. Be a person whom people want to see succeed.- Have tenacity. Take a punch. No matter what, to not quit.So true. Played both tech (wireframing through building) and wears-all-hats biz roles (biz dev, ops, recruiting, sales). Thanks to Fred for graciously hosting us, a true #payitforward exemplary.Rooting for fellow @zsims’ @Codecademy all the way. While his cofounder is a Columbia CS instructor, he just learned to code a year ago!
Ever since I read Patti Smith’s Just Kids, I’ve wanted my daughter to learn to code. Patti says the revolutionary tool of her generation was microphone. Not understanding what’s behind the surface of all things digital has created a huge generation/communication gap. Clearly, code is the tool for the generation now coming of age. Are there after school programs for 12 year olds?
not that we could find. we hired a private coding tutor for josh when he wanted to learn to code
Thanks, Fred! I guess Abigail and i can try the codeacademy together.seems so important!!!!! And so exciting. I’ve learned so much designing an iPad app I can hardly stand it.!Bridget
Friends of mine in India say that everyone is taught some basic coding in grade school and that was 20 years ago.l
Great post. There are those the complain about the changing world and then those that change with it. Codecademy is one of those tools that enables those who want to keep adapting with this new world we live in. I starting programming in Basic when I was 10 years old, wrote a bunch of crude games following instructions from programming magazines and then going to the local library to meet with other code writers to share ideas and 5 1/4 floppies with our weeks worth of new code. I just spent 5 minutes on Codecademy and it brought me back to those days. Love it! Can’t wait to have my kids use this!
I am not against education, but just bit of my thoughts. Everyone does not have to know how to read or write code. This is because those who has to know will know. Software developers make their money from this knowledge. If everyone knows at least how to read code and some even might be able to write a for loop printing text. Then these so called “newbies” become jobless and think they can code and spam their CV to every job posting. Some lie in the CV and even in the interview they are good. Probably read on web about how to implement fizzbuzz and such. Then us who really don’t have anything to show in CV and are not ready to lie, but actually write code daily just for themselves and maybe for friends. Will most likely drop in the CV reading part. Then only way for these people is to have contacts or use lots of time to create portfolio to get work on the field they actually are good.Everyone knowing programming lessens the value of programming knowledge.Though having knowledge of technology is good, but you do not have to be able to use the technology.Someone also replied that in this day of age pretty much everyone will have to look at code. This is so wrong. My mother, brother, sisters and most of my close friends do not know how to read or write code, but they can still use the software. Though then again they know more from other fields like breeding dogs, dating, fixing cars, etc. I respect their knowledge and I do not necessary need to know this. If I do I will ask someone who knows.For example to drive a car you do not have to know how car is built. Of course you have to know how to maintain your car, but that is quite simple if you know how to check the oil, add more oil/water if needed, test the brakes, change the tires. Car Repair man probably might have the knowledge how to build a car, but the car driver does not. Still the driver can tell the repair man/builder what the problem is. Then the repair mans job is to inspect and find what is causing the problem.This is really similar to software engineers job. User files a bug report or the software might even do it automatically and better than the user. The programmer then will inspect and find the problem and will fix this. The user of the program does not have to fix it themselves. Though in the business world the manager of the business or client of the business should know the platform the software is for. Afterwards the software developer should be able to make decision on which tools to use to write the software.Just bit of my feelings. Don’t take this harshly.
You don’t need to know exactly how a car is built, but you should understand it. This way if your car breaks down somewhere, you can have a better idea if all it did was overheat or you blew the transmission. It’s not about knowing everything, but have a better understanding of something, allows you to make more educated decisions and talk to the experts. Otherwise, a mechanic can throw in a slew of fancy words and say it’ll cost you $3k to fix, and you’ll just assume it’s true.
Yes and the point is the car is your business.When I was a kid and owned a large lawn mowing business you can better believe I learned how to fix lawn mowers.
This illustration brings it home for me.
I would say if you want to be a leader in the technology space you do.If you want to be a leading plumber who cares?Don’t get me wrong. One of my best hunting buddies is a plumber, he is unbelievably successful, wants for absolutely nothing, owns tons of land to hunt on, and I learn more about life with my time with him that I ever have from my Ivy League friends.
I can’t say that I agree with your statement about the diminishing value of programming knowledge. As people become more knowledgable and skilled in any any industry the effect is almost always positive. Actually coding is the quintessential application of this because coders are actually building something. The developer community is quite collaborative and embraces utilization of the knowledge (and work) of others. GitHub is a prime example.Understanding a technical skill set that is relevant to your business is obviously not a new concept. If you want to run a business that manufactures cars it’s probably a good idea that you have some idea about how the car is built. I think this post was aimed at those that want to create businesses, Fred simply suggested it wouldn’t hurt to spend a little time on the factory floor.
Everyone knowing programming lessens the value of programming knowledge.Nah. It converts you from a cost centre to a profit centre.
Would it be fair to say that if everyone knows programming that it moves from competitive advantage held in the hands of the few to a commodotized knowlege asset available to all? Wouldn’t productivity and efficiencies across all sectors be taken to a new level? New innovation, new jobs, new product, new services…from the largest of markets to an Etsy style market place? Many have waited years for something akin to this. Democratized profit centers. Love it.
Well, obviously everyone is NOT going to learn programming. But this is the future, and it would benefit us all to know a little bit more- especially those of us in this community, why else are we here if not to gain and share a bit of knowledge with each other? I come here so that I can stay on top of technology and be a part of it’s future. I prefer this approach rather than sitting back and letting the world around me pass by
NOT EVERYONE HAVE TO DO THING THAT GOOD FOR THEM.
There’s a nice essay called ‘The common denominator of success’ by Albert Gray (http://www.alearningaday.co… And his common denominator is that ‘Successful people formed the habit of doing things that failures don’t like to do.’
GOOD WAY TO WIN IS DO WHAT LOSERS DON’T.
Grimster, I would make a slight edit – GOOD WAY TO WIN IS TO MAKE HABIT TO DO WHAT LOSERS DON’T 😀
i’m a fan of reading an extra ~8 hours a day (or learning something new).the world is competitive. and the winnings take most.
What’s your preferred source code, FG?
I could have called that
I agree with Fred. I am a wind developer, which means I try to find good sites for wind energy projects and develop them. I have an undergrad in English lit and an MBA. I’m not an engineer, but people often ask me if I am (not because I seem smart, but because they assume that in order to do what I do one would need to be an engineer). Actually, I think it would be a waste of engineering talent for an engineer to do my job, unless they just absolutely loved it. On a daily basis I need to be able to have meaningful interactions with wind analysts (physicists and meteorologists), electrical engineers, civil engineers, wildlife biologists, RADAR experts and most recently an expert in airborne LiDAR applications. All of these people are technical experts, and then there’s me. I do have a passion for technology in general, although I never got a specialized technical education. This helps because, in order to be effective, I need to at least be able to understand what all those technical people are doing.
Best way to endear yourselves to the natives is by speaking their language. Taking the time to understand how to code, shows that you value what they do enough to make you take the time to learn it.
Programming is fairly easy to learn to some minimal level. Every tech product manager and UI/UX person should be at least minimally competent in some language.Programming and engineering are often conflated and IMO they are not the same thing. You need stone cutters and architects to build a cathedral. Most architects are passable stone cutters. Most stone cutters can’t design a cathedral.I think one of the reasons you see so many feature companies these days is that is the scope that many programmers think at.
Awesome comment Erik
Great distinction Erik.If engineers are the architecst then where does product and market design fit into this paradigm?I think you get features without benefits, product templates searching for early markets because of the thinking at times that a visualized idea is a product ready for a market.
Product defines the problem or pain point.Engineering designs the solution.Programmers implement the design.
Slight variation:Product Mgt defines the product that solves the problem or pain point.In a startup, the CTO is Engineering & she/he architects the designs of the solution.Programmers implement the design direction & suggest ideas that the CTO didn’t think of.
Two things that I know I’ve been harping on:-Sure great products solve problems, but many of them are ones we don’t even know we have. FB, Twitter, 4Square didn’t solve problems, they created platforms for expression. -For consumer products especially, the key is the interface, how you interact is what defines the value. Who are you saying holds the key to the process of discovering that?
Whoever is the Steve Jobs inside. Probably the CEO/founder initially.
I think you could create a distinction between Senior Engineers and Junior; Juniors perhaps being along the lines of stone cutters, with Senior being the architects.But did the senior engineer have the vision for the cathedral? Not necessarily, however they will be capable of reverse-engineering what a visionary is demanding and make it happen; A lot of really good products being developed right now are Tools for Developers, made by developers, who are solving a problem they had and realized there was a gap to be filled.We could add UI/UX/brand/marketing/product people as apart of the visionary’s accessible resources, who makes his/her job easier – but likely is capable in those fields themself – and hopefully very capable in at least a few. For example, Steve Jobs knew what he wanted (and apparently took credit for many ideas that weren’t official his – but that builds his image in the public’s eye), but I don’t think he knew how to use whatever design software was used to create the design / style of MacBooks. Knowing what the end destination was was Steve’s job, any visionary’s job.This whole string of people allows for lots of possible waste / inefficiencies / errors to exist, so the closer the idea / product person is to the engineer, the better; If they are one in the same, the waste and inefficiencies in transferring the ideas of end goal is minimal (though I’ll say it still exists to some extent as it’s potentially a lot for one person to manage all on one’s own). If they’re capable of creating a prototype on their own, bonus points.The people who will excel next with products are those with product development skills, and who have other interests they’re passionate about.I still think we’re in an infancy period even with product design online. In the real world, with products like Apple’s, you have a set reality. Online you have different resolutions, different screen colour settings/brightness, different devices, etc. – and getting personality and feeling to transfer into that is still at a very experimental phase, though most start-ups, especially start-ups won’t have that freedom to experiment. Experimentation time is important though. It’s what allowed Apple to create the feeling it wanted for its product, and for its marketing launch. I think they know what they’re launching 2-3 years ahead of time. That’s a beautiful amount of time to get every little detail perfect before releasing a product to the masses. A company that has/allows that freedom to explore will be able to release beautiful and useful products; It happens some now online, overall not – mind you I don’t have a crystal ball to view the products that will be released in 2-3 years.. (other than my own..)
I get your point Erik – but software is little less obvious than structural engineering…No stone mason would ever suggest adding 50 stories to a building with foundations built to support 10, but this kind of things happens all the time in the wacky world of software…So a product chappie wakes up one morning and thinks it would be totally cool to tag real life objects a là Delicious. He rushes over to tell engineering that what users really want is to point their phone at anything and tag it.This is what engineering might say (to his face):”Sure, and how do we work out what the freaking phone is pointing at? Even if we knew, how could we identify the object out of all the billions and billions of other things you could point your phone at””Real objects don’t have urls, ya know? And even if we knew all that, how do we know that this person, or tree, or freaking plate of sushi is the same or different from another tree, or person, or freaking plate of sushi..” etc…The trick in our business is identifying the intersection between problems which need to be solved, and those that are reasonably solvable.
That is why I like engineering focused product people.
I think same as you are. Indeed this article is Incredible on programmed engineering & the comments are so informative.
You nailed on the head why outsourcing development doesn’t work.Engineering needs to tell said Chappie you sir are a horses arse. Not yes boss, whatever you say boss.
The role of the “design thinker” needs to be included in the equation. Anthropological studies of those who are good at it reveals that they know a lot about everything (programming included in our times). Leonardo, Ive, Dyson, Palladio….
The idea is to get the ability to create concepts for products into a larger and more diverse group of people. The end product is more important then knowing how to code. This Canadian company has been creating tools to do that for the past 4 years.http://www.prnewswire.com/n…
I wrote about this last April. http://asalesguy.com/2010/0…I’ve been using Codecademy for several months now. Got stuck in a session, need to go back and get “unstuck” I loved the idea of Codecademy the minute i heard about it. I have been searching the Interent for years to find easy ways to learn to code. I hope they add additional languages, and make it more of a game. My biggest problem was I didn’t have context for what I was coding. I need to see the big picture as well as the micro view. It’s just how I learn. Congrats Fred! Great investment, I’m excited and curious to see where this can go.
They will add more languages soon
WOW BEST POST EVER !This is literally going yo eat up my whole day !
As a non technical founder when I need to learn about coding, I find existing sites that look and function similar to what I have in mind for my own site. Then I pull up their source code using Ctrl+U and view what language the structure of the site was constructed, what API’s are being run and other information that will allow me to see the real world application of the code in a manner that is relevant to my needs. Once I have that information I use Google, Mashable, Wikipedia, AVC, etc….. to do more in depth research on the information and how I can use what I have learned to articulate my idea to a technical person. Personally I think it cuts years off the learning curve and gives an advantage to any non technical entrepreneurs who are scared to enter the start up game because their not programmers. Besides, the best entrepreneurs and CEO’s dont seem to be the most technically advanced.
If Codeacademy turns out to be half as useful as Stack then you will have scored big time.I love Stackoverflow, it’s the ultimate in the pay it forward economy.
I think that stackoverflow is the greatest programming resource ever.
Very true Fred. I read about your investment in Codecademy yesterday and already bookmarked the site – like you, I used to be a coder, but haven’t done it actively in about 15 years. I think I was a little more than hacker then (my colleagues then may disagree :-), but I’m certainly no more than a hacker now. But I’m rusty, and I plan to play around at Codecademy and see if the “juices” start flowing again. Looks like a great company and investment. I hope it works out!
On the education side of things, rather than everyone learning to program a more appropriate idea is for everyone to learn computational thinking. This is the concept of integrating and extending human thinking with the capabilities of computers. The Wikipedia page on this is: http://en.wikipedia.org/wik…Computational thinking is appropriate even at the elementary school level. Scratch, from the MIT Media Lab, is a programming environment with related curriculum materials for K-12 education that focus on computational thinking. Scratch also is used for a small slice of Harvard’s CS 50 course.A computational thinking foundation leads right into programming, but also building financial models in Excel, data analysis for medical or market research, and so on, stuff that isn’t typically thought of as programming.I am a huge fan of programming as well, and am very happy to see resources such as Codecademy out there adding to our global skills base.
when solving complex problems: decomposition == powerful.
code has massive amounts of leverage; what you give in code you get back 10x.
i think the “or” in the title of the post is a bitwise OR ..vs logical or exclusive.so,program = 0x1be_programmed = 0x2program_or_be_programmed = program | be_programmedha! +3 for the investment in codecademy 😉
Program, or be programmed.When I was in school, I waited tables and got the advice: work the table, don’t let the table work you. By which they meant, if one person asks for a class of water bring water to everyone at the table. If you’re the biz monkey or product marketing person and you don’t understand the technology at a broad, but shallower than an engineer, the engineer is really the one make decisions. I’ve seen so many pure marketing types told something couldn’t be done when in fact it could. The engineers always hated me for going back to my desk and demonstrating that it could in fact be done.
I love it!
you’ll find me waxing lyrical about code, but it occurs to me that when you’re in the web app business you’re really in the people business. people write the code.the future of computing isn’t with mass programming, it’s in making the programming go away. it’s interacting with computers on human terms, not on computer terms.it’s adding sugar to the communication not making it more sour.if everyone could program and our environment was programable it would be chaos!should all founders/C-level know a bit about programming? if you don’t want conceptual gaps, yes. if you don’t want lexical gaps, yes. if you don’t want fundamental product knowledge gaps, yes.
Great post. I’m currently taking Design classes because I believe it would help me be a better Tech CEO. Even though it’s hard for me to focus right now, I know that taking these classes is the best thing I could do for my future business self.I always joke about being a “Jack of all trade but a master of none”, but sometimes you don’t have to master everything, just do it well enough to get results.
P.S. I’m currently trying Codecademy…I think I’m in Love! I see me using it every day. I’m going to add it to my schedule to at least learn coding on Codecademy for at least 30 mins/hour per day.
Nice post. I have typically been the same way w/r/t Jack / Master. I know a little bit about a lot of things, but I am hardly a master at anything. I think being a “generalist” is fine because it suits my personality well, but ultimately, it will depend on whether I am a CEO that can implement those general skills. If not, then it is a bit less helpful to be a non-specialist.I started Code Academy the other day too. 30 minutes a day sounds sensible, I will shoot for that too. Good luck
Thanks for the comment. Good Luck to you too.
Computer science is not necessarily about coding, or even about computers or software. It is primarily about problem solving, and codifying “imperative knowledge”. It is the study of processes, and how to formally describe how to do things correctly or efficiently. That type of education can be application everywhere, especially as the world becomes more complicated. Things like Rube Goldberg financial systems, global markets, increasing amounts of data, terrorism, climate change, etc. It is also about using abstraction to deal with complexity. It’s not just about coding. In the future a foundation of all higher education may be something very much like computer science, but not just about coding.
Flopping that around just a little? Coding is not necessarily about computer science.Coding at its most generic is a cross level mind seta cross level collective metaphora cross level collective lexicona cross level platform strategya cross level reusable reuse paradigma cross level social rocket-fuel memeempowering everyoneat every levelto think and visualizeeverything and everybodyas potential component process elementsthat with the right scale of coding/assemblage toolsempowers the orchestrated arrangementof everything and everybodyinto standing wavesof network synchronized behaviours all with network-syncopatedpurpose driven gravity-well-feedbacksThe magic of course is all in the network organizing principle3D webs of syncopated synchronicityEverything is about coding at some level of networked signalling and homing control.PROGRAM, OR BE PROGRAMMEDDoesn’t just operate at the tech management level. It works all the way up the social stack.We are being programmed by those who know how to operate the money coding system that is political lobbying.We are being programmed by those who know how to operate Madison Avenue style public-perception-management coding systems.Point in case is Fred’s last post about the content industry reprogramming our DMCA platform into their self-serving Protect-IP platform.It is about more than just acquiring alpha-dog access to coding skills or a good superficial characterization for management purposes. It is about defining platform coding rules that at every level, technical, social and political, strive to democratize, to optimize, around an open and accessible reuse assemblage process.i.e. – not Google – not Facebook – not Apple – not etc. . . .IN SUCH A DREAM WORLDpoor amateur-coding saps like me could at least live the hope of hopes that some day soon the democracy inspired alfa-dog coding types out there would have a top-down beachhead for building high level social assemblage tools for the rest of us.
“I must create a system, or be enslaved by another man’s”- William Blake c.1820
The magic of the Internet – we can all be autodidacts now.
“Learn how to hack something together so that you can get people interested in your idea, your project, your startup.”I think this is great advice and what you will find is it will allow you to iterate much quicker than if you have to go through a third party (even if you can afford to go through a third party). You can start small and build. If you can pick up some basic design skills even better.One thing though that I would really caution is not to go live unless you have a through understanding of the security issues involved with taking input over the web with your application (if that is in fact what you will be doing). When you *laugh* when reading this cartoon you will at least be part way there, but it will still not be “time for you to (launch)leave”:http://xkcd.com/327/(skip to 35 second mark):http://www.youtube.com/watc…
“Program, or be programmed” is a catchy slogan, kind of like“real men code in FORTRAN” or “startupsdon’t need a marketing budget.”Cross-training is useful no matter what your professionalfocus may be. And a taste of ‘hello world’ programming can’t hurt (R.I.P. Dennis Ritchey). But I’dargue that the industry doesn’t need more people who think like programmers, itneeds more programmers who think like regular people.Here’s what Steve Jobs observed:“Creativity is just connectingthings. When you ask a creative person how they did something, they may feel alittle guilty because they didn’t really do it, they just saw something. Itseemed obvious to them after awhile. That’s because they were able to connectexperiences they’ve had and synthesize new things. And the reason they wereable to do that was that they’ve had more experiences or have thought moreabout their experiences than other people have. Unfortunately, that’s too rarea commodity.A lot of people in ourindustry haven’t had very diverse experiences. They don’t have enough dots toconnect, and they end up with very linear solutions, without a broadperspective on the problem. The broader one’s understanding of the humanexperience, the better designs we will have.” – Steve JobsYou see this thinking at breakthrough companies like Pixar (http://www.wired.com/wired/…) and Apple.So how about a discussion on the need for cross-training forprogrammers, and the CTO aligning with the CMO?
I very much agree with the sentiment.
Much of the work that is done in any technical field can be automated to some extent, but the world isn’t saturated with programmers. As languages becoming easier to use (scripting languages are far more pleasurable to leverage, than lower level languages), non-specialized developers will automate their daily pain away.That’s not to say that all work is possible to automate, but there’s enough new work that emerges in a changing environment to provide ample opportunity to be reduced to a script. My latest script hack will save me 20-30 minutes (or more) every time I have to port our work libraries to a different operating system or build platform. Sometime last year I did something similar with my music playlists by refreshing and moving them about.
We need the founders who can see how the end application will work.Doesn’t matter if he can’t code if his life depended on it…that’s for those who have the ability to make what the founder sees.
This is my first comment to this blog that I have been following daily for the last few months. I have hesitated because the quality of comments is on par with the quality of the posts (brilliant) and I’ve frankly been a little intimidated!I am thrilled to hear that USV has backed CodeAcademy. Last week I Googled “learn to code”, found this CA site and began the tutorials immediately. I have never written a line of code in my life (I’m 41) but am spending so much time in the tech world now that I thought I better learn the native tongue. So far I like the CA approach – dead simple. The one thing I’d like to see integrated is some illumination as to what it is I’ll be able to do when my coursework is complete.I am a CPG marketer, former beverage entrepreneur, and now tech intrapreneur that is treating digital/social like the disruption to my discipline that I believe it to be. I’ve been reading almost a book a week and following a dozen blogs of thought leaders like Fred and many others in an attempt to better grasp the magnitude of what this tech revolution will mean going forward. To this end, I’ll throw out a request to the community:What are the books/blogs I should read to accelerate my coding apprenticeship as I continue my CodeAcademy studies?–Keep in mind that I could not be more green.What are the books/blogs I should read to accelerate my understanding of tech as a disruption and how to practically harness? – Innovator’s Dilemma and Lean Start-up were my two most recent reads, but I suspect there are many more you all love.I look forward to taking a more active role in the community and will now continue to contribute until such time as FakeGrimlock threatens my life.Many thanksDuane
First off, welcome.Secondly: if you want deep, I would say Carlotta Perez or Marshall mcluhan. If you want a bit more businessy, I have heard good things about Rework by the people at 37signals.Thirdly: comment more, and you’ll be surprised by how smart you are.Sent from a phone, forwarned
Thanks ShanaI found Rework to be as entertaining as it was substantive.And thanks for the comment encouragement – I can’t wait to be surprised!Duane
If you’re serious about a coding apprenticeship, try Zed Shaw’s http://learnpythonthehardwa…
Thank you CamI’ll check it out. Do you recommend getting comfortable with Java (CA) first so that I can get the basics?Duane
Got it (kinda), thanksI think this will be one of those leap of faith exercises, trusting that over time it will all come together and make some sense. Thank you for taking the time to explain further–much appreciatedDuane
welcome to commenting and coding duanethey compliment each other well
Thank you FredAnd thank you for creating such a rich environment here.Duane
Codeacademy is exACTLY what i have been looking for.I have seen the need for a while, but not gotten around to learning by myself. I hope after a bit of this i will parle tres bien le Francais. ;-)Thank you for this.
I’ve deployed code to our servers (and it even worked), but I’m convinced that it’s equally important to understand the theory of software and how different layers work together.Nearly five years ago, I had been recruited into a financial services company to lead global product development (this was my last job). About 90 days in, I convene a meeting to discuss what we wanted to accomplish with the UI for a new product.A couple of the engineers sat back and said “we can’t really do that…it’ll never work.”So I got up, walked over to the whiteboard, and diagrammed how we’d build it.I didn’t know the syntax to type into the IDE. But I was able to demonstrate that I knew when they were BSing me and when they weren’t, and that I knew what would work and what wouldn’t.From that moment on, I never got that answer in another product meeting.
awesome. i took the physics for poets class in college; same idea
In the light of this discussion, I thought it might be interesting to refer to the readers the work that barefoot college(http://en.wikipedia.org/wik… is doing training women in India and Africa do solar installations to handle basic energy requirements.
The ‘hack your own stuff’ advice is a good one.However, you have to reckon that the Foursquare guys are fairly exceptional people.Say for example, if you’re an entrepreneur who isn’t an MBA and lacks business administration experience, learning both business administration and hacking (even if minimally) makes your process a lot slower. It’s *always* better to have a complementary set of skills between two partners.If you don’t have partners with a complementary skillset, you are learning business and you’re not a hacker, it’s probably better to learn web design quickly enough to produce decent, near functional mockups, doing product design through UX, and +really+ look for a business partner who is technically orientated.Just my two cents.
Amen. Learning how to program is actually one of my goals for this year. (The other is running a marathon. And oh yes, having a kid, succeeding professionally and all that.)It’s also great to see USV invest so much in education. You talked a good game for a long time on your blog about education being a big opportunity online, but I never saw any investment. I didn’t doubt you, but it was a bit frustrating to not see that being carried out. And then came Edmodo, Skillshare, and now Codecademy. Awesome. Big kudos.
and one more that we’ve closed recently and will announce shortlywe needed to create an investment thesis, vet it, talk it up, generate deal flow, see a lot of teams and ideas, and get domain expertise before writing checksthat’s the best way to generate good returns
Awesome, can’t wait.Also, adding your second paragraph to my Tumblr as a quote because it’s such a good one.
Your last statement is very telling & so true. Knowing your model around your thesis really well is key to successful Seed & Series A.
As a CEO who learned to code so that I could launch our site alpha and get funding, I’ve been recently surprised by how valuable that set of skills is many months after launch. I define my job as being able to carry and communicate the company vision, being able to assemble the right team to implement that vision, and being able to inspire that team. I’m responsible to identify and explore changes in strategy when necessary, to “sell” the first several customers, and to identify and involve our partners.When I put it like that, it’s clear that I simply couldn’t do my job without the basic understading of software I’d gained in the months I spent first developing our product. I wouldn’t be able to understand or evaluate pivots in strategy, hire coders effectively, understand a platform-based vision, or select the right partners. In point of fact, I suspect I also wouldn’t have been able to raise our initial funds.Like Dennis, the first two coders I’d hired were brought on to re-do what I’d re-written. My principle regret is that we hadn’t immediately started on the next version – though I’d written the initial site in Rails, I hadn’t really understood REST and had made a few assumptions that were hard to reverse later.As a final note, I did this out in Pittsburgh, PA, and I don’t think it was “ValleyThink” or cultural momentum that led me this – it was just pure pragmatism.
we just made our first investment in pittsburgh. we hope to do more. black and yellow baby! so nice to see them thump the pats yesterday.
You sir, are a gentleman and a scholar.
Pittsburgh’s startup community is so vibrant and exploding in popularity. There’s a lot of talented people with great ideas. It’s a very affordable city in which to live and in which to start and own a business.
A CEO who can program is more likely to understand how their company fits into the big picture and use their bully pulpit to make the hard decisions. There’s a great Quora thread on this topic.My first exposure to Pittsburgh’s tech community was with a young Marc Ewing who was still attending CMU, and had yet to start Red Hat. It’s great to see universities like CMU and Cornell seeding the thought leaders of tomorrow.
Thanks for the inspiration, I’m going to be picking up coding shortly! As a Clevelander I’m a little bummed about the Pittsburgh thing, but…
I’ve been coming across this suggestion a lot lately in my readings on how to find a technical co-founder, and I’m seriously contemplating committing some some time to learn to code. In fact, I was just telling a friend of mine a few days ago about Codeacademy. My question is: how much time would you suggest for an aspiring entrepreneur to invest in learning to code rather than using that time to focus on finding ways to get one’s product launched? If I could get a basic prototype of my idea built while looking for a technical co-founder, should I be spending so much time learning to code, especially if I will not be coding later on? I agree that as a founder it is invaluable to understand the inner working of one’s product. I just debate what is the most efficient use of one’s time.
Fred – thanks for this follow up post. I am the young man you refer to in the opening sentence. Part of the impetus for the question is because I’ve been doing a lot of thinking about my future lately. I’m 25 years old, and have my entire professional career ahead of me. I have a blank canvas on which to paint my future, and the willingness to learn and study and work for what I want. But I’ve had trouble deciding what to pursue after I finish grad school. What space do I want to work in? What skills should I be learning right now? What world am I going to call my home? I’ve recently decided that that tech / entrepreneurship / VC is exactly the space I want to pursue, and to that end, I’m looking to build and refine skills that will help me get where I want to be. And your advice to me – become technical – is a really good place to start. I just discovered your blog a month or so ago. The comments section here is outstanding. It’s not everyday that a group of Subject Matter Experts congregates to discuss both the fundamental and cutting edge issues in a certain field. I feel like I’ve found that here, and to the extent that I feel like I have something to contribute, I plan to be more of a regular around here.
Amazing. I started playing with it just to check it out and spent 4 hours doing the JS course on my day off 😉
I think we who are adept have an inherent duty to spread our knowledge and lower the barrier to entry into our field. Aye, we desire competent programmers with a knowledge base sufficient for the position for which we would like to hire them. However, as all who are masters were once students, we most certainly have the knowledge to foster the pedagogical/androgogical methods which aided us in our thirst for knowledge and eschew those which were unproductive or so rarely used that they’re pointless to learn in any academic setting except special classes at a professional level.Fantastic tools such as Alice  and Hackey Hack  have lowered the barrier to entry for new programmers. Open source projects are the next logical progression for programmers who wish to hone development skills and become engineers and architects. More tools like these two, or further lessons taught using these two are crucial to educating a generation of future young coworkers and successors capable of filling our shoes and getting new ones fitted as the proverbial foot of the field and its position grows.: http://www.alice.org/: http://hackety-hack.com/
I’d love to see @FakeGrimlock:disqus write their own version of this post.
The ability to “hack something together,” should begin at a young age and within the context of public education. The kids I interviewed for a piece on hacking learned on their own, and what they cobbled together off of Google wasn’t exactly skilled coding. (Hacking Education http://ow.ly/7e9DO) When asked to describe tech classes at his school, a 15-year-old who’s created several apps now in the App Store told me they teach Microsoft Office – the 2002 version at that. He was lucky enough to have parents who hooked him up with the Apple Developer’s program, but what about the others, especially the great percentage from families who have no computer at home nor Web access?What could the VC community do to address the lack of programming education in schools?
I totally agree
Interesting.Similarly, I haven’t coded in some 20 years, and I stopped at Cobol(!) – tried C for a while but by then my work was becoming more business oriented and so never really got into the more contemporary stuff such as C.However, the benefits of understanding the principles of coding (in any discipline) are many.I loved growing with Unix and used shell programming and SQL a heck of a lot during many start up scenarios subsequently – whilst not programming as such it definitely reinforced the benefits in evolving a start up if one has some technical empathy – not least of which in terms of having to be a Jack of All Trades in the early days – head of sales, development, support, etc(!).Funny how – relatively – so little software is installed by a specialist nowadays – just legacy enterprise stuff, really. This obviates the need for a heck of a lot of technical effort being expended on installing/pre-sales/testing, etc. Wow, thinking back I spent so much time doing that stuff in the 80s/90s – each environment different, etc, etc – compiling X Windows fonts being a ‘favourite’ (sic) ;-)Means ones technical skills now, no matter how limited, can be focused on the product, the end user experience, market success. That’s a great thing.
I’m a non-technical co-founder in an educational startup. I tried Codecademy and found it fun. It’s incredibly cool to be able to jump into the deep end immediately and start doing actual JS code even before registering on the site. I thought the bite-sized progressiveness of the exercices worked really well and found the whole thing rewarding and addictive. But I got a pretty negative reaction when I showed the site to my technical co-founder. Basically, he thought that it would be far better to explain basic concepts to beginners in a more didactic fashion (how computer software works, what’s a variable, what’s a string etc…) and use an ad hoc programming language that would make it easier to explain the fundamental concepts. He was very unsure that a newbie would acquire this understanding by using Codecademy… Wonder if anyone else with a tech background feels the same way?
I couldn’t agree more. Getting (at least partially) technical is key. For this reason I spend the nights of the last few months getting better at Ruby, Rails while taking AI/Machine Learning classes at Stanford. Understanding programming and technologies is mandatory for ANY CEO, and given the wealth of learning tools that are now available (including CodeAcademy), there is simply no excuse to get anyone interested up and running.If Roy Bahat finds the time to do it – so can you: http://also.roybahat.com/po…
I love all the investments in education, and this one is perhaps the most obvious, since a place like Codecademy is a potential training ground for your future entrepreneurs. I agree that too many wannabe entrepreneurs (myself included) have fretted about how to find the mythical “technical co-founder” when they could be doing themselves a big favor and start learning some code. For most people, that’s daunting, so anything that strips away the “it’s only for computer nerds” stigma is great thing. I’ve managed to learn some HTML/CSS and Python ever since I realized that. And I was an English major.
Undoubtedly the best advice possible for a “business person” interested in startups. Not only does it help you ship faster, it is massive for gaining buy-in from stronger developers — they respect you more, and at the same time they can’t help but fix something that is neat but done poorly 🙂
I like the idea of Codeacademy, but I don’t like the larger argument that programming should be thought of as a fundamental human skill. Maybe a business skill, in some contexts.So, disagreement:http://www.scpr.org/blogs/e…
I think this applies for funders as much as it does for founders (if not more). It can only help: being able to gauge the skill of the developers on a team is obviously highly valuable, but even a more elementary appreciation for the process of developers is, I expect, invaluable. I am fully aware that I have a lot to learn. That’s why I started taking classes on programming….well, that, and I don’t want the developers to have *all* the fun 😉
Thanks for this post. I finished at Haas-Berkeley last year before starting Modify. A bunch of b-school buddies and I have *known* this to be true, but we’re focused on the business side of our startups. I forwarded your post to everyone, hopefully it’ll light a fire under our you-know-whats 🙂
As an ex web dev who hasn’t fired up a browser in anger in more than 3 years, this post really resonates: thank you.Here in Ireland there’s a great grassroots initiative called Coder Dojo (http://coderdojo.com/), started by an 18 year-old entrepreneur (http://twitter.com/jwelton), and backed by a seasoned VC (http://twitter.com/liaonet) – they’re running free coder camps for kids of all ages, resources are donated by local universities and private industry. I can’t wait until my kids are old enough to attend 🙂
Great post Fred! When reading this, I thought of our own program in Chicago called Code Academy (http://codeacademy.org), you should check it out sometime. What you describe in this post is pretty much exactly what we are trying to do. We have CEO of startups, we have MBAs, we have people who want to be software developers, and we have people who just want know how to build things for fun.
I agree… As a designer, I must know the language that drives my work. I’m a decent code hacker, but I recognize and value good code and seek out development partners who value my work as well.
we put up the vast majority of the fundswe are the lead investor
Good point/question Paul. I was the lead organizer of the Sloan trek and the message Fred gave us was one we heard throughout New York City. I don’t think (hope) anyone on the trek was surprised by the message, but the point was clear.The general sense I got from Fred and others was not that you need to learn to program and build the prototype yourself and then never write code again. But there has to be some level of proficiency (French language in Fred’s example) to a) start the conversation and b) be able to credibly have meaningful and useful conversations with the group of employees that you will be working with 24/7 for the first 6 months. It was the same message we got from John Borthwick at Betaworks who said “who here knows what the LAMP stack is and what it means for your business?” I will never be able to put together the stack but at least I know what it means and the basic ramifications and some of the tradeoffs of using it.I was recently talking with a friend of mine who is looking to bring a jewelry distribution company online in a B2B or B2C e-commerce capacity. I told him that since he already had inventory/fulfillment, he needed to get up to speed in the online marketing/e-commerce channels of the world, meaning he should be buying AdWords, understanding cost-per-acquisition, exploring the Amazon platform, etc. Not so much so that he would one day be the best online marketer in the world (or even generally proficient), but so that when he went to hire the best online marketer in the world he at least was speaking the same language.Paul — your point is extremely well taken. Especially in a condensed and intense time period like an MBA program where you may not have 6 months to devote singularly to one specific skill. I didn’t get the idea though from the people we met on our trip that that was the exact message they were trying to deliver. Fred made it clear to us that he knows not everyone is technical and not everyone is a coder. But you have to start somewhere and that somewhere is being able to credibly talk with the people who are building your first product (as you order dinner, write product specs, mop the floor, and do the Quickbooks) Maybe Fred can chime in here for a clarification.And Fred, thanks again for having us. We had a blast!
You can’t lead people unless you’ve walked in their shoes.I’d agree about the target customer.I would disagree at the executive recruiter more than would be polite to discuss here.Suffice to say people like being recruited by people that actually know what they do, see point 1.
UNDERSTAND CODE IS SKILL WILL USE FOR REST OF LIFE.THAT WHY.
Good points. Pleasantly surprised to see shadowing a top flight executive recruiter as an option that you suggest and obviously (from previous comments) you have the breadth of knowledge for this suggestion to be meaningful. Few people understand the vast and sometimes deep business/marketplace education required by this field if doing the job right and especially the business acumen necessary. Although “top flight” is an important distinction. At this level, the recruiter’s (search consultant’s) focus is well beyond the mechanics/transaction and is more on strategy.
“Why not spend 6 months embedding yourself with your target customer?”I think any advice always needs to be tailored to the exact details of the specific situation. What you are saying reminds me of when I was growing up people would say “a law degree is always a good thing to have”.To which I replied “it takes three years”.It certainly didn’t make sense to spend 3 years in law school unless you were going to be practicing as an attorney or involved in a job that specifically required that type of legal background. And from my experience thinking like an attorney can be quite restrictive in business.
Because if the founder of a software company can build a functional prototype of the system then engineering will build the real version in a few months because the mistakes will mostly be made and solved in the prototyping process. If he has to iterate back and forth through the baby steps of the horrible first drafts of the prototyping process with an engineering team trying to explain what it is they are building it will take three times as long and cost 10 times as much.
I’m an MBA who’s attempted to start a different couple companies. The first was a bit of a nightmare for several reasons, but perhaps the most important was that I didn’t know how to write a line of code. Ultimately, it was a language problem–Fred makes the point perfectly in the post. Vision or no, if there’s a translation problem none of that matters.The second is enjoying some modicum of success, but it’s clearly miles ahead of the first. The major difference for me, besides having failed and learned from a few other mistakes along the way, was that I took a few months and taught myself html, css, and a little ruby and rails before I got started. I still don’t know enough for my co-founder to fully trust me to make a commit, but I know enough to converse with him. I know enough to put together mockups and speak intelligently about some of the things he’s working on. It’s truly made a huge amount of difference, both in my relationship with the rest of my team, and ultimately with the quality of the product we’re building. And, to be completely honest, an MBA doesn’t teach you all that much about starting a company. It teaches you how to run one that’s established, and some math and stuff, but it doesn’t teach you how to start a company. It takes being in the arena for that…So, my two cents is to take the six months and learn the language. You’ll be less likely to fail, and if you do you’ll be able to take on the next challenge with a skill set that really matters–you will have failed and you’ll know how to code.
i enjoyed it too michael
i totally agree about leading by example and having walked in their shoes my dad was a military man and he knows a lot about leadershiphe always made it clear that you have to lead by doing and that you can’t ask someone to do what you haven’t done
Suffice to say people like being recruited by people that actually know what they dogroupon tried to hire david heinemeier hansson not knowing who he was, and asked him to forward a current resume over so they could take a look. clowns.https://gist.github.com/128…
You equate recruiting with leading?
Ok, that is an all time classic, and shows what I think of recruiters.Recruiter: How much experience do you have with Ruby on Rails? David: Ummm, other than the fact I invented it, I suppose not much. You can’t make that stuff up.
In all fairness, this seems like a fairly junior level recruiter and someone more focused on sourcing. They don’t necessarily have industry knowledge or an understanding of the marketplace, or even business acumen. They are just filling up the pipeline with names.
NodeJS is platform with huge potential that I hope won’t finish broken into thousands of libraries that are helpful but may make use of core platform more complicated than it should be. As a developer you don’t wont to spend your precious time in finding suitable library for your project, or after a months of work getting to the clue that chosen stack is not most appropriate for the project you are working on. I would rather see Ryan Dahl implementing necessary stuff in NodeJS then this stuff solved through the libraries. Or better, I would like to see major libraries coupled into the NodeJS. It’s much easier for fixing errors, avoids code redundancies and makes platform stronger. In case of NodeJS it means keeping it more propulsive and astonishingly fast, that is its major characteristic.
“Type & learn. Don’t copy and paste.”100% second that. (what I’ve always done). Sometimes I take it further simply looking at the logic for a second, and then figuring out what needs to be done without looking at the full code.Typing also inevitably results in typos and then you spend time hunting down the typos which helps with memorization and learning as well.
I did do that. What I’m realizing is that it is a partially different skill set.
My top job is recruiting. Period. End of statement. Full stop.You know why the Lady Vols, and UConn, kick ass every year????In college the players pick the coach. Same as at tech companies. Why do you think Pat Summitt is the winningest coach ever? Hell she now admits she is battling dementia….think about that. Think about that!If my gals kick your gals I win EVERY time.
That’s great advice guys, thanks. As some one who is just starting Code Academy and trying to teach myself the basics, the typos have already been a fun way to check over my work and figure out what went wrong.
I always like to look at the psychology of things. So additionally:I think an advantage of having walked in someone’s shoes is *then they know* that *you can truly appreciate* the great job they are doing. Because you understand.It’s a little of a letdown to put so much effort into something and then feel that the boss is actually clueless to how much effort it actually takes to achieve the desired result. If you’ve never done the job, the compliments you give can be a little hollow.
“God only helps those who help themselves” = you’re much more likely to gain the respect and actions of a programmer, if you start by giving a true effort at, what may even seem, an impossible task.Lead by doing.
I am an MBA and have worked for close to a decade now on Tech. I have individually spoken and converted 300 non-techie SME owners into customers of opensource-based development initiatives and have managed a team of 10 smart engineers who developed a Skype like product in 2003 (my idea). I am doing it again with a college grad coder who is doing a proto for my startup. I am very involved in design and functioning of things.I dont code nor do I understand it when I read it. But I can surely say how many hours it takes to hack something together and I would be reasonably right.We need to communicate in a credible manner with programers and knowing to code is just one way (and perhaps not the best RoI way, as I have experienced myself 3 times now).
Thank you CharlieI see that site has come-up in a few other posts as well. I’ll check it out.Duane
Thanks for explaining further, Phil. Too bad you are not more passionate about this. ;)I think I understand the connection you were making between “You can’t lead people unless you’ve walked in their shoes.” and “Suffice to say people like being recruited by people that actually know what they do.”Sounds like you have had some bad experiences with recruiters. Since you take recruiting so seriously, I can understand why it especially bothers you when it’s done shabbily. Me too, Phil. Me, too.
I am sorry if I have offended you.Like a lot of things here we state in absolutes when of course there are grays.Looking at your site it seems you are more on a “recruiting consultant” rather than a recruiter.If somebody want to hire an outside person to help setup a process, stick to the process, and get better at the process, I am all for it.If it is collecting resumes through surreptious ways (like getting the new hire to send you the directory of company after you’ve placed somebody there), overstating qualifications to employers, generally not caring more about the process than a used car salesman, All of which I’ve experienced yes I would say it bothers me.So just like sales where I am all for getting outside coaching, great.