Recently, I am very entangled in the following question: Is it necessary to temporarily put down the more popular Java to learn iOS or not to learn iOS, but to focus on Java.
I have learned Java for more than a year, and I have learned more and more, but I am a little reluctant to buy a MacBook without learning IOS.
A few days later, I accidentally saw this post and finally posted my own answer:
In the face of technological oceans, how do you choose your own technical direction?
I believe that many people who have been working for a year or two are confused. They write code that has not been written for a long time, but are not proficient in it. They do not know how to choose from various technical directions. I am one of the people who are confused. We hope to initiate a discussion to look at your views and opinions.
My opinion may be one-sided, but I still want to say that the most important thing in my work is not to master a certain technical direction, but to constantly improve my ability to learn quickly.
1. The technical direction is constantly changing. You may have just mastered struts, but struts 2, Spring, and grails have come out again; just mastered the essence of jquery, but found that HTML5 and css3 are available, which is redundant in most cases; just understood the concepts of thread pool and so on, a single-thread framework suddenly became popular; just learned MySQL, MongoDB went viral again. Basically, many new things will come out every year in most technical directions. If you want to be proficient in a technology, and then try again, I am afraid it is not realistic.
2. The evolution direction of technology is not easy to predict. Brother, I have encountered this confusion. I thought I was a good guy in the IBM host development field (AS/400, ES/9000), but I couldn't find a job when I left the original unit, who knows what RPG and COBOL are apart from the several major IBM customers? I had to start learning Java again before I had to mix it with others. Now those development platforms including Microsoft are gradually declining. So it may fall behind in a few years.
3. The choice of technology is a universal problem. In fact, not only are the landlords confused in this regard, but I'm afraid the bosses of the landlords will be more involved, such as nosql, big data, and cloud computing? Will it lag behind? Do investors think that we are not enterprising? What should I do? How many employees do they cultivate? How much is invested in one year? How can we deal with this problem? That is, why didn't Steve Jobs fight between HTML5 and flash. For this reason, they have to consider year 35. It is normal that you cannot see the direction clearly.
4. "proficient" refers to the depth of understanding a technology, while "technical direction" refers to the breadth of understanding of the whole technology. Without depth as the basis, the so-called breadth is also virtual. Many people like to talk about map reduce, hadoop, machine learning, and the integration of private and public clouds, it seems that a top-level architecture can be built at once, but he cannot write a binary tree traversal. This is too young and too simple. It is similar to a street hacker to discuss how to recover the Diaoyu Islands.
Talk is cheap. You know.
Therefore, the author mentioned that "a lot of people who have been working for a year or two are confused, but they have not been proficient in writing code for a long time." This is normal. Since it is only "code that has not been written for a long time", "not proficient" is basically inevitable, unless you are a genius. If you want to be proficient, you need to spend more time writing code, querying more information, and thinking more. First, you must be proficient. On this basis, I will focus more on the Technology Developments in the industry in my spare time, learn about some new technologies, and gradually accumulate them. This will help you see the big trend.
In a word, my opinion is that you should not rush to the next level and want to know the direction clearly. No matter what technology you are using, you must first master it in a down-to-earth manner. In this process, we constantly improve our autonomous learning capabilities. In this way, even if you cannot see the direction clearly, you will always be the first to adapt when the direction changes, which is also very good.
Certificate -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Well, "proficient" is about the depth of understanding a technology, while "technical direction" is about the breadth of understanding the whole technology. Without depth as the basis, the so-called breadth is also virtual ." My answer is that I will not give up on Java to learn more about the extended breadth of Java students and learn more about IOS!
First, we have depth and extended breadth.
In the face of technological oceans, how do you choose your own technical direction?