この記事の要点
- WindowsやChrome、ビットコインなど様々なサービスの開発言語として使われている
- C++は現在も進化していて案件も多いが高度なスキルと経験が必要
- 案件を獲得するためには、データベースやフレームワークの知識・スキルの習得が必要
- 言語の習得が難しいが高単価の案件が多いため副業のメリットは大
C言語やC++は歴史が長いプログラミング言語の一つです。
Pythonなど新しい言語も数多く登場していますが、需要が拡大しているスマホゲームやロボット開発など、現在もさまざまな分野で活用されており、プログラマーのニーズ、案件ともに少なくありません。
しかし、C++などのC言語系の副業やフリーランスは難しいという声をよく聞きます。
この記事ではC++の副業がなぜ難しいと言われるのか、C++を開発言語として副業を始める場合の案件の種類や必要なスキルなどを紹介します。
目次
C++(シープラスプラス)とは?
C言語とは1972年にリリースされた汎用プログラミング言語で、プログラムの実行にはあらかじめソースコードのコンパイル(コードをコンピューターが直接実行可能な機械語に翻訳する作業)が必要になるコンパイラ言語です。
C++は、そんなC言語を拡張させてオブジェクト指向などの機能を追加した言語で1983年にリリースされました。
CとC++には互換性があり、C言語で作成したプログラムをC++に移植や同時に開発できます。
C言語もC++も、コンパイラ言語であることから、プログラムが小さく、インタプリタ言語と比べて処理速度も早く、低メモリで高度な処理もできます。
そのため、データ解析や機械学習などの膨大なデータ量を扱う場合や、システムなどのベースになるソフトウェアやプラットフォーム、組み込み機器などで使用されることが多い言語です。
OSの「Windows10」やグーグルの「Chrome」をはじめ、ゲームエンジンの「Unreal-Engine」、「Swift」などのプログラム言語自体の開発、仮想通貨としてもっとも有名な「bitcoin」の開発にもC++が利用されています。
C++とC言語との違いはC++の拡張機能
基本的に、C++はC言語の拡張言語なので、C言語でできるプログラムはC++でも基本的には可能です。
そのため、C++にできてC言語にできないことが基本的な違いとなります。C++にしかできないことの一例として、下記のようなものがあります。
- 変数を好きなところで宣言できる
- オブジェクト指向を実現するためのclass(クラス)を定義可能
- structをclassとしてあつかえる
- ポインタに似た参照
- 名前空間
- 型推論・ジェネリックプログラミング
- 例外処理
- テンプレートによるメタプログラミング
C++の副業案件は長期が多く難易度も高い
C++は、前述のように、ITの基幹部分となるような様々なサービスやシステムで使用されており、プログラマーのニーズも高く、案件も決して少なくありません。
それにもかかわらず、C++での副業が難しいといわれているのは、
- C++の機能が多彩で習得が難しい
- 開発規模が大きい
- フレームワークやミドルウェアなどシステム自体の難易度が高い案件が多い
といった理由があります。
C++は、C言語に加えてオブジェクト指向など様々な機能が拡張された言語になり、プログラム言語として非常に強力な言語。
その分、Pythonなどの言語と比較すると、コードの記述が複雑で、習得まで時間がかかります。
そのため、簡単なアプリやWebサイトなど、副業で多い比較的小規模で開発スピードが求められる案件は、小回りが利くPythonやPHPといったWeb系で使われるプログラミング言語が人気になっています。
システムやOS・ミドルウェアなど、シビアな条件で汎用的に使用されるサービスに使用される大規模な案件が多いため、なかなか条件に合った案件を見つけるのが難しい、あるいは続けるのが難しいと言われてしまうのでしょう。
さらに、C++で開発されるのは大規模で信頼性が要求されるサービスが多く、使用されるフレームワークや開発環境なども、高額な商用ソフトがほとんどで個人レベルで利用できるものが少ないのも難点です。
C++の副業案件の種類と必要なスキル・単価相場
ここからはC++を使った案件の種類と、必要なスキルと案件の相場等について、説明していきます。
C++の副業はエージェントが基本
C++の副業案件は、PHPやPythonなどと違いクラウドワークスやランサーズなどのクラウドソーシングにはあまり掲載されていません。
そのため、フリーランスや副業の案件を扱っているエンジニア系のエージェント会社経由での案件獲得が中心になります。
失敗しないフリーランスエンジニア専門エージェントの選び方は、こちらの記事を参考にしてください。
フリーランスのエンジニアとして高収入を目指せるおすすめのエージェントはどこ?
システム開発
C++を使う案件として、まず業務システム開発が挙げられます。
金融・小売・医療・官公庁などの業務システムにおいては、実行速度の速さが重要なため、C++が開発言語として使われているケースが多くあります。
また、古くから使用されているC言語との互換性がありながら、最先端のプログラム手法が使えるため既存システムの拡張やリプレースなどの案件も多くあります。
システム開発に必要なスキル
大規模なシステムが多いため、インフラやデータベースなどの知識が非常に重要になります。
データベースについても小規模な開発では利用の少ないOracleなどの知識が必要になるでしょう。
ほかにも他システムと連携するためのAPIや、金融や官公庁など高いセキュリティの知識が必要になるケースも多くあります。
- インフラ構築や導入の知識
- MYSQLやOracleなどのデータベースの知識
- Boostなどのライブラリ、Qtなどのツールキーとテストフレームワーク(Google Test、CppUTest、WinUnit、CppUnitなど)などの知識
- 他システムとの連携の知識
- セキュリティに関する知識
システム開発の単価相場
アプリケーション開発やデバッグ、プロジェクトマネージャーとしての案件などがありますが、システム開発の単価相場は月50万円~70万円が多いです。
組み込み開発
組込みシステムとは家電やロボット、ゲーム機器など、独立しているハードウェアに組み込むシステムのことです。
C++はプログラムがコンパクトでメモリの消費が少なく、かつ複雑な処理に長けているため、組み込み機器の制御系システムに向いている言語です。
組み込み開発に必要なスキル
C++の組み込み開発で必要なスキルは、C++のスキルに加えて、
- Embedded C++(エンベデッドシープラスプラス)
- ハードウェアの知識
- IoT技術
といったスキルが必要になります。
C++で組込みシステム開発を行う場合、組み込み向けC++としてEmbedded C++(エンベデッドシープラスプラス)が採用されるケースが多くあります。
C++の複雑な機能や組み込みに向かない機能(メモリ消費が大きいなど)などが省かれているためある程度慣れが必要です。
組込みシステムでは、ハードウェアについての知識も必要です。
場合によっては電子基板の設計もすることがあるため、プログラミング以外のスキルが重要になります。
最近はIoTを利用した家電などが多く普及しています。
そのため、IoT技術を利用したシステムを作る案件にも対応できるよう、知識をつけておきましょう。
組み込み開発の単価相場
組込みシステム開発の単価相場もシステム開発と同様に月50~70万円が多いです。
組み込みシステムはC++とハードの両面の知識が必要になるため、人材が限られており、経験者の需要は非常に高いです。
ゲーム開発
C++を使う案件には、ゲーム開発案件も多く存在します。
処理速度が早く、複雑な処理ができるC++は、ゲーム開発の際に使用される言語の1つです。
最近ではスマホアプリゲームの開発案件が多くあります。
ゲーム開発に必要なスキル
ゲーム開発に必要なスキルとしては、C++自体の知識に加えて、ゲームの開発環境を使いこなす知識が中心になります。
特に重要なのは、ゲーム開発のフレームワーク(総合開発環境)であるゲームエンジンです。
ゲームのプログラムは同じような制御や実行動作の繰り返しが非常に多いため、ゲームエンジンを利用して開発するのが主流になっています。
下記のようなゲームエンジンが有名です。
- Unreal-Engine(アンリアルエンジン)… Unityと並ぶ3Dゲームエンジン
- Cocos2d-x(ココスツーディーエックス)…オープンソースの2Dゲームエンジン
- Unity(ユニティ)…C#を用いての開発だが、DLL化でC++も利用可能
特に、ディズニー映画の製作などにも使われているUnreal-Engineは、C++でのゲーム開発をする上で必須といえるでしょう。
ゲームエンジンとしてメジャーなUnityはC++でも開発が可能ですが、C#での開発案件がほとんどです。
C++を使えるプログラマーであれば、数か月でC#もある程度使えこなせるはずなのでゲーム開発をメインにしたい場合は、C#の学習もおすすめです。
いずれにせよ、応募の段階で案件で使用するゲームエンジンについて明示されていることがほとんどなので、事前に確認をするようにしておきましょう。
また、ゲーム関係のC++にかかわる案件では、ゲーム機などの組み込み開発などもあるため、組み込み開発経験とゲーム関係の経験があれば幅広い範囲での活躍が可能です。
ゲーム開発の単価相場
ゲーム開発の単価相場も月50~70万円です。
スマホを中心としたゲーム業界全体が好調のため案件数も増加傾向にあり、ゲームが好きな人であれば楽しみながらできるかもしれません。
まとめ
今回はC++の案件の種類や必要なスキルを中心に解説しました。
C++は登場から40年近く経つ古い部類に入るプログラム言語ですが、現在でも積極的に開発がされており、ライブラリなどによって最新のプログラミング手法や技術に対応されています。
なかなか敷居の高いC++ですが、社会インフラやIT業界にとって非常に重要なサービスやシステムを支えている言語でもあるため、プログラマーのニーズがなくならない言語とも言えます。
副業、本業問わずプログラマー・エンジニアとして長く活躍できる言語のため、ぜひチャレンジしてみましょう。