Slide 1

Slide 1 text

次の一歩を踏み出そう! OCJPの知識でちょっといいコーディング #ccc_m3

Slide 2

Slide 2 text

自己紹介 名前:ぜろゆ (@zer0_u) 会社:カサレアル やっていること:研修教材開発 #ccc_m3

Slide 3

Slide 3 text

はじめに (1/2) 1. 自分の技術力ってどのくらい? 2. 技術力向上のためにしていること? #ccc_m3

Slide 4

Slide 4 text

はじめに (2/2) 1. 自分の技術力ってどのくらい? → 初心者から達人まで様々 2. 技術力向上のためにしていること? → 写経・作りたいものを作る など #ccc_m3

Slide 5

Slide 5 text

聞いたことがある人? 技術力向上? 作りたいものを 作ればいいよ! チョットデキル人 #ccc_m3

Slide 6

Slide 6 text

そうは言われても そう簡単に見つからない! できない理由だってある! デキナイ私 #ccc_m3

Slide 7

Slide 7 text

「作りたいものを作る」の呪い - そもそも見つからない - 私たちは便利な時代を生きている - 時間がない - 仕事以外にもやりたいことはたくさんある! - 家の環境が貧弱 - ディスプレイ1枚はつらい! #ccc_m3

Slide 8

Slide 8 text

それでも 技術力を身につけたいんです! #ccc_m3

Slide 9

Slide 9 text

そんなあなたに OCJPのご案内! OCJPの内容を学んで 技術力を身に着けよう #ccc_m3

Slide 10

Slide 10 text

今回の内容 - 上げるべき技術力とは何か? - OCJPを受けると何が変わるのか? #ccc_m3

Slide 11

Slide 11 text

上げるべき技術力とは何か?

Slide 12

Slide 12 text

そもそも 技術力とは? - コードをバリバリ書くこと? - 最新技術を追い続けること? - OSSにコミットすること? #ccc_m3

Slide 13

Slide 13 text

技術力の基礎は何か? コードを読む力のことでは? - 実際の仕事はコードを読むところから - 読む時間の方が長いのでは? #ccc_m3

Slide 14

Slide 14 text

読む力を伸ばす - OCJPを受けて伸びる部分がこれ #ccc_m3

Slide 15

Slide 15 text

OCJPを受けると何が変わるのか?

Slide 16

Slide 16 text

OCJPとは? - Oracle Certified Java Programmer - OracleによるJavaの公認資格 - バージョンごと - Bronze, Silver, Gold の3種 - 任意の日時・場所で受験可能 2017年11月時点 http://www.oracle.com/jp/education/certification/jse8-2489021-ja.html #ccc_m3

Slide 17

Slide 17 text

ちなみに - OCJP SE 8 Silver / Gold取得済 - Silver 2017年6月 - Gold 2017年9月

Slide 18

Slide 18 text

OCJPで何を得られるか - Javaの知識 - JLS / API リファレンスを参照する力 - Java Language Specification(言語仕様) - 人間コンパイラ能力 #ccc_m3

Slide 19

Slide 19 text

Javaの知識の例 (1/2) - 関数型インタフェース - Function, Consumer, Predicate, Supplier, UnaryOperator - それぞれどこで使うか丸暗記 - 結構役立っている #ccc_m3

Slide 20

Slide 20 text

Javaの知識の例 (2/2) - ストリーム生成 - クラスとメソッドの一覧 - 例外のrethrow - SE 7から仕様変更あり - Executorフレームワーク #ccc_m3

Slide 21

Slide 21 text

JLSの例 - 5.6.2 Binary Numeric Promotion - プリミティブ型どうしを演算したときの 型変換の規則が書いてある - 一方がdoubleならもう一方もdoubleに https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.6.2 #ccc_m3

Slide 22

Slide 22 text

人間コンパイラ・人間JVM - OCJPの最大の難関にして最大のメリット - 試験会場の様子 - プレーンテキストのJavaコード - メモ用のホワイトボードとマーカー #ccc_m3

Slide 23

Slide 23 text

問題例 (1/2) 次の配列式で正しくないものを2つ選べ A. int[] a = new int[]{1,2,3}; B. int[3] a = new int[]; C. int[] a = {1.0}; D. int[] a = {0}; E. int a[] = new int[1]; Silverレベル 模試問14 #ccc_m3

Slide 24

Slide 24 text

問題例 (1/2) 解答 次の配列式で正しくないものを2つ選べ A. int[] a = new int[]{1,2,3}; B. int[3] a = new int[]; C. int[] a = {1.0}; D. int[] a = {0}; E. int a[] = new int[1]; #ccc_m3 Silverレベル 模試問14

Slide 25

Slide 25 text

問題例 (2/2) 次のコードの実行結果を選べ Goldレベル 模試問26 A. false true B. false false C. true true D. コンパイルエラー E. 実行時エラー F. コンパイルは成功するが実行時にハング #ccc_m3

Slide 26

Slide 26 text

問題例 (2/2) 解答 次のコードの実行結果を選べ A. false true B. false false C. true true D. コンパイルエラー E. 実行時エラー F. コンパイルは成功するが実行時にハング Goldレベル 模試問26 #ccc_m3

Slide 27

Slide 27 text

人間コンパイラ・JVMが得るもの - ざっと見て「やばそう」な気配を掴む力 - 読みづらいコードはたいてい落とし穴がある - 強弱をつけて流し読みする力 - 短時間に大量のコードを読むために必要 #ccc_m3

Slide 28

Slide 28 text

これって…? 実務でも使う技能では? - コードレビュー時 - 不具合調査時 #ccc_m3

Slide 29

Slide 29 text

つまり - IDEなどの補助なしで - 大量のコードを - 短時間で読み解く 経験が生かせる! #ccc_m3

Slide 30

Slide 30 text

あこがれの技術力をみにつけたぞ! - 「作りたいものを作る」以外の道もある - OCJP受験のために必要なもの - テキスト・問題集 - 最低限の実行環境(検証用・なくてもよい) - 根気と時間 #ccc_m3

Slide 31

Slide 31 text

まとめ - 技術力=読む力+書く力 - 読む力の向上のためにOCJPは有効 - 短時間に大量のコードを読む訓練 - Javaの知識もまんべんなく身につく - 「作りたいものを作る」以外の道もある #ccc_m3

Slide 32

Slide 32 text

ちょっといいコーディングへ 一歩踏み出そう! 自分に合った方法が きっとあるはず!

Slide 33

Slide 33 text

参考文献・Webサイト - オラクル認定資格教科書 - Java プログラマ Silver SE 8 https://goo.gl/4jvs1G - Java プログラマ Gold SE 8 https://goo.gl/c28gfV  #ccc_m3

Slide 34

Slide 34 text

参考文献・Webサイト - Java Language Specification https://docs.oracle.com/javase/specs/jls/se9/html/index.html - Java SE 8 API仕様 (APIリファレンス) https://docs.oracle.com/javase/jp/8/docs/api/ #ccc_m3