Upgrade to Pro — share decks privately, control downloads, hide ads and more …

野球エンジニアになるまでの歩み〜夢は正夢 #devsumi

野球エンジニアになるまでの歩み〜夢は正夢 #devsumi

Developers Summit 2018講演資料
http://event.shoeisha.jp/devsumi/20180215/session/1625/

#野球 #Python #エンジニア #生き方

Shinichi Nakagawa

February 15, 2018
Tweet

More Decks by Shinichi Nakagawa

Other Decks in Business

Transcript

  1. Who am I ?(͓લ୭Α) • ΨνͰ໺ٿΛੜۀͱ͢ΔΤϯδχΞͰ͢ • Shinichi Nakagawa(@shinyorke) •

    (ג)ωΫετϕʔε CTO(2݄͔Β) • ओͳ׆ಈྺ • PyCon JPొஃ(2014-2017) • Python΋͘΋ࣗ͘शࣨ(#Rettypy)ओ࠵ • ͦͷଞ,PythonίϛϡχςΟΛத৺ʹग़຅ • ࠷ۙͷϚΠϒʔϜʮApache Spark(PySpark)ʯ • #Python #໺ٿ #ηΠόʔϝτϦΫε #ΞδϟΠϧ #UKRock #ڕྉཧ ※ࠨ୺͕୅දͷதඌ,ӈ͔Β2൪໨͕ϫΠ
  2. ʲCMʳωΫετϕʔε #ͱ͸ • Innovations For All Athletes
 (શͯͷΞεϦʔτʹٕज़ֵ৽Λ) • τϥοΫϚϯ(υοϓϥʔϨʔμʔ)͔ΒಘΒΕͨ౤ٿσʔλΛղੳ͠,


    ෼ੳɾՄࢹԽΛߦ͏ϓϩμΫτʮBACS(όοΫε)ʯΛఏڙ • ໺ٿΛத৺ͱͨ͠બखɾٿஂͷίϯαϧςΟϯάɾαϙʔτetc… • ৄ͘͠͸ͪ͜ΒͰˠ http://nextbase.co.jp/ • ΤϯδχΞ(Θͨ͠)͕JOINͨ͜͠ͱʹΑΓ,ࠓޙߋʹ໘ന͘͠·͢ʂ ※BACS͸ʮBaseball Analytics and Coaching Systemʯͷུ
  3. ʲCMʳPython΋͘΋ࣗ͘शࣨ #rettypy • ࢲͱRettyͷΤϯδχΞ͕ओ࠵͢ΔPython΋͘΋͘ձ • झࢫ&Ϟοτʔ • ֤ࣗ,͓୊Λ࣋ࢀͯ͠ʮࣗश(΋͘΋͘)ʯ͢Δ • ൃදɾࡶஊΛ௨ͯ͡৘ใަ׵΍ֶͼΛಘΔ

    • ΠΠΰϋϯ(ϥϯνɾ͓΍ͭ)Λ༇͠Ή • ॳ৺ऀ͔ΒΤόϯδΣϦετ·Ͱଟछଟ༷ͳࢀՃϝϯόʔ • ։࠵༧ఆɾৄࡉ͸RettyͷconnpassαΠτ΋͘͠͸ Twitterʮ#rettypyʯΛνΣοΫʂ
 https://retty.connpass.com
  4. Կނσϒαϛʹʁʁʁ • ͱ͋Δϒϩά(ޙड़)Λݟͨ,ओ࠵ऀ(ᠳӭࣾ͞·)͔Β͝ґཔΛ௖͍ͨ • ґཔ಺༰ʮΤϯδχΞͷΩϟϦΞઓུʹ͓͚Δηϧϑϓϩσϡʔεʯ • ࣗ෼ͷ໨ࢦ͍ͨ͠ํ޲ʹ޲͔͏ਓ΁ͷΞυόΠε • ྫ͑͹…ʮ࢓ࣄɾษڧͷऔΓ૊Έํʯ •

    ྫ͑͹…ʮର֎׆ಈ(ίϛϡχςΟ׆ಈ)΍Ξ΢τϓοτͲ͏ͨ͠ʁʯ • …Λ௨ͯ͡ҟۀछస৬ΛΩϝͨํʹ͓࿩ΛͰ͢Ͷ(ry • ϫΠʮ(Α͏Θ͔ΒΜ͚Ͳ)ࣗ෼ͷ࿩Λ͢Ε͹͍͍ΜͰ͢Ͷ(๮)ʯ
  5. ελϝϯҎ্ʹͳΔͨΊʹ͸ • ᶃѹ౗తͳಘ఺ೳྗ(ʹଧܸͱ૸ྥͷ૯߹ೳྗ) • ԕ͘ʹϘʔϧΛඈ͹͢ྗ(௕ଧྗ)+ਓΑΓϕʔεΛ଎͘ճΕΔྗ(٭) • ྥʹग़ΔೳྗʢώοτΛଧͭ,࢛ٿΛબͿʣ • ᶄ଍ख·ͱ͍ʹͳΒͳ͍ఔ౓ͷकඋ •

    ελϝϯͰ࢖ΘΕΔఔ౓ͷकඋྗɹ˞ઈରతʹ্ख͍ඞཁ͸Ҋ֎ແ͍ • νʔϜ಺ʹಉϙδγϣϯͷڝ߹͕͍ͳ͍ • ᶃ + ᶄͷ଍͠ࢉͰ,ϓϥεҎ্ͷબख͕ελϝϯͱͯ͠ೝΊΒΕΔ
 →ηΠόʔϝτϦΫεͷධՁํ๏ͷҰͭɹ※ҟ࿦͸ೝΊ·͢(ଞͷධՁํ๏΋͋Δ)
  6. զࢥ͏ʮΤϯδχΞͷελϝϯʯ • ᶃѹ౗తͳʮΤϯδχΞͱͯ͠ͷڧΈʯΛ࣋ͭ • PythonͱΞδϟΠϧͷ͜ͱͳΒνʔϜ(ձࣾ)ͷ୭ʹ΋ෛ͚ͳ͍ • ͳΜͩͬͨΒ,ࠃ಺࠷ߴϓϨʔϠʔ΋໨ࢦ͢,Ͱ΋Ұ౳৆͡Όͳͯ͘΋͍͍ • ᶄ଍ख·ͱ͍ʹͳΒͳ͍ఔ౓ͷʮϏδωεྗʯΛൃش͢Δ •

    ࣗࣾαʔϏεͷυϝΠϯྖҬ(ࣄۀ+α)ʹର͢ΔѪ৘ͱ஌ࣝ • ࠷௿ݶͷίϛϡχέʔγϣϯ(ϓϨθϯεΩϧɾυΩϡϝϯτॻ͚Δྗetc…) • ᶃ + ᶄͷ଍͠ࢉʹݟ߹͓ͬͨڅྉΛ͍ͨͩ͘ʂ
 →ʮνϟϨϯδʯʮເʯΛཧ༝(ݴ͍༁)ʹσΟεΧ΢ϯτ(஋Լ͛)Λ͠ͳ͍
  7. PythonίϛϡχςΟ΁ • ΄΅ຖ݄։࠵ͷ΋͘΋͘ձʮPython mini hack-a-thon(#pyhack)ʯʹࢀՃ • ऴ࢝PythonͰ໺ٿʹؔ͢ΔHackΛͨ͠ • σʔλूΊ •

    WebΞϓϦ։ൃ • ෼ੳ • ΋͘΋͘ձ࠷ޙͷൃදλΠϜͰ΍ͬͨ͜ͱΛ൸࿐,
 Python͓Αͼपลٕज़ʹؔ͢ΔϑΟʔυόοΫΛ΋Β͏ • ϑΟʔυόοΫΛݩʹ࠶ͼhack→ঃʑʹϓϩμΫτͱ࿹͕ຏ͔ΕΔ
  8. ΩϟϦΞνΣϯδͷػӡ(not໺ٿ) • ࣄۀձࣾͰͷνϟϨϯδʹڵຯ͕༙͘ • Ϗδωε(WebͷαʔϏε΍Γ͍ͨ) • ςΫϊϩδʔ(Python΍Ϗοάσʔλ΍Γ͍ͨ) • ΤϯδχΞϦϯά(ࣗࣾࣄۀ΁ͷίϛοτ) •

    ϦʔϯελʔτΞοϓɾΞδϟΠϧΛ׆͔͢ͷ΋
 ίϯαϧΑΓࣗࣾࣄۀ࣋ͬͯΔͱ͜ΖͰ΍Δ΄͏͕ྑͦ͞͏(ϝονϟ΍Γ͔ͨͬͨ) • ·ͣ͸ϝΨϕϯνϟʔͰʮࣄۀʹߩݙ͢ΔʯϛογϣϯΛΤϯδχΞͱͯ͠΍Γ͍ͨʂ • 3ࣾʹߜͬͯస৬׆ಈ…͠Α͏ͱࢥͬͨΒ౰࣌ϦΫϧʔτʹ͍ͨ༑ਓ͔Β༠ΘΕΔ
 ˠΞδϟΠϧίϛϡχςΟͰͷ׆ಈ͕ΩοΧέʹɹ˞3ࣾͷ಺ͷ1͕ࣾϦΫϧʔτͰͨ͠
  9. PyCon JP 2014ొஃ • લ৬(ϕΠΧϨϯτ)࣌୅ʹܾΊͨPyCon JP 2014ʹొஃ(ೖࣾೋिؒ໨) • ςʔϚʮPythonͰ͸͡ΊΔ໺ٿϓϩάϥϛϯάʯ •

    Django(WebϑϨʔϜϫʔΫ)Ͱ໺ٿΞϓϦ։ൃ • ηΠόʔϝτϦΫεࢦඪʹج͍ͮͨ෼ੳɾղઆ • ͍ͭͰʹLT(ΞμϜɾμϯ཰)΋΍Δˠ·͔͞ͷେരসwww • ʮ໺ٿΤϯδχΞ(໺ٿͷਓ)ʯϒϥϯυཱ͕֬͢Δ
  10. ͦͷޙͷ໺ٿͳ׆ಈ(2014-2015) • PyCon JP 2014ͷ൓ڹͰ… • WebϝσΟΞ(gihyo.jp)Ͱ঺հ͞ΕΔ • CROSS2015ͷPythonίϛϡχςΟ࠲ஊձͰύωϥʔʹɹ˞໺ٿPython୅ද •

    ϒϩάʮLean Baseballʯͷ໺ٿ෼ੳهࣄ͕ϗοτΤϯτϦʔ࿈ൃ • ϝδϟʔϦʔάͷσʔληοτߏஙɾ෼ੳπʔϧͷOSSԽ • ෼ੳؔ܎ͷωλهࣄ • PyCon JP 2015΁ͷ௅ઓ • Python×σʔλ෼ੳͷج൫ߏஙωλΛԠืˠAccept͞Ε,ొஃܾఆ(2೥࿈ଓ) • ຊ൪ͷτʔΫʮ໺ٿHackʙPythonΛ΋͍ͪͨσʔλ෼ੳͱՄࢹԽʯ͕େώοτ
  11. ίϛϡχςΟͱͷ෇͖߹͍ • ܧଓతʹࢀՃͭͭ͠,ʮ࿩͢ʯʮ఻͑Δʯํ޲ʹεΠον • Python • Ҿ͖ଓ͖,΋͘΋͘ձ(#pyhack , #mokupy ͳͲ)ʹࢀՃ

    • ࣗ෼ͷ΋͘΋͘…͚ͩͰͳ͘,ٞ࿦ʹੵۃࢀՃ&ࠔͬͯΔํͷαϙʔτ • ΞδϟΠϧ • ϫʔΫγϣοϓɾσΟεΧογϣϯʹੵۃࢀՃ • ٞ࿦ɾϫʔΫ͕ఀ଺࣌͸͓ߏ͍ͳ͠ʹϑΝγϦΛ΍ͬͨ • ʮPython΋ΞδϟΠϧ΋,΋͏ॳ৺ऀͰ͸ͳ͍,࣮ફऀ΍ʂʯ
 ͱ͍͏ҙࢤͱؾ࣋ͪͰ΍ͬͨˠ݁Ռ,ֶͼɾ࣮ྗɾ৴པஷ͕ۚಘΒΕͨ
  12. ϏβεΫͰͷ͓࢓ࣄɾମݧ • ΍ͬͨ͜ͱ • αΠτͷSEOվળ΍தʙখن໛ࢪࡦΛͻͨ͢Β • ։ൃ؀ڥɾ։ൃϓϩηεͷվળ
 (ΞδϟΠϧͱ͔ࣗಈςετ) • ػցֶशϓϩδΣΫτ(ϞσϧɾAPIઃܭʙߏங)

    • ͦͷଞ,࠾༻ɾΠϯλʔϯͷϝϯλʔɾ(Ұ࣌తʹ)ΧελϚαϙʔτͱ͔etc… • ϚϯγϣϯҰ෦԰ͷελʔτΞοϓͷதͰྑ͍ܦݧ͔Βਏ͍ܦݧ͔Β
 ͨ͘͞Μͷ஌ݟɾֶͼΛಘͨ
  13. Ұํͦͷࠒ໺ٿ͸ • ϝδϟʔϦʔάͷҰٿ଎ใσʔλʮPitch f/xʯͷެ։σʔλΛऔಘ&εΫϨΠϐϯά ͢ΔOSSʮpitchpxʯΛPythonͰ։ൃ&ެ։ • Pitch f/x͓ΑͼpitchpxΛ,PyCon JP 2016τʔΫηογϣϯ


    ʮϏοάσʔλͱPythonͰ͸͡ΊΔ໺ٿͷ౷ܭ෼ੳʯ
 Ͱ࣮ફྫަ͑ͯ঺հɹ˞@a_macbee͞Μͱڞಉൃද • ϫΠʮ೔ຊϓϩ໺ٿ΋΍Γ͍ͨϯΰʯ
 …ͬͯࣄͰ,޿ౡͰΧʔϓωλ,ؔ੢Ͱࡕਆ&ΦϦοΫεͳωλΛൃද • PyCon mini Hiroshima 2016(೔ϋϜVS޿ౡ) • MonotaRO TechTalk #4ʮσʔλ෼ੳʯ(PyDataΛ࢖ͬͨࡕਆɾΦϦοΫε෼ੳ)
  14. RettyͰ΍͖ͬͯͨ͜ͱ • Engineering Manager(Tech Lead)ۀ • B to BϏδωεͷϓϩμΫτνʔϜΛ୲౰ •

    ։ൃܭըͱ͔ϓϥϯχϯάͱ͔࠾༻΋ • 1ΤϯδχΞͱͯ͠ͷMission • ଞαʔϏε࿈ܞͷϓϥοτϑΥʔϜ։ൃ(Python + AWSͷ૊Έ߹ΘͤͰ΍ͬͨ) • ΞδϟΠϧ(εΫϥϜ)ϓϩηεͷਁಁ • (ओʹPythonͰͷ)։ൃඪ४ͷਁಁɹ˞উखʹ΍ͬͯͨ(ΤϯδχΞతͳҙࢤͱҙ஍Ͱ) • ΤϯδχΞ޿ใɾ࠾༻ • ޿ใɾ࠾༻νʔϜͱ࿈ܞͯ͠ϒϩάɾϝσΟΞ࿐ग़ɾΠϕϯτग़ԋͷઓུࡦఆ&࣮ߦ • த్ɾ৽ଔ࠾༻ͦͯ͠TVग़ԋ(࣮࿩)
  15. ίϛϡχςΟ meets Retty • ࣗ෼͕JOIN͢Δલ͔Β,Retty͸ίϛϡχςΟͷαϙʔτΛ݁ߏ͍ͯͨ͠ • ͦͷྲྀΕʹศ৐͠,ΨϯΨϯࢧԉ(εϙϯαʔͱ͔)ͤͯ͞΋Βͬͨ • Python(PyCon mini

    Kumamoto, PyCon JP 2017, PyLadies TokyoͳͲ) • iOS/Android(potatotips, iOSDC΄͔) • ΞδϟΠϧ(DevLOVE) • ༗ࢤͷΤϯδχΞਞ…͚ͩͰͳ͘,޿ใνʔϜ΋લͷΊΓʹڠྗ
  16. ίϛϡχςΟ׆ಈ΁ͷελϯε(ࢲݸਓ) • ʮࣗ෼ΑΓए͍ਓ͕ͨͪ௅ઓͰ͖ΔػձΛఏڙ͢Δʯํ޲ʹؾ͕࣋ͪಈ͍ͨ • ϊ΢ϋ΢ɾϦιʔεɾࢥ૝ͷఏڙͱ఻ୡ • ஌ࣝɾ࠲૊ɾਓ຺ͱ͍ͬͨʮϊ΢ϋ΢ʯ • ৔ॴɾεϙϯαʔυ(͓ۚ)ɾ৯ࣄ(ञ)ͳͲͷʮϦιʔεʯ •

    ΠϕϯτɾίϛϡχςΟͷҙٛͳͲͷʮࢥ૝ʯ • ͓ͬ͞Μ(ࣗ෼)͕͍ͭ·Ͱ΋զ͕෺إ͠ͳ͍ํ͕݈શͱࢥͬͯ΍ͬͨ • एऀɾ৽͘͠དྷͨਓͨͪʹ΋ͬͱϊϏϊϏͱ΍ͬͯ΄͍͠ʂˡҰ൪ͷཧ༝
  17. ίϛϡχςΟ׆ಈ(2017) • Python΋͘΋ࣗ͘शࣨ #rettypy ελʔτ • ڭҭ৺ཧֶMeetup #1 ελοϑ&LT •

    ಡॻձ͔ΒࢀՃˠएऀ͕ͨͪΠϕϯτ΍Γ͍ͨʂˠاը͔Β։࠵,ৼΓฦΓ·ͰશྗͰڠྗΛܾҙ • Πϕϯτ౰೔͸ཪํʹపͨ͠(࢘ձͱ͔) • Rettyͱͯ͠Πϕϯτͷεϙϯαʔ΍ձ৔ఏڙ • PyData.Tokyo ʮ਺ཧ࠷దԽʯ˞ؠӬ͞Μొஃ • PyLadies.Tokyo 3प೥ه೦ύʔςΟʔ • PyCon mini Kumamoto 2017 ※ؠӬ͞Μɾத઒ొஃ,஛໺͘ΜLT • ݸਓ׆ಈ(΋͘΋͘ձ&ΠϕϯτొஃͳͲ)͸ྫ೥௨Γ&ଞʹ΋͍ͬͺ͍΍ͬͨ
  18. ωΫετϕʔε΁ͷಓ • PyCon JPͷൃද…ઈରʹ੒ޭͤ͞ͳ͍ͱʂ • ͜ͷ࣌(9݄ॳ०)͸·ͩJOINΛܾΊͯͳ͔ͬͨ • ͱ͸͍͑ʮ͍ͷҰ൪ʹத઒Λʯͱ͔ݴΘΕͨΒ׈ΔΘ͚ʹ͸͍͔ͳ͍ • ʮ໺ٿΛՊֶ͢Δٕज़ʯͱ͍͏୊ࡐͰൃදˠաڈ࠷ߴϨϕϧͷ੒ޭΛ੒͠਱͛ͨ

    • 2ճ໨ͷձ߹ • தඌʹՃ͑,໦Լ(૑ۀϝϯόʔ)ͱͷσΟεΧογϣϯ • BACS୲౰ऀΛަ͑,αʔϏεɾϓϩμΫτʹΑΓcommitͨ͠࿩Λͤͯ͞΋Βͬͨ • ޙ೔,தඌͱϝοηͷதͰॾ৚݅(ͱ͍͏͔೥ऩ)Λ߹ҙͷ্,JOINΛܾஅ
  19. Rettyʹײँ͍ͨ͜͠ͱ • MissionͷதͰͷܦݧ • Ϛωʔδϟʔۀ • ΤϯδχΞۀ • ޿ใɾ࠾༻ɾίϛϡχςΟαϙʔτ •

    ڧ͍ΤϯδχΞϝϯόʔ͔Βͷֶͼͱܹࢗ • Ḻੴ͞Μ,ؠӬ͞Μ,saku͞Μetc…OJ(Ojisan)੎ͷϓϩϑΣογϣφϧूஂ • ϠϯάͰ΍͍͖ͬͯʂͳ໘ʑ(஛໺͘Μ,෱Ҫ͞Μ,Ϧηογϡetc…) • ࠷ޙ·ͰʮRettyͰ΍͚ͬͯΑʂʯͱ࿹ΛҾͬுͬͯ͘Εͨ౻ాϚωʔδϟʔ
 ˠ࣍ͷ࢓ࣄ(ωΫετϕʔε)ʹͭͳ͕ΔΑ͏ʹ,ͱϛογϣϯ͔ΒԿ͔ΒԿ·ͰέΞͯ͠΋Βͬͨ(ྦ) • etc…Team Rettyͷօ͞Μϗϯτ͓ੈ࿩ʹͳΓ·ͨ͠ʂʂʂ
  20. CTO1೥ੜͱͯ͠(એݴ) • ໺ٿυϝΠϯʹରͯ͠ਅ伨ʹ΍͍ͬͯ͘ • ໺ٿʹڧ͍طଘϝϯόʔ(தඌɾਆࣄɾ໦Լ΄͔)ͱεΫϥϜ૊ΜͰ΍͍ͬͯ͘ • ͜ͷ෼໺͸ࣗ෼͕৽ਓ,ͱʹֶ͔͘ΜͰڧΈΛ׆͔͢ҝͷݚᮎΛ͍ͯ͘͠ • ϑΣʔζͷมԽʹ൐͏਺ʑͷνϟϨϯδΛʮΤϯδχΞʯͱͯ͠΍͍ͬͯ͘ •

    มΘΔ໾ׂΛʮνϟϨϯδʯͱͯ͠ଊ͑,ʮΤϯδχΞʯͱͯ͠ݗҾ͍ͯ͘͠ • ͜ΕΒΛ੒͠਱͛ΔͨΊ,ٕज़ɾΤϯδχΞϦϯάͷݚᮎΛ೔ʑॏͶΔ • RettyͰ͸͜ΕΒΛḺੴ͞Μ͕ϓϩμΫτͱελϯεͰ͍ࣔͯͨ͠(ࢲͷղऍ)
  21. ࠷௿ݶͷϏδωεྗ(ಛʹϓϨθϯ) • ٕज़͕͋ͬͯ΋,ਓʹ఻͑ΒΕͳ͚Ε͹ҙຯ͸ແ͍ • େ੾ͳͷ͸ʮυϝΠϯ஌ࣝʯʮυΩϡϝϯςʔγϣϯʯʮίϛϡྗʯ • ࣗࣾͷۀ຿ྖҬ಺ͷυϝΠϯ஌ࣝ,͍ΘΏΔʮۀ຿஌ࣝʯ • υΩϡϝϯςʔγϣϯ(จষɾֆਤΛඳ͘) •

    ίϛϡχέʔγϣϯྗ(ձ࿩ɾSNS) • ্ه3ͭͷ͏ͪ,࠷௿1ͭ͸ਓΑΓڧ͘,2ͭ͸ਓฒΈ͡Όͳ͍ͱਏ͍ͱࢥ͏ • ྫ͑͹,ػցֶशΤϯδχΞͳਓ͸υϝΠϯ஌ࣝͱϓϨθϯςʔγϣϯ͸ඞਢ
 ʮPythonਓฒΈʹ࢖͑·͢ʯʮ਺ֶ΍Ε·͢ʯ͚ͩͰ͸ઈରμϝ