Liu Xinming: To the same as I have been impetuous PHP programmer

Source: Internet
Author: User
Tags php and mysql

Author Note:2012 I decided to start blogging, not for anything else, I hope that through the blog to record my growth process also hope to help some just graduated, just into the industry brothers and sisters. We are a group full of impetuous, complaining, confused program ape, think of 3 years so the past, the society becomes more impetuous, pear also more and more big, room? Car? Woman? ... Crazy ... decided to write such an article, once again clear their own career planning, also sent to impetuous you, embark on the process of ape this road is hard, boring, boring, here to learn from their own experience, is currently planning planning, listed. I hope to be of some help to you.

1, more hands-on, think more

Do not be afraid to do well, just graduated or just the most missing is the work experience, there is no other way, only do, do, do, more experience to come. The project is a lot more natural you will have a variety of different business logic, which is not at the university can not be learned at all, but also the most needs of enterprises. Any business needs an employee who can quickly get started and solve business tasks immediately. How do you deal with the new technologies and complex business logic requirements that are now emerging? Very simple: do, do, do, my learning process on a word: do! Up to now from 0 to 1 really hard, large and small to do hundreds (including the large and small list of requirements, before the company's various business needs to solve), summed up a sentence: Do more communication, more communication on a better understanding of customer needs and users to demonstrate some of the basic experience.

2, less complaining, more study

When you first enter the company, you will inevitably do a lot of chores, this is unavoidable. I have just entered this industry to do a half-yearly chores, what div,css,js to change a template to a small thing, and so on. Everything is out of the way, only when your experience, technology accumulated enough to meet the needs of the business, you will naturally be appreciated, of course, if it is not appreciated, it is recommended that you can immediately jump job. For programmers, the occasional job-hopping is also a part of growth, do not know whether the person is such, but for me, every time I jump to a rapid growth. As a program ape I think if you really want to do well, you have to be interested, write code will make you crazy, let you mad, so that you can write it. If you're just doing it for work, then you're just a tool, not a program ape, so don't jump too often, because it's a big challenge for you every time you move. Have the interest, support to the constant, do not care about the task, pressure, can do, your purpose is to improve themselves, so that they are more valuable tomorrow than yesterday, when the value of the accumulation of sufficient capital, many companies will rob you, I believe this society will certainly have insight company. Patience + opportunity + unwavering belief, this is me! A simple program of apes.

3. Develop an effective learning plan

When you make a plan, you must insist on the completion, if not, please do not make plans, because it will make you very painful. In the company or all kinds of technical community as far as possible to know Daniel, more groups, more exchanges, discussion, more help others. Don't be too blind in making plans. Plan for each stage according to your own situation, the best plan is short-term plan and can guarantee the smooth completion of the plan, if you develop a misty plan, you are more suitable to be an orator. Please do not be stingy, in the process of planning your study as far as possible to write blog, such as Csdn blog is a very good choice. This way you can help the novice, but also allow yourself to be more in-depth familiarity with learning knowledge, and in need is the fastest speed to find. Nonsense basically finished, the following describes my recent plans and some learning experience, I hope we can progress together, together to improve, together for tomorrow's more pay and efforts.


PHP Programmers break the growth bottleneck? (organized on-line, and also in the implementation of their own)

The mastery of PHP is not fine (many PHP manuals are not read, except the library)

Narrow knowledge (in the face of demand, except the use of PHP and MySQL, do not know the other solutions)

The PHP code takes the process as the main idea, the object-oriented implementation is too round, can not understand

These phper are a lack of thought 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. How do you improve yourself? How can you challenge a more difficult system?

Where are the challenges of high-performance systems?

How do I select a 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?

How is your PHP code performing, and what happens after you use the optimizer tool? Where are the performance bottlenecks? Do you need to write a C extension?

What are the characteristics of user access, read more or write more? Do you need read/write separation?

How does the data be stored? Write speed and readout speed? How does data increase access speed read change?

How do I use caching? How to consider failure? How does data consistency guarantee?
Where are the challenges of high complexity systems?

Can you identify the areas of your business? 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 to improve, break through the bottleneck?

Analyze the principle of the technology you use and the mechanism behind it, so that you can improve your technical judgment and improve the correctness of your technical options.

Learn important knowledge during college, operating system principles, data structures and algorithms. Know that you used to study for exams, but now you need to learn for yourself, let yourself know why.

Start learning C again, although you've already 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 stuff?"

If you work hard, there is better planning, estimated to take 1-2 years, how to learn the problem, we follow up again.

PHP learning process Online has a lot of tutorials, not listed. Basic + data structure + algorithm (PHP this relatively weak) constantly repeated learning to use

Next is the design pattern, especially the complex business requirement design pattern very helpful, my blog also will continue to study, explains various design pattern usage.

Accumulation: Some of the commonly used libraries (used, their own writing) are collected, block in use when used to take out, very convenient. such as: paging, image processing, uploading, downloading, email and so on these commonly used to.

Multi-directional hands-on: not only to write code, the code snippet analysis into the blog is also an important part of progress, deepen memory good method.

1.PHP Basic Primer (syntax, common functions and extensions)

2. Object-oriented PHP (book: "In-depth php, object-oriented, pattern and practice")

3. Website software Architecture Design (design pattern, framework, etc.)

4. Web site physical hierarchy design (distributed computing, storage, load balancing, high availability, etc.)

Citation: A good online learning advice to find

How to study effectively is a big problem. Some of their own practice but very fragmented, not good summary. Before going to bed last night, I suddenly thought of the core of RUP, "architecture-centric, use-case-driven, iterative development", to borrow this idea, about effective learning methods, can be expressed as:

Focus on principles, models or mechanisms, task-driven, iterative learning

Objective: To learn how to improve processing performance.

An iterative-driven task: Locate the region by IP.

This is a common task for Web applications, and the IP database is a record of around 10 mangyo.

First iteration: Implementing functionality without regard to performance (implemented via PHP)

Because it is not possible to find a region directly through key (IP), it is not easy to put it directly into the data or through an associative array. The idea is to sort the data before you look for it.

1. How do I find through IP? Ordered data, binary lookup is the fastest.

2. How do I sort? Using the library function sort is OK, but that is learning, it is to achieve a quick sort of it yourself.

Learning goals: Sorting algorithms, finding algorithms

Phper data structure and algorithm foundation is poor, usually do not have this task, oneself also do not study, therefore this aspect of knowledge is very lack.

However, the problem of programming solves eventually comes down to the data structure and algorithms for manipulating this data structure.

If the data structure algorithm is often in the mind, then the problem can be clearly recognized its internal structure, the solution will naturally arise.

Second iteration: Optimizing the loading and sequencing of data

If you do the first step, it's basically not available because the data needs to be loaded and sorted every time, so it's too time-consuming. The idea is that once the data is loaded and sorted, it is placed where each PHP process can access it.

Put it in memcache it's easy for everyone to think of.

In fact, in the shared memory (EA and other accelerators are supported) is a faster way, because memcache more network operations.

How do you test performance when the data is put into shared memory or chunked? How to analyze the bottleneck (xdebug)? Driven by these problems, you will learn

Learning Goal: The method of detecting, locating and optimizing PHP performance; The impact of PHP implementation structure on performance.

Third iteration: Writing PHP extensions

How do you determine the mechanisms and principles that you need to learn? How to find the driving learning task?

From the positioning of this technology to find out the need to learn the focus, that is how it does (mechanism) and why it can do so (model or principle)

List the most common applications of this technology, as a learning task, from simple to difficult to practice.

If you are fully self-taught, find the key points (mechanisms, models, principles) that you need to learn to set up a learning task is really not that easy to grasp. If you find an experienced person to guide you or add a learning team, the speed of learning will certainly be greatly improved.

Finally, briefly summarize the following:

1, must have patience, make a good plan must be implemented

2, PHP Base comparison thoroughly understand, manual more natural will remember the deeper (PHP manual must be repeated reading)

3, PHP design mode and in the actual scene to try to apply, and constantly strengthen the memory and understanding of design patterns

4, the new things are really too fast, so in order to adapt to the need to work harder. Memory caching, file caching, static caching, high concurrency processing, these must be skilled applications.

5, strengthen the understanding of computer system principles, familiar with common mathematical knowledge, practice algorithm application. Computer science is essentially a discipline of mathematics. Good mathematicians will produce good programmers in the middle. Don't let your math skills get lost.

Logic, Discrete mathematics, calculus, probability theory, statistics, abstract algebra, number theory, category theory, partial order theory these mathematical knowledge as much as possible practice, more familiar with.

6, focus on PHP security, to understand the latest Php,mysql version updates and bug news.

7, in-depth study of data structures and algorithms, regardless of what language the most core is the data structure and algorithms.

8, start learning C, or Sync and PHP can also, see your time and learning intensity plan. C is a must to learn if you want to walk the path of the ape of the program. PHP is also written in C, and the PHP run mechanism is compiled into C by the compiler to run on the computer, so C learn the way to your development is only beneficial. Your money will earn more than it used to!!!!!!!!!!

Finally: do a good job of each, learn solid, repeat to learn. Unconsciously, your ability will be improved quickly.

I recently learning C, also hope to have learning C QQ Group: 224784042 (recently many brothers Plus, made a group) together to Exchange progress, of course, PHP is also in sync, technology has no end, only constantly learning, not to mention I was a rookie? ~~~~~~~~~~~~~~~~~

Finally, I wish you every year raise salary not afraid of unemployment!!!!!

When your ability to, you can eat everywhere, afraid of unemployment??? With strong technology, it is also an industry's iron rice bowl. Come on, comrades, ~~~~~~~!

Finally, there is nothing to worry about, not everyone is a maxima, not all are bole ... If you are a maxima you can slowly look for you can appreciate your bole, if you are bole also want you to find the maxima of yours earlier.

Come on and improve yourself ~ ~ ~ Ability to all things are in the right way don't worry too much about that.

Liu Xinming: To the same as I have been impetuous PHP programmer

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.