30 suggestions from people over here for software engineers

Just a few days ago, my life reached 30 years old. In the past ten years, I have done many things and learned many things. In this article, I will review the course of my life and make the work and life of a software engineer public.

Next, let us enter the topic.

1. Work hard

No one will give you a promotion or raise for no reason. However, hard work is not enough, you also need to be more efficient.

People who work hard but don't provide any value are useless. Don't be the kind of people who use the hours sitting in a chair as productivity.

By the way, you also need to avoid working with such mediocre people, usually their companies are also super toxic and will make you miserable. Fortunately, such people have disappeared in our field.

2. Don’t be obsessed with programming languages

Too much clinging to a certain language is meaningless. Most programming languages ​​are similar and have their own advantages. This is why we have many languages, because no one language is perfect.

However, make sure you understand at least one language in each paradigm. For example, functional programming, object-oriented programming, etc.

3. Learn a new technical language every year

You should try to learn a new language every year (ideally you should choose a popular language and force yourself out of your comfort zone). Only in this way can you keep your brain sharp and keep up with market trends.

In addition, if you find the value of a certain language, you can use it as a tool to solve specific problems and recommend it to the company.

4. Be responsible for your career

Your childhood was very sad. Your former manager (or current manager) was a bastard. You have experienced 3 marriages and 5 divorces. The web framework that you took 2 years to master is not popular anymore. Your life is a mess, there is no light in sight.

Even so, you are an adult and you should win this battle on your own. The hardships of the past are not an excuse for not seeking improvement. Only by working hard to improve ourselves can we have a better tomorrow.

5. Don’t worry about things beyond your control

You only need to think about what you can do. As mentioned earlier, web frameworks that you have spent 2 years mastering are not popular anymore. So what should I do? Learn another one. This time you can choose a framework with better development prospects. You may need to go through this situation many times in your career.

Maybe your (beloved) technical director has left the company. Although very sad (I have had this experience in the past), now you need to cheer up and make a good impression on the new supervisor.

If you can’t, you can also leave the company. However, please don't worry about things beyond your control. You need to adjust your status because "the show must continue" (English: The Show Must Go On, a song by the British rock band Queen).

6. Don't make enemies with others

If someone is better than you in some way, don't hate them, you should learn from them. Usually, we regard people who are better than ourselves as threats. And I see them as a source of motivation to improve yourself, and you should do the same.

I remember that in the past, several colleagues were very good at coping with stress, and they could even turn the tide on the brink. I have learned a lot from them. I never envy them because I know that I can also develop this ability.

If no one around can surpass you (technically), then please be careful, maybe it's time to find new opportunities for yourself and your career. Believe me, unless you are in a senior position (such as CTO), you don't want to be the strongest employee in the company. As the saying goes, it is better to be a phoenix tail than a chicken head.

Hatred will ruin your life and dampen your enthusiasm in life. Hatred does not bring you any benefit.

7. Dare to shoulder heavy responsibilities without worrying about salary issues

It is a pity that many people only have money in their eyes, but they have not been able to hone their skills and build a strong image.

Which of the following people do you think will have higher salaries in the future: is it a CTO with a below-average salary, or a junior engineer with an above-average salary? So, choose your job wisely.

8. Those who fail technical ability will eventually be defeated by technical ability

Many people think that a computer science degree can double their worth. Major companies will ask you to go to their company, and they can easily get everything with a piece of paper.

Don't get me wrong, I believe a good degree can prove that you have learned a lot of useful knowledge, but many people stop there.

In this regard, I appreciate self-taught programmers. Maybe they lack the theoretical knowledge of computer science, but they know that they are facing difficulties, because every bit of their success comes from their own hard work.

In addition, if you lack some basic knowledge of fashion trends, it means there is a problem with your approach. You don’t need to be an expert to master the world around you.

9. Cheap hardware is not only worrying about quality, but also harmful to your health

You should spend money on some high-quality keyboards, mice, and monitors. Your business needs to rely heavily on your hands and eyes.

