Python-I have been engaged in php for some time and feel that it has reached a certain bottleneck. Which language should I learn to broaden my horizons?

Source: Internet
Author: User
Skill tree php framework yiiyii2phalconyafthinkphp other large and small framework source code has read a lot of ComposerRedisMemcachedMongdbLinuxlnmp environment construction, optimization of Load Balancing mysql master redis master and slave server O & M now only insist on watching some lin...
  • Framework

    • Yii/yii2
    • Phalcon
    • Yaf
    • Thinkphp
    • I have read a lot of other large and small framework source code.
  • Composer
  • Redis/Memcached/Mongdb
Linux
  • Establish and optimize the lnmp Environment
  • Server Load balancer
  • Mysql master/redis Master/Slave
  • Server O & M

Now, I am stuck to read some linux knowledge every day. I feel that php learning has reached the bottleneck. I also know the general design patterns of some excellent framework source codes, so now it is basically because I have no idea how to continue with the code after reading it. I feel that what I can improve is very limited. I need to learn a new language to broaden my horizons.

Currently, the research is quite tangled.C or Java or Python

Reply: Skill tree php
  • Framework

    • Yii/yii2
    • Phalcon
    • Yaf
    • Thinkphp
    • I have read a lot of other large and small framework source code.
  • Composer
  • Redis/Memcached/Mongdb
Linux
  • Establish and optimize the lnmp Environment
  • Server Load balancer
  • Mysql master/redis Master/Slave
  • Server O & M

Now, I am stuck to read some linux knowledge every day. I feel that php learning has reached the bottleneck. I also know the general design patterns of some excellent framework source codes, so now it is basically because I have no idea how to continue with the code after reading it. I feel that what I can improve is very limited. I need to learn a new language to broaden my horizons.

Currently, the research is quite tangled.C or Java or Python

Learning another language is mainly not used to improve your PHP capabilities. The language selection is mainly used to solve the problems of different scenarios and types. That is why there are so many languages, now, let me talk about my thoughts on your skills:
1. PHP framework source code and design patterns. If you read the source code of each framework, you must first clarify whether you really understand the design concept and design concept, how many authors have you learned from them? If you want to write a framework by yourself, can you really get started? Read the source code and understand the code. This is only the first step;
Second, nosql. If you have used these technologies for the moment, can you clearly understand the essential differences between them? When selecting a technology, you can clearly explain why you should choose this one. What are the advantages of nosql compared to other nosql databases? In another direction, if you have learned memcache, what about the distributed architecture? What if memcache is resized in a distributed environment? How can we ensure scalability and scalability?
Third: Environment setup, optimization, load, mysql Master/Slave. I will ask you, if you have mastered these skills, they will only be used. It is not based on the scenario changes, make the appropriate configuration, for example, to give you 10 million-0.1 billion PV website, you come to the architecture, do you still just need to set up a master-slave set? What methods do you use to solve massive data volumes?
Conclusion: I am very familiar with the idea that the landlord thinks that he has reached the bottleneck. The above is just to say, no matter what technology he has learned, why should he think about it, he was born to solve some problems, and finally studied his principles, instead of many technologies. I have learned and used it, so I have no in-depth understanding, it won't have much effect. At last, I suggest you study the C language to study the PHP source code. In this way, when writing code, you will also consider performance issues. At the same time, you can study the C language, you can study the source code and their principles of various software. For example, memcache, apache, and nginx can all go to source code research. You will see more things, learning JAVA will improve your framework design ideas and design patterns.

This type of problem is the most annoying. Should we change to linguistics when the bottleneck is reached? Can I solve all the problems by changing the language?

This is a regression problem. You said you have encountered a bottleneck. What is the bottleneck? Or, what business scenarios have you met? php cannot (very good) complete the task? Let me give you my own example. I encountered a data capture scenario. Although php can complete this function, however, considering the running efficiency, it cannot be done well (although there are tools such as pthreads). I learned about other languages and chose node for this scenario. js, completed the task well.

After reading your description, I think your php application is still limited to the web end. Have you ever tried to write something else with php? Php-cli is also good. I have seen a case where someone uses php to implement a compiler (converted to binary code) that supports a combination of C language (subset) and php) and the interpreter (the interpreter was written for the purpose of encrypting the Code). Oh, by the way, that person was promoted to a freshman year in high school. Suddenly, I felt weak...

I want to talk about two things. If your bottleneck is specific and php cannot support it (although I hope php can be omnipotent, but at least for now, this can only be a dream), so you can choose the language that can well solve your needs. If you have learned to a certain extent, you feel that you have been alone and have been defeated, I want to ask, are you really familiar with php as you think? Php is a weak language. How is it implemented? What is the memory recovery mechanism of php? Don't think that these are underlying things. I don't have to worry about writing upper-layer code. If you can understand it, sometimes it can help you solve very, very hidden pitfalls.

From pythontornadoIf you understand the true meaning of the web in the framework, try pai_^.

As you know so much, I think the next step should be to constantly solve all kinds of taste problems and extract the essence from the problems.

It is also possible to engage in python. python is a universal language and can be used for desktop software development or automation. If you want to wrap a line, you can use the C language. The classic language can also improve your ability to control the underlying hardware and have a deeper understanding of the hardware. If you want to develop servers or APIs, you can consider the go language for high development efficiency and efficiency. Each language has its own characteristics. It is true to know more about it, but you cannot put all your skills above it. One or two proficient languages are the only

Python or go

Java: access to the java MVC Framework

Java, learning ideas

C, Python, Lisp, Erlang, and Lua are recommended. They are all distinctive languages. Which one has the feeling of learning which one is better. It's really hard to learn C, and then see how the software you use is written.

Operating system, computer network, data structure, computer composition principle

This skill tree and your answers are helpful to me.

I haven't even entered the CS gate yet, so I started to discuss the bottleneck...

Let's take a look at the new features of PHP5.5 and 5.6, as well as the current popular trends. You should learn Java!

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.