VCs Who Code

I'm going to stop by Google I/O in SF this afternoon to see this panel (yes, a panel) of VCs that Google has assembled. The common trait among all of them is they write code or at least they used to write code for a living. Here's the list:

– my partner Albert Wenger

Brad Feld

Dave McClure

Paul Graham

Chris Dixon

I am a big fan of "VCs Who Code." I wrote software for a living very briefly during college and before business school and have a basic understanding of the process. But that was 25 years ago and modern software development is fairly different from what I did back then. I used punch cards in one of my jobs.

Software development is the foundational technology for everything that we invest in. And so having people in the venture industry who have their heads wrapped around software engineering is a very good thing.

Our firm has benefitted in many ways since Albert joined us full-time two and a half years ago. But one of the most important ways that we have benefitted is that our comfort with technology risks and technology issues has gone way up. You have to take risks to make money in the venture business. But you also have to understand the risks, asses their magnitude, and figure out how to mitigate them. The more technical chops you have in your partnership, the better off you will be.

It's also true that I have deep respect for every one of the investors on the panel this afternoon. Each of them is a superstar and they are among the most innovative and thoughtful VCs in the business right now. I wonder if that is derivative of their early years writing code? I suspect it may well be.

Enhanced by Zemanta

#VC & Technology

Comments (Archived):

  1. Dave Goldberg

    Hi Fred,What’s your opinion on the need for entrepreneurs ability to code?

    1. fredwilson

      someone on the team needs to be able to write codeyou can’t outsource your most important ingredient for success

      1. David Binetti

        Is that still true? Many would argue (including Dave McClure) that in a Web 2.0 world of well-known frameworks that user-experience design, not coding, is the most important ingredient for success. I agree that someone needs to be able to write what is designed, but that is a (relatively) trivial exercise. {Author’s Note: Keeping the original language to own up, but in retrospect and from comments below referring to engineering as a “trivial exercise” was really, really stupid.}

        1. ErikSchwartz

          It needs to be an iterative process. If the guy thinking of the iterations is different from the guy implementing the iterations you a) slow down the cycle, and b) introduce error to the process.You absolutely do NOT need to be able to write scalable, efficient code. You totally need to have a tool kit at your disposal that allows you to express the ideas in your head as software.

          1. Joe Siewert

            Great points.

          2. Tereza

            That’s my feeling. To me, it’s the speed of the iterating and also that I want to have absolute confidence in the integrity of what lies beneath. Or, at least to know where the bodies are buried…

          3. David Binetti

            I wholeheartedly agree that rapid iteration tested against market reality is the key to success. I’m not convinced that they need to be the same person, but I’m not making a statement on outsourcing. My core point is that design is replacing coding as the critical skill to a startup (and I’m deliberately over-stating it for emphasis.)

          4. ErikSchwartz

            I am still a big fan of Jared Spool’s lo-fi rapid prototypes.Hypercard and supercard were terrific tools for rapid prototyping back in the day.RunRev works great now.

        2. fredwilson

          I think of front end work as coding

          1. David Semeria

            Frequently the front-end stuff is tricker than the more highly-regarded back-end.Back-end code is all shiny and neat. Front-end code is like being knee deep in crap, thanks to browser incompatibilities and, more generally, trying to write applications in an environment designed for documents.

        3. Elusive D

          I lurk often as the comments tend to be quite interesting. But this here post has brought me out of the shadows because I take offence to it. I am going to say you are wrong but not for why you will likely think. You bring up a false dichotomy. Both coding and design are important and *Orthogonal* in terms of what makes a good product. Only a Fool will discount one in place of the other, they are both key in creating a good user experience. And should both be improved and moved forward and redirected by an interconnected feedback loop.Something that looks good but falls apart in the slightest breeze is just as off putting as something that is functional but ugly. I would tend to prefer the latter actually given a choice. A.k.a your typical stunning airhead that becomes unattractive upon opening their mouth while the frazzled chubby individual is actually fun once you give them a chance to open up. There is a lot of ugly software still in use while the pretty but broken software either got serious after proving their point (e.g. twitter) or died (countless).Maybe it seems easy when you are making yet another trivial, mashup status sharing site with no distinguishing factors. But when you are writing something that is solving a difficult problem then the coding is anything but a trivial exercise. Hooking up machine learning, clustering countless streams of information (using say non-negative matrix factorization) that inundate us, NLP based semantic analysis. All that stuff is the next stage of the industry – twitter and facebook and their 5 billion clones create so much data, now what? All those ‘frameworks’ that are production level (not academic toys) charge exorbitantly so you have to code your way *for now*.Even when ‘just’ using frameworks you still have a unique core problem you are solving that will require a none trivial amount of thinking and coding (otherwise you ain’t doing nothing new and are likely a boring Yet Another X project). You need to know what you are doing otherwise you are just building a house of straw. The blind leading the sighted. This is not to say that design is second class, very far from it. You do need to start from an initial design, spend time making sure that what you are doing is not just usable but also inviting – very extremely hard – but you best make sure that the internal plumbing doesn’t explode after three flushes.

          1. ShanaC

            I was asked for my ba thesis what my dream project would beIt was a false iphone app (an app that does nothing, and was also concurrently extremely expensive), and barring that, an abstraction of spam taken from spam (in essence, a spam displaying machine). I thought they would be funny. (not haha funny, but ironic spry art funny like who would buy an app that would effectively make your phone worth thousands of dollars at auction- but make the phone worthless, funny)Both way beyond my skill set. Yet very reliant on parts of your conception of what code does, and what design does (albeit in a mocking way).Both design and code are truly orthogonal to the information underneath, which is why your comment makes sense to some degree. However, without a semi-well thought out plan for both, you are doomed to failure in the future. It’s why I am not building a spam machine right now. It’s far too reliant on making sure that all the little bits of code work well,and then also the front is beautiful. Because I have a weird obsession with the orthogonality of oddball data. it’s a later in life thing for me I supposeSo in the end- the only way around this issue you bring up- be very aware of what data you want to be working with when you start-and by data, I mean the stuff people will be working with (as in the given input), and the stuff they will be putting out (the output) which both the design and the code itself will push them around to do specific actions…

        4. Jeff Clavier

          Noooooo. McClure insists on the importance of design and marketing – righly so – in a world where only technology/coding would be considered the only useful asset. He never said that if you have the right design, a bunch of monkeys can take care of the implementation. Scalability, speed, modularity, architecture,… are all factors that need to be taken care of as well.

          1. David Binetti

            My use of the word “trivial” was a really poor choice; engineering is a vital skill and one that is incredibly difficult to do well. Can’t have a good web product without good engineering.I’m just thinking back ten years when setting up a web app was an order of magnitude harder and more expensive than it is today and you would kill for the best coder. Frameworks and other technical advancements are making design relatively more important as a differentiator and I’m just no longer certain coding itself is the most important ingredient for success.Anyway, I’ll just shut up now before I dig a deeper hole for myself….

  2. ErikSchwartz

    I’m a big fan of product managers who can at least code well enough to build prototypes. If fact it’s pretty much a requirement for me.

    1. fredwilson


  3. Joe Siewert

    I think no matter what field you work in, you will be much better in that field if you’ve spent time rolling up your sleeves and doing the actual work at some point. I think you had a post about that a few months back. As you mention it allows you to better understand the complexities and risks of an area. Also, if you wind up managing people they will respect someone that has been there, done that more than someone who hasn’t.

  4. kenberger

    A VC with coding skills, or one that at least works very closely with someone who does, definitely has an edge.

  5. Mark Essel

    Great group. If you guys want a backchannel to discuss Google I/O you’re welcome to try out and subscribe:googleio to create and join a chat group. It’s pre alpha but works well from most devices/browsers. (some mobile safari problems opera works ok on iPhone though)It’s the Victus Media shake on social networking. Since it’s not mainstream it can be a little more intimate of a conversation channel. I like to think of it as comments without the blog post

  6. RichardF

    I’m going to follow that panel discussion on wave, should be interesting. Surely you should be on the “Making Freemium work – converting free users to paying customers” panel as well?

    1. fredwilson

      i generally don’t do panels (i wrote why a few months ago on this blog) so iam not on either of them

      1. RichardF

        sorry Fred I read “drop by” my brain interpreted that as “sit on panel” duh! too much caffeine today

  7. Tereza

    Reconsidering if it’s not too late for me to start. Coding for Dummies, anyone?

    1. Joe Siewert

      It’s never too late!

    2. Scott Carleton

      I know the feeling. I can code but not in any web-relevant languages these days. Starting to brush up on them now. At least I understand the mindset, even if I don’t know the syntax.

      1. Joe Siewert

        The concepts are the key. If you understand them you can pick-up any language/technology.

        1. Scott Carleton

          That’s what I’m finding lately. Once I started paging through tutorials on, I realized that I’m not nearly as far behind as I thought.

          1. ShanaC

            I found chris pine’s book for ruby also really good if you have no programming experience at all- it’s extremely friendly to the idea of computers doing things- and is funny to boot…

      2. Jared McKiernan

        I keep telling myself that there is a difference between programming and coding; if you can program then it won’t take too long to add coding skills in whatever language is required; however if someone was just a coder in one language for a large company they might have a lot of experience with coding in a certain problem domain and language, but on their own…well they don’t strike out on their own, because their skills were acquired for a specific career to earn a decent living, lots of these experienced coders are not interested in any abstraction, and new tasks are scary rather than fun.I’m in a similar boat as you, it is just hard to learn much without a specific project in mind to practice using the more popular web languages and/or frameworks.

        1. Scott Carleton

          I know the feeling about needing a specific project in mind. Just going to have to get creative I guess. I just started a blog and my first project is to make my own Tumblr theme for it. Going through other page’s source codes and trying to hodge podge a project together.

    3. RichardF

      go for it

    4. David Binetti

      You absolutely 100% can do it. I did at age 40 with no prior experience beyond writing a few programs in BASIC on my Commodore 64 back in Junior High. I started with a framework (you can choose something like Drupal or Rails), built a site from the default implementation, and then started learning simply by fixing problems that the framework itself couldn’t handle. Any time there was an itch I just started reading books and blogs to figure out how to scratch it. A few months later — without even realizing it — and I had built a functional site that was attracting users and people found valuable.It was an AWESOME feeling.

      1. Tereza

        David that is an awesome, awesome story. There is hope for me yet! Thank you!!!Like! Like! Like!

      2. fredwilson

        That is a great story and I hear more and more like it every day

      3. Fernando Gutierrez

        I loved my Commodore 64, best present from my parents ever!

        1. Tereza

          Did anyone else here have fun with the Radio Shack TRS-80, 1978 vintage? Cassette tapes…and delivered to the classroom on a cart from the AV department.I grew up in an IBM town, where the school board was filled with senior Big Blue execs who worked in Armonk. They were really aggressive about getting them into the schools.Not long after we were hit by a tidalwave called Apple II. But every single kid of an IBM-er had one at home too…so those were the houses you wanted to hang out at.Back then IBM would also hold a “family day”, where they rented out all of Rye Playland for like a whole weekend. I got to tag along once. It was incredible.

          1. whitneymcn

            Oh, man…my best friend in early grade school had a TRS-80, and words cannot express how jealous I was. It made my Commodore VIC-20 look like…well, a Commodore VIC-20. πŸ™‚

          2. fredwilson

            I wrote a football game on the trs 80 in high school. Its the only videogame I ever created. It was laughable compared to what exists today but it was fun to build and play

    5. BmoreWire

      I would recommend Ruby on Rails. Drupal is a mess and it only confuses you more. Here’s a starter’s kit….but get ready to put in the hours….no pain, no gain.

      1. Tereza

        this is great. thanks!

    6. Fernando Gutierrez

      I agree with most of the others, you can do it. But be careful, you probably don’t want to be too distracted from what you already do well. Learn as much as you can so you can understand coders and products better, but don’t go mad about it.With coding, like with most things, you need to put a lot of hours to be really good. You need to be up in the night, not being able to sleep because something doesn’t work and there’s no help available. Books and tutorials are great, but real and deep learning comes from doing it. Best coders have put thousands of hours on it.I was in what I think was a similar situation to yours in terms of desire. I was doing sales and marketing in a big tech company (HP) and I had studied business and law in the university. I loved technology in general since I was a kid, but I felt I was in a poor position when I talked with the IT guys in my customers. So I started to take some engineering courses in the university. I learnt some computer design, some coding and a lot of math. It was fun and I felt more secure about myself, but I’m still a sales guy. I code some very easy projects for myself. I love the calm and analysis of coding. But for the important things I want someone who dreams in binary.

      1. Tereza

        Alas Fernando this 24-hours-in-a-day limitation is indeed a problem. I’m still waiting for an app for that.I like getting my hands dirty. Always have. I think at its core for me here is as a way to connect and also earn respect that I’m trying. Not to replace anyone or do what they do better than they do. That’s not realistic and not what I want. I just want to be able to do my marketing/business building stuff better and faster.

        1. Fernando Gutierrez

          Yes, I hate the 24-hours-in-a-day problem. There are so many things to do and so little time/energy that sometimes I feel guilty just for sleeping… Digressing and off topic: Bukowski said it much nicer than me:(…)the libraries are filled with thousands of books of knowledge, great music sits inside the nearby radio and I am sleepy in the afternoon(…)3:16 and a halffrom Mockingbird Wish Me Luck (1972), Black Sparrow Press

  8. jonathanmendez

    Maybe one day we’ll see a panel of VC who are Marketers. Probably as important, yet there are even less of them.

    1. fredwilson

      i think of myself as a marketer

      1. Tereza

        Did you always?

        1. fredwilson

          No. It came to me mid career

          1. Tereza

            You mean mid-marriage?GG has some serious marketing chops.

          2. ShanaC

            We all go through lots of changes it seems- something the “adults” have ended up telling me- you never stop growing up…

    2. Tereza

      You know what I’d love? Coding Camp for Marketers.Then we can sit on a panel called Marketers Who Code.

      1. onsip

        Haha totally. See my prior comment =) -Nicole @OnSIP

      2. BmoreWire

        I’ll sit on that panel.

    3. Tereza

      Another thing to add, Jonathan — because I think you raise an important point.I also see a shortage of marketing know-how as far as I see in the startup world, compared to elsewhere. It’s a shame because much of what’s possible is low cost and missed opportunities.There’s a saying among child psychologists that ‘everyone thinks they’re an expert in parenting’. Sometimes I feel the same about marketing.We know the most successful apps bake the marketing directly into the product. So that mindset needs to be on the team from the beginning, either in the Product person, or someone else.For a long time I’ve considered myself a ‘marketing engineer’. That means creating cohesive systems of products/services, messages and experiences around the consumer or customer, with levers you can pull up and down to adjust as you go. It’s not easy, and involves countless tradeoffs. A big reason why I’m hungry to understand, in a deeper way, the watch-outs on the coding side.Last week my tech partner and I had a complex back-and-forth about a marketing feature I feel is critical to build in. He was concerned about driving complexity into the system that could bite us later. And I totally respect that. But I didn’t want to bend on what I felt was a make-or-break user requirement. We decided to sleep on it. Before I went to bed I generated a list of seven options that could address my market needs, in varying ways to varying degrees and sent it to him.He woke up ready to accept the complexity (what a mensch he is). But then saw the email (pretty complex in its own right); and evaluated them on tech feasibility. We landed on an answer that’s better/faster/simpler and have a list of other tactics up our sleeve, for possible pivot later if we need.I’m quite sure if we didn’t both have a bunch of (hidden) gray hairs we might’ve been freaked out, or, compromised in a way that would rear its ugly head later. And I know if i hadn’t done this lots of times before I couldn’t whip out multiple very different usable options in 10 minutes while tired. So the experience was useful and I was satisfied with the outcome (and boy do I have a terrific partner).BUT, I might not have had to sleep on it and left the issue temporarily open. I have a clear picture in my head of where the market is and where we need to go, and I see multiple tactical routemaps to get there. I know it would be faster and less frustrating on my colleagues and peeps if I could eliminate some early based on technical knowledge.

      1. Tereza

        sorry….just wrote a blog post, i guess.

        1. fredwilson

          Reblog it on your tumblrDisqus should make that a snap

          1. Tereza

            As my daughter says: “Easy peasy lemon squeezy”

          2. Matt A. Myers

            That’s too cute.

          3. ShanaC


          4. Matt A. Myers

            You can do that? Sold. I’m starting a Tumblr blog.

      2. jonathanmendez

        I think Darren Herman has referred to this as a “Marketing Technologist” role and he’s spot on.

      3. Matt A. Myers

        In my mind it’s all interrelated. You need a good product to market, so if you design a product from the beginning to be marketed (and taking into account usability and flow) then you should be a winner, if your idea’s good and executed well.

        1. Tereza

          I agree. Inextricably linked. To take it a step further, I’d argue that the soc nets growing fastest are integrating marketing/user propagation directly into the product. They understand how to get people to participate. Plus the voice of the product must speak the brand and vice-versa.

      4. ShanaC

        You had the comment that I really needed right now- thanks….

  9. onsip

    Fred – Like this post a lot!! As you know, I market OnSIP, but I have taken computer science courses in high school in college – learning basics of C++ and JS because Carnegie Mellon says it’s a must. And, I worked as a software project manager prior to working with OnSIP – picking up some MySQL, RESTful, HTML… basics. I have to say, this helps in my understanding of our product here and there. But mostly, I value that I can help my team out a little. (For example, I’ll work with developers on new, tangential stuff – e.g. our Chrome plugin. I can spec out projects a bit and understand generally how much work X and Y will take…) And, I can think up some new innovations with my feet on the ground! Invaluable. I should learn more. -Nicole @OnSIP

    1. Tereza

      Carnegie Mellon is such a great school. Everyone I’ve ever hired from there was terrific.My husband went there, too. I love how everyone on that campus, no matter what they’re studying, dig into coding. I’m a fan.

      1. onsip

        Didn’t know your husband went there too. Very cool. Now we have an affinity for volleyball and CMU in common. What are the chances?! -Nicole @OnSIP

    2. fredwilson

      I think that will serve you very well

    3. Matt A. Myers

      Constantly learning never hurt anyone. πŸ™‚

      1. ShanaC

        It’s a sign of modesty if you ask me- it means admitting you don’t know it all…

      2. onsip

        Yes – Very true =)

    4. ShanaC

      My brother’s there- they’re switching to python now, just so you know.

      1. onsip

        Interesting… Thanks for the info!

  10. Tim

    What about Joshua Schachter? He’s an Angel, but does it really matter ?

    1. fredwilson

      Hed be right at home on this panel

  11. Jeff Clavier

    I coded in C/C++ a bunch of products for the Financial Services market (that’s what my startup acquired by Reuters in 1993 did). One day, in 1995, I came back from a trip and my guys had de-installed the C compiler from my Sun workstation. Shortly thereafter I got my first Mac. Things went downhill from that point on :).

    1. fredwilson

      And now you are on the darkside. I hope to see you at IO today Jeff

      1. Jeff Clavier

        As I said, things went downhill from that point on – darkside included ;-).Sorry I missed you today Fred. I chatted with Albert and he suggested I send you guys an email to coordinate some time to meet next week in NYC.

  12. David Semeria

    There are 10 types of VCs – those who understand binary, and those who don’t.

    1. Carl Rahn Griffith

      The biggest danger is the VCs who THINK they can code.

    2. Carl Rahn Griffith

      Careful they don’t cast a Hex on you, David! πŸ˜‰

  13. Ed Freyfogle

    It’s not just that you understand the risk better. It’s that technical teams only respect people with technical knowledge.That’s not unique though – people want leaders they can relate to. It’s why sports managers are ex-players. It’s not that they have superior knowledge, it’s that they are the only ones who can earn the respect of current players.

    1. fredwilson

      that is true

  14. sweller

    I’ve meet several business entrepreneurs who have struggled in finding quality guidance when it comes to technology implementation. A few of them went through several prototype implementations with consultants and outsourced resources on their own (and investor’s) dime to only have a partially functional application in the end. A huge setback. I think this is a common challenge and having angels or VCs with a direct background in product marketing and software development can give pure business entrepreneurs an advantage.This is why (and Fred I apologize for the shameless plug) I am starting hobby project — — an informal way for business entrepreneurs to connect their ideas with like-minded technology entrepreneurs, angels and VCs who are interested in partnering/mentoring/investing.At the end of the day, I think it’s important to get guidance from multiple sources, such as product development, software, operations and marketing in order to get the best competitive advantage. Whenever possible, in the early stages of your company, you should find people who can act as an ‘advisory board’ to your company, whether they are your angels, VCs, or simply connections you have made.

    1. David, IT Guru

      Hey sweller, let me know when kick off.

      1. sweller

        Will do.

    2. fredwilson

      i like to see a coder on the founding team

  15. Amitt Mahajan

    I’ve also wondered if having a “technical VC” as part of a firm is as important as a start-up having a technical co-founder. The individuals mentioned in this post seems to validate that it is definitely an important trait and gives hope to folks hoping to make the jump from coding to investing.

  16. paramendra

    I was just exchanging emails with Brad yesterday. It was about both of us being in the same BBC article. Incidentally Paul Graham is also in that same article. And I got to meet Al not long back in person. But who is Dave McClure. Got to look up. Chris of course is local. And he has a swell blog.… I hope they put out a video from the event later.

  17. Morgan Warstler

    This is I think the trend we’ll continue to see.

  18. howardlindzon

    i blog?

    1. fredwilson

      and tweet about the deals i showed you that you didn’t bite on πŸ™‚

      1. howardlindzon

        man am i an idiot

        1. fredwilson

          no you are not an idiot. nobody makes all the right calls on venture deals

  19. ShanaC

    I’m teaching myself to code now because I want a change in life. A different mountain to conquer, so to speak. I realize at the end of the day, I’m in charge of my future.Furthermore-there is something about really good code that is really beautiful. I truthfully enjoy pretty code. I figure, if I can code, I can build the things I really want. Which usually somehow involve stringing together pieces of the internet into outputs about the data underneath- websites that move because other pieces of the web are also whrrrring away…

  20. @billg

    What happened to VC’s who make things?A lot of the world still depends on things made of atoms, not bits.

    1. fredwilson

      atom based businesses are a lot less capital efficient and harder to finance with VC

  21. Avi Deitcher

    Tough balance. I grew up as an engineer, always am one at heart – I still prefer to fix my own washing machine than call a technician, and wrote a short program to download scores for a playoff hockey game, parse the HTML and print them when my kids couldn’t check because of a religious holiday – but we need to be careful of coders who cannot get past the code.I live in Israel nowadays. The country is littered with the carcasses of companies that were built be engineers/coders who could not see the business side. To balance, there are many successful companies built by those who *could* see.I agree, you need to know the product, best of you know how to code… but be careful of people whose lives are code. I suspect that they rarely build great companies.And for whoever it was who trashed us MBAs, like the engineer, it is the personality, not the degree.

  22. SharelOmer

    Its great to see people grow/evolve at any sector, from being a developer to CTO, VP RD, CEO or VC πŸ™‚ from coding to create companies and beings investors…The move from coding to the art of entrepreneurship takes a lot of growth and being able to work NOT in your comfort zone, something that is not trivial for very logical people, who expect cause and result… you can say how much time it takes to fix a bug, but can you say how much time it takes to make a customer happy…It will be interesting to see entrepreneurs in the internet sector who did not code ever…

  23. kidmercury

    well, IMHO the massive opportunity is betting on the commoditization of software via open source, and value shifts to art, community management, group psychology, and other things that increase levels of user engagement — those who understand that networking technology is ultimately social. i think just as USV brought on albert so he could drop technical knowledge on youngsters and put them in their place, soon i think it will make sense to bring on those who have an expertise in art, local government, psychology, history, etc who understand how to strengthen networks/platforms/communities/governments. IMHO this reality really kicks off as the macro stuff continues to collapse, and is a part of the shift to a new world order.i still think an understanding of technology will be extremely important — but perhaps less so relative to symbolism, politics, and other things that teach us how to inspire people to use software. ultimately, i view this as a part of the value shift from software to the social graph, which is the “big picture” value shift the network economy brings us.

    1. fredwilson

      brad thinks we need an anthropologist

      1. kidmercury

        i think that makes sense. game designers and economists i also think wouldmake sense.

  24. Aviah Laor

    Maybe it’s deeper.We see VCs who are ex-coders, ex-entrepreneurs, excellent blog writers, speakers, and supporters of the startups community and eco-system.Maybe In 10-15 years we will see these trend propagates upwards? as lp’s ? investment bankers?Maybe, just maybe, this a very early seed of a shift in the financial systems.Maybe, just maybe, in a few years, we will finally be able to see the customers’ yaughts.

  25. sigmaalgebra

    So, some people learned to code in middle school. Sure. Okay.So, there’re ‘variable names’ which are names, easy for humans to think of, of places to store data. Commonly each name and its data have a ‘type’, e.g., fixed, floating, decimal, string, date, ….Can have ‘aggregates’, that is, one variable name for lots of pieces of data. Commonly this is very convenient. E.g., can have an aggregate with all the data on one customer. Call the data for one customer one ‘instance’ of that aggregate; then can have many instances, one for each customer.Have ‘control structures’: If-then-else, Do-While, and Call-Return. For use inside Do-While it’s good also to have Exit and Continue.A programming language can be defined abstractly as a set of strings regarded as ‘legal’ in the language. One legal program in one file is such a string. Then this set can be defined in terms of other sets. There is some standard notation for these definitions called Backus-Naur form (BNF) — it’s fairly intuitive. E.g., there’s BNF for the HTML of a Web page. The BNF gives the ‘syntax’ for the language. The ‘semantics’ are also crucial but harder to define.Type this source code just as text into a file along with comments and then ‘run’ it. A ‘compiler and linker’ will translate the program into an EXE file which the operating system can run. Otherwise can use an ‘interpreter’ which will ‘execute’ the program without creating a new EXE file, that is, much as a human would do.Given the BNF for a new language, there are ‘compiler compliers’ that will write code for part of a complier for that language; that code can indicate if a given program is legal in the language and, otherwise, the location of the first character that shows that the program is not legal. Much of the rest of writing a compiler or interpreter has been made standard. So, if you want a new language, go for it!Microsoft’s position now appears to be that they no longer care much about individual programming languages and, instead, provide their ‘common language runtime’ (CLR) and .NET Framework and that people are welcome to write any languages they want, just as ‘syntactic sugar’, on top of the CLR and .NET. Microsoft provides Visual Basic .NET, C#, and the interpretive Workplace Shell or some such that let people use the CLR and .NET. This means that C, C++, Fortran, Algol, Cobol, Folderol, etc. are now a bit out of date. Good thinking.Really, now, the really big deal about a programming language is what else it lets you use, e.g., .NET, TCP/IP, relational data base, etc. The basic syntax and semantics are, right, mostly for middle school with no longer a lot to argue about.Big issue: The source code you type doesn’t mean anything to a human. Instead, human meaning is communicated mostly just by natural language, and computer code, even with mnemonic names, is not a natural language (computer scientists have a tough time understanding this fact). So, write code like a physics or math book with lots of text that makes all the symbols and manipulations very clear. Then in physics when get to F = ma know what that means. Situation MUST be similar in code or are writing something no one else will be able to understand or modify and neither will you in six months. The computer industry still tries to do most of the documentation with just mnemonic naming, and this SUCKS, i.e., creates big risks in business.Undocumented code is a business asset worth close to $0 and otherwise a big risk of a big loss (if something goes wrong, can’t fix it quickly).For more than the middle school approach, big issues: Performance, reliability, means for debugging, instrumentation for monitoring, dynamic memory management without ‘memory leaks’, ‘scope’ of names, error handling, handling multiple threads and exploiting multiple processor cores (handling all the concurrency issues, e.g., deadlocks), having the work in relatively independent pieces with relatively simple interactions (‘divide and conquer’), having one program be the work of several people, revising a program later, using ‘frameworks’ to avoid reinventing the wheel.Now the lesson’s been learned; if for a business, have a lot of operational data, then need a relational data base system. So maybe want one of SQL Server, Oracle, DB/2, MySQL, etc.Then have data in ‘tables’ where each table has rows and columns. A column is for, say, first name, last name, user ID, time and date of last login. A row is one instance of such data, say, for one user. Typically as the business continues, keep adding rows to the tables; may also modify or delete some rows.A ‘relational data base’ is a collection of such tables. The definitions of the tables, that is, what tables with what columns, form the ‘schema’. In a table, you can say that a column is a ‘key’ — that’s like the tag on a file folder used to sort and file the folders and makes accesses faster. Your schema should be in ‘third normal form’ where each key is a function of the row, the whole row, and nothing but the row.Big advantages of relational data base: (1) Flexibility as the data and uses of it change, e.g., can have new data, columns, tables without changing old programs; can write new programs to manipulate data in several tables in new ways. Lots of small tables in third normal form give good promise that new things to do with the data will be routine. (2) Performance, e.g., with many programs accessing the same data at the same time. So have very capable functionality for ‘locking’, ‘transactions’ and resolutions of ‘deadlocks’. (3) Reliability: Computers can crash at any time and when come back up the data base is still in a ‘consistent state’. So each ‘transaction’ in progress was either fully done or done not at all (is ‘rolled back’). Key here is the ‘log file’; get some locks, write to the log file what are going to do, start doing it, recording what did, e.g., both old and new values, and then as an ‘atomic’ step write ‘DONE’. If the ‘DONE’ is not in the log file, then ‘roll back’ what was done. If a deadlock, then roll back and try again. The log file also makes possible doing backup while the data base is in production — nice. (4) Performance — lots has been done in caching, how the tables are stored in files, to give much higher performance than easy for a single programmer to do. And there’s more on security, distributed data, industry standard schemata for accounting data, backup and recovery, handling tens of terabytes of data, etc.For a busy Web site, need to have a server farm ‘architecture’ that is ‘scalable’, reliable, available, etc.Beyond these topics in computer science and practical computing, the main ‘business issue’ is WHAT to program. For something really ambitious, the unavoidable next question is “How to do that?”. So far usually what to program is something that could be done in principle just manually. Thankfully for US national security, the US DoD went far beyond such manual ‘knowledge’. So, in ‘information technology’, how to manipulate the available data to produce the information the business wants? Secret: Appropriate topics in applied math. Come on, guys, let’s get the world’s hottest industry past middle school and community college programming courses!Albert Wenger wrote about Google I/O the question “What factors contribute to sustainable competitive advantage?” Uh, don’t tell Google!

    1. Aviah Laor

      than what do you prefer, best financiers among coders, or best coders among financiers?both financiers and coders have their share of things you have no chance to understand, but on behalf of coders you have svn blame

      1. sigmaalgebra

        I’m saying that what’s crucial is applied math to convert the available data into the information crucial for the business plan and that coding is middle school material and nearly all the rest of current practical computing is community college material where there’s no longer any very great special value.For your dichotomy: For the qualification “can code”, we can evaluate that. The qualification “financier” is much more difficult to evaluate. Besides, I see no conflict between the two qualifications: There’s no reason not to have both.Next, since “can code” is middle school material, it is not very impressive as a technical qualification. In particular, in my post I outlined some of practical computing past middle school and into the community college level.Next, I would suggest to the information technology part of the venture capital community that they should be able to direct evaluations of material much more advanced than community college practical computing much as is done at NSF, DoD, DoE, NIH, and the boards of editors of good journals relevant to information science. Else the venture partners may be failing to find their coveted needle in a haystack.

        1. Aviah Laor

          “can code” should be taken as in a broader perspective. It’s not C++ or SQL, but involvement in a significant software project: specs, teams, schedule, customers, upgrades, features, deployment, etc. This is not a middle school material, and they are core to the business issues as well.Reg the dichotomy: The financial markets and the capital flow are always a derivative of the real products, markets and companies. I understood Fred’s post as a more general saying, that the distance between the real and the derivative should not be too far, and this is a good idea for any market, not only tech but tech is especially suited to bubbles of all kinds.Your last idea is brilliant. And I totally agree that there is no point to extrapolate from basic coding skills to more strategic issues. Indeed, a loop is a loop is a loop. But it seems that this was not the post intention.

          1. Tereza

            If you define “code” to include the latter items below, I sure as hell have done all of that stuff, and that’s heartening. But no engineer would ever ever call me a coder!

          2. Aviah Laor

            Than you are! The rest is really not that hard. Just pick a good Python book, it’s clear and intuitive, and you have the badge.

          3. Tereza

            WOW Aviah between your honorary Coder badge and Matt’s honorary Coach badge, I’m raking ’em in today!It’s like a fabulous day on Foursquare.So even though my Points-to-Comments batting average isn’t as high as JLM’s, I’m still very, very happy.Group hug!!!

          4. Aviah Laor

            yes, I saw the coaching badge after I comment πŸ™‚

  26. Lloyd Fassett

    Ultimately this is like preferring sails or a rudder on a sailboat. Without either, you ain’t going nowhere.Fred’s comment below that ‘someone on the team has to understand it’ is the best scenario for be because a subject matter expert better understand the business problem. To get to that understanding will probably take a long time, and if you’re spending that time developing technical skills then you’re probably not deep in the process of identifying the problem and opportunity.I think the marketing side is still very underated though because identifying problems to solve is not actually the commodity. You can always find great programmers, but it’s not a great programmer’s strength to understand what the problem is that’s being solved. In most businesses today, nobody is buying code, they buy the results.Just this morning I read on the site that they prefer technical founders. Brad Felds Tech Stars and Paul Grahm’s program also prefer to back engineers at the seed level. There is an extremely limited set of people that are going to understand a marketplace and be able to show up to these groups with a demo because they wrote it themselves. I would expect a fund to be out there to do the opposite with their background…not look for people ‘like me’, but to look for people that are complimentary .I wish I was able to be at that panel to gain insights into if they sense there are missed opportunities because of that approach, or if they think the approach is the focus of their fund anyway.

  27. RichardF

    good post Charlie, like 6) particularly

  28. Matt A. Myers

    I’m a bit of the opposite. I started coding when I was 11 years old: Self-taught through making changes to open source code and debugging errors I’d create. I’ve always had a technical curiosity to know how things work, and when I’ve wanted to create something, I’d dive in and start myself.Now that I have plans too big to do on my own, the benefit I see of this base is the understanding of knowing the type of mental work (and learning the reasons for it) that goes into each different aspect of development; coding, design, marketing, etc.. They’re very different types of creativity but they can all link into the same implications especially when in relation to a business for people, which of course affects overall success of a business. This appreciation also grew when I moved toward mostly hiring outsourced workers for projects. I had an idea of what was possible, how long it should take, and what a fair price to pay would be; I’ve learned too from when I accepted bids on projects that were too good to be true, however a well-oiled team could have successfully accomplished them, am outsourced Chinese or Indian developers couldn’t – possibly primarily because of language barriers or because their goal is different than yours in that they want to spend as few hours as possible to increase their profits. And in the end I’ve realized, with a solid business model, the added cost of a good development team will pay off 100x to not deal with the headaches, so I moved to creating a proper presentation and solid business model so I can have the funds to start development properly.And now, at the point I am at – wanting to hire a number of full-time developers to get flow development going – all of my experiences have allowed me to know when a person is a quality developer and has the capability to become an increasingly better developer, and has the default abilities / attributes needed for certain roles to make sure things go mostly how planned.Re: 6) – A lot, if not most of the commerce students at the local university here don’t seem to have a deep clue about business, but they’ve been trained to be good with words, they’ve been taught the the areas and proper names for things that investors will want to hear answers for – but most don’t seem to have a deep enough grasp of everything involved to really know a secure enough picture (in my mind) – which I see being why there’d be increased suspicion. On the flip side, when you learn the names of things investors want to see because You Yourself have discovered them to being important factors, that gives you (me) once again much more invaluable insight into why the business is working or what leading metrics to follow and to worry about / use as a guide.- The End.P.S. For anyone watching the Google I/O conference: Thumbsup at the Expense Reports, demonstration on IPad = Sexy. Phone to IPad updating finally.. “YAY!!” .. LOL. Exciting overall. Hope I have a chance to watch the whole thing.

  29. sweller

    Word. I started coding when I was 12. Trial and error. I cannot agree with you more about the foundation that gives you. Having that base now is super-impactful.

  30. Matt A. Myers


  31. Matt A. Myers

    Word. πŸ™‚