プログラミング言語を習得するうえで目的が明確でないのは最大の時間的ロスとなります。
非常に大切なことですのでJavaを習得する目的を時間をかけてじっくり考えましょう。
Java未経験者に必要な学習時間はどれくらい?
Java言語の習得に向けて期限を決めましょう。
期限を決めた上で期限内に習得するための効率的な学習方法を選択していきましょう。
期限を決めずに何となく学習し「いつか習得出来るだろう」という姿勢は効率的とは言えません。
プログラミング未経験者がJavaを習得できる目安時間
プログラミング未経験者がJavaを習得するには、個人差はありますがだいたい450~550時間で習得可能。
Java言語はプログラミング未経験者にとって比較的難易度が高い言語だといえます。
その為「絶対習得してやる」という強いやる気を持つことが非常に重要。
やる気がなければ、正直中途半端に終ってしまうため、本気の覚悟で挑みましょう。
プログラミング経験がある人がJavaを習得できる目安時間
プログラミング言語の種類にもよりますが、オブジェクト指向というJava言語の肝を理解している場合は数十時間で習得出来ると言われています。
しかしJava言語の対極の性質にあると言われているC言語の場合50時間~100時間で一通りマスターできるそう。
これを見ると、javaは基礎ができていれば比較的かんたんに見えますが、簡単というよりはわかりやすい構造の言語ということです。
Javaを採用している有名企業
Java言語はその利便性から世界一のシェアを誇っています。あの「YouTube」「Twitter」もJavaを採用している企業です。
Java言語の概念を理解できなくても処理を覚える
Java言語を理解するためにはオブジェクト指向という概念を理解しなければなりません。しかし、人によって理解できるスピードが違います。
その為オブジェクト指向が理解できなくても直ぐに諦めるのではなく処理の全体の流れを理解すること、結果から逆算することで未経験者でもJava言語の概念を少しずつ理解できる場合があります。
タイピング能力を上げる
プログラミングの勉強のスピードはタイピング能力に比例します。Java言語の習得は他のプログラミング言語に比べて難易度が高いと言われています。未経験者ならなおさらです。
どの道、開発現場でプログラミングをするということ考えれば勉強するときはまず、自身でプログラムを書き実行確認する習慣をつけましょう。
参考書などを見ながらサンプルコードを出来るだけ打ち込みましょう。タイピングスピードが上がると勉強のスピードも必ず上がります。
Javaの基礎を学ぶ
Java開発の流れとしては
コーディング
コンパイル
実行
という流れです。
プログラム実行の流れ
コーディングとはJava言語で決められたルールに従って、プログラムを記述することです。
コンパイルとはJava独自の開発環境で提供されているJavacコマンド(コンパイラ)を使用してコーディングしたものをWindowsやMac等のOSにたいして翻訳する作業です。
コンパイルで作られたファイルをもとにプログラムを実行します。
Javaが他の言語と違うところ
Javaは「Write Once, Run Anywhere」(一度書けばどこでも動く)言語です。これは多くのプログラミング言語には無い特徴です。
JavaはOSに「依存しない」と言うことが出来ます。
コンパイル後のファイルは実行ファイルではなく中間ファイル(実行可能なファイル)です。OSにインストールされたJVMがOSの違いを解釈し実行されます。そのことにより「一度書けばどこでも動く」ことを実現しています。
こういったJavaの特徴を理解することで言語習得のスピードも上がります。
Javaの基本構造
Javaのソースファイル内には一つ以上のクラスの宣言が必要です。そのクラスの中に実行したいコードを書きます。
メソッドというjava特有の理論を使用して、データ処理を実行するブロックをクラス内に書き込みます。
Java未経験者が最初に覚えるべきメソッド
main()メソッドはJavaアプリケーションの特別なメソッドで記述は、
public static vodi main(String[] args) {処理文}
と決まっており数万行のプログラムであっても必ずmain()メソッドから実行されます。
mainメソッドの間違えやすい例
Java言語の特徴として大文字・小文字・小数点などの指定が多く、間違えるとエラーとなります。
public static void main(string[] args) {}
はString[]がstring[]となっているのでコンパイルエラーとなります。
オブジェクト指向を学ぶ
Java言語を習得するにあたりオブジェクト指向を理解することは必須です。とは言いつつも近年の開発現場では、様々なソフトウェアやツールを利用しコーディングを行うことため未経験者でもコードが書けてしまいます。
しかし、それによりミスを埋め込んでしまった場合それに気づけないという危険性があります。
原理原則をしっかりと理解し知識を積み上げていくことで、ミス・無駄のないソースコードを書けるようになります。
オブジェクト指向の必要性を知りたい
Java言語は様々なデータやその集合体を組み合わせて動く言語ですが、それぞれを独立させることで開発の効率化を可能にしています。
つまりデータの集合体に他の集合体からのアクセスを許可するか、させないかを指定出来ます。
プログラミング開発はプロジェクトにもよりますが、基本的には大人数で開発します。
分担作業をしていく中でAさんの担当箇所でミスをすると、Bさんの担当箇所にも影響が出てしまう。こういう関係をお互いに「依存」していると言います。これは開発する上で非常に手間で非効率的です。
オブジェクト指向では、お互いに「独立」させAさんの担当箇所でミスがあってもAさんの担当箇所だけを修正すればケアできるようにAさんの部屋を作るいわば鍵のような役割するコードが存在します。
その為修復・追加・変更等の作業を効率よく実行することが出来ます。
これがJava言語の概念の大まかな説明であり、世界中の開発現場からJava言語が求められている理由です。
アクセス修飾子とカプセル化
アクセス修飾子はデータの集合体を独立させると共にアクセスの制限をかける役割を果たします。
public
protected
private
デフォルト(指定なし)
これがアクセス修飾子と言われるものですが、これを利用することで、それぞれのデータの公開範囲を制限します。こうすることで、むやみやたらにデータにアクセスされるのを防ぎます。これをカプセル化と言います。
オブジェクト指向の大きな要素の一つであるカプセル化「データの隠蔽」を理解することでJava言語習得のスピードも上がります。
パソコンと向かいあっているとどうしても堅苦しく考えてしまいますが、自分の身の回りのものに当てはめることも出来るのがオブジェクト指向の素晴らしい所です。会社の部署や部活動など身の回りの集合体に置き換えて考えるのも効率的な学習でしょう。
Java言語に行き詰った未経験者の息抜き勉強法
Java言語は習得までに覚える量が多く未経験から習得するまでスムーズに行かないことも多くあると思います。
行き詰ったり、やる気がなくなってしまった時には周りの力を借りるべきです。
周りの力というのはプログラミングスクールなど費用が掛かるものだけでなく無料動画サイトなどにアップされた動画などを見て実際にプログラミングからアプリ完成までの流れを視覚的に刺激を与えるだけでもやる気が出てくることがあります。
まさにJava言語を利用している「YouTube」には、プロのエンジニアがJava言語を使ったテトリスやロールプレイングのゲームなどを実況付きで解説してくれている動画も多々あります。未経験者がプロのスピードに追い付くのは大変難しいですが、全部は真似できなくても部分的だけでも真似してみると面白いと思います。
例えばテトリスを完成させるのは無理ですが外枠だけなら作れると思います。動画を一時停止したりしてゲームの一部分でも作ることで「自分にも出来るんだ」と自身にもなり開発をより身近なものとして捉えられるようになります。
Java言語のOSに依存しないという特性により誰の実況であろうと、どこでもいつでも無料で解説を聞くことが出来ます。
これもJavaならではの勉強法だと思うので、最大限利用してみましょう。
]]>