views:

70

answers:

4

I'm new to web development although I'm confident in the roadmap for the front-end. I need direction on two things:

  1. Basic architecture
  2. Back-end technologies

For architecture, what do I need to get started? From what I know, its:

  1. Get a domain name registered (godaddy?)
  2. Find a web host
  3. ??? anything else? or start developing the site?

I don't think its that easy, there must be something I'm missing, right?

For the back-end technologies, I have application development experience with Java and Python, but how likely is it to find a back-end hosting site that supports these languages over PHP? Is PHP a better choice? If I stick with what I know for the back-end, am I sabotaging myself later on? If I need help, how is the market for a python/java developer vs. a php developer?

What do I need to know about databases? I have some basic SQL experience. Do hosting sites have limitations on the type of databases or bandwidth I need to worry about?

I'm working through some of the common sites: StackOverflow, Sitepoint forums, Google, etc...are there other resources I should use?

A: 

I feel like this question is 6 questions... and would be better suited for http://serverfault.com/

http://serverfault.com/about

But to answer you...

Register your domain.

Find a host that is not rated as "unlimited" They will cut you off as soon as you use more than X amount of space and bandwidth.

I prefer ruby on rails, I like it better than PHP, and if you don't know either, I'd start with that. But PHP does have more code available for use.

If I were you, going into making a website you know nothing about... I would partner with someone experienced than can guide you. If you don't know what you're doing, you're doomed. Site can get hacked, bandwidth overage, outages if you use a wrong DB, etc.

pinnacler
+1  A: 

The answer to some of this is "it depends," but I'll try to explain some of what it depends on.

You're going to need a domain name, no matter what. That means you need to point the DNS record to a nameserver somewhere. To have a nameserver, you need a host. Most hosts will do "managed DNS," which is probably what you're looking for. You sign up, possibly letting the host register your domain name or perhaps pointing GoDaddy in the right direction using the "Domain Management" dashboard.

If you're planning a small website you're probably not planning to need a full 100% (or more) of a server's CPU, so you probably want to go with a shared host. These are companies like Bluehost, Dreamhost, Host Gator, etc. If you're looking to burn a lot of CPU or just need to manage your server, you should use something like Linode or Slicehost.

I think it's fair to say most people go with shared hosting. Those companies will typically have your machine set up with PHP, or have options to install things like Ruby. Look for a host with a "cPanel," which is a useful graphic interface for managing things like DNS, packages and cron jobs.

If you choose to manage your own server, you're going to need to install Apache, PHP and a bunch of dependencies. Using a "package manager" on something like Ubuntu generally makes this one or two lines (sudo aptitude install whatever). There are lots of tutorials on this, the ones on Slicehost.com are especially nice but you can find others using search terms like "Ubuntu + apache + configure + virtual host."

editor
+3  A: 

If you're not ready to start shelling out money for hosting/domain name right away you can always start off developing with the server on your local machine.

I've used WebFaction for hosting and they have relatively easy setup for different setups like Ruby on Rails and Django/Python as well as SVN, Trac, Wordpress etc. (I'm not at all affiliated with them other than as a customer)

Also check out What should a developer know before building a public web site?

Davy8
A: 

Get a local version of your web app working before you even consider hosting options.

You'll have a better idea of disk space/bandwidth requirements and will most likely make a more informed hosting provider choice then...

Konrad