Published on Apr 26, 2011

A must-know for professional PHP developer

Programming requires years of studying and gathering the experience. And in the end it's actually not only about writing pretty code, or having solid knowledge of code syntax. It's about writing secure, stable and well performative applications. Not every programmer - even with 10 years of experience - is necessarily a good programmer. So here is list of what might be expected from a good web developer.

Web developer or Web designer
This article applies to web developers, not web designers. Web designer would focus on visual presentation of business logic implemented by a web developer.

Basic abilities

PEAR CODING STANDARDS
Must have good command of coding standards.
PHP IDE WITH DEBUG MODE
Must know how to set up debugging environment. Industrial applications with hundreds of complex objects cannot be effectively developed and maintained without possibility to stop execution of the script at any row of the code. Commands like echo var_dump() is not debugging. Unfortunatelly, setting up debugging environment is sometime not a trivial task. Most popular professional IDE might be:
VERSIONING

Web developer should:

  • be able to work with history of development releases, e.g. prepare update package for version from 100 up to 110 - prepare database migration, SQL differences, sync code, connect via FTP/SFTP to remote server, execute git sync commands, sync directory contents etc.
  • be able to compare package differences between the two update packages

Examples of some popular source control management tools (SCM) / versioning tools:

DATABASE

Most popular industrial relational database systems (RDBMS) used today are mySQL/MariaDB, Oracle, MSSQL, PostgreSQL, MongoDB and SQLite. PHP developer must be able to write SQL queries for:

  • INSERT, SELECT, UPDATE, DELETE (CRUD operations)
  • WHERE conditions with AND, OR
  • SELECT .. LIMIT, OFFSET (handle pagination)
  • LEFT JOIN, RIGHT JOIN, INNER JOIN
  • GROUP BY, HAVING - must ve aware of various results defferences implemented by different vendors (mySQL gives different aggregate results than MSSQL or Oracle)
  • CREATE TABLE, ALTER TABLE

Besides the above basics, PHP developer should be able to prepare tables definitions with column types, add indexes on columns, add autoincremental columns, add new column into existing table without destroying existing data.

Few check-up questions:

  • What is a foreign key?
  • What is the difference between LEFT JOIN, RIGHT JOIN and INNER JOIN?
MVC BASED PHP FRAMEWORK

Development time may be significantly shortened by utilizing pre-programmed functionalities. PHP framework is basically low-level alternative to Microsoft Visual Studio or Delphi. It is not really important which framework is the favourite one, important is that you understand MVC model, singleton, code generation and few other aspects of modern PHP5 based framework. So PHP developer should:

WEBSERVER SETUP

Setting up secure webserver (Apache, nginx, lighttpd, etc.) is one of the most important things at the beginning of any development. Don't blame linux administrators if your application gets hacked :-) PHP developer should:

  • be able to write virtual host, manage error handling and setup errors logging. This is tightly related to setting up debugging environment.
  • be able to set up correct SEO redirects (302, 303) and URL rewrites
  • be able to turn on/off compression filters (gzip, deflate for javascript and css files)
Other should-know abilities for a PHP developer:
  • should be able work with standard data structures, such as XML (XML read - write), JSON, serailize, do XSLT transformation. Check up questions:
    • What is the difference between XML, XSL, XSLT and XSD?
    • Filter out XML element using XPath example ..
  • must understand CSS, javascript, XHTML and responsivity. Even backend developer - no excuse!
  • frontend developer should be familiar with some CSS framework - e.g. bootstrap.

Advanced abilities

Here is list of knowledge of what *Da real PHP Guru* should know:

VIRTUALIZATION
  • Developer should be able to create new virtual machine by using any virtualization tool (VMWare Player, VirtualBox, be familiar with Vagrant or Docker)
  • Developer should have basic knowledge of most useful shell linux commands - crontab, starting, stopping or restarting service etc.
WRITING UNIT TESTS
Automated unit test are somewhat underestimated by companies. Luckilly, most of advanced PHP frameworks already come with built-in support for running unit tests. PHP developer should at least have knowledge about available unit testing tools - Simpletest, PHPUnit or Selenium.
PHP COMPILATION FROM SOURCES
May come handy if some specific PHP extension is outdated in RPM repositories and we need latest version. Or due to security fixes. The only way for you is to compile PHP yourself from sources.

If you have read down to here, then you may be good candidate to wear ..

T-shirt PHP Guru
T-shirt I suggested to my wife and she made it for me:-)

Got a question?

Synet.sk

Professional development of web applications and custom solutions. Consultancy services.

Demo

Contact


https://synet.sk