Hi, my name is Oscar, and this is my personal development blog.

I like to create stuff, challenge assumptions, and try out new things.

I blog about personal development and everything I learn here. Read more

1

Welcome! On this blog I regularly write awesome stuff related to personal development, productivity, and 30-day challenges. You should subscribe to the RSS Feed so that you wont miss all the new stuff.

Is Learning to Program Worth Your Time?

It’s strange to be talking about programming in a personal development blog, but I think it useful for you to know what are the advantages of learning how to program and what you can get from it for your day to day life.

I have been programming since I was 16 and I’ve been doing it professionally since I was 19. The benefits I gained by learning how to program are enormous and they help me in almost every aspect of my life.

With this post my intention is to expose the basic concepts and advantages of learning how to program and to put you in a position where you can decide for yourself if learning how to program is worth your time or not.

What programming is

Let’s first talk about what programming is. According to wikipedia, programming is the process of writing, testing, debugging, and maintaining the source code of computer programs.

From this definition you can see that most than everything, programming is a process. This process can be interpreted as cognition, which in turn is the process of thought. Now, programming is both practical and theoretical, but for me is more the theoretical side among everything else that provides the most benefits.

Programming of course is more than this, but this reason alone should be enough to attract the intellectual curiosity of many.

On a more practical view, programming is a simple set of instructions that produces a certain output. For example, the following program prints the numbers from 1 to 5 in the screen.

example-1

Don’t worry if you don’t understand how this program works, that’s not important now, it’s just to get you an idea of how a program looks like.

The last thing I want to say about programming, is that there are hundreds of different programming languages, and each of those was created to solve a particular kind of problem. For example there are languages that are used to create games, others that are used to create operating systems, and others that are used to create web applications. There are even languages that are used to teach programming and math to kids.

Benefits of programming

So what are the benefits of learning how to program if you are not a computer geek and you performed poor at math in college?

  • Problem solving. The area you’ll practice the most when you write programs is problem solving. In fact, each time that you write a program you are trying to solve a specific problem. The benefits of exercising your problem solving skills are enormous. Suffice to say that in your day to day life you are constantly solving different problems, so being skilled at it is certainly a big plus.
  • Planning. Like many other activities, programming involves lots of thinking about what you are doing, analyzing your desired output and figuring out the steps you need to take to get there. In one word, planning. And guess what you do when you write for example a goal? You are planning for something that you want to achieve.
  • Learning complex concepts. Programming is attractive because you can learn a lot of new concepts that are rare to find in other disciplines. For example one popular concept is recursion. Recursion is a process that calls itself until it meets a particular condition. Recursion happens everywhere in nature and it’s often discussed also in philosophy. The beauty of this is that you’ll learn a lot of complex concepts like this by building practical stuff. In other words you create knowledge by personal experience.
  • Different perspectives. Programming affects greatly the way you think by exposing you to a multitude of concepts from very different perspectives. Every programming language has its own way of viewing concepts, and every time you learn one of them your perception changes. Programming is one of those activities like playing music or painting that leaves a huge impact in your way of thinking by opening new possibilities. In other words programming forces you to act with an open mind.
  • It’s fun. I started studying programming because it was fun, and it still is for me. Being a self learner, I always had the opportunity to study what I personally found interesting. If you want to learn how to program, you can do the same by picking only the concepts and programming languages that are fun for you. Of course is useful to get a general overview at first, but then you can start doing what you really like.
  • You can get a job. We live in a world where technology is a big part of our lives. For example to read this article you are using a computer, which in turn is connected to the internet. You are using tens of different programs in this very moment, even if you don’t know it, and someone needs to write them. If you take the time to learn how to program professionally, there are big opportunities available. Companies are constantly looking to hire great programmers and you don’t need to be a genius to become one, practice and passion will make it. I expect this field to grow even more in the future as technology becomes more and more important for us, and I think we’ll reach a point where studying programming will be required at school.

How to learn to program

You can start learning to program in just a few minutes if you want. Even though it takes years to become a proficient programmer, you can start to see interesting results in just a few months. In fact programming is a continuos skill, and every day is an opportunity to learn something new.

