Six things that software engineers should try

Source: Internet
Author: User
1. Contribute to a feasible open-source project

Unless you are isolated from the rest of the world, you must have heard of open-source projects. Maybe you already have some small open-source projects on GitHub or SourceForge. All of these are good, but what I call "viable open source" means that you should try to make significant contributions in a project. Your code must be approved, if accepted, it will be applied to many systems. You can learn a lot from shared open source projects. Personally, it means: better code writing, more efficient communication, more favorable conditions, more job opportunities, higher rewards, and more praise, learn more about other ideas and give yourself a better face. The last point is that your code is subject to detailed checks and criticism in some cases. An open-source project is just a piece of software, and you are not alone (assuming that even if you encounter a good project, try your best to separate yourself from the project ). Therefore, accepting criticism is a learning opportunity and doing things better than making yourself angry. However, this is not easy to do. I sometimes struggle with this kind of thing, but I know that these codes (and I) will get better and better if I don't want to know who to write them, this is the most important thing.

Participating in open-source projects also has an extra advantage. from the employer's perspective, I will be more likely to hire someone who can find their submitted code records in the production environment. For candidates with similar skills, I will select Open-Source project contributors at any time.

2. Sell your software

Yes, I literally mean you should do telemarketing, if possible. In other words, I think you should put yourself in the geek position and explain in English to others from time to time what you are doing, not just your companions. If you cannot explain what you are doing, how can other people buy it?

It is very valuable for me to do pre-sales because a real, existing, and living customer is needed to explain why they should buy my software. I did it several times at the beginning, and I was very nervous (there is no doubt that my job is in its infancy and we are trying to do better), but I passed, I got some training and some improvement.

Selling the software you write will give you a real idea of what you are building and why you are building. It also gives you access to a large number of use cases, real feedback, and what is good, what is bad. It will also hone you, and colleagues will also bring you confidence. You can also get the respect of more people who use the software you write to improve their lives. In addition, when the code is incorrect, you will also be the first person who feels the pain, this will also make you want to write better test code. Finally, in the long run, it can help you to see farther.

3. Support your software

Another thing that comes after selling your software is to support it. Find a support method that you can work on the front line, or at least participate in the support work, so that you can truly experience the various ways people use your software: A good, bad, or even ugly way. Error reports and upgrades are the one thing. It is the other thing to listen directly to the customer's opinions. In addition to social skills, you also need to be able to quickly access the user's use scenarios and understand how they view your code. This will further tell you what you are doing well, which do you need to improve. This also means you need to know what to say and what not to say, because this is what you should grasp when dealing with paying customers. Along with sales, it will also bring you a new joy, that is, the hard work in the development phase is not in vain, it is a good support for the work of the software support phase.

4. Write/train content related to your software

If you have not understood what I mean, I will explain it clearly: I pay great attention to engineers who can not only write code, but also explain internally and externally to the company what the code is and why it is written. By writing content related to the training software, you must explain complex technical details in a concise and clear manner. It is also important to emphasize the problems that are incorrect from the user's perspective. I can't tell how many times I found that the function or feature was not very correct During writing articles and training, so I went back to modify the code. This situation occurs more frequently in the API design process.

Writing can also increase your exposure and bring more audience to you, so as to get feedback and bring your work to another level. There are many opportunities to write technical articles for websites or publishers. Learn to promote your ideas (look, you are selling again !) And stick to it. Next, you will find that you will become a qualified author and may be rewarded.

5. Make new friends

Perhaps the biggest force of change in learning and opportunities is my explicit efforts to expand my network. Of course, this is not easy, and it must involve "putting yourself into the body and mind", but the return is often extremely significant, and as you can see later, the risk is very small.

If you do not have too many human networks out of your direct contact, I will give you some suggestions. First and foremost, the key to networking is that you must meet new friends in good faith, and you must have nothing to do with this new relationship. Second, make a commitment to maintain such efforts for months or even longer. When you gain more confidence and experience from any mistakes, this will become easier and easier. Third, be yourself, but pay attention to listening to others. Fourth, this is also my weakest aspect. I learned and remembered the name. I rarely forget a face, but if I don't try to learn others' names, these names will slip away in my mind, so remember others' names and let others know that you value them.

In addition to these skills, there are many good books on this topic. My favorite one is "Love is a killer ". In my opinion, this is a title, but all the suggestions in the book are dry, and the author shows it well. At the end of each day, immerse yourself in it and learn from your actual feedback. If you find that you have been rejected for too many times, ask a trusted friend to give you real suggestions on where to improve. If you are confused, ask another friend for a discussion.

6. Dividend: Find a mentor

It is possible that you already know some people you respect who have the ability to solve complex problems and communicate efficiently. If they are willing to share their experiences with you and give you feedback on improvement methods, they will naturally have a chance to win. Learn from their experiences and lessons and stay open to their suggestions. Although it is not always true, you should at least consider what they are talking about and then make a decision. Personally, I am lucky to have a friend who is also an executive coach (our unexpected encounter proves the value of putting yourself into something) and an enterprise owner. Over the years, I have met many good bosses and colleagues who have acted as my mentor and I am very grateful to them. Before you start, ask who you admire most and discuss your thoughts with them. If you cannot find a friend who is qualified for this role, you can even consider hiring a coach.

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.