This article is reposted from 51CTO (ID: weixin51cto), author: Xiong Xiaomei

In 2006, I started my programming career. When I realized I had reached the important milestone of ten years, I felt it necessary to look back on the mistakes I made during these ten years, summarize my experience, and offer some advice to those struggling in this profession. The development industry changes quickly, and I can't be sure whether these suggestions will remain valid in the next ten years, but I believe my words will definitely help you, whether you are a novice just starting out or a veteran with several years of experience.
Stick to one development platform, framework, or language
The biggest mistake I made in the past ten years was switching development platforms almost every time I changed jobs.
My experience started with Java enterprise development, then embedded C programming, then developing Windows desktop applications with VB, C# and C++, then writing iOS applications with Objective-C, then writing Android libraries with NDK, and finally writing Android applications.
This career path sounds impressive, but employers actually don't care. They won't focus on your 10 years of diverse development experience, but if they see that you don't have enough Android app development experience, you won't get an Android development job.
Switching platforms has a huge negative impact on your resume. For an employer, there's actually no way to verify from your resume whether you're an expert in a specific development field and whether it's reasonable to pay you a lot of money.
Most companies don't care about your past; technical interviews are more important. That's why many developers with limited experience but the right specialization can find jobs.
So how do we adapt to market changes? As long as you keep coding, you can naturally adapt to the market, but you also need to invest some time in new skills. You should set aside time to learn new skills during your free time, and you also need to lower your salary expectations. You need to take one step back to take two steps forward.
Once you find a platform, framework, or language that feels comfortable, you should stick with it. In the long run, your expected salary and your work ability will be higher than if you frequently change jobs. Find a good company that needs your specific skills most, and then work there steadily. I know this sounds simple, but it took me many years to realize this.
Don't pursue management roles for high salaries
I used to think that managers in suits making administrative decisions earned enviably high salaries. Although this is true in some cases, it's only a small proportion. Experienced developers generally earn better salaries than mid-level managers.
In my early career, I always wanted to get into project management. I self-studied for a master's in management, where I learned many interesting things. Eventually, I worked as a development manager at a Spanish company for a while, but then I realized it wasn't right for me.
When I was a developer, I always felt the company lacked corporate culture, especially a corporate culture with technical elements. However, after becoming a manager, not only could I not improve my programming skills, but the sense of loneliness in corporate culture became even stronger. When I finally left that role and returned to technical development, I began to appreciate my development work again.
If you're tired of coding, switching to a management position is not the solution. A better way is to move laterally, change departments, change companies, or travel. You could even choose to work abroad to free your mind. There are many technology centers around the world where the demands on developers are high, which can help broaden your horizons.
Take a break
I had never been "unemployed" until last year. After ten years, I felt I needed a break to "refactor" my career, and it turned out to be one of the best decisions I've ever made.
I took 5 months off, quit my job, and was voluntarily unemployed. I could feel everyone around me worrying that my career was about to end, but what happened was exactly the opposite.
After ten years of constantly changing jobs and hurriedly using up paid annual leave, I finally experienced how "happy" being "unemployed" can be. In fact, in our careers, "happiness" is truly the thing we should pursue most.
In my case, for the past four years, I had always wanted to sit down and learn German, but never had the time. During those 5 months, I took an intensive German course, 3 hours a day, and improved my German from A2 to B2.
Finding a job again was easy, much easier than expected. So, if you feel you need it, don't be afraid of a long break. A gap in your resume will not be held against you as a developer.
Of course, after reading this article, whether or not you're ready for a long vacation, please be sure to follow these pieces of advice below:
1. ABC: Always be coding
Even during a break, don't stop programming. During my 5-month break, I did a personal project: an Android app using the discogs.com API. It's a handy personal app that helps me add and delete records from a data table, and I also wanted to use it to summarize and update my development skills.
Thanks to this small project, I was able to confidently handle job interviews. I tried many new popular libraries and development patterns, which are now being successfully and effectively applied in my current work.
I really wish I had started doing this earlier. Our development work tends to be repetitive; the longer it goes on, the harder it is to change accumulated programming habits, and the less room we have for self-improvement.
In the long run, having personal projects, reading, writing blogs, and participating in interviews will all help you become a better developer. As long as you find it interesting, push your code to GitHub and share your experience with the community.
2. Become a member of the developer community
When I was in college, I was always too lazy to participate in various club and society activities. When I got my first development job, the last thing I wanted to do was chat and hang out with other developers.
But I was wrong.
Peer meetups and joining developer groups are interesting and great places to meet fellow developers. If you want to be the best in this industry, try not to be passive. Talk to the person sitting next to you, offer your help, and share your experience. Everyone likes to talk about their own experiences, and you might even meet many potential employers.
There you'll encounter many beginner groups that need coaches. You can mentor novices, give them opportunities to practice, and even sponsor events.
Of course, learn from others' development skills and be brave in practicing them. Warmly welcome people with different opinions to speak, and courageously listen to their advice.
3. Don't apply for jobs on job boards
This is my final "pearl of wisdom": don't apply for job postings on websites.
Behind job boards are complex HR processes, candidate tracking systems, mass resume spam, and chaotic communication. These are several important reasons why many companies can't find talent and rely on headhunters.
Good talent should skip all this. Networking is the way to find opportunities. Pay more attention to local community news. When someone leaves an important position, when an interesting company gets funding, or when a company is hiring due to personnel changes, you'll get the latest first-hand information.
Through networking, you can also learn which companies have better benefits. Most developers at various companies will treat you sincerely; they'll tell you whether these companies have outdated architectures, whether the managers are good people, and even what the salaries are like.
If you see an interesting job opportunity, first look at your social network, check your user groups or LinkedIn circles to see if anyone already works there, or ask if they know someone. Then contact them directly and talk directly with the company's CTO, hiring manager, or other developers.
Headhunters are good, but don't rely on them. Their job is just to help companies fill a position vacancy, because they don't work for you. If the position they recommend really fits what you're looking for, then go for it; if it doesn't feel right, just tell them: thanks, but no thanks.
About the author: Miquel Beltran
Currently Lead Android Engineer at Good Hood GmbH, leader of the Google Berlin developer team
Original title: Mistakes I Made (as a developer)
Article translation: Chen Xiaomei
Original link: https://medium.com/@Miqubel/mistakes-i-made-d2e1dc4e820a#.zcmzaiz67