SlideShare a Scribd company logo
1 of 82
Download to read offline
新卒で初めて学ぶ言語が
Scalaで良かったこと/大変だったこと
てらさか いくや
自 己 紹 介
• 寺坂 郁也 (てらさか いくや)
• 2014年、文系大学を卒業し、入社
• 株式会社セプテーニ・オリジナル
• コミックスマート株式会社で

「GANMA!」というWebマンガサービスに携わる
自 己 紹 介
• 経歴…まだないです
G A N M A ! だ け。
こ れ ま で にや っ た こ と
• 2014年4月、文系大学卒業→新卒で入社
• PHP, Javascript, HTMLで少し研修
• 5月からコミックスマート(GANMA!)で働き始める
• サーバーのAPI開発で Play+Scala を初めて使う
• 6月終わりごろからTypescript+AngularでWeb開発
• 10月からSwiftでiOS開発
本日のテーマ
素人 × Scala = ?
話 し た い こ と
• 学習変遷
• コードの読み書き
• Scalaを学ぶのは難しい?
1. 学習変遷
学 習 変 遷
• 取っかかり ( → スプリントとしての勉強期間 )
• 理解し始める ( → 業務スタート )
取 っ か か り
• Scala?
• DDD?ドメイン?リポジトリ?
• TDD?テスト?
• オブジェクト指向?
• Gitとかのインフラ?
Step:1
!
なんだかよく分からないけど、

とりあえずコップ本から始めました
が、読んでも
よく分からない
!
ケースクラス? トレイト? マップ?
も っ と 分 か り や す い
説 明 は な い も の か
Step:2
!
Google先生なら
きっと万能だよね!
うーん。
!
JAVAとの比較…!?
結果
Google検索に常駐
!
ただただ
時間が吸われる(´・_・`)
考 えて み る と 、
そもそもクラスの概念自体を
理解できていないのに
!
ケースクラスとかトレイトの情報を見ても
分かるはずがありませんでした
や っ ぱ り
ド キ ュ メ ン ト を 読 む な かで
前 提 知 識 が 必 要 な 情 報 が 多 い こ と に 苦 労 し ま し た
全てをいきなり理解するのは無理があるので
!
まあ、とにもかくにも
書いてみようじゃないか、ということで
Step: 3
!
簡単なBBSを作ってみる
B B S に 必 要 な の は
書 き 込 み 、 読 み 出 し 、 削 除 …
P l a y F r a m e w o r k … ?
…(´・_・`)?…Pla y+Scala?
な る ほ ど 。 そ う で す か
!
P l a y に も
慣 れ な い と い け な い んで す ね
書くのも
やっぱり難しかった
で も
実 際 に 触 って み る こ と に よ って
!
な に が 分 か ら な い の か が
分 か り ま し た
文 法 は 触 って い る う ち に 慣 れ ま す
!
文 法 が 分 か って き た ら 、
コ ー ド を 読 め る よ う に も な って き ま す
実 際 に
書 いて み る こ と で 文 法 に 慣 れ
!
す こ し 理 解 が 進 み ま し た
取 っ か か り : ま と め
• Step1: コップ本

 → よく分からない
• Step2: Google先生に聞く 

 → 前提知識が足りず、時間がすわれる
• Step3:とりあえず、簡単なBBSを作ってみる

 → 無知の知。少し理解が進む
学 習 変 遷
• 取っかかり ( → 勉強期間 )
• 理解し始める ( → 業務スタート )
理 解 し 始 め る
• 業務スタート
カラムを増やすとか
機能追加とか
• まずは既存コードの改修からスタート
• スクラム開発
• コードを読み、調べて、聞く
ス ク ラム が 取 り 入 れ ら れて い た の で
!
質 問 や ア ラ ー ト を 投 げ て
す ぐ 聞 く こ と が で き ま し た
周 り に 聞 ける 環 境 に
あ っ た こ と は 大 き い
理 解 し 始 め る
• 言語の特徴部分にも目が向く
理 解 し 始 め る
• 関数型的な書き方とか
• 型安全だとか
• パターンマッチ使えるとか
• オプショナルの良さとか、安心感
なぜ
そういう言語仕様に
なっているのかを考え始める
こ の 段 階 で 初 めて
!
「 な ん だ か S c a l a って い い か も 」
と 思 い 始 め ま し た
学 習 変 遷 ま と め
• 取っかかり 
→ 分からなくても読む

→ とりあえず書いてみる
• 理解し始める
→ 実装への疑問から聞いて調べて色々知る

 → 良さが分かった気になる
