本ページは、プロモーションを含んでいます。
プログラミングを独学で勉強するためには、まずパソコン環境を整える必要があります。
例えば、Androidアプリを作成したいなら、OSはWindowsやLinuxを準備し、iPhoneアプリを作成したいなら、MacOSを準備する必要があります。
また、単にプログラミングと言っても、
・何をやりたいのか? もしくは何を作りたいのか?
・やりたいことをを実現するためのプログラム言語は何が使用されているのか?
を自分の中で目標や目的を明確しておく必要があります。
そして、プログラミングで使用されている言語には、
C、C++、Java、JavaScript、Python、PHPなどいろいろあります。
これらのプログラムを勉強するには、Windowsパソコンでも可能ですが、勉強だけでなく就職や転職も考えているなら、やはりLinuxを使用することをおすすめします。
何故なら、Linuxを触った経験があるだけで、かなり有利になる場合があるからです。
また、携帯電話やそのアプリ、カーナビなど、様々なものにLinuxやAndroidが使用されているので、それだけ需要があります。
私の経験で、上位アプリや組み込み開発など様々なソフトウェア開発を約10年以上していましたが、
開発環境としてWindowsパソコンから、SSHやVNCなどのリモートでLinuxパソコンに接続して、Linuxパソコン上でプログラミングを行っていることがほとんどでした。
なので、どの会社でもLinuxを扱うことが必然となっていると思います。
ただし、iPhoneアプリ開発などMac系の仕事や勉強をしたいなら、LinuxパソコンではなくMacOSパソコンが必要で、プログラミング言語もXCodeやSwiftなどのプログラム言語になります。
MacOSやiOSは、LinuxやAndroidと異なりOSが異なりますので、Mac系のプログラミングについては、また別の機会にしたいと思います。
ここでは、C、C++、Java、Pythonのプログラムを独学で勉強したい方へ、
プログラミングを行うための前準備として、Linuxパソコンを準備する手順を書いていきたいと思います。
- Linuxとは?
- Linuxで何ができるのか?
- Linuxパソコンの準備
- 3.1.デスクトップパソコンを使用する場合
- 3.1.1.デスクトップパソコンのスペックについて
- 3.1.2.Linuxの種類と入手方法
- 3.1.3.Linuxのインストール
- 3.1.4.Linuxの起動確認
- 3.2.RaspberryPi(ラズパイ)を使用する場合
- 3.1.デスクトップパソコンを使用する場合
- 簡単なプログラム作成と実行確認
- WindowsからLinuxを遠隔操作する手順
- 最後に
1.Linuxとは?
Linuxとは、WindowsやiOS、AndroidといったようなOS(オペレーティングシステム)の種類の1つで、ソフトウェア開発では、よく使用されています。
Linuxの種類には、Ubuntu、FedoraCore、CentOSなど様々あります。
これらLinuxは、フリーソフトウェアなので、誰でも無料で使用することができますので便利ですが、
Linuxが搭載されているパソコンは、あまり家電量販店やAmazonで販売していません。
( Linuxサーバーマシンとしてはありますが、あまり汎用性がありません。)
なので、自分でパソコンを用意して、Linuxをインストールする必要があります。
未経験からプログラミングを始めようとする方にとっては最初のハードルになります。
また、Linuxは、プログラミング以外にも、SambaやApacheなどサーバー構築の勉強にも役立ちます。
2.Linuxで何ができるのか
Linuxパソコン準備手順の前に、Linuxで何ができるのか簡単に箇条書きにしてみますと、
・プログラム(C、C++、Java、PHP、Swiftなど)のコンパイル/実行ができる。
・AndroidStudioを使用してAndroidアプリが作成できる。
・サーバーの構築ができる。(Samba、Apacheなど)
・画像編集や音楽再生などメディア関連操作はWindowsとほぼ同じようにできる。
などがあります。
ここでは、プログラミングのためのLinuxパソコン準備ということで、
Linux本体の準備からプログラムのコンパイル/実行確認までを説明していきます。
3.Linuxパソコンの準備
まずは、Linuxを使用するためのパソコンを準備する必要がありますが、下記の2通りの方法があります。
1.デスクトップパソコンを使用する方法
2.RaspberryPi(ラズベリーパイ)を使用する方法
どのようなプログラミングをしたいかによって、準備した方が良いパソコンのスペックが変わりますので、
上記の方法で、どのようなプログラミングができるのかも含めて説明していきます。
3.1. デスクトップパソコンを使用する場合
Android向けアプリをプログラミングしたいのであれば、確実にデスクトップパソコンの方が良いです。
理由は、Androidアプリ開発で必要なAndroidStudioがRaspberryPiのスペックでは動作できないからです。
そうでなくても、やはりラップトップ(ノート)パソコンよりもデスクトップパソコンの方がコンパイル時間が早いので、Linuxを使用するならデスクトップパソコンを使用することをおすすめします。
3.1.1. デスクトップパソコンのスペックについて
そして、Ubuntuが推奨している動作スペックが、Ubuntuのサイトにあり、
具体的には、
・2 GHzデュアルコアプロセッサ以上
・4 GBシステムメモリ
・25 GBのハードドライブ空き容量
・DVDドライブまたはUSBポート(インストールメディアとして使用)
・インターネットアクセス(推奨)
です。
上記を踏まえて、デスクトップパソコンのスペックの私のおすすめとしては、
・CPUは、Core i5以上ある方が良い。
・メモリは、4G以上ある方が良い。
・HDD(ハードディスクドライブ)の容量は1TB以上あると良い。
です。
デスクトップパソコンが良い理由は、
・プログラムをコンパイルする時間が、同スペックのラップトップパソコンよりデスクトップパソコンの方が早い。
・Linuxをインストールする際にモニタの相性を考慮しなくて良い。
です。
昔は、ラップトップパソコンにLinuxをインストールする時にモニタとの相性で、画面が表示できないことが良くありました。
最近は、もうそのようなことは無いかもしれませんが、できればデスクトップパソコンの方が良いです。
そしてデスクトップパソコンのCPUやメモリは、コンパイルする時間やパフォーマンスなどに影響しますので、できれば性能が高いものを選ぶと良いです。
またWindowsとのデュアルブートはせずに、Linux専用にする方が良いです。
デュアルブートにするとWindowsが入ってるHDDのパーティションを調整するのが面倒ですし、WindowsとLinuxを同時に使用することができません。
WindowsとLinuxを別々のパソコンにして、WindowsからLinuxにリモート接続するのが便利です。
Linux専用パソコンは、中古パソコンで十分で、
私の場合は、Amazonで中古のOS無しの本体のみデスクトップパソコンとHDD 1TBを購入して、
Ubuntuをインストールして、Linux専用パソコンとして使用しています。
ただ、Amazonでもあまり、OS無しのパソコンはありませんので、
下表のような中古パソコンサイトで探してみるのもありです。
サイト名 | OS無しパソコンのリンク場所など |
---|---|
ジャンクワールド |
左側のメニューの少し下の方に「OS無しデスクトップPC」のリンクがあり、スペック検索で好みのPCを探すことができます。 Amazonには数少ないOS無しデスクトップPCが、数多くありおすすめです。(会員登録なしで購入することができます。) |
パソコンディスプレイについては、既にWindowsパソコンを持っていると思いますので、
LInuxをインストールする時だけ、Windowsパソコンのディスプレイを使用します。
そしてインストール完了後は、WindowsからTeraTermで、Linux専用パソコンにアクセスすることで、
Linux専用パソコンのディスプレイは、基本的に無くてもプログラミングすることができます。
WindowsからTeraTermでLinuxにアクセスする手順は、後述にもありますが、
SSHの設定手順(Ubuntu18.04)とWindowsからのアクセス確認手順 - 水瓶座列車
にアクセス手順を書いていますので、参考にしてみてください。
3.1.2. Linuxの種類と準備
デスクトップパソコンの準備ができましたら、Linuxのソフトウェア媒体を準備します。
Linuxには、Ubuntu、FedoraCore(昔のRedHat)、CentOSなど様々なディストリビューションがあります。
どれを使用するかは、個人の好みによりますが、私が使用しているのはUbuntuで、
このブログのLinux関連の記事は、全てUbuntu上でやっています。
ここでは、私も使用しているUbuntuを準備します。
Ubuntuをインストールするためには、インストールDVDを準備する必要があります。
準備といっても方法が2通りあり、
・書店で売っているLinux書籍に付属しているインストールDVDを使用する。
・自分でインストールDVDを作成する。
があります。
書籍を購入する場合は、近くの書店で購入するか下記のようにAmazonなどで購入できます。
インストールDVDは、紙書籍にのみ付属しており、電子書籍版には付属していませんので注意してください。
自分で作成する場合は、
Ubuntu Desktop 日本語 Remixのダウンロード | Ubuntu Japanese Team
のダウンロードサイトから、isoイメージを取得して、そのisoイメージをDVDに焼くことで、UbuntuのインストールDVDを作成することができます。
isoイメージは、現時点での最新バージョンを取得すると良いです。
また、ダウンロードする際に、 「xxxx...isoは安全にダウンロードできません」と警告がでますが、
気にせずに保存ボタンを押してダウンロードします。ちなみに、isoイメージサイズは、約2.6GBあります。
3.1.3. Linuxのインストール
インストールDVDが準備できたら、準備しておいたパソコンにディスプレイとキーボード、マウスを接続して、
電源を入れて、そのインストールDVDを入れると、Ubuntuのインストールが始まります。
ここでは、Ubuntuのインストール手順を省略しますが、インストール手順は、UbuntuのサイトやUbuntuのDVDが付属している書籍に、記載がありますので参考にしてみてください。
3.1.4. Linuxの起動
Ubuntuのインストールが完了してログインすると、このような画面になります。
この画面からプログラムを作成するためには、まずターミナルを起動します。
ターミナルの起動手順は、この画面から右クリックするとWindowsのようなウィンドウが出ますので、
その中から「ターミナル」を選択します。
ターミナルの選択後、 下記のようなウィンドウが表示されます。
プログラミングは、この状態から始めることができます。
プログラミングで使用するエディタやプログラムの動作確認は、後の「4.プログラムの動作確認」で書いています。
3.2. RaspberryPiを使用する場合
Raspberry Pi(ラズベリーパイ)とは、下の画像の緑色のボードで大きさは、
右側の100円ショップで購入したSDカード入れより少し小さいぐらいのパソコンです。
突然、Raspberry Piって言われても良くわからないと思いますが、
Raspberry Pi に搭載されているOSは、LinuxをベースにしたRaspberry Pi OS というOSで、
主に組み込み開発で行われているデバイスドライバ開発やハード制御の勉強に最適なパソコンです。
そして他にも、Raspberry PiをWeb(Apache)サーバーなどサーバー機にしたり、Linux同様にサーバーの勉強もできます。
また、Raspberry Piは上記画像を見てもわかるように場所を取らず、
価格は必要なものを揃えても2万円程度とデスクトップパソコンよりも低価格です。
Raspberry Piを使用する場合は、始めからRaspberry Pi OSがインストールされているものを購入すれば、
電源ONするだけですぐにプログラミングを始めることができます。
もしプリインストールされていないSDカードを使用したい場合には、
本ブログのRaspbianOSをインストールする手順に書いていますので、参考にしてみてください。
Raspberry Piは、Amazonや楽天で購入することが可能で、以下のような一式揃っているものがおすすめです。
このセットでは、あらかじめOSがSDカードにインストールされているので、
先ほど言いました通り、購入後電源を入れるだけで、後述の「4.プログラムの動作確認」で説明している、
コンパイラの確認やインストールを自分で実施する必要がなく、すぐにプログラミングすることができます。
ただ、購入後はRaspberry Pi OSのモジュールを最新にするために、
$ sudo apt-get update
$ sudo apt-get upgrade
を最初に行ってください。
また、
WindowsからRaspberryPiにリモートアクセスする手順、
RaspberryPiでのLEDの点灯・消灯・点滅のやり方、
RaspberryPiで赤外線データを受信してLEDを点灯する手順、
RaspberryPiでI2CキャラクタLCD(1602) の動作確認、
など、
Raspberry Piに関連している手順などを書いていますので、
参考にして頂ければRaspberryPiの操作イメージが見えてくると思います。
ただし、Raspberry PiにAndroidStudioをインストールすることが困難でしたので、
Androidアプリ開発をしたいならデスクトップパソコンを準備してください。
4.プログラムの動作確認
4.1. デスクトップパソコンでの確認
Linux(Ubuntu)のパソコンの準備ができましたら、次にプログラミング環境について確認していきます。
まずプログラミングを始めるにあたって、ファイルの拡張子がそれぞれ下記のように決められています。
・C言語 :ファイル拡張子は、「.c」
・C++ :ファイル拡張子は、「.cpp」
・python :ファイル拡張子は、「.py」
そしてプログラミングに使用するエディタは、ここではviエディタを使用します。
Linuxのviエディタは、自分でインストールする必要が無く、既に使用できる状態になっています。
また、viエディタの操作については、
私がviエディタを好きになった理由とその使い方に記載していますので、参考にしてみてください。
以下からは、viエディタを使用する前提で説明していきます。
C言語プログラムの動作確認
LinuxのUbuntuで、C言語のコンパイルができるかどうか下記で確認します。
$ gcc -v
で、gcc のバージョン情報が出力されれば、コンパイルできます。
もし「Command "gcc" not found, ・・」が出力された場合コマンドが無いので下記でgccをインストールします。
$ sudo apt install -y build-essential
そして、ターミナルからC言語のプログラミングを始めるには、
$ vi sample.c
を入力してエンターキーを押すとsample.cとしてファイルを開きます。
まずは、「Hello C World」と表示するプログラムを作成し、コンパイル、実行してみます。
#include <stdio.h>
main(){
printf("Hello C World\n");
}
viエディタの入力モードにして、sample.cに上記のプログラムを書いた後、ファイルを保存して閉じます。
保存後、このファイルを実行できるようにコンパイルします。
$ gcc sample.c
を実行すると、コンパイルが始まりエラーが無ければsample.cと同じフォルダにa.outという実行ファイルが生成されます。
実行の仕方は、下記のようにします。
$ ./a.out
実行後、標準出力で「Hellow C World」が表示されます。標準出力とは、ターミナル上に出力されることを言います。
main()は、C言語で一番最初に実行される関数で、全てのプログラム処理は、ここから始まります。
printf()は、文字を標準出力する関数で、プログラムのデバッグや動作確認などでよく使用されます。
C++プログラムの動作確認
C++のコンパイルは、C言語のコンパイルができていれば、既にコンパイル環境が整っていることになります。
ターミナルからC++のプログラミングを始めるには、
$ vi sample.cpp
で、viエディタを起動します。
そして、C++はオブジェクト指向言語なので、クラスを使用した「Hello C++ World」を表示させる下記プログラムを書いて、ファイルを保存します。
#include <iostream.h>
using namespace std;
class Programing {
public:
print();
};
Programing::Programing(){};
Programing::~Programing(){};
void Programing::print(){
printf("Hello C++ World\n");
}
main() {
Programing *programing = new Programing();
programing->print();
}
$ g++ sample.cpp
コンパイル後、エラーが無ければ、C言語と同様に、a.outが生成されます。
C言語と同様にa.outを実行すると、「Hello C++ World」が標準出力で表示されます。
C++のプログラムもmain()から始まりますが、C言語と異なるのは、ここからクラスオブジェクトを生成してプログラミングしていくことになります。
また、C++のファイル内で、C言語も使用することができます。
Pythonプログラムの動作確認
Pythonがプログラミングできるかどうか、下記で確認します。
$ python3 --version
Ubuntuのインストールをするとデフォルトで使用できる状態になっています。
ターミナルからPythonのプログラミングを始めるには、
$ vi sample.py
で、viエディタを起動し、下記を書いて、ファイルを保存します。
print("Hello Python World");
コンパイルは必要なく、ファイル名を引数にして実行します。
$ python3 sample.py
構文が簡単なのでプログラミング未経験者には、始めやすい言語です。
Javaプログラムの動作確認
Javaがコンパイルできるかどうか、下記のコマンドで確認します。
$ javac -version
もし「Command 'javac' not found、・・・」が出力されたらJavaのJDKを下記でインストールします。
$ sudo apt install -y openjdk-11-jdk
インストール後、再度「$ javac -version」で確認してjavaのバージョンが表示されることを確認します。
更に、一応コンパイルしたJavaの実行形式ファイルを実行できるかどうか、下記のコマンドで確認します。
$ java -version
ここでも、バージョンが表示されれば完了です。
ターミナルからJavaのプログラミングを始めるには、
$ vi Sample.java
で、viエディタを起動し、下記を書いて、ファイルを保存します。
public class Sample { public static void main(String[] args) { System.out.println("Hello Java World!!"); } }
コンパイルは、下記のようにします。
$javac Sample.java
Javaのコンパイルでは、ファイル名とクラス名が一致していないと、コンパイルエラーになりますので注意してください。
なので、新しいクラスを作成する毎にファイルも作成する必要があります。
コンパイル後、実行するには、下記のようにします。
$java Sample
実行後、標準出力で「Hello Java World」が表示されます。
4.2. RaspberryPiでの確認
RaspberryPiでは、既にC、C++、Python、Javaのコンパイルができる状態になっていますので、すぐにプログラミングすることができます。
コンパイル/実行のやり方は、デスクトップパソコンの場合と同様です。
余談ですが、注意点として、デスクトップパソコンのLinux上でコンパイルを行った、
CやC++の実行ファイルをRaspberryPiにそのまま移動して実行しても下記のようにエラーになります。
理由は、CPUの種類が異なるからです。
上記画像は、WindowsパソコンからRaspberryPiにTeraTermでリモート接続したものですが、
上の枠は、RaspberryPi上でコンパイル、実行、結果表示ができており、
その実行ファイルの種類をfileコマンドで見てみると、ARM EABI5になっていることがわかります。
下の枠は、RaspberryPi上にLinux(Ubuntu)でコンパイルした実行ファイルa.outをそのまま移動して、実行した結果です。
結果は、実行エラーとなり、実行ファイルの種類を見てみると、Intel製のx86-64となっており、
ARM用ではないので、RaspberryPi上で実行できません。
実際の開発現場では、Linux(Ubuntu)上で他のCPUの実行ファイルを生成することができるクロスコンパイルを行って開発しています。
ARMのクロスコンパイルをしたい場合は、デスクトップパソコンのLinuxに、ARM用のgccをインストールするだけでできます。
Pythonの場合は、CやC++と違ってコンパイルという動作が無いので、
x86とARM間をそのままファイル移動して実行しても問題ありません。
Pythonファイルを実行する時に使用するpythonコマンドがそれぞれのCPU用になっているので、
PythonのプログラムファイルがどのCPU上で作成されたとしても実行することができます。
C、C++もプログラムファイル自体はそのままファイル移動しても問題ありませんが、
ファイル実行については、実行させたいCPU上でコンパイルを行うかクロスコンパイルする必要があります。
Javaの場合も、あるCPU上でコンパイルした実行ファイルをどのCPU上にそのまま移動しても、エラーが出ずにそのまま実行することができます。
5.WindowsからLinuxをリモートアクセスする手順
一通り、C、C++、Python、Javaのプログラミングの準備ができましたが、
日常生活でネットサーフィンをしたり、テレビを見たり、ゲームをしたりパソコンを触るのは、Windowsパソコンがメインになると思います。
わざわざプログラミングをするために、モニター画面をLinuxに切り替えるということが、徐々に面倒になってきます。
そのような時に、WindowsパソコンからリモートでLinuxパソコンにアクセスできれば、画面切り替えの面倒がなくなります。
どうやってアクセスするかというと、SSHを使用してLinuxパソコンにアクセスします。
SSHの設定手順の詳細は、本ブログでデスクトップパソコンの場合とRaspberryPiの場合の各々で、 下記のリンクに記載していますので、参考にしてみてください。
Linuxデスクトップパソコンの場合
SSHの設定手順(Ubuntu18.04)とWindowsからのアクセス確認手順
RaspberryPi(ラズベリーパイ)の場合
簡単にできるWindowsからラズパイ3B+にリモートアクセス(VNC,SSH)する手順
6.最後に
プログラミング未経験の方がプログラミングを独学で行う準備として、まず何から準備すればよいかの手順を、
Linuxのソフトウェアの準備から各言語のコンパイル準備、コンパイル手順、実行手順を1つの記事にまとめてみましたが如何だったでしょうか。
プログラム言語の詳細については、ここでは書ききれませんので、また別の機会に書きたいと思っています。
また、将来組み込み系の開発をしたい方にもRaspberryPi(ラズベリーパイ)を使用することで、
GPIO制御、I2C、UART、SPI、LED制御、LCD制御など、ハードウェアに関連した技術も勉強できると思います。
<関連・おすすめ記事>
Linux勉強用の中古パソコンおすすめショップランキング - 水瓶座列車
HTML/CSSを独学で勉強するための始め方 - 水瓶座列車
Linuxローダブルカーネルモジュールの作り方とアクセス手順 - 水瓶座列車
Bluetoothでマルチペアリング(複数台接続)できるマウスのおすすめランキングベスト5
Bluetoothでマルチペアリング(複数台接続)できるキーボードのおすすめランキングベスト5
画面分割できるパソコンディスプレイのおすすめランキングベスト5
ピボット機能(90度回転)があるパソコンディスプレイのおすすめランキングベスト5 - 水瓶座列車