Beginner web-developer help

A place to discuss the implementation and style of computer programs.

Moderators: phlip, Moderators General, Prelates

DoriR
Posts: 1
Joined: Mon Jun 06, 2011 6:44 pm UTC

Beginner web-developer help

Postby DoriR » Mon Jun 06, 2011 6:56 pm UTC

Hi all,

I hope this isn't redundant with 'which language should I learn first?" threads -I'm seeking help specifically with web frameworks like Ruby on Rails and Django for Python.

I am very new to coding in general and I've decided i want to give one of these two a go. I'm hoping someone can give me advice on which to choose. I know very little of both of these languages (or other languages for that matter), so i dont have much relevant background experience.

A major factor for me is community. Does anyone know the relative strengths of these two communities? I want to learn something that is backed by an enthusiastic and growing community - i know there are die hard fans of both RoR and django, but im wondering if one is clearly dominating over the other in terms of number of people adopting it, number of sites currently being built with it, rate of growth, etc. Searching online i find a lot of X vs. X articles that are a couple of years old, and i imagine much might have changed in the interwebs in that amount of time.

I know that on StackOverflow there are almost twice as many RoR tagged discussions as Django, but that is just one site.

My goal now is to be able to develop relatively simple sites at first - im partly learning for the sake of learning, not necessarily as a career path. My girlfriend has been teaching herself CSS (front end stuff, mostly working with Drupal), and I wanted to learn something that could complement that.

I hope this is enough information. I'd really appreciate any feedback from people in the know about these frameworks and scenes...

Thanks so much in advance, any pointers would be great

bytbox
Posts: 56
Joined: Wed Aug 19, 2009 5:43 am UTC

Re: Beginner web-developer help

Postby bytbox » Tue Jun 07, 2011 5:16 am UTC

DoriR wrote:A major factor for me is community. Does anyone know the relative strengths of these two communities? I want to learn something that is backed by an enthusiastic and growing community - i know there are die hard fans of both RoR and django, but im wondering if one is clearly dominating over the other in terms of number of people adopting it, number of sites currently being built with it, rate of growth, etc. Searching online i find a lot of X vs. X articles that are a couple of years old, and i imagine much might have changed in the interwebs in that amount of time.


They both have large, active communities, and will maintain those communities for the foreseeable future. Though i don't know much about RoR, Ruby has always been more geared for web development, and python has always been somewhat more flexible - but that doesn't mean that Ruby isn't great for other jobs, or that Python doesn't excel at web stuff.

I know that, as a beginner, you're trying to avoid investing time in a "dying" language - you're trying to make sure you're going down the right path. Stop it! Any reasonably widely-used language will have a large enough community to give you plenty of growing room. More importantly, the path you take will most likely change in the next few [months/years] - you may decide to learn haskell, or go into smartphone development, or (god forbid) .NET (is that even still around?).

If you're still worried, the solution is simple - split your time between both. You'll end up knowing both better.

'); DROP TABLE users;
Posts: 90
Joined: Fri Apr 22, 2011 11:44 am UTC

Re: Beginner web-developer help

Postby '); DROP TABLE users; » Tue Jun 07, 2011 11:22 am UTC

RoR is extremely powerful, and Ruby is fairly easy to learn. It's well supported and documented, and there is a fanatical community behind it. I don't have any experience with Django so I can't comment on that, but you can certainly do some impressive things quite easily with RoR. However, there are a few major warnings I would issue before you dive in there.

DoriR wrote:My goal now is to be able to develop relatively simple sites at first - im partly learning for the sake of learning, not necessarily as a career path.


Some of what I'm about to say will apply to frameworks in general, but especially for RoR.

1) RoR might make it harder to learn if you're starting as a beginner with little or no programming experience. RoR is a framework - the idea being that it takes care of a lot of the underlying, repetitive code that will be similar across hundreds of projects. It's a way to reduce the amount of code you need to write. However, if you're trying to learn how to code well, that might not be the best option for you. Frameworks are not a good learning tool. I suppose it depends what your goals are. If you just want to be able to throw up a few websites, then go ahead and use RoR (or another framework). But if you want to learn how to write good code, and understand the principles behind what you're doing, I would advise you to pick a language (like plain Ruby, Python or maybe PHP) and learn that. You'll learn a lot more doing things for yourself than by letting a framework do all the work for you behind the scenes.

