「プログラマーになりたいです!どのプログラミング言語から始めたら良いですか?」
このような質問をされるプログラマーになりたいと思っている方が多いのですが、多くのプログラマーやエンジニアの方は、「どの言語から始めるのでも良い」と答える人が多いです。
私も長くプログラミングをエンジニアとして行ってきて、実際にはプログラミング技術よりも、
- いかに正確なものであるか
- いかに動作が軽快であるか
- いかに早く完成させられるか
といった事を考える方が重要であると思っている為、どの言語を選んだとしてもそれがあなたが完成させたいシステムにとって最適であれば何でも良いと思っております。
しかし、それでもプログラマーとしての第一歩を踏み出そうと考えている人にとっては、意外とこのプログラミング言語選びが障壁となって先に進めないでいるのでは無いかと思っていますので、敢えてこのプログラミング言語から始めるべきというのを答えるとすると、
「Java言語」
と答えたいと思います。
そして、その理由と簡単なJava言語学習の始め方について解説していきます。
私がJava言語学習を薦める理由
Java言語を始めの第一歩としたら良い理由は以下のようなものになります。
- Java言語の構文に似た別のプログラミング言語が多い
- 書籍や学習サイトが多い
- 開発環境が基本無料
- 案件数が多い
- 様々な業種に対応しやすい
Java言語の構文に似た別のプログラミング言語が多い
Java言語を学習しておくとJavaに似たプログラミング言語が多い為、他のプログラミング言語を使用する時に、比較的学習コストが低く取得できるようになります。
Javaに似た構文のプログラミング言語としては、C・C++・C#やPHP等が似ていると思います。
又、構文が少し変化しますがKotlin等も比較的扱いやすくなると思います。
書籍や学習サイトが多い
20年以上の歴史のあるプログラミング言語であるため、たくさんの書籍が出ています。
最初の第一歩であれば、初心者向けのJava教本であれば何でも参考書になると思います。
新刊じゃなく、古本でも最初の第一歩であれば問題ありません。まずは始める事が大事です。
ある程度学習が進んで、作りたいプログラムがイメージ出来たら、最新の知識を得ていけば良いのです。
又、インターネット上にJavaの初心者向けのサイトが山のようにあります。
こちらもどのサイトで学習を始めても問題ありません。
読みやすそうなサイトをみつけて、まずは覚えるためにやるのでなく、雰囲気をつかむ程度で十分なので、コードを真似して書いて実行してみましょう。
開発環境が基本無料
Javaの開発環境のJDK(Java Development kit)は基本的に無料です。
2019年にJavaの開発元のオラクル社にてJava言語の商用ライセンスを有償化する事になりましたが、個人利用においては引き続き無償で使用できます。
又、オープンソース版のOpenJDKを利用すれば商用でもGPLライセンスに基づいて無償での利用が可能です。
長期サポートバージョンのjava8を利用したい場合、オラクル社のOpenJDKの場合Windows版では32ビット版のOpenJDKしかダウンロードできないようです。但し、OpenJDKは別のディストリビューションで64ビット版が提供されている場合があります。
例)RedHat OepnJDKやAdoptOpenJDKなど。
開発を行う為のIDE(総合開発環境)についても、定番のeclipseであれば無償で利用が可能です。
eclipseのダウンロード先(www.eclipse.org)
尚、eclipseは英語のソフトなのですが日本語化も可能です。
日本語化プラグインのダウンロード先(mergedoc.osdn.jp)
上記の日本語化のプラグインダウンロードサイトで日本語化プラグインをダウンロードするか、eclipseやプラグイン・eclipseを動作させるためのJDKを別途ダウンロードするのが面倒であればAll in Oneモデルを上記サイトでダウンロードすれば良いでしょう。
All in Oneモデルであれば、JDKのバージョンを気にしないのであれば、JDKやeclipseの英語版をダウンロードしなくても、これ1つでいきなりJavaの開発を始める事ができるようになります。
案件数が多い
2019年度のJavaプログラミング言語の案件数は全体の約35%で第一位です。
※レバテックエンジニアの正社員求人数より抜粋。
又、同年度のJavaプログラミング言語のフリーランス案件数でも約30%でやはり第一位。
※レバテックフリーランスより抜粋
プログラマーになりたいと思っている人は、プログラマーとしてどこかの会社に就職するかフリーランスエンジニアとして活躍したいと考えている人が多いと思いますが、求人数や案件数が1位ということは、それだけ就職や案件を手にするチャンスが近いという事になります。
そして、2位の正社員求人数とフリーランス案件数も同じでPHPでした。
Javaの構文に似た言語のPHPも扱えるようになっていれば、それだけで全体の4割以上の求人・案件数にチャレンジする事が可能なのです。
様々な業種に対応しやすい
Java言語の特徴として、WindowsやMac等のデスクトップで動作するアプリーケーションの開発から、TwitterやFacebook等のSNSサービスやECサイトのようなWeb開発・Android OS等スマートフォン向けの開発言語に対応している為、様々な業種に対応しやすいです。
類似言語のPHPもWeb開発に強いですし、C#であればゲームエンジンのUnityで利用可能ですので、やりたい業種の開発を色々なものから選択しやすいのです。
ゼロから始める基本的なJava言語学習方法
Java言語をプログラマーになるための第一歩として選んだ人向けに学習方法について解説していきます。
開発環境を整える
まずは、開発環境を整えるのが最初にやる事です。
Java言語学習でも解説した通り、開発環境は基本無料でJDKやeclipseが必要となるのですが、最初はAll in Oneモデルをダウンロードしましょう。
Pleiades All in Oneの2020の場合、上記1つでJavaの開発環境の準備は終わりです。
eclipse本体とJDK等が含まれている為、1.7GB位のファイルをダウンロードする事になります。
お使いの通信環境によっては時間がかかりますので気長に待ちましょう。
ダウンロードしたzipファイルを解凍してディレクトリを適当な場所に配置します。
解凍時にwindows標準付属のzipソフトで回答すると、パスの長さ260文字制限により正しく解凍が行われません。
Pleiadesでは7-zipで解凍を推奨しているようですが、パスの長さ制限に影響の無いソフトであれば何でも大丈夫です。
プロジェクトの作成からプログラムコードを書くファイル作成まで
選んだ書籍やプログラミングのサイトでは、いきなりJava言語のコードの書き方から解説が始まって、実際にどこにプログラムを書くファイルを配置して、どうやってビルドしたり実行するのかが書かれていない可能性があるので、そのやり方まで解説しておきます。
eclipseの起動については、pleideas/eclipseの中にある「eclipse.exe」ではなく、「eclipse.exe -clean.cmd」というwindowsコマンドスクリプトの方で起動しましょう。
これは、eclipseに色々なプラグインを入れたりした際に起動しなくなる事があるのですが、cleanコマンドを付けて起動する事でその問題を解決する事ができる可能性があるためです。
eclipseが起動したらJavaプロジェクトの作成を選んで、名前をつけて完了を押せばプロジェクトの作成が完了します。
但し、java9以降ではmodule-info.javaの作成をするか聞かれますが、古いJavaの書籍やウェブサイトを見ながらの学習で戸惑わない為にも最初は作成しないを選んでおいた方が良いと思います。
ここまでで、何もファイルの入っていない空のプロジェクトができました。
srcディレクトリにプログラムコードを記述するためのファイルを作成していきます。
srcディレクトリを右クリックし、「新規(W)」>「クラス」を選んで、Java クラスの作成を行います。
Javaのクラスについては、学習していくうちにオブジェクト指向やクラスについて学ぶ機会が必ず訪れると思いますが、最初は最小単位でプログラムコードを書くためのJavaファイルを作成するためのものとだけ解釈しておけば問題ありません。
名前だけつけて完了をクリックすれば、プログラムコードを書くためのファイルが作成されて、プログラミングを開始できるようになったはずです。
画像の例では、HelloWorld.javaというファイルがsrcディレクトリに作られます。
プログラムのビルドと実行方法
ある程度コーディングが進みプログラムを実行するためには、まずビルドを行う必要があります。
ビルドを行うと、JavaコンパイラにJavaのコードをコンパイルさせてプログラムを実行できるようになります。
プロジェクトメニューの「自動的にビルド」にチェックが入っていれば自動でビルドが行われますが、明示的にビルドを行う場合はチェックを外して「クリーン」を選択すると、クリーンを行った後ビルドが実施されます。
大きなプログラムになってくると、自動的にビルドをすると常にビルドが行わている状態になりeclipseの動作が重くなることがあるので、自動的にビルドしないようにしておいた方が良くなる事があるのです。
プロジェクトが選択されている状態で、実行メニューの中から「実行」>「Java アプリケーション」を選択すると実行が行われます。
プログラムにエラーが無い状態だとプログラムが正しく実行されます。
コンソールにプログラムの処理内容を出力するようなプログラムであれば、コンソールタブ内に実行結果が出力されていると思います。
このプロジェクト作成から、プログラムのビルドと実行までの流れを覚えておけば、どのような学習サイトのプログラムコードでも実行できるようになると思います。
プログラミング学習の進め方
Java言語に限らず、どのプログラミング言語でも言える事なのですが、まずは環境を作って実際にコードを真似でいいので書いてみて始める事が重要です。
とにかく、ひたすら入門書籍や入門サイトを見ながらコードを書いていくことになると思うのですが、何度も繰り返し同じようなコードを書いて暗記するような事をするのは、逆に一人前のプログラマーになるまでに遠回りとなってしまいます。
又、深堀して細かい事まで覚えようとしない方が、良いでしょう。
- 最低限の変数の型と扱い方を学ぶ(int / double / boolean / String)
- 最低限の条件分岐とループ制御を学ぶ(if文 / for文 / while文)
- 最低限の演算を学ぶ(四則演算 / 比較演算 / 論理演算)
- 最低限の配列の扱い方を学ぶ(配列の初期化と要素の追加・要素のアクセス方法)
上記を最低限扱えるようになると、ちょっとしたプログラムなら書けるようになると思います。
変数の型でいえば、「byte」や「char」や「short」や「long」や「float」等他にもありますし、
ループで言えば「do-while」などがあったり、
演算でいえば「シフト演算」「三項演算」などがあります。
でも、最初からそこまで学習してしまわなくても使用頻度が低かったり、イメージが湧きにくくて学習に行き詰まる可能性があるので慣れてきてからで問題無いですし、慣れてからも必要に応じて調べて使うという事で問題ありません。
そして、Java言語ならではの
- 最低限のクラスの扱い方とオブジェクト指向について学ぶ
- 最低限の例外処理を学ぶ
ここまで進めてしまえば、あとは作りたいプログラムを書けるようになるために
java 〇〇の方法
等と検索して、そのやり方を見て扱えるようになれば良いと思います。
例)
- java ファイルの読み書き
- java コンソール入力
- java ウィンドウアプリ
最低限のJavaの構文がわかっていれば、後はJavaで実現したい目的を検索して、それの書き方を真似して書いていくのが手っ取り早いのです。
又、どうしても作りたいプログラムが思いつかないということであれば、
java プログラム サンプル
等でWeb検索してみて、気になるプログラムを読み取って書き方を真似してみる事も一つの手です。
サンプルプログラムが読んでもわからないようなものだった場合は、あなたが知らないライブラリを使っていたり、あなたが覚えていない記述方法を使っていたりするだけなので、それを再び覚えようとするのではなく都度調べて、その場では扱えるようになれば良いです。
そしてこれが、プログラミング学習で最重要な事なのです。
大事な事なのでもう一度言いますが、「都度調べて、その瞬間では扱えるようになる」という能力が一人前のプログラマーになる為には最重要要素となります。
その瞬間では扱えるようになればいいので、すぐに忘れてしまっても問題ありません。
忘れてしまったら、また調べれば良いだけなのです。
なので、Javaの言語構造やライブラリを隅から隅まで暗記するのが重要なのではなく、Javaで実現したい事を、わからない事はすぐに調べられる能力を身につけるといった事の方が大事だという事を念頭において学習を進めていってください。