How can I become a good PHP programmer? What kind of skills can be considered as a PHP programmer? What level is your technology? This article will list things you should know as a PHP programmer. MySQL capabilities in the development of applications based on several capabilities... "> <LINKhref =" http://www.php100.com//statics/styl
How can I become a good PHP programmer? What kind of skills can be considered as a PHP programmer? What level is your technology? This article will list things you should know as a PHP programmer.
MySQL capability
The development applications are based on the following capabilities:
(1) understanding: Know how to use PHP to connect to the database; know how to write some simple SQL statements; create some simple indexes; know how to use tools to perform simple operations on the database (add, delete, modify, and delete database table structure data, etc ).
(2) familiarity: Understand how to design databases for development and application, establish some effective indexes, and use explain to analyze SQL performance and stress testing.
(3) very familiar: a deep understanding of database indexing, storage engine principles, and operating mechanisms can effectively build high-performance and scalable database structures/architectures, optimize the database performance configuration and debug it to analyze the database running status.
(4) proficient: I have many years of experience in optimization management in a distributed environment with high load while having all the above capabilities.
According to the observation and communication experience, 70% of PHPer is in the understanding stage, 25% is in the familiar stage,> 4% is very familiar, and the proficient people are basically not PHPer.
◆ 70% this group is the easiest to ignore MySQL, thinking that MySQL is only a simple storage medium, without the awareness of optimization, and that adding a memory and CPU can solve the problem.
Typical events: statements such as join, order by, and group by have a messy performance, and the database is not designed at all (only a master table is split into N schedules). The field types and functions cannot be clarified, the same is true for complex queries of large tables.
◆ 20% this group of people only have a thorough understanding of the MySQL operating mechanism and are not sure about the key factors affecting MySQL Performance.
Typical events: familiar with the manual, but cannot tell the indexing principle, and do not know the role of algorithms such as binary tree and HASH for databases
◆ 4% of all groups are qualified for DBA's functions.
OOP capability
(1) understanding: Understand the scope, type, and significance of variables, the inheritance mechanism, and the concept of reuse and encapsulation.
(2) familiar with: familiar with the mixed development of application interfaces, abstraction, and other technologies, and understand the meaning of the program. I have generally studied Java.
(3) familiar: experienced in OOP architecture design, familiar with design patterns, UML, PHP object running mechanism, and content management.
(4) proficient: it should be at the architect level, not limited to PHP.
We often encounter people who call themselves familiar with OOP but cannot even interpret public, private, protected, and static. they certainly have never experienced formal OOP projects.
Large website experience
(1) understanding: familiar with cache applications (such as Memcache and APC) developed by PHP; familiar with LVS and SQUID applications; have certain Session processing solutions; familiar with server load balancer; familiar with PHP Data connection pool applications; familiar with PHP programming performance optimization.
(2) familiar with: Master distributed cache and cache performance optimization, be familiar with storage systems, file systems, databases, and develop scalable platforms. Monitors and analyzes the PHP running performance based on the server load balancer's traffic arrangement.
(3) very familiar: the system analyst capability is beyond the PHPer stage;
(4) proficient.
DOM development capability
Application capability
The above is just my personal opinion, and I only hope that I can use it as a reference, and I hope that Daniel can supplement or correct it.