Ask HN: How do you find projects to work on?

10 points by itbeganwithvoid ↗ HN
Whenever I attempt to teach myself a programming language I get partway through the coursework and then lose a lot of interest because I'm not able to use it for anything relevant to me. Is it just a matter of grinding out the course and overcoming the monotony?

How would you recommend a thought process for coming up with beginning projects that have utility and aren't complex enough to be intimidating?

Would helping work on open-source projects that I use be a good way to make what I'm learning relevant to learning language? Are there any good resources that beginners might not be aware of that will help that beginning hump?

Thank you

8 comments

[ 3.2 ms ] story [ 26.6 ms ] thread
I am still a beginner programmer myself, but I do have a couple small projects under my belt. If you happen to have an office job, I would recommend trying to automate anything you do that involves copying information from one source to another. We have many different systems here and they do not communicate, i.e. our complaint database and our POS. I've made programs that make it so I don't have to retype information over and over again. My next project is to make it so that certain weird text documents are easier to read by exporting them to a excel document.

This solution doesn't work for everyone, as some of us don't work at computers. But, if you can find a way to automate anything that you do, whether at home or at work, you'll have a good project to work on.

Automating stuff and writing little helpers is a great idea. I would suggest to start with the command line. I wrote a lot of tools for it. Basically everything in daily life, which involves repetitive math, like tracking finances, calculate taxes etc, has the potential to be transformed into some tailored script in your favorite language. Also everything which transforms or involves text, is appropriate. For instance, instead of using some random smart phone app to train memory, I wrote a program to practice the mnemonic peg system by using the shell. Once you start writing such a tool, you will quickly run into practical problems, which need to be solved. Usually this triggers creativity and a learning effect.
My go-to is to build a web scraper with the new language/framework. You touch a little bit of everything and get a pulse on it's ecosystem.

- HTTP requests - JSON parsing - XML parsing - Iteration on lists - Persisting data to a database

And in between all that you get types, conditionals, loops, packaging system, etc etc. It's a nice catch all.

I usually like to make projects which solve one simple problem or fill one need.

For fun once I made a site where I categorized images of bouquets by the flowers that were in them. This learning ended up being the basis of the photo browsing functionality on my site https://officesnapshots.com

I also like to look at city government websites to see what parts of them are terrible and then make my own, better version.

For instance, Santa Barbara posted their crime stats in tables on their website as well as precinct boundaries on a different page. I then learned a bit about combining those two things using CartoDB so you could visually see where crime happened.

Lots of inspiration everywhere if the goal is learning or fun!

If you don't mind me asking, do you make money off affiliate links on your site?
We sell advertising space which is not affiliate driven. Our readers are primarily architects and designers who are purchasing products through furniture dealers as opposed to online so affiliate stuff doesn't really work (I've tried).
I tend to be a content oriented maker so as long as I have the content the project gets formed around it. I used to like to play with logo designs logominer.com was my website. You can still find my twitter account @logominer that shows screenshot of the website. Basically I was looking for away to present a break down of established logo designs such as DHL, Nike or Dropbox and other so I created an app portfolio. Recently I came across a book author that I made a contact with as I liked his books so much. After some email exchanges we came up with idea of promoting his books on a website that I would have to build https://hundredfoot.com. Later I got a few other authors onboard but the point is that go and look for the content to process and present in a different shape or form. Go after things you like and make a product around it. It will often end up being just a side project but you will enjoy the process not to mention learn new things. Good Luck