Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OCJP for good coding #jjug_ccc #ccc_m3
Search
zer0-u
November 18, 2017
Programming
1
1.3k
OCJP for good coding #jjug_ccc #ccc_m3
JJUG CCC 2017 fall #ccc_m3
次の一歩を踏み出そう! OCJPの知識でちょっといいコーディング
zer0-u
November 18, 2017
Tweet
Share
More Decks by zer0-u
See All by zer0-u
古のJavaを使うということ / JJUC CCC 2016 Spring
zer0u
12
13k
kbkz_tech9
zer0u
0
380
You and Java and English ,
zer0u
0
360
JJUG CCC 2015 Fall LT
zer0u
0
1.2k
ねこでもわかる! ITインフラ・パフォーマンスチューニング
zer0u
16
7k
Other Decks in Programming
See All in Programming
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
440
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
34k
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
140
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
14
46k
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
120
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.5k
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
0
310
Developer Joy - The New Paradigm
hollycummins
1
370
モテるデスク環境
mozumasu
3
1.3k
CSC305 Lecture 09
javiergs
PRO
0
320
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
160
CSC305 Lecture 08
javiergs
PRO
0
280
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Facilitating Awesome Meetings
lara
57
6.6k
For a Future-Friendly Web
brad_frost
180
10k
Optimizing for Happiness
mojombo
379
70k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Statistics for Hackers
jakevdp
799
220k
Typedesign – Prime Four
hannesfritz
42
2.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
次の一歩を踏み出そう! OCJPの知識でちょっといいコーディング #ccc_m3
自己紹介 名前:ぜろゆ (@zer0_u) 会社:カサレアル やっていること:研修教材開発 #ccc_m3
はじめに (1/2) 1. 自分の技術力ってどのくらい? 2. 技術力向上のためにしていること? #ccc_m3
はじめに (2/2) 1. 自分の技術力ってどのくらい? → 初心者から達人まで様々 2. 技術力向上のためにしていること? → 写経・作りたいものを作る など #ccc_m3
聞いたことがある人? 技術力向上? 作りたいものを 作ればいいよ! チョットデキル人 #ccc_m3
そうは言われても そう簡単に見つからない! できない理由だってある! デキナイ私 #ccc_m3
「作りたいものを作る」の呪い - そもそも見つからない - 私たちは便利な時代を生きている - 時間がない - 仕事以外にもやりたいことはたくさんある! -
家の環境が貧弱 - ディスプレイ1枚はつらい! #ccc_m3
それでも 技術力を身につけたいんです! #ccc_m3
そんなあなたに OCJPのご案内! OCJPの内容を学んで 技術力を身に着けよう #ccc_m3
今回の内容 - 上げるべき技術力とは何か? - OCJPを受けると何が変わるのか? #ccc_m3
上げるべき技術力とは何か?
そもそも 技術力とは? - コードをバリバリ書くこと? - 最新技術を追い続けること? - OSSにコミットすること? #ccc_m3
技術力の基礎は何か? コードを読む力のことでは? - 実際の仕事はコードを読むところから - 読む時間の方が長いのでは? #ccc_m3
読む力を伸ばす - OCJPを受けて伸びる部分がこれ #ccc_m3
OCJPを受けると何が変わるのか?
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
ちなみに - OCJP SE 8 Silver / Gold取得済 - Silver
2017年6月 - Gold 2017年9月
OCJPで何を得られるか - Javaの知識 - JLS / API リファレンスを参照する力 - Java
Language Specification(言語仕様) - 人間コンパイラ能力 #ccc_m3
Javaの知識の例 (1/2) - 関数型インタフェース - Function, Consumer, Predicate, Supplier, UnaryOperator
- それぞれどこで使うか丸暗記 - 結構役立っている #ccc_m3
Javaの知識の例 (2/2) - ストリーム生成 - クラスとメソッドの一覧 - 例外のrethrow - SE
7から仕様変更あり - Executorフレームワーク #ccc_m3
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
人間コンパイラ・人間JVM - OCJPの最大の難関にして最大のメリット - 試験会場の様子 - プレーンテキストのJavaコード - メモ用のホワイトボードとマーカー #ccc_m3
問題例 (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
問題例 (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
問題例 (2/2) 次のコードの実行結果を選べ Goldレベル 模試問26 A. false true B. false false
C. true true D. コンパイルエラー E. 実行時エラー F. コンパイルは成功するが実行時にハング #ccc_m3
問題例 (2/2) 解答 次のコードの実行結果を選べ A. false true B. false false C. true
true D. コンパイルエラー E. 実行時エラー F. コンパイルは成功するが実行時にハング Goldレベル 模試問26 #ccc_m3
人間コンパイラ・JVMが得るもの - ざっと見て「やばそう」な気配を掴む力 - 読みづらいコードはたいてい落とし穴がある - 強弱をつけて流し読みする力 - 短時間に大量のコードを読むために必要 #ccc_m3
これって…? 実務でも使う技能では? - コードレビュー時 - 不具合調査時 #ccc_m3
つまり - IDEなどの補助なしで - 大量のコードを - 短時間で読み解く 経験が生かせる! #ccc_m3
あこがれの技術力をみにつけたぞ! - 「作りたいものを作る」以外の道もある - OCJP受験のために必要なもの - テキスト・問題集 - 最低限の実行環境(検証用・なくてもよい) -
根気と時間 #ccc_m3
まとめ - 技術力=読む力+書く力 - 読む力の向上のためにOCJPは有効 - 短時間に大量のコードを読む訓練 - Javaの知識もまんべんなく身につく -
「作りたいものを作る」以外の道もある #ccc_m3
ちょっといいコーディングへ 一歩踏み出そう! 自分に合った方法が きっとあるはず!
参考文献・Webサイト - オラクル認定資格教科書 - Java プログラマ Silver SE 8 https://goo.gl/4jvs1G
- Java プログラマ Gold SE 8 https://goo.gl/c28gfV #ccc_m3
参考文献・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