シニアエンジニアになるための10のステップ

英語版は元の中国語版がGoogleによって翻訳されています

翻訳内容:

ソフトウェアエンジニアのキャリアはいくつかの段階を経てきました。彼らはジュニアの役割から始まり、次に中間の役割に移ります。その後、彼らはシニアになります。このブログ投稿には、シニアソフトウェアエンジニアになるための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.プログラミング言語をマスターする

選択したテクノロジーに応じて、毎日複数の言語を使用します。ただし、ほとんどのコードは1つの言語で記述されます。例:Ruby onRails開発者は主にRubyを使用します。AngularJS開発者はほとんどの場合JavaScriptを使用します。選択した言語を特定し、それを習得することは、あなたのキャリアにとって不可欠です。それを学び、それをマスターしてください!あなたは毎日この言語を使用しています。言語を選択し、高度なマニュアルをお読みください。

Ruby開発者
向け-RubyプログラミングiOS開発者向け-Swiftプログラミング言語

ステップ3.フレームワークを知る

いずれかを選択して学習します。

Rails開発者向け-MichaelHartlによるRailsチュートリアル

iOS開発者向け-iOSプログラミング:Big Nerd Ranch Guide

ステップ4.テキストエディター/ IDEのマスターになる

もう一度。いずれかを選択し、それを習得し、それに固執します。VIMを選択した場合は、引き続きVIMを使用して、その所有者になってください。
ステップ5。専門家のようなバージョン管理システムを使用する

Gitの使用をお勧めします。これは私のお気に入りのリソースです:Pro git-gitのすべての側面を包括的に紹介する無料のオンライン電子書籍
ステップ6。テスト駆動開発に取り組んでいます

テクノロジースタックに固有の本を選択して学習してください。毎日それをする習慣を身につけなさい。品質コードは筆記試験で提供されます。

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

ステップ7.習慣を再構成する

より多くの機能が追加されると、コードベースはますます複雑になります。コードベースを管理しやすくするには、リファクタリングする必要があります。さりげなくリファクタリングしないと、すぐに悲しい場所にたどり着きます。小さな変更でも難しく、エラーは避けられず、厄介なコードベースに誰も対処したくありません。それはあなたの人生を楽にするだけです。リファクタリングを遅らせないでください。復興の習慣を身につける。これは、その方法に関する優れた本です。リファクタリング:既存のコードの設計を改善する、著者はMartinFowler
ステップ8です。ソフトウェアアーキテクチャを学ぶ

選択したスタックに応じて、アーキテクチャに関する優れた本を見つけてください。これはマーティン・ファウラーによる私の推薦です。エンタープライズアプリケーションアーキテクチャと呼ばれるパターン
ステップ9.電源
コマンドラインを解き放ちます

最初は、コマンドラインが怖いことがあります。ただし、使い方を学ぶと、基本的なタスクをより効率的に実行できるようになります。これだけで、より短い期間でより多くのことを達成できるため、より優れた開発者になります。シェルを使用して、一般的なタスクを自動化し、ドットファイルを作成します。MacまたはLinuxディストリビューションを使用している場合は、シェルについて学習してください。これは、Mark Ba​​tesによって書かれた優れた本です:コマンドラインの征服
ステップ10.コードコードコード!

毎日。他のスポーツと同じように、あなたはそれに固執するためにあなたが学んだことを練習する必要があります。
取り除く

はい、シニアソフトウェアエンジニアになるのは難しいです。これには多くの時間とエネルギーが必要です。さまざまな人がさまざまな速度で学習しますが、信頼できる上級開発者になるには、平均して約10年かかります。これは、良い利益を得るための時間への莫大な投資です。ソフトウェアエンジニアの見通しは明るいです。彼らは雇用市場への需要が高い。彼らの給料は彼らの経験に正比例します。これは急速に発展している比較的新しい分野です。ソフトウェアエンジニアの毎日は挑戦です。人々の生活を変える挑戦。前進してシニアソフトウェアエンジニアになることは、この課題に対処するためのスキルです。

乾杯、アレックス

元のテキストは次のとおりです:
https //www.linkedin.com/pulse/10-steps-become-senior-software-engineer-alexander-tamoykin

元のコンテンツ:

ソフトウェアエンジニアは、キャリアの中でいくつかの段階を経ます。彼らはジュニアの役割から始まり、次にミッドレベルの役割に移ります。その後、彼らはシニアになります。このブログ投稿には、シニアソフトウェアエンジニアになるための10のステップがあります。
なぜわざわざ?

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

どうやって

ソフトウェアエンジニアリングは難しいです。業界は常に変化しており、それに追いつく必要があります。あなたは一定の努力と時間をかける必要があります。あなたがおそらく吸収できる以上に学ぶべきことが常にあります。数か月のブートキャンプを終えた多くのエンジニアは、その上でどれだけ多くを学ぶ必要があるかを理解していません。心配はいりません。ソフトウェア開発のほぼすべての分野でシニアソフトウェアエンジニアになるための明確な道があります。
ステップ0:あなたの道を選んでそれに固執してください!

do one thing and do it wellDoug McIlroy : Unix Philosophy

私はこれを十分に強調することはできません!使用する専門分野と技術スタックを選択することは非常に重要です。それに固執し、気を散らさないことがあなたをスペシャリストにするものです。

