Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Had an original idea for a start-up...but
28 points by netconnect on July 30, 2009 | hide | past | favorite | 36 comments
Hi, long time reader (I always save it to last when I'm reading through all my RSS feeds because it's my favourite), but first time poster. I am an eighteen year old Australian guy halfway through my first year of university, I am studying a bachelor of IT and Systems with a major in security (thinking of changing that, will see what happens). Because of my fairly poor background and current tight budget (university -> eep.) I have become a very resourceful person with allot of time on my hands (can't afford to go out now much can I). Usually I spend it reading all sorts of ebooks and papers and trying to learn new skills.

I have always admired the people I read about on HN talking about their start-ups and ventures into exciting projects and business. Last night I had a fantastic idea, something I really believe would be worth my time to give it a shot, but I am totally inexperienced. It might be childish but I would rather not go into detail about my idea, just know it combines some e-commerce with some social networking concepts. I want to code the site using PHP and a bit of Java-script, but my skills with these are not exactly up to the job yet.

So I ask you HN, will you point me to-wards what you believe to be the best of the best resources for: PHP, Java-script, web hosting, texts on starting your first project, and e-commerce

I would also welcome any and all input from you guys, don't feel like you have to play nice, I am very open to you poking holes and learning about how the "real world" actually works.

Thanks for reading this.

"Usually I spend it reading all sorts of ebooks and papers and trying to learn new skills."

I suggest you switch gears and spend your free-time coding :-).

Pick some technology you think you want (you can change your mind later) and start doing side projects in it. Do up your personal home page. Make a google maps mashup. Some stuff to familiarize yourself with the technology.

There have already been lots of good suggestions on which technologies to use. Try a couple different ones.

Absolutely. More specifically, start your startup. Create a folder for your product and open a text editor. Immediately you'll be in the uncomfortable situation of not knowing exactly what to code first. Code a mockup page first. Don't worry- you can throw it away- just get a page that you can show to a trusted friend and say "this is how it will work". Then add in some javascript, you know, just for demonstration purposes. Then hook in some backend stuff, you know, for better demonstrations. Learn from books and tutorials only exactly what you need to push your project forward.

In a few months of this you'll learn 100x what you could learn by trying to learn generically. It's frustrating and difficult, which is exactly why you're brain will be primed to learn what you really need to learn.

At some point you'll know so much that you'll look at all your "demo" code and think- "man, this is crufty. I know enough now to do it right." That's when you build your first product (using pylons or something awesome that you've discovered out of necessity) that will be used by hundreds of thousands of people and will bring you glory and riches.

Best of luck. Did you create the folder yet? Is your text editor open with the beginning and ending html tags yet? Is your browser open to a reference to those silly thing that you feel you should know but just can't remember yet? GET TO WORK! Oh, and you're grounded from RSS feeds for 1 month until you can prove you're learning. ;)

I made this mistake for about a year. Ordered/downloaded tons of books, read published papers, etc. I learned a fair bit, but honestly you don't really learn until you start doing. Your return per hour spent coding is on average far higher than your return from books and papers. You shouldn't stop reading, it just has to be limited.

My learning process usually works like this:

1) Learn the syntax/guts of a tool by going through a book, tutorial and trying trivial examples.

2) Work until I run into a problem. (How do I make merb-auth work with a flash uploader?)

3) Find examples/read a book/look at API docs until I figure it out. (Ohhh, you write a Rake middleware to handle it!)

4) Goto 2.

So reading materials are important, but I usually use them to solve real problems. There's no part of this process that doesn't involve writing code.

Glad to see I'm not the only one that thinks like this. I sometimes feel like a fraud because I haven't read the latest-greatest book on X. Sure, I use X every day, but I don't understand every last teeny aspect about it.

Yeah, I don't think I've read a development book cover-to-cover, I always have something in mind that I want to build, so I stop the book half way and code.

I always skim the rest looking for an answer, but the point is that I will almost always get the best results just by diving in head first.

PHP is pretty easy to get in to, I asked about js frameworks here a while ago and pretty much unanimously got jquery back so that's what I'm using myself now and so far it has been very easy to use and does what I want it to.

Build a small website or two using PHP and js before you go for your major idea, that will probably save you a rewrite later on. PHP is a strange platform to develop for, the language has its shortcomings which makes it very easy to make a mess of things but with some discipline and a good plan on how you intend to separate your business logic from your presentation layer you should come out well.

Have a look at templating as well, no point in reinventing the wheel there, at least not until high performance becomes a real issue (using a templating engine adds some overhead).

good luck !

And about keeping the idea secret: Before you execute do some really good searching around to see if it isn't already out there, also not sharing your idea with other - not neccesarily the HN crowd but in general - is an excellent way to get into 'island mode'. Get early feedback that way you can tweak your idea while it is still just pencil sketches. Later on that gets a lot more expensive.

I think the best way to learn this is to get into a framework and start hacking with it. Go through the tutorials and re-develop what was done in them. Then develop a small appliaction just for you. Maybe it could catalogue movies if your a collector, or document your exercises etc. Just something that would be useful and a learning experience.

Then do the same thing with Javascript. Look at some tutorials. Re-develop them. Experiment with cool animations, ajax requests, things like that.

The frameworks I recommend are Kohana (www.kohanaphp.com) and CodeIgniter(www.codeigniter.com) for PHP.

And like most other people, I LOVE jQuery. (www.jquery). Feel free to email me (its in my profile) if you have any questions. I'd be glad to help.

You definitely WILL be surprised at how fast you can pick these frameworks up.

I would also recommend using KohanaPHP. It will take a little time to learn, but will be well worth it when you start developing.

I'm similar to you. Australian (Sydney), 21, Uni student, tight budget. E-books are great, but as others have said, just start fiddling.

I won't tell you what to do, because I'm still quite inexperienced and other advice in this thread will likely be far more valuable, but what I've done is purchased a cheap slice @ slicehost.com. I taught myself to work with Unix, setup apache/nginx, php, mysql, perl, python, ruby and so forth, fiddle with the internal settings. Then you start learning how these things interact with each other.

I then suggest installing something like Kohana, which is a fantastic PHP framework. By working inside a framework you are forced into good habits.

PHP, HTML and CSS should come first, in my opinion. Once you have the basics of these there, start implementing some fun Jquery and making a small site that's database-driven. All of a sudden you're using 5+ technologies, and from hereon out you'll learn things as you go.

*Edit: feel free to drop me a line if you want to chat some more! woodsier at gmail

I'd try Python. There's less syntax to type, and examples are more consistent due to the general flexibility of th language. Django and the Python Facebook module would be a good start.

Replying to myself: I meant to say general inflexibility. I.e., one right way to do it, rather than many.

Everyone in the thread so far has ignored a really important point: a business is not a piece of software. Do you want to write a piece of software, or do you want to start a business? They are two different skill sets.

Javascript: Start with Douglas Crockfords "Javascript: The Good Parts". Excellent, terse primer on safe Javascript development.

Startups: Read content by people like Peter Graham, Joel Spolsky, Rob Walling, Guy Kawasaki, Bob Walsh, Andy Brice - just to mention a few of my personal faves. Skim around, there's lots of great free content out there on software startups!

You mean Paul Graham?

If you want to do it right, I think you should learn a couple of things.

Learn PHP first. You don't have to become a guru at it, yet. Go through tutorials, buy a book or two, experiment. Try doing something small that you think you'd need to do for your project.

Once you're at least somewhat comfortable about using PHP, start looking into PHP web frameworks. There're MANY. Pick one. At this point it doesn't really matter which one it is. They all have similar concepts. If you learn one, it's much easier for you to learn the other ones afterwards.

You didn't say whether you'd be coding from scratch or using open source (or commercial) products/platforms/libraries. Typically these days, unless your idea is VERY unique, people tend to assemble rather than code. What that means that you pick products/platforms/libraries that do what they do best, then "glue" them together with your custom code. I'm not sure whether that applies to your idea, but I would assume so. If so, look around for products/platforms/libraries that provide most of what you want and are "battle tested", and extensible (if that's what you need). Play around with them, figure out how to use them, and if they don't work for you, take what works in them and re-implement the rest.

