What Software Engineers Must Know - How to Define Your Career Path?

  There is no shortage of articles about the career development of software engineers in the community, it is even flooded. Many people can say a few words on this topic, whether it is a programming veteran with three or five years of work experience, an architect, a technical VP, and a CTO, all have their own views and practical experience. There is no one set of methods that is suitable for everyone. This set of software engineer career development outlines is just for you to use for reference when you are confused. Your core competitiveness is always your own strength. Remember!

1. Shortcuts for learning professional skills

1. Fall in love with your coding artifact

  As we all know, the job of a software engineer is to write code. To be precise, your goal should be to write code that meets business needs and can't find bugs, rather than writing a lot of useless text. Since your task is to write high-quality code, the first thing you should train is typing speed, you need to master keyboard touch typing skills, and even fall in love with your "coding artifact" and use this tool You are familiar with it, and you can correctly hit the shortcut keys you want when you close your eyes.

2. Familiar with the underlying technology principles

  After you have fully mastered the computer's input devices, you need to further understand the inner workings of the computer, not to let you disassemble the machine into eight pieces, but you need to fully understand the composition and working principle of the computer. It doesn't matter if you are not born in a computer science class, you can buy a book on the Internet about the principles of computer composition and teach yourself. You don't need to be proficient, you can fully understand it, because then you need to slowly experience the working experience of computers in the world of programming. You are the manager of the computer.

3. Deep dive into a programming language

  Well, it's time to learn a programming language, the best choice is Java, why? The reason is very simple, because the market demand is the largest, I can guarantee that you will definitely find a job easier to learn Java than PHP (I hope PHP programmers calm down, in fact, I always think PHP is the best programming language in the world). When you are learning Java, you first need to master its verbose programming syntax, nothing is more refreshing than writing a "Hello World". Then what you need to deeply understand is the object-oriented concept of Java (every time I talk about object-oriented, I will always be complained by some bachelors. In fact, I want to say that objects can be new), these concepts seem relatively imaginary, but they are But it can support a powerful software architecture. Therefore, it is not too much to spend more effort on object-oriented technology, because it can train our abstract ability to business, just like when we learned mathematics, it can train our logical thinking ability.

4. Choose the right teacher

  Reading books, watching videos, watching source code, and reading technical documents are actually relatively inefficient learning methods. The shortcut to master programming skills is to take a senior programmer as a teacher. You can call him "code god", remember Be sure to serve him well, and let him be willing to teach you some programming skills. In fact, it is just a smile and a meal of crayfish, and he can be conquered by you. Be sure to look at the code he wrote, think about why he wrote it like this, write down what you don't understand, and hold him tightly before leaving get off work, let him tell you enough at a time, at this time you must There will be a pleasant feeling of opening up the two veins of Ren and Du. The so-called "Master leads the door, cultivation is in the individual", you need to work harder than your master, or even ten times as much as others, in order to taste the sweetness on the road of programming. At this time, you need to learn more advanced martial arts, research more excellent source code, practice more challenging projects, and you also need to spend a whole block of time to systematically read technical documents and technical reference books. If you want to be an architect, check out my book "Architecture Adventures", maybe it will help you with your professional skills.

5. Be open to sharing your skills

  You'd better make yourself an open-minded person, don't be stingy, and be sure to know how to share the professional skills you've learned. You can try to make your own open source project and make this open source project more open. You might as well combine open source, write some technical blogs, and have the cheek to read to your friends. You must persevere in this matter. Don't worry about someone complaining about you. You will definitely be complained. That's because everyone is paying attention to you. At this time, you need to work harder to make yourself professional enough. When you become a real "great god", no one will complain about you anymore, they will only complain that their skills are not as good as you, and you will get unlimited worship and praise at this time. Trust me, this is no miracle. On the road of learning professional skills, you will be successful with a little more confidence, more diligence, more thinking, and a little more opportunity.

