The original poster has been doing PHP development for 2 years. I have used the ecstore ecshop thinkphp Yii2 framework.
I have written API interfaces for H5 apps and done secondary development.
I have also read the source code of thinkphp lazyphp initphp framework. , I am also familiar with the workflow and principles of the framework
. Nowadays, it is difficult to improve my technology accumulation and business accumulation. I wanted to learn node.js
but I am not very interested in js. I usually work I also use the jquery library a lot, but native js
less. Now I don’t know what to do? Technical things are being updated significantly every year, and I’m a little afraid
that I will fall behind in 3 or 5 years. .Now I feel that apart from not being able to write PHP extensions, I have learned all the other aspects
and there is nothing to learn (the original poster is a very arrogant and proud person). As for the configuration of nginx and apache mysql, I don’t know anything about it. Redis mogodb ssdb Such a
key-value cache system, what kind of distributed, centralized, design model, separation of reading and writing, one master and multiple slaves, multiple masters and multiple slaves
, separation of dynamic and static, cdn acceleration, git is also similar I don’t understand, I can only use js plug-ins but don’t understand the principles at all, and I have a little knowledge of the http protocol
The concept of front-end and back-end separation is also vague. Whenever I make something in the company, I like to be complacent and have a sense of accomplishment. Little do you know that these little things are not worth mentioning in front of you. Saying it will only make everyone laugh. I don’t want to hang around, what should I do?
This question has been closed due to non-technical discussion
The original poster has been doing PHP development for 2 years. I have used the ecstore ecshop thinkphp Yii2 framework.
I have written API interfaces for H5 apps and done secondary development.
I have also read the source code of thinkphp lazyphp initphp framework. , I am also familiar with the workflow and principles of the framework
. Nowadays, it is difficult to improve my technology accumulation and business accumulation. I wanted to learn node.js
but I am not very interested in js. I usually work I also use the jquery library a lot, but native js
less. Now I don’t know what to do? Technical things are being updated significantly every year, and I’m a little afraid
that I will fall behind in 3 or 5 years. .Now I feel that apart from not being able to write PHP extensions, I have learned all the other aspects
and there is nothing to learn (the original poster is a very arrogant and proud person). As for the configuration of nginx and apache mysql, I don’t know anything about it. Redis mogodb ssdb Such a
key-value cache system, what kind of distributed, centralized, design model, separation of reading and writing, one master and multiple slaves, multiple masters and multiple slaves
, separation of dynamic and static, cdn acceleration, git is also similar I don’t understand, I can only use js plug-ins but don’t understand the principles at all, and I have a little knowledge of the http protocol
The concept of front-end and back-end separation is also vague. Whenever I make something in the company, I like to be complacent and have a sense of accomplishment. Little do you know that these little things are not worth mentioning in front of you. Saying it will only make everyone laugh. I don’t want to hang around, what should I do?
When similar questions are asked, I have a strong desire to answer them carefully. But when the question is asked in such a way, I just want to rant
The subject’s situation is completely a psychological problem. While saying that I have learned too much, I actually understand in my heart这些小东西在你们面前根本不值一提说出来只会让大家笑掉大牙
. While saying that it is difficult for me to improve, I can also list a lot of things worth learning and understanding 似懂非懂
, 只会用根本不懂原理
. To put it bluntly, this situation is called savviness. You clearly know that your skills are poor and you are too lazy to learn, but you still anesthetize yourself with the idea that "you have learned too much and it is difficult to improve."
So I only have one suggestion:
There are so many built-in functions in PHP that you can never say that you know them all, let alone being proficient in using them to solve problems. There are so many extensions in PHP that you can never say that you know how to use them and you can understand each of them. The meaning of the parameters. I have been working on PHP for ten years and I still dare not say that I am proficient in it. My friend, there is no limit to learning!
Most people who engage in programming, and even people in other industries, tend to make a mistake. They just think they can do it, and don’t expect to be perfect. But there is no knowledge in this world that can be touched upon. It's a bit like digging a well. If you always dig shallowly and can't see any water, you feel there's no need to dig deeper, so you dig somewhere else. This kind of person can hardly see water flowing out even if you dig the ground into a sieve. I see that you have mentioned so many concepts, and I guess you only know the surface of each concept but not the depth, so what is the use of learning it.
As for nginx, I don’t know anything about the configuration of apache mysql, redis mogodb ssdb, such a
key-value cache system, what kind of distributed, centralized, design mode, read-write separation, one master, multiple slaves, multiple masters More from
, separation of dynamic and static, cdn acceleration, git is half understood, js plug-in can only be used and the principle is not understood at all, http protocol is also half-understood, and the concept of front-end and back-end separation is relatively vague,
Now you can start learning relevant knowledge based on the nouns in this passage
During the bottleneck period, breakthrough means qualitative improvement, otherwise we will always be here.
There are no shortcuts. I suggest you change your mind and learn a new language or technology. Use java, try nodejs, try ruby on rails (the idea of this is really great, after learning it you will understand why laravel is so good). Or play with Adruino and Raspberry Pi, in general, to stimulate yourself to keep improving. I have a similar feeling to you... If you really can't find the passion for technology... then this path may really not be suitable for you.
I think you should consider changing careers as soon as possible.
After reading your description, I don’t think you have finished learning PHP. Have you ever written your own framework? Just reading the source code of other frameworks is not enough. You can only design the architecture and implement a framework by yourself. It can be considered that you can barely enter the ranks of senior PHP engineers. Then if you can write an open source PHP framework that is used by more than a thousand people, it will be considered a step up. The road after that will be even longer, just two years. I have experience in PHP development. After reading some framework source code, I would be a bit impetuous if I said that I have learned PHP to the end.
Thanks for the invitation. You need to study carefully and calmly. It's not that you encounter a bottleneck, but that you are impatient.
The best language is not for you
We are almost the same. I have been working for nearly 3 years. I have played with all the nginx, redis and database things you mentioned. Now switch to node.js. To be precise, react, these things. It feels like I have a new way of thinking, which is quite fresh.
Personally, I think you can start from the following points:
1. Learn C language and data structure. After all, these two are the basis of many languages.
2. Learn mysql, sql optimization and database management.
3. Learn Redis in depth and MongoDB, a database based on distributed file storage.
4. Learn Nginx and Apache in depth.
5. Participate in open source projects.
6. Get more exposure to high-concurrency scenarios and solutions.
7. Learn languages other than PHP, such as Python, Ruby, etc.
Learn Linux, write your own PHP framework, design patterns...
No wonder the recruitment requirements now state that they require two years of PHP work experience. Those with less than two years and more than 6 years are not required.
In the foreseeable 3-5 years, front-end solutions such as angularjs/react/vue can be solved The solution will replace the working background of the PHP backend template and only need to output json api. In the network environment where more and more mobile terminals are connected to the network and the amount of concurrency is increasing, the api made by nodejs/golang/java It is obviously better in performance and maintainability than PHP, so if you only write PHP, no company will use PHP that is more than 6 years old
You will know where you fall short if you go to a big company
Learning Linux, very interested
I have also been working in PHP for two years. Maybe I am not as proficient in PHP as you are, but I feel that I have to learn too many things to do PHP. First of all, I know a little about lamp configuration, mysql optimization, and nginx configuration, but I can’t say I am proficient in them. . I've been learning JavaScript recently, and I feel that full stack is my direction.
I suggest you find some open source projects to work on first, see where your strengths and weaknesses are, and then make further plans.
For example, I have an open source project of my own that is short of manpower. I welcome you to participate in the development.
Oh my god
I don’t understand linux nginx mysql git redis
How dare I say I’ve learned too much?
Although these are not PHP’s own technologies, doing PHP development means dealing with these
In addition, I don’t believe that the original poster can completely understand laravel
My personal situation is probably a bit similar to that of the original poster. I usually do secondary development more often. I am proficient in using the company's products for secondary development, but I know it but don't know why. I am stuck at a stage that needs to be improved to a higher level. Now I plan to Let’s learn about design patterns
Do you know the following?
<code>基础:HTML教程,PHP 教程 进阶:SQL 教程,MySQL 教程 高级:正则表达式教程,Mongodb教程,AJAX 教程,JSON 教程,XML 教程,消息队列,全文检索 http://www.rm5u.com/more/study-path/</code>
Wow, I didn’t expect that someone would answer this kind of question only>.<
Haha, I feel like the original poster is here to be cute.