Slide 1

Slide 1 text

非Javaエンジニアが 「プロになるJava」で 再勉強した話 白栁隆司 2022年11月27日 JJUG CCC 2022 Fall TrackA

Slide 2

Slide 2 text

自己紹介 エンジニアカウンセラー 白栁 隆司 Youtubeに動画投稿中! #ほぼ日ITエンジニアニュース ←更新止まってるw @IT 自分戦略研究所 エンジニアライフにて「コレがワタシの生きる様」連載中(木曜日) ITエンジニアが永く活動する為のサポート活動 主に4つのことを、ITエンジニアに勧めています 1. 傾聴ベースのコミュニケーション 2. メンタルヘルス(セルフケア) 3. セルフマネジメント 4. 日々の生活の中からエンジニアリングを学ぶ

Slide 3

Slide 3 text

・第二種情報処理技術者 ・産業カウンセラー ・メンタルヘルスマネジメント検定 主な開発言語 略歴 1981年 5月 生まれる 1993年10月 プログラムに初めて触れる 1995年 5月 自宅にPC導入 1997年 4月 高校でプログラミングを学習 2000年 4月 地元の中小ソフトハウス勤務 2005年 4月 東京SESエンジニア活動開始 2019年 9月 フリーランス活動開始 2022年 8月 約15年振りの引っ越し ♥ TRPG, ボードゲーム, ポケモン, 特撮, スキー etc... ・C / C++ ・C#(.net系) ・Java ・JavaScript(JQuery) ・PHP ・Python ・PL/SQL ・VB、VBA、VBScript 主な資格 エンジニアカウンセラー 白栁 隆司 自己紹介

Slide 4

Slide 4 text

このセッションのターゲット ⭕ 非Javaのエンジニアだけど、Javaに興味がある  ■ 白栁は非Javaとは言うけど全くJavaしない訳ではない ⭕ 最新のモダンなJavaの学習をしたい ⭕ 非JavaエンジニアにJavaを説明したい ❌ 書籍「プロになるJava」の説明を聴きたい 「再勉強」の話です!

Slide 5

Slide 5 text

アジェンダ 1. 学習の流れについて 2. 良かったポイント 3. 他の言語経験者へ(C#, PHP) 4. 今後やってみたいこと

Slide 6

Slide 6 text

1. 学習の流れ ※オススメしない ● 全編を真面目に写経はしない ● 最後まで本を読む ● 気になったポイントに絞って読み返し&写経 ○ 特にJava 8までにはなかった部分、第6部 ● IDEはEclipceを使用 ※仕事の都合

Slide 7

Slide 7 text

1. 学習の流れ ● オススメしない理由は…… ○ やっぱり写経は大事! ■ 学んで手を動かして経験にできる ○ その後の「改造」までして欲しい ● 自身の経験や理解力に合わせて調整を!

Slide 8

Slide 8 text

2. 良かった点 1. 適度な課題がある 2. 最新(Java 17)の書き方に対応している 3. JShellの使い方がありがたい 4. GUIからWebまで対応している 5. 最新の開発手法・環境への言及と解説

Slide 9

Slide 9 text

2-1. 適度な課題がある ● 実際に考えて手を動かして学べる課題がある ○ 直前まで触っていたものを変えてみる系が多い ○ 単純な写経では終わらない ● 「読む→触る→考える→変える」で強い体験になる ○ 「わかったつもり」を生み出しにくい構成

Slide 10

Slide 10 text

2-2. 最新の書き方に対応している ● Java 17までの書き方に対応している ○ 古いバージョンでは使えないものには注釈有 「Java XXから使えるようになった~」等 ● Java 8までの機能しか主に使ってない ○ Streamとかラムダ式の解説が丁寧だった

Slide 11

Slide 11 text

2-3. JShellの使い方がありがたい ● あるある:ちょっとした処理の確認をする方法は? ○ コマンドライン実行は強力なツール! ○ JShell上でいろいろなことができる、気づき ■ 変数の命名の重要性にも気づける? ● 例外(スタックトレース)の読み方までフォロー

Slide 12

Slide 12 text

2-4. GUIからWebまで対応している ● 多くの人が興味があるGUIとWebアプリ ○ 基礎レベルの内容 ■ SwingによるGUI解説 ■ Spling BootによるWebアプリ開発 ● 本格的な開発の為の技術書を読むスモールステップに

Slide 13

Slide 13 text

2-5. 最新の開発手法・環境 ● 今や必須になっている概念・ツールの説明 ○ Gitや自動テストに付いての解説がある ○ SQLやHTTP通信についてもわかりやすい解説 ● 「型」よりも「モジュール」への流れに衝撃 ○ まだうまく言葉にできない

Slide 14

Slide 14 text

3. 他の言語経験者へ 他の開発言語を経験している人への橋渡し 1. C# 2. PHP

Slide 15

Slide 15 text

3-1. 他の言語経験者へ(C#) ● 元々、書き方がとても近い言語である ○ クラス関連やアルゴリズムの部分はそのまま ● Streamやラムダ式など似てたり違ってたりの部分 ○ 混乱しないように注意が必要になる ● Visual Studio以外のIDEを使うことで得られる刺激

Slide 16

Slide 16 text

3-2. 他の言語経験者へ(PHP) ● デバッグがとても楽!!(IDEとTomcat等の連携) ● MVCの考え方は共通 ○ Laravel等FWを導入した環境が近い?(未経験) ● 強い「型」の意識には戸惑うだろう ● アノテーションとかエンドポイントでも混乱しそう 他のAPサーバーとも容易に連携できるらしい

Slide 17

Slide 17 text

4. 今後やってみたいこと ● 違う開発環境での写経や改造をしてみる ○ IntelliJ IDEA、VSCode ○ JUnitやJavadocの積極利用、JavaBeans利用 ● 飛ばしている部分も多いので丁寧な写経 ○ 「わかったつもり」の発見へ繋げる

Slide 18

Slide 18 text

まとめ ● Q.再学習の効果はあったのか? A.わからん → 仕事では使っていない部分、今後の備え ● Javaの入門書としてとても良い本 ○ プログラマが再勉強に使うのにも良い本 ● 改めて勉強する最初の一冊としてオススメです!

Slide 19

Slide 19 text

ご清聴ありがとうございました エンジニアカウンセラー 白栁隆司 @ShirayanagiRyuj Java以外も触ってみて欲しい 非Javaエンジニアが「プロになるJava」で再勉強した話 #jjug_ccc_a