Hello everyone, have a long time since I’ve written here on the blog for the last time and this is my first post in English, so if you find any grammatical error please let me know.

Well, a long time ago I brought to here a very interesting post that talked about the evolution of a PHP programmer during his career, but this post is already outdated and was not written by me, so I decided to write a new article with my own words and experiences, so, let’s start !

First I would like to speak a bit of my learning history and use of PHP, when I was 13, me and some classmates, we had the idea to build a web radio but none of us knew how we would do that, so I went researching and saw several places talking bout such a PHP, PHP, PHP, so let’s learn PHP!

Apache Web Server

When we start the study of PHP, we realize that PHP need a web server and an interpreter, but we don’t know where to begin to set this up, so in a internet search we found some all-in-one packages such as EasyPHP and Wamp and after the installation, with just 3 lines of code, we already did our first “Hello World” in PHP. From then, we get to write PHP scripts using Notepad and feel amazing.

MySQL

But there comes a point where you want to do more and you had decided to integrate the PHP with a database system and this is where the MySQL comes, with it you can make a calendar, a task list or a customer base.

As mentioned in the previous post, here is the moment in the programmer career that will decide if he will be a real developer or will be a “nephew”.

Oh, wait, you don’t know who are the “nephews” in the development world?

The nephews are those guys who stagnated in this learning point, they are happy with what they already did until here, and while they do sites and systems only to friends and family, it’s okay, but when they decide to go out of the box and pick up the real world projects, well, that’s where the PHP earns the bad fame.

PHP

I am a PHP developer for 8 years, and me and many others developers know that PHP is actually an easy programming language to learn, not just because it is simple, but the fact that it is versatile and the absence of patterns imposed by language make it be seen in bad way, but it has several advantages, such as leaving you free to learn and have a simplified logic independent of the architecture of your system, but, as me and many other programmers, sooner or later you’ll need to follow the standards to you may able to work with a team and “speak the same language” that the PHP development community speaks.

So, one day you’ll hear about object-oriented programming, but what the hell is this? From this point you’ll start to study it and see how your code can become more organised into classes and methods, but, you just will learn how to use it correctly after much practice because learn object orientation is like learn a new language, you need to think in object oriented way to build an solid and good to be implemented architecture, but don’t worry, at moment, only try to think in a abstract way.

PHP Frameworks

The use of frameworks can help a lot in learning the correct way to use the object orientation and this is the next step of the evolution of a PHP programmer, such day, you were browsing through forums and saw people speaking well about of a such Symfony and Zend, then you think, well, let’s see how it works. And then you learn how to use that framework and begins to make organised applications with an more robust architectures and that is when you start to feel a professional and see that much of what you did until here was a bad code.

Design Patterns

One day you will be developing a little project using the framework chosen and will see that you could not instantiate the class Foo normally and the manual said to use the getInstance method and you will find out why this and hear about Design Patterns. When you get to learn Design Patterns you again refactor all your knowledge and starts to see that all those concepts of object orientation as polymorphism, inheritance and abstraction make more sense than ever and there are their codes to be very better structured and disconnectable, and soon after, you come across a guy named SPL and here we go again look to know who is this guy and see that PHP has a set of libraries to make more dynamic objects and pluggable each other.

Linux

As you will increase your demand and deepens development using PHP you pass to be closer to servers and let’s say 90% of them will be running Linux and you will need to have a development environment like your server machine and this time you will make a new friend named Ubuntu, it will follow you for a while now, you will start to have fewer problems than before sending your application to the server.

GitHub

So as your projects grow you will need to have more control over this code, you’ll end up bumping into the problem of having done something wrong change and will despair trying to reverse that and that’s when you will need a version control system and finds a great free tool, GitHub, will start to make more and more code there and will see too much shared code there, and here begins his contributions to the development community, you see that has certain problems in one library that you use, you will fix it and make your first pull request and when it is approved will be rewarding to have contributed something to the community.

Composer

Over time you will discover other really cool tools as well as the Composer, unit testing, documentation generator, code sniffers and others and you will see that many of these include binaries that can be executed via terminal, then you will ask, but how so? Can you write command-line scripts using PHP? And then you start to study about PHP CLI and see how strong the language really is, process control extensions, instance handling, threads, fork, memory handling and some operating system extensions.

Generally most PHP developers stop their studies of the language when they arrive to the tools that assist in day to day as the Composer, but some like me, go a bit further because they are curious and really like the language, then the next step is the development of extensions for PHP, yes, I’m talking about writing extensions to be installed next to the core of PHP using C and Perl, that’s a cool thing because it makes you understand further how the interpreter works.

After much study and attempts you develop your first extension and publishes it in the PECL, then the last step in our journey is where I get intending, contributions to language, yes, do what you do with libraries, but this time with the language itself, this is really cool and helps to support much of this his journey over the years.

Well guys, that’s it, that’s my evolution in PHP development and I believe that is also yours, but part of it, but like at least. Anyway, I hope you enjoyed and share it, this is very helpful not only to the blog but to inspire and improve the PHP community.

Sincerely, even more!

Best regards!