When I first touched PHP, I was impressed by its beauty, and it just spiralled out of control.

If you really like PHP, and you are just starting out, then I will briefly talk about what a PHP senior engineer should have, hoping to give some help to the junior or has reached the intermediate PHP engineers.

Peace of mind

Like all programmers, to write good programs, you can’t do without a good mentality.

Don’t be impatient and give up easily.

In the process of program development, especially beginner and intermediate programmers, write programs or architectures will encounter many problems, some of which are relatively stupid, and some of which are not encountered at all, so do not be too hasty, should be identified one by one the original source of the problem, to eliminate them. Rushing to develop systems is not responsible for the project. Impatience will make people learn to compromise, let people learn to escape. One of the biggest lessons I learned from my simple life in Beijing for two years is that MY mind is much calmer.

Believe that this attitude will also help you in other aspects of the ability to do things.

I want to explain why MENTALITY is included in the list: it is different from the function of sales, which requires great passion, but requires quiet thinking.

A set of problem solving ideas that I know by heart

Once a program development colleague wrote in QQ signature: every solve a bug, give yourself a promotion. Indeed, there are no experts, no advanced programmers, who haven’t really solved countless bugs or problems. And a senior programmer is from this kind of problem solving process of continuous training themselves, the formation of a familiar in the heart of the problem solving ideas, to their own strong.

Let me briefly mention some of the common problems that PHP programmers encounter growing up. If you encounter none or very few, you are at two extremes: beginner or advanced, haha.

  1. Coding problem

  2. PHP and SQL database execution efficiency issues

  3. Session and Cookie fields and encryption resolution issues

  4. The execution order of the program

  5. Program writing multi – environment applicable problems

  6. Classification of construction and structural design problems

  7. String handling problems: Regular expression handling or simple PHP string handling functions

  8. The writing limitations of various template engines

  9. PHP and Web side data interaction issues (e.g. Ajax, interface calls, etc.)

Strong PHP fundamentals

No strong PHP basic knowledge, even if the state of mind no matter how good, problem solving ability no matter how strong, can only talk on paper.

A solid foundation of knowledge will help you navigate the project development process.

I’ll also briefly mention some of the basics that PHP engineers should have (which are actually quite common in hiring requirements) :

  1. Grammar rules, this did not say, this will not, there is no entry, quickly buy a book or find a website to fill

  2. In (),union,left(),left join,as,replace, ALTER table, WHERE,where,where, in(), in(),union,left(),left join,as,replace, ALTER table,where,where

  3. You can build your own LAMP and WAMP environments, not install them with integrated software. Development procedures, for their own development of the environment to build the structure are not clear, how to troubleshoot problems? At the very least, you should be able to install your own development environment using the opposite MSI file. You need to be able to install various extensions, configure Apache services, know where to set various parameters and know how to set various parameters. Basic Commands of the Linux operating system.

  4. Be familiar with other programs on the Web, because PHP is not a completely independent thing, it is a project with other languages and elements, if not familiar with other languages and elements, in the process of teamwork can be very difficult. These other elements include HTML, javascript, jquery, XML, HTTP protocol, regular expressions, etc

Comprehensive Internet application and project management knowledge and literacy

1. Knowledgeable and good at learning

If you only focus on your own research and do not look and learn from others, you will be like a frog in a well and find it difficult to see the vast sky. So, instead of just programming every day, learn to take the time to look at some of the architectural ideas of large open source systems and how large business sites are built. Learn from them and supplement your own shortcomings.

Such as at least know what are the different types of open source system, such as Uchome, dede, PHPCMS, wordpress, discuz, empire, and so on

Read more and you’ll find some common ideas, such as caching mechanisms, such as template mechanisms, such as static page generation, etc.

2. Project solution selection

Different needs, with different institutions and models. Some architectures are powerful, but they can also be difficult to use for small projects. It is important to select according to your requirements.

Selection is not arbitrary, it requires a PHP programmer for good reserves, I think at least the following reserves are needed to have the selection ability: skilled application of at least one PHP framework, two to three PHP open source systems; Have their own set of application system.

3. Good project management literacy

The project is not always in the development process, the project will also enter the operation period, maintenance period, in this way, good project management literacy will make the project more stable and controllable.

Good project management literacy includes:

Good project development and maintenance habits, remember: do not for the sake of temporary labor, resulting in repeated work. Always remind yourself to streamline the work process, process planning, standardization and simplification.

Good sense of multi-person cooperation management: the project is not one person, is the product of multi-person cooperation, but also serves the public, therefore, to enhance the awareness of cooperation, let the relevant personnel to improve the project together.

4. Rich experience in project development and application

Learning theory, to the examination or assessment is the school inside the thing, there is no project experience, like full stomach scripture, vomit also difficult to spit out. This requires actual projects to learn how to translate their knowledge into requirements realization.

5. Good development practices

Readable code: object, method, and function comments; A mature naming convention;

Low code redundancy: programs and files have high reuse, high cohesion, and low coupling

High execution efficiency: use the most simple procedures to achieve application requirements, do not disturb the big bend

Good code security: be a vigilant programmer, any user input and upload files should be extra careful, perhaps a programmer’s carelessness will lead to a system crash in an instant.

In addition, more nonsense a few words, PHP senior engineer, in fact, for a little can insist on, and like PHP is not too difficult; The hard part is learning to use tools to implement ideas, both your own and the needs of others, and learning to transform.

In this way, I will know more about the development trend of the Internet, project development management process and so on

Pay attention and don’t get lost

All right, everybody, that’s all for this article. All the people here are talented. As I said before, there are many technical points in PHP, because there are too many, it is really difficult to write, you will not read too much after writing, so I have compiled it into PDF and document, if necessary

Click on the code: PHP+ “platform”

As long as you can guarantee your salary to rise a step (constantly updated)

I hope the above content can help you. Many PHPer will encounter some problems and bottlenecks when they are advanced, and they have no sense of direction when writing too many business codes. I have sorted out some information, including but not limited to: Distributed architecture, high scalability, high performance, high concurrency, server performance tuning, TP6, Laravel, YII2, Redis, Swoole, Swoft, Kafka, Mysql optimization, shell scripting, Docker, microservices, Nginx, etc