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
新人研修講師の体験を通して考える自己学習のアプローチ
Search
キット
June 20, 2019
Programming
0
730
新人研修講師の体験を通して考える自己学習のアプローチ
関ジャバ'19 6月度 で登壇した際の資料です。
https://kanjava.connpass.com/event/134119/
キット
June 20, 2019
Tweet
Share
More Decks by キット
See All by キット
インフラ知識や土台の知識なしでk8sに挑んでいる話.pdf
kit0707
0
290
Other Decks in Programming
See All in Programming
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
780
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.3k
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
200
新宿ダンジョンを可視化してみた
satoshi7190
2
250
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
330
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
200
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
370
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
910
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
930
Goのmultiple errorsについて (2024年4月版)
syumai
3
710
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
170
Featured
See All Featured
A designer walks into a library…
pauljervisheath
200
23k
How to Ace a Technical Interview
jacobian
272
22k
Mobile First: as difficult as doing things right
swwweet
216
8.6k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
Raft: Consensus for Rubyists
vanstee
132
6.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
37
2.5k
Faster Mobile Websites
deanohume
299
30k
Six Lessons from altMBA
skipperchong
21
3k
Typedesign – Prime Four
hannesfritz
36
2.1k
Designing for Performance
lara
601
67k
Transcript
新人研修講師の体験を 通して考える自己学習の アプローチ 2019/06/20 関ジャバ'19 6月度
自己紹介 名前:キット 属性:プログラマー、講師 最近の興味:学習 初心者向け勉強会企画してます
新人向けの Javaプログラミング研修講師を しています
受講生のフィードバックを聞いて いるとプログラミング始めたての 頃の気持ちを 思い出した
自分も新しい技術を学ぶ際には 同じことに陥っているはず
彼らの問題を客観的に 見て自分の学習方法を 改善できないかな
目次 - 取り組んでいる技術が何かわかってない問題 - 用語やツールの関係がわからない問題 - 研修でテキストエディタ使う問題 - その他いろいろ
今取り組んでる技術が何かイマ イチわかってない問題
目次 - 取り組んでいる技術が何かわかってない問題 - 用語やツールの関係がわからない問題 - 研修でテキストエディタ使う問題 - その他いろいろ
「JSPサーブレットプログラミング について学習した」
まだJSPやってない
まだ学習が浅い人はざっくりと大 きな枠で括りがち
初心者の視界 Java
実際 Java Spring Gradle Thymeleaf Mybatis
例えばIDEの画面
例えばIDE Java Java
例えばIDE Spring Gradle
視界がぼんやりしてると 学習時に混乱する
視界を詳細化することを 意識する
やってみる
自分が全くわからないものでや らないと
そういえば最近 Flutter気になってた (Java関連じゃなくてごめんなさ い)
事前にわかっている情報
Flutterはモバイルアプリを 作るためのフレームワーク
FlutterはDartで書く
Dartはプログラミング言語
以上
None
Flutter
None
Dart?
知ってるワードなら 認識できる (今回は「dart」)
その他は知らないので地道に調 べる
詳細化してみた
Pub Flutter Flutter Flutter
itemBuilder: /*1*/ (context, i) { if (i.isOdd) return Divider(); /*2*/
final index = i ~/ 2; /*3*/ if (index >= _suggestions.length) { _suggestions.addAll(generateWordPairs().take(10)); /*4*/ } return _buildRow(_suggestions[index]); }); sky engine (DartとFlutter Engineの間 のインターフェース)
わかったこと
Pubというパッケージ管理ツール を使っている
dart packagesはPubで取得 してきた外部ライブラリ
FlutterはDartの標準ライブラリを 直接使っていない
DartとFlutterについてわかったこと - Pubというパッケージ管理ツールを使っている - dart packagesはPubで取得してきた外部ライブラリ - FlutterはDartの標準ライブラリを直接使っていない
感想
ドキュメントを漫然と読む だけでは詳細化は難しい
「これは何なのか」から調べてド キュメントを読んで みたら良さそう
ドキュメントが違うサイトなら「違 うツール」だと明確にわかる
詳細化してもコードは 書けない
詳細化しても各々の関係性は わからない
客観的にはまだ視界がぼんやり してるかもしれないが自分では 気づけない
詳細化をミスると的外れな ワードで調べ続けてハマる
普通にドキュメント流し読みする より楽しい
ハマった例
Dartプロジェクトにあるyamlファ イルは全部Pubだと 思ってたが違っていた
詳細化にチャレンジした感想 - ドキュメントを漫然と読むだけでは分類は難しい - 「これは何なのか」を意識しながら読んでみたら良さそう - ドキュメントが違うサイトなら「違うツール」だとわかるが同 じサイトだと「同じツール」と思いがち - 詳細化してもコードは書けない
- 詳細化しても各々の関係性はわからない - 詳細化をミスると的外れなワードで調べ続けてハマる
詳細化まとめ どこまで詳細化できてるか自分ではわからないが、チャレン ジすることでわかることが結構ある。 意識してやってみると詳細化できてない自分に気づける。
用語やツールの関係が わからなくて混乱する問題
目次 - 取り組んでいる技術が何かわかってない問題 - 用語やツールの関係がわからない問題 - 研修でテキストエディタ使う問題 - その他いろいろ
今の演習ではPostgresを 使ってるのにとりあえず 前までの演習で使ったH2を 起動する
H2がPostgresと同じ、 データベースだということがわ かっていない
PostgreSQL MySQL H2
PostgreSQL MySQL H2
名前に「SQL」って ついてないから別物
PostgreSQL MySQL H2 Database Engine
名前って重要
名前は省略しない方が良い
どうすればわかりやすい?
マインドマップ使ってみる
データベース PostgreSQL MySQL H2 Database
RDB PostgreSQL MySQL H2 Database データベース
分類するとわかりやすい
やってみる
RDB PostgreSQL MySQL H2 Database データベース NoSQL ドキュメント指向 MongoDB DynamoDB
Key-Valueストア memchaed Redis グラフ指向
わかったこと
NoSQLに種類がある
Key-ValueストアとNoSQLの関 係 (同じ意味ぐらいに思ってた)
ドキュメント指向データベースと いうものがある
NoSQLって「Not Only SQL」な のね
感想
それぞれをis-a関係で 分類できた
RDB PostgreSQL MySQL H2 Database データベース NoSQL ドキュメント指向 MongoDB DynamoDB
Key-Valueストア memchaed Redis グラフ指向
それぞれの用語の関係性がはっ きりした
やっぱり名前って重要
合ってるかわからない
一次情報に当たるものが なさそう
Wikipedia頼み
見える化できるので自分の 理解を人に説明しやすい
RDB PostgreSQL MySQL H2 Database データベース NoSQL ドキュメント指向 MongoDB DynamoDB
Key-Valueストア memchaed Redis グラフ指向
もう1つやってみた
Flutterで
Flutter モバイルアプリ フレームワーク Dart ionic React Native
DartはFlutter?
コレジャナイ感・・・
DartはFlutterに含まれる
has-a関係
Flutter Dart Pub
まだ少し違和感
Flutterというフレームワークに Dartという言語が 含まれる?
Flutter SDK Dart SDK Pub Flutter標準ライブラリ Flutterテスト ライブラリ Dart標準ライブラリ Dart
VM dartanalyzer
そういえばJDKには 何が含まれる?
Tools javac javap Oracle JDK8 UI Tool Kit java jar
JVM Lang And Util Libraries Rich Internet Applications Integration Libraries Other Base Libraries javadoc jdeps Scripting Security Monitoring JConsole VisualVM JMC JFR JPDA JVM TI IDL RMI JavaDB Development jjs jrunscript Internationalization Web Services Troubleshooting keytool jarsigner policytool Java Web Start Applett JavaFX Swing IDL JDBC Math Collections Ref Objects Regular Expressions Logging Management Instrumentation Concurrency Utilities Reflection
「javac」は「Oracle JDK8」に含 まれる「Tools」である
参考 - https://docs.oracle.com/javase/8/docs/ - https://docs.oracle.com/en/java/javase/12/index.html - https://ja.wikipedia.org/wiki/Java_Development_Kit - https://dart.dev/tools/sdk
深掘りするには
RDB PostgreSQL MySQL H2 Database データベース NoSQL ドキュメント指向 MongoDB DynamoDB
Key-Valueストア memchaed Redis グラフ指向 is-a関係
RDB PostgreSQL MySQL H2 Database データベース NoSQL ドキュメント指向 MongoDB DynamoDB
Key-Valueストア memchaed Redis グラフ指向 is-a関係
PostgreSQLを理解しようと思う ならRDBを理解する
RDBを理解しようと思うならデー タベースを理解する
Tools javac javap Oracle JDK8 UI Tool Kit java jar
JVM Lang And Util Libraries Rich Internet Applications Integration Libraries Other Base Libraries javadoc jdeps Scripting Security Monitoring JConsole VisualVM JMC JFR JPDA JVM TI IDL RMI JavaDB Development jjs jrunscript Internationalization Web Services Troubleshooting keytool jarsigner policytool Java Web Start Applett JavaFX Swing IDL JDBC Math Collections Ref Objects Regular Expressions Logging Management Instrumentation Concurrency Utilities Reflection has-a関係
Tools javac javap Oracle JDK8 UI Tool Kit java jar
JVM Lang And Util Libraries Rich Internet Applications Integration Libraries Other Base Libraries javadoc jdeps Scripting Security Monitoring JConsole VisualVM JMC JFR JPDA JVM TI IDL RMI JavaDB Development jjs jrunscript Internationalization Web Services Troubleshooting keytool jarsigner policytool Java Web Start Applett JavaFX Swing IDL JDBC Math Collections Ref Objects Regular Expressions Logging Management Instrumentation Concurrency Utilities Reflection has-a関係
Oracle JDKを理解しようと 思うなら含まれているツールを1 つ1つ理解していく (つらい)
Tools javac javap Oracle JDK8 UI Tool Kit java jar
JVM Lang And Util Libraries Rich Internet Applications Integration Libraries Other Base Libraries javadoc jdeps Scripting Security Monitoring JConsole VisualVM JMC JFR JPDA JVM TI IDL RMI JavaDB Development jjs jrunscript Internationalization Web Services Troubleshooting keytool jarsigner policytool Java Web Start Applett JavaFX Swing IDL JDBC Math Collections Ref Objects Regular Expressions Logging Management Instrumentation Concurrency Utilities Reflection
分類してみて
頭の中が整理された気がする
is-a関係で用語を学ぶ
has-a関係でプロダクトを学ぶ
分類まとめ - 分類すると用語の関連がはっきりする - 自分で分類した結果が合ってるかは自信ない - 用語の場合、一次情報に当たるものがない - Wikipedia良い -
見える化すると人に説明しやすい - is-a関係で用語、has-a関係でプロダクトを整理すると学 習しやすい - 名前はやっぱり重要
既存の研修のやり方を考える
テキストエディタ使う問題
目次 - 取り組んでいる技術が何かわかってない問題 - 用語やツールの関係がわからない問題 - 研修でテキストエディタ使う問題 - その他いろいろ
テキストエディタでコード 書く ↓ javacコマンド
なぜ最初からIDE使わないの?
最初からIDEだとjavacコマンド の存在は知らないまま
IDEが裏でどんなことやってるか わからないまま
トラブルに弱くなる
初心者の頃、Gradleの 有り難さがわからなかった (あって当たり前だった)
テキストエディタ→IDE IDEの有り難さがわかる
でも2週間もテキストエディタ使 わなくてもいいかな
そのツールが何を解決したくて 登場したものかを知る
「歴史」を調べると背景が 見えてくる
ビルドツール 歴史
歴史を調べるのは面白い
テキストエディタ問題まとめ - 最初にテキストエディタでコード書くのはありだと思う - ただし3日くらいでいい - ツールの登場背景を知っておくとどんな問題を解決する ものか見えてくる - 歴史を調べるのは面白い
- Wikipediaやっぱり良い
その他いろいろ
目次 - 取り組んでいる技術が何かわかってない問題 - 用語やツールの関係がわからない問題 - 研修でテキストエディタ使う問題 - その他いろいろ
「ServletとDBを接続することが できなかった。 原因としては、Javascriptが 理解できてないからだ」
自分の理解できていない ところが原因と思いがち
複数の技術を使い出すと 混乱する
「みんな完成度の高いWebペー ジだったが、自分は写真表示と テーブルの作成しかできなかっ た」
「よくわからない隙間ができたり でWebページ作成が嫌いになり かけた」
その人のレイアウト
他の人のレイアウト
学習してない技術を使ってる
他の人は学習した技術でいかに 綺麗に見せるかを 実践している
持ってる武器を使おう
まとめ
研修講師で初学者と接するのは 非常に勉強になる