- プログラミングで何ができるの?
- できることの例とか知りたい!
- 作りたいものがあるんだけど、どうしたらいいの?
プログラミングに興味があって始めてみたいけど、プログラミングって何ができるのかと疑問になる方も多いはずです。
ケンさん
結論から言うと、プログラミングで何ができるかというと
Amazon、YouTube、SNSなどのネット上のすべてのサイト・Webサービス
スマホ、車や家電製品などの機械に組み込まれているシステム
このように、身の回りにある色々なものがプログラムでできています。
そのため、プログラミングで何ができるかと言われれば、少なくとも今世の中にあるシステムは作ることができると言えますし、アイディア次第で世の中に無いものを新しく作ることができます。
かなり大雑把に言ったものの、プログラミングは作りたいものによって、プログラミング言語や開発環境(≒作る方法)が変わってきます。
ここが変わるということは勉強方法も変わってくるので、開発できるもの別に細かく解説していきます。
ケンさん
目次
プログラミングは何を作るかで言語や開発環境が決まる
プログラミングで何ができるかを知る前に、何を開発するかで、プログラミング言語や開発環境などが異なることを知っておきましょう。
そのため、プログラミングを始めるためには、まず何を作るのかを決める必要があります。
プログラムで色々なことができますが、何をしたいかで、次のことが変わってくるからです。
- プログラミング言語
- 開発環境
- 勉強方法
プログラミング言語とは、プログラムを記述するための言語のことで、イメージとしては、プログラムを日本語で書くのか、英語で書くのかというような違いになります。
ほぼ全ての言語が英語ベースではあるものの、プログラミング言語によって記述方法などが異なってきます。
プログラミング言語には、C#, Java, Python, VBAなどがありますが、この言語が開発するものによって変わってきます。
また、開発環境とは、プログラムを開発するために必要なデバイスやソフトウェアのことです。
(MicrosoftのVitual Studioの画面)
イメージとしては、プログラムを記述するために高機能・多機能にしたテキストエディタという感じです。
作るものによってプログラミング言語が違うということは、プログラミングの勉強方法も異なってきます。
書籍であれば、色々な言語を解説した本がありますし、Web学習サイトやプログラミングスクールでも言語によってコースが違ってきます。
そのため、プログラミングを始める際に、自分が何を作りたいのかを決めておく必要があります。
プログラミングでできることは?【言語・開発環境・例】
自分が何を作りたいのかを決めるためには、プログラミングで、
- どういうものが作れるのか
- どのプログラミング言語を使えるのか
- 何の開発環境を使うのか
をより細かく知っておく必要があります。
ここを知っておけば、勉強するための書籍であったり、Web学習サイト、プログラミングスクールのコースであったりを選ぶことができます。
また、言語や開発環境で、どのように進めていけば良いのか調べることができるはずです。
Web開発
Web開発は、企業サイトなどのホームページ、YouTubeやNetflixなどの動画サービス、Twitter, InstagramなどのSNSといったウェブ上で動くものを開発します。
例としては次の通りです。
- ホームページ
- ブログ
- ECサイト
- Webサービス
- SNS
普段から使っているものばかりなので、イメージしやすいかと思います。
ブログやECサイトについては、1から個人で開発するのはめちゃくちゃ大変なので、CMSを使って開発を簡略化することがほとんどです。
CMS(コンテンツ管理システム)とは、ウェブコンテンツを構成するテキストや画像、ページなどを総合・統合的に管理するためのシステムです。
例えば、ブログであれば『WordPress』というCMSが有名ですし、EC(通販)サイトであれば『EC-CUBE』『Shopify』が有名です。
これを使うことで、1から開発するより9割ぐらいの開発工程を削減することができます。
その上で、デザインや機能を要望に応じて追加していくことが多いですね。
とは言え、プログラミングの勉強をするわけなので、勉強目的で1つサイトを作ってみるところから始めてみるのが良いでしょう。
主要なプログラミング言語は次の通りです。
- HTML/CSS
- JavaScript
- PHP
- Ruby
簡単なHTML/CSSであれば、一般的なテキストエディタでも開発できないことはないですが、やはりちゃんとした開発環境を使った方が良いですね。
開発環境は色々ありますが、私がホームページを作る時は、エディタに『Atom』を使っています。
また、ホームページを公開するためには、レンタルサーバーが必要なってきますが、テストとしてローカル(=自分のパソコン内)で作ったホームページを見たい時は、サーバーやデータベース周りをローカル環境で構築できる『XAMMP』を使っています。
Excel作業の自動化(マクロ・VBA)
Excelの計算や作業をプログラムを使うことによって、事務作業などを効率化・自動化することができます。
プログラミング言語はVBAで、Excelの[開発]タブ -> [Visual Basic]からプログラムを書くことができます。
※開発タブは、[ファイル] -> [オプション] -> [リボンのユーザー設定]から[開発]タブを表示します。
エディタなどの開発環境は元々備わっているので、Excelさえあれば、手軽に始めることができます。
ただ、何でもかんでもプログラムを書いて効率化・自動化していけば良いというわけではなく、適さない場合もあります。
Excelでは、データ入力、グラフ作成など色々できますが、”関数”で計算やデータ検索などをすることができます。
関数では、計算の自動化などでかなり幅広い範囲で役立ってくれますが、この関数ですらできないことがでてきた時に、初めてVBAを使ってプログラム化を検討する感じです。
主に、Excel内で使えるプログラミングということで、仕事でExcelを使って事務作業などをする方は、使えるのではないでしょうか。
特に、毎日あるいは定期的に、同じ操作をしているのであれば、プログラムを作って後はボタンを押すだけで実行してくれる状態にしておけば、その時間を別の作業に使ったり、休憩時間にすることができます。
ケンさん
≫ 関連記事:エクセルのマクロ(VBA)でできること【初心者向け】
Windowsアプリ開発
Windowsアプリ開発は、Windows上で動作するアプリケーションの開発を指します。
例としては次の通りです。
- ブラウザ
- 動画再生アプリ
- 画像変換アプリ
- Office
- メーラー
- 電卓
例をあげましたが、Windows上で実行できるものはすべて当てはまるので、いくらでもあります。
みなさんが普段パソコンで使っているアプリ全てですね。
主要なプログラミング言語は次の通りです。
- C#
- Visual Basic
- Visual F#
- Python
開発環境は、Microsoftが開発している『Visual Studio』が一般的ですね。
Pythonについては、他にも色々開発方法がありますが、私はよくC#でWindowsアプリを作るので、Visual Studioでできるならこれでやってしまおうという感じで使ってます。
≫ 関連記事:Windowsアプリのプログラミング開発について【初心者向け】
Macアプリ開発
Macアプリ開発は、macOS上で動作するアプリケーション開発を指します。
例としては、Windowsアプリと同様に、Macでみなさんが使っているもの全てですね。
主要なプログラミング言語は次の通りです。
- Swift
- Objective-C
現在は、Swiftが主流なので勉強するのであればこちらですね。
2014年に発表された比較的新しいプログラミング言語です。
開発環境は、AppleのXcodeを使います。
2D/3Dゲーム開発
PCやスマホで動く2Dゲーム、3Dゲームを開発することができます。
主要な開発環境とプログラミング言語は次の通りです。
- Unity(C#)
- Unreal Engine(C++, Unreal Script)
UnityやUnreal Engineは、開発環境を含むゲームエンジンのことで、プレイヤーや建物、フィールドなどの3Dのオブジェクトやテクスチャの反映、プレイヤーや敵の動作を決めるプログラム、イベント、物理計算などプログラミングを含むゲーム開発に必要ものが揃っています。
ゲームを開発する企業もUnityやUnreal Engineを採用しており、ゲーム開発では必要不可欠なものですね。
例えば、有名なゲームでいうと次のようなものがUnityやUnreal Engineで開発されています。
- スーパーマリオ
- 白猫プロジェクト
- ドラゴンクエストVIII
- ポケモンGO
- ストリートファイターV
- テイルズ オブ アライズ
- フォートナイト
「私もこんなゲームを作ってみたい…」と思うかもしれませんが、これらのゲームは数十人、数百人単位で年単位で開発されているので、個人ではなかなか厳しいです。
ゲーム開発は、プログラミング以外にも、3Dモデリングやモーション、テクスチャ、BGM・効果音、ストーリーなど色々作る必要があるので、小規模なゲームを作ってみるのが良いでしょう。
ストアなどで3Dモデリングやエフェクトなどが無料・有料で用意されているので、個人開発の場合は、これらを上手く使って開発工数を短縮するのが一般的ですね。
また、開発したゲームをパソコンやスマホアプリ、PlayStation、Switchなどのハードといった色々なもので動作するようにできるので、その点も使い勝手の良い開発環境です。
Androidアプリ開発
Androidスマホで動作するアプリケーションを開発することができます。
例えば、
- SNSアプリ
- スケジュール管理アプリ
- 地図アプリ
- メールアプリ
- ゲームアプリ
など様々です。
基本的に、Google Playからインストールできるアプリ全てですね。
ゲームアプリに関しては「2D/3Dゲーム開発」を参考にして下さい。
主要なプログラミング言語と開発環境は次の通りです。
- Java(Android Studio)
- Kotlin(Android Studio)
- C#(Xamarin)
Kotlinは、2017年からGoogleで正式な開発言語となった比較的新しい言語です。
新規開発をする場合は、Kotlinが使われることが多いようです。
ですが、既存アプリの機能追加、改修などをする場合は、元々Javaで開発されていることが多いので、それに合わせてJavaを使うことが多いようですね。
Windowsアプリなど違い、スマホの場合は、GPS、加速度センサー、ジャイロセンサー、磁気センサー、生体認証センサーなど様々なセンサーを搭載しています。
そのため、これらのセンサーを使って、色々データを取得して、アプリ開発するのもなかなか面白いですね。
≫ 関連記事:Androidアプリ開発について【初心者向け】
iPhoneアプリ開発
iOSを搭載するスマホ(iPhone, iPad)で動作するアプリケーションを開発することができます。
開発できる例に関しては、Android同様、App Storeに公開されているものになりますね。
ゲームアプリに関しては「2D/3Dゲーム開発」を参考にして下さい。
主要なプログラミング言語は次の通りです。
現在は、Swiftが主流なので勉強するのであればこちらですね。
2014年に発表された比較的新しいプログラミング言語です。
開発環境は、AppleのXcodeを使います。
これもAndroidと同様ですが、様々なセンサーを搭載しているので、これらを使ってアプリ開発すると色々と面白いアプリを開発することができます。
≫ 関連記事:iPhoneアプリ開発について【初心者向け】
データ分析
何かを改善するために、膨大なデータを分析するプログラムを開発します。
このデータ分析をどの分野で活用するのかは実に様々です。
- SNSやYouTube, ブログなどのアナリティクス
- 商品のPOSデータ
- 株やFX
どんなデータを使うかは本当に幅が広いので、何を分析したいのか、使う人によって全然違ってきますね。
データ分析で使う主なプログラミング言語は、次の通りです。
- Python
Pythonは、統計的な処理を少ないコードで、グラフ付きでプログラミングできるので、データ分析と言えばPythonですね。
AI・人工知能開発
機械学習、ディープラーニング、遺伝的アルゴリズムなどのAIを開発することができます。
ライブラリを使うことで、難しい計算などはある程度やってくれるので、理系大学レベルで必要な数学、統計的な知識は無くても手を出せます。
ただ、ライブラリに対して、
- どういうデータを渡さないといけないか
- どういうパラメータを設定すれば良いのか
と言うのが難しいので、AIがどういう仕組みで動くのかは、勉強しておいた方が良いですね。
AI・人工知能で使う主なプログラミング言語は、次の通りです。
- Python
- C#
Pythonはデータ分析だけでなく、AIも色々とライブラリが揃っていて、コードも少なく実装することができるので、人気の言語となっています。
また、C#でもライブラリがあるので開発はできます。
プログラムの実行速度でいうと、PythonよりC#の方が圧倒的に速いので、私は、AIの学習時間などがシビアな場合は、C#を使っています。
≫ 関連記事:AI・人工知能プログラミングについて【初心者向け】
ロボット・電子工作(組み込み系)
ロボットや電子工学など組み込み系と呼ばれるシステムを開発することができます。
例えば、次のようなものがあります。
- 車のシステム
- 電化製品のシステム
電化製品では、何かしらボタンを押した時に、そのボタンに応じた機能が実行されます。
例えば、電子レンジでは、ワット数を調整するボタンを押せば、ワット数が切り替わりますし、温めスタートボタンを押せば、食べ物を温めてくれます。
電子レンジで温めボタンを押した時は、内部のプログラムでは、ユーザーが設定したワット数や温め時間を取得して、それに応じた温めを実行します。
温めを実行すると、テーブルを回転させ、温めるための電波を発生させます。
この電波が水の分子などを振動させて摩擦熱を発生させることで、食べ物を温めます。
このように機能を実行するために、テーブルを回転させるためのモーターや電波を発生させる装置などを制御します。
目的別おすすめの開発ジャンル
プログラミングでできることをずらっと並べてきましたが、結局どれを選べば良いんだ?と迷ってしまう方もいると思います。
あるいは、自分で作りたいものは無くて、とりあえずスキルとして身に付けたり、触れておきたいと考えている方もいるはずです。
そこで、目的別にどれが良いのかを解説してきます。
就職・転職のため需要のある開発ジャンル
IT企業へプログラマー・SEとして就職、転職する目的で、プログラミングを学びたい方は、需要のあるジャンルを狙うことをおすすめします。
需要の少ないプログラミング言語や技術を覚えても、仕事が無ければ意味がありません。
そのため、全く興味のない開発を需要のためだけにやる必要はないですが、仕事のスキルとして使いたいのであれば、需要も考えると良いでしょう。
具体的に需要のある開発は次の通りです。
- Web開発
- Webデザイナー
- スマホアプリ
- AI
- ゲーム
Web開発・デザイナーが群を抜いて需要が高く、その他はそこまでは無いが、需要があるという感じです。
特に、転職目的のためにプログラミングを学ぶのであれば、プログラミングスクールを強くおすすめします。
書籍やネットなどで独学すると挫折リスクが高まりますし、効率的な学習ができません。
また、自分のプログラミングレベルが今どの程度なのかを客観的に判断することが難しいので、転職を開始するタイミングも難しいです。
≫ 関連記事:【初心者向け】プログラミングのスクールの特徴とおすすめのスクール紹介
小・中学生に人気のある開発ジャンル
最近では、学校でプログラミングが必修になったり、YouTubeなどでプログラミングのことを発信したりしているので、プログラミングに興味を持つ子も多いと思います。
しかし、プログラミングを知らない親御さんからすると、どういう風に教えれば良いか全く分からないと思います。
そういう場合は、子供向けのプログラミングスクールもあるので検討してみるのも良いでしょう。
子供に人気のあるプログラミングは次の通りです。
- Web開発
- ゲーム開発
- ロボット開発
ゲームやロボットは子供たちに人気なので、その上でプログラミングに興味を持つと自然と作ってみたいとなると思います。
ただ、小学生の場合は、プログラミングが難しいので、Scratchなどのビジュアルプログラミングで学ぶのが良いでしょう。
プログラミングと言えば、英語がズラッと書かれているテキストプログラミングですが、子供からすると結構難しいと思います。
そのため、比較的簡単にプログラミングを勉強できるように、ブロックやアイコンなどの視覚的な絵を組み合わせて記述するビジュアルプログラミングが良いでしょう。
子供向けのプログラミングスクールについて、プログラミングを学ぶメリットや勉強方法などを解説しているので、ぜひ参考にしてみて下さい。
≫ 関連記事:子供がプログラミングを学ぶメリットと方法を解説【元SE・プログラミング約10年】
まとめ:プログラミングで何をしたいのか決めてから勉強しよう!
プログラミングを始める前に、自分がどういうものを作りたいのか決めておきましょう。
作りたいものによって、次のことが変わってきます。
- プログラミング言語
- 開発環境
- 勉強方法
そのため、作りたいものを決めないと、プログラミング言語や開発環境を絞ることができません。
さらに、プログラミング言語を決めないと、書籍やWeb学習サイト、プログラミングスクールなどのコースを選ぶことができません。
そのため、プログラミングを始める際に、自分が何を作りたいのかを決めておく必要があります。
開発できるものをおさらいすると次の通り。
- Web開発
- Excel作業の自動化(マクロ・VBA)
- Windowsアプリ開発
- Macアプリ開発
- 2D/3Dゲーム開発
- Androidアプリ開発
- iPhoneアプリ開発
- データ分析
- AI・人工知能開発
- ロボット・電子工作(組み込み系)
転職目的であれば、Web開発やWebデザイナーなどのWeb系の需要が高いのでおすすめですね。
他にも、スマホアプリやAI関連も一定の需要があります。
≫ 関連記事:【初心者向け】プログラミングのスクールの特徴とおすすめのスクール紹介
また、最近では小学校のプログラミング必修化の影響か、子供のプログラミングの興味や関心も高いです。
プログラミングの中でも、特に、Web開発、ゲーム、ロボットが人気ですね。
コメントを残す