1分で分かる!C言語
A:ジャバード先生、ちょっと聞いていいかな??
B:どうしたの、ことりん君
A:今、プログラミング人気ランキングを見てたんだけどさ、「C言語」ってやつが1位なんだ。Java、Python、PHPとかはおしえてもらったから分かるんだけど、C言語ってなにものなの?
B:お、C言語の話だね!C言語はとっても歴史がある言語なんだよ。
A:そんなに古いのに、まだ人気が高いの??
B:そうなんだ。古いんだけど、C言語が誕生してから今までずーっと人気が高いんだ。
A:THE ALFEEみたいだね!ほっしぞ~ら~♪のしたの♪ディスタンス~♪
B:ごめん…ちょっと、よくわからないけど…
A:でも、なんでそんなに人気があるの?新しいプログラミング言語のほうが、機能も高いだろうし、プログラミングしやすいんじゃないの??
B:普通そう思うよね。もちろんC言語は完璧だったわけではないけど、C言語しかできないこと、C言語が得意なことがたくさんあるんだ。
A:ナンバーワンでありながらオンリーワンってこと??
B:そうだね。新しいプログラミング言語がC言語より優れているところもたくさんあるんだけど、それでもやっぱりC言語じゃなきゃだめってところが、今もあるからずーっと高い人気を集めているんだね。
A:知らなかったけど、すごいプログラミング言語なんだね。
B:うん!そういうことだね!だからC言語は、その後に誕生したいろんなプログラミング言語に強い影響を与えているんだよ。簡単に言えば、C言語はプログラミング言語の先輩的な存在なんだ。
A:C言語先輩!!ちわーっす!!
1分で分かる!C言語
C言語は、1972年にアメリカ合衆国の電話会社であるAT&Tの研究開発部門によって生み出されました。現在使用されているプログラミング言語の中でも歴史が長く、他の様々なプログラミング言語に強い影響をもたらしたプログラミング言語でもあります。
当然ではありますが、JavaやC#などが採用しているオブジェクト指向オブジェクト指向とは、開発者がプログラミングしやすいように予め定義したものになります。定義をすることで仕様変更などに対応しやすくなります。 例えば、ある2台の車を動かすプログラムがあるとします。 <オブジェクト指向がない場合> ・A車は、ボタンを押すと走って、離すと止まる。 ・B車は、ボタンを押すと走って、離すと止まる。 <オブジェクト指向がある場合> ・A車、B車という車がある。 ・車の動作は、ボタンを押すと走って、離すと止まる。 ここで、ボタンを2回連続で押すとドリフトするという仕様変更が入ったら、オブジェクト指向なしのプログラムは2か所変更する必要がありますね。 例は2台だったからよいものの、これが100台、1000台だったら、、、考えただけでぞっとしますね。 このようにオブジェクト指向だと修正が入ったときや、大人数で開発する際に便利です Moreが誕生するよりも古いプログラミング言語であるため、手続き型と呼ばれるタイプのプログラミング言語に分類されます。
また、C言語は実行速度が非常に高速であること、様々なプラットフォームで動作可能であるという点も特徴です。
C言語を使うエンジニア
C言語は、ハードウェアを制御することができるためOSの開発に用いられています。Windows、Linux、macOSといった様々なOSのコアな部分はC言語でプログラミングされています。
また、ハードウェアを制御できるということで、産業用ロボット、家電製品などといったものに組み込まれるソフトウェアにもC言語を使うこともあります。
C言語エンジニアの特徴と在籍業界
前述したとおり、C言語エンジニアは組み込みソフトウェア業界に多くいます。またOSなどの開発といったかなりコアな業界にもいます。ただし、C言語は数あるプログラミング言語の中でも、習得のハードルは非常に高いです。また、開発対象にもよりますが、C言語を採用しているプロジェクトの多くはハードウェアとソフトウェアの知識を必要とするため、他のプログラミング言語を扱うエンジニアよりも絶対数は少ないという傾向があります。
採用する時に知っておくとよいこと
使用しているテスティングフレームワーク
大抵の場合、他の(現役)プログラミング言語にはフレームワークというものが存在しています。JavaであればSpring、PHPであればLaravel、RubyであればRuby on Railsといった具合です。ですが、C言語にはメジャーなフレームワークがありません。ただし、テスト用のフレームワークは幾つか存在します。一例をあげると以下のようなものです。
他のプログラミング言語ほどではありませんが、使用経験があるテスティングフレームワークは、候補者に確認しておくとよいでしょう。
C言語の資格
C言語の資格はあまり多くありません。現在、日本で受験できる資格としては以下のものがあります。
株式会社サーティファイ主催:C言語プログラミング能力認定試験
資格はスキルの担保となるため、候補者には確認するようにしましょう。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1.システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2.開発環境
3.現在のエンジニア組織の体制
4.現行システムの課題と募集の背景
5.求められる業務と期待値
6.エンジニアとしてのスキルアップ支援制度の有無と詳細
7.エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8.選考フロー
9.待遇
10.キャリアパス
C言語の豆知識
C言語に影響を受けたプログラミング言語
前述したように、C言語は様々なプログラミング言語に影響を与えています。C++、Java、C#、D、Objective-C、Perl、JavaScriptなどは、C言語の優れた部分を取り込んでいます。C言語の存在が、現在のテクノロジー社会を支えているといっても過言ではありません。
なお、各プログラミング言語の関係を知りたい方は、こちらのサイトが参考になります。https://exploring-data.com/vis/programming-languages-influence-network/
古いのに最先端
C言語は歴史があるにも関わらず、未だに最先端技術にも活用されています。その事例の1つがIoTです。IoTとはモノがインターネットと接続するという技術です。家電、自動車などといったさまざまな機器が、インターネットに接続することで新たな価値を生み出しています。
このIoTですが、技術としては新しいものの、組み込みソフトウェアを必要とするという側面から見ると、昔からある技術なのです。長年根強い需要を維持しているC言語ですが、このような最先端技術の登場により、さらに需要が増しているというわけです。