

Designer eager to become Developer - BenWhit

I have put together a few web pages (html,css,jQuery) but am very new to Web Development. I have only done front-end design. I am comfortable with Linux but don't know Apache or MySQL but am in the process of learning Rails as my framework. Will learning Rails be better then learning a LAMP stack for getting a website online? Or am I comparing apples and oranges? And what would be some different hosting options for each?
======
biscarch
Choice of language is pretty much a matter of comfort when you're first
learning. The question is, do you want to be using Ruby/Rails or
PHP/Wordpress/Codeigniter/etc. If you're just learning, you're going to _want_
to code in whatever language you choose. Just for reference, you can create
backends for websites in Clojure, Java, Python, Haskell, go,
JavaScript(node.js), etc as well.

I'd say use Ruby/Rails if you want to create webapps and PHP/etc if you want
to create Wordpress sites. Someone more experienced than me in these languages
can comment further.

Heroku.com supports Ruby and from using it with Clojure and node.js apps, I
highly suggest this route even if you enjoy setting up your own servers. You
can also use providers like Amazon EC2/Joyent/Rackspace and set up your own
box to be either a LAMP stack or Ruby/Rails.

There is a long list of Databases to choose from these days, including: MySQL,
PostgreSQL, Riak, CouchDB, MongoDB, Cassandra, etc.

Truly the answer you're looking for is "Just start somewhere". The amount of
tech you can choose between is dizzying and you'll eventually get to a point
where you can make your own decisions if you just keep hacking.

~~~
BenWhit
Thanks for the great reply to start. I clearly am a little over my head and am
always looking for the "right direction" to go and end up getting caught up in
buzzwords. I only have a few web pages that I need hosted, so frameworks
aside...would hosting options such as linode or rackspace be the best option?

~~~
biscarch
Yes.

If you want to get into designer/developer mode for clients you are likely
going to have to learn to host your own servers (note: I don't mean
physically, I mean services like Rackspace, etc). If they're a couple static
(ie: no server-side language) pages that won't get hit very often, you might
use github's pages functionality.

I'd go with Rackspace over linode due to the great feedback I've heard about
Rackspace, whereas I've heard relatively little about linode. Personally I use
Heroku as they have a free tier that helps when just "getting stuff out
there". The problem with Heroku is they don't have explicit support for PHP,
so that could be an issue for you. If you're going to go after big client
work, Amazon Web Services (EC2) familiarity is a nice checkbox to tick.

Remember a server is just a computer. If you can set it up to run on your
computer, you can set it up to run on a server.

P.S. Get used to being in over your head. It's the fastest way to get up to
speed, just learn how to swim underwater.

~~~
BenWhit
I do want to be able to host my own servers..one day..as for now I think I
will "just get this project out there". I think I've got enough Rails under my
belt to get the few pages I need up, and Heroku's free-tier seems perfect to
learn and practice on.

------
jfaucett
I'd say the stack to learn depends on what you want. Basically, the best bet
for a job anywhere is knowing LAMP plus frontend (which you already can). I
think rails/ruby is prolly going to be harder but if thats what you like then
go for it :) As far as apache goes if you just want a job as a developer
basically all you need to know is mod_rewrite aka regex, and some really basic
other stuff like virtualhosts, etc that you can learn in a day. On the other
hand SQL is going to be harder, learning "enough" shouldn't be a problem, but
to know how to use joins,views,triggers,migrations , etc is something you
should start on in tandem with your programming language. I know too many
developers who don't concentrate enough on knowing/managing their data when
this is always the heart of your application. As far as hosting goes, with
LAMP you all you need is a nix machine somewhere, I'd suggest getting a linode
(<http://www.linode.com/>). This also has the added bonus of great docs and
you can try out and teach yourself everything on your own machine w/out crappy
cpanel stuff.

Good luck!!

~~~
BenWhit
Thanks! That's good to know about Apache. I haven't even had a chance to look
into it thoroughly. Maybe I'll dive into it this weekend :) So if I want to
get up and running quickly my best bet would be to grab a linode with a LAMP
stack?

~~~
jfaucett
yep :) I'd suggest getting your linode with the distro you want, then going
through one of these tutorials <http://library.linode.com/lamp-guides>. Also
have a look at all the other docs on library.linode.com there really good and
you can learn a lot.

Lastly, if you happen to decide to learn PHP instead of Ruby, I'd highly
recommend starting out "the right way" with a framework like Symfony2
(<http://symfony.com/>) or Flow3 (<http://flow.typo3.org/>) that uses
namespaces, good OOP techniques, ORM, and encourages / will teach good
programming techniques. Also, have a look at composer
(<http://getcomposer.org/>) - which is the modern PHP equivalent of Ruby Gems.

------
countessa
A LAMP stack will be easier to deploy simply because pretty much any cheap
hosting you get as a playground will support it out of the box. Rails is a
little more tricky to deploy. That said, Ruby and Rails is, in my opinion,
more fun than an equivalent in PHP (pure opinion though so don't let that
colour _your_ experience).

I would suggest taking one bite at a time - find the easiest deployment
possible for your chosen stack (if it's rails, then deploy some test projects
to heroku). Learn to program a little before trying to jump in and do the
Apache setup etc. Nothing is more frustrating than wanting to see your
creation on-line but you just keep hitting your head against a brick wall
because you can't deploy. I'll also put in a good word for webfaction for good
cheap hosting that supports rails, django, and php very nicely without you
having to do a lot of server admin - perfect for a playground.

~~~
mion
I second that, if you're new to Rails you should definitely check out
deployment with Heroku, they made an awesome job making it really smooth and
they have great documentation on how to do it. Michael Hartl covers this
exceptionally well on this section of his book:
[http://ruby.railstutorial.org/ruby-on-rails-tutorial-
book#se...](http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec-
deploying)

~~~
BenWhit
Definitely a smooth install and setup for Heroku. Michael Hartl's tutorial is
great. I've actually been going through it today!

------
RollAHardSix
I would just begin to expand on your back-end skills. Since you have
HTML/CSS/JQUERY under your belt. Continue to work on those, and also begin
with a database (MySQL works fine), once you learn basic database-ing, then
begin working on the controlling logic between the two. I would recommend PHP
only because it's a quick language to learn and get busy with. This gives you
a solid set of skills and a good view of the process. From there you can begin
to enhance what you do with the two.

Nothing needs to be super-advanced, get down and dirty and learn quickly; more
advanced work will come with time. As biscarch said 'just start somewhere'.

~~~
BenWhit
Yeah, LAMP seems to be the best route to get up and going faster, I think I'll
start with that. I need to be learning those DB and process skills to begin
with, which makes taking the LAMP approach probably the best option. Thanks.

------
codeonfire
You have to decide what kind of developer you want to be. A hobbyist would
probably go with the most out of the box stuff, so would use something like
rails. You could be a specialist developer who only knows one framework and
language. Or if you want to be a total pro you will want to learn all the
frameworks because you are very adverse to your coworkers knowing anything you
don't.

~~~
BenWhit
I completely agree and I do want to be a total pro but am too spread out. I
need to start focusing on certain aspects...maybe learn the ins-and-outs of a
complete framework?..like Rails while continually learning more and more in-
depth HTML, CSS, and JS? I guess my aim is to be a full-stack developer but am
struggling finding my footing on the server-side of things.

