ソフトウェアエンジニアになる方法

ソフトウェア エンジニアの需要はかつてないほど高まっています。 さまざまなプログラミング言語、フレームワーク、およびツールを使用して、次世代のアプリ、Web サイト、およびサービスを構築できるエンジニアをあらゆる組織が必要としています。 ソフトウェアには、新しく予想外の役割に拡大する機会もたくさんあります。たとえば、エンジニアの場合、Python 中心のエンジニアとして始めて、機械学習に関与していることに気付くかもしれません。

しかし、どのようにしてソフトウェアエンジニアになるのでしょうか? 何を知る必要がありますか? また、どのような専門的な道筋が利用できますか? 私たちは数人の専門家と話をして、ソフトウェア エンジニアリングへの道と長く成功したキャリアへの道を導く手助けをしました。

ソフトウェア エンジニアになるには大学の学位が必要ですか。

Opendoor のスタッフ ソフトウェア エンジニアである Troy Fendall 氏は Dice に次のように語っています。 「コンピューター サイエンス (CS) の学位を持っていることは価値がありますが、この分野で成功するための要件ではありません。 私は、大学の学位を取得したエンジニア、コーディング ブートキャンプを卒業した同僚、独学で学んだエンジニアなど、さまざまなバックグラウンドを持つ才能のあるエンジニアを目の当たりにし、彼らと直接仕事をしてきました。 実際、企業がさまざまなバックグラウンドを持つエンジニアを採用すると、独自の視点でより優れた最終製品を構築できることがわかりました。」

Techstack のソフトウェア エンジニアのシニア ディレクターである Danylo Tolmachov 氏も同意見です。 [a degree] コンピュータ サイエンスに関連していましたが、専門教育を受けていなくても、本当に優れたエンジニアになった人をたくさん知っていました。」

Absio のリード ソフトウェア エンジニアである Sergii Zhuravel 氏は、次のように述べています。

すべての専門家が同意していることの 1 つは、正式な教育は問題にならないかもしれませんが、重要なスキルを習得することは重要であるということです。 採用面接の過程で、採用担当者や採用担当マネージャーは、ホワイトボードや持ち帰り用のコーディング テストなど、スキルを評価するために設計された技術面接の質問を必ず受けます。

ソフトウェアエンジニアに必要なスキルとは?

Rain のソフトウェア エンジニアである Maksym Mostovyi 氏は、次のように述べています。 「自分がしていることに情熱を失っていると、成功するキャリアを築くことは難しく、ソフトウェア エンジニアとしての仕事に就くことさえ難しいでしょう。 それに加えて、細部への気配り、人に教える能力、自己鍛錬も重要だと思います。」

Fendall 氏は次のように述べています。 ソフトウェア エンジニアを目指している人は、1 つまたは 2 つのプログラミング言語に堪能である必要があります。 コードを書くという基本的なこととは別に、成功するソフトウェア エンジニアは問題を理解し、1 つまたは複数のソリューションに取り組みながら、トレードオフも理解できる必要があります。」

多くのエンジニアはより大きなチームの一員として働き、組織の内外の利害関係者に自分の仕事の詳細を伝えなければならないため、意欲的なソフトウェア エンジニアは、共感やコミュニケーションなどの「ソフト スキル」の向上にも取り組む必要があります。 「もう 1 つの重要な特徴はコラボレーションです」と Fendall は続けます。 「さまざまな分野やバックグラウンドを持つ人々と協力できなければなりません。 これには、明確なコミュニケーションと、しばしば妥協が必要です。 強い意見を持つことは有益ですが、それを大まかに保持することも重要です。」

最後になりましたが、重要なこととして、所有権が重要です。 「遭遇する可能性のあるハードルに手を差し伸べ、ブロックを解除する責任を自分に負わせてください。 何かに行き詰まっているかどうかを他の人が尋ねるのを待ってはいけません。 すべてが一度機能することを確認し、そうでない場合はバグを修正する責任を負うことを保証します」と Fadell 氏は言います。

重要なポイントは、チーム プレーヤーであることは、適切なコーディング方法を知ることと同じくらい重要だということです。 ヘッドダウン開発者が単独でコーディングを行う時代はほぼ終わりました。

ソフトウェア エンジニアが行うべき特定のトレーニングはありますか?

