Newbie advice - developing a website

Hey everyone. I would like to build a website that would function
similarly to youtube. I have absolutely no experience with computer
programming, but I’m good with computers in general and I’m a quick
leaner.

Basically, I’m trying to get an idea of my options at this point. I’m
leaning toward hiring a developer (since I would like to be up and
running in about 6 months). I am also looking at doing some of the
programming myself. So, I have a few questions and any help or advice
would be greatly appreciated.

In terms of a DYI:

  1. How difficult is it to learn Ruby on Rails from the absolute
    beginning and progress to where I could build and maintain and further
    develop a website similar to youtube with my own custom tweaks?

  2. How long would the above take starting from no experience at all?

  3. Where should I start? Any good books or tutorials for the beginner?

In terms of hiring a web developer:

  1. How much (ballpark) would it cost to develop and maintain such a
    website?

  2. How long would such a website take to build?

  3. Do you have any recommendations in terms of developers and/or
    companies I should work with or contact for help?

General questions:

  1. What are the steps involved in building a website?

  2. What is actually programmed when you build a website and how is this
    process different from the artistic design of a website? Are they two
    different stages and two different processes or do you program the
    artistic design as well? I’m not sure how to draw the distinction. An
    example would help.

Any info would help me greatly, and thanks for your time.

Tom Hukk wrote:

Hey everyone. I would like to build a website that would function
similarly to youtube. I have absolutely no experience with computer
programming, but I’m good with computers in general and I’m a quick
leaner.

Basically, I’m trying to get an idea of my options at this point. I’m
leaning toward hiring a developer (since I would like to be up and
running in about 6 months). I am also looking at doing some of the
programming myself. So, I have a few questions and any help or advice
would be greatly appreciated.

In terms of a DYI:

  1. How difficult is it to learn Ruby on Rails from the absolute
    beginning and progress to where I could build and maintain and further
    develop a website similar to youtube with my own custom tweaks?

You can build simple stuff pretty easily. But when it comes to
developing robust, scalable and secure multimedia rich web applications,
it’s going to take a while to get to a level a proficiency that you can
handle that well.

  1. How long would the above take starting from no experience at all?

Too many variables. But if you want this to be your first project with
Rails. Expect to make tons of mistakes and scrap the project entirely
at least one or twice as you learn better ways to do things.

  1. Where should I start? Any good books or tutorials for the beginner?

Agile Web D. with Rails 2nd Edition

In terms of hiring a web developer:

  1. How much (ballpark) would it cost to develop and maintain such a
    website?

Too many variables. Perhaps $5,000 - $100,000 depending on feature set,
scalability, rates of developer, etc.

  1. How long would such a website take to build?

3-9 months, depending on feature set, scalability, etc.

  1. Do you have any recommendations in terms of developers and/or
    companies I should work with or contact for help?

General questions:

  1. What are the steps involved in building a website?

I usually work like this:

  1. Design a mockup. Get the client to approve mockup, or change the
    mockup until the client does approve.

  2. Design and HTML layout from that mockup as the beginning of a rails
    application.

  3. Design some subpages and get the client to approve them.

  4. Create the HTML and functionality for the subpages as the client
    approves the designs. Repeat until finished.

More or less.

  1. What is actually programmed when you build a website and how is this
    process different from the artistic design of a website? Are they two
    different stages and two different processes or do you program the
    artistic design as well? I’m not sure how to draw the distinction. An
    example would help.

Rails has a Model, View, Controller architecture. This means you have
different areas of your application code that are responsible for
different categories of tasks. The design of a website, falls under the
View. The views take the information fetched and processed by the rest
of your application and shows it in HTML form.

The Model represents your data. Every table in your database, or every
type of object is a Model. These handle reading and writing data to the
database, and other functions that pertain directly to your data.

The Controller handles incoming requests. When your application
recieves a web request from a browser, the controller fiqures out what
action to execute. That action then retrieves or manipulates data from
your models, and sets up a set of data to be passed to the view so that
in can be rendered in HTML.

In summary, the view is HTML with bits of dynamic code sprinkled in,
that where you put the traditional design of a site. The Controller and
Model, however, are pure ruby code and contain all the code for what
your application actually does.

Any info would help me greatly, and thanks for your time.

If you decide that you want to take on most of the task yourself, I
can give you a small bit of advice. I am new to Rails, with no
programming background at all, other than some basic JavaScript and
PHP stuff that I have done in the past.

In the 3 short months that I have been learning Rails, it has been
awesomely fun! Ruby is a great language and Rails is a really fun
framework to work with. I started literally from the ground up and
have been steadily learning each and every day.

In the very beginning, I bought 3 books. The first was the Agile Web
Development with Rails book. This book is a MUST for learning the core
concepts of Rails. Next, I bought the “Build your own Ruby on Rails
Applications” book from Sitepoint. This book really helped me to get
the basics going and understand what I was doing. I also bought the
“PickAxe” book, which has been an excellent reference guide for Ruby.
All I can really say is to read a lot, build some small, basic things
to get a feel for Rails, and then go for it.

So, here is my advice:

  1. Buy some books to help you with the initial learning of Rails.
    Bookmark the Wiki and API as well!
  2. Check out some of the great screencasts out there! (Railscasts and
    Peepcode are unbelievably good!)
  3. BUILD SOMETHING! Get something up and running and work on it as you
    go. Don’t worry so much about the details in the beginning, just get
    your idea down on paper and build it, tweak it, refine it as you go.
    The details will come along as you get more experienced.
  4. Get involved in the community, they are a tremendous help to
    solving problems, and helping lend a hand!

I think that if you go in with the mindset that you can do it, you
will. It will take a lot of hard work and learning, but the rewards of
you building it yourself will be much greater than hiring someone. I
think the route you choose depends on your ultimate goal. If this
project is simply for your own financial gain, then maybe hiring
someone is the way to go. If you are doing it to learn programming,
reward yourself with a finished project, and gain knowledge, then you
should certainly give it a shot!

Good luck with it!

–Cory