This is a follow-up to this post.
I’ve decided that paying a few pounds for a Udemy course is looking like the best way forward for me, as it’s a balance between the inadequate free resources and the really expensive books. The most popular/highest rated PHP course on Udemy seems to be this one, but after purchasing it (for £10.99 a few minutes before the New Year sale ended, although I suspect that “sale” may occur more often than it doesn’t) and asking about the version of PHP that it teaches, I got this response:
Hi Kaos-Industries, everything that you learn in this course is version agnostic. Meaning it will work with version 5.6 and onwards.
Udemy does a 30-day moneyback guarantee so I’m less bothered about the money and more bothered that this particular course will be teaching me the right things. Everything else about this course passes the sniff test but I really don’t wanna be wasting my time learning anything that isn’t PHP7… hell, in an ideal world I’d like to be learning PHP 8 off the bat.
PHP has a good habit of being extremely backward-compatible. Newer versions almost exclusively add more features, making anything you wrote for version 5.6 work in 8.0 too.
When working with different versions, the biggest challenges you’ll encounter are not so much version-specific but will have more to do with packages that don’t support older versions.
But, for learning the actual language… 5.6 is pretty complete already. Do note it says “5.6 and onwards”, which to me suggests they’ll teach about PHP features that were not available before 5.6. So they won’t be teaching you how to create classes in PHP 4, which is a very sane decision.
I work as a php dev, and i don’t think you should be worried about learning PHP 5.6. i mean, a lot of company still run it today, and the newer version does not change the language this much, it’s mainly new operator/syntax to do thing a prettier way. And a lot of thing that works on 5.6 still work on 8
I must somewhat disagree.
Anything teaching PHP nowadays which doesn’t place a strong emphasis on its typing features (which have been progressively introduced since 7.0) is likely not worth doing.
Perhaps that’s a bit on the harsh side, but anything that focuses on 5.6 support is deliberately ignoring years of development which makes the newer versions of PHP a truly great language to work with.
No, not really. There are always new features being added to the language. The approaches used in the days of PHP5, especially prior to 5.5, are vastly different to those adopted today.
That said, it sounds like they will just be teaching for loops and stuff, anything that works from 5.6 up essentially.
Just do the course you’ll understand what I mean later.
The problem is that it’s a very comprehensive course with a lot of projects, so I’m wary of learning and having to later unlearn archaic/outdated syntax.
Version-agnostic is a bit of a misnomer — PHP is ALMOST entirely backwards-compatible, so a ‘version-agnostic’ course would just be using an early version of PHP, and ignoring new features from newer versions.
Personally, I wouldn’t recommend learning 5.6, not only will you be missing out on so many additions that came with 7, but 5.6 is LONG since out of support and doesn’t receive security updates anymore, so there’s no realistic reason to try and learn it.
Yeah, this is what I was afraid of. I don’t like the idea of spending weeks learning PHP only to never learn the newer syntax and features added since 5.6, especially since it was so long ago and there are potentially a lot of things I could have benefited from learning and making use of earlier.
PHP 7 isn’t drastically different. It’d help to review the new features on the PHP site since 5.6 so you know what’s up.
Wouldn’t that be a long list? If not how do I go about doing that? Just going through the changelog, or is there another link somewhere?
As already mentioned by someone else, “version agnostic” here actually means “PHP/5.6” at best.
Learning PHP has two parts:
Language syntax and features
Application design
Your course falls short on #1 but it can still can be worth the time and money if it’s good enough on #2, something almost every PHP tutorial on the internet is terrible at. If you learn the principles of writing properly architectured applications, figuring out latest language features by yourself should not be hard.
The real problem with courses in general (and Udemy in largely particular) is not the PHP version but the approach. It is possible to write a code that is technically compatible with PHP8 but make it essentially PHP4 era code.
And the “The most popular/highest rated PHP course on Udemy” is exactly this.
I don’t have access to the course but one can google the source code, and any PHP dev would get a hear attack looking at any random line from it.
Udemy should not only refund you but pay you substantial moral damages for touching this piece of shit.
I don’t really understand your backslash for Laracasts. their basic PHP is also quite outdated but at least it’s not that bad.
I think it depends on how comfortable and knowledged you are in programming in general.
PHP has a relatively smooth learning curve, but there is a step that you can level yourself up to modern code practices.
In my personal opinion, 5.6 is a tool old version to start with. 7.4 with property types is where I would suggest everyone to start. PHP 8 and the future versions will get more and more type safety features, while getting rid of the older too forgiving patterns. It’s much more easier to start at the more leveled up place.
There was a book, Advanced PHP, that I loved religiously, but it is quite outdated now, even the basic semantics are slowly shifting, so it’s better to move on with newer things.
So it sounds like rather than take this “comprehensive” course that covers “php 5.6 and onwards” now, you should wait a year or so until someone develops an equally comprehensive course that covers php 7.4 and onwards (and said course goes on sale) — at which point you’ll be concerned that the course doesn’t include the features included in php 8.x. Good luck with that! 🖖