\r\n\r\n

ソフトウェア技術者になるには(ソフトウェア技術者になるには)

テクノロジーが進化し、日常生活の中でより大きな役割を果たすようになると、テクノロジーの専門家も必要とされるようになります。ソフトウェア・エンジニアは、私たちの生活を便利にするコンピュータ・プログラムの設計と開発の指揮を行います...

方法1 方法2の1:最初のキャリアとしてコンピュータサイエンスに入る。

  1. 1 コンピュータサイエンスまたは関連分野の学位を有すること。ほとんどのソフトウェアエンジニアのポジションは、学士号を必要とします。コンピュータサイエンスを専攻することで、ソフトウェアの設計や改良に最も役立つバックグラウンドを得ることができます。ほとんどの場合、面接官はデータ構造とアルゴリズムに焦点を当てた質問をするので、伝統的なコンピュータサイエンスの学位が提供する理論的背景は、あなたに最も適した準備となります。しかし、学んだ理論的な概念が実際のソフトウェアを書くという実践の中でどのように適用できるかを理解するためには、教室の外でソフトウェアを書くことにかなりの時間を費やす必要があると思われます。準学士はもちろん、独学での経験だけでも採用される可能性があります。このルートを追求すれば、Githubのようなサイトに完成した機能的なプロジェクトの強力なコレクションを持ち、自分のスキルを証明することができるようになるはずです。自分のコンセプトがない場合は、オープンソースのプロジェクトに参加して、修正や新機能を提供することも可能です。オープンソースとは、あるソフトウェアのコード(ソース)を一般に公開(オープン)していることを意味します。一般的に、これは誰でもプロジェクトにコードを提出することができますが、プロジェクトのメンテナーの承認が必要です。基本的なスキルを身につけたら、熱心な開発者のコミュニティがあるオープンソースプロジェクトを見つけると、スキルが大きく加速されます。専門家のアドバイス Gene Linetsky, MS スタートアップの創設者 & Director of Engineering Gene Linetskyは、サンフランシスコのベイエリアにあるスタートアップの創設者で、ソフトウェアエンジニアです。コンピューターサイエンス業界で30年以上勤務し、エンジニアリングチームの人材派遣と管理、ゲームの設計と開発、通信プロトコル、販売の自動化など、幅広い経験を持つ。また、高校へのコンピュータ・サイエンス・カリキュラムの導入、教育用ソフトウェアの開発にも携わり、コンピュータ・サイエンスの教科書の共著者でもある。現在、企業向けインテリジェントPOS端末を構築するテクノロジー企業であるPoynt社のエンジニアリングディレクター。ソフトウェアエンジニアのチームを統括するジーン・リネツキーは、「電気工学プロジェクト出身の優秀なエンジニアがいるのは、精神的な規律を教えてくれるからだ」と言う。ソフトウェア工学は芸術であり、芸術家精神は許されません。
  2. Image titled Become a Software Engineer Step 1Gene Linetsky, MSGene Linetsky, MS
  3. 2 プログラミングを開始する。まだ小学生でも、独学でコードを学べば、大きなスタートラインに立つことができます。ソフトウェア工学はコーディングだけに特化したものではありませんが、少なくともいくつかの言語を知り、その機能を深く理解する必要があります。PythonRubyJavaScriptC#JavaC++なお、言語によって得意な問題、不得意な問題があることに留意してください。どの言語も他の言語より優れているわけではありません。どの言語も客観的に見て、他の言語より簡単ということはありません。ほとんどの言語は、ある種の問題を想定して書かれており、その問題を解くのが得意で、それ以外の問題を解くのは苦手です。試行錯誤して、自分のスタイルをつかんでください。最初は、最も基本的なプログラムだけを1つの言語で動作させることに専念してください。1つの言語に慣れたら、2つ目の言語で実験してみましょう。すべての言語を習得する必要はありません。得意なことを見つけて、得意になりましょうマサチューセッツ工科大学(MIT)は、若者向けにウェブサイトとプログラミングツール「スクラッチ」を開発した。このツールは、プログラミングの概念を教えるのに、わかりにくいテキストではなく、視覚的なキューを使用する。また、大人にとっても、抽象的な概念や文字よりも視覚的な要素に注目した方がしっくりくるはずです。
  4. Image titled Become a Software Engineer Step 2
  5. 3 データ構造とアルゴリズムの研究".アルゴリズム」とは、簡単に言えば、問題を解くための数式やプロセスのことです。一般的には、2点間の最短距離を求める経路探索、大量のデータの中から特定のデータを見つけ出すこと、データを一定の順序で並べ替えることなどが挙げられます。データ構造」とは、ある問題を解決しやすくするために、データを整理する方法のことである。一般的な例としては、データ項目をある種の順序で次々に格納する配列や、リスト内のある位置ではなく、ある種の「キー」でデータを格納するハッシュテーブルがある。ソフトウェア・エンジニアとしてのポジションを得たときに、自分の能力を最大限に発揮できるよう、スキルの向上と維持に力を注いでください。(任意)数学を学ぶ。アルゴリズムやデータ構造に関する知識の多くは、数学に由来しています。絶対に必要というわけではありませんが、数学の知識があれば、新しいアルゴリズムを分析したり設計したりする際に、より強力なコアスキルが身につきます。最先端の研究開発を行う企業を目指すのであれば、数学は必須でしょう。もし、楽な会社勤めをしたいのであれば、より高度な数学は飛ばしてもよいでしょう。特に離散数学は、ソフトウエアを含む数学のコースと同様に有効な学習分野です。
  6. Image titled Become a Software Engineer Step 3
  7. 4.学びを補う。教育制度は往々にして時代遅れです。教科書の改訂は、ソフトウェアの更新よりも遅いのです。教育機関が提供する理論的な概念や考え方は、あなたの成功に不可欠なものである可能性があり、割り引くべきではありません。しかし、お金をもらえるのは、理論を実世界に適用できるソフトウェアです。そこで、学習内容を補うことができるのです。StackOverflowを閲覧する。 StackOverflowは、開発者のための質問と回答のサイトです。改善したい技術、問題領域、言語などをタグで検索することができます。他の人の回答を見ることで、エンジニアがどのように問題を解決しているのかを知ることができます。また、賢い解決策をブックマークすることで、問題解決のツールボックスを構築することができます。CodeWarsやCodinGameなどのサイトでは、何千もの問題が用意されており、自分の実力を試すことができます。実社会のコミュニティを見つけることで、インスピレーションを維持し、人脈を広げ、学習に集中するためのガイダンスを得ることができます。Meetupなどのサイトは、ソフトウェア・エンジニアを見つけ、その職業について学ぶのに最適な場所です。一般的なエンジニアリングのミートアップを見つけるのが難しい場合は、特定の言語や技術に焦点を合わせてみてください。ソーシャルメディアもチェックする
  8. Image titled Define a Problem Step 4
  9. 5 ソフトウェアを構築する。スキルを向上させるには、それを使うことが一番です。仕事でも個人的なプロジェクトでも、ソフトウェアの設計やコーディングは多くのことを教えてくれるでしょう。多くの雇用主にとって、GPAや理論的な知識よりも、実践的な実績が重要視されます。作ったソフトウェアを収益化する予定がない限り、オンラインに置いてください雇用主候補に、あなたが作成したプロジェクトとそれを動かすコードを見せることで、あなたのスキルを評価させることができます。また、自分のスキルアップにつながるフィードバックが得られるのも魅力です。
  10. Image titled Become a Software Engineer Step 4
  11. 6 インターンシップを探す。多くのソフトウェアエンジニアの学生は、学業を終えながらインターンとして働いています。これは、実践的なトレーニングを受け、潜在的な雇用主とのネットワークを構築するための素晴らしい方法です。ジョブボードやネットワーキングを通じて、インターンシップの機会を探す。
  12. Image titled Become a Software Engineer Step 5
  13. 7 仕事の機会を探している。ソフトウェアエンジニアリングは、変化の激しい分野です。プログラマーから始めてソフトウェア開発の仕事に就くこともありますが、即戦力として活躍できる可能性が高いです。学位取得前に就職活動を始める:大学は卒業生が職を確保できるよう支援することが多い。教授や学部のスタッフ、キャリアサービスオフィスに、就職活動の方法を相談する。人脈を生かし、キャリアの集まりやカンファレンスなどを通じて、その分野の人々と知り合う。就職情報サイトを定期的にチェックする。プロフィールを作成し、専門的なウェブサイトに履歴書を掲載し、応募するだけでなく、人脈作りに活用する。
  14. Image titled Become a Software Engineer Step 6
  15. 8 自分のキャリア目標を考える。ソフトウェア業界は常に変化しています。知識と実践力を磨くことで、自分のキャリアの方向性を形成する機会が多くあります。以下は、就職の可能性を高めるためのいくつかの方法です:専門の団体に参加して、ネットワークづくりの機会を得る。この分野で長期的な計画をお持ちの方は、修士号の取得をご検討ください。ほとんどの職種で必須ではありませんが、修士号を取得することで、業界トップの企業で、管理職や組込みソフトウェアに携わるチャンスが大きく広がります。また、修士号を取得することで、キャリアの早い段階で給与を大幅にアップさせることができます。資格は、あるサブフィールドや地域では有効ですが、他の分野では、あなたの人気を下げるかもしれません。これらのコースに申し込む前に、あなたの専門分野の他のエンジニアに相談してみてください。多くの場合、伝統的な企業環境では資格取得が好まれますが、新興企業や高度に進歩した企業では、資格取得は時間の無駄とみなされるでしょう。ただし、例外は必ずあります。国によって証明書の見方が違うので、ソフトウェアエンジニアに連絡を取って、自分の地域の業界の仕組みを調べてみてください。
  16. Image titled Become a Software Engineer Step 7

