What
A software engineer's career takes the following stages: Beginner, intermediate, and finally advanced. This article is mainly about how to help you become a senior software engineer through 10 steps.
Why
Get paid more! By the way, did your year-end award fall? Because your salary will increase as your level increases.
Improve your career. After becoming a senior software engineer, you can move towards the position of architect, team leader, CTO, etc.
Have a greater challenge. As you grow, so does the impact.
How
Software engineering is difficult. The industry is changing, so you have to follow it. You have to constantly devote time and energy, because you need to learn more than you can absorb. Many novice engineers do not even realize that if they want to climb the peak of the industry, they have to learn something and how much effort they have to pay. But don't worry, I'll point out a "Ming road" that will help you become a senior software engineer.
Step 0: Choose your path and keep going!
Do one thing and do it well. --doug McIlroy "Unix philosophy"
On this point, I really stressed that I could not stress anymore. It is important to choose the professional and technical stacks you will be playing alongside. Be persistent, don't be distracted. As to what should be done please see below:
Choose a major. That's what you want to do. For example: WEB development, mobile development, DevOps, and more.
Choose a practical technique in your profession. For example, if you choose WEB Development, you need to be careful between Ruby on Rails, Python, Django,javascript, and MEAN. If you choose Mobile development, you need to make a choice between IOS and Android.
Stick to it until you master the technology.
I don't mean to say that you don't have to be familiar with anything other than your major majors. The leading software engineer is familiar with other programming languages and techniques, but first of all, they are very clear about their major majors. After you have identified the major majors, the next thing to do is to learn, read all the relevant books, and practice all the necessary skills, which may take many years. But do not be discouraged, step by step, a one to overcome difficulties, quantitative changes to achieve qualitative change. On the technology, my recommendation is: Ruby on Rails for web development, IOS for mobile development. This is a valuable experience that I have told you as an experienced. However, I would like to add that maybe everyone's tastes are different, my experience may not be for you, you can choose other technology, but in this case, you have to read the book may not be the same as my recommendation.
Step 1: Lay the groundwork
"The Pragmatic Programmer" is a good starting point for us to master software. The book summarizes a high level of practical exploration. This has nothing to do with what language/technology we are using. Regardless of which technology stack you choose, the main principle is the same.
Step 2: Mastering your programming language
What programming language you need to face every day depends on the technology you choose today. But programming languages always have primary and secondary points. For example, Ruby on Rails developers mostly use JavaScript for most of their time with RUBY,ANGULARJS developers. Determining the programming language and mastering the programming language is critical to your career development. Because you will use it every day! It is recommended that you read the books first.
The Swift programming Language is for the Ruby developer, and programming Ruby for IOS developers.
Step 3: Learning the Framework
Choose one, then study well:
For rails developers-"rails Tutorial" by Michael Hartl
For iOS developers-iOS programming:the Big Nerd Ranch Guide
Step 4: Mastering the text editor/IDE
Pick one, and then persevere in mastering the tool. If you choose VIM, then become its owner and let it go east.
Step 5: Use the version control system
I recommend using Git. Here's my favorite resource: Pro git--'s free online e-book, which explains all aspects of git in detail.
Step 6: Do test-driven development
Add TDD to your technology stack. Develop your daily TDD habits. High-quality code comes from good testing.
For Ruby on Rails developer--"Rails Test prescriptions"
For iOS developers--"Test driven iOS development"
Step 7: Build a habit of refactoring
As you continue to add more features, the codebase becomes more and more complex. To keep the code base manageable, you need to refactor. If you don't refactor, you'll quickly get into a dilemma--even small changes are difficult, bugs can't be avoided, and no one is willing to deal with this messy code base. Refactoring can make your job easier. As for how to refactor the code, one of my previous blogs: 3000 lines of code can be re-composed of 15 lines, http://my.oschina.net/u/2285044/blog/366383, and the following good book can teach you what to do: "Refactoring: Improving the Design of Existing code by Martin Fowler
Step 8: Learn the SOFTWARE architecture
Learn about the architecture based on the stack you chose above. I recommend Martin Fowler's book Patterns of Enterprise application Architecture.
Step 9: Show the power of the command line
The first touch of the command line starts with a sense of awe. However, once you learn how to use it, it will greatly improve your efficiency in performing some basic tasks. And that in itself can make you a better developer because you can achieve your goals in less time. Then you can move on to the next level. Use the shell to automate common tasks and build your own dotfiles. If you're using a Mac or Linux distribution, learn the shell. Here's a good book by Mark Bates: "Conquering the Command line"
Step 10:code Code code!
Only by practicing the knowledge you have learned can you really master it.
Summarize
As we all know, it is very difficult to become a senior software engineer. It takes a lot of time and effort. Coding at the same time also pay attention to the security code, if you can know some effective solutions, you can save a lot of time, recommend more understanding of the source protection. Different people have varying speed of learning, but on average it takes about 10 years to become a reliable senior developer. The various investments you pay will ultimately bring you great rewards. Software engineers have a good money path, the job market demand has been high, salary levels are based on experience. This is a fast-growing and relatively new area. Every day a software engineer is challenged to change people's lives. Come on, you software engineer, first challenge to become a senior software engineer!
Programmers to advanced programmers, only need 10 steps!