No serious software company would ever look at php for their new project. Except for some legacy reasons.
Also, don’t base such decisions on current job market snapshot whatever it is.
If you don’t feel like throwing up every time you deal with microsoft universe - c# is overall a solid choice, engineering and caree wise.
Rails is pretty big in North America, not at all in europe and it has strong bias towards startups.
JS(ts) is a solid choice overall - all sorts of companies from crappy devshops to faang on all continents use it for various projects.
Java (and other jvm stuff kike scala kotlin) is also a solid choice, but with a strong bias towards big boring corporations and large slow complex, often over-engineered projects.
Python has a strong bias towards AI/ML world. It’s rarely used outside of it for critical production software.
Ruby is a great choice for your first programming language to learn and as an example of a dynamic language with amazing devx. But it is limited mostly to rails based companies.
I suggest getting some commercial experience with 1 dynamic and 1 statically typed languages early in career.
Because it’s a) scripting language b) not even a good one.
Even if modern versions somehow overcome those limitations - nobody would bet an expensive project while there are plenty of more relevant alternatives
My opinion is, that you don't really learn a language and its concepts (deeply) by coding for about 1 or 2 hours daily following tutorials. You learn it, when you are coding >5h a day solving problems you did not come up with yourself (company projects), best case while reading much code of a foreign code base trying to understand and extend it.
Learning a language to get a job is probably the wrong long term motivation. In my opinion learning multiple languages should be more out of interest for new concepts[1]. I would also think that a great C# programmer should be able to learn PHP quick enough to apply for a PHP job - but I wouldn't recommend it.
The first language I learned was PHP, and I still love it, but it was hard work to apply for a job not having PHP as the main language, because PHP was a limited language in terms of concepts. The language evolved over the years, but due to its nature still lacks Generics, Multithreading (at least kind of), Events and many more, also considering it not has the best Performance.
My recommendation:
Even if in your local area PHP is the most wanted language, I'd rather apply for a remote C# job, than focussing on PHP. If you would like to add something to your portfolio, I'd go with a compiled / strongly typed language like Rust, Go or Java, checkout Python and jump on the AI hype train or put more effort in improving your actual skills (in JavaScript and C#). I think C# and JavaScript / TypeScript are great languages to find a job BTW.
I'd recommend learning PHP if it helps with immediate job opportunities. PHP is still widely used in many places so that skill won't come to waste. However, long-term, learning a more versatile language like JavaScript or Python could open a few more doors, not just backend roles.
If you want to make the most out of it - probably continue with JS for the backend - throw in TypeScript. You'll also be able to use that knowledge in frontend (and anywhere else really) as a bonus, and it's not going away. IMO your best bet.
Ruby is my favourite but at the same a niche language compared to JS or PHP - I'd check the local market first if you're under pressure to land a job - there are many great offers with competitive salary if you're open for remote work though. Note that by diving into Ruby means a 99% chance of working with Ruby on Rails - it pretty much dominated the ecosystem.
PHP is very popular still, but I don't think it's a solid choice career-wise. A lot of ways to shoot yourself in the foot, the legacy code to deal with, and oversaturated market. Still have PTSD from that.
If your goal is to get a job locally, and locally people hire for PHP, and you want to learn PHP: Then just learn a little PHP.
Learning another programming language...any language...will make you a better programmer. Even if you never use it.
I have still much time so I can learn anything.
Yes. You have decades. And they will all be decades as an adult. For the sake of example, I will pretend you are 22 and that people become adults at 18. So you have four years of adult experience. Sure you have learned a lot in your four years of adult experience.
But it is but four years out of the forty four you will have in four decades. And those four years are all beginner experience. A lot will change. Optimize for change. Forty years ago, a person in your position would be looking at COBOL, Pascal, C, Fortran, ADA, and Lisp (not Common Lisp, that didn't happen until later (and C was still K&R, not ANSI)).
Don't micro optimize. Learn how to learn. Good luck.
I wrote this article here, which can help you get an idea of which backend language to learn. https://chat-to.dev/post?id=519
No serious software company would ever look at php for their new project. Except for some legacy reasons.
Also, don’t base such decisions on current job market snapshot whatever it is.
If you don’t feel like throwing up every time you deal with microsoft universe - c# is overall a solid choice, engineering and caree wise.
Rails is pretty big in North America, not at all in europe and it has strong bias towards startups.
JS(ts) is a solid choice overall - all sorts of companies from crappy devshops to faang on all continents use it for various projects.
Java (and other jvm stuff kike scala kotlin) is also a solid choice, but with a strong bias towards big boring corporations and large slow complex, often over-engineered projects.
Python has a strong bias towards AI/ML world. It’s rarely used outside of it for critical production software.
Ruby is a great choice for your first programming language to learn and as an example of a dynamic language with amazing devx. But it is limited mostly to rails based companies.
I suggest getting some commercial experience with 1 dynamic and 1 statically typed languages early in career.
"No serious software company would ever look at php for their new project."
Why? Do you know that for a fact ? You will be surprised what people are doing with PHP in 2024 if you just look outside your echo chamber.
Any specific fresh examples? Or how do you know it’s not you who is in the echo chamber? )
Out of interest, why wouldn't PHP be a consideration? I thought it was pretty good now a days...
Because it’s a) scripting language b) not even a good one.
Even if modern versions somehow overcome those limitations - nobody would bet an expensive project while there are plenty of more relevant alternatives
Have you looked at startup jobs? Python is still super common despite a).
Regarding b) -- that's just like, your opinion, man. (I'd choose python over it any day, personally, but PHP with laravel is pretty great)
My opinion is, that you don't really learn a language and its concepts (deeply) by coding for about 1 or 2 hours daily following tutorials. You learn it, when you are coding >5h a day solving problems you did not come up with yourself (company projects), best case while reading much code of a foreign code base trying to understand and extend it.
Learning a language to get a job is probably the wrong long term motivation. In my opinion learning multiple languages should be more out of interest for new concepts[1]. I would also think that a great C# programmer should be able to learn PHP quick enough to apply for a PHP job - but I wouldn't recommend it.
The first language I learned was PHP, and I still love it, but it was hard work to apply for a job not having PHP as the main language, because PHP was a limited language in terms of concepts. The language evolved over the years, but due to its nature still lacks Generics, Multithreading (at least kind of), Events and many more, also considering it not has the best Performance.
My recommendation:
Even if in your local area PHP is the most wanted language, I'd rather apply for a remote C# job, than focussing on PHP. If you would like to add something to your portfolio, I'd go with a compiled / strongly typed language like Rust, Go or Java, checkout Python and jump on the AI hype train or put more effort in improving your actual skills (in JavaScript and C#). I think C# and JavaScript / TypeScript are great languages to find a job BTW.
1: https://pilabor.com/blog/2021/05/learn-concepts-not-framewor...
I'd recommend learning PHP if it helps with immediate job opportunities. PHP is still widely used in many places so that skill won't come to waste. However, long-term, learning a more versatile language like JavaScript or Python could open a few more doors, not just backend roles.
If you want to make the most out of it - probably continue with JS for the backend - throw in TypeScript. You'll also be able to use that knowledge in frontend (and anywhere else really) as a bonus, and it's not going away. IMO your best bet.
Ruby is my favourite but at the same a niche language compared to JS or PHP - I'd check the local market first if you're under pressure to land a job - there are many great offers with competitive salary if you're open for remote work though. Note that by diving into Ruby means a 99% chance of working with Ruby on Rails - it pretty much dominated the ecosystem.
PHP is very popular still, but I don't think it's a solid choice career-wise. A lot of ways to shoot yourself in the foot, the legacy code to deal with, and oversaturated market. Still have PTSD from that.
If your goal is to get a job locally, and locally people hire for PHP, and you want to learn PHP: Then just learn a little PHP.
Learning another programming language...any language...will make you a better programmer. Even if you never use it.
I have still much time so I can learn anything.
Yes. You have decades. And they will all be decades as an adult. For the sake of example, I will pretend you are 22 and that people become adults at 18. So you have four years of adult experience. Sure you have learned a lot in your four years of adult experience.
But it is but four years out of the forty four you will have in four decades. And those four years are all beginner experience. A lot will change. Optimize for change. Forty years ago, a person in your position would be looking at COBOL, Pascal, C, Fortran, ADA, and Lisp (not Common Lisp, that didn't happen until later (and C was still K&R, not ANSI)).
Don't micro optimize. Learn how to learn. Good luck.
It depends on your kind problems and the community, so it depends is the answer.