Regarding PHP I'm a little mixed. I started my programming career on LAMP so I wouldn't be where I am today without it. But looking back, I sure wish I would have started "properly". A good MVC framework, an intro to the command line. I'm not blaming PHP itself. Case in point http://kohanaframework.org/ (which i eventually discovered a year in..)
Rather imo it's just way way too easy to learn bad practices as a n00b programmer in the php community. You really really need to know where to look and assume the quality respectfully. if you google stuff as i did you get "scripts" that 9/10 are terrible but you don't know any better. what is the "script" for comments on my blog? Anybody have a "script" that lets me run a facebook clone?
Aww man what times!
I guess the good thing is I have a fuller perspective. I was the ultimate spaghetti coder and now I know exactly why and how that's bad, real bad .. I'm also pretty decent at sql because I wrote everything natively. B)
I'd say rails just because I know it and it forces you to learn the command line, MVC, and OO. php is good when its properly OO MVC but what n00b knows that? I sure as hell didn't =p
Since the OP is already familiar with Java it's my assumption he'll seek out the "right way" more naturally than someone completely uninitiated.
That's the route I went: 6 months of C at uni (as well as some assembly for PIC and Motorola micros) then learned Java on the job then freelanced for a while doing PHP. I found I was immediately able to discount popular open source projects of the day (osCommerce being the most memorable) as appallingly written just due to the fundamentally broken way they made use of object orientation (this was before PHP5), even though I didn't have that deep an understanding of the "big mistakes" most people make when writing PHP. In fact one of the first things I did in PHP was write my own framework, which was a good exercise and I still use it in production but I didn't know enough to make it good/usable for others so it never went anywhere.
I'd say, also, in general the "ambience" in the PHP community has improved immeasurably. If you're using ##php as a resource, and modern articles and frameworks to learn from, you've got a far better chance of not falling into the n00b traps than you did 5 years ago.
As a side note re: RoR - I just can't take a framework seriously that would settle for an ORM tool that doesn't support composite primary keys. Same with Django. They're toys as far as I'm concerned.
I've not used RoR commercialy but I have used Django and found it's "opinionated" nature very frustrating - felt far too detached from the "real" HTTP and there were several instances where I wanted to solve a problem some way that was perfectly reasonable in terms of performance and security but Django "wouldn't let me". I assume it's the same with RoR although I've never had good reason to find out.
IMO if you're saying "get a solid grounding SQL" that is not compatible with taking up rails (or Django).
Regarding PHP I'm a little mixed. I started my programming career on LAMP so I wouldn't be where I am today without it. But looking back, I sure wish I would have started "properly". A good MVC framework, an intro to the command line. I'm not blaming PHP itself. Case in point http://kohanaframework.org/ (which i eventually discovered a year in..)
Rather imo it's just way way too easy to learn bad practices as a n00b programmer in the php community. You really really need to know where to look and assume the quality respectfully. if you google stuff as i did you get "scripts" that 9/10 are terrible but you don't know any better. what is the "script" for comments on my blog? Anybody have a "script" that lets me run a facebook clone?
Aww man what times!
I guess the good thing is I have a fuller perspective. I was the ultimate spaghetti coder and now I know exactly why and how that's bad, real bad .. I'm also pretty decent at sql because I wrote everything natively. B)
I'd say rails just because I know it and it forces you to learn the command line, MVC, and OO. php is good when its properly OO MVC but what n00b knows that? I sure as hell didn't =p