I’m a designer and front-end developer, and recently decided to build my own web app with little programming experience. On my own, I managed to build, design, and launch my first web app, an online directory of wedding invitation designers, in six weeks. Here’s how I did it and how you can too.
1. Know you should launch as fast as possible.
Nothing kills a new idea better than taking too much time on it. There are thousands of things more that I could have done to improve WeddingInviteLove before I launched it, but getting it out and generating feedback was much, much more important. I don’t mean you should launch an incomplete project, but pare down your features to the very minimum and get it live as fast as possible.
2. Build something you’re enthusiastic about.
Don’t do it for the money, do it for fun. I’m sincerely interested in the wedding invitation market and how to improve it, so I decided to make my first programming project something relatively simple while also taking advantage of my enthusiasm for the area. Building a web app is often frustrating and confusing, so make sure it’s at least fun.
3. Take advantage of help.
I decided to build WeddingInviteLove in Django and Python, rather than Ruby or any other programming language. Why? My friend circle includes a lot of Python experts, who I could lean on for help. I also tweeted often about problems I’d run into, and awesome strangers would reply with help. Never underestimate the power of asking for advice and help for any problem you run into — pride will only slow down your development time. Ask often (and politely), and you’ll also learn a lot faster, if you’re new to programming like me.
When you’re learning a new programming language, don’t blithely do tutorials verbatim — switch things around so what you’re building in your tutorial can be directly plugged into your web app. I used a blog tutorial to build the framework of WeddingInviteLove even though they’re technically different projects: I turned the blog framework into a profile framework by just changing some titles, saving time by learning and building my web app at the same time.
5. Get the hard stuff done first.
It was tempting to build the entire interface first but I deliberately ignored the design until I had things 90% working. This got me to constantly work on the code before working on the “fun stuff”, plus encouraged me to launch quickly since as soon as the code was finished, all I had to do was quickly “skin” it before getting it live with the assumption that I would be iterating on the design after it launches. Also, if I needed to abandon the project due to some insurmountable code problem, the time wasted wouldn’t include the time spent on design.
- If you’re a designer, picking up development looks really tough, but stick it out for a couple of months — being enabled with the ability of creating your vision is worth it.
- If you’re learning a new language, don’t do tutorials verbatim — take what they’re teaching, apply it to a different product, and you will learn a lot faster.
- Launch as fast as possible, since feedback on the product is very important.
- Don’t be afraid of asking “big wigs” for their advice — buying someone’s lunch is a small price to pay for knowledgeable feedback.
- Ask for help as much as possible and wherever you can find it.