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
350
JJUG CCC 2015 Fall LT
zer0u
0
1.2k
ねこでもわかる! ITインフラ・パフォーマンスチューニング
zer0u
16
7k
Other Decks in Programming
See All in Programming
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
110
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
230
なぜ今、Terraformの本を書いたのか? - 著者陣に聞く!『Terraformではじめる実践IaC』登壇資料
fufuhu
4
410
PHPカンファレンス関西2025 基調講演
sugimotokei
6
1.1k
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
3
920
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
450
新しいモバイルアプリ勉強会(仮)について
uetyo
1
250
抽象化という思考のツール - 理解と活用 - / Abstraction-as-a-Tool-for-Thinking
shin1x1
1
930
Vibe coding コードレビュー
kinopeee
0
410
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2k
Comparing decimals in Swift Testing
417_72ki
0
160
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
490
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
430
Documentation Writing (for coders)
carmenintech
73
5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Side Projects
sachag
455
43k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Visualization
eitanlees
146
16k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
What's in a price? How to price your products and services
michaelherold
246
12k
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