Wednesday, July 02, 2008 1:09 PM
From time to time I get emails from people looking for ideas for projects. Often they are from students needing a project, but other times it’s just someone looking to try their hand at coding and want something to start with. Sorry to say this, but good ideas don’t just grow on trees! You wouldn’t email Stephen King and ask for a story idea would you? Obviously it’s not exactly the same, but coming up with ideas is a big deal.
Most great projects don’t come out of someone sitting around brainstorming about something to write! There’s a need to fill, so someone with the right skill set, creativity, and time digs in and loses much sleep implementing it. In the end, the project is judged based on the usefulness of the idea, and obviously the skill of the implementation.
I see the problem though. When a professor gives you an assignment to create something original, it’s a pretty tall order. What hasn’t been done yet? It seems like there is little room for innovation in the field of software. On the other hand, though you may not be able to come up with a truly original concept, it’s the implementation where you can shine. If you can come up with a fully functional word processor in 50kB, you’ll probably get an A! Innovation these days comes from two areas: new approaches to existing ideas, and hybrid presentation (mashups). Facebook was just taking a student directory and putting it online. Original? Not really, but it broke the mold for a web application. Mashups are seen everywhere now. Viewing a map of a business used to mean a static image on a web site or a link to MapQuest. Nowadays, you can embed Virtual Earth or Google Maps right in the page, even showing store locations and photos without writing much custom code of your own. It’s not really new, but combining these things together was revolutionary!
The best way to come up with ideas is to always be looking for them. If you are really serious about computers, you probably spend a lot of time in front of them. What bugs you? What could be done better? What’s in your room/dorm that isn’t represented on the computer? Take notes of these annoyances and brainstorms, so when you get that assignment you already have a few things to try. If you don’t have any ideas, you could spend half of your allotted time to coming up with the idea. That’s time wasted that you could be programming!
While I won’t leave you with any actionable ideas, here are some places to look that might inspire someone:
- Converting a real-world game to a computer game
- A fun idea for a screensaver
- Using web services to interact with some shopping sites
- Cataloging a collection of some items (bonus points for using shopping site API’s)
- Using open-source imaging libraries and being creative with a webcam/scanner
- Analyzing files and generating some kind of report(s)
Another fertile area is plugins:
- Windows Live Writer (lots of things here!)
- Vista Sidebar
- Firefox
- An uploader for Google’s Picasa
- Wordpress (blogging engine)
- Microsoft Office (somewhat advanced)
Good luck!