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
370
You and Java and English ,
zer0u
0
340
JJUG CCC 2015 Fall LT
zer0u
0
1.2k
ねこでもわかる! ITインフラ・パフォーマンスチューニング
zer0u
16
7k
Other Decks in Programming
See All in Programming
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
380
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
110
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
160
GraphRAGの仕組みまるわかり
tosuri13
8
480
Benchmark
sysong
0
270
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
330
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
190
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
4
950
エンジニア向け採用ピッチ資料
inusan
0
160
Select API from Kotlin Coroutine
jmatsu
1
190
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
420
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
The Language of Interfaces
destraynor
158
25k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
How to Think Like a Performance Engineer
csswizardry
24
1.7k
YesSQL, Process and Tooling at Scale
rocio
173
14k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Code Review Best Practice
trishagee
68
18k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Agile that works and the tools we love
rasmusluckow
329
21k
For a Future-Friendly Web
brad_frost
179
9.8k
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