Skill Tree
Php
- Framework
- Yii/yii2
- Phalcon
- Yaf
- thinkphp
- Other large and small framework source has read a lot
- Composer
- Redis/memcached/mongdb
Linux
- LNMP Environment Construction, optimization
- Load Balancing
- MySQL master-slave/redis master-slave
- Server operation and Maintenance
Now just a day to see some of the knowledge of Linux, I feel PHP learning to reach the bottleneck, to see some excellent framework of source code design pattern is also clear, so now basically is to see a probably no mind again with the code to follow, feel can ascend things have been very limited, There is an urgent need to learn a new language to broaden our horizons.
Now the more tangled is the study of C or Java or Python
Reply content:
Skill Tree
Php
- Framework
- Yii/yii2
- Phalcon
- Yaf
- thinkphp
- Other large and small framework source has read a lot
- Composer
- Redis/memcached/mongdb
Linux
- LNMP Environment Construction, optimization
- Load Balancing
- MySQL master-slave/redis master-slave
- Server operation and Maintenance
Now just a day to see some of the knowledge of Linux, I feel PHP learning to reach the bottleneck, to see some excellent framework of source code design pattern is also clear, so now basically is to see a probably no mind again with the code to follow, feel can ascend things have been very limited, There is an urgent need to learn a new language to broaden our horizons.
Now the more tangled is the study of C or Java or Python
Learning another language is not mainly used to improve your PHP capabilities, the choice of language is mainly to solve different scenarios and types of problems, which is why there are so many language reasons, now for your skills point, I talk about my thoughts:
First: PHP framework source code and design patterns, you read the source code of the various frameworks, then first you have to clarify, do you really understand its design ideas, and design ideas, how many of the author's thoughts have you learned from it? If you had to write a framework yourself, could you really get started? Do not think that, read the source code, read the codes, it is understood that this is only the first step in reading;
Second: NoSQL, for the moment you've used these technologies, can you clearly understand the most essential differences between them? When it comes to technology selection, you can clearly say why you chose this, and what is the advantage compared to a few other nosql? Another direction, you learned memcache, then distributed it? Distributed situation, memcache if the expansion of it? How to ensure its scalability, and extensibility?
Third: Environment construction, optimization, load, MySQL master and slave, then I ask you, you have mastered these skills, all just can use, not to change according to the scene, make the corresponding configuration, such as to you 10 million-100 million of the PV site, you come to the structure, you are still a master-slave set up on the good? How do you deal with massive data?
Finally summed up: very understanding of the landlord thought he reached the bottleneck of the idea, the above write just want to say, regardless of learning knowledge of the technology, think about why this thing to come out, his birth is to solve what problem, and finally study his principle, and not a lot of technology, I learned to use the good, so no in-depth understanding, is not how much effect, finally suggested that the landlord to learn C language, you can study PHP source code, so that in the time of writing codes will also consider performance issues, and through the C language learning, you can study the source code of various software and their principles, such as Memcache,apache, Nginx can go to the source of research, you will see more things, learning Java will be your framework design ideas and design patterns have improved
The most annoying of this type of problem, to reach the bottleneck should be a different linguistics? Can you solve all the problems in a different language?
The Spit Groove is finished, return to the problem. You said you met the bottleneck, where is the bottleneck? Or, what kind of business do you encounter, PHP can't (very well) complete the task? I give my own example, I met a data capture scenario, PHP can do this function, but from the operational efficiency considerations can not be very well done (although there are tools such as pthreads), I understand the other language for the situation of this scenario, node. js was selected to perform the task well.
Read your description, I think your application to PHP is also limited to the web side, have you ever tried to take PHP to write something else? PHP-CLI is also very good. I've seen a case where someone took PHP to implement a set of compilers that support the C language (subset) and PHP-Mixed languages (into binary code) and the interpreter (← He wrote for the purpose of encrypting code), oh yes, that man was a freshman. Suddenly feel like a weak explosion ...
Wordy so much, in fact I want to say on two points, if your bottleneck is a specific demand, and PHP can not support (although I very much hope that PHP can be omnipotent, but at least now, this is only a dream), then to choose a good solution to your needs of the language, if you are learning to a certain extent, Feel lonely and defeated, I would like to ask, do you have any idea that PHP is so familiar to you? PHP is a weak type of language, how is it implemented? What is the memory recovery mechanism of PHP? Do not think these are the underlying things, I write the upper-level code is not to care. If you can understand, sometimes can help you solve some very very very hidden pits.
I learned the true meaning of the web from the framework of Python tornado
, and I can try it ^_^
You know so much, I think the next step is to constantly solve the problem of various tastes, from the problem to absorb the essence
Python is also possible, Python is a universal language, writing to develop desktop software or automation can be used. If you want to change the line can be a C language, the classic language can also improve their ability to control the underlying hardware, the hardware has a deeper understanding. Want to do server development or API can consider the go language, the development of high efficiency and efficient operation. Each language has its own characteristics, more understanding of understanding is true, but can not be proficient all on this, proficient in one or two kinds is the way
Python or go
Java, access to the MVC framework of Java
Java, what you learn is thought.
Recommended C, Python, Lisp, Erlang, Lua. are very characteristic languages. Look at which one has the feeling to learn which is good. Really tangled up to learn C, and then see your use of the software is how to write.
Operating system, computer network, data structure, composition principle
This skill tree and everyone's answer is helpful to me.
Even the CS door is still submerged, all began to discuss the bottleneck ...
Take a look at the new features of php5.5,5.6, and the trend is now popular, you know, you should learn java!