Noise-canceling headphones are worth having, but if you don't have the high-quality hardware mentioned earlier, then don't blindly follow suit.

Unless your working environment is very noisy, there is no need to buy noise-canceling headphones.

10. Go for a walk, maybe the problem will be solved

Okay, I'm a bit exaggerated, but I want to emphasize the necessity of divergent mode. Barbara Oakley describes the learning method in her course, which I highly recommend.

Nowadays, people don't pay much attention to the divergent way of thinking. At least I know that few companies will allow you to sleep (or engage in other divergent activities) during work, but in fact we all need divergent thinking. In fact, the "talk about it later" that people often use on their lips implies the importance of the divergent mode.

11. Put part of income into professional education

If your company is willing to branch expenses, so much the better.

YouTube is an excellent learning resource, but if you really want to learn a technology seriously, and the income allows, you should still subscribe to high-quality training services, such as O'Reilly / Pluralsight.

Find a learning method that suits you, and then learn more.

12. Avoid companies that do not have training policies

Maybe I have a strong and biased view on this point. If the company is relatively new or insufficiently funded, there can be exceptions.

Since the technology sector needs to constantly learn new knowledge and keep up with the latest trends, I think companies that do not have proper training/education policies should not be considered.

For me, the minimum education policy is that each employee has a special budget, and can pay at least the following part of the cost each year:

• Attend a meeting

• Purchase books

• Purchase high-quality training services such as O'Reilly learning

• Perform certification

Of course, for various reasons, most people will not do all the above things again in a year. Perhaps because they have entered a stable period, or because they have a family, they cannot devote most of their spare time, but if employees have this intention, the company should fully support it.

I have higher requirements for large companies, and I hope large companies can hold some lectures, especially on key issues in the field. For example, if the company wants to adopt Scrum, it is best to invite an agile coach to help prepare.

13. Use the best tool money can buy

For example, IDE. Similar to hardware, one should not be greedy for cheap IDEs. As the "Programmer's Practice" said, you need to choose an editor and then learn how to use it well. High-quality tools can save you valuable time.

Don't forget, time is money. Now that you pay a high price, you can save time later.

14. Ignore motivation

People need a lot of motivation to achieve important life goals.

Motivation is important, but it is also an emotion. Like all emotions, motivation will fluctuate.

You need to find a better way to guide yourself, at least understand what you need to do in some important things.

When everything is going well, it is easy for people to be content and happy, but what can you do when you lose motivation or enter a period of burnout?

15. Stay active and enthusiastic

Although I don't recommend that you always actively develop your career and life as if you have been smashed, I think everyone should have their own career vision.

You should be clear about your direction of development. Only in this way can you know whether each decision you make can make your career develop faster and safer. As the famous British rower medalist said in 2000, can this decision accelerate the progress of the boat?

16. Know which type of company is more suitable for you, and concentrate on doing this kind of work

Start-up companies, medium-sized companies, and large companies all have their own benefits and negative aspects.

If you prefer to work in a large company, you may not be able to handle the daily work of a startup company.

You need to do some research to make sure you understand what options you have, and what each of your choices can gain and lose. Unfortunately, there is no uniform answer to this question.

17. Meeting a good manager is the foundation of a healthy work and life

You may be no stranger to this. It will be a great blessing in life to meet a reasonable manager who can communicate effectively with him, and who can do the job he likes.

Many people resign not because of the company, but because of their managers. You need to make sure that you can get along with the manager happily. Ideally, this should be confirmed before entering the company.

18. If you want to give someone a bowl of water, you have to have a bucket of water

This is why I started blogging in the first place.

If I learn something interesting, then I can share it through the blog.

I think this method works well. At least for me, although I never asked my readers:)

19. Only by persisting in learning can we not be eliminated by the times

There are relatively many changes in high-paying areas related to the software industry. The field is developing so fast, so once you stop studying, you will be eliminated by the times.

This doesn't mean that you should spend all your working time reading and writing code, but don't go to the other extreme: settle for the status quo and ignore the changes around you.

