What is the knowledge structure of a qualified PHP engineer? -Php Tutorial

Source: Internet
Author: User
Tags php template dedicated server
Php Chinese network (www.php.cn) provides the most comprehensive basic tutorial on programming technology, introducing HTML, CSS, Javascript, Python, Java, Ruby, C, PHP, basic knowledge of MySQL and other programming languages. At the same time, this site also provides a large number of online instances, through which you can better learn programming... Reply: 1. understand the syntax of the language and be familiar with common class libraries;
2. the most popular object-oriented technology is also essential;
3. common design patterns must be mastered, and the design patterns are the summaries and experiences of the predecessors;
4. php is often used in combination with databases. it is mysql first, so mysql must be familiar with it;
5. php is popular as a web development language. Therefore, javascript in the browser must be used. although many companies have professional javascript engineers, php programmers must master javascript;
6. html/css must be met. you do not need to switch p + css, but at least you need to know, because php is a language embedded in html (of course, php can also be used in desktop and other languages, but the combination with web (html) is the reason for its popularity );
7. if you don't need linux, it will certainly be better. Generally, the company has dedicated server managers. But you need to program in vi. this is not as good as in ide. you should be familiar with class libraries as much as possible.

In fact, the above seven points are very targeted at web development and the knowledge to be mastered is actually irrelevant to the language itself. it should be said that It has a lot to do with the project.If you want to write a web operating system using php, you need to know the operating system design idea. Language is just a tool, The four-year university course, that is, the knowledge structure, has nothing to do with language.. As a programmer for php development over the past few years, I personally think:

1. if you are a programmer, whether you are ruby, python, java, or ,. net, c, c ++, or php, you may need to learn the basic knowledge of these languages, the function library of this language, or the class library, the more familiar the better.
2. for web application developers, you must be familiar with database and SQL programming. the more familiar you are, the better. the more familiar you are with javascript and css, the better.
3. for database and server configuration, this should not be a part of your effort, because it is the work of O & M personnel. if a company has requirements for this, it is estimated that there will be no O & M personnel. these things are complicated and need to be put into practice. Therefore, it is recommended that you do not spend too much practical work on them.
4. you are also familiar with design patterns. you may use very few Design Patterns. if you really have a feeling about programming, you will naturally know how to use it after some time of practice, which of the following do you always like to talk about design patterns and programming ideas?
5. if you can, I suggest using the linux system, learning Vim, and compiling apache, php, and mysql. However, if you insist on using the linux system, then you will certainly try to compile these things by yourself.
6. read more php manuals and learn English well. if you have any questions, read the manual first.
7. learn agile development and use PHPUnit and SimpleTest to write unit tests.
8. if you want to learn more about PHP extension development, you may not develop extensions. but if you understand how to develop an extension, you will know that PHP is not as simple as many words.
9. learn and use the PHP Framework. if you have used a framework for 1-2 years, try to check its source code and understand the code. if you can, try to develop a framework by yourself.
10 all programming languages are used to solve specific problems. The language is very important. learning to use a good language is not a matter of two days, don't trust people who sell programming ideas to you. the ideas are accumulated in practice, instead of reading books and learning other people's ideas. then you can write everything.
11. learning algorithms and training thinking are actually divided into front-end and back-end phper, Knowledge required for front-end PHPer:
  1. P + css is not necessarily proficient, but must be familiar with and Master
  2. JavaScript is also to be mastered, especially the jquery framework. Currently, it is very popular. some page effects or ajax effects that interact with PHP are often used.
  3. Php syntax basics and class libraries should be mastered. you can read the php Manual frequently. The php template engine and php framework are all required.
  4. Php is also required for common mysql operations and optimization.
Backend-oriented PHPer:
  1. You need to configure your own lamp environment, know some websever configurations, and write back common linux commands and some simple shell scripts.
  2. Not only do you need to understand the working principle of mysql, but you also need to master some optimizations based on mysql source code.
  3. The basics of java or c may also be required. php cannot solve all the problems. when phphold does not work, you can consider developing necessary modules on websever or using OS resources, for example, the GD class library does not have good Image processing performance. you can use ImageMagick to try it out.
  4. Both the php source code and the mysql source code must be studied.

1) have a basic understanding of computer theory and be familiar with data structure knowledge. Understand the features and application scenarios of various data structures. Can be associated with specific work.

2) familiar with PHP syntax, familiar with common class libraries, and familiar with string library and regular library.

3) understand and master common design patterns. it is best to study some common framework source code.

4) You must understand both the frontend and backend knowledge. Master the front-end p + css + js, especially the jquery framework.

5) master common php operations and optimization on mysql and memcache.

6) familiar with common linux commands and able to write some simple shell scripts.


From: Avazu Holding Liu Ranran

Http://blog.goody365.com/lamp/Lamp%E5%90%8E%E7% AB %AF%E5%BC%80%E5%8F%91%E6%8A%80%E8%83%BD%E8%A1%A8v0.html I will list them by importance:
1. design philosophy: there is no difference between good and bad programming languages. what matters is your thinking (the things drawn by pen in the hands of children and adults must be different, and the painting is explained differently ). Knowledge Structure of ideas:
1> data structure and design mode (in fact, each data structure and design mode is a design idea)
2> java programming ideology, you can also compare the advantages and disadvantages of the yii, ci, and zend frameworks, and draw on the design ideas.
3> the objects operated in each design idea may be a data structure, key of memcache, database db/table/field, p, ip, idc, etc.
2. screening tools: filtering tools with ideas.
1> If you need php to provide a function to detect the single-state mode, you need to learn c to write an extension.
2> you need to use php to query the database and learn about mysql and pdo.
3> If you need to Debug php on the page and find that the output data format is not good, you can learn html + css + p.
4> for memcache, nginx, and apache, the application level of php has greatly improved by http since I learned rails.
2 Cache and database
3. php memory allocation principle
4 scoket programming
5. server configuration and server management.
6. Algorithms and Data Structures
7. SQL performance analysis and optimization
8 system disaster tolerance and high load design
  1. PHP language
  2. HTTP protocol
  3. HTML
  4. SQL (MySQL)
  5. Server (Apache/Nginx)
  6. Cache (Redis, Memcache)
  7. Test Tool (AB ,...)
Recruitment requirements for recruitment websites.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.