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

スペシャリストになる覚悟

 スペシャリストになる覚悟

2021/01/19 の Forkwell Engineer Career Study の資料です

Yosuke Furukawa
PRO

January 19, 2021
Tweet

More Decks by Yosuke Furukawa

Other Decks in Technology

Transcript

  1. εϖγϟϦετʹͳΔ
    ֮ޛ
    2021/01/16 @ Engineer Career Study #1

    View Slide

  2. Twitter: @yosuke_furukawa
    Github: yosuke-furukawa
    ࠷ۙͷ׆ಈ
    $ISPNF"EWJTPSZ#PBSE
    +4$POG+1PSHBOJ[FSFUD

    View Slide

  3. ϚωʔδϟʔͱεϖγϟϦετ

    View Slide

  4. ITΤϯδχΞͷΩϟϦΞͱͯ͠ޠ
    ΒΕΔʮεϖγϟϦετʯͱ͸ͳ
    Μͳͷ͔ɻ
    ҰൠతͳΩϟϦΞͱͯ͠ޠΒΕͯ
    ͍Δ΋ͷͷɺҰͭͷઐ໳ੑͷΈͰ
    څྉΛ͍͋͛ͯ͘͜ͱͷ೉͠͞Λ
    ײ͡ΔΤϯδχΞ΍ɺࣗ਎ͷߟ͑
    ͱ͸ཪෲʹϚωʔδϟʔͷಓΛٻ
    ΊΒΕΔํ΋͍·͢ɻ
    https://forkwell.connpass.com/event/200159/

    View Slide

  5. Զ͡ΌΜ...
    (γχΞιϑτ΢ΣΞΤϯδχΞ݉
    άϧʔϓϚωʔδϟ)

    View Slide

  6. ͦ΋ͦ΋εϖγϟϦετͱϚ
    ωʔδϟʔ͸ͳͥରཱ͢Δ֓
    ೦͔ͷΑ͏ʹѻΘΕͯΔͷ͔

    View Slide

  7. ݹయ
    ୈޒষʮϚωʔδϟʔͱ͸Կ͔ʯ
    ϚωʔδϟʔͰ͋Εɺઐ໳ՈͰ͋
    ΕɺϚωδϝϯτͷҰһͰ͋Δ͜ͱ
    ʹ͸มΘΓ͕ͳ͍ɻ
    Ϛωʔδϟʔͱઐ໳Ոͷҧ͍͸Ϛ
    ωʔδϟʔͷ΄͏͕Ұ͚ͭͩ༨෼ͳ
    ଆ໘Λ͍࣋ͬͯΔͱ͍͏ࣄ͚ͩͩɻ
    ɹɹɹɹɹʹʹதུʹʹ
    ҧ͍͸ɺػೳͰ΋ߩݙͰ΋ͳ͘खஈ
    ʹ͋Δɻ྆ऀʹཁٻ͞ΕΔ΋ͷ͸ಉ
    ͡Ͱ͋Δɻ
    https://www.diamond.co.jp/book/9784478410233.html

    View Slide

  8. εϖγϟϦετ
    ݸਓͰ੒ՌΛग़͢ਓ

    View Slide

  9. Ϛωʔδϟʔ
    ૊৫ΛӡӦ͠੒Ռʹ੹೚Λ࣋ͭਓ

    View Slide

  10. εϖγϟϦετ
    ݸਓͰ੒ՌΛग़
    ͢ਓ
    Ϛωʔδϟʔ
    ૊৫ΛӡӦ͠੒Ռ
    ʹ੹೚Λ࣋ͭਓ
    ͦ΋ͦ΋ڥքઢ͕ͦ͜·Ͱ͸͖ͬΓ͍ͯ͠ͳ͍ɻ
    ιϑτ΢ΣΞ։ൃʹ͓͍ͯ͸ಛʹɻ

    View Slide

  11. εϖγϟϦετ
    ιϑτ΢ΣΞ։ൃʹ͓͍ͯ͸ݸਓ୯
    ମͰ੒ՌΛग़͢͜ͱ͕গͳ͍ɻ
    νʔϜ։ൃͱͯ͠νʔϜશମͰ੒Ռ
    Λग़͢ඞཁ͕͋Δɻ

    View Slide

  12. Ϛωʔδϟʔ
    ιϑτ΢ΣΞ։ൃʹ͓͍ͯ͸Ϛωʔ
    δϟʔ΋ઐ໳తͳ஌ࣝ͸ඞཁɻ
    ਐԽͷ଎͍ۀքͰ͸खΛಈ͔ͯ͠Π
    ϯϓοτ͢Δඞཁ΋͋Δɻ

    View Slide

  13. εϖγϟϦετͱϚωʔδϟʔ͸ରཱ͢Δ
    ֓೦͡Όͳ͍ͱ͍͏ࣄΛೝࣝͯ͠΄͍͠ɻ
    εϖγϟϦετͰ͋ͬͯ΋ਓΛϦʔσΟϯ
    άͨ͠Γɺҭ੒͢Δඞཁ͸͋Δ͠ɺϚωʔ
    δϟʔͰ͋ͬͯ΋ίʔυ͸ॻ͘ɻ

    View Slide

  14. ʮϚωʔδϟʔʹͳͬͯ΄͍͠ʯͱ
    ݴΘΕͨ࣌ʹΫϥγοΫͳఆٛͷϚ
    ωʔδϟʔͷҹ৅͔ΒωΨςΟϒʹ
    ߟ͑Δͷ͸΋͍ͬͨͳ͍ɻ

    View Slide

  15. ݹ઒͸Ϛωʔδϟʔʹͳͬͯ
    ΄͍͠ͱݴΘΕͨ࣌ʹ
    ʮ΍ͬͨ͜ͱͳ͍͔Β΍ͬͯ
    Έ͍ͨʯͱࢥͬͨɻ

    View Slide

  16. εϖγϟϦετ΋ಉ༷ɺࣗ෼
    ͷ΍Γ͍ͨ։ൃΛଓ͚ΔͳΒ
    νʔϜશମʹߟ͑ํΛ޿͛Δ
    ඞཁ͕͋Δ͠ɺͦͷͨΊʹ͸
    Ϛωʔδϟʔ͕΍ΔΑ͏ͳ࢓
    ࣄ΋΍Δඞཁ͕͋Δɻ

    View Slide

  17. ͱ͸͍͑ɺେมͦ͏...

    View Slide

  18. ๻ͷ৔߹

    View Slide

  19. γχΞΤϯδχΞ
    • ΞϓϦέʔγϣϯ։ൃͦͷ΋ͷʹؔΘΔ͜ͱ͸গ
    ͳ͍ʢͨ·ʹͦΕ΋΍Δ͚Ͳ΍Δͱ͖͸஍ࠈʣ
    • ͦ΋ͦ΋ͷઃܭ΍ϓϩτλΠϓ։ൃ͕ϝΠϯ
    • ։ൃͷखॿ͚ʹͳΔΑ͏ͳϥΠϒϥϦͷ։ൃ΍
    OSSͷதʹ౿ΈࠐΜͩௐࠪ΍৔߹ʹΑͬͯ͸PRΛ
    ग़͢ɺ·ͱ·ͬͨΒϒϩάͰ஌ࣝΛڞ༗͢ΔͳͲ

    View Slide

  20. ҰํͰϚωʔδϟʔͱͯ͠΍ͬͯ
    Δ͜ͱ
    • ϝϯόʔͷλεΫΞαΠϯʢ΍Γ͍ͨ͜ͱͱ΍Βͳ
    ͖Ό͍͚ͳ͍͜ͱΛ߹ΘͤΔʣ
    • ࠾༻ɺҭ੒ʢ໘઀΍༏लͳީิऀ΁ͷ੠͔͚ɺ৽ਓݚ
    मͷߨࢣʣ
    • ษڧձ΍ϋοΧιϯͳͲɺࣾ಺ͰΤϯδχΞίϛϡχ
    ςΟ࡞Γ
    • ࠾༻
    ϝϯόʔ͕༏लͰ͋ΔͱɺͲΕ΋ͦΜͳʹ೉͘͠ͳ͍ɻ
    ίϛϡχςΟ࡞Γ͸ࣗ෼ͷϥΠϑϫʔΫʹ͍ۙͷͰͦ͜·Ͱ೉͘͠ͳ͍ɻ

    View Slide

  21. ϚωδϝϯτͱεϖγϟϦετͷཱ͕྆େ
    ม͔Ͳ͏͔͸ϝϯόʔʹڧ͘ґଘ͢Δɻ
    पғͷϝϯόʔ͕༏लͳΒϚωδϝϯτΛ
    ߦ͍ͳ͕ΒίʔυΛॻ͘͜ͱ΋Մೳ
    ܲͱཛͷΑ͏ͳؔ܎ʹͳ͍ͬͯΔɺͳͷͰେมɻ
    ࠾༻΍ҭ੒΋ҰேҰ༦Ͱ͸Ͱ͖ͳ͍ɻ͜͜·ͰདྷΔͷʹ೥͔͔ͬͨɻ

    View Slide

  22. εϖγϟϦετ
    ൃද
    044
    ϥΠϒϥϦ
    αʔϏε
    Output
    φϨοδ
    Ϛωʔδϟʔ
    Team
    Assign
    Share
    Engineer Community
    Recruitment

    View Slide

  23. εϖγϟϦετ
    ൃද
    044
    ϥΠϒϥϦ
    αʔϏε
    Output
    φϨοδ
    Ϛωʔδϟʔ
    Team
    Assign
    Share
    Engineer Community
    Recruitment
    εϖγϟϦετνʔϜ͕Ξ΢τϓοτͨ͠΋ͷΛڞ༗͠ɺίϛϡχςΟʹؐݩ
    Ϛωʔδϟʔ͔ͦ͜ΒڵຯΛ࣋ͬͯ͘ΕͨਓΛ࠾༻͠ɺҭ੒ͯ͠νʔϜʹؐݩ

    View Slide

  24. Q.εϖγϟϦετͱϚωʔ
    δϟʔΛ྆ํ΍Δͷ͸େมʁ
    A. ΋ͪΖΜେม
    ͚ͩͲ྆ํ΍ΕΔ͜ͱ͕ཧ૝
    େม͞Λ৐Γӽ͑Ε͹΍Γ͍ͨ
    ͜ͱ͕޿͕͍ͬͯ͘ɻ

    View Slide

  25. ͦ΋ͦ΋εϖγϟϦετʹͳΔͬ
    ͯͲ͏΍ͬͨΒ੒ΕΔͷ͔...?

    View Slide

  26. ๻ͷ৔߹

    View Slide

  27. ϦΫϧʔτʹ͓͚ΔγχΞͷཁ݅
    • ࣾ಺֎ͰΤΩεύʔτͱͯ͠ೝ஌͞Ε͍ͯΔ͜ͱ
    ʢNode.js ͷୈҰਓऀͱͯ͠ೝࣝ͞Ε͍ͯΔʣ
    • ͦͷਓ͕Ұਓ͍Δ͚ͩͰɺϓϩμΫτઓུ͕มΘΔɻ
    ࠓ෩ʹݴ͏ͱɺʮபʯ
    ʢ௨ৗͰ͸࡞Εͳ͍Α͏ͳ΋ͷ΋࡞ΕΔɺϋΠύϑΥʔ
    ϚϯεͳΞϓϦέʔγϣϯ౳ʣ
    • γχΞʹͳΔͱɺϝϯόʔ͔ΒϩʔϧϞσϧͱͯ͠ೝࣝ͞ΕΔ

    View Slide

  28. ΤϯδχΞʹͳΔ֮ޛ
    • 3೥΄Ͳલʹൃදͨ͠࿩
    • ΞϓϦέʔγϣϯΛ࡞Ζ͏
    • ඇػೳཁ݅ʹͩ͜ΘΖ͏
    • ஌ࣝʹ֞ࠜ͸࡞Βͳ͍

    View Slide

  29. εϖγϟϦετʹͳΔͨΊʹ৺
    ͕͚Δ͜ͱ
    • ࣗ෼ͷ੹೚ʹ͢Δ
    • ଉΛు͖ଓ͚Δ
    • Կ͔͠ΒͷνϟϨϯδΛଓ͚Δ

    View Slide

  30. ࣗ෼ͷ੹೚ʹ͢Δ

    View Slide

  31. Node.js ೔ຊϢʔβʔάϧʔϓ୅
    දʹͳͬͨ࣌ͷࠒ (2014೥)

    View Slide

  32. Node.js ͸ࠞཚظͰͨ͠ɻ

    View Slide

  33. ࢭ·Γଓ͚ΔϦϦʔε
    Revert͞Εଓ͚Δίϛοτ
    Ұͭ΋ୡ੒͠ͳ͍ϚΠϧετʔϯ

    View Slide

  34. io.js ͱ Node.js ͱ͍͏෼அ

    View Slide

  35. ͜ͷ࣌ʹࢥ͍ͬͯͨͷ͸ɺ
    ʮNode.jsͱio.jsͷࠞཚΛࢭΊͳͯ͘͸ʯ

    View Slide

  36. Node.js ͸ fork ͞Εͯ io.js ʹϝ
    Πϯίϛολ͕ྲྀΕɺ Node.js
    ͸ Node.js ͰϨΨγʔ։ൃͱ͠
    ͯෆ۩߹मਖ਼͕ਐΉ
    సػ

    View Slide

  37. ࠓ·Ͱ͸άϩʔόϧʹى͖͍ͯΔมߋΛϩʔΧϧ
    ʢ೔ຊʣʹ఻͑Δ͜ͱ͔ͯ͠͠ͳ͔ͬͨɻ
    ݴΘ͹ɺ֎Ͱى͖͍ͯΔ͜ͱΛ఻͑Δ͚ͩͩͬͨɻ

    View Slide

  38. Node.js಺Ͱى͖ͯΔ͜ͱΛ io.js ʹల։
    ͠ɺ io.js ಺Ͱى͖ͯΔ͜ͱΛ Node.js ʹ
    ΋ϑΟʔυόοΫ͢ΔࣄͰɺมߋͷࠩ෼Λ
    খ͘͢͞Δ͜ͱʹ຿Ίͨɻ

    View Slide

  39. ͦ͏͢Ε͹ɺҠߦ΋ͦ͜·Ͱ೉͘͠ͳ͍ɻ
    ͲͬͪΛબͿ͔͸Ϣʔβʔ͕બ୒͢Ε͹
    ྑ͍ɻ

    View Slide

  40. ٕज़తʹى͖͍ͯΔมԽΛ୭͔͕΍ͬͯ͘
    ΕΔͱࢥͬͯ೚ͤΔͷͰ͸ͳ͘ɺࣗ෼ͷ͜
    ͱͱͯ͠੹೚Λ௥͏ɻ

    View Slide

  41. ݁Ռ: 2015೥ʹ Node.js ͱ io.js ͸౷߹
    ͦͷ࣌ͷ׆ಈ͕͖͔͚ͬͰ
    ίΞίϯτϦϏϡʔλʔ݉ΤϰΝϯδΣϦετʹɻ

    View Slide

  42. ଉΛు͖ଓ͚Δ

    View Slide

  43. ଉΛు͖ଓ͚Δ =
    Ξ΢τϓοτΛ͠ଓ͚Δ

    View Slide

  44. ଉΛు͖ଓ͚ΔͱٵΘͳ͍ͱ
    ͍͚ͳ͘ͳΔɺΠϯϓοτ΋
    ܧଓతʹͰ͖ΔΑ͏ʹͳΔ

    View Slide

  45. Node.js / io.js ૽ಈ͕͋ͬͨ࣌
    ͔Βಛʹߟ͑ํ͸
    ʮάϩʔόϧΛҙࣝͯ͠΍Δʯ

    View Slide

  46. άϩʔόϧͰ΍ͬͯΔ͜ͱΛ೔
    ຊʹೖΕΔΑΓ΋೔ຊͰى͖ͯ
    Δ͜ͱΛάϩʔόϧʹల։͢Δ

    View Slide

  47. ͳͷͰΞ΢τϓοτ΋
    άϩʔόϧΛҙ͍ࣝͯͨ͠ɻ
    jsconf.asia 2016
    Node interactive 2017
    AMP Fest 2020

    View Slide

  48. ೔ຊͩͱੈքͷϩʔΧϥΠζͰ΋ൃ
    දʹͳΔ͚Ͳੈքͩͱͦͷ্Λ௒͑
    ͍ͯ͘ඞཁ͕͋Δɻ
    ͳͷͰΞ΢τϓοτ΋࣭͕มΘΔɻ

    View Slide

  49. Կ͔͠ΒͷνϟϨϯδΛଓ͚Δ

    View Slide

  50. 1೥ؒͱ͍͏εύϯΛઃ͚ͯ
    ԿΒ͔ͷνϟϨϯδΛଓ͚͖ͯͨɻ
    Japan Node.js Association ๏ਓԽ ೦ئͷ JSConf.JP ։࠵

    View Slide

  51. ͜͜࠷ۙ͸Ϛωʔδϟʔ͚ͩͲຖ೔
    ίʔυॻ͘ͷΛ΍ΔͷΛνϟϨϯδ
    ʹ͍ͯ͠·͢ɻ
    Leetcode Λຖ೔ղ͍ͯΔʢ࠷ۙ͸RustͰ) Write Code Everyday Ͱ1೥൒ܧଓ

    View Slide

  52. ৗʹͳʹ͔΍Δɻ
    खΛಈ͔͢͜ͱ͸΍Ίͳ͍ɻ

    View Slide

  53. ίϯϑΥʔτκʔϯʹཹ·Β
    ͳ͍Α͏ʹͯ͠Δʢͭ΋Γʣ

    View Slide

  54. ·ͱΊ

    View Slide

  55. ·ͱΊ
    • ϚωʔδϟʔͱεϖγϟϦετ
    • ϚωʔδϟʔͱεϖγϟϦετ͸ରཱ֓೦͡Όͳ͍
    • ιϑτ΢ΣΞ։ൃʹ͓͍ͯ͸Ή͠Ζڞ௨߲͕ଟ͍
    • ཱ྆͢Δͷ͸΋ͪΖΜେม͚ͩͲɺ৐Γӽ͑Ε͹΍Γ͍ͨ͜ͱ͕Ͱ͖Δ
    • εϖγϟϦετʹͳΔʹ͸
    • ࣗ෼ͷ੹೚ʹ͢Δ
    • ଉΛు͖ଓ͚Δ
    • ৗʹԿ͔͠ΒνϟϨϯδ͢Δ

    View Slide

  56. ͦͯ͠ࠓ౓͸܅͕ͨͪ
    ޙഐΛकΔபͱͳΔͷͩɻ
    (َ໓ͷਕ 8ר: Ẃࠈҍण࿠)
    ஶ: ޗಕݺੈ੖ ग़൛ࣾ: ूӳࣾ ग़൛೥: 2017

    View Slide

  57. ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide