views:

115

answers:

3

I have only very basic experience with HTML/CSS and have quite a bit of experience with testing software and web apps from a consumer perspective. I'd love to launch a web application that plays nicely with Google services, similar to some of the apps you'd find on the Google Apps Marketplace, such as ManyMoon, time to note, Socialwok, etc. I'm a huge Google fan and would like to build something that's well integrated with other Google services.

  1. If you were a total beginner and wanted to build a complex app like one of examples above (project management, CRM, etc), where would you start?
  2. If you worked your ass off 18 hours a day, 24/7, how fast could you do it?

I've dabbled into various languages and development frameworks, and read about which apps are using what languages but it's hard to figure out what would be most beneficial to jump into. Ruby on Rails, PHP, Google Web Toolkit, AppEngine. The list goes on and on. I want to be able to build and launch my own scalable web app.

Thanks.

+3  A: 

I would start by

  • brainstorming a hands-on project
  • identify the skills you will need to achieve it
  • learn them as you work through the project
  • set progress goals and celebrate small victories

For most people 18 hrs/day 24/7 sounds a little overly optimistic. A reasonable goal would be to form an interesting project idea and research the needed skills the first week, work through a few tutorials and maybe apply your own functionality the second week, build something 'complete' the third week, then take a step back and take another look at your original goal.

As far as choosing a project, I find a notepad helps. I'll be somewhere and think, 'wouldn't it be nice if...' and I'll go look for a solution that provides that 'what if' and find it doesn't exist. So there you go.

Rob Elliott
Thanks for the answer Rob.Your bullets sound a little easier said than done for me. I guess that's where I'm stuck now. How do know what skills you will need, if you don't know much about the skills themselves?I know what I want to build, but I don't know how to identify the best way to do that.I almost feel like just collaborating with a developer on the project instead. The main thing I want to do is just build a mock-up of the app so I get a working model for demonstration purposes. I fully understand that if I want to scale and go bigger, I'll need a team of developers anyway...
ronii
+5  A: 

One bit of advice: There is no shortcut for proper experience. It took me 4 years to come to a point where I can build enterprise level web apps - even though I had the dream of building one immediately, right from the beginning. Start small and build your way up.

Even though I did hate this advice when I was receiving it... Don't try to build the next Facebook platform right now.

Now, to answer your question:

Skills:

You must be absolutely clear about server-client interaction with respect to HTTP. You will never understand AJAX fully without understanding HTTP and behind the scenes of browsers. Note: being clear and knowing everything are two different things. Be clear about HTTP.

Learn about HTML/CSS and JavaScript standards to some extent to know that they bahave differently in different browsers. In the grand scheme of things, they are not that important if you are okay with some framework that handles these for you (I recommend JQuery and JQuery UI).

Learn a little about Linux, Apache, PHP.

How to go about it:

To develop web-apps, you could start with the LAMP stack - Linux + Apache + MySQL + PHP.

First build a small web app that does something trivial - like saving and retrieving user's stuff using AJAX and a nice UI or something. I'd recommend jQuery and jQueryUI for JavaScript and UI frameworks.

Then, build a small web app that just gets data from some Google service, given a user's credentials.. I am not Google expert but I guess Google provides APIs for some services(?).

Then build an app where two people can share their data coming from a Google's service or something to that effect.

Then add your own fancy stuff.

It goes on like that.

If you are a .Net person, you could go with.. Windows + IIS + MS SQL Server + ASP.Net3.5/VB/C#. Guess what? StackOverflow is build on that stack :)

Learning about and using an MVC framework is also a good idea - ASP.Net MVC or something similar for PHP.

Minor clarification - By Google-friendly did you mean SEO-friendly? If so, Google-friendly and web-app don't go well together.

It makes sense to build a Google-friendly website not a web-app.

Senthil
Why do you recommend that he start with PHP or C#? There are plenty of other languages/stacks out there to learn on. I would personally recommend learning with Python and App Engine, since that's what he asked for.
Jason Hall
Two reasons: 1. I've seen average programmers start with C# and PHP and they are doing good after a year or so now... 2. It is my personal recommendation and also I haven't worked with Python so I don't know much about it.
Senthil
Thanks very much for the answer. Are there any great places to learn this stuff yourself? I like working at my own pace because I commonly pull all nighters when I'm on to something interesting. I've checked out Lynda.com, w3schools, and a few others. What do you guys recommended that's available through the web?Also, in terms of what to learn, you threw out HTTP, AJAX, HTML, CSS, Javascript, Linux, Apacha, PHP, and you didn't even mention anything like Rails, Python, C#.This sounds overwhelming already. Do most web developers learn it this way?
ronii
Also to clarify you question. I meant building web apps using languages that work great with Google's APIs, like the ones I mentioned in my original post that are offered in the Google Apps Marketplace. Some of the apps actually almost look like Google-built apps.My plan for the things I want to do was be closely integrated with existing Google services such as Gmail, Contacts, Wave, Docs, Maps, etc. Similar to how some of big small business apps today integrate with them.
ronii
A: 

I would also have a look to one of the top voted questions here on Stack Overflow:
What should a developer know before building a public web site.

systempuntoout