As for JavaScript...jQuery is VERY popular. There are others, but that does seem to be emerging as a defacto standard of sorts. Still, learn the basics of JavaScript first (if you don't know it already).

You also didn't mention what your background and expertise in databases is. You're gonna need some sort of database for this thing, almost certainly. If you don't know SQL, you need to learn that, too.

Once you actually start building your idea, be open minded (and smart about designing it) about replacing any part of the application stack, if after you become familiar with the parts you find out they really aren't that great for what you're trying to achieve.

I am hoping to be able to pull together code for this project, but a fair part of it has no similar code that I can find allready around. Do you know any resources/examples/guides for "gluing" other pieces of code together properly?

As for database skills, one of my units for this half of the year is a database course based heavily on SQL, but I have already had a few experiences.

Thank you.

Unfortunately I'm not that familiar with PHP based ones, so I can't point you to specific resources.

I usually Google: "PHP <whateverthehelliwant>" Works reasonably well.

If there are PHP user groups near you, that'd probably be another great resource to leverage.

Wow guys, this is why I love this community. I'm taking note of all of this, going to print it out and put it on my wall when the comment activity stops so I can always just look at it for that little bit of inspiration to keep going.

"I want to code the site using PHP and a bit of Java-script, but my skills with these are not exactly up to the job yet."

You must understand that you need to learn 2 separate things and you need to learn them well.

For javascript on the client you need nothing other than the browser you already have and the Rhino book:


Learn what's in this book! Go through all the exercises and tutorials. Build something. You can augment the book with tutorials you find on-line (ex. Webmonkey). Then you can View Source on any web page and understand what they did (and what they did wrong).

On the server you will have to find any common LAMP stack and load in onto your machine. The execises and tutorials for php, MySQL, and apache should be enough, although you can find more almost anywhere. Build something! Now that you already know javascript, you can include that in the pages you build as required.

Only after you have a solid understanding of the basics of these 2 technologies should you consider a framework. This can be tricky. If you adopt a framework too soon, you may run into a problem for which you don't understand enough about what's going on under the hood because you never learned it. If you adopt a framework too late, you'll be hand coding everything and will never get done.

Most importantly: you can only learn any of this by doing. Time consuming doing. Books and resources any necessary but hardly sufficient.

Do not fall into the trap of only learning at the surface and expecting to find someone else to do the coding. This does not work for a small software start-up. You must dig deep and learn well.

Thanks for finally posting. I hope you came to the right place. Get to work and keep us posted.

I am in Sydney. Feel free to drop me a line.

Our startups actually work in some of the area that you described (haven't launched yet).

But, i agree with other comments, research around ...most of the time, it won't be unique. But, you'll learn more and more as you do more iteration of releases.

The best resource is a PARTNER.

Get a buddy, don't do it alone, mate.

Should I develop my skills first? Maybe write up a bit of a plan to share with possible partners?

And how did you guys find partners on your first projects?

I'd just search around for tutorials and stuff on what you're looking at (PHP, JavaScript, etc). You really only need a basic understanding to get started. And that's what you really need to do...just get started. Ultimately you don't become an expert by reading books, you become an expert by doing. You'd be amazed at how much you learn by figuring out why something's not working the way thought it should.

My advice is to meet as many like minded people as possible. Face-to-face bandwidth is amazing :)

I'm based in Melbourne, feel free to drop me a line.

First, no code. Sketch. Sketch using a magic marker on printer paper where the other side has already been printed. Make these sketches quick and not-pretty. Do many. You want to be able to throw these out without hesitation. Using software to build pretty wireframes will invest you in how something looks. Don't do it. Wireframe software is for presentations.

Think about the flow of the majority of users. Can you engineer it so that 80% can do what they need to do in the fewest clicks possible? Remove functionality. You can always add it later. What are the core experiences you want your users to have? How lean can you make the experience and still have it do what you want it to do?

Spend the next couple of months sketching. Leave your house. Go sip espresso at a cafe on the Rocks. Think about those people. Now go to Paramatta. Think about those people. (I'm assuming you're in Sydney.) Go be in places where different people from different walks of life are and be with them. Really figure out who your audience is. Get to know your audience really really well. Focus on that audience. You are their servant. Show them random sketches and get them to tell you what they think about the layouts you're sketching. See if you can engineer four or five different ways to flow the same experiences and functionality.

My favorite framework for social networks with ecommerce is Drupal with Ubercart. I've built several social networking sites with ecommerce using it. The user system is already built. It's very flexible and just a little PHP can get you a long way. What's more, there's a very strong community built up around it with forums and several IRC chatrooms. There are meetups in Sydney, Melbourne and Brisbane. There are many themes available that can be customized with just a little tweaking. There's going to be a learning curve no matter what framework you use, but Drupal has the advantage that the need for Drupal developers and themers is growing exponentially. (Recession? What recession?)

The way that Drupal adds functionality is by adding modules. There's a central repository on Drupal.org with thousands of modules already written. Chances are that much of the functionality you're looking for can be built using combined Drupal modules. Drupal has a system of hook functions for users, content and just about anything else you can think of. You can search for pieces of functionality using google and add the word Drupal in front of it. When you land on an article or forum post, pay attention to which version you've landed on. It's important.

The thing that will really prove Drupal's worth is the community. It's very supportive, has its own security team, and when you build a site, and there's a security update, your site will email you and let you know. (It'll let you know whenever there's an upgrade, too.) Drupal's a gratifying playground for developers. (While the framework isn't object oriented, it's good to be up on objects and arrays.)

While you're in the sketching phase, build a couple sites for nonprofits in your area. Not only will this teach you how to build sites in whatever framework you choose, it'll teach you about working with clients, and you'll learn a lot about why you don't want clients. (Nonprofits are notoriously disorganized. There's something about the profit motive that focuses people.)

Expect this kind of schedule:

3 months of sketching layouts and workflows. Meanwhile, become part of the community and build small sites for yourself and nonprofits. 3 months hacking at whatever technology you want to learn. 3 months starting and throwing away Drupal sites. Start over as many times as you need. Use version control. (GIT or SVN) 3 months building your site. 2 weeks to 1 month theming your site. 3 weeks testing with friends and family (closed beta) 3 weeks extending closed beta 1-2 months open beta Launch when you have the marketing in place.

Marketing can be done for free in several stages. Very very often the free marketing is much more effective than the paid marketing.

Look at business partnerships. Who also serves the same audience but isn't a competitor? For example, if you want to reach kids, you can partner with one of those companies that takes the school pictures and has products like mugs or t-shirts with the kid's picture printed on it. You can add a membership to your site to their product catalog for no money down. See who is serving the same market and who has already done their marketing homework and partner with them for a percentage.

Lastly, remember that this is a marathon and not a sprint. Do not burn yourself out. It's important. Once you have the site up and running, it's only the beginning. I haven't mentioned hosting or other important details, but the information is out there. If you can get a partner, life will be easier and you can provide moral support for each other.

Your university library might have a lot of books on these. Get a couple for PHP and JS and read them through simultaneously. That way, even if one book misses something you get it from the other one and the best part is, it does not cost anything.

Your university library might have a lot of books on these.

You've got to be careful here. The vast majority of books on Javascript are terrible and will actually make you a worse programmer if you follow them. Better to stick with Javascript: The Definitive Guide by David Flanagan, Javascript: The Good Parts by Douglas Crockford, and maybe Pro Javascript Techniques by John Resig, especially if you decide to use jQuery.

I was in the same boat about 2 years ago, so I'd like to share my story with you FWIW... but it'll have to be after work! Just a heads up, my two cents are on their way!

I really look forward to it!

learn some low level php to get you familiar with it - then switch straight into a framework.

I use KohanaPHP - kohanaphp.com (dont go with Code Igniter, not any more)

I've heard CakePHP is pretty good too but never actually tried it (have a play and see).

A really good "dip into" resource once your familiar with PHP a bit is the documentation pages on www.php.net

install xampp or lampp and start coding, you might want to do jobeet from http://www.symfony-project.org/jobeet/1_2/Doctrine/en/

Binary Cake is probably a viable resource for the OP, so I'm unsure as to why you were modded down. Can anyone comment on the quality of these casts? They'd be good to point people at in the future if they are worth the money, especially if the founders are news.yc people :)

the founder of binarycake is a great guy, he's 15 and is working at my startup. If that helps :)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact