目次

プログラミングの始め方 (開発環境、プログラミング言語の選択)

目次

プログラミングの始め方についての記事です。

概要

初めてプログラミングに取り組む場合に、どのような機材を準備すればよいのか、プログラミング言語やプログラムを作成するためのソフトウェアの入手方法などを紹介します。

ターゲットとなるデバイス

プログラムを作成するにあたり、どの環境で動くプログラムを作成するか決める必要があります。主な動作環境として以下があります。

Windowsマシン (デスクトップアプリ / コンソールアプリ)

Windows PCで動作するアプリケーションです。Windowsで動作するメモ帳、ペイント、Excelなどのデスクトップアプリケーションがあります。 また、ウィンドウが表示されず、プログラムが実行されると、コマンドウィンドウが表示されるコンソールアプリケーションもあります。
また、Windowsのストアアプリからダウンロードしてインストールするアプリなどもあります。

Mac (デスクトップアプリ / コンソールアプリ)

Mac OS上で動作するアプリケーションです。メモ帳、Excelなどのデスクトップアプリケーションがあります。またウィンドウが表示されないコンソールアプリケーションもあります。

Android 端末

Androidのスマートフォンやタブレット端末で動作するアプリケーションです。通常、アプリはGoogle Playからダウンロードしてインストールします。

iPhone / iPad (iOS)端末

iPhone, iPadのスマートフォンやタブレット端末で動作するアプリケーションです。通常、アプリはApple App Storeからダウンロードしてインストールします。

Webサーバー

Webサーバーと呼ばれるインターネットに接続したサーバーに配置して動作するアプリケーションです。一般的にはWebアプリケーションと呼ばれます。

組み込み機器

家電や炊飯器、コピー機などの電気製品内で動作するアプリケーションです。マイコン(マイクロコンピューター)や、Raspberry Piなどのシングルボードコンピュータなどもあります。

その他

ゲーム機、スーパーコンピューター、人工衛星など、いろいろあります。

開発用ハードウェア

ターゲットとなるデバイスが決まりましたら、プログラムを開発(記述)する(コーディングする)、コンピューターが必要です。
プログラム作成に用いるコンピューターは(非常に特殊なハードウェア用のプログラム開発でない限りは)一般的な市販のPCが利用できます。

Windows と Mac どちらを用意したほうが良いのか

一般的なPCを用意する場合、選択肢としてWindowsマシンを入手するか、Macのマシンを入手するかの選択があります。 通常であれば、利用者数の多いWindowsマシンを入手するのが良いです。iOS(iPhone, iPad)のアプリケーションを開発する場合、Macのアプリケーションを開発する場合は、Windowsマシンでは開発できませんのでMacを入手する必要があります。

補足
PCを入手してLinuxをインストールする選択もありますが、一般的な選択ではないです。
補足:Mac導入
エンジニア、プログラマの中にはMacが大好きな方もそれなりに存在します。Macが人気のある理由として、デザインや質感の良さもありますが、OSの操作性、コマンドライン/ターミナルがLinux/UNIXに近いことも理由の一つとしてあります。
一方でUNIX/Linuxは好きでない派も存在するため、Macを導入するかWindowsを導入するかは論争にもなるテーマです。
ちなみにiPentecではLinux嫌い派が多いです。(Cygwinインストールなんてあり得ないです。)

スペック

プログラムの記述自体はPCの処理能力はあまり必要ありませんが、プログラムのコードを実行バイナリに変換する作業(コンパイル/ビルド)や、 プログラムを動作させながら動作確認する作業(デバッグ)では処理能力が必要になります。
また、プログラムを作成する中で画面に表示するアイコンや画像などのリソースを作成する場合には画像編集や作画などの作業が必要になることも多々あります。
3DCGやCADを利用するほどのスペックは不要ですが、画像編集やビルドの作業が快適にできるよう、スペックは高めのPCを用意したほうが良いです。 CPUのスペックは高めに、メモリの搭載量も多いほうが良いです。
また、ゲーム等を開発する場合は最近のゲームは3DCGのゲームが多いため、グラフィックスカードも高いスペックのものを用意する必要があります。

具体的なPCのモデル

具体的にどのメーカーのどんなPCが候補になるか紹介します。

HP

HPの場合は以下のモデルが一例になります。

開発環境の軽いプログラムであれば、EliteBookでも問題ないかと思われますが、開発環境が重い場合ちょっとスペックが足りないかもしれません。
通常のプログラム開発であれば、シングルCPUでよいと思います。(デュアルCPUやQuadroのハイエンドグラフィックスカードはオーバースペックです)

Dell

Dellの場合は以下のモデルになります。

OptiplexでもメモリやCPUを増強すれば十分使えるとは思いますが、画像編集などもするのであれば少しだけスペックの高いマシンにしておいたほうが良いかと思います。

Lenovo

Lenovoの場合は以下のモデルになります。

  • Think Station
  • ThnkPad P シリーズ

Apple

MacやiOSのアプリケーションを開発する場合はMacの導入が必要になります。開発用でMacを導入する場合は以下のモデルになります。

  • MacBook Pro
  • iMac
  • Mac mini

ディスプレイのサイズ

プログラムを開発する場合のディスプレイはなるべく大きいほうが良いです。大きいディスプレイのメリットは次の通りです。

1.コードの見通しが良い

大きいディスプレイ、特に縦の長さが長いと画面に表示できるコードの行数が増えます。1画面に表示できるコードの行数が多いほうが見通しが良く、コードの編集や記述が快適にできます。

2.デバッグが楽

大きいディスプレイを利用すると、プログラムの実行結果とプログラムの実行状況を並べて確認することができます。画面が小さいとどちらかしか表示できないため、画面を切り替えながら作業する必要があり、作業効率が下がります。

3.調べ物が楽

参考資料を表示して参照しながらコードを記述したり修正することも多々あります。大きいディスプレイでは参考資料とコードを並べて配置できるため作業しやすいです。

4.画像編集が楽

プログラム以外にリソース画像などを編集する場合も画面が大きいほうが作業しやすいです。業務でコードしか記述しない分業体制がしっかりしている体制であれば、プログラマであれば画像編集はしませんが、DevOpsな環境でのフルスタックエンジニアや、趣味や個人的なプログラミングの場合は画像編集などもする必要が出てきます。


上記の理由から、ディスプレイはなるべく大きなものを用意するのがおすすめです。最低でもFull HD街道度のディスプレイ、27インチ以上のWQHD、または、40インチ程度の4Kディスプレイ、ワイドディスプレイなどがおすすめです。ノートPCの場合は大きいディスプレイはないため、Full HDのディスプレイになってしまいますが、外付けで大きいディスプレイを接続することを検討してもよいかもしれません。

開発言語、環境の選定

プログラムを動作させたいターゲットデバイスが決まり、開発用のハードウェアが入手できれば、プログラムの開発ができます。
プログラムを開発するにあたり、プログラミング開発言語と開発環境を選択する必要があります。
ターゲットデバイスによっては選択の余地がない場合もありますが、数種類の中から選択することができます。

選択するにあたってのポイント

開発言語や環境環境を選択するためのポイントは以下になります。

  • 利用者数が多いこと
  • サポートがしっかりしていること
  • 生産性が高いこと

1.利用者数が多いこと

利用者数が多いと、プログラムや開発環境に関する情報も豊富ですし、不具合もすぐに修正されます。 新しいバージョンのOSへの対応やOSの新機能への対応も速いです。

2.サポートがしっかりしていること

開発環境や実行環境に不具合がある場合があります。サポートがしっかりしていないと、なかなか不具合が修正されなかったりします。
開発環境がバグだらけですぐクラッシュしてしまい、半年以上使い物にならなかった。という事例もあったりします。
オープンソースの開発環境も品質が高いものがありますが、いつの間にか開発が下火になっていた。だんだんと別の開発環境のシェアが上がっていって、 いつの間にかユーザーがいなくなっていた。というケースもありますので、注意する必要があります。

3.生産性が高いこと

ある開発環境では10行書けば、10分作業すれば作成できるプログラムがあったとします。このプログラムと同じ処理をするプログラムを 別の開発環境で作成する場合、1000行コードを記述する必要があったりします。業務で開発環境や開発言語を指定されていないのであれば、 生産性の高い開発環境を選択したほうが、楽しく開発できます。

具体的な開発環境、開発言語

ターゲットデバイスごとに具体的な開発環境と開発言語を紹介します。

Windows (デスクトップアプリ)

  • 開発言語 : C# / 開発環境 : Microsoft Visual Studio

Windowsのデスクトップアップリを開発する場合は、現時点ではVisual Studioを利用して、C#で記述するのが無難だと思います。
C++やJavaなどの選択肢もありますが、生産性などを考慮するとあまりお勧めできません。

その他の選択肢
  • 開発言語 : Visual Basic / 開発環境 : Microsoft Visual Studio : あまりおすすめできません
  • 開発言語 : Delphi / 開発環境 : Embacadero Delphi :あまりおすすめできません
  • 開発言語 : Java (Swing) : 開発環境 : Eclipse / IntelliJ IDEA :あまりおすすめできません

Windows (コンソールアプリ)

  • 開発言語 : C# / 開発環境 : Microsoft Visual Studio
  • 開発言語 : C/C++ / 開発環境 : Microsoft Visual Studio
  • 開発言語 : Python / 開発環境 : Microsoft Visual Studio
  • 開発言語 : Java : 開発環境 : Eclipse / IntelliJ IDEA

コンソールアプリケーションの場合は、ウィンドウのUIを作成する必要がなくロジックのみの記述でよいため、プログラミング言語の選択肢が広がります。 Pythonなどのスクリプト言語はメモ帳だけでも作成できますが、初心者の方はプログラムにバグや間違いがあった場合に調査を効率的にするためにも、 デバッガなどの開発環境をしっかり用意することをお勧めします。

Mac (デスクトップアプリ)

  • 開発言語 : Swift / 開発環境 : Xcode
  • 開発言語 : Objective C / 開発環境 : Xcode

Macのアプリケーションの場合は、Xcodeを利用した開発が基本です。クロスプラットフォーム対応でJavaを利用する例もありますが、画面の見栄えなどが違ってくるため、 インストーラーやちょっとしたツール以外ではあまり見かけません。
開発言語はSwiftとObjective Cの2種類がありますが、最近はSwiftでの開発が主流になりつつあります。

Mac (コンソールアプリ)

  • 開発言語 : Swift / 開発環境 : Xcode
  • 開発言語 : Objective C / 開発環境 : Xcode
  • 開発言語 : Python / 開発環境 : Microsoft Visual Studio for Mac
  • 開発言語 : Java : 開発環境 : Eclipse / IntelliJ IDEA

コンソールアプリケーションの場合は、ウィンドウのUIを作成する必要がなくロジックのみの記述でよいため、プログラミング言語の選択肢が広がります。(Windowsと同様です)

Android 端末

  • 開発言語 : Java / 開発環境 : Android Studio
  • 開発言語 : Kotlin / 開発環境 : Android Studio

Androidのアプリケーション開発の場合、Android Studio を利用するのが基本です。プログラミング言語はJavaが基本です。Kotlinも選択肢になってきています。

iPhone iPad 端末 (iOS)

  • 開発言語 : Swift / 開発環境 : Xcode
  • 開発言語 : Objective C / 開発環境 : Xcode
その他の選択肢
  • 開発言語 : C# (Xamarin) / 開発環境 : Visual Studio
  • 開発言語 : Delphi / 開発環境 : Embacadero Delphi : あまりおすすめできません

Macのアプリケーション同様Xcodeの開発環境になります。言語はSwiftとObjective Cがありますが、Swiftを利用するのが主流になりつつあります。
クロスプラットフォームの開発言語として、C#によるXamarinやDelphiなども選択肢にはあります。Delphiも開発環境がこなれてきていますが、利用者数が少ないため情報が少ないのがネックです。

Webサーバー

Webアプリケーションの場合はWebサーバーの種類によって選択肢が変わります。

IISの場合
  • 開発言語 : C# / 開発環境 : Visual Studio
nginxの場合
  • 開発言語 : PHP
  • 開発言語 : Perl
Apacheの場合
  • 開発言語 : PHP
  • 開発言語 : Perl
Tomcatの場合
  • 開発言語 : Java / 開発環境 : Eclipse または IntelliJ IDEA
その他
  • 開発言語 JavaScript (Node.js) / 開発環境 : Visual Studio
クラウド (AWS / Azure) の場合
  • 開発言語 : C# / 開発環境 : Visual Studio
  • 開発言語 JavaScript (Node.js) / 開発環境 : Visual Studio
  • 開発言語 Python / 開発環境 : Visual Studio


Webアプリケーションの場合はWebサーバーの種類によって選択できる環境や言語が変わってきます。また、クラウドサービスを利用する場合は、 プログラムロジックのみを記述する方法なども利用できるため、さらに選択肢が広がります。

変化の激しい分野でもありますので、どれを選択するか迷うところではありますが、初心者ほど開発環境がしっかり用意されているものを利用するのがおすすめです。 Perl,PHPなどは有名ですが、高機能なデバッガやデファクトスタンダードな開発環境がないこともあり、初心者には勧めづらい面があります。
Javaは学校などで教育用として利用されているため、言語自体は良いのですが、Tomcatを利用した開発は冗長なコードになりやすく、 Webアプリの開発では生産性の面で初心者には勧めづらいです。

補足:HTML CSS JavaScript
HTML,CSS はプログラミング言語よりもマークアップ言語に近いです。ロジックを記述するよりも、画面のデザインや表示内容を記述する言語です。 Webアプリの場合の画面表示を記述する言語として使われます。また、JavaScriptはHTML,CSSよりもプログラミング言語に近いですが、こちらも画面表示の制御をするためのプログラミング言語で画面の表示やインタラクションに応答するためのプログラミング言語です。いずれも画面表示を記述するための言語です。

組み込み機器

組み込み機器の場合は、専用の開発環境があることが多いです。

  • 開発言語 : Java
  • 開発言語 : C/C++
を用いるのが一般的です。
Raspberry Pi では、C#, Python などのプログラミング言語も利用できます。

ゲーム

ゲームを開発する場合は、開発環境が違います。最近のゲームは3Dゲームが主流になり、グラフィックスやサウンドなども高度化しているためゲーム専用の開発環境があります。
ゲームの開発環境で主なものはいかがあります。

  • 開発言語 : C# / 開発環境 : Unity
  • 開発言語 : 独自 / 開発環境 : Unreal Engine


上記の開発環境で開発した場合、PlayStation、XBoxなど、Windows以外のデバイスで動作させることもできます。(ライセンス等が必要です)

どこから始めればよいか

ターゲットデバイスが決まり、開発用マシンなどのハードウェアも準備ができ、開発環境やプログラミング言語も選定ができれば準備は完了です。
準備はできたものの、どこから始めてよいかわからない場合は、次の順番で進めていくのが良いです。

1.開発環境をインストールする

開発用マシンに開発環境をインストールします。インストール後、開発環境を起動してみます。何もしない「空のアプリケーション」などを作成してみるのもよいです。

2.サンプルアプリを動かしてみる

開発環境によっては、サンプルアプリが付属している場合があります。サンプルのアプリケーションを実行してどんなアプリケーションが作れるのか見てみます。

3.はじめて系の書籍を購入してみる

利用している開発環境やプログラミング言語の「はじめての~」の書籍を購入して、書籍に書いてある内容をなぞって簡単なプログラムを作ってみます。
初心者のうちは利用している開発環境、プログラミング言語の両方が一致している書籍を購入したほうが良いです。
Tips系の書籍も発売されていますが、やりたいことが明確になっていないうちはあまり役に立たないので、書いてある内容に従って作業して、簡単なプログラムを完成させる内容の本を購入するのがおすすめです。

4.自分で簡単なアプリを作ってみる

本を読みながらいくつか簡単なアプリを作成できたら、自分で簡単なアプリを作ってみます。

  • カップラーメンタイマー (3分でお知らせしてくれる)
  • ジュークボックス (4曲ぐらいのミュージックを再生できる)
  • 数あてゲーム
  • 現在時刻を表示するWebアプリ
  • レトロなRPG戦闘ゲーム
  • ブロック崩しゲーム

などを作ってみます。

5.だんだんアプリをリッチにしていく

4で作成したアプリを少しずつリッチにしていきます。

  1. カップラーメンタイマー : 3分でお知らせしてくれる
  2. カップラーメンタイマー : 時間を変えられるようにする
  3. カップラーメンタイマー : 時間が来ると音が鳴るようにする
  4. カップラーメンタイマー : 時間が来るとe-Mailを送信するようにする
  5. カップラーメンタイマー : 時間が来るとSMSでスマホにショートメッセージが届くようにする

アプリをだんだん高度にしていく中で分からない点が出てくるので、調べて対応していきます。

6.実用的なアプリを作ってみる

実用的なアプリを作ってみます。
このレベルになるとデータベースを利用したほうが良い状況になってきますので、データベースの使い方なども調べてみるとよいと思います。
Git,Subversionなどのソースコード管理も必要になってくるかもしれません。

  • 自分のWebサイト
  • パスワード管理アプリ
  • 家計簿
  • 固定資産管理システム
  • 写真管理アプリ
  • 音楽/CD管理アプリ
  • GPSを利用した正確な時計

Excelで十分であったり、アプリを作成する必要がない場合もかなりありますが、アプリケーション化したほうがよさそうなものを見つけて作ってみます。

楽しくアプリを作りたい場合、どんな順番でマスターすればよいか

楽しくアプリを作ってプログラムをマスターしたい場合は次の順番を一例として紹介します。

  1. C# : Windows アプリケーション
  2. SQL (データベース)
  3. C# : Webアプリケーション (ASP.NET / HTML / Javascirpt)
  4. Python (AI系のアプリケーション)
  5. Swift, Java, Kotlin : スマートフォンアプリ

デスクトップアプリケーション、Webアプリケーション、データベースが扱えれば、大抵のプログラムは(ハードウェアの縛りがなければ)作れます。
スマートフォンのアプリは全部ネイティブで作成する方法もありますが、WebViewを配置して大部分をWebアプリケーションとして動作させる実装もあるため、 Webアプリケーションをマスターしてからチャレンジしてみるのもよいかと思います。

楽しさ除外で、しっかり学習したい場合、どんな順番でマスターすればよいか

一例です。

  1. Java : コンソールアプリケーション
  2. C/C++ : コンソールアプリケーション
  3. HTML, CSS, JavaScript : Webページ制作
  4. Python, PHP, (Perl)
  5. SQL (データベース)
  6. Tomcat
  7. C# : Windows アプリケーション
  8. C# : Webアプリケーション (ASP.NET)
  9. Swift, Java, Kotlin : スマートフォンアプリ

基礎をしっかり学ぶほうが良いので、コンソールアプリケーションの作成から始めるのが良いと思います。
以前はC言語からスタートしていましたが、最近はJavaが主流になりつつあるので、Javaから始めるのが無難だと思います。 メモリ管理やポインタの概念も知っておいたほうが良いため、Javaの次はC言語を学習するのもよいと思います。 また、プログラミングの学習と並行して、Webページ制作に必要なHTML、CSS、JavaScriptなどのマークアップ言語もマスターします。 Webページ制作ができるようなったら、Webサーバーで動作するバックエンドプログラムを学習します。汎用的な言語が良いので、以前はPerlを学習するのが一般的でしたが、 最近はPHPやPythonを学習するほうが良いかと思います。
Tomcatはエンタープライズ用途のためあまり使われない印象ですが、サーブレットの知識は知っていたほうが良いと思いますので、こちらも簡単に学習しておいてもよいかと思います。
フレームワーク系は流行り廃りが激しいため、新しいものに飛びつかないほうが良いです。

また、Visual Studioを利用してC#やVBなどのビジュアル プログラミングに染まってしまうとJavaやC/C++の生産性が低すぎて、あほらしく思えてくるので、後回しにしたほうが良いです。

AuthorPortraitAlt
著者
iPentec Document 編集部
iPentec Document 編集部です。
快適な生活のための情報、価値のある体験やレビューを提供します。
作成日: 2020-06-28
Copyright © 1995–2025 iPentec all rights reserverd.