PDA

View Full Version : Which should I learn first?


Drayven
05-03-2009, 05:04 PM
Just a quick question for all you technical types out there. I used to do tech support for a company that made a content management system to generate websites. From working on that I learned that I really enjoy messing with HTML, CSS and all that and want to focus more on web development. As part of that goal I'm going to take a few online classes at the local community college just to get started in some different areas. The question I have is this, which of the programming languages should I start with? I guess I'm mostly wondering which has the most hope of actually proving useful to me in the real world. Right now it's between asp.net, ruby on rails or PHP & MySQL. Any insight people might have would be great. I think i'm leaning towards starting with Ruby.

johnperkins21
05-03-2009, 05:26 PM
Personally, I'd start with PHP and MySQL. It should give you a basic set of tools to at least understand the core elements of all the other languages. WordPress is developed using PHP and MySQL. Set up a blog and use it to play around with different plug-ins and such.

ASP.Net would be good as well considering how widely used that is. The point is to get a basic understanding of programming principles. From there learning any other programming language is just the syntax.

LiquidRain
05-03-2009, 07:23 PM
Look at your local job listings. Count how many are for each language. Then decide. :) (I guarantee you Ruby won't be there...)

I can't give you my personal opinion, though. I'm a PHP man, but I don't know ASP or Ruby, so I can't tell you which is easier to start with.

Drayven
05-03-2009, 08:02 PM
The reason I was thinking of Ruby is just that the companies that my girlfriend and her mom both work for are supposed to be up to date on the newest technologies and such and both of them are working with Ruby on Rails now.

Oh yeah, I could also throw Java on the original list since I don't know that either.

LiquidRain
05-03-2009, 08:26 PM
Java is a much, much different beast. Stick with the made-for-web languages.

photogray
05-03-2009, 10:18 PM
Personally, I'd start with PHP and MySQL. It should give you a basic set of tools to at least understand the core elements of all the other languages. WordPress is developed using PHP and MySQL. Set up a blog and use it to play around with different plug-ins and such.
http://www.snagpic.com/users/img/2269/n09x0302vnsn/clear.gif
ASP.Net would be good as well considering how widely used that is. The point is to get a basic understanding of programming principles. From there learning any other programming language is just the syntax.

I agree these are the most relevant in the world today

johnperkins21
05-03-2009, 10:38 PM
Oh yeah, I could also throw Java on the original list since I don't know that either.

Stay as far away from Java as you possibly can. It's an abhorrent language that should be destroyed right now.

Couple problems with Ruby. It's incredibly new, so who knows how long it will really last. And it's built around taking direct control away from the programmer. This is good for people who are new to programming and want something easy, or even people who have been doing it a while and just want to whip something up quickly. What you really want to do is learn the basics of programming. Once you have that, learning any language will be as easy as looking up what you want to do in a reference guide.

For example, all languages will have loops of different sorts (i.e. for, while, until, etc.). They just have slightly different syntax to produce the loops. The most important thing to learn is what the difference is between those different loops, and when you need to use them. Learning that Ruby does a for loop a certain way isn't going to help you as much as learning why you want to pick that loop.

The training available for .NET and PHP is probably more robust, and readily available. You'll find many more resources for .NET and PHP than you will Ruby or Java.

Slack3r78
05-04-2009, 12:43 AM
Do you have any programming background at all? I don't know that I'd recommend PHP as a first language given its near total lack of coherent design. I'm not a huge proponent of Ruby, but it's the direction I'd lean toward.

Once you have that, learning any language will be as easy as looking up what you want to do in a reference guide.

For example, all languages will have loops of different sorts (i.e. for, while, until, etc.). They just have slightly different syntax to produce the loops. The most important thing to learn is what the difference is between those different loops, and when you need to use them. Learning that Ruby does a for loop a certain way isn't going to help you as much as learning why you want to pick that loop.
Which is why I'd be hesitant to recommend PHP to somebody that's never programmed before. There are just too many places where the language was assembled ad-hoc that open themselves up to learning poor practice.

You'll find many more resources for .NET and PHP than you will Ruby or Java.
.NET, maybe, I'm not as familiar with it. I have a hard time believing that Java resources are anywhere near hard to come by given the number of universities that teach intro CS with Java (which I think is a mistake, personally). Not saying I'd recommend Java, just that I don't think a lack of learning resources is a fair knock against it.

EDIT:

Just to throw out another option, Python's a solid, mature language that's a fairly decent one to learn on. Python and Ruby are the two big up and comers in web languages these days, though which you might be more comfortable with is largely a matter of preference.

Raen
05-04-2009, 05:51 AM
Ruby on Rails is lovely, but can begin to get confusing as you're not just learning a language, you're learning a framework.

PHP is very forgiving but as has been noted isn't really a great base for moving into other languages. Also it probably has the least helpful errors of any languages I've used.

DangerousDaze
05-04-2009, 06:32 AM
If you're interested in a web development job I'd recommend Ruby on Rails. Not because Ruby is the most commonly used language (far from it), but because the RoR framework provides support for many concepts you'll find extremely valuable whichever direction you take:

Ideal for agile development
The Model - View - Controller pattern
RESTful applications (REST = Representational State Transfer, but don't let the name worry you!)
Test Driven Development, which leads to being able to refactor with confidence
Easy to version control your data model. This makes it easy to upgrade and even downgrade if necessary once your application has gone live
It promotes "convention over configuration". This means that rather than having endless configuration files and/or setup code it uses naming conventions to link certain concepts together. This isn't always a good thing but it removes a lot of unnecessary complexity from your applications.
It's easy to get going!
Ruby is a really powerful OO language but you don't really need to know it to the extreme in order to develop web apps.
I'm not saying that you don't get any of this stuff with other languages, but the RoR framework was designed from the ground up with these in mind so they just feel natural. To me, anyway!

Drayven
05-04-2009, 07:28 AM
Do you have any programming background at all? I don't know that I'd recommend PHP as a first language given its near total lack of coherent design. I'm not a huge proponent of Ruby, but it's the direction I'd lean toward.

I was actually a computer science major for a while but never completed it so I have had some courses in C++ and a little Visual Basic. I've also done some tinkering with Java over the past few years and some very very basic modifying of PHP. So I have some familiarity with programming but nothing I feel comfortable with. My PHP experience consists of being told what files I should be modifying and adding a few customer codes here and there when I was setting up a new customer.

Looking over the course list it looks like they do have a Python course too so I guess that'd be an option. So many choices! :P

Carnifex
05-04-2009, 11:57 AM
+1 for Python. It's an easy language to learn and has a large toolkit. There are some really powerful web frameworks and CMS systems written in Python. Django and Plone comes to mind. There is a list of more examples on the Python site (http://wiki.python.org/moin/WebFrameworks).

torrefaction
05-04-2009, 12:36 PM
Python, no question. It'll teach you good programming practices (It enforces them.), has widespread use, and if this is any indication, it's one of the 3 official languages at Google.

http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm