10 Ways to Get Inspiration as a Programmer

Sometimes I fall into the trap of reading about programming and not programming. I can’t always find an interesting project to work on, even though I know there are a sea of opportunities. If you have the same issue, here are some tips that might help.

  1. Hang out with other programmers. This is the best source of inspiration because, naturally, they’ll have ideas that you won’t. It doesn’t matter if it’s just some coder friends, a programming group, or even a conference. The mixing of all those ideas is sure to give you a fresh perspective.
  2. Hang out with non-programmers, too. First of all, it’s healthy to be around people that make you happy or challenge your thinking, whether or not they code. Second, they can give you inspiration from a user’s perspective. What frustrates them about their computer? Can you come up with a solution?
  3. Have a dedicated workspace. If it’s not possible to have a dedicated space, at least make sure it’s quiet and you can focus on the computer without distractions. Make it your cave. Make sure your chair is comfortable and supports your back. Have water handy. Don’t sit without moving all day — stay healthy.
  4. Have a good development environment. The software version of the previous tip. I don’t care which editor you use (though I recommend vim) but make sure you’re using one that gives you some power and flexibility. Always use source control – in particular, I recommend you learn git because of the concepts it will teach you. Always back up your work. All of this will prevent the massive demotivation you will experience if you don’t use them and you lose your work.
  5. Keep your ears open. Read the twitter feeds and blogs of the programmers you respect. (Look at my twitter feed if you want – it’s mostly programmers.) RSS aggregators, such as Ruby Inside, or the old-school Planets, can be great sources of news because they add prominent new programmers without you having to search. Pick a few blogs on topics you wouldn’t normally read, and subscribe to them too.

    Yes, this can get you sucked into the trap of reading code and not writing it, but being plugged into the larger coding ecosystem is good for you and can be the source of many ideas.

  6. Read good code. Think of some software you love and look at the source code. What problems did they have? How can you learn from it, or better yet, how can you improve that software? There are many sources of good code, but GitHub has to be one of the best. The GitHub Rebase series on the GitHub blog lists a number of notable new projects if you want some specifics.
  7. Learn a new language. This is a classic piece of advice that keeps on giving. I recommend learning something from each of the following categories:
    • Mid-level: C, C++
    • Object-Oriented: Ruby, Python, Java, C#
    • Functional: Scheme, Haskell, Erlang
    • Shell: Bash, Zsh, awk, sed
    • Set-based: SQL

    The more languages you know, the more ways you’ll have to think about problems in any language. The more ways you can think, the easier it will be to find interesting ways to solve problems, and therefore to have inspiring projects. (And, of course, don’t limit yourself to this list.)

  8. Learn good techniques. Rather than a specific language, learn good general techniques from books like The Pragmatic Programmer, Structure and Interpretation of Computer Programs, and The Little Schemer. (The last two are about Scheme specifically, but they’re so good everyone should read them.)
  9. Have a toy project. It’s nice to have a toy project, something you can turn to when you’re frustrated by other projects. It doesn’t matter what this is, as long as all yours. Don’t feel compelled to share it or to have it become some kind of success – it’s there to help you work things out.
  10. Write a game. A lot of people think it’s a waste of time to write games because so few independent games are commercially viable, but if you’re a gamer, write one anyway. It’s therapeutic, and there are a lot of deep concepts that come up when you work on them. I’ve written a number of small games in my days, almost all of which are unreleased; they were good experiments. If you can’t think of a starting point, try a Roguelike.
  11. Take the brute-force approach. I know, this was supposed to be a top ten, but this is a bonus tip for when you’re really striking out on inspiration. Look through your programming books, your RSS subscriptions, twitter, Stack Overflow, or any other source of programming information. Find two unrelated topics that are even remotely interesting to you. Now find a way to connect the two. Even if it’s a little obscure.

    For example, just at random, I’ll pick… parsers and… accessibility. You could learn about them, then write an HTML parser that pays particular attention to accessibility factors. As of today, I don’t see too much code on this topic, so that could be a good thing to explore. (Here’s one open-source accessibility tester I was able to find as an example. One is never enough.)


16 responses to “10 Ways to Get Inspiration as a Programmer”

  1. redshift Avatar

    Here’s a quick test. Pick a language you’ve never seen before. Something different. Io is a good option. See how long it takes to write FizzBuzz in the new language. If you want, add in iterative and recursive fibonacci functions – just some simple code. (It’s not a competition, just a way to give yourself a small goal and to see how quickly you learn.)


  2. Robert Monnig Avatar

    Great post! As far as talking about coding to others -this can be greatly inspiring, although I sometimes find my friends are scared of sounding ‘too geeky’ and withdraw from such conversations.

    On a side-note I sometimes re-watch ‘The Social Network’, the Facebook movie for inspiration. Its a shame there aren’t more similar movies out there to inspire us coders.


  3. Fred Avatar

    Thank you very much!
    By taking on point #10 I achieved what I needed, so your post was very effective 😀


  4. Matt Miner Avatar
    Matt Miner

    Another great movie to watch is Indie Game the Movie. I use it often for inspiration


  5. […] “@rands: 10 Ways to Get Inspiration as a Programmer:” halffull.org/2009/01/03/10-… […]


  6. Claire Y. Li Avatar
    Claire Y. Li

    Feeling refreshed and inspired! One thing I love to do is write a function in PHP. Then sit down, and force myself to replicate its actions using C++. Then do force myself to do it a third time in node.js. It’s a great brain training exercise to make sure you don’t get rusty. 🙂

    Liked by 1 person

  7. Daapii Avatar

    Really enjoyed this read, even though it’s written in 2009 there’s still useful information 🙂


  8. Ali Jewel Avatar
    Ali Jewel

    As a web designer i was feeling bored since a few days. Now i have found some very useful tips. Thank you.


  9. GURUSAMY Avatar

    I really like this … Great thought


  10. redshift Avatar

    I updated the point about having a dedicated workspace because Reddit comments made it obvious that I wasn’t making my own thoughts clear. You shouldn’t sit without moving, you just need uninterrupted time for focus.


  11. Steve Jobs Jr. Avatar
    Steve Jobs Jr.

    Yeah, thanks.


  12. terroare Avatar

    Thanks man for the inspiration 🙂


  13. vishal patel Avatar
    vishal patel

    thnx for inspiring me…
    useful info.


  14. Montoya M Luis Javir Avatar

    Thanks for the advices. Especially is important to hang out with other programmers, that’s why physical programming courses are effective.


  15. pavangudiwada27 Avatar

    thanks a lot , it would be helpful if you can mention a site or place on the net to find more programmers


  16. Jai L Avatar
    Jai L

    Reading this in 2018, and getting inspired. Thank you !


Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s