10个步骤成为高级工程师

英文版为原文中文版为谷歌翻译

翻译内容:

什么

软件工程师的职业生涯经历了几个阶段。他们从初级角色开始,然后转到中级角色。然后他们成为高级。该博客文章包含10个步骤,可帮助您成为高级软件工程师。
何必呢?

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

怎么样

软件工程很难。行业一直在变化,您需要跟上它。您需要不断投入精力和时间。总会有很多东西要学而无法吸收。许多完成了几个月训练营的工程师都没有意识到他们需要学习多少知识。不用担心,几乎可以在任何软件开发领域中都可以成为高级软件工程师。
步骤0:选择您的路径并坚持下去!

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

我对此不够强调!选择要使用的专业和技术堆栈真的很重要。坚持下去,不会分心,这将使您成为专家。

这是一个重要的选择。这是操作方法:

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

我并不是说您不应该对您的主要专业以外的其他事物不熟悉。全面的T型软件工程师也了解编程的其他方面。尽管他/她非常了解他们的主要专业。

现在,您已经选择了自己的专业,您需要学习很多东西。慢慢来。阅读所有这些书籍并练习必要的技能将需要几年时间。一次克服这一挑战。

我将使用以下技术堆栈:用于Web开发的Ruby on Rails,用于移动开发的iOS。只是因为我有使用它的经验。我可以亲自谈谈。说的结尾只是个口味问题。如果您选择其他书架,则需要查找其他书籍。
步骤1.奠定基础

阅读实用程序员一书。这是迈向软件精通的良好起点。这本书总结了最佳的高级实践。与语言/技术无关。选择哪种技术都没关系,主要原理保持不变。
步骤2.掌握您的编程语言

您每天都会使用多种语言,具体取决于您选择的技术。虽然,您的大多数代码将用一种语言编写。例如:Ruby on Rails开发人员主要使用Ruby。 AngularJS开发人员大多数时候都使用JavaScript。确定您选择的语言并掌握它对您的职业至关重要。学习它,掌握它!您每天都会使用这种语言。选择您的语言并阅读一本高级手册。

对于Ruby开发人员-Ruby编程
对于iOS开发人员-Swift编程语言

步骤3.了解您的框架

选择一个,学习它:

对于Rails开发人员-Michael Hartl的Rails教程

对于iOS开发人员-iOS编程:The Big Nerd Ranch Guide

步骤4.成为文本编辑器/ IDE的主人

再次。选择一个,掌握它并坚持下去。如果您选择了VIM,请继续使用VIM并成为它的主人。
第5步。像专业人士一样使用版本控制系统

我建议使用Git。这是我喜欢的资源:Pro git-免费的在线电子书,其中全面介绍了git的各个方面
步骤6.致力于进行测试驱动开发

选择一本特定于您的技术堆栈的书,进行学习。养成每天做的习惯。质量代码随编写测试一起提供。

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

步骤7.重构成习惯

随着添加更多功能,代码库变得越来越复杂。为了使您的代码库易于管理,您需要重构。如果您不随便进行重构,那么您很快就会到一个令人难过的地方,即使是很小的更改也很难,错误是不可避免的,没有人愿意处理您凌乱的代码库。只是让您的生活更轻松。不要延迟您的重构。养成重构的习惯。这是一本关于如何做到的好书:重构:改进现有代码的设计,作者是Martin Fowler
步骤8.学习软件架构

根据您选择的堆栈,找到一本关于体系结构的好书。这是我由马丁·福勒(Martin Fowler)推荐的。称为企业应用架构的模式
步骤9.释放力量
命令行

一开始,命令行会让人感到恐惧。虽然,一旦您学会了如何使用它,您将在执行基本任务时变得更加高效。仅凭这一点,您就可以在更短的时间内实现更多成就,从而使您成为一名更好的开发人员。使用shell自动执行常见任务并构建您的dotfile。如果您使用的是Mac或任何Linux发行版,请学习Shell。这是Mark Ba​​tes撰写的一本好书:征服命令行
步骤10.代码代码代码!

每一天。像在任何运动中一样,您需要练习所学到的知识才能坚持下去。
带走

是的,很难成为高级软件工程师。这需要大量的时间和精力。不同的人以不同的速度学习,但是平均而言,成为一名可靠的高级开发人员大约需要10年。这是对时间的巨大投资,以获得丰厚的回报。软件工程师的前景光明。他们对就业市场有很高的需求。他们的薪水与经验成正比。这是一个快速发展且相对较新的领域。软件工程师的每一天都是一个挑战。改变人们生活的挑战。前进,成为一名高级软件工程师,这是一种技能,以迎接这一挑战。

干杯,亚历克斯

原文来自:
https://www.linkedin.com/pulse/10-steps-become-senior-software-engineer-alexander-tamoykin

原文内容:
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

猜你喜欢

转载自blog.csdn.net/qq_26889291/article/details/112916744
今日推荐