Google has done a lot of recruitment advertisements recently. Today, I saw the recruitment announcement of Google and thought about its own shortcomings:
1. I am interested in two areas: server programs for Internet-based applications; network, platform, and infrastructure implementation.
2. My gaps:
1) four and a half years of work experience, less than one year.
2) solid skills in the computer technology field: My current shortcomings are concentrated on data structures and algorithms. This is what I need to reinforce over the past six months. I have some advantages in code and design.
3) for programming languages, I currently mainly use C and C ++. According to Google's requirements, I need to work hard on java.
4) In terms of extra points, I can develop python, TCP/IP, network programming, database, and SQL.
5) English and read/write skills should be enhanced.
On the capability matrix, I am currently in the range of level1 and level2. I want to reach level2 within one to two years.
In terms of learning strategies, you must focus on things, because there are too many things to learn. If you don't focus on things, you may have nothing to do.
Today I read an article on the csdn homepage: How to become an expert developer
I mentioned one thing:"It is a good way to know what you should learn and view recruitment advertisements.", This is consistent with the idea, haha.
In addition, write down your own summary:
1. Focus. Select a platform, industry, and focus on this field for a period of time (at least 6 years ). I should be developing C/C ++ on Linux, and I should focus on this field. After three years of work, one of my colleagues switched to HW and switched to Java.
2. In-depth analysis. I have a deep understanding of my platform, language, and industry. For example, I want to have a good understanding of the Linux operating system, Linux kernel, C/C ++, and communication industry knowledge.
3. expansion. "When you start to master the current platform, you must begin to learn platform-independent skills, such as pattern design, distributed system design, software architecture and performance. When you make progress, you will spend more time learning these skills. This is a good thing. Because these skills are not limited by the platform, it is easier to transfer new technical platforms ". For me, these skills are synchronized with platform learning.
4. Practice. You may switch to technical management or architect positions, but remember to always write code.
5. If you do not know what to learn, check the recruitment announcement for your ideal position.