PHP to Java transition


This is my first post, so please be aware of possible below-par quality and non-professional rambling all around :)

From the start I want You to be aware that this is written from a perspective of a happy Java programmer that just started writing in Java about year ago. I do have pretty extensive experience with PHP that I’ve gathered over some six years of work. So don’t expect a “fair trial” or other comparison here.

I’d like to tell You why this is a good direction to take for any programmer wanting to make his work better, from my point of view.

About two years ago I started noticing that all the really good guys I’ve been working with are migrating away from PHP and I’m getting more and more stuck with people whose programming skills are pretty mediocre. And the loss of great people was more and more visible each day – we lost guys that made great strides to standardize work for all of us, who fought battles with management and clients for more time on development, more testing, etc.

They didn’t just leave for the money involved – in fact, most of them got a lot less cash going from senior developer in PHP to junior developer in Java, but every one of them said the same thing… It was well worth for them to sink their teeth in a completely new language, search out a job opportunity they would spend months of their time to prepare for. But the satisfaction was priceless, and the feeling was like You’ve left behind a bad neighborhood and moved on to live in the Capital.

I started my adventures with computers as a kid, when my family bought an affordable computer – the Commodore 64 – a real dream come true for me then :) Me and my brother spent countless time playing games on it, but only I saw it as anything more than entertainment machine. I’ve learned some BASIC and that was it for the next ten years. Our parents managed again to buy us a PC based on a Pentium 133 CPU, and again few years later, a computer with AMD Athlon 64 3000 unit. Oh, there was a Celeron 300A somewhere there, but I think I just got most of it myself somehow…

Around that time I was about the only kid in the neighborhood that new how to “fix computers” (ie. reinstall windows…). I always knew that I want to make a living off of my computers, but have no specifics on how to execute it. Eventually I slowly did learn about web development and started to make some money doing that.

It was all chaos – without proper schooling I got my first job as a “web developer” – a guy doing a mix of HTML, CSS, JS and finally PHP. I always did try to learn by example, asking myself – what will happen if I do this? And it worked for a time. After a few years I felt about my programming knowledge like I was brought up by wolves – total chaos, no consistency. I did learn things only after it was required for the job. I went through my first job to fifth in what is for me now a giant blur of time spent at meaningless work.

Every time I had some conscious team member at work we had to talk about how to share work, how to resolve a task, etc. Again and again those guys quit and I was left to team up with people less communicative, not willing to learn, self-centered and proclaiming that they know everything. So I did quit too, not able to find “equal” amongst coworkers. That’s what bothered me the most – the good guys understand after a while, that this language is so easy and accessible, it does attract morons… After four subsequent jobs I took, I’ve grown accustomed to this scenario…

You can try and succeed in creating a great work environment centered around PHP, but it’s just too much work. This language is just a stepping stone, and not a final destination. Maybe it’s because the quick-and-dirty mindset of the plain folk, who wish nothing more than to sit for eight hours idly and go on with their lives after work? People not willing to adopt better practices and leaning towards “the easy solutions” create a bad work conditions for the rest.

After some time You do see that that struggling with this is just a waste of time. Instead of trying to change people, change the environment.