2021/01/19 の Forkwell Engineer Career Study の資料です
εϖγϟϦετʹͳΔ֮ޛ2021/01/16 @ Engineer Career Study #1
View Slide
Twitter: @yosuke_furukawaGithub: yosuke-furukawa࠷ۙͷ׆ಈ$ISPNF"EWJTPSZ#PBSE+4$POG+1PSHBOJ[FSFUD
ϚωʔδϟʔͱεϖγϟϦετ
ITΤϯδχΞͷΩϟϦΞͱͯ͠ޠΒΕΔʮεϖγϟϦετʯͱͳΜͳͷ͔ɻҰൠతͳΩϟϦΞͱͯ͠ޠΒΕ͍ͯΔͷͷɺҰͭͷઐੑͷΈͰڅྉΛ͍͋͛ͯ͘͜ͱͷ͠͞Λײ͡ΔΤϯδχΞɺࣗͷߟ͑ͱཪෲʹϚωʔδϟʔͷಓΛٻΊΒΕΔํ͍·͢ɻhttps://forkwell.connpass.com/event/200159/
Զ͡ΌΜ...(γχΞιϑτΣΞΤϯδχΞ݉άϧʔϓϚωʔδϟ)
ͦͦεϖγϟϦετͱϚωʔδϟʔͳͥରཱ͢Δ֓೦͔ͷΑ͏ʹѻΘΕͯΔͷ͔
ݹయୈޒষʮϚωʔδϟʔͱԿ͔ʯϚωʔδϟʔͰ͋ΕɺઐՈͰ͋ΕɺϚωδϝϯτͷҰһͰ͋Δ͜ͱʹมΘΓ͕ͳ͍ɻϚωʔδϟʔͱઐՈͷҧ͍Ϛωʔδϟʔͷ΄͏͕Ұ͚ͭͩ༨ͳଆ໘Λ͍࣋ͬͯΔͱ͍͏ࣄ͚ͩͩɻɹɹɹɹɹʹʹதུʹʹҧ͍ɺػೳͰߩݙͰͳ͘खஈʹ͋Δɻ྆ऀʹཁٻ͞ΕΔͷಉ͡Ͱ͋Δɻhttps://www.diamond.co.jp/book/9784478410233.html
εϖγϟϦετݸਓͰՌΛग़͢ਓ
Ϛωʔδϟʔ৫ΛӡӦ͠ՌʹΛ࣋ͭਓ
εϖγϟϦετݸਓͰՌΛग़͢ਓϚωʔδϟʔ৫ΛӡӦ͠ՌʹΛ࣋ͭਓͦͦڥքઢ͕ͦ͜·Ͱ͖ͬΓ͍ͯ͠ͳ͍ɻιϑτΣΞ։ൃʹ͓͍ͯಛʹɻ
εϖγϟϦετιϑτΣΞ։ൃʹ͓͍ͯݸਓ୯ମͰՌΛग़͢͜ͱ͕গͳ͍ɻνʔϜ։ൃͱͯ͠νʔϜશମͰՌΛग़͢ඞཁ͕͋Δɻ
ϚωʔδϟʔιϑτΣΞ։ൃʹ͓͍ͯϚωʔδϟʔઐతͳࣝඞཁɻਐԽͷ͍ۀքͰखΛಈ͔ͯ͠Πϯϓοτ͢Δඞཁ͋Δɻ
εϖγϟϦετͱϚωʔδϟʔରཱ͢Δ֓೦͡Όͳ͍ͱ͍͏ࣄΛೝࣝͯ͠΄͍͠ɻεϖγϟϦετͰ͋ͬͯਓΛϦʔσΟϯάͨ͠Γɺҭ͢Δඞཁ͋Δ͠ɺϚωʔδϟʔͰ͋ͬͯίʔυॻ͘ɻ
ʮϚωʔδϟʔʹͳͬͯ΄͍͠ʯͱݴΘΕͨ࣌ʹΫϥγοΫͳఆٛͷϚωʔδϟʔͷҹ͔ΒωΨςΟϒʹߟ͑Δͷ͍ͬͨͳ͍ɻ
ݹϚωʔδϟʔʹͳͬͯ΄͍͠ͱݴΘΕͨ࣌ʹʮͬͨ͜ͱͳ͍͔ΒͬͯΈ͍ͨʯͱࢥͬͨɻ
εϖγϟϦετಉ༷ɺࣗͷΓ͍ͨ։ൃΛଓ͚ΔͳΒνʔϜશମʹߟ͑ํΛ͛Δඞཁ͕͋Δ͠ɺͦͷͨΊʹϚωʔδϟʔ͕ΔΑ͏ͳࣄΔඞཁ͕͋Δɻ
ͱ͍͑ɺେมͦ͏...
ͷ߹
γχΞΤϯδχΞ• ΞϓϦέʔγϣϯ։ൃͦͷͷʹؔΘΔ͜ͱগͳ͍ʢͨ·ʹͦΕΔ͚ͲΔͱ͖ࠈʣ• ͦͦͷઃܭϓϩτλΠϓ։ൃ͕ϝΠϯ• ։ൃͷखॿ͚ʹͳΔΑ͏ͳϥΠϒϥϦͷ։ൃOSSͷதʹ౿ΈࠐΜͩௐࠪ߹ʹΑͬͯPRΛग़͢ɺ·ͱ·ͬͨΒϒϩάͰࣝΛڞ༗͢ΔͳͲ
ҰํͰϚωʔδϟʔͱͯͬͯ͠Δ͜ͱ• ϝϯόʔͷλεΫΞαΠϯʢΓ͍ͨ͜ͱͱΒͳ͖Ό͍͚ͳ͍͜ͱΛ߹ΘͤΔʣ• ࠾༻ɺҭʢ໘༏लͳީิऀͷ͔͚ɺ৽ਓݚमͷߨࢣʣ• ษڧձϋοΧιϯͳͲɺࣾͰΤϯδχΞίϛϡχςΟ࡞Γ• ࠾༻ϝϯόʔ͕༏लͰ͋ΔͱɺͲΕͦΜͳʹ͘͠ͳ͍ɻίϛϡχςΟ࡞ΓࣗͷϥΠϑϫʔΫʹ͍ۙͷͰͦ͜·Ͱ͘͠ͳ͍ɻ
ϚωδϝϯτͱεϖγϟϦετͷཱ͕྆େม͔Ͳ͏͔ϝϯόʔʹڧ͘ґଘ͢Δɻपғͷϝϯόʔ͕༏लͳΒϚωδϝϯτΛߦ͍ͳ͕ΒίʔυΛॻ͘͜ͱՄೳܲͱཛͷΑ͏ͳؔʹͳ͍ͬͯΔɺͳͷͰେมɻ࠾༻ҭҰேҰ༦ͰͰ͖ͳ͍ɻ͜͜·ͰདྷΔͷʹ͔͔ͬͨɻ
εϖγϟϦετൃද044ϥΠϒϥϦαʔϏεOutputφϨοδϚωʔδϟʔTeamAssignShareEngineer CommunityRecruitment
εϖγϟϦετൃද044ϥΠϒϥϦαʔϏεOutputφϨοδϚωʔδϟʔTeamAssignShareEngineer CommunityRecruitmentεϖγϟϦετνʔϜ͕Ξτϓοτͨ͠ͷΛڞ༗͠ɺίϛϡχςΟʹؐݩϚωʔδϟʔ͔ͦ͜ΒڵຯΛ࣋ͬͯ͘ΕͨਓΛ࠾༻͠ɺҭͯ͠νʔϜʹؐݩ
Q.εϖγϟϦετͱϚωʔδϟʔΛ྆ํΔͷେมʁA. ͪΖΜେม͚ͩͲ྆ํΕΔ͜ͱ͕ཧେม͞ΛΓӽ͑ΕΓ͍ͨ͜ͱ͕͕͍ͬͯ͘ɻ
ͦͦεϖγϟϦετʹͳΔͬͯͲ͏ͬͨΒΕΔͷ͔...?
ϦΫϧʔτʹ͓͚ΔγχΞͷཁ݅• ࣾ֎ͰΤΩεύʔτͱͯ͠ೝ͞Ε͍ͯΔ͜ͱʢNode.js ͷୈҰਓऀͱͯ͠ೝࣝ͞Ε͍ͯΔʣ• ͦͷਓ͕Ұਓ͍Δ͚ͩͰɺϓϩμΫτઓུ͕มΘΔɻࠓ෩ʹݴ͏ͱɺʮபʯʢ௨ৗͰ࡞Εͳ͍Α͏ͳͷ࡞ΕΔɺϋΠύϑΥʔϚϯεͳΞϓϦέʔγϣϯʣ• γχΞʹͳΔͱɺϝϯόʔ͔ΒϩʔϧϞσϧͱͯ͠ೝࣝ͞ΕΔ
ΤϯδχΞʹͳΔ֮ޛ• 3΄Ͳલʹൃදͨ͠• ΞϓϦέʔγϣϯΛ࡞Ζ͏• ඇػೳཁ݅ʹͩ͜ΘΖ͏• ࣝʹ֞ࠜ࡞Βͳ͍
εϖγϟϦετʹͳΔͨΊʹ৺͕͚Δ͜ͱ• ࣗͷʹ͢Δ• ଉΛు͖ଓ͚Δ• Կ͔͠ΒͷνϟϨϯδΛଓ͚Δ
ࣗͷʹ͢Δ
Node.js ຊϢʔβʔάϧʔϓදʹͳͬͨ࣌ͷࠒ (2014)
Node.js ࠞཚظͰͨ͠ɻ
ࢭ·Γଓ͚ΔϦϦʔεRevert͞Εଓ͚ΔίϛοτҰͭୡ͠ͳ͍ϚΠϧετʔϯ
io.js ͱ Node.js ͱ͍͏அ
͜ͷ࣌ʹࢥ͍ͬͯͨͷɺʮNode.jsͱio.jsͷࠞཚΛࢭΊͳͯ͘ʯ
Node.js fork ͞Εͯ io.js ʹϝΠϯίϛολ͕ྲྀΕɺ Node.js Node.js ͰϨΨγʔ։ൃͱͯ͠ෆ۩߹मਖ਼͕ਐΉసػ
ࠓ·Ͱάϩʔόϧʹى͖͍ͯΔมߋΛϩʔΧϧʢຊʣʹ͑Δ͜ͱ͔ͯ͠͠ͳ͔ͬͨɻݴΘɺ֎Ͱى͖͍ͯΔ͜ͱΛ͑Δ͚ͩͩͬͨɻ
Node.jsͰى͖ͯΔ͜ͱΛ io.js ʹల։͠ɺ io.js Ͱى͖ͯΔ͜ͱΛ Node.js ʹϑΟʔυόοΫ͢ΔࣄͰɺมߋͷࠩΛখ͘͢͞Δ͜ͱʹΊͨɻ
ͦ͏͢ΕɺҠߦͦ͜·Ͱ͘͠ͳ͍ɻͲͬͪΛબͿ͔Ϣʔβʔ͕બ͢Εྑ͍ɻ
ٕज़తʹى͖͍ͯΔมԽΛ୭͔͕ͬͯ͘ΕΔͱࢥͬͯͤΔͷͰͳ͘ɺࣗͷ͜ͱͱͯ͠Λ͏ɻ
݁Ռ: 2015ʹ Node.js ͱ io.js ౷߹ͦͷ࣌ͷ׆ಈ͕͖͔͚ͬͰίΞίϯτϦϏϡʔλʔ݉ΤϰΝϯδΣϦετʹɻ
ଉΛు͖ଓ͚Δ
ଉΛు͖ଓ͚Δ =ΞτϓοτΛ͠ଓ͚Δ
ଉΛు͖ଓ͚ΔͱٵΘͳ͍ͱ͍͚ͳ͘ͳΔɺΠϯϓοτܧଓతʹͰ͖ΔΑ͏ʹͳΔ
Node.js / io.js ૽ಈ͕͔͋ͬͨ࣌Βಛʹߟ͑ํʮάϩʔόϧΛҙࣝͯ͠Δʯ
άϩʔόϧͰͬͯΔ͜ͱΛຊʹೖΕΔΑΓຊͰى͖ͯΔ͜ͱΛάϩʔόϧʹల։͢Δ
ͳͷͰΞτϓοτάϩʔόϧΛҙ͍ࣝͯͨ͠ɻjsconf.asia 2016Node interactive 2017AMP Fest 2020
ຊͩͱੈքͷϩʔΧϥΠζͰൃදʹͳΔ͚Ͳੈքͩͱͦͷ্Λ͍͑ͯ͘ඞཁ͕͋ΔɻͳͷͰΞτϓοτ࣭͕มΘΔɻ
Կ͔͠ΒͷνϟϨϯδΛଓ͚Δ
1ؒͱ͍͏εύϯΛઃ͚ͯԿΒ͔ͷνϟϨϯδΛଓ͚͖ͯͨɻJapan Node.js Association ๏ਓԽ ೦ئͷ JSConf.JP ։࠵
͜͜࠷ۙϚωʔδϟʔ͚ͩͲຖίʔυॻ͘ͷΛΔͷΛνϟϨϯδʹ͍ͯ͠·͢ɻLeetcode Λຖղ͍ͯΔʢ࠷ۙRustͰ) Write Code Everyday Ͱ1ܧଓ
ৗʹͳʹ͔ΔɻखΛಈ͔͢͜ͱΊͳ͍ɻ
ίϯϑΥʔτκʔϯʹཹ·Βͳ͍Α͏ʹͯ͠ΔʢͭΓʣ
·ͱΊ
·ͱΊ• ϚωʔδϟʔͱεϖγϟϦετ• ϚωʔδϟʔͱεϖγϟϦετରཱ֓೦͡Όͳ͍• ιϑτΣΞ։ൃʹ͓͍ͯΉ͠Ζڞ௨߲͕ଟ͍• ཱ྆͢ΔͷͪΖΜେม͚ͩͲɺΓӽ͑ΕΓ͍ͨ͜ͱ͕Ͱ͖Δ• εϖγϟϦετʹͳΔʹ• ࣗͷʹ͢Δ• ଉΛు͖ଓ͚Δ• ৗʹԿ͔͠ΒνϟϨϯδ͢Δ
ͦͯ͠ࠓ܅͕ͨͪޙഐΛकΔபͱͳΔͷͩɻ(َ໓ͷਕ 8ר: Ẃࠈҍण)ஶ: ޗಕݺੈ ग़൛ࣾ: ूӳࣾ ग़൛: 2017
͋Γ͕ͱ͏͍͟͝·ͨ͠