How PHP programmers can break through technical bottlenecks
have a few to do around PHP development of friends, because the interview, also exposed to a lot of PHP engineers, they often doubt their future growth and development of technology, I often give them some advice, I hope they can break themselves, have better development.
PHP engineer facing growth bottlenecks
first, make clear what I mean. PHP Engineer means that after graduation work, the main PHP make WEB The development of the system, did not use its language to work too. Work experience is probably in the year and a half years, ordinary WEB system (millions access, level 1000 data or business logic is not particularly complex) development of basic handy, no problem. But they're going to do something like this:
except PHP do not use other languages , might be dot Shell script.
the PHP the mastery of not fine (many PHP None of the manuals have been read , except libraries)
narrow knowledge (in the face of demand, except the use of PHP and the MySQL , do not know the other solutions)
PHP The code takes the process as the main idea, the object-oriented implementation is too round, can not understand
?
these Phper There is a lack of thinking when it comes to the complexity of projects or business logic that requires high performance, high concurrency, and large amounts of data (systems need to address multi-domain business issues). Can not analyze the nature of the problem, technical judgment is poor, the problem can find a temporary solution, but often in the temporary solution, the system and their own step by step toward collapse. So how do you improve yourself? How can you challenge a more demanding system?
?
Where is the higher challenge?
In combination with my own experience, I have listed some specific challenges so that we can first have a perceptual understanding.
Where are the challenges of high-performance systems?
How to choose WEB server? Do you want to use fast-cgi mode
Do you want to use the reverse proxy service? Select Full memory cache or hard disk cache?
Do you need load balancing? Is it based on the application layer or the network layer? how to guarantee high reliability?
of your PHP What about code performance, what happens after using the optimization tool? where are the performance bottlenecks? Do you need to write a C extension?
What are the characteristics of user access , Are you reading more or writing more? Do you need read/write separations?
How is data stored? What is the write speed and readout speed? How does data increase access speed read change?
How do I use caching? How to consider failure? How is data consistency guaranteed?
?
Where are the challenges of high complexity systems?
Can you identify the areas that your business corresponds to? Is it one or more?
Can the business be reasonably abstracted, and the changes in business rules can be achieved at a very small cost?
Data consistency, security can be guaranteed?
Does it hold the method of object-oriented analysis and design?
?
When I list the questions you are sure to answer, I think technically you may have become an architect. How you can not yet answer, you need to strengthen in the following several directions.
?
How to improve and break through the bottleneck
How you can not yet answer, you need to strengthen in the following several directions:
analyze the principles and mechanisms behind the techniques you use to improve your technical judgment and improve the correctness of your technical options ;
learn important knowledge during the university , operating system principles, data structures and algorithms. Know that you used to study for the test , but now you need to learn for yourself, let yourself know why.
Start learning again C language, although you have learned it in college. This is not just because you may need to write a PHP extension, but also because, in the application of C , there is an environment that is concerned with performance, memory control, variable life cycles, data structures, and algorithms.
Learning object-oriented analysis and design, it is an effective way to solve complex problems. Learning abstraction is the only way to solve complex problems.
?
"How long will it take to learn so much?" ?
If you work hard, there is better planning, estimating the need for A years of time, how to learn the question, we follow again to talk about
?
in addition, Phper if we go to the front, that's another development route.
?
?
refuse to be a waste wood, I will do genius! Free collection of PHP book CDs