1 コンピュータサイエンスまたは関連分野の学位を有すること。ほとんどのソフトウェアエンジニアのポジションは、学士号を必要とします。コンピュータサイエンスを専攻することで、ソフトウェアの設計や改良に最も役立つバックグラウンドを得ることができます。ほとんどの場合、面接官はデータ構造とアルゴリズムに焦点を当てた質問をするので、伝統的なコンピュータサイエンスの学位が提供する理論的背景は、あなたに最も適した準備となります。しかし、学んだ理論的な概念が実際のソフトウェアを書くという実践の中でどのように適用できるかを理解するためには、教室の外でソフトウェアを書くことにかなりの時間を費やす必要があると思われます。準学士はもちろん、独学での経験だけでも採用される可能性があります。このルートを追求すれば、Githubのようなサイトに完成した機能的なプロジェクトの強力なコレクションを持ち、自分のスキルを証明することができるようになるはずです。自分のコンセプトがない場合は、オープンソースのプロジェクトに参加して、修正や新機能を提供することも可能です。オープンソースとは、あるソフトウェアのコード(ソース)を一般に公開(オープン)していることを意味します。一般的に、これは誰でもプロジェクトにコードを提出することができますが、プロジェクトのメンテナーの承認が必要です。基本的なスキルを身につけたら、熱心な開発者のコミュニティがあるオープンソースプロジェクトを見つけると、スキルが大きく加速されます。専門家のアドバイス Gene Linetsky, MS スタートアップの創設者 & Director of Engineering Gene Linetskyは、サンフランシスコのベイエリアにあるスタートアップの創設者で、ソフトウェアエンジニアです。コンピューターサイエンス業界で30年以上勤務し、エンジニアリングチームの人材派遣と管理、ゲームの設計と開発、通信プロトコル、販売の自動化など、幅広い経験を持つ。また、高校へのコンピュータ・サイエンス・カリキュラムの導入、教育用ソフトウェアの開発にも携わり、コンピュータ・サイエンスの教科書の共著者でもある。現在、企業向けインテリジェントPOS端末を構築するテクノロジー企業であるPoynt社のエンジニアリングディレクター。ソフトウェアエンジニアのチームを統括するジーン・リネツキーは、「電気工学プロジェクト出身の優秀なエンジニアがいるのは、精神的な規律を教えてくれるからだ」と言う。ソフトウェア工学は芸術であり、芸術家精神は許されません。
5 ネットワークを通じて仕事を見つける。ソフトウェア開発者はほぼすべての業界で必要とされているため、前職でのネットワークは非常に貴重なものとなります。また、IAENG ソフトウェア工学協会、IEEE Computer Society Technical Committee on Software Engineering、または Association for Computing Machinery などの専門協会に加入することも検討しましょう。また、地域のミートアップやオンラインコミュニティも調べてみてください。ソフトウェアの世界は意外と狭く、適切なコネクションを見つけることで、数え切れないほどのチャンスを得ることができます。