やりたいこと別(職種別) よく使われるプログラミング言語を解説!!

プログラミング

プログラマーと言ってもその職種は広く、業界によって求められるプログラミング言語が異なります。
この記事は、プログラムを勉強したいがどの言語を勉強すれば良いかわからない。そんな方に向け情報をまとめたものになります。

私の職業としましてはc言語の組み込みエンジにとなります。それ以外にも、デスクトップアプリケーションやwebアプリケーションも作成したりしております。趣味でスマホアプリも作っており、どんなアプリケーションでも一通り作成することができます。

注意

プログラミング言語の学習ばかりに目がいきますが、作成したいアプリケーションの知識も大切となってきます。例えば経理をおこなうアプリケーションを作成しようとした場合、プログラミングの知識はもちろん必要ですが、経理の知識も必須です(私の経験上ではプログラミングの知識よりむしろこっちの方が大事)。これからプログラミング学習を始めようという方は、プログラミング言語だけではなく興味がある分野を選択するということも重要にもなってきます。

やりたいこと別による使われるプログラミング言語

やりたいこと別に使われるプログラミング言語をまとめた結果となります。
この世の中には数えきれないほどプログラミング言語が存在しますので、代表的なものをピックアップした形になります。プログラミング言語によりメリット/デメリットが存在するため、用途に合わせて言語を選択する必要があります。
例えば組み込みソフトではリアルタムな処理速度が求められるますが、webアプリケーションには組み込みソフトほどの処理速度は求められないことが多いです。処理速度よりも大量のデータを簡単な記述で処理できることが望まれます。

やりたいこと具体例主なプログラミング言語
組み込みソフト自動車
家電
C、C++、java、MATLAB/simulink
webアプリケーションyoutube
クックパッド
フロントエンド:html/css、javascript
バックエンド:php、python、ruby、javascript
スマートフォンアプリandroid用アプリケーション
ios用アプリケーション
kotolin、swift、fluter、unity(C#)
デスクトップアプリwindows用アプリケーション
mac用アプリケーション
C#、swift
補足

ここにあげたやりたいことに対応するプログラミング言語は主なものです。
例えばpythonであればパッケージを使用すればスマートフォンアプリもデスクトップアプリも作成することが可能です。ただし、やりたい事に合わせ特化したプログラミング言語が存在するため、それと比較するとやりたい事に制限があったり、使いにくかったりと制約が存在してきます。

組み込みソフト

組み込みソフトは自動車、家電製等に搭載されるソフトウェアなります。ソフトウェアは、C/C++で開発されることが多く、マイコンと呼ばれるICにソフトを書き込み実行します。メモリの制約や実行速度が求められるため、低水準(ハードウェア操作が可能)の言語を使用する事となります。大規模な組み込みソフトとなるとjavaやMATLAB/simulinkを使用する事も有ります。

マイコン周辺にはセンサやアクチュエータ(モータ等の動力を伝えるもの)が搭載されるため、プログラミングの知識だけで無く電子回路の知識も要求されます。

c/c++について
・c言語としては他の言語と異なる特徴として、ポインタと呼ばれるメモリ操作する文法を把握する必要がある。
・c++はc言語にオブジェクト指向の考え方を取り入れたものであり、プログラミング言語の難易度としてはかなり高い。

MATLAB/simulinkについて
・ソースコードでではなくブロックを組み合わせることでプログラムを作成していく。
・ブロックの中にブロックを作成するという階層構造でソフトを組み上げていくため、プログラムの見通しがよい。

職場によってはc言語でプログラムを作成するため、オブジェクト指向を学んでも使われない知識となる事もあるので注意が必要です。

webアプリ

ブラウザ(chrome、Edge等)を利用しアプリケーションを利用します。数えきれないほどこの世の中にはwebアプリケーションは存在しますが、youtubeやクックパッドのようなweb上でサービスを受けるものが該当します。
webアプリ開発はフロントエンドとバックエンドという役割が有ります。
フロントエンドは、html、css、javascriptを使用し画面の描写を行います。
バックエンドはjavascript、python、php、rubyを使用しユーザからのデータの処理やデータベースとのやりとりを行います。

フロントエンドのプログラミング言語について
・htmlというマークアップ言語とcssによりスタイルを設定
・javascriptでエフェクト(ボタンを押した時に光る等の動き)をかけていく

バックエンドのプログラミング言語について
・どの言語を選択しても似た様なものとなります。
・他人が書いたサンプルプログラム等を参考にする場合、オブジェクト指向で書かれたものが多いため、オブジェクト指向は習得した方が良いです。

スマートフォンアプリ

こちらもwebアプリと同様に数えきれないほど世の中に存在します。iphoneであればapple ストア、androidであればplayストアを検索すれば出てくるものとなります。インストールをすることでアプリケーションが利用できるようになります。
androidアプリはkotolin、iosアプリはswiftを利用し作成されます。
大規模(ゲーム等)なものになるとwebアプリ同様にサーバを用意する事になります。

andoroidアプリ(kotlin)の例となりますが、android studio等の統合開発環境により開発を行います。
テキストやボタンを画面上で配置し、ボタンが押された場合の処理をプログラミング言語で記述をしていきます。

基本的な開発の進め方はiosアプリも似た様なものとなります。

こちらも、オブジェクト思考の知識習得は必須となります。

補足

flutterは「クロスプラットフォーム」と呼ばれる、1つのコードで、スマートファンアプリ、webアプリケーション、デスクトップアプリが作成可能です。デメリットとしてはハードウェアに近い部分の処理(ライトを付ける等)は、kotolin等で記述する必要があります。ライブラリが豊富になってくればflutterのみで開発が可能となるためクロスプラットフォームは注目しております。

デスクトップアプリ

デスクトップアプリは、windowsやmac上で動くアプリケーションとなります。
windowsアプリケーションを作成する場合は、Visual Studio等の統合開発環境を利用するのが代表的な開発の進め方です。Visual Studioもですが、ブロックを配置し画面を作成し、それに応じた処理をプログラミングで記述するという形でアプリケーション作成を行います。

macのデスクトップアプリもiphone向けアプリと同様にxcodeを使用し作成をします。作成の方法はvisual studioとさほど変わらない流れとなります。

まとめ

・プログラミング言語と言ってもやりたい事に合わせた使いやすい様になっております。やりたい分野によって学習すべき言語も異なってきます。特に「組み込みソフト」と「それ以外の分野」では学習内容は異なります。
・アプリケーションはプログラミングの知識だけでは作成ができません。システム化対象の知識も必要であるため、興味がある分野を選択する事も重要です。
・同じ様にやりたいことができるプログラミング言語でも、プロジェクトの過去資産やチームの得意とする技術により何を選定するかが異なってきます。
・特にご自身のやりたいことが既に決まっている場合、会社により使用されるプログラミングが決まっていることが多いため、求人を確認しつつ方向性を決めるのが間違いないでしょう。

コメント

タイトルとURLをコピーしました