2. Indispensable soft skills

1. Soft skills ≠ retreat

  If professional skills are compared to "hard skills", then in our workplace, skills that are not related to professionalism can be classified as "soft skills". But whenever I mention soft skills, it is inevitably misunderstood that it is a kind of "retreat". Although we are "soft-eaters" (do software development), we hate hypocrisy very much. That's right! I also hate hypocritical people, especially when I meet such people in the workplace, I despise them from the bottom of my heart, but I never have any conflicts with them, but I can still work happily with them. It's soft skills.

  Software engineers deal with machines every day. Machines have no emotions. You tell it to be 0, and it must not think it is 1. But we deal with people differently, you tell him is true, he may think it is false. Dealing with people is the most lacking aspect of software engineers. Some software engineers are even afraid of communicating with people, afraid of speaking in public, afraid of public appearance, and afraid of doing some organizational work. If you also have these burdens in your heart, then congratulations! Because you are about to find in this article a panacea for overcoming these difficulties, at least I hope so.

  It is important to emphasize that soft skills are a core skill that must be found in the workplace, and I can honestly say that if you lack these skills, your career will be very bad. Soft skills include a wide range of aspects. Communication, coordination, organization, and aura are the most basic soft skills. Even emotional intelligence is a soft skill. Whether you can speak or hear clearly, these are all soft skills. So let's start with the soft skill of communication, because I think it's one of the most important soft skills for a software engineer.

2. Spoken fluency ≠ good communication skills

  Many people easily interpret communication as speech. It is said that a person is fluent in language, can speak well, eloquently and rhetorically, but in fact, his communication skills are not very strong. In my opinion, communication can be understood as two aspects, namely "ditch" and "communication". "Double" means that you express your thoughts clearly to the other party, and it tests your ability to express; your ability to listen. Therefore, we are often in "communication" and often ignore "communication", thus forming a situation of "communication without communication". Therefore, people all over the world are now advocating how to "communicate effectively". Let's talk with an example.

  When a leader has handed you a tough job, but you don't know how to get started, how should you deal with the current challenge? The vast majority of people will bite the bullet and do it. They hope that through their own efforts, they can successfully complete the task, but the results are often not satisfactory to the leaders. A small number of people will take the initiative to consult their leaders to seek their help. How should we talk to leaders at this point? It seems that not many people are aware of it. The following paragraph is my routine, for reference only.

