即戦力になるRubyエンジニアの作り方教えます

7ec547b3208545bcb5e6c0f1feb732c7?s=47 裕美 吉田
February 24, 2016

 即戦力になるRubyエンジニアの作り方教えます

空前のスタートアップ企業ブームを支える技術として選ばれているRuby言語やRuby on Railsですが、Rubyを使いこなせるエンジニアの不足がさけばれています。 全くの0から優秀なRubyエンジニアを育てるような魔法はありませんが、短い時間で実際の仕事に入っていけるRubyエンジニアを育てる最初のステップについての具体的なトピックを、いろいろな会社でのRuby教育の経験をもとにお伝えしたいと思います。

7ec547b3208545bcb5e6c0f1feb732c7?s=128

裕美 吉田

February 24, 2016
Tweet

Transcript

  1. ଈઓྗʹͳΔ3VCZΤϯ δχΞͷ࡞Γํڭ͑·͢ 3VCZ#VTJOFTT6TFST$POGFSFODF

  2. ಺༰ ࣗݾ঺հ Πϯτϩ 3VCZ 3VCZPO3BJMTڭҭ͍Ζ͍Ζ ઓྗʹͳΔΤϯδχΞ 2" 2

  3. ࣗݾ঺հ

  4. ٢ా༟ඒ :PTIJEB:VVNJ  ༗ݶձࣾ&:0⒏DF IUUQXXXFZP⒏DFDPN #MPHIUUQZVVNJIBUFOBCMPHDPN 5XJUUFS!ZVVNJ 4

  5. աڈ େֶͷ޻ֶ෦ଔۀ ଔۀݚڀͰ-JTQॲཧܥʹؔΘΔ ૊ࠐܥͷձࣾʹब৬ $"%ͷϕϯνϟʔاۀʹస৬ $"%ͷίΞ෦෼ͷ։ൃ γϦίϯόϨʔΛ๚໰ͨ͠Γɺถࠃਓͱ࢓ࣄΛ ܦݧ 5

  6. ̌ੈل͕ऴΘΔͷͰಠཱ ΧϦϑΥϧχΞͷ੨͍ۭΛΈͨ ͋·ΓձࣾʹೃછΊͳ͍ਓͩͬͨ 6 IUUQCMPHMFYVFTDPKQIUNM͔Β

  7. &:0⒏DF ೥ʹಠཱ ։ൃ 8FC 3VCZPO3BJMT  J1IPOF ڭҭ ͓٬༷ͷ໰୊Λղܾ͢Δ*5ڭҭ 3VCZPO3BJMT

    J1IPOF 7
  8. &:0⒏DF։ൃ 8FC 8 w ΞδΞϦʔάΞΠεϗοέʔ wIUUQXXXBMIPDLZKQ wνʔϜɾબखͷ੒੷ूܭ w1FSMಠࣗϑϨʔϜϫʔΫ wΞϩϋύʔΫ wIUUQQBSLBMPIB

    TUSFFUDPN w4/4 w+BWB4FBTBS wωοτγϣοϓ wIUUQXXXCPSPDPKQ w3BJMTK2VFSZ w34QFD$VDVNCFS w๖͑τʔΫ ੠༏ͱ4LZQF Ͱ͓࿩  wIUUQXXXNPFUBMLKQ w੠༏ͱͷձ࿩༧໿༧໿ w3BJMTK2VFSZ w34QFD3FRVFTU
  9. &:0⒏DF։ൃ J1IPOF 9 ֆຊΞϓϦ J1IPOFJ1BE 5XFFUͳ͏ ແྉ ڭ͑ࢠ͕࡞ͬͨΞϓϦ

  10. ࣥච 10

  11. ߨԋ 11 RubyKaigi2008 Ruby World Conference 2013 Ruby Business Users

    Conference 2015
  12. ࠷ۙͷ࢓ࣄ??  12 ҆৺ͯͩ͘͠͞ɺόοΫΤϯυ͸ 3VCZPO3BJMTͰ͢

  13. Πϯτϩ

  14. ͜ͷ͓࿩ͷλʔήοτ 3VCZΤϯδχΞΛ૿΍͍ͨ͠ελʔ τΞοϓاۀ 3VCZΛ࢝Ί͍ͨ4*اۀ ͦ͜Ͱಇ͘ϚωʔδϟʔɾܦӦऀ ࣾһڭҭʹؔΘΔΤϯδχΞ 14

  15. ೔ຊͰ΋ελʔτΞοϓ اۀ͕૿͍͑ͯΔ ͦͯ͠ɺۭલͷ3VCZΤϯδχΞෆ଍ ਓࡐ͸ྲྀಈԽ͍ͯ͠ΔΑ͏͕ͩɺ·ͩ গ਺ ਓࡐ೿ݣձࣾʹ΋3VCZΤϯδχΞ͋ ·Γ͍ͳ͍ 15

  16. ͦ͜Ͱ

  17. ΤϯδχΞΛࣗࣾ ͰҭͯΑ͏ʂ &:0⒏DFͷ͝ఏҊ

  18. ΤϯδχΞΛࣗࣾͰҭͯΔ ࠓ͸ि਺ਫ਼ӶελΠϧͰ΋Ϗδωε ͕֦େͨ࣌͠ͷࣄʹ͸ඞཁ ڭҭγεςϜཱ͕֬Ͱ͖Ε͹ɺத్ ࠾༻΍ਓࡐ೿ݣͳͲෆ֬ఆͳཁૉʹ ؔ܎ͳ͘੒௕Ͱ͖Δ 18

  19. 4*FSWTελʔτΞοϓ 19 ࡉ෼Խ͞Εͨ࢓༷ ͷ࣮૷ ௿͍ٕज़εΩϧ ࡞ۀత ΞʔΩςΫτ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ

    ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ࢓༷ॻ น SIerͷ։ൃελΠϧ (Πϝʔδ) ΞʔΩςΫνϟʔͷܾఆ ߴ͍ٕज़εΩϧ ࣮຿ܦݧ ઃܭηϯε
  20. 4*FSWTελʔτΞοϓ 20 ελʔτΞοϓͷ։ൃελΠϧ (Πϝʔδ) େ͖͘ͳ͍νʔϜ தڃҎ্ͷٕज़εΩϧ શһͰΞʔΩςΫνϟʔ Λܾఆ શһͰ࣮૷ ϓϩάϥϚʔ

    ϓϩάϥϚʔ ϓϩάϥϚʔ ϓϩάϥϚʔ ࢓༷ॻ
  21. ݱࡏͷڭҭϏδωεͷ໰୊఺ ຊ౰ʹޮՌ͕͋Δͷ͔ʁ ࢿ֨औಘڭҭ ஌ࣝڭҭ ࠷৽ςΫϊϩδʔʹରԠ͍ͯ͠Δ ͷ͔ʁ 21

  22. ݱࡏͷڭҭϏδωεͷ໰୊఺ ੒ՌΛίϛοτग़དྷͳ͍ ڭҭͷຊ࣭తͳ໰୊ ੒Ռ͸डߨऀʹେ͖͘ґଘ 22

  23. ࠓճͷ͓࿩ͷ࿦ڌ ໿ਓͷํ΁ͷ3VCZڭҭͷ࣮੷ גࣜձࣾυϦίϜ༷Ͱͷճͷ 3VCZɺ3VCZPO3BJMTΛؚΉ৽ਓ ڭҭͰͷܦݧ גࣜձࣾυϦίϜ༷͋Γ͕ͱ͏͝ ͍͟·͢ʂ 23

  24. 3VCZ 3VCZPO 3BJMTڭҭ͍Ζ͍Ζ

  25. ڭҭۀऀWTࣾ಺ڭҭ ڭҭΛͩΕ͕ߦ͏͔

  26. ڭҭۀऀͷϝϦοτ ߨ্͕ٛख͍ ੒੷ͷ௿͍डߨऀͷϑΥϩʔ্͕ख͍ डߨऀͷධՁྗ͕ߴ͍ ςΩετɾࢿྉΛ࡞Δͷ্͕ख͍ ஌ࣝͷ෯͕޿͍ ࣾ಺ϦιʔεΛ࢖Θͳ͍ 26

  27. ࣾ಺ߨशͷϝϦοτ اۀͷ΋ͭจԽΛڭ͑ΒΕΔ ݱ࣮ͷੈք࢓ࣄΛޠΕΔ ࢓ࣄ΁ͱͭͳ͕Δ ߨࢣΛͨ͠ਓͷεΩϧ্͕͕Δ ஌͕ࣝਂ͍ 27

  28. ڭҭۀऀʴࣾ಺ڭҭ ڭҭۀऀ ೖ໳ɺجૅΛֶͿ ࣾ಺ڭҭ 0+5  ࢓ࣄͰ࢖͑Δٕज़Λ਎ʹ͚ͭΔ 28

  29. ڭҭۀऀʴࣾ಺ڭҭ &:0⒏DFͷ͝ఏҊ

  30. ؀ڥ 30 ೖ໳ தڃ ໰୊఺ 8JOEPXT ˓ º Ұ෦ϥΠϒϥϦʔ͕Πϯετʔ ϧग़དྷͳ͍

    8JOEPXT  7.Ͱ-JOVY ˓ ˓ 7.Ͱಈ͔͢ͷͰϚγϯύϫʔ ͕ඞཁ .BD ˓ ˓ اۀʹΑͬͯ͸ಋೖͰ͖ͳ͍ -JOVY ˓ ˓ .48PSE&YDFM͕ಈ͔ͳ͍
  31. ςΩετ ཧ૝తͳॻ੶ɺυΩϡϝϯτ͸͋·Γ ແ͍ શͯΦϦδφϧͰ࡞Δͷ͕ϕετ͕ͩ طଘͷॻ੶ɺυΩϡϝϯτʴΦϦδ φϧςΩετͰิ଍ ิ଍͢Ε͹ςΩετͷબ୒ࢶ͕૿͑Δ 31

  32. ςΩετ ͓નΊΛ͋͛Δͱ͢Ε͹ 32

  33. ઓྗʹͳΔΤϯδ χΞ ͜͜Ͱ͸ओʹ৽ਓʹ෇͍ͯ࿩͠·͢

  34. ઓྗʹͳΔΤϯδχΞ ։ൃνʔϜʹࢀՃ͔ͨ࣌͠Βϓϩμ Ϋτͷίʔυ͕όϦόϦॻ͚ΔΤϯ δχΞ 34

  35. ઓྗʹͳΔΤϯδχΞ ։ൃνʔϜʹࢀՃ͔ͨ࣌͠Βϓϩμ Ϋτͷίʔυ͕όϦόϦॻ͚ΔΤϯ δχΞ ͦΜͳਓ͕ɺݱΕΔ֬཰͸ۃΊͯ௿ ͍ɺಛʹ৽ਓͰ͸ ͍ͨΒϥοΩʔ 35

  36. ઓྗʹͳΔΤϯδχΞ ։ൃνʔϜʹࢀՃ͔ͨ࣌͠ΒνʔϜ ϝϯόʔͷগͳ͍ࢦࣔͰɺख͚ͩ͢ ʹͳΔΤϯδχΞ ΍͕ͯҰਓલͷΤϯδχΞʹͳΓͦ ͏ͳਓ 36

  37. ઓྗʹͳΔΤϯδχΞ ։ൃνʔϜʹࢀՃ͔ͨ࣌͠ΒνʔϜ ϝϯόʔͷগͳ͍ࢦࣔͰɺख͚ͩ͢ ʹͳΔΤϯδχΞ ΍͕ͯҰਓલͷΤϯδχΞʹͳΓͦ ͏ͳਓ 37

  38. গͳ͍ࢦࣔ ίϛχϡέʔγϣϯͷ໰୊͸͜͜Ͱ͸औΓ্͛·ͤΜ ίʔσΟϯάͳͲͷࡉ͔͍͜ͱΛࢦ ࣔ͠ͳͯ͘΋ɺͦΕͳΓͷίʔυ͕ ॻ͚Δ ௚͙ʹ͸ग़དྷͳ͘ͱ΋ਖ਼͍͠Ξϓ ϩʔνΛ͍ͯ͠Δ 38

  39. ҰਓલͷΤϯδχΞ ϓϩάϥϛϯάͷجຊతͳ஌ࣝɾܦݧ γεςϜΛઃܭͰ͖Δ஌ࣝɾܦݧ ৽͍ٕ͠ज़͕शಘͰ͖Δ τϥϒϧʹରԠग़དྷΔ ࣗલͷ఩ֶʜ 39

  40. ࢖͑ΔΤϯδχΞ ʹ੒ΔͨΊʹڭ͑ ͍ͨ಺༰

  41. ίʔυॻ͘಺༰ʹ͢Δ ࣮ࡍʹίʔυΛॻ͍ͯ΋Β͏ खΛಈ͔͠ɺࣦഊ͢ΔࣄͰֶΜͰ ΋Β͏ डߨऀͷཧղ΍ೳྗΛ஌Δࣄ͕Ͱ ͖Δ 41

  42. ӳޠυΩϡϝϯτʹ৮ΕΔ ·ͣ͸ӳޠ͕ಡΊΕ͹ྑ͍͜ͱΛ఻͑Δ ӳޠͱ͍͏ͱӳձ࿩Λ૝૾͢Δਓ͕ଟ ͍͕ ӳޠυΩϡϝϯτΛಡΉίπΛڭ͑Δ 3VCZPO3BJMT΍(FN͸ӳޠ͕ଟ͍ͷ Ͱඇৗʹྑ͍ 42

  43. σόοάͷجຊ ਪ࿦Ͱ͸ͳ͘ࣄ࣮ʹجͮ͘ݪҼ௥ٴ ΤϥʔϝοηʔδɺϩάͷಡΈํ ͱ͘ʹɺ৽ਓ΍8FCΞϓϦܦݧͷ ແ͍ํʹ͸ඞਢ 43

  44. ྑ͍ίʔυͷॻ͖ํ ͳͥɺྑ͍ίʔυΛॻ͔ͳ͍ͱ͍ ͚ͳ͍ͷ͔ ໊લॏཁ 3VCZͷίʔσΟϯάश׳ ৽ਓͷ৔߹͸௒ॏཁ 44

  45. 8FCΞϓϦέʔγϣϯͷجຊ )551ϓϩτίϧ )5.- $44 3%#ͷجຊ 45

  46. 8FCΞϓϦ։ൃʹ͸޿͍ ஌͕ࣝඞཁ "QQMJDBUJPO 'SBNFXPSL 3VCZPO3BJMT -BOHVBHF 3VCZ -BOHVBHF +BWB4DSJQU "KBY

    )5.- $44 -JCSBSZ (FN 04 -JOVY 3%#TFSWFS .Z42- 3%#42- "QQTFSWFS 6OJDPSO 8FCTFSWFS BQBDIF /FUXPSL 5$1*1 -JCSBSZ K2VFSZ 1SPHSBNNFS %FTJHOFS *OGSBTUSVDUVSF FOHJOFFS 46
  47. 8FCͷ੬ऑੑʹ͍ͭͯ 944ɺ42-*OKFDUJPOɺ$43'ͳͲ ͷ஌ࣝͱରࡦ ࣮ࡍʹ੬ऑੑͷ͋ΔΞϓϦΛ࡞Γσ Ϟ͢Δͱྑ͍ͱࢥ͍·͢ ੬ऑੑ͕͍͔ʹ؆୯ʹ࡞Εͯ͠·͍ɺ ඃ֐͕ग़ΔࣄΛମݧͯ͠΋Β͏ 47

  48. ίʔυϨϏϡʔ͕ޮՌత ద౰ͳίʔυΛॻ͍ͯ΋Β͏ ϨϏϡʔͷϙΠϯτ ίʔσΟϯάɾελΠϧ ໊લ෇͚ ந৅Խ 48

  49. ίʔυϨϏϡʔ͕ޮՌత ৽ਓͷ͏ͪʹྑ͍श׳Λ෇͚Δ ϓϩάϥϛϯάग़དྷͳ͍ํ΁ͷରԠ ݸผʹΠϯλϏϡʔ͠൑Βͳ͍఺Λ Έ͚ͭΔ ݸผʹࢦಋ ͞Βʹ՝୊Λग़͠܁Γฦ͢ 49

  50. ίʔυΛಡΜͰ΋Β͏ ຊΛಡ·ͳ͍খઆՈ͕͍ΔͩΖ͏͔ʁ ԻָΛௌ͔ͳ͍ϛϡʔδγϟϯ͕͍Δ ͩΖ͏͔ʁ ग़དྷΔΤϯδχΞ͸ίʔυΛಡΉೳྗ ͕ߴ͍ 044࣌୅ͷΤϯδχΞ 50

  51. Α͋͘Δ੿͍ڭҭελΠϧ  ϓϩάϥϛϯάݴޠ จ๏ɺҙຯ ͷઆ໌  ίʔσΟϯάͤ͞Δ 51 ίʔυ͕ॻ͚ͳ͍ ίʔυ͕ࠅ͍

    ϓϩάϥϛϯάܦݧ͕ઙ͍ํ
  52. ίʔυΛಡΜͰ΋Β͏ طଘͷྑ͍ίʔυΛߨࢣͱҰॹʹಡΜͰ ΋Β͍ϓϩάϥϛϯάΛֶΜͰ΋Β͏ ந৅Խ ελΠϧ ໋໊ 52

  53. ධՁ

  54. ධՁɿϖʔύʔςετ ϝϦοτ ࡞੒ɺ࠾఺͕ൺֱత༰қ σϝϦοτ ภࠩ஋ͷߴֶ͍ߍΛग़ͨํ͸ςε τͰྑ͍఺਺͕औΕΔ͕ɺίʔυ Λॻ͘ೳྗͱ͸ඞͣ͠΋ൺྫ͠ͳ ͍Α͏ͩ 54

  55. ධՁɿίʔυΛॻ͔ͤΔ ϝϦοτ ϓϩάϥϛϯάೳྗ͕൑Δ σϝϦοτ ίʔυͷධՁʹ͸ख͕͔͔ؒΔ ධՁऀΛෳ਺ʹ͢Δͷ͸೉͍͠ʁ 55

  56. ݁࿦

  57. ΤϯδχΞΛࣗࣾͰҭͯΔ ௕ظతʹ͸ϕετͳબ୒ ࠓ͸গ਺ਫ਼ӶͰ΋Ϗδωε͕֦େ͠ ͨ࣌ͷࣄΛߟ͑Δ΂͖ ڭҭγεςϜཱ͕֬Ͱ͖Ε͹ɺத్ ࠾༻΍ਓࡐ೿ݣͳͲෆ֬ఆͳཁૉʹ ؔ܎ͳ͘੒௕Ͱ͖Δ 57

  58. ڭҭۀऀΛ্ख͘࢖ͬͯԼ ͍͞ ڭҭۀऀ ೖ໳ɺجૅΛֶͿ ࢖͑ΔΤϯδχΞΛ࡞Δˡ&:0⒏DF ࣾ಺ڭҭɺ0+5 ݱ࣮ͷ࢓ࣄͰ࢖͑Δٕज़Λ਎ʹ͚ͭΔ 58

  59. 2" 59