特定のトレーニングは、ソフトウェア エンジニアの専門分野に大きく左右されます。 たとえば、クラウド中心のソフトウェア エンジニアになるために必要なプログラミング言語とツールは、機械学習の専門分野に必要なものとは異なります。

多くのソフトウェア エンジニアは、2 年または 4 年の正式な教育を受けるべきか、ブートキャンプや自己学習を行うべきかについて議論しています。 ソフトウェア エンジニアリングのキャリアにすぐに飛び込みたい人にとって、簡単なブートキャンプは完璧に思えるかもしれませんが、Zhuravel が指摘するように、ブートキャンプは必ずしもすべての人に適しているわけではありません。

「ブートキャンプの後、ソフトウェア エンジニアになることはできません」と彼は続けます。 「しかし、質問がすでにキャリアを始めたソフトウェア エンジニアに関するものであれば、ソフトウェア エンジニアにとって最も重要なスキルを向上させるためのトレーニングを受けることをお勧めします。 主なルールは次のとおりです。新しいことを学ぶのは良いことですが、既存のスキルもトレーニングする必要があります。 楽しみのためだけに何か新しいことを学ぶよりも、または将来必要になるかもしれないという理由で、すでに使用しているツールについてもっと学ぶ方が良い場合もあります。」

どのような教育を受けたとしても、現実世界での経験に勝るものはありません。 Step の Java ソフトウェア エンジニアである Andrey Sundukov は、次のように付け加えています。 「最初の仕事を見つけるには、もっと練習が必要です。 実在の人々のために実際の問題を解決してみてください。 ペットプロジェクトを行うか、いくつかに参加してください。 そのプロジェクトは、職務経験として履歴書に記載する必要があります。 あなたがそれを持っているので、最初の本当の仕事を得るチャンスがはるかに多くなります. 次に、雇用主にコースについて尋ねます。 教育に時間とお金を費やす最も効果的な方法であるべきです。」

ソフトウェア エンジニアの履歴書は、過去の仕事やプロジェクトがどのように組織にとって具体的で前向きな結果につながったかを強調して、「結果主導型」である必要があることに注意してください。 経験セクションを使用して、スキルと知識を効果的に使用してプロジェクトを成功に導いたことを示すようにしてください。 これまでの経験があまりない場合は、個人的なプロジェクトと教育を利用して、必要な能力があることを示すことができます。

Mostovyi 氏は次のように付け加えています。 可能な限り練習することをお勧めします。 小さなものから始めて、お気に入りのプロジェクトから大きなものまで、自分で何かを構築してみるのは素晴らしいことです。」

全体として、組織の文脈であろうと個人的なプロジェクトであろうと、できるだけ多くの経験を積むことに重点を置く必要があります。 SPR のマイクロソフト ソリューション開発担当ディレクタである Michael Saccotelli 氏は、次のように述べています。 「理想的には、人々のチームと。 自分で作業して学習することは、自分が知っていることを超えて拡張するための優れた方法になる可能性がありますが、最小限の結果で失敗する可能性がある状況にない限り、チームから学ぶことができる場所を持つ方がよいでしょう. チームで働くことは、チームとして働く方法も教えてくれます。 ほとんどのソフトウェア エンジニアは孤立して仕事をするわけではないため、機能し、他の人と協力できることが重要です。」

Fendall 氏は、特にソフトウェア エンジニアやその他の技術専門家とのチームでは、できるだけ多くの経験が必要であることに同意しています。 大学のプログラムやブートキャンプでこれを提供できますが、独学であれば、オープンソース プロジェクトに取り組むことでこの経験を得ることができます。 しかし、最も有益なトレーニングは、仕事で学んだことだと思います。」

Fendall 氏は次のように付け加えています。 私の学校教育は基礎に重点を置いていたので、基礎を築くことができました。 しかし、継続的に学びたいという私の意欲は、私の成功とキャリアの成果のおかげだと考えています。 たとえば、スタッフ ソフトウェア エンジニアとして Opendoor に入社したとき、私は、使用するコア言語の 1 つである Golang の経験がありませんでした。 しかし、私は他の言語の知識と新しい概念を学ぶためのオープンな姿勢を持っていたので、すぐに習得することができました. そしてそれは、私がキャリアを通じて学んだ他の多くのことにも当てはまります。」

Leave a Comment

Your email address will not be published. Required fields are marked *