Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

At the moment, like a fair few of you I'd imagine, I spend at least 40 hours working on projects that use a specific set of technologies. Sometimes I'm doing maintenance, and have those technologies enforced, and sometimes I'm doing new builds.. but have the skillset of the team enforced due to maintenance reasons (quite rightly).

Yet I've got a growing set of technologies I want to test the waters with; be they custom Javascript frameworks or new Mobile Development techniques.

I have no idea how to get to grips with them though! Take for instance the Chromium Embedded Framework; I've always been a fan of the UI of the GitHub app, and also been impressed by both Evernote and Spotify. When I found out how those UIs were produced I naturally tried thinking of a project that I could toy about with and produce over a weekend. (Which, with minimal OS interaction (perhaps simple file manipulations), should be ample) But I can't think of a single thing to develop.

At work I've been tasked with retraining on Ruby on Rails; not wanting to go in blind - I decided to hammer a few books and try a few techniques. Now aside from the usual Lynda.com examples, and the very good "Agile Web Development with Rails" project from the book... I can't think of a single thing to develop.

Ordinarily I'd consider contributing to some FOSS software, and with frameworks I use regularly I do actually have a few ideas and I belong to the relevant mailing lists - i.e The Apache Cordova mailing list, and have signed the appropriate paperwork where required. (i.e For Apache Licensed projects)

Sometimes it's good to have an idea and run with it from scratch though, especially if you're new to the technology. So how do my fellow programmers manage doing that, and more importantly, how do you get ideas that allow you to use that specific framework/technology? It's hard to shoehorn ideas in to specific technologies at times.

I fear this is half the battle and the other half is how to keep such a project when work commitments can eat in to your personal time, and as it is, downtime is quite a valuable commodity!

share|improve this question

closed as off-topic by Corbin March, Dan Pichelman, psr, MichaelT, GlenH7 Aug 15 '13 at 13:18

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – Dan Pichelman, psr, GlenH7
  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Corbin March, MichaelT
If this question can be reworded to fit the rules in the help center, please edit the question.

2  
I build cool tools that I can use at work, or elsewhere. Usually work as it's easier to come up with the ideas for the stuff I need. When I was learning Groovy on Grails my first project was a web app that gave a cool little view of each pre-production environment and its current software versions and deployment stats. –  Deco Aug 14 '13 at 13:12
    
+1 Deco. I create tools for my own personal use at work as it's easier to find "gaps in the market" - analysing/visualising our own data files, debugging our software, etc. When I use software personally these days, it's for fairly vanilla purposes and I always find perfectly excellent tools already out there. Hard to get motivated to write something additional that realistically won't be as good. –  MarkJ Aug 14 '13 at 16:07

2 Answers 2

up vote 4 down vote accepted

There are a couple ways I get ideas for things to work on. As you go through your normal life, think of useful programs that might be nice to have and then make a note of the idea. That way, when you have a need to learn a new technology, you can look at this list rather than trying to come up with an idea from a blank slate.

Here are the ways I do it.

Standard utilities

I've got a few general utility programs I keep around that I rewrite into new technologies. For example, I've written a program to print addresses on envelopes on pretty much everything I've owned. Keeping one or two ideas like this around is great because you already know the requirements, you can focus on learning the technology to build it.

For example, if you want to learn CEF, you can build a really nice HTML view for the envelope and a pretty UI. You could build it in ruby on rails and install it on your home server so that it can store common addresses and be accessed by your whole household. If you want to learn an image framework, you can start making the printouts prettier. You can write a mobile phone app for it to learn iOS or Android.

Hobbies

Hobbies are usually a good source of ideas too. There's usually some fairly easy things that could use automation or support. Here are some examples from my life:

  1. I've got a friend who has a small golf league and needed a website to track scores, compute handicaps and create round-robin matches.

  2. A local charity my mom worked with was spending a lot of time manually writing labels for their Angel Tree program at Christmas. A few hours spent got the info out of their systems and put it on the labels.

  3. Keeping track of all of the possible adventure and plot hooks for a roleplaying game can be difficult, but a system to tie them together works well.

  4. Data mining home finances by extracting transaction data from various bank accounts, categorizing it and doing projections.

Anything can work

Just remember, your idea does not need to be original! It's perfectly fine to reproduce something that already exists, because the goal is to learn, not to produce a finished product. If you have an idea that is new and that you can share with the world, that's great. But don't get stuck because you can't find the next world-changing product.

share|improve this answer

All of us are short on time, but somehow manage to find it for our pet projects. The reason? There is usually a problem that needs solving or a cool tool/feature we want that is not readily available elsewhere.

Without this spark of inspiration, you're going to find it that much harder to get going.

If I were in your shoes, I'd maybe find a piece of software you admire/like and try the following:

  • Write a clone (or subset of it)
  • Write a complementary/value-added feature
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.