話 し た い こ と 2
• 学習変遷
• コードの読み書き
• Scalaを学ぶのは難しい?
2. コードの読み書き
コ ー ド を 読 む って 大 変
• 実装をどんどん追いかけないといけない
• 中になにが入っていてどう変化するのかが曖昧
• 読んでも理解が正確でない
型があると
読みやすくて安心
型 が あ る と
• なにが入っているか、なにが返ってくるのかが分かる
• 実装に対する理解がすすむ
• バグの防止になる
型 は 初 心 者 に こそ 必 要 な も の
だ と 思 い ま す
コ ー ド を 書 く
• とりあえず動くものができる
コ ー ド を 読 んで い る と
!
→ ふ む ふ む 、 こ ん な 風 に 書 く んで す ね
→ こ れ が 最 善 で は ?
→ こ れ 以 上 、 い い 書 き 方 が 思 い つ き ま せ ん
理解したつもりになって
真似てみる
だめコードたくさん
黒魔術たくさん
コンパイルエラー!!
テストエラー!!
プル リ の リ ジェ ク ト ( ´ ・ _ ・ ` )
【 教 訓 】
理 解した つ もりになった
初 心者ほ ど 怖いものは無い
!
が 、
プルリで助けられました
コンパイルもありがとう
と こ ろで、 良 く 耳 に す る 話 。
!
S c a l a は
ビ ル ド が 遅 い
\ W e n e e d 速 い マ シ ン ! /
速いのを知らないので
!
基準が
分かりませんでした
開 発 環 境 に 関 して は
ス ト レス レス
話 し た い こ と 3
• 学習変遷
• コードの読み書き
• Scalaを学ぶのは難しい?
3. Scalaを学ぶのは難しい?
・Scalaの学習コスト
S C A L A の 学 習 コ ス ト
• 関数型
• 副作用無し
• イミュータブル
…etc
考え方を変えること
 →コスト大
何も持っていない僕。
「そんな感じで書くんですね」
!
と、ただ受け入れるだけです
良さも分からなければ、
大変さも分からない
スキル も 何 も な い 状 況 で は
!
目 の 前 の こ とを
受 け 入 れて や る し か な く て
そしてやってみれば、
意外となんとかなります
と い う か 、
周 り の 先 輩 エ ン ジニ ア の 方 々 が
な ん と か してくれ ま し た
今思えば、
!
コードレビューや口頭の助言を通じて、
そこは担保されてたんだな、と
だから、
!
他の言語より
学習コストが高くて難しい
というイメージは持っていません
言語そのものだけでなく
周りを取り巻く環境の影響が
大きいと感じます
今 日 話 し た こ と
• 学習変遷
• コードの読み書き
• Scalaを学ぶのは難しい?
結論: 素人 × Scala = ?
素 人 × S c a l a
= 意 外 に な ん と か な る
一 人 で 学 ぶ の で あ れ ば
か な り 大 変 だ っ た と 思 い ま す が
!
周 り に 聞 ける 環 境 が あ っ た こ と で
学 び や す か っ た で す
新しいぶん
情報もコミュニティもホットなので
!
どんどんと新しく
変わっていくのが面白い
な に よ り
新 し い こ とを 始 め る 時 の 障 壁 が
低 く な っ た こ と が 大 き い
Scalaをやって
良い経験になりました
ありがとうございました

More Related Content

Similar to “Septeni×Scala”勉強会#1資料_20150219_寺坂

研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
Hiromu Shioya
 
Tsubota 20120915
Tsubota 20120915Tsubota 20120915
Tsubota 20120915
nextedujimu
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
nishikawa_makoto7
 

Similar to “Septeni×Scala”勉強会#1資料_20150219_寺坂 (20)

Clojureに入門してみた、2017年秋
Clojureに入門してみた、2017年秋Clojureに入門してみた、2017年秋
Clojureに入門してみた、2017年秋
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
 
Swift afterbeginner
Swift afterbeginnerSwift afterbeginner
Swift afterbeginner
 
たのっち流コラムの書き方
たのっち流コラムの書き方たのっち流コラムの書き方
たのっち流コラムの書き方
 
2012年11月 レアジョブ学習法共有会
2012年11月 レアジョブ学習法共有会2012年11月 レアジョブ学習法共有会
2012年11月 レアジョブ学習法共有会
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
 
Tsubota 20120915
Tsubota 20120915Tsubota 20120915
Tsubota 20120915
 
Recommend scala
Recommend scalaRecommend scala
Recommend scala
 
Swift afterbeginner
Swift afterbeginnerSwift afterbeginner
Swift afterbeginner
 
社内勉強会 2014/10/08
社内勉強会 2014/10/08社内勉強会 2014/10/08
社内勉強会 2014/10/08
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
サービス開発者の読書会#4
サービス開発者の読書会#4サービス開発者の読書会#4
サービス開発者の読書会#4
 
20120515 アジャイルサムライ読書会 第4回
20120515 アジャイルサムライ読書会 第4回20120515 アジャイルサムライ読書会 第4回
20120515 アジャイルサムライ読書会 第4回
 
卒論の書き方講座 2013
卒論の書き方講座 2013卒論の書き方講座 2013
卒論の書き方講座 2013
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
 
TDDを研ぎ究める
TDDを研ぎ究めるTDDを研ぎ究める
TDDを研ぎ究める
 
ios+Android最近気付いいたこと
ios+Android最近気付いいたことios+Android最近気付いいたこと
ios+Android最近気付いいたこと
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
 
Mixbeat 5th workshop s1
Mixbeat 5th workshop s1Mixbeat 5th workshop s1
Mixbeat 5th workshop s1
 

Recently uploaded

Recently uploaded (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

“Septeni×Scala”勉強会#1資料_20150219_寺坂