C#エンジニアにとって売り手市場となっている中、多くの企業は人材不足が問題となっており、人材の確保に積極的です。とはいえ、企業も闇雲に採用しているわけではありませんので、未経験者が採用されるためには事前の準備が欠かせません。
そこでこの記事では、未経験者がC#エンジニアとして採用されるために必要な備えについて書いていきますので、就職・転職活動の参考にしてください。
参照:プログラム初心者のためのC#アプリ開発基礎について解説した記事はこちら
未経験者を歓迎している企業はどんな事業を行っているか?
まずは、未経験者の採用に積極的な企業がどんな事業を行っているか紹介していきます。
業務システム開発
他の企業から請け負った業務システムの開発事業です。この分野はJavaの案件が多いですが、C#もASP.NET Web Formなどの強力なフレームワーク(システムの基盤となるプログラム群)がありますので数多く採用されています。
自社サービス開発
動画配信サービスなどのウェブサービスや特定業務向けのパッケージ製品など独自サービスの開発・販売する事業です。この分野では、サーバー側の開発にC#とASP.NET MVCなどのフレームワークが使われることが多いです。
スマートフォン・タブレットアプリ開発
スマートフォンやタブレットのアプリを開発・運用する事業です。アプリマーケットが成長する中、C#でもアプリ開発が行われるようになってきました。C#で、AndroidアプリやiOSアプリを開発する場合は別途開発ツールが必要になってきます。具体的には、XamarinやUnityなどの開発ツールです。これらを使えば、生産性の高いC#でアプリを開発できますので活用が進んでいます。マイクロソフトがXamarinの買収を決定したことで、これからの成長が期待できます。
未経験者が優遇されるためにはどんなスキルや経験が必要なのか?
次に、実際の求人情報を元にした、持っていると未経験者でも優遇されるスキルや経験を紹介します。
C#やJava、PHP、Rubyなどの言語の開発経験
実務経験がなくてもC#などの言語での開発経験があると優遇されます。オブジェクト指向系の言語であればC#の開発に活かせますので、JavaやPHP、Rubyなどの開発経験であってもOKです。独学でもよいので、何らかの言語の知識は持っておくべきでしょう。
スマートフォン・タブレットアプリの開発経験
スマホやタブレットのアプリ開発業務のある企業ですと、個人的にでもAndroidアプリやiOSアプリをリリース(アプリストアに掲載)した経験があるとプラス材料になります。実際にアプリをリリースしておけば、採用担当者にアプリを確認してもらうこともできますので、非常に効果的です。
Unityなどのゲーム開発フレームワークでの開発経験
スマホ・タブレットアプリには業務アプリ開発が多いですが、ゲームアプリを開発している企業もたくさんあります。C#の場合、ゲームアプリ開発にはUnityなどのゲーム開発ツールを利用して開発されますので、そういったツールでの開発経験が重視されます。
システム設計・構築の知識
エンジニアとして駆け出しの頃は、一般的にプログラミングのみの担当になりますが、システム設計などの知識があると業務がスムーズに進められます。後のキャリアのステップとして、システムアーキテクト(システム設計担当)など上流工程のエンジニアとして昇格していく場合にも有利です。
SQL ServerなどのデータベースやSQLの知識
業務で開発するようなアプリケーションは、ほとんどが何らかの形でデータベースと関係を持っています。直接SQL(データベースに問い合わせをする言語)を使わなくても、データベースの基本的な知識を持っていたほうがシステムの全体像が把握しやすくなります。
開発プロセスの知識
業務で開発を行う際には、何らかの開発プロセスが採用されています。まったく独自の開発プロセスを採用している企業もありますが、たいていはウォーターフォール開発やスクラム、アジャイルなどをそれぞれの現場に合うようにカスタマイズしています。原型の開発プロセスを知っていれば現場の開発スタイルに慣れる時間も短くなります。
IT系資格
もちろんIT業界のリクルート活動でも、資格は有効なアピール手段です。C#ですと、マイクロソフト認定資格(MCPやMCSD)が中心になりますが、国家資格の基本情報技術者試験(FE)や応用情報技術者試験(AP)もIT全般の知識を網羅していますのでおすすめです。
独学で学んでいくことができる
プログラミングは一度学んだら終わりではなく、定期的に新しい言語や機能がリリースされます。新しいことを学んでいかなければ、持っている知識は徐々に時代遅れのものとなってしまいます。そのため、自力で業界の動向についていける独学力を持った人材が求められています。
チームワーク・コミュニケーションが得意
開発プロジェクトは、通常は複数人で行われますので、チームメンバーとの意思疎通や協力が重要です。チームワークがうまく取れなければ、プログラムに不具合が発生する可能性が高くなってしまいます。コミュニケーション能力が評価されれば、プロジェクトマネージャー(PM)への昇格も期待できます。
事前に身につけることができるスキルや経験をどうやって取得するか?
最後に、事前に身に付けることができるスキルや経験を取得する方法を紹介します。これらを身につければ、未経験者でも採用される可能性がさらに高まります。
C#やJava、PHP、Rubyなどの言語を独学で学ぶ
まずは、C#の基礎を入門書籍など使って独学で勉強しましょう。セミナーなどを利用する方法もありますが、自分で学ぶ力をつけるためにも、独学で勉強することをおすすめします。どのみちエンジニアとして働いていくのであれば、プライベートでも学習することは必要になります。C#以外の言語も学びたくなってきたら、JavaやPHP、Rubyを検討するといいでしょう。この3つは、採用している企業が多いメジャー言語です。
個人的にスマートフォン・タブレットアプリを開発してリリースしてみる
C#の開発環境であるVisual Studio 2013 / 2015は、XamarinというC#でAndroidアプリやiOSアプリを開発できるツールがインストールできます。通常、AndroidアプリであればJava、iOSアプリであればObjective-CやSwiftなどの言語を使って開発する必要がありますが、XamarinならC#だけでアプリが開発できます。
開発したアプリは、通常のアプリと同じく各アプリストアに登録することができます。登録にはいくつか手続きが必要になりますが、アピール材料にもなりますのでしっかり登録しておきましょう。なお、各アプリストアに開発者として登録するための手数料が発生しますのでご注意下さい。
Unityで自分の好きなゲームを作ってみる
C#でゲームアプリ開発をしている企業は、Unityというゲーム開発ツールを利用しています。Unityは無料でダウンロードできますので、個人でゲームアプリ開発を学習するには最適です。入門書も数多くありますし、ゲーム開発ツールの中でも学びやすい部類です。また、開発したアプリはアプリストアに登録できますので、実績を企業にアピールできます。
IT系資格を取得する
C#やIT全般に関係する資格を取得してみましょう。非エンジニアの方が、いきなりマイクロソフト認定資格を取るのはなかなか難しいので、まずはサーティファイなどの民間企業のCやJavaなどの簡単な資格から取得することをおすすめします。プログラミングについて知識がついてきたら、マイクロソフト認定資格や基本情報技術者試験などの取得を目指してみましょう。
まとめ
エンジニアは、他の業界と比べると事前に自分で準備できる要素が多くあります。もちろん時間的な制約もあるでしょうから、時間が許す限りしっかり準備してからリクルート活動に望みましょう。あなたのやるべきことは見つかりましたか?
参照:プログラム初心者のためのC#アプリ開発基礎について解説した記事はこちら
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)