それは重要な選択です。これを行う方法は次のとおりです。

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.

私はあなたがあなたの主な専門分野以外のものに精通するべきではないと言っているのではありません。丸みを帯びたT字型ソフトウェアエンジニアは、プログラミングの他の側面についても知っています。彼/彼女は彼らの主な専門分野を非常によく知っていますが。

専門分野を選択したので、学ぶべきことがたくさんあります。ゆっくりしてください。これらすべての本を読み、必要なスキルを練習するには、数年かかります。一度に1つのスキルでこの課題を乗り越えてください。

今後は、Web開発用のRuby on Rails、モバイル開発用のiOSのテクニカルスタックを使用します。それは私がそれを使った経験があるからです。個人的に話すことができます。言うの終わりにそれはただ好みの問題です。他のスタックを選択する場合は、別の本を見つける必要があります。
ステップ1.基礎を築く

PragmaticProgrammerの本を読んでください。これは、ソフトウェアの習得への道の良い出発点です。この本は、最高のハイレベルな実践を要約しています。それは言語/テクノロジーにとらわれません。どの技術スタックを選択するかは関係ありません。主な原則は同じです。
ステップ2.プログラミング言語をマスターする

選択したテクノロジースタックに応じて、毎日多くの言語を使用します。ただし、コードの大部分は1つの言語で記述されます。例:Ruby onRails開発者は主にRubyを使用します。AngularJS開発者はほとんどの場合JavaScriptを使用します。選択した言語を特定し、それを習得することは、あなたのキャリアにとって非常に重要です。それを学び、それをマスターしてください!あなたは毎日この言語を使うでしょう。あなたの言語を選択し、それに関する事前の本を読んでください。

Ruby開発者
向け-iOS開発者向けのRubyプログラミング-Swiftプログラミング言語

ステップ3.フレームワークを学ぶ

いずれかを選択し、それを学びます:

Rails開発者向け-MichaelHartlによるRailsチュートリアル

iOS開発者向け-iOSプログラミング:Big Nerd Ranch Guide

ステップ4.テキストエディタ/ IDEのマスターになる

再び。いずれかを選択し、それを習得し、それに固執します。VIMを選択した場合は、VIMを使い続けて、そのマスターになりましょう。
ステップ5.プロのようにバージョン管理システムを使用する

Gitの使用をお勧めします。私が好きなリソースは次のとおりです。Progit-gitのすべての側面の完全な内訳を含む無料のオンライン電子ブック
ステップ6.テスト駆動開発の実行にコミットする

あなたの技術スタックに固有の本を選び、それを学びましょう。毎日それをする習慣を身につけてください。品質コードにはライティングテストが付属しています。

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

ステップ7.習慣としてリファクタリング

機能を追加すると、コードベースは複雑になります。コードベースを管理しやすくするには、リファクタリングする必要があります。リファクタリングを行わないと、小さな変更でも困難で、バグは避けられず、厄介なコードベースに誰も対処したくないという悲しい場所にすぐに到達します。ただあなたの人生を楽にしてください。リファクタリングを遅らせないでください。リファクタリングの習慣を身につけましょう。これは、その方法に関する優れた本です。リファクタリング:MartinFowlerによる既存のコードの設計の改善
ステップ8.ソフトウェアアーキテクチャを学ぶ

選択したスタックに応じて、アーキテクチャに関する優れた本を見つけてください。これがマーティン・ファウラーがお勧めするものです。これは、エンタープライズアプリケーションアーキテクチャのパターン
ステップ9と呼ばれます。コマンドラインのパワーを解き放ちます

コマンドラインは、最初は恐ろしいと感じるかもしれません。ただし、使い方を学ぶとすぐに、基本的なタスクをより効率的に実行できるようになります。それだけで、より短い時間でより多くのことを達成できるので、より良い開発者になります。そうすれば、それを次のレベルに引き上げることができます。シェルを使用して、一般的なタスクを自動化し、ドットファイルを作成します。MacまたはLinuxディストリビューションで作業している場合は、シェルについて学習してください。これは、MarkBatesによる優れた本
です。コマンドラインを征服するステップ10.コードコードコード!

毎日。他のスポーツと同じように、知識を維持するためには、学んだことを練習する必要があります。
取り除く

はい、シニアソフトウェアエンジニアになるのは難しいです。それには多くの時間とコミットメントが必要です。さまざまな人々がさまざまな速度で学習しますが、平均して、堅実な上級開発者になるには約10年かかります。それは大きな利益のための時間への大きな投資です。ソフトウェアエンジニアには明るい未来があります。彼らは雇用市場で高い需要があります。彼らの給料は彼らの経験に比例して増加します。それは急速に成長していて、比較的新しい分野です。ソフトウェアエンジニアの毎日は挑戦です。人々の生活を変えるという挑戦。一度に1つのスキルでシニアソフトウェアエンジニアになることで、この課題に挑戦してください。

乾杯、アレックス

元の情報源:

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

リンクからコピー:
https //www.linkedin.com/pulse/10-steps-become-senior-software-engineer-alexander-tamoykin

おすすめ

転載: blog.csdn.net/qq_26889291/article/details/112916744