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.2k
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
350
You and Java and English ,
zer0u
0
310
JJUG CCC 2015 Fall LT
zer0u
0
1.2k
ねこでもわかる! ITインフラ・パフォーマンスチューニング
zer0u
16
6.9k
Other Decks in Programming
See All in Programming
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
Quine, Polyglot, 良いコード
qnighy
4
650
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
140
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
2
1.1k
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
940
EMになってからチームの成果を最大化するために取り組んだこと/ Maximize team performance as EM
nashiusagi
0
100
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
as(型アサーション)を書く前にできること
marokanatani
10
2.7k
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
1
100
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Producing Creativity
orderedlist
PRO
341
39k
Building Applications with DynamoDB
mza
90
6.1k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
4 Signs Your Business is Dying
shpigford
180
21k
Thoughts on Productivity
jonyablonski
67
4.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
How to Ace a Technical Interview
jacobian
276
23k
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