views:

257

answers:

10

First Question - I've been "learning" PHP for about 3 years, but to be honest, I feel like I stopped learning it a while ago, so I want to start learning something new. I like web programming, and that's what I want to focus on, so I was wondering what the best/most useful language to learn would be. What language would I be best off knowing if I wanted to work for a web development firm?

Oh, for whatever you suggest, if you could recommend some good books for it, I'd really appreciate it.

Second Question -- Can anyone recommend any books/"tutorials" that explain OOP principles? I never really understood the benefit of using it, and whenever I tried to get into it in PHP I didn't really understand the point of it. So if you know of any books that aren't necessarily language-specific, I'd really appreciate it.


Any help is really appreciated, because I feel like I'm wasting my time trying to figure out what to do, so any direction would be really helpful.

--

Thanks for all the answers. I'm about to read through them, but I thought I'd mention that I do know HTML and CSS, and a good bit of JavaScript (and I've used jQuery a good bit). I really only learned the basics of JavaScript because I wanted to use jQuery, so I guess going back and learning more about JavaScript wouldn't hurt. :-p.

+2  A: 

If you're into web programming, Javascript would come in handy =)

Samuel Carrijo
A: 

If you really want to lean OOP in any context Java is probably the best language to learn in. Then again its a lot more complex. I dont do Java and learned OOP with PHP and some Ruby and Python here and there - but i didnt really struggle with it either. So take that for what its worth.

When you talk abpout demand and skill set id say youll get the most bang for your buck by learning PHP and/or .Net - particularly with C#. And of course as Samuel recommends javascript is always good to lean in combination with with a server side language.

prodigitalson
+4  A: 

Honestly, the best thing I would recommend is to develop skills that can be used in conjunction with your PHP experience. You could try doing things like asp.net or python, but why not learn things that can be stacked together. My suggestion would be to learn how to use these together:

1.HTML- You probably already know this well enough, but it's the foundation of a website

2.CSS- Applies styles to your website. It don't matter if you have the best knitting site out there, if Grandma Lucy has a choice between a text only site, and one with good formatting, she's going to pick the pretty one

3.PHP- Server-side scripting. You know this though.(substitute ASP.Net if you want)

4.mySQL- Database to hold all your information

5. JavaScript- Client-side scripting. Allows you to do all the fancy mouseover stuff, and bring animation to your page. When you learn enough, use it in conjunction with PHP to create AJAX type effects (substitute Flash if you want, jQuery for sanity)

Cortopasta
Excellent! That is a good list. I would recommend Java down the road. After Javascript though.
Arlen Beiler
A: 

I would say JavaScript and Ajax. After that would probably be Flash or Java.

Arlen Beiler
I couldn't get along with Javascript so I just did ajax.
Ben Shelock
E=mc2 : E is Ajax, m is Javascript, c is HTML | Ajax = Javascript times HTML to the Second power.
Arlen Beiler
A: 

My take:

I read "Coders at work", and then after some introspection invested in Python. Then I do not know where the language path will lead, but I'm thinking on going functional.

About the OOP book, I'd recommend everything from Head First Labs, I have not gotten my hands into the object oriented programming books, but loved the Design Patterns one and the ajax one as well (but less)...

dimitris mistriotis
A: 

jQuery/AJAX. While one is a framework and the other is a set of ideas, learning jQuery and the AJAX concept will transform what you're capable of doing. Web programming is fun again! jQuery is so easy to use, you'll wonder how you ever got along without it, and you'll be able to do so much more.

Mike Sherov
A: 

This is a great article of why OO sucks.

Luca Matteis
Sorry. I have to disagree with just about everything in that article. It appears to be written by someone who doesn't understand OO programming.
Jesse Weigert
@Jesse: I agree completely. All the arguments seem to boil down to *OO is not functional programming, therefore it's bad*.
Treb
Do you guys even have a counter argument?
Luca Matteis
Do you really need a counter argument from **us**? OOP is probably more popular than any programming language or concept. Just google it and you'll find dozens.
Andreas Bonini
+3  A: 

You love programming for the web, I recommend this learning path:

  • Get your basics right and understand web standards -> HTML, CSS ,
    JavaScript handcoding

  • Get used to a javascript framework like jQuery

  • Learn a OO language that always had OO to start with like Ruby, Python, C#, Groovy

    1. Try becoming proficient with DB as an app dev.

    2. Stick to a stack like Rails, Grails, Django, TurboGears or ASP.net

Point 3&5 is generally the biggest hurdle. Best of luck.

Perpetualcoder
Which do you think would be more useful in the long run? Python, Ruby, or PHP? Or something else? I know I can learn more than one, but I want to start focusing on what I'm most likely to use.=/.
Andrew
PHP support is more common/cheaper on servers, plus you already have three years experience with PHP.
Cortopasta
If you get the fundamentals of the web right...serverside lang becomes a mere tool..i am not a PHP fan so..I would go for Ruby or Python..for ur OO stuff read good OOAD books..PoEAA by Martin Fowler is a must read alongside Gof
Perpetualcoder
+3  A: 

To answer your question about OOP; I definitely recommend PHP Objects, Patterns, and Practice by Matt Zandstra.

jeroen
+1  A: 

As others have mentioned before me, client-side scripting is essential. Learn the basics of plain Javascript, then pick a framework or two (jQuery, YUI) and learn how to write code with those.

There are many tutorials that explain how JavaScript works on the net, and basic skills are easy to pick up. Once you know the basics, JavaScript: The Good Parts is a good book to build upon the basic knowledge of the language. jQuery in Action is a good introductory book for jQuery.

If you haven't done much OO PHP, there's a fair bit to discover yet. There's a good PHP-specific book that explains OO principles and benefits: PHP in Action: Objects, Design, Agility. Head First Object-Oriented Analysis and Design is another good book that will help you learn to think in objects.

Rowlf