いのいち勉強日記

Turingで自動運転の開発をしています。京大でPhDをとりました。Kaggle Grandmasterです。

プログラミングの勉強法 〜Java編〜

2回目の記事として私が一番初めに学んだ言語、Javaの紹介をします!

Javaの特徴やどうやって学んだかなどをまとめてみました。

 

結論から言いますと、

Javaを一番初めに学んでよかったと思っています!!!

もしプログラミングを勉強しようと思っていて、

どの言語から始めたらいいかわからない!っていう人は

Javaから始めても後悔しないと思いますよ!!!

 

Javaとはどんな言語?

プログラミング素人の私が1年前、はじめて学習するときに頭に残った印象は、

  • コンパイルが必要
  • どのOSでも動く
  • オブジェクト指向言語
  • 大規模開発で使われている

といったことでした。

さまざまなアプリケーション開発に用いられているので、

Javaを使える人は需要が高いそうです。

さらに、Googleが開発に用いている3大言語のうちの1つ!ということで

なんかかっこいいな!と言う印象を持ったことを覚えています。

 

下の記事でとても詳しく解説されていますので

興味がある方はぜひ読んでみてください。

Javaとは?世界中で利用されるプログラミング言語の人気の理由|発注成功のための知識が身に付く【発注ラウンジ】

 

Javaの勉強に使った本

わたしがJavaの勉強で使った本はとても人気が高いこの本です。

この本が提供しているdokojavaというクラウドの開発環境を使えば

一瞬でプログラムを試せます!

さらに、この本の特徴は直感的な図解だと思います!

図を使って「なぜそうなるのか」という大切な仕組みの部分が説明されているので

ちゃんと理解してコードを書くことができました。

説明を何度も読んで理解して、コードを写経していくと

基礎についてかなり学べると思います!!!

スッキリわかるJava入門 第2版 (スッキリシリーズ)

スッキリわかるJava入門 第2版 (スッキリシリーズ)

 

 

 

「スッキリわかるJava」で学んだプログラミングの基礎

「スッキリわかるJava」を勉強して特に印象に残っていること

この本を読んでよかったと感じたことをまとめました。

はじめてのプログラミング言語というのもあったかもしれませんが

多くの言語で共通に役立つ基礎の部分を学ぶことができました。

  • データの「型」
    変数を設定するときにデータ型を宣言することはとても重要です。
    本の中では箱を使って消費メモリの違いを説明されていて
    直感で理解することができました!
    (Pythonでは型宣言はなしでいけますが、他の言語は基本必要!)

  • 制御構文
    条件分岐ifや繰り返しwhile, forはプログラミングでは必須です!
    これも逐一コードがどの順で実行されていくかが図解されていて
    非常にわかりやすかったです。

  • 配列
    配列は代入したときどこのメモリ使ってるかとかややこしいですが、
    配列のメモリがどのように参照されているかの説明が秀逸でした!!
    早い段階で理解しておくことは重要な気がします!
  • メソッド
    メソッドの使い方はもちろん、引数や戻り値の説明がわかりやすく
    またコード例がとても多かったのでしっかり理解できました。

  • オブジェクト指向
    ここは本当に何度も読みました!オブジェクト指向は理解が難しいものの
    1つだと思うし、はっきりとしたコードの正解はないのかもしれませんが
    この本ではオブジェクト指向の考え方がしっかり書かれていたと思います!
    すごくわかりやすいので今でも読み返すことがよくあります!

 

この後、私は一旦Javaの勉強をやめて

PythonやUnityのためにC#を勉強するようになりました。

しかし、この本でコードが理解できるようになっていましたので

他の言語を学ぶ時の壁はかなり低くなったと感じました!!

 

Javaを使ってできることは?

もちろんプログラミングでできることはほぼなんでもできると思うのですが

Javaがよく使われている代表的な分野は2つあるように感じました。

 

  1. Androidアプリ
    まず一つはAndoroidのアプリはJavaで作ることができます。
    巷でもAndroid x Javaの本は多くありAndroidアプリを作りたいなら
    Javaを学んでみるのがいいかもしれません。
    しかし、最近はKotolinという言語での開発も増えているらしく、
    さらにSwiftでAndroidアプリを作れるようになるとかいう噂もあるので
    実際、開発するときはもう一度よく調べてみてください!

  2. Webアプリケーション
    JavaはどのOSでも動くし大規模開発にも向いてフレームワークも多いから
    Webアプリ開発に向いていると個人的には思っています。
    さらに詳しいことについてはこちらのkodukiさんの記事で
    Javaを使うメリットをわかりやすくまとめてくださっています!

    koduki.hatenablog.com

 

 

以上、Javaについてや私がどうやってJavaを学んだかをまとめてみました。

もし、これからプログラミングを勉強しよう!という方がいましたら

ぜひ参考にして見てください!!

「自分はこんな風に勉強したよ!」とかありましたらぜひ教えてください!