20. Learning is a long-term persistence process, don’t rush for success

As for the mentality of learning, it is better to spend 30-40 minutes studying every day than sitting in front of the computer all day after being abandoned on Sunday.

You felt this deeply when you were in college, didn't you? If you usually do your homework on time, the pressure before the exam will be much less. Knowledge needs to be accumulated little by little and cannot be achieved overnight.

21. Let the program run first, then consider the correctness, and finally consider the speed

This quote by Kent Beck is one of my favorite quotes (there is also a Unix philosophy). I am shocked by the lack of pragmatic thinking in the software development industry.

People put too much emphasis on spaces and tabs, underscores and initial capitalization, and interface naming.

I did not say that these issues are not important, but we first need to ensure that the program can run, right?

I like to observe others the most. Whenever I see their code fails to compile, I add a lot of comments, which is quite speechless. Friends, please be pragmatic.

22. Time spent on social media should be worth the money

Focus only on celebrities who are worth your time. I follow many celebrities on Twitter, including many writers on dev.to.

Even though I don't use Twitter very often, I like to read different opinions because they can give me a good perspective.

23. Bravely ask questions

No matter what position you are in the company, even if you are the CTO, no one thinks you should have all the information. On the contrary, research shows that people prefer you to ask them for help.

Moreover, the field of computer science is so large that no one can know everything. Just like other industries that are burdened by mountains of cases.

24. Principles and brainstorming cannot determine success or failure

Only the final result can determine success or failure. You have left school, no one cares about your romantic programming, these theories do not apply to industry issues or assumptions. I'm not saying that they are not important, but the business community pays more attention to results than abstract discussions.

This is a sad fact. If you don't like it, then maybe corporate life is not for you. It is best to find a research or university that is R&D-oriented.

25. Try hobbies outside of the software industry

Recently, I regret not following this advice a bit.

I have not succeeded in establishing a balance between full-time work, fitness training and a master's degree, and I am now thinking about fixing it.

This advice can help you avoid fatigue and also consider things from a different perspective.

For example, I have seen many articles discussing the connection between divergent thoughts and musical instruments.

26. Don’t be technically rigid

There is no need to explain it. For some reason, there are many choices in software technology. Don't promote a certain programming idea or technique, or treat it as the only solution. This approach will only make you annoying or appear ignorant.

27. Do not touch intolerable behaviors in the office

Gender discrimination, racism, bullying, disgust with one's own business, or defaulting on wages when the boss takes a vacation (I have had this experience). People in some companies are serious, mature and professional, and they know how to respect others. You need to find such a company. Let those who do not know how to respect others find superiority and uniqueness in their small circles.

28. Unit testing is boring, but...

In the case of rapid product growth or the imminent large-scale refactoring, unit testing can save your life.

Just like everything in life, you can only reap the rewards if you work hard to plant seeds.

29. Effective time/task management is very important

Effective time/task management is as important as, or even more important than, the latest and hottest technologies.

why? Because if you can't effectively use your technology to provide value on time, then you are worthless to others. If you feel that your ability in this area needs to be developed, you can start with "Getting Things Done" (GTD for short) and "15 secrets of time management".

30. Emphasize soft skills

Unless you are a freelancer who does not require open bidding, or delegate sales and customer handling to others, you will need soft skills very much.

We need to cooperate with people every day. We need to know how to communicate effectively with different people and talk to them in a language that they understand.

If everyone's soft skills are not strong, it may not be a problem, but this is a bit dystopian. I still hope you can be more pragmatic and strive to cultivate this ability.

As for how to develop soft skills, I recommend you to start with the following three books:

• 《Soft skills》

• 《How to win Friends & Influence People》

• 《The charisma myth》

to sum up

Thank you for reading, and hope you enjoy the techniques mentioned in this article. If you have other points you can share, please leave a comment below.

Personal Java learning area .

Guess you like

Origin blog.csdn.net/weixin_49794051/article/details/112919093