Me: Brother Yong (he is my leader), I have encountered a little trouble recently, and I would like to hear your opinion (to arouse the leader's interest, let him listen to me carefully, remember to say "you", instead of "you").

Leader: Oh? Listen to it (prove that the leader is not busy at this time, he has time for me to occupy it, if he is busy at this time, you should be able to feel it).

Me: Thank you for your trust in me, you gave me a task yesterday, I have been thinking about this task when I got home, I was thinking... (Be sure to express my gratitude to the leader, he gave me this exercise My own opportunity, and emphasize that I am thinking "when I get home", not just in the company, you know the reason)

Leader: Maybe I didn't make it clear, you think this task is complicated, in fact... (It can be seen that this is a nice leader, you can learn a lot by following him)

Me: I also want to be clear, what do you expect from this work? (Be sure to clarify the results the leader wants, he will only pay for the results)

Leader: I hope... (The leader speaks in a succinct manner, 10,000 words are omitted here, you must not interrupt the leader's speech, he will stop when he is tired, you just need to listen carefully to what he has to say)

Me: OK, I understand, you want me to... (must learn to repeat what the leader has said, and express it with your own understanding, don't be a repeater)

Leader: That's right, that's it. (The leader has expressed his approval. At this time, you should show the leader a smile to make him feel relieved)

Me: Thank you Yong brother! If I encounter problems during the implementation, can I ask you again? (Be sure to be grateful, and show humility to ask the leaders for advice, and prepare for the next call for help)

Leader: Of course, communicate at any time. (If you really take him as a leader, he will help you unconditionally. If you don’t know how to make good use of this leader, that’s your own loss)

  Is it fun to communicate? In fact, communication is a science. We spend our whole life learning and improving our communication methods. The purpose is to "play" with the people around us happily and make this life feel happy.

  When you have mastered the necessary professional skills and soft skills that make you stand out, then you will think about which way should you go, continue to be a software engineer, or be a leader of software engineers? The following passage will tell you the answer.

3. Correctly formulate a career path

1. Ask yourself a few questions

  The first thing to clarify is: I am not a career mentor, let alone the godfather of life. All paths are yours to choose. My responsibility is to tell you what I think works.

  When you are wandering at the crossroads of the workplace, thinking about technology or management? I have only one answer: decide on your own merits. Making good use of your own advantages will make you go more smoothly and have no regrets. Let me give you an example.

  Some time ago, a friend privately chatted with me on WeChat. He also encountered this problem. Should he continue to work in technology, or switch to management? That's what I asked him at the time, but I hope you can ask yourself this way.

Me: How long have you been working?

Friend: It's not long, I've been writing code for 10 years.

Me: That's pretty senior. Are you still passionate about writing code?

Friend: I like to write, sometimes I stay at home to write on weekends.

Me: Then what are you still struggling with?

Friend: I have been working for 10 years, and the people around me are either CTO or director, but I am still writing code. Should I switch to management now?

Me: Why did you consider switching to management? Tell us about your strengths in management.

Friend: I think I have a certain depth of technology and can help the team solve some technical problems.

Me: What would you do if one of your teammates had a really tough technical problem and couldn't do it?

Friend: Roll up your sleeves and help him solve it on the spot.

Me: I suggest you take the technical expert route, which may be more suitable for you.

friend:……

2. Before switching to management, first understand management

  When we are struggling with whether we should switch to management, let’s first understand what management is? And what is a manager? Only when we correctly understand these concepts, and then think about whether we have such characteristics, can we successfully help ourselves transform.

  Management is coordinating and supervising the work of others so that the work of others can be done efficiently and effectively. Efficiency refers to getting as much output as possible with as little input as possible. Efficiency is often referred to as "doing things right", that is, not wasting resources. Effectiveness is often referred to as "doing the right thing," that is, doing work activities that achieve goals. A manager is a person who performs all management tasks and enables organizational goals to be achieved. The work of a manager includes four functions: planning, organizing, leading, and controlling.

  The above are all the knowledge that management tells us. If you want to be a manager, then you must first correctly understand the true meaning of these concepts, and then you can fully control the position of the manager, otherwise you will fall from the management position. Must be badly injured.

  If you want to be a good manager, what do you need to do?

  • Motivate the team personally and professionally.
  • Motivate the team to accomplish tasks that you cannot do alone.
  • Provide guidance and guidance on issues.
  • Give feedback on the team's performance.
  • Help teams improve performance.
  • Keep teams informed about organizational changes.
  • Improve the lives of your teammates.

  If the team has worked with you, the team should consider them lucky because you were able to make their work more enjoyable and productive.

write at the end

  Regardless of whether you choose technology or management, don't give up your hard skills at any time, because it is your "basic of survival", and you also need to have strong soft skills, because it is your "source of development".

  There are actually shortcuts to learning hard skills. You don’t need to learn these knowledge points blindly, but it’s more about communicating with people and applying them. Soft skills are actually trainable. You just need to seize every opportunity you can, train and reflect consciously, and you can learn a lot of valuable experience. Software development is an art, you need to be able to calm down and constantly optimize and sculpt your work, so you need to have a craftsmanship. If you want to be a craftsman leader, then you should think more, higher, deeper and more comprehensive than others, you need more soft skills. You can only choose your career path correctly if you recognize your strengths.

  I wish you success!

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324374726&siteId=291194637