How to become an excellent PHP programmer? What skills should one have to be considered a PHP programmer? What is the level of your technology? This article will list some things you should know as a PHP programmer.
MySQL capabilities
The application in development is based on several capabilities:
(1) Understand: know how to use PHP to connect to the database; know how to write some simple SQL; build some simple indexes; know how to use tools to simply operate the database (add, delete, modify database table structure data, etc.).
(2) Familiarity: Know how to design databases for development applications, establish some effective indexes, use explain to analyze SQL performance, stress testing, etc.
(3) Very familiar: In-depth understanding of database indexes, storage engine principles and operating mechanisms, able to effectively build high-performance and scalable database structures/architectures, effectively optimize and debug database performance configurations, and analyze database operating status.
(4) Proficient: Simply put, while having all the above abilities, you have many years of experience in optimizing management in high-load distributed environments.
According to observation and interaction experience, 70% of PHPers are in the understanding stage, 25% are in the familiarization stage, and >4% are very familiar with it. Those who are proficient are basically not PHPers.
◆70% of this group are most likely to ignore MySQL, thinking that MySQL is just a simple storage medium and have no awareness of optimization. They think that adding more memory and CPU can solve the problem.
Typical incidents: The performance of join, order by, group by and other statements is a mess, the database is not designed at all (limited to splitting into one main table, N appendix tables, etc.), the field types and functions are unclear, and large tables are encountered There is no way to solve complex queries.
◆20% of people in this group just do not have a thorough understanding of the MySQL operating mechanism, and are not clear about the key factors that affect MySQL performance and are not proficient.
Typical incident: Familiar with the manual, but unable to explain the principles of indexing, or the role of algorithms such as binary trees and HASH on databases
◆4% of the group are basically qualified to perform the functions of DBA.
OOP capabilities
(1) Understand: Understand the scope, type, and meaning of variables, understand the inheritance mechanism, etc., and understand the concepts of reuse and encapsulation.
(2) Familiarity: Proficient in using interfaces, abstraction and other technologies to develop programs, and understand their meaning. Generally, you have studied Java.
(3) Very familiar: Have experience in OOP architecture design, familiar with design patterns, UML, familiar with PHP object operating mechanism, content management, etc.
(4) Proficient: should be at the architect level, not limited to PHP.
We often meet people who claim to be familiar with OOP but cannot explain public, private, protected, and static clearly. They must have never experienced a formal OOP project.
Large website experience
(1) Understand: Familiar with caching applications developed in PHP (Memcache, APC, etc.); exposed to LVS, SQUID applications; have certain Session processing solutions; familiar with load balancing; familiar with PHP data connection pool applications; understand PHP programming Performance optimization.
(2) Familiarity: Master distributed cache and cache performance optimization, be familiar with storage systems, file systems, databases, and develop scalable platforms. It can reasonably arrange traffic in combination with load balancing and monitor and analyze PHP operating performance.
(3) Very familiar: possessing system analyst capabilities, beyond the PHPer stage;
(4) Mastery.
DOM development capabilities
Application capabilities
The above is just my humble opinion, I just hope it can be used as a starting point, and I hope experts can add or correct it.