What and how much php programmer needs to know

    I want to immediately make a reservation in this article, which reflects my own opinion on this issue based on personal experience and does not claim to be absolutely accurate. It is written for those who are either just thinking about a php programmer's career or thinking of exploring further.

    Below I will try to state my point of view on that list of languages, software and technologies that a php programmer needs to know in order to qualify for a well-paid job. I will make a reservation right away that I will not give links to any educational materials, I will not give the terms that will be needed for study, and I also can’t even guess approximately what kind of PO you can count on having mastered this or that list.


    Well, here it’s clear in itself that if you plan to become a PHP programmer, then PHP is just what you need to know and as best as possible. Regarding the version of PHP that is worth studying - I think that at the moment there is no point in starting with a version below PHP 5.0, it is unlikely that you will find somewhere a vacancy where you will need to work on a version below this.
    As for the depth of knowledge in this language, the deeper and more extensive they are, the better, because This is your main work tool. About what specifically to study and in what sequence you can easily find information on the Internet I’ll say that you just need to study the implementation of OOP, as most of the frameworks and CMS are written using this paradigm. It will also be useful to read about design patterns, in particular about MVC.

    Data store

    It is unlikely that knowing only one PHP language, you can find a decent job. The bulk of the vacancies require the programmer to know and be able to work with one of the common data warehouse. At the moment, the choice of various software for storing data is quite large, although in my opinion for the php programmer was and still remains the most popular DBMS MySQL. I am in no way trying to underestimate the merits of other DBMSs, but it is MySQL that appears in the bulk of the vacancies.
    As for the version, then again it is worth studying MySQl from version 5.0 and higher.
    On this topic on the Internet you can also find a lot of information to study, I want to focus on myself only on the need to study ways to optimize both the structure of the database and queries to its tables.

    HTML + CSS

    In any case, the php programmer will need basic knowledge in these things. Although php is a server-side language, it is mainly related to the generation of HTML pages with CSS styles, so basic knowledge is still needed.


    It would seem that this client programming language certainly goes beyond the domain of the php programmer's required knowledge, but again, the market dictates the exact opposite. In various vacancies that I have encountered, the level of knowledge in this language varies, but in almost all of it it is required.
    What would I personally recommend - after you familiarize yourself with the basic syntax of this language, go straight to the study of one of the common frameworks, I would advise you to choose between JQuery and ExtJS. Mostly these two frameworks appear in vacancies.


    This is again my personal opinion, which is based on experience and logic. Because Since the bulk of servers for hosting sites written in php are running * nix (Linux or Unix), it would be better to know this operating system, respectively. Personally, I have been installing Linux Ubuntu on a working computer for a long time. At the moment, in this distribution, everything is done in such a way that installing and configuring LAMP does not cause absolutely any difficulties.
    After you install and configure on your LAMP computer, I advise you to learn the basic commands for working on the command line: work with users and user groups * nix, work with files and directories, work with vi, vim editors, work in the Midnight Commander file manager working with the cron scheduler daemon.

    Web server

    I think that I will not be mistaken if I say that at the moment Apache is still the most common web server. It seems to me that the easiest way to start is with him. Although it doesn’t make sense to study its fine tuning in particular, In terms of performance, the Ngix + php-fpm bundle would be the best choice.

    Additionally, the

    following is a list of what I would recommend paying attention to for a serious php (and not only) programmer:
    1. PHP frameworks - at the moment it is very rare in vacancies that knowledge of one or more PHP frameworks is not indicated. The main ones in demand are: ZendFramework, Yii, Code Igniter, Symfony and Kohana. I like Yii the most.

    2. Software for caching data, for example: Memcached, Redis, etc.

    3. Software for caching php script bytecode, for example: eAccelerator, XCache, etc.

    4. NoSQL databases, for example: MongoDB, CouchDB, Redis, etc.

    5. English, at least sufficiently to read English-language documentation without a dictionary.

    Additionally, for teamwork.

    Important things for successful teamwork:

    1. Coding Standards - a very important thing. Generally understood, this is the correct and easy-to-read layout of your code.

    2. Convenient and properly configured editor. Regarding the correct settings, I personally mean only the correct encoding of the files and the indentation in the form of tabs.

    3. The ability to work with one of the common version control systems. For example: svn or git.

    4. Experience with any software for organizing the work of the team for setting tasks / errors, tracking the time spent, etc. will also be a plus. Typically, such software is called project management, as an example, Jira.

    Additionally, to work in freelance mode

    1. If you intend to work alone, then you can not do without at least basic knowledge of graphics programs, such as Photoshop. Also, you will need more in-depth knowledge of HTML + CSS, so that you can do cross-browser layout.

    2. The bulk of orders will most likely consist in fixing or adding functionality to common CMS, such as: wordpress, Joomla, Drupal, DLE or Bitrix. If you focus on small and medium orders, then you are unlikely to need knowledge of any of the above frameworks.


    Well, that’s all I’d like to say on this topic. I hope this article is helpful. Thanks for attention.

    Also popular now: