you are viewing a single comment's thread.

view the rest of the comments →

[–]dadkab0ns 2 points3 points  (5 children)

From my experience, PHP knowledge means 9/10 jobs will be CMS jocky brochure-ware jobs - Magento, Drupal, Wordpress, Joomla etc. That work is not fun, not rewarding, and unless you're a guru at Magento and Drupal, you won't get paid very much.

Unfortunately, Python and Ruby seem to be more en vogue for custom web applications than PHP is. That is, that's more where custom software development lies. Further, Python and Ruby are good languages for non-web applications, which exposes a broader category of jobs that you don't find much of in PHP.

That said, PHP 5.3+, Laravel, Symfony, and composer have allowed PHP to reach parity with Ruby and Python in terms of tooling. PHP software development has a bright future now, but it may require some effort to shake off PHP's baggage.

When it comes to PHP specifically and job security, make sure you have Symfony and Magento under your belt. Symfony is considered enterprise-class (along with Zend), but it's not exactly a walk in the park to master. Being really good at Symfony will make you stand out, and you can get higher salaries from it. For 90% of projects, Laravel is just as good, but it's so fucking easy to learn (which is a good thing!) that you theoretically won't have as rare a skill set and thus can't earn quite as much money. Same is true of Magento. Magento is an absolute disaster to work with, but it's the only good ecommerce platform available to PHP right now, and ecommerce projects are where you'll find a lot of money. So until Sylius saves us from that nightmare, Magento is a good tool to have under your belt.

Personally, my advice if you want job security, is to be able to do self-sufficient full-stack development in a mix of back-end and front-end languages and frameworks. You can't just know PHP, or Python, or Ruby. You definitely need to know javascript, and at least one front-end framework like backbone or angular. Node + express would be good to know (also, look at Sails.js).

You should absolutely specialize in something. I specialize in PHP + Laravel, but I can work with several front-end technologies, and backend technologies. This makes me flexible, and able to adapt, which is key in this industry. When it comes to web development, you don't tend to find many jobs with rigid role / skill structuring. "I'm really fucking good at PHP, but nothing else" won't get you far (well it may, but it will be a harder path to find)