アプローチ2 アプローチ2:ソフトウェアエンジニアへの転職

  1. 1 自分の仕事の見通しを把握する。ソフトウェア開発の分野では、優れた雇用の増加があります。ソフトウェア工学は、基本的なプログラミングと比較して、特に望ましい取り組みです。米国では、ソフトウェア開発者の年収の中央値は約8万ドルから10万ドルです。
  2. Image titled Become a Software Engineer Step 8
  3. 2 プログラミングを学ぶ。実用的なソフトウェアの設計とコーディングを第一に考えてください。この経験を積むには、さまざまな方法があります。オンラインのチュートリアルや教えてくれる友人を通して、プログラミングを独学で学ぶ。大規模公開オンライン講座(MOOC)を受講する。すでに経験がある方は、GitHubで他のプログラマーとコラボレーションしてください。お金と自由な時間を惜しまないのであれば、コーディングブートキャンプは最も早く学べる方法の1つです。ただ、ブートキャンプの中には業界で評判の悪いものもあり、お金を払う価値がない場合もあるので、必ずリサーチしてください。
  4. Image titled Become a Software Engineer Step 9
  5. 経験を生かす。ソフトウェアは専門分野かもしれませんが、これまでのキャリアがコンピュータに関係なくても、あなたの強みになるのです。ソフトウェアエンジニアリングは、分析能力、問題解決、チームワークに大きく依存することがあります。また、特定の業界に精通していると、その業界向けのソフトウェアを設計する際に役立つことがあります。趣味や副業でも、人脈を広げるチャンスはありますし、少なくとも仕事に情熱を注げるようになります。ゲームアプリ、デジタルミュージックスイート、ビジネスソフトウェアなどがその例です。タスクを高速化し、物事を容易にするツールを構築する。ソフトウェアエンジニアリングの核心は、問題解決にあります。ソフトウェアを書くということは、ソフトウェアエンジニアが選んだ問題解決の手法に過ぎない。もう、あなたの周りは問題だらけです!今すぐ始められない理由はない。
  6. Image titled Become a Software Engineer Step 10
  7. 4 学位取得コースへの入学(オプション)1年か2年の準社員経験があれば、あるいは十分な努力があれば、数ヶ月でプログラミングの仕事を見つけることが可能です。すでに何らかの分野で学士号を取得し、コーディングのスキルもある場合は、そのままソフトウェア工学の修士号を取得することも検討できます。大変高価なオプションとなりますので、ご注意ください。しかし、自分のモチベーションが上がらず、コミュニティに参加したり、趣味に挑戦しても続かないという人には、最も効果的な選択肢かもしれません。
  8. Image titled Become a Software Engineer Step 11
  9. 5 ネットワークを通じて仕事を見つける。ソフトウェア開発者はほぼすべての業界で必要とされているため、前職でのネットワークは非常に貴重なものとなります。また、IAENG ソフトウェア工学協会、IEEE Computer Society Technical Committee on Software Engineering、または Association for Computing Machinery などの専門協会に加入することも検討しましょう。また、地域のミートアップやオンラインコミュニティも調べてみてください。ソフトウェアの世界は意外と狭く、適切なコネクションを見つけることで、数え切れないほどのチャンスを得ることができます。
  10. Image titled Become a Software Engineer Step 12

キャリアパスのフローチャート

ソフトウェアエンジニアのキャリアパスフローチャート

  • この業界の職種は標準化されていない。"ソフトウェア開発者」は、広い意味での包括的な言葉です。ソフトウェア・エンジニアリング」は、より高度な設計や専門知識を必要とするはずですが、企業によっては、この名称を下級のプログラミング職の資格として使用するところもあります。
  • 特定の企業への就職を希望される方は、直接その企業のホームページの採用情報ページをご確認ください。
  • 昔ながらのやり方で!コンピューターに飛び込む前に、紙でコードを書く練習をしましょう。
  • 就職の面接はホワイトボードで行われることが多いので、友達を誘ってホワイトボードにコードを書くことに慣れましょう。企業によっては、あなたのコードが書かれたとおりに動くかどうかを気にするところもあるかもしれませんが、多くの企業はそうではありません。
  • 2022-03-08 20:29 に公開
  • 閲覧 ( 12 )
  • 分類:教育

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