10 steps to become a senior engineer

The English version is the original Chinese version is translated by Google

Translation content:

what

The career of a software engineer has gone through several stages. They start with junior roles and then move on to intermediate roles. Then they become senior. This blog post contains 10 steps to help you become a senior software engineer.
Why bother?

得到更多的报酬!薪水随着级别的提高而增加
事业发展。高级软件工程师正朝着架构师,团队负责人,CTO等角色过渡
面对更大的挑战。随着您的成长,您会产生更大的影响

How

Software engineering is difficult. The industry is always changing, and you need to keep up with it. You need to continuously invest energy and time. There will always be many things to learn that cannot be absorbed. Many engineers who have completed the training camp for several months do not realize how much knowledge they need to learn. Don't worry, you can become a senior software engineer in almost any software development field.
Step 0: Choose your path and stick to it!

做一件事并且做好事道格·麦克罗伊(Doug McIlroy):Unix哲学

I can't emphasize enough! It is really important to choose the specialty and technology stack to use. Persevere without distractions, this will make you an expert.

This is an important choice. This is how to do it:

选择您的专业。这就是你想做的。例如:Web开发或移动开发或DevOps等。
在您的专业范围内选择技术堆栈。例如:如果您选择网络开发,则需要在Ruby on Rails,Python和Django,JavaScript和MEAN等之间进行选择。如果您选择移动设备,则需要在iOS或Android等之间进行选择。
坚持并掌握它。

I am not saying that you should not be unfamiliar with things other than your main major. Comprehensive T-shaped software engineers also understand other aspects of programming. Although he/she knows their main profession very well.

Now that you have chosen your major, you need to learn a lot. Take it easy. It will take several years to read all these books and practice the necessary skills. Overcome this challenge once.

I will use the following technology stacks: Ruby on Rails for web development, iOS for mobile development. Just because I have experience using it. I can talk in person. The ending is just a matter of taste. If you choose another bookshelf, you need to find other books.
Step 1. Lay the foundation

Read the book Practical Programmer. This is a good starting point towards software proficiency. This book summarizes best advanced practices. It has nothing to do with language/technology. It doesn't matter which technology you choose, the main principle remains the same.
Step 2. Master your programming language

You use multiple languages ​​every day, depending on the technology you choose. Although, most of your code will be written in one language. For example: Ruby on Rails developers mainly use Ruby. AngularJS developers use JavaScript most of the time. Identifying the language of your choice and mastering it is essential to your career. Learn it, master it! You use this language every day. Choose your language and read an advanced manual.

For Ruby developers-Ruby programming
For iOS developers-Swift programming language

Step 3. Know your framework

Choose one and learn it:

For Rails Developers-Rails Tutorial by Michael Hartl

For iOS developers-iOS programming: The Big Nerd Ranch Guide

Step 4. Become the master of the text editor/IDE

once again. Choose one, master it and stick to it. If you choose VIM, please continue to use VIM and become its owner.
Step 5. Use a version control system like a professional

I recommend using Git. This is my favorite resource: Pro git-a free online e-book, which comprehensively introduces all aspects of git
Step 6. Committed to test-driven development

Choose a book specific to your technology stack to learn. Get in the habit of doing it every day. The quality code is provided with the written test.

对于Ruby on Rails开发人员-Rails测试处方
对于iOS开发人员-测试驱动的iOS开发

Step 7. Reconstitute the habit

As more features are added, the code base becomes more and more complex. To make your code base manageable, you need to refactor. If you do not refactor casually, then you will soon reach a sad place, even small changes are difficult, errors are inevitable, and no one wants to deal with your messy code base. It just makes your life easier. Don't delay your refactoring. Develop the habit of reconstruction. This is a good book on how to do it: Refactoring: Improving the design of existing code, the author is Martin Fowler
Step 8. Learn software architecture

Depending on the stack you choose, find a good book on architecture. This is my recommendation by Martin Fowler. The pattern called Enterprise Application Architecture
Step 9. Unleash the power
Command line

At first, the command line can be scary. Although, once you learn how to use it, you will become more efficient in performing basic tasks. With this alone, you can achieve more in a shorter period of time, thereby making you a better developer. Use the shell to automate common tasks and build your dotfile. If you are using a Mac or any Linux distribution, please learn Shell. This is a good book written by Mark Bates: Conquering the Command Line
Step 10. Code Code Code!

every day. As in any sport, you need to practice what you have learned to stick to it.
take away

Yes, it is difficult to become a senior software engineer. This requires a lot of time and energy. Different people learn at different speeds, but on average, it takes about 10 years to become a reliable senior developer. This is a huge investment in time to get a good return. The prospects for software engineers are bright. They have a high demand for the job market. Their salary is directly proportional to their experience. This is a rapidly developing and relatively new field. Every day of a software engineer is a challenge. Challenges that change people’s lives. Moving forward and becoming a senior software engineer is a skill to meet this challenge.

Cheers, alex

The original text comes from:
https://www.linkedin.com/pulse/10-steps-become-senior-software-engineer-alexander-tamoykin

Original content:
What

Software engineers go through several stages in their careers. They start from a Junior role, then they move to a Mid Level role. Then they become senior. This blog post has 10 steps that help you to become a Senior Software Engineer.
Why bother?