If you are ready to take this journey, the following are some steps you can take to learn how to program.

  • Get a unix machine. This is not required at first but it certainly helps to get your hands on a unix machine. By unix I mean an operating system like linux or mac os x. The advantages of using a unix operative system instead of windows is that you can run your programs easily, and the amount of information available online is greater. It’s true that you can write programs for windows in windows, but I highly discourage doing it unless you really know what you are doing. Windows among programmers is often seen as a bad platform, and there’s a good reason behind it.
  • Pick a book. There are tons of great books for beginners, and you don’t have to spend money in the beginning. At this point you just need a book that teaches you the basics of programming in a friendly and understandable way. I’ll link to some free books at the end of this article, but basically you don’t want to end up with a computer science introductory text when you are just getting started.
  • Solve interesting problems. When you are learning something new, it’s useful to use it to solve interesting problems. For example when you learn the basics of working with numbers and creating simple functions, you can write your own program that generates the sequence of fibonacci. That’s probably a chance to learn some math also. You learn programming mostly by doing it, so do’t forget this step.

Is learning to program worth your time?

The drawback of learning how to program is that it takes a lot of time. Yet the advantages of learning it can’t be ignored.

For example I specialize in building web applications, so it’s easy for me now to create a website that does what I want. I have the possibility to launch an internet startup without having to pay someone else to build it for me. I also have friends who created programs for mac or the iphone and are now making a comfortable living from it.

Even if you don’t plan to create something with your new knowledge, you can apply it to many other aspects of your life. For example, as I said earlier, having great problem solving skills and planning abilities is helpful when you write down your goals or when you decide to start your business. Again, I mean very helpful.

The price to pay for all of this is that you have to spend a few hours every week if you want to learn how to program, which should not represent a big problem, unless you are literally running fast trough your life (and in that case I suggest you to consider slowing it down).

As with everything else, good things happens to those who are willing to take the time to build them, so is your choice. At this point the real question is: can you afford not taking the time to learn how to program?

Resources

The best thing you can probably do now, is to go through these free resources and spend at least 30 days working on them. At the end of the 30 days you should be able to decide for yourself if you want to invest more time into programming or not.

Here are some resources to get you started.


  • Learn to program book. This is a free book where you can learn some concepts of programming. It’s based on practical stuff mostly and it uses a popular programming language that you can then use every day.

  • Project Euler. This website includes a series of math challenges to sharp your programming skills. Even if you are not good at math, you can search on wikipedia what you don’t know, and then try to create a program to solve it.

  • Teach yourself to program in ten years. An article with useful information for those who want to learn how to program.

  • How to become an hacker. The philosophy behind being an hacker. Note: hacker is not what you probably think.

I welcome any question and additional advice in the comments.

Posted on November 24 2009

You should subscribe to the RSS feed here.

Sharing is sexy!

What's next

Join the once per month Freestyle Mind newsletter and receive exclusive content that you wont find on the blog.

Comments

