とね日記

理数系ネタ、パソコン、フランス語の話が中心。
量子テレポーテーションや超弦理論の理解を目指して勉強を続けています!

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

2020年07月18日 17時34分25秒 | コンピュータ
スッキリわかるJava入門 第3版 (スッキリシリーズ) 」(Kindle版

内容紹介:
圧倒的人気No.1入門書の増補改訂版!コレクションを追加!基本文法やオブジェクト指向の「なぜ?」が必ずわかる!
シリーズ累計40万部突破!「スッキリわかるJava入門」の特徴は6つ!
「はじめの一歩」からていねいに。
仕組みまでスッキリわかる!
サクッと分かるオブジェクト指向!
中級者にステップアップ!
エラーなんて怖くない!解決のコツを伝授。
インストール不要!いつでも学習できる仮想環境。

2019年11月15日刊行、768ページ。

著者について:
●中山清喬(なかやま・きよたか)
株式会社フレアリンク代表取締役。IBM内の先進技術部隊に所属しシステム構築現場を数多く支援。退職後も研究開発・技術適用支援・教育研修・執筆講演・コンサルティング等を通じ、「技術を味方につける経営」を支援。現役プログラマ。講義スタイルは「ふんわりスパルタ」。

●国本大悟(くにもと・だいご)
文学部・史学科卒。大学では漢文を読みつつ、IT系技術を独学。会社でシステム開発やネットワーク・サーバ構築等に携わった後、フリーランスとして独立する。システムの提案、設計から開発を行う一方、プログラミングやネットワーク等のIT研修に力を入れており、大規模SIerやインフラ系企業での実績多数。


理数系書籍のレビュー記事は本書で441冊目。

プログラミング言語は、科学の数値計算にも使えるから、ざっくり理数系書籍にカウントしておくことにした。

友達がプログラマーになりたいと決断し、学校に通い始めた。学校で指定されたのがこの本である。ときどき質問を受けるので、同じ本を買って読むことにしたわけだ。

700ページ以上あるが、文字がぎっしり詰まっているわけではないし、設定した登場人物の会話で進む箇所が多いため、読みやすい本である。第3版であることから、吟味されつくされた入門書である。

僕はもともとC言語のプログラマーをしていたし、その後ずっとIT業界に身を置いてきたから、すらすらと読める。しかし初心者にとっては、何事も最初は難しく感じることだろう。その点の配慮が十分尽くされた本だと思った。Javaについては、20年ほど前に会社でオブジェクト指向を含めて1週間の研修を受けたことがある。細かいところは忘れていても、読んでいるうちに思い出してくるものだ。

本書は3つの部に分かれている。(章立ては、この記事の最後を参照)

■第I部 ようこそJavaの世界へ
■第II部 すっきり納得オブジェクト指向
■第III部 もっと便利にAPI活用術

拡大


第I部ではJavaの基本的な文法を学ぶ。単元ごとにサンプルプログラムがついているから、自分で実行して確かめることで、理解が深まる。料理人になるための修行に例えれば、料理用語や素材や調味料の名前を覚え、基本的な調理法(切る、剥く、煮る、焼く、揚げる、茹でる)を身に着ける段階だ。

初心者にとって難しいのは、メソッドへの値渡しと参照渡し。変数や配列の理解、変数の型や変換なども、難しいと感じる人がいることだろう。しかし、他の言語を学んだ人であれば、難なく読めると思う。第I部は「積み上げていくように学ぶ」ことになる。

第II部は「オブジェクト指向」をじっくり学ぶ。第I部で扱うサンプルプログラムは、それぞれ独立しているが、第II部では文字ベースのRPGゲームを想定し、登場させるキャラクター(騎士やモンスター)をクラスとして定義し、ゲームの局面でオブジェクト指向の考え方でどのように実装していくかを学ぶ。サンプルプログラムは、ゲームのストーリーに沿ってはいるが、ゲームを作り上げていくわけではない。ページ数が限られているから、作りながら学ぶようには書かれていない。

オブジェクト指向は、最初のうちは理解しにくいものだ。積み上げながら学ぶというより、行きつ戻りつ螺旋階段を上るように学ぶことになる。それを繰り返していくうちに「なんとなくわかった」から「少しわかった気がしてきた」、「たぶんプログラミングできるようになると思う」あたりまで、本書で到達することができると思う。入門書ですべてを説明していても、経験にまさるものはないからだ。

本書には章ごとに練習問題と解答が載せられているが、第II部のオブジェクト指向については、このページ数をもってしても十分学びきれないと感じる部分が残っている。かといってこれ以上分厚くして説明や練習問題を増やすわけにはいかなかったのだろう。

第III部では「API活用術」と題して、標準的なクラスの解説、文字列と日付の扱い、コレクション、例外など、第II部までには収められなかった重要項目を学ぶ。難しくはないが、初心者には覚えるのが大変である。正規表現は第III部で学ぶ。第III部はテーマが盛だくさんなので、あっさり説明している項目が多い。すべてについて例題や練習問題をつけるわけにはいかないのだ。


本書全体を通じてCUIの環境でプログラミングをすることになる。そもそも実務で使うアプリケーションは、GUIの環境での開発が要求される。実際の業務や就活に結び付けるのは、本書を読むだけでは無理である。料理人になるための修行に例えれば、本書で到達できるのは、素材の名前と調理法をひととおり覚え、本格的に料理を作る前の下ごしらえができるようになった段階である。

オブジェクト指向については、実際の仕事では使われることがあるし、使われないこともあるだろう。古いレガシーなシステムを引きずった案件での開発であれば不要だし、ウェブやスマホアプリ、特にゲームアプリであれば使われる頻度が多いと思う。

本書はインストール不要の dokojava というWebベースの実行環境で演習するように書かれている。実際は EclipseVSCode のような統合開発環境を使って演習するほうがよいと思う。特に Eclipse を使うのであれば、日本語化済みの Pleiades がお勧めだ。

Amazonのサイトではサンプルページを見ることができる。本書の難易度や雰囲気、読みやすさは、サンプルページでご確認いただきたい。


本書には続編がある。この図のような順番で学んでいけば、仕事に結び付く知識、スキルを段階的につけていくことができるだろう。

拡大


つまり、本書の次に読むべき本は「実践編」である。

スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ) 」(Kindle版) - 628ページ


さらに学ぶのであれば、次の2冊に進もう。

スッキリわかるSQL入門 第2版 (スッキリシリーズ) 」(Kindle版) - 488ページ
スッキリわかるサーブレット&JSP入門 第2版 (スッキリシリーズ) 」(Kindle版) - 512ページ

「スッキリわかる」シリーズでは、あと2冊刊行されている。C言語のほうは752ページあるが、Pythonのほうは376ページしかないから要注意である。目次を見るとオブジェクト指向の考え方の説明がだいぶ少ないようだ。しかし、Pythonはオブジェクト指向をサポートしている言語であり、同時に全てのデータの型がオブジェクトになっている。この本を読む人は、すでにオブジェクト指向の考え方を理解していることが前提になっているのだと思われる。

拡大


スッキリわかるC言語入門(スッキリシリーズ) 」(Kindle版) - 752ページ
スッキリわかるPython入門 (スッキリシリーズ) 」(Kindle版) - 376ページ


関連記事:

YouTubeで学ぶアプリ・WEBエンジニアへの道
https://blog.goo.ne.jp/ktonegaw/e/9e4c6440250c6971cc30cbaa30bd7e84


メルマガを書いています。(目次一覧


応援クリックをお願いします。
にほんブログ村 科学ブログ 物理学へ 人気ブログランキングへ 

 

 


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


まえがき
dokojavaの使い方
sukkiri.jpについて
本書の見方

第0章 Javaをはじめよう

■第I部 ようこそJavaの世界へ
第1章 プログラムの書き方
第2章 式と演算子
第3章 条件分岐と繰り返し
第4章 配列
第5章 メソッド
第6章 複数クラスを用いた開発

■第II部 すっきり納得オブジェクト指向
第7章 オブジェクト指向をはじめよう
第8章 インスタンスとクラス
第9章 さまざまなクラス機構
第10章 継承
第11章 高度な継承
第12章 多態性
第13章 カプセル化

■第III部 もっと便利にAPI活用術
第14章 Javaを支える標準クラス
第15章 文字列と日付の扱い
第16章 コレクション
第17章 例外
第18章 まだまだ広がるJavaの世界

付録A ローカル開発環境のセットアップと利用
付録B エラー解決・虎の巻
付録C クイックリファレンス

索引

コメント (8)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 量子とはなんだろう 宇宙を... | トップ | 神は数学者か?―ー数学の不可... »

8 コメント

コメント日が  古い順  |   新しい順
初めまして。 (師子乃)
2020-07-18 20:19:10
よさそうな入門書ですね。

新たに始める人に教材として紹介できそうです。
Re: 初めまして。 (とね)
2020-07-18 20:50:40
師子乃様

はじめまして。コメントありがとうございます。
はい、とてもよい入門書だと思います。分厚いことに抵抗感をもつ方がいるかもしれませんが、薄い本で学ぶと十分ではないため、結局分厚い本を読まざるを得なくなるものです。
ぜひ、お知り合いの方にも紹介してください。
Java と python (T_NAKA)
2020-07-18 21:47:59
私はgaccoの「プログラミング入門 ~Javaによるオブジェクト指向プログラミング~」を受講して修了証をいただいているのですが、実際に使うのは python ばかりです。私の場合は物理シュミレーションのためにプログラミングすることが多いので、オブジェクト指向はあまり考慮しないプログラミングであり、グラフを描くことが多いので、自然と python となりました。また機械学習の勉強でも sklearn. などが使いやすいです。という訳でアプリを作るような職業プログラマーでない私などはこれで良いのですが、職業プログラマーを目指す人はどちらを先に勉強した方が良いのでしょうか?まあ、職業プログラマーなら複数の言語を知っていなければいけないのでしょうが、私が30年務めた会社ではCOBOLしかできないプログラマーがたくさんいました。
Re: Java と python (とね)
2020-07-18 22:06:01
T_NAKAさんへ

今回は学校のカリキュラムに従ってJavaの入門書を紹介しました。このカリキュラムでは最後にPythonを学ぶ予定です。

アプリ・WEB・システムエンジニア養成科(職業訓練校 とぴあ)
http://east.topiapc.com/kunren/php/course_detail/ss_java4.php

人気としてはPython、Javaの順ですね。

【2020年】プログラミング言語の人気ランキングTOP10!それぞれの特徴を解説!
https://jpazamu.com/programming_lang_popularity/

求人件数としてはJava、Pythonの順になると思います

【現役エンジニアが厳選】2020年に学ぶべきプログラミング言語トップ3
https://www.youtube.com/watch?v=fhqaWiVneVA

ただし、こちらの動画ではPHP、Pythonの順になっています。

【初心者向け】仕事を得るためにおすすめのプログラミング言語トップ3
https://www.youtube.com/watch?v=txF8ZW34ff0

僕は、友達の進度に合わせて学んでいく予定ですが、最後のPythonまでたどり着くのは12月頃になると思います。
Re^2: Java と python (T_NAKA)
2020-07-18 23:06:10
とねさんへ

詳しい解説Web の紹介ありがとうございます。後で閲覧してみたいと思います。

どうも私が python 好きなのはインタプリタだからのようです。プログラムの作りかたは一人アジャイルというかちょっと作ってはテストというのを繰り返していますから、いちいちコンパイルするのが面倒だというのが理由ですね。
Re^3: Java と python (とね)
2020-07-19 00:16:37
T_NAKAさんへ

そうですか。僕はどうもコンパイル好きのようです。そしてコンパイラ・コンパイラも好きです。昨日、この本を注文してしまいました。

JavaCC―コンパイラ・コンパイラfor Java
https://www.amazon.co.jp/dp/4924998648

言語を作る!(JavaCCの環境構築編)
https://qiita.com/toru0408/items/76cd84429aadb707350d


Python (やす (Krtyski))
2020-08-17 11:30:39
とねさん

ご無沙汰しております。

最近仕事上の要請で、機器からの画像やデータを受け取って処理するプログラムを少々修正する必要があり、3ヶ月ほど前から Python を使い始めました。

趣味の Casioグラフ関数電卓でのプログラミングについても、fx-CG50 の Pythonモードでプログラムを作り始めています。

オブジェクト指向をなんとなく意識したのは C++ (MFC) が初めてで、構造体に中に関数も含められて便利だな程度の認識で、既にMFCで用意されているクラスを引き継いで機能を追加(継承)すると、例えば背景が黒で文字が黄色のエディットボックスを作れて格好いいとか、そんなレベルで適当に使っていました。自分でクラスを作るということもせず、なんとなくオブジェクト指向ってそんなものなのかな?と感じていました。

一方、C# ではオブジェクト指向を意識して、自分でクラスを作るようになりました。昔からある Windowsの API を C#で使いたい時には、うまくWrappingしてクラスを作ったりするのが結構大変ですが、一旦できていまえば便利に使えます。

3ヶ月前に初めてPythonに触れた時は、とても敷居が低く感じました。さらにPython独自の仕様 (例えば generator) に便利なものが多く、とても気に入っています。

プロ向けの開発言語としても十分で、プロでない研究者や素人にとっても手軽にプログラムが書ける、その両方が両立しているのが Python だと思います。だから広く普及し始めており、電卓にも搭載されることになったのだと思います。

java はコードを読む機会はあっても、自分で1から何かを作ったことはありません。但し JavaScript Object Notation (json) はpythonでも有用で、なにかと便利に使っています。

Pythonの公式サイトを読むと、根回しは言い出しっぺの責任で進め、最後に公式採用するのは投票で決めるという、ある意味現代的な民主主義で運営されているのは、興味深いものです。
Re: Python (とね)
2020-08-18 13:00:44
やすさんへ

Pythonについての記事は、この記事で書いている友達が学校で学ぶ11月か12月頃になりそうです。この「スッキリわかる」シリーズではなく、他の本を紹介する予定です。

仕事で使わない場合、よほど意識して取り組まないとプログラミングからは遠ざかってしまいがちです。

とりあえず、次はこのJavaの本の実践編に取り組みたいと思います。

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

コンピュータ」カテゴリの最新記事