Get paid more! Your salary grows as you level up
Advance in your career. Senior Software Engineers are moving towards Architect, Team Lead, CTO kind of roles
Take on bigger challenges. As you grow you make a bigger impact

How

Software engineering is hard. The industry is always changing and you need to keep up with it. You need to put constant effort and time. There is always more to learn than you can possibly absorb. Many engineers who finish a several month boot camp don’t realize how much more they need to learn on top of it. No worries, there is a clear path to becoming a senior software engineer in almost any area of software development.
Step 0: choose your path and stick to it!

do one thing and do it wellDoug McIlroy : Unix Philosophy

I can’t emphasize this enough! It is really important to choose a specialty and a technical stack that you will be working with. Sticking to it and not getting distracted is what will make you a specialist.

It’s an important choice to make. Here is how to do it:

Choose your specialty. It’s what you want to do. For example: Web development or Mobile development or DevOps etc.
Choose a technical stack within your specialty. For example: if you chose web development, you’ll need to choose between Ruby on Rails, Python and Django, JavaScript and MEAN etc. If you chose mobile, you’ll need to choose between iOS or Android, etc.
Stick to it and master it.

I’m not saying that you shouldn’t get familiar with anything else outside of your main specialty. A well rounded T-Shaped Software Engineer knows about other aspects of programming too. Although he/she knows their main specialty extremely well.

Now that you’ve chosen your specialty, you have a lot of things to learn. Take your time. It will take you several years to read all these books and practice necessary skills. Get through this challenge one skill at the time.

I’ll be using the following technical stacks going forward: Ruby on Rails for web development, iOS for mobile development. It is just because I have experience working with it. I can speak to it personally. At the end of the says it’s just a matter of taste. If you choose some other stack, you’ll need to find different books.
Step 1. Lay the foundations

Read The Pragmatic Programmer book. It’s a good starting point on the path to software mastery. The book summarizes best high level practices. It’s language / technology agnostic. It doesn’t matter which tech stack you choose, the main principles stay the same.
Step 2. Master your programming language

You’ll be using many languages day to day depending on the technology stack of your choice. Although, majority of your code will be written in one language. For example: a Ruby on Rails developer uses Ruby primarily. An AngularJS developer uses JavaScript most of the time. Identifying the language of your choice and mastering it is crucial for your career. Learn it, master it! You’ll be using this language every day. Choose your language and read an advance book on it.

For a Ruby Developer - Programming Ruby
For an iOS Developer - The Swift Programming Language

Step 3. Learn your framework

Choose one, learn it:

For a Rails Developer - Rails Tutorial by Michael Hartl

For an iOS Developer - iOS programming: The Big Nerd Ranch Guide

Step 4. Become a master of your text editor / IDE

Again. Choose one, master it and stick to it. If you chose VIM, stay with VIM and become a master of it.
Step 5. Use your Version Control System like a pro

I recommend using Git. Here is the resource that I like: Pro git - free online ebook with a complete breakdown on every aspect of git
Step 6. Commit to doing Test Driven Development

Choose a book specific to your tech stack, learn it. Get into a habit of doing it every day. Quality code comes with writing tests.

For a Ruby on Rails Developer - Rails Test Prescriptions
For an iOS Developer - Test Driven iOS Development

Step 7. Refactor as a habit

The codebase grows in complexity as you add more functionality. In order to keep your codebase manageable you need to refactor. If you don’t refactor as you go, you’ll soon come to a sad place where even a small change is hard, bugs are inevitable and nobody wants to deal with your messy codebase. Just make your life easier. Don’t delay your refactor. Get into a habit of refactoring. Here is a good book on how to do it: Refactoring: Improving the Design of Existing Code by Martin Fowler
Step 8. Learn software architecture

Depending on the stack you choose, find a good book on architecture. Here is one that I recommend by Martin Fowler. It’s called Patterns of Enterprise Application Architecture
Step 9. Unleash the power of the command line

The command line can feel intimidating at first. Although, as soon as you learn how to use it, you’ll become a lot more efficient in performing basic tasks. That alone makes you a better developer since you are able to achieve more in less time.Then you can take it to the next level. Use shell to automate common tasks and build your dotfiles. If you’re working on a Mac or any Linux distribution, learn shell. Here is a good book on it by Mark Bates: Conquering the Command Line
Step 10. Code code code!

Every single day. Like in any sport, you need to practice what you learned in order for knowledge to stick.
Takeaway

Yes, becoming Senior Software Engineer is hard. It takes a lot of time and commitment. Different people learn at different speed, but on average, it takes about 10 years to become a solid senior dev. It’s a big investment in time for a big return.Software Engineers have the bright future. They are in high demand on the job market. Their salary grows proportionally with their experience. It’s a rapidly growing and a relatively new field. Every day of a software engineer is a challenge. A challenge of changing people’s lives. Go ahead and take on this challenge by becoming a Senior Software Engineer one skill at the time.

Cheers,Alex

Original Sources:

http://howtoprogrambetter.com/10-steps-to-become-a-senior-software-engineer/

http://engineering.awesomenesstv.com/post/106521664643/10-steps-to-become-a-senior-software-engineer

Copy from link:
https://www.linkedin.com/pulse/10-steps-become-senior-software-engineer-alexander-tamoykin

Guess you like

Origin blog.csdn.net/qq_26889291/article/details/112916744