Here are all the comments for this post. I'd love to hear your opinion too.

  1. November 24 2009 at 13:04

    […] This post was mentioned on Twitter by Oscar Del Ben and Angie Neilson, Angela Neilson. Angela Neilson said: RT @oscardelben: New article: is learning to program worth your time? http://bit.ly/4CfS5q I have been doing it 4 20 yrs. He is SO right! […]

  2. AvatarValerie M Says:
    November 24 2009 at 14:15

    Hi Oscar,

    Excellent resource! I’m far from the most technical person around but I’ve always wanted to learn at least a little about programming languages so I could have a general idea of what’s going on. Trying to find out what guides to get started with is a daunting task IMO, because as you’ve said, many of them are not friendly to non-techies.
    .-= Valerie M´s last blog ..Obligatory post in which I babble about authenticity, imperfection, negativity, and then somehow throw Thanksgiving into the mix. =-.

    reply to this comment

    • AvatarOscar Says:
      November 24 2009 at 14:52

      Hey Valerie,
      I think you can get a good overview with the resources at the end of this post. Cheers

      reply to this comment

  3. November 24 2009 at 15:10

    Hey Oscar,

    Funny you should write this, I’m in the middle of an upgrade project for my adventure game :) I’ve been buried in code for a while (which is why you haven’t seen me too often lately).

    Hmmm… There also happens to be game programing tutorials on my site :D
    .-= Charles – Creative Lab´s last blog ..How Hunger Works =-.

    reply to this comment

    • AvatarOscar Says:
      November 24 2009 at 15:22

      Hey Charles, I know it’s funny but I had to write this ;)

      reply to this comment

  4. AvatarNate Says:
    November 24 2009 at 18:31

    Oscar -

    Thanks for sharing this info! I have just gotten interested in HTML and CSS. I’m reading a book and teaching myself. Now, I can definitely see how it’s not for some people, but I’m very much enjoying the process of learning the code.

    The point is, we should never stop learning and we should always be striving to do stuff that you enjoy. The best way is to get out there and experiment. Why not try learning some programming, right? If it’s not for you, you’ll know right away, but if you get enjoyment out of it, then it’s worth pursuing.

    I’m trying to challenge myself more and open myself up to new experiences. I’ve started a blog, which I enjoy. I’m teaching myself HTML, which I enjoy….I don’t know what’s next, but I’m having fun!
    .-= Nate´s last blog ..Life Lessons from Steve Jobs: Stay Hungry. Stay Foolish. =-.

    reply to this comment

    • AvatarOscar Says:
      November 24 2009 at 22:23

      Hey Nate, given that you are starting studying html and css, maybe one day you can look at ruby e ruby on rails ;)

      reply to this comment

  5. November 24 2009 at 20:00

    Very very nice approach Oscar. This is an extremely refreshing point of view I haven’t been able to find lately on other personal development sites and I congratulate you for that.

    Found your corner here after reading your guest post on Jen’s site and I hope I can see more from you again soon popping up on my reader. I’m going to take your challenge and see what I can learn from it. -Paul
    .
    = Paul L’Acosta´s last blog ..marketingfails: @KimbaGreen That was a really engaging post. And I liked the "Cesar Millan" kind of approach you made there. :) =-.

    reply to this comment

  6. AvatarPhaoloo Says:
    November 25 2009 at 07:42

    I’ve been learning various programming languages in school these days and I have to admit that I don’t love it. Now learning doesn’t bring me joy, it’s a must to do and I don’t feel eager to learn like before.
    However, sometimes I feel grateful because I can write some small apps that automate my works on computer so that I have more time for playing, listening music etc. It also changes my mind when think through something. Dunno how to describe it, but it brings us a flexible thinking instead of logical thinking same as playing chess.
    .-= Phaoloo´s last blog ..19 One Click Applications For Common Tasks =-.

    reply to this comment

    • AvatarOscar Says:
      November 25 2009 at 08:58

      I guess the keyword here is must do it. If you are learning them in school you are probably using traditional languages that have no joy at all.

      reply to this comment

  7. November 25 2009 at 10:35

    Hey Oscar!
    Great post, I like your writing style. Your posts are getting better and better :)

    I’m not one for programming, not interested in learning all the code. I’d rather pay a programmer to create what I need and focus on the principle of whatever I’m going to be doing :)

    Have an awesome day!
    .-= Diggy-Upgradereality.com´s last blog ..Trust but Verify =-.

    reply to this comment

    • AvatarOscar Says:
      November 25 2009 at 10:40

      Thanks Diggy. I think the benefits of learning it are not the practical things you can then create, but the process of learning it. However good for you if you can hire them ;)

      reply to this comment

  8. November 25 2009 at 12:03

    Social comments and analytics for this post…

    This post was mentioned on Twitter by oscardelben: New article: is learning to program worth your time? http://bit.ly/4CfS5q…

  9. AvatarAndrew Says:
    November 25 2009 at 12:28

    Great post Oscar,

    I Couldn’t agree more, I wish I’d learnt a bit of html earlier in the game! Certainly handy for editing a few of the standard wordpress themes out there.

    Keep the good ones coming!

    Andrew

    reply to this comment

    • AvatarOscar Says:
      November 25 2009 at 12:33

      Hey Andrew, html is not that hard to learn. Anyway html is not really a programming language, but only a markup language.

      reply to this comment

  10. AvatarRyan Says:
    November 25 2009 at 18:26

    Oscar,

    I think that learning programming is worth your time if you’re going to be running a blog or a website. If you might be using the skills it’s OK to devote some time to it. If you won’t it doesn’t make much sense. Too time consuming.

    I received a certificate in web development from a technical school. It’s helped me a great deal in running my blog and website. I’d be able to get by without the degree but I’d be spinning my wheels more frequently.
    .-= Ryan´s last blog ..My Quotes: 11/25/09 =-.

    reply to this comment

    • AvatarOscar Says:
      November 25 2009 at 22:25

      Hey Ryan, yes the fact that you’ll use will certainly help. Sometimes tough you don’t know if you’ll use until you know how to do it ;) (just generalizing of course)

      reply to this comment

  11. AvatarTania Says:
    November 25 2009 at 23:03

    Programming is really important to me because I am studying engineering and I need to deal normally with programming specially on matlab and VBA. And I love programming, I love to be the mind behind the equations and all instructions. It’s fun for me but it can be fun for everyone because if you don’t want to do anything about maths you can create games, fun messages, riddles, etc. It’s more simple and easy than it seems. The cause here is only if you enjoy, if you really want to learn.

    reply to this comment

    • AvatarOscar Says:
      November 26 2009 at 08:22

      Hey Tania, you can in fact do everything with programming. Thanks for your comment!

      reply to this comment

  12. AvatarSteven Says:
    November 26 2009 at 08:42

    Hey Oscar, have you thought about creating a blog just to focus on programming? Because it seems you are very knowledgeable in that field. Maybe drop a few blog posts for guides on programming or something like that.

    I admire your passion for programming! Keep doing it :)

    Steven
    .-= Steven´s last blog ..The 5 Senses You Should Appreciate =-.

    reply to this comment

    • AvatarOscar Says:
      November 26 2009 at 09:04

      Hey Steven, yes I’ve thought about it and I have randomly blogged about programming at http://blog.oscardelben.com (now dead), the fact is that I had to make a choice, and I think I can provide the most value here. By the way I’m using my programming skills to build some web application and I’ll continue to study it hard ;)

      reply to this comment

  13. November 26 2009 at 12:54

    Hi Oscar,

    Thats a good post I woudl say :) You have covered the main aspects orderwise.

    Cheers!
    .-= Raghavan alias Saravanan M´s last blog ..3000 Posts in JavaRanch =-.

    reply to this comment

  14. December 02 2009 at 12:10

    Probably not but one gets a real high from working out how to get some something right.
    .-= JONNY | thelifething.com´s last blog ..Some Bad Ass Travel Tips To Let You Be A Smug Bar-stuard Even In The Company Of Seasoned Travelers – You Know You Are Going To Read This =-.

    reply to this comment

  15. December 19 2009 at 17:56

    Hey Oscar,

    Didn’t know that you also have a passion for programming. I’m not a professional, but during the last 5-6 years I have been geekering around, messing with HTML and CSS, JS first, then getting to PHP and MySQL. Later, I discovered frameworks like RoR and Django (although unlike you I preferred the latter). In some daring moments I even read about asm, and wanted to write my own operating system (a bsd fork, to be precise), which I never finished, obviously :))

    I no longer code seriously, but I’m glad that I did, it also taught me a lot of things!

    Zoli
    .-= Zoli Cserei´s last blog ..Welcome to Simply Will Do, my dearest readers! =-.

    reply to this comment

    • AvatarOscar Says:
      December 19 2009 at 18:25

      Happy to hear your experience. I use ror extensively everyday but I’m also looking on new languages, for example Clojure. take a look at it if you have some time ;)

      reply to this comment

New Comment

I'd love to hear your opinion.