2) RoR is a "convention over configuration" framework. The idea is that it takes care of common tasks for you, but it does this in its own way, using its own convention. It is not particularly friendly if you like to have a lot of control over the fine details of how your site works. Since you're just starting out, this probably wont matter much to you anyway because you'll want to follow the standard conventions. But if and when you come to do more advanced stuff, you might not want to be bound by some of the constraints that RoR puts on you.

3) You mentioned wanting to do something that could complement Drupal. Drupal is written in PHP. I don't really think it's possible to get RoR or Django working with Drupal in any useful way. Of course, if you can produce your own custom HTML/CSS independently of a CMS, then that doesn't matter.

4) For simple sites, RoR is probably overkill. In fact if you just want to do very basic stuff, using a framework is probably going to increase the complexity rather than reduce it. RoR is aimed at making complicated code easier to write. It isn't really geared towards simple sites, because simple sites with few features are easy enough to write that they don't need a framework at all.

So, my vote would be for RoR. It has a huge range of features and is very powerful. I would advise you to spend at least a little time learning Ruby itself before jumping into the framework. That will help you to understand more of what you're doing.

But before you make a decision, make sure you understand what you're choosing. I don't know how you picked RoR and Django, but you should definitely question why you want to use a framework (instead of just a language) before you start. Frameworks will hold your hand a lot. You wont learn as much by using a framework as you would by starting out with a plain language. The code you write for frameworks tends to be fairly specific too - if you learn vanilla Ruby, you'll find it easier to learn another language further down the line than if you just learn RoR. I think most people using frameworks are people who already have some coding experience and are looking for a way to cut out the repetitive tasks that they've already done a hundred times. Frameworks definitely insulate you from a lot of the underlying mechanics of programming. So if your goal is to learn programming and understand what you're doing, you should seriously question why you want to use a framework at all.

User avatar
Steax
SecondTalon's Goon Squad
Posts: 3038
Joined: Sat Jan 12, 2008 12:18 pm UTC

Re: Beginner web-developer help

Postby Steax » Tue Jun 07, 2011 3:55 pm UTC

'); DROP TABLE users; wrote:But before you make a decision, make sure you understand what you're choosing. I don't know how you picked RoR and Django, but you should definitely question why you want to use a framework (instead of just a language) before you start. Frameworks will hold your hand a lot. You wont learn as much by using a framework as you would by starting out with a plain language. The code you write for frameworks tends to be fairly specific too - if you learn vanilla Ruby, you'll find it easier to learn another language further down the line than if you just learn RoR. I think most people using frameworks are people who already have some coding experience and are looking for a way to cut out the repetitive tasks that they've already done a hundred times. Frameworks definitely insulate you from a lot of the underlying mechanics of programming. So if your goal is to learn programming and understand what you're doing, you should seriously question why you want to use a framework at all.


(Emphasis mine)

I agree with this. You will want some understanding on the underlying languages first before stepping into a framework at all.

On the other hand, sometimes I felt frameworks restrict me too much in the long run. Whereas if I did the tiring, repetitive stuff on my own, and later on I'd have no hesitation implementing my own functionality, frameworks trip me up a lot. Sometimes I have to look stuff up in documentation to hook an action or apply a callback, and I have to adapt with quirks and glitches that are native to the framework.

Not only are frameworks more for people who have experience and want to cut out repetitive tasks, but they're also for people who will need to cut them out further in the future. I.e. developing a career. If you're making sites for the sake of learning and the fun of creating websites, I highly suggest avoiding frameworks.

(I can't answer the actual question, though, being a PHP developer.)
In Minecraft, I use the username Rirez.


Return to “Coding”

Who is online

Users browsing this forum: No registered users and 10 guests