PHP Development

Is PHP worth learning?

Is it worth learning PHP?

In other words: is PHP programming language bad? No, it isn’t. It only looks that way, but PHP projects – especially legacy ones – are very messy. Often you will find that no documentation exists for old PHP frameworks

After roughly 15 years of development in PHP the quick answer is: it is worth learning only if it helps you to get commercial experience and the first job faster, to get foot in the door of IT industry. After all, number of websites based on PHP is huge, and they require maintenance – some boring job has to be done on regular basis. Except that, many companies got stuck in Laravel vs PHP vs server software upgrades loop. What happened is, that Laravel and PHP upgrades take significant amount of development time. Somebody needs to do maintenance and upgrades of old PHP code, and it gives opportunity for beginning programmers to find the first job in IT industry faster.

Additional advantage of PHP is, that you can use OOP, that means: object oriented programming with the famous SOLID principles. This can give you basic understanding of OOP, which you can use in other, more advanced languages.

Commercial, real life experience in web development / software development is very important whatever programming language you use, and you can get it quicker if you start with PHP, albeit for very low salary. Still, better than nothing, and as long as you learn some other, better paid, programming language your time in PHP job will not be wasted.

It is worth to have some commercial experience in PHP, because most of business logic / patterns in online services architecture doesn’t depend on programming language. Payment gateway integrations need to be developed according to the specs provided by payment gateway company and are very similar for different languages. Or, for instance some API library needs to be handled and it can be done in Python or PHP or using Node.js. And, PHP is rather easy to learn, even with object oriented approach. You can quickly learn not only PHP, but also basic SQL is easy to learn with PHP, and there are no problems with installation of server using MAMP, with MySQL database for learning.

Many online services are built based on PHP, be it WordPress or Laravel or anything else. Long time ago PHP was the first choice for most online websites, so you can easily find large, old code base written in this language, which needs maintenance.

With languages like C#, Python, C/C++, JavaScript related stuff (REACT, Node.js, Vue.js etc) and in general frontend technologies situation is much more complex. It can be easier to create some kind of visual portfolio (frontend), but much more difficult to get real job. After all, your first portfolio would be built on examples, without real commercial experience. To put is simply – there is much job in PHP boring like hell, which needs to be done, and you can get job quicker, work at least 1 year or maximum 2, learn at this time – for instance – Python, and jump for better paid job. Once you master PHP and get some commercial experience, it is better to pick up another language or frontend technology, and move on, because in coming years PHP will be more and more problematic (PHP upgrades inferno), and less paid.

So, I would say, PHP is good as a language to start software development career, to get first job and some experience, if you cannot get it with other languages. After that I would recommend switch to Python, C# or frontend stuff like REACT. BUT – read below.

PHP is Toxic

The problem with PHP is, that usually as a PHP developer you need to know frontend stuff anyway, and several other things on top of that. Whereas, if you know Vue. js, C#, or REACT, they don’t ask if you know PHP, so job is easier, and salary is often higher.

So picture this scenario (valid for better paid jobs): you know PHP and you look for a job, but they also ask for REACT skills (common scenario for online services based on Laravel) and salary is X. However, if you know REACT only, or C# only, they don’t ask about PHP, and salary is higher. Strange, but true. 

But, it may be difficult to get first job in C# or REACT and for that reason PHP may be useful as an entry option. All this is about typical Catch 22 scenario: to find a job you need experience, but to get experience you need a job.

Paradox is, that PHP developer with SQL and REACT skills is less paid than REACT developer without any back end skills. Strange, but very often true. So, it is better to switch to REACT and forget PHP, and when you focus on REACT only, you will have less work, more interesting projects (on average) and higher salary.

PHP + MVC Framework

If you decide to look for a job as a PHP developer, don’t look for job as a “pure” PHP developer. Look for a job as PHP developer who specialises in Laravel, or as a PHP developer who specialises in WordPress/WooCommerce, or Moodle (nightmare, due to fact that it was not redesigned from scratch in the past), or PHP Slim, or Symfony, or CodeIgniter, or other PHP framework which has a recognised name. This is because PHP as such, as “pure” PHP, is rather useless (lower paid) compared to development in PHP frameworks, where you don’t need reinvent the wheel for every project.

Anyway, for learning PHP I would recommend to learn basics and quickly go to Laravel and REACT – useful for Laravel, after that switch to REACT and forget PHP, focus only on REACT, be expert in REACT. WordPress has advantage that you could create WordPress plugins or themes to be published on wordpress.org and this way get some visibility, more reliable portfolio, BUT, on average Laravel developers are better paid.

This way or another: PHP is good as an entry point, but after that it can become a dead end. However, if you can get a job as REACT developer (or in any frontend stuff) or C#, or Python, pick it up and don’t waste time for PHP.

Python language is a totally different story, as is also ASP.NET Core with C#.

So, to cut a long story short, if you decide to learn PHP do it with connection to some context, like: Laravel, WordPress, Symfony or REACT (front end for PHP frameworks).