4 levels of PHP skill

Bruno Skvorc wrote an excellent post on 4 levels of PHP skill – beginner, intermediate, professional and elite – how he differentiates between them, and what you need to do to move up the ladder.  I don’t fully agree with everything he says, but I do think about it plenty recently, as I am being asked the same questions:

How does one get from beginner to pro and beyond? If one doesn’t know anything beyond the basics, how can they improve their skill enough to leave the bad practices behind and start practicing the more advanced approaches? This is a question I get asked a lot by beginners. In order to become a professional, one must first become intermediate.

What follows is a list of what one should go through on the path to PHP fluency.

Indeed, everyone who’s done a web form or interacted with a database starts as a beginner.  Professionals are the ones who are pretty comfortable with the language, frameworks, tools, libraries, and can undertake a project all by themselves.  Elite are the chosen few – usually book authors and conference speakers.  But who are the intermediate ones and how do move from beginner to professional – these are not as obvious to answer as they might seem.

Overall, I support Bruno’s way of thinking, which, in short, is: practice makes perfect.  Work, work, work, learn, learn, learn, read, read, read, and you’ll get it.  Learn from the best, participate in Open Source projects, and try things out.  There is no shortcut really.

I do have a few disagreements too.   Some are larger than the others.  The main ones are namely – PHP extensions and the use of IDE.  IDE is not a silver bullet – it’s a tool.  And it’s a kind of tool that works well for some people and completely misses the point for the others.  I wouldn’t call for or against it, but, instead, I would suggest to try both ways – a full featured IDE for a while, and a simpler text/code editor like Vim for a while too.  Pick the one that works, but try to make sure that you can afford it in worst of times, and that it runs on multiple platforms.  You never know where you’ll end up working, and a tool that you have muscle memory for beats any other.

As far as extensions go, it depends heavily on the kinds of projects you are working, on the kind of people that you are working with, and on the rest of your environment setup.  You might not always have a chance to use PHP extensions (especially in cases where you don’t control the servers on which the project will be running).   They are cool things to play with, but you’d have to get special kind of luck to end up with the project that absolutely requires them.  Not to mention that you wouldn’t code PHP extensions in PHP (hint: C).

But, as I said, overall, there is some solid advice and it makes a lot of sense.

Google pushing Mobile First

I’ve heard “Mobile First!” a gadzillion times by now, but I’ve never took it too literally, and I don’t remember seeing anyone else who did.  Google Operating System blog however suggest that Google does.

A few years ago, many people complained that mobile sites and mobile apps are too limited. They couldn’t include all the features from their desktop counterparts and some thought that was a bad thing.

Fast forward today and you’ll notice that Google’s desktop sites look more and more like Google’s mobile apps. Most Google redesigns are all about taking mobile interfaces and adding them to the desktop. That’s one of the reasons why many Google services drop advanced features and opt for simplified interfaces. This way, everything looks consistent and users can quickly switch from the mobile apps to the desktop apps.

There are also specific examples listed – Google Maps, Google Play, Google+ and others.

Go celebrates 4th birthday

I haven’t yet had my hands on the Go programming language, but I’ve kept a bit of an eye on  it.  It sounds interesting especially for those tasks that would benefit from concurrency – things like web spiders, email processors, etc.  The language had recently celebrated the 4th birthday, and there is a nice retrospective on the project’s blog that shows how fast it is getting accepted and which projects and companies are using it.

But this is just the tip of the iceberg. The number of high-quality open source Go projects is phenomenal. Prolific Go hacker Keith Rarick put it well: “The state of the Go ecosystem after only four years is astounding. Compare Go in 2013 to Python in 1995 or Java in 1999. Or C++ in 1987!”

Multitrack love

Multitrack love is pretty awesome.  It has a list of quite a few popular songs, and once you select one, it gives you an option to enable and disable different tracks – vocals, guitar, drums, bass, etc – while listening to the tune in real time.  Pretty nifty!

multitrack love

 

Note though that the page is all in French, so using Google Chrome with an automatic page translator is recommended, if you are not fluently parleying franse.