mysql - I feel that I have reached a bottleneck in learning PHP to develop websites. I don't know how to break through technically. I hope someone can recommend some books. Thank you!

WBOY
Release: 2016-07-06 13:53:56
Original
887 people have browsed it

From HTML novice to PHP, I felt that building a website in PHP was quite simple at first, but later I felt that the knowledge I learned was not enough. The website is far from a message board, as simple as logging in and registering.

Currently I don’t know much about these technologies:

  1. Server operation and maintenance, website deployment, technical architecture

  2. php advanced technology, scheduled tasks, queues (I have always used php as a "static" language, it will die if no one accesses it) composer docker Ionic phonegap

  3. mysql transaction, advanced

  4. Other databases nosql memcached redis mongodb

  5. css3 html5 html5 new features html5 website angularjs framework React framework requirejs CommonJS

  6. nodejs npm Grunt tool git github

  7. Knowledge of e-commerce website system design, large concurrency, flash sale system design

  8. Search technology, I need to solve my current sql word link '%$q%'

  9. Linux php environment deployment and optimization. Linux lamp environment optimization, common web software environment configuration, installation

  10. Design patterns, algorithms

The above is what I desperately want to learn.

I want to learn everything about web development, front-end and back-end. Some people say that if you feel that you have reached a bottleneck, it’s time to read a book. I hope the master can tell me and recommend some books. Both front-end and back-end, as well as practical basics are acceptable. Thanks!

Reply content:

From HTML novice to PHP, I felt that building a website in PHP was quite simple at first, but later I felt that the knowledge I learned was not enough. The website is far from a message board, as simple as logging in and registering.

Currently I don’t know much about these technologies:

  1. Server operation and maintenance, website deployment, technical architecture

  2. php advanced technology, scheduled tasks, queues (I have always used php as a "static" language, it will die if no one accesses it) composer docker Ionic phonegap

  3. mysql transaction, advanced

  4. Other databases nosql memcached redis mongodb

  5. css3 html5 html5 new features html5 website angularjs framework React framework requirejs CommonJS

  6. nodejs npm Grunt tool git github

  7. Knowledge of e-commerce website system design, large concurrency, flash sale system design

  8. Search technology, I need to solve my current sql word link '%$q%'

  9. Linux php environment deployment and optimization. Linux lamp environment optimization, common web software environment configuration, installation

  10. Design patterns, algorithms

The above is what I desperately want to learn.

I want to learn everything about web development, front-end and back-end. Some people say that if you feel that you have reached a bottleneck, it’s time to read a book. I hope the master can tell me and recommend some books. Both front-end and back-end, as well as practical basics are acceptable. Thanks!

The list you made is great and the knowledge is very complete, but I personally think that the bottleneck you are facing now cannot be solved by books. In other words, it is difficult to solve it with books alone.

Think clearly about the purpose of learning and avoid learning for the sake of learning

For example, high concurrency, flash sales, architecture, these are often things that are not accessible to existing businesses. There are generally two purposes for learning: either to cope with interviews, or for future business development, so that you can top up when needed (knowledge reserve). Different purposes have different learning means and target levels. For example, if you are going for an interview, just have a certain understanding of the scenarios and common solutions. You don’t need to make up anything during the interview. Just say that you haven’t had the opportunity to contact the person but you know how to do it. That is a good answer. If it is for business development, and if the current company will develop to that level soon, then it has to be put into practice, and you can communicate with the boss. The boss may be worried.

But if your company is far away from any scene and you don’t plan to change jobs, then don’t waste your precious time and learn something else

Practice, practice, practice!

Whether you are used to reading books, videos, or like me, you are used to learning from Google and StackOverflow, the only constant end point of learning is always practice. No matter what your purpose of learning is, always give yourself the opportunity to practice before you start. The company needs to communicate with the boss. The company does not need to start small projects on the side. If it is inconvenient, then stop learning to the extent of "understanding the problems and common solutions"

You already have a good knowledge base, so it shouldn’t be difficult to find a breakthrough based on the company’s current/future needs. Trying to learn based on the company’s development needs is the most efficient and profitable. Believe me, the boss will always like that the most. Employees who can jump up and say "I've seen this thing before and there are three options. I think option B is currently the most suitable for our company's situation. I can take the lead in making this happen"

Scene is king

In the above two points, I have been talking about scenes repeatedly. In fact, it is very similar to English. The core ability of English is not the tens of thousands of words, nor the advanced grammar, but the "sense of language", or in other words, from the scene The ability to relate to appropriate expressions and in turn understand the scene from other people's expressions.

Most of the books and videos, including online searches, can only solve the problem of "how", but I always think that "how" is almost the least important thing, at least for Internet technology, except for extreme scenarios, In 99% of cases, "how" is not a problem. Just find the most suitable class library, read the documentation, and call and debug it. The key to the question is always "when" and "what", and occasionally "why"

  • how: How to achieve something (such as how to support large concurrency), this is really not important

  • when: When is it necessary to introduce a solution to support concurrency? How many concurrent users can a common single-core 8G server support? How to monitor concurrency to confirm whether expansion is needed? How much concurrency can be improved by common concurrency optimizations? This determines to what extent the business needs to consider introducing corresponding solutions . Premature optimization is the first of all evils

  • what: What is the core problem of concurrency problem? For example, one direction is horizontal expansion/automatic expansion, the other direction is data consistency (transactions and distributed transactions) under high concurrency, and of course there is also single-machine concurrency optimization. If you understand it, you will find that stand-alone optimization is indeed important and fundamental, but most of the time it is far less effective than the first two. If you are ignorant and just rush to the word "high concurrency" and learn a lot of single-machine optimization things, you may not be able to use them in the end

  • why: Why does the company need this technology? Where is the intersection between business and technology? Does your company's business model determine that it needs to support a large number of concurrency to make profits? Is the company's business data too precious to be lost, so it needs powerful off-site disaster recovery? Or is it because the company's business cannot accept long downtimes, so it needs disaster recovery and flexibility and high availability? Of course, the slightly depressing reason "high-level executives like this technology" cannot be ruled out.

Taken together, the problems other than how are simply scene problems. It is really important to think about this. Only by thinking about this can your study be purposeful, organized, planned, and final. ResultsEffective Learning

Finally, the only book I recommend to those who hate reading books to study is the best study list. There are many important points that you need to learn/focus on that are not listed, "The Pragmatic Programmer", translated name "The Way of Programmer Training" is a bit vulgar, but it would be a pity to miss it

Attached is another answer "How can programmers practice their skills in combination with the projects they usually work on?"

When a programmer encounters a bottleneck, reading books or whatever is of no use. The best way is to change jobs

Go step by step, buy books, do project exercises, and be proficient in using at least two PHP frameworks

Start learning from the basics, PHP basics, HTML basics, find some small projects to look at, and then you can get in touch with frameworks, such as Codeigniter, which is easier for novices to understand. The key is to make something by yourself.

You can check out more PHP technology blogs:
http://blog.tanteng.me

1 Recommend the book first

Server operation and maintenance

《Brother Bird’s Linux Private Cooking》

git

githug - a small game for learning git using git
Similar ones include vimtutor

Knowledge of website system design, large concurrency, flash sale system design:

Read the technical blogs of several big companies and learn what front-line developers are doing, that’s about it
Tencent Lecture Hall
Tencent Full-Terminal AlloyTeam Team
Comment on Meituan Technology Team
Mogujie Technology Blog

Design patterns, algorithms

《Dahua Design Patterns》
《Code Encyclopedia》

I know little about other aspects, please add more

2 Let’s talk about what to do if you encounter a bottleneck

First of all, don’t feel that you are too weak. Feeling that you have encountered a bottleneck means that you still realize that you are insufficient in some aspects, but don’t start learning blindly. My suggestion is:

  1. It should be thereBreadthIt should be there. If you start from PHP, then you should have some understanding of Web, database, operation and maintenance, and architecture

  2. Think about what you will do in the next five years. Will you always be a programmer? What position does a programmer occupy in a team?

  3. After thinking about 2, you should have a continuous and deep understanding

  4. of what you will do in the future.

Learn Linux scripts, learn full-stack frameworks such as symfony or yii, and become familiar with using cloud products for large-scale application scenarios.

What you have to think about when you reach the bottleneck is actually very simple, that is, don’t think about anything, do what you need to do in a down-to-earth manner, and accumulate more knowledge. The reason for the bottleneck is that you cannot meet the standards of Bofa. Improve your understanding of technology. If you have the opportunity, get exposed to a wider technology stack. Try not to use one language until you are old. However, this does not mean that you can use all languages ​​or abandon PHP. To learn some ideas in other languages. Then when using some third-party technologies or frameworks, try to learn some underlying knowledge in depth without affecting the project process.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template