Posted April 28, 2012 12:30 am by with 4 comments

Tweet about this on TwitterShare on LinkedInShare on Google+Share on FacebookBuffer this page

null Every now and then I hear a friend of mine that works in the tech space, but in a non-technical area like marketing say, “I am going to teach myself to code”. A lot of the times I hear this around January or February. “This year I will learn PHP!” or “This year I am going to become a Javascript ninja.” And even, “Oh yeah I am excited to learn Ruby!!”. Every time, with out fail I quietly think to myself, “Don’t learn how to code, you are wasting your time.”

Now don’t get me wrong, I am not trying to rain on anybody’s parade. In fact I think we need more enthusiasm around learning new things. But I honestly believe that learning how to code is a complete waste of time unless it is part of the major functions of your job, or you enjoy programming as a hobby.

This isn’t just a few isolated instances either. Entire companies are learning how to code together and some education start-ups are seeing massive growth in their user base. So I would like to counter a few of the misconceptions about learning to code.

It will help me communicate with developers.

If you are having a hard time communicating with developers, you have bad developers. Albert Einstein once said “If you can’t explain it simply, you don’t understand it well enough.” That is true for programming as well. Communicating effectively takes practice and experience, both of which also are required to be a good developer. Thinking that learning the basic syntax of any programming language is also going to put you on the same level as a professional programmer is like me thinking I can discuss literature with Gabriel Garcí­a Márquez because I wrote a short story my freshman year of college that my sister said was pretty good.

It’s a new skill set I can add to my resume or CV.

Seriously? I know the letters of the alphabet. I know how to string them together to make words. And I even know how to string those words together to make sentences. If I am lucky I can string all of that together to make something decent to read. Just because I have a good grasp at the mechanics of language doesn’t mean I am then entitled to add writing to my list of things people should pay me for. Being a good programmer is like being a good composer. Just because you know how to play an instrument doesn’t mean you know how to compose great works of music. That comes from years of experience and study.

I want to learn for the sake of learning.

Awesome! Learning is great for the mind and soul. But the problem is that most folks that don’t need programming to work or play, aren’t learning at all. Memorizing syntax and structures isn’t learning how to program. For example not long ago I started to teach myself how to speak Spanish through a beta account at Duolingo. I soon quit after I realized I wasn’t learning anything if the next day I forgot it all. I have Spanish speaking friends, but I rarely see them enough to keep the language alive and integrate it into my internal lexicon. Programming is the same way, you really don’t learn how to program until you actually do it every day. Heck, I have been writing PHP for the last 9 years and am constantly learning something new, or a better way to do something.

I want to fix my own code.

Then do it! Problem solving is the best way to learn something. However too many people think that they need to learn programming first in order to fix their system. How do you think all the computer science rejects like me learned how to program? We solved problems that were right in front of us. Worried about making a mistake? Then just back up all your files first and you should be fine.

You seem grumpy, whats your problem?

I want people to quit wasting their time on things that don’t matter or that they don’t enjoy. If you aren’t a programmer or don’t enjoy programming, don’t learn about it. Go have a cup of coffee and play with your kids, your dog, your cat, your spouse, or whatever else you enjoy playing with. Because life is short and it is meant to be enjoyed, not wasted.

[photo credit]

  • 10 reasons why, as a non-technical founder, I am learning to code:
    1 a burning desire to make things that make the world a better place
    2 ability to build the products for my startup and side projects
    3 improve product strategy ability by understanding how the product is made
    4 increased empathy with engineers, which translates to hiring and managing
    5 incredible skill set, broadly applicable for professional/personal endeavors
    6 better understanding of technologies options and choices, be part of discourse
    7 never been cheaper and easier to learn, or more effective out the gate as a developer
    8 confidence and increased credibility that comes from knowing software in Silicon Valley
    9 independent study + intensive programs + 1-2 years work as a software engineer = solid foundation
    10 #leadership #intuition #creativity are 3 of my strongest skills, and will all be strengthened here

    • MetusBatmanV2

      1. Just no.
      2. Why not delegate the work to professionals?
      3. Selling water has nothing to do with understanding how water is created.
      4. Engineers are programmers now? Who would of thunk it.
      5. Your skill-set will be mediocre at best compared to other programmers.
      6. Learning computer science, not programming would help you understand technology.
      7. Something being cheap isn’t an argument for learning how to do it.
      8. You won’t know software though, you’re a hobby programmer.
      9. You’re a non-technical founder calling yourself a software engineer? Laughable.
      10. There are lots of other avenues to increase skills in these areas outside of programming.

      • Based on your suggestions, I’ve decided not to pursue this path. Thanks for your feedback.

  • Too much to understand

    I’ve learnt what programming is about ; communicating with the program. Telling it what to do.
    I am a ex-scripter, with basic knowledge in electronics and a simple idea of what a computer is. (Intricate arrangement of transistors).
    While it was fun at the beginning – I guess the curiosity being the driving force of learning – I soon found irritation from going from one language to the other – the different ways they interact with the computer – the heavy amount of libraries that are used. It was simply becoming a realization that it was impossible for me to – let alone memorize – grasp the concepts behind their functioning and to most importantly “why?” . I felt like using methods that I had no idea how they did it in the first place , yet they worked . The heavy mathematical concepts and the super complex algorithms that are as complex as a wireframe of a CPU.
    One thing I would say to someone going to explore “the rabbit hole”, is that as a programmer, I would call being an integrator of concepts . Arranging “cubes” with other “cubes” in order for them to communicate well, although with words and not graphical illustrations.
    Hence why I think visual programming is a good solution for most of applications required by the user.
    It was worth the journey – I’ve learnt a lot ! But I now realize that stressing myself to make applications – going further into the world of code – is not my life, I am a forester, I like working outdoors, although it is very tough job (I feel that is the reason why I stress myself to make money with code.) I bow to computer scientists and walk away.