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
810
新人研修講師の体験を通して考える自己学習のアプローチ
関ジャバ'19 6月度 で登壇した際の資料です。
https://kanjava.connpass.com/event/134119/
キット
June 20, 2019
Tweet
Share
More Decks by キット
See All by キット
インフラ知識や土台の知識なしでk8sに挑んでいる話.pdf
kit0707
0
320
Other Decks in Programming
See All in Programming
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
260
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
170
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
250
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
770
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
1
190
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
510
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
140
NPOでのDevinの活用
codeforeveryone
0
840
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
190
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
650
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
790
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.5k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
How to Think Like a Performance Engineer
csswizardry
25
1.7k
Six Lessons from altMBA
skipperchong
28
3.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Visualization
eitanlees
146
16k
What's in a price? How to price your products and services
michaelherold
246
12k
Designing for humans not robots
tammielis
253
25k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Writing Fast Ruby
sferik
628
62k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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ページ作成が嫌いになり かけた」
その人のレイアウト
他の人のレイアウト
学習してない技術を使ってる
他の人は学習した技術でいかに 綺麗に見せるかを 実践している
持ってる武器を使おう
まとめ
研修講師で初学者と接するのは 非常に勉強になる