When I first came into contact with PHP, I was impressed by its beauty and couldn't control it.
Many interviews and many personnel competency requirements have the words "PHP senior engineer". If you really like PHP and you are just starting out, then I will briefly talk about what a senior PHP engineer should have. I hope to give it to juniors or those who have reached the intermediate level. PHP Engineer some help.
Like all programmers, writing good programs requires a good mentality.
Don’t be impatient when things happen, and don’t give up easily.
In the process of program development, especially junior and intermediate programmers, the programs or structures they write will encounter many problems. Some of them are relatively weak, and some problems have never been encountered at all. Therefore, you should not be too impatient and should investigate the problems one by one. The original source of it, kill it. Developing the system with an impatient attitude is irresponsible for the project. Impatience will make people learn to make do, and people will learn to escape. My two years of simple life in Beijing have given me one of the biggest experiences: my mentality has become calmer.
I believe that this kind of mentality will also help your ability to deal with other aspects.
Why is mentality included? I want to explain: It is different from the sales function, which requires a lot of passion, but requires quiet thinking.
A program development colleague once wrote in his QQ signature: Every time a bug is solved, give yourself an improvement. Indeed, programmers who have not really solved countless bugs or problems cannot be called experts or senior programmers. A senior programmer constantly exercises himself through this problem-solving process and forms a set of familiar problem-solving ideas, which requires him to be strong.
I will also briefly talk about some problems that PHP programmers often encounter when they grow up. If you have never encountered any or rarely encountered them, then you are one of the two extremes: either a beginner or an advanced one, haha.
1. Coding problem
2. PHP and SQL database execution efficiency issues
3. Session and Cookie domain and encryption parsing issues
4. Problems with the execution order of the program
5. The problem of multi-environment applicability of program writing
6. Classification construction and structural design issues
7. String processing issues: regular expression processing or simple PHP string processing functions to handle
8. Writing limitations of various template engines
9. Data interaction issues between PHP and the web (such as ajax, interface calls, etc.)
Without strong basic knowledge of PHP, no matter how good your mentality is and how strong your problem-solving ability is, you can only talk on paper.
Excellent basic knowledge will make you comfortable in the project development process.
I will also briefly talk about the basic knowledge that PHP engineers should have (in fact, these are very common in recruitment requirements):
1. I won’t talk about grammar rules. If you don’t know this, you won’t get started. Hurry up and buy a book or find a website to catch up.
2. How to write various SQL statements in MYSQL, not to mention the basics of addition, deletion, modification and query, in(), union, left(), left join, as, replace, alter table, where field sorting, various index creation methods Be particularly familiar with
3. If you can build your own LAMP environment and WAMP environment, one-click installation using integrated software does not count. When developing a program, I don’t know the structure of the environment I developed. How can I troubleshoot problems? So you must at least be able to use the corresponding msi file to install the development environment you need. The installation is successful 3-5 times, which is not bad. You must also be able to install various extensions, configure the apache service, know where and how to set various parameters, and know the 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 used in conjunction with other languages and elements to complete a project. If you are not familiar with other languages and elements, it will be very difficult during team collaboration. Hard work. These other elements include: html, javascript, jquery, xml, http protocol, regular expressions, etc.
1. Knowledgeable and good at learning
If you only focus on your own research and don't look at and learn from other people's practices, you will be like a frog at the bottom of a well, unable to see the vast sky; therefore, don't just focus on programming every day, learn to take some time to look at the architectural ideas of some large open source systems. And how large business websites are built. Learn from them and make up for your own shortcomings.
For example, you should at least know what different types of open source systems are, such as Uchome, dede, phpcms, wordpress, discuz, empire, etc.
After reading too much, you will also summarize and discover some general ideas, such as caching mechanism, template mechanism, static page generation, etc.
2. Project solution selection
Different needs require different mechanisms and selections. It is often said that "water comes to cover, and soldiers come to block it." Some architectures are powerful, but they will also be very difficult to use in small projects. It is important to choose based on your needs.
Model selection cannot be decided casually. It requires a PHP programmer to have good reserves. I personally feel that at least the following reserves are needed to have the ability to select:
Be proficient in using at least one PHP framework and two to three PHP open source systems; have your own set of application systems.
3. Good project management literacy
The project is not always in the development process. The project will also enter the operation period and maintenance period. In this way, having good project management qualities will make the project more stable and controllable.
Good project management qualities include:
Good project development and maintenance habits, remember: Don’t repeat the work many times in the future just to save temporary effort. Always remind yourself to streamline your work, plan your processes, and simplify your standards.
Good awareness of multi-person cooperation management: The project does not belong to one person, but is the product of multi-person collaboration and serves the public. Therefore, it is necessary to enhance the awareness of collaboration and allow relevant personnel to work together to improve the project.
4. Rich experience in project development and application
Studying theory and taking exams or assessments are things in school. Without project experience, it is like having a stomach full of scriptures and it is difficult to vomit it out.
This requires actual projects to learn to transform their own knowledge into demand realization.
5. Good development practices
The code is highly readable: comments on objects, methods, and functions; a set of mature naming conventions;
Low code redundancy: high reusability of programs and files, high cohesion, and low coupling
High execution efficiency: Use the simplest program flow to realize application requirements, don’t disturb the big bend
Good code security: Be a vigilant programmer and be extra cautious wherever there is user input or uploaded files. A programmer's momentary negligence may cause a system to crash in an instant.
In addition, a few more nonsense words, PHP senior engineer, in fact, it is not difficult for someone who can persist a little and like PHP; what is difficult is to learn to use tools to realize ideas, whether it is your own ideas or the needs of others, and learn to transform them .
In this way, why not learn more about the development trends of the Internet, project development management processes, etc.
The above is a detailed explanation of some skills that senior PHP engineers should have. For more related content, please pay attention to the PHP Chinese website ( m.sbmmt.com)!