エンジニアとしてこの先生きのこるために

 エンジニアとしてこの先生きのこるために

2019年度リクルート新人ブートキャンプ エンジニアコースの講義資料です

Eea9a05e6e222a3d50c73f54a49fadf4?s=128

Recruit Technologies

June 24, 2019
Tweet

Transcript

  1. ΤϯδχΞͱͯ͠ ͜ͷઌੜ͖ͷ͜ΔͨΊʹ ࿨ా୎ਓ "QS !ϦΫϧʔτςΫϊϩδʔζ

  2. UXBEB U@XBEB UXBEB ࿨ా୎ਓ

  3. ؂मɺ؂༁ɺ຋༁ͨ͠ຊͨͪ

  4. テスト書いてますか!! ελϯυ໊ϫΠϧυɾαόϯφ

  5. assert(typeof item.id === 'strong') | | | | | |

    | false | | "foo" | Item{id:"foo",name:"bar"} "string" --- [string] 'strong' +++ [string] typeof item.id @@ -1,6 +1,6 @@ str -o +i ng power-assert IUUQTHJUIVCDPNQPXFSBTTFSUKTQPXFSBTTFSU
  6. wେֶࡏֶத͔ΒઃܭͱϓϩάϥϛϯάͷΞϧόΠτ Λ࢝ΊΔ wଔۀޙϓϩάϥϚͱͯ͠ͷΩϟϦΞΛ։࢝ wిࢠ੓෎ͷαϒϓϩδΣΫτ ਺ઍਓن໛ ͰϦʔυ ϓϩάϥϚ w91ͷίʔνͱͯ͠ਓͷΞδϟΠϧνʔϜʹࢀՃ wߨԋɺࣥචɺ044׆ಈΛ࢝ΊΔ wݱࡏ͸ʮྲྀ͠ͷϖΞϓϩۀʯΛߦ͍ͬͯΔ

    ΩϟϦΞతͳ΋ͷ
  7. ΑΖ͓͘͠ئ͍͠·͢

  8. None
  9. ֶͼଓ͚Δ࢟੎

  10. lৗʹ͋ͳͨͷ ஌ࣝϙʔτϑΥϦΦ ʹ౤ࢿ͢Δ͜ͱz

  11. ٕज़ΛֶͿͷͰ ͸ͳ͘ɺٕज़ͷ ֶͼํΛֶͿ

  12. Agenda ֶͼํΛֶͿ ݱ໾ϓϩάϥϚͰ͍ΔͨΊʹ ͓ΘΓʹ

  13. ࢛൒ظຖʹٕज़ॻΛಡΉ खΛಈֶ͔ͯ͠Ϳ ຖ೥গͳ͘ͱ΋ͭͷݴޠΛֶश͢Δ ਎ͷճΓΛϓϩάϥϛϯάର৅ʹ͢Δ Ξ΢τϓοτΛߦ͏

  14. l࢛൒ظຖʹ ٕज़ॻΛಡΉz

  15. None
  16. 感覚記憶 0.5 〜 2sec 短期記憶 15 〜 30 sec 長期記憶

    死ぬまで? ֶͼͷ࢓૊Έ
  17. ೴಺ΠϯσοΫεΛ࡞Δ ピッカーを育てる = 反復練習 何度も長期記憶から出し入れする 荷物を他の荷物とくっつける 連想記憶を育てる

  18. 1999 2000 2001 2002 2003 2004 2005 2006 ͨͱ͑͹ɺ࣌ܥྻʹฒ΂Δ

  19. ࢛൒ظຖʹٕज़ॻΛಡΉ खΛಈֶ͔ͯ͠Ϳ ຖ೥গͳ͘ͱ΋ͭͷݴޠΛֶश͢Δ ਎ͷճΓΛϓϩάϥϛϯάର৅ʹ͢Δ Ξ΢τϓοτΛߦ͏

  20. lखΛಈ͔͠ ֶͯͿz

  21. Ͱ͖Δ ޷͖ʹͳΔ ΍Δ

  22. σʔϧͷԁਲ਼

  23. ࣸܦ

  24. IUUQUXJUUFSDPNU@XBEBTUBUVTFT

  25. ࢛൒ظຖʹٕज़ॻΛಡΉ खΛಈֶ͔ͯ͠Ϳ ຖ೥গͳ͘ͱ΋ͭͷݴޠΛֶश͢Δ ਎ͷճΓΛϓϩάϥϛϯάର৅ʹ͢Δ Ξ΢τϓοτΛߦ͏

  26. lຖ೥গͳ͘ͱ΋ ҰͭͷݴޠΛ ֶश͢Δz

  27. http://www.thoughtworks.com/radar/languages-and-frameworks

  28. http://www.thoughtworks.com/radar/languages-and-frameworks

  29. http://www.thoughtworks.com/radar/languages-and-frameworks

  30. http://www.thoughtworks.com/radar/languages-and-frameworks

  31. lӳޠ͕Ͱ͖ΔΑ͏ʹͳΔͱ͍͏ͷ͸ɺ ʮେ͖ͳਤॻؗͷݤʯΛ౉͞ΕΔΑ͏ͳ ΋ͷͰ͢ɻҰਓͻͱΓͷਓੜʹ͍ΖΜͳ ՄೳੑΛ༩͑ͯ͘Ε·͢z ŠŠߴদचࢠ http://blogos.com/article/85541/ ٕज़ऀͱӳޠʹ͍ͭͯ

  32. ࢛൒ظຖʹٕज़ॻΛಡΉ खΛಈֶ͔ͯ͠Ϳ ຖ೥গͳ͘ͱ΋ͭͷݴޠΛֶश͢Δ ਎ͷճΓΛϓϩάϥϛϯάର৅ʹ͢Δ Ξ΢τϓοτΛߦ͏

  33. ਎ͷճΓΛ ϓϩάϥϛϯά ର৅ʹ͢Δ

  34. ϓϩάϥϚ޲͚ͷຊͷ؂मऀ͸ Ͳ͏͋Δ΂͖͔

  35. ϓϩάϥϚΒ͘͠ ଵଦɺၗຫɺ୹ؾ ϓϨʔϯςΩετΛ޷Ή ͢΂ͯΛόʔδϣϯ؅ཧ͢Δ ͢΂ͯΛࣗಈԽ͢Δ มԽΛ๊༴͢Δ

  36. ϓϩάϥϚΒ͘͠ ݪߘ͸NBSLEPXOܗࣜ ݪจ͸εΫϨΠϐϯάͯ͠औಘ HJUΛ࢖͍όʔδϣϯ؅ཧ IFSPLVʹQVTIͯ͠αΠτʹ൓ө ؂मࠩ෼͸EPDEJGGͰදࣔ

  37. None
  38. None
  39. ࠷ۙͭͬͨ͘΋ͷ ࢠҭͯ΍ڭҭؔ܎ͷ -*/&#PU "NB[PO"MFYB4LJMM ͳͲͳͲ

  40. ࢛൒ظຖʹٕज़ॻΛಡΉ खΛಈֶ͔ͯ͠Ϳ ຖ೥গͳ͘ͱ΋ͭͷݴޠΛֶश͢Δ ਎ͷճΓΛϓϩάϥϛϯάର৅ʹ͢Δ Ξ΢τϓοτΛߦ͏

  41. Ξ΢τϓο τΛߦ͏

  42. σʔϧͷԁਲ਼

  43. https://twitter.com/ProfFeynman/status/981943455508148225

  44. Πϯϓοτ Ξ΢τϓοτ ਖ਼ͷϑΟʔυόοΫϧʔϓ

  45. ྔ͸࣭ʹసԽ͢Δ http://d.hatena.ne.jp/KZR/20080808/p1

  46. CMPHΛॻ͘

  47. l৘ใൃ৴ɺCMPH ൃ ද ެ։ͳͲ͸ɺ਺ֶͷ ະղܾ໰୊ͷ ূ໌Ͱ ͸ͳ͘ɺྉཧͷΑ͏ͳ ΋ͷz

  48. ࣥච͢Δ ·ͣ͸ࡶࢽ͔Β

  49. HJIZPKQͷ࿈ࡌ ʰʦಈըͰղઆʧ࿨ా୎ਓͷlςετۦಈ։ൃzߨ࠲ʱ IUUQHJIZPKQEFWTFSJBMUEE શճ͢΂ͯಈը෇͖ղઆ χίχίಈըͰ΋ݟΕ·͢ 8&# %#աڈهࣄͷಛઃαΠτͱಈը΋

  50. ίʔυΛެ։͢Δ

  51. assert(typeof item.id === 'strong') | | | | | |

    | false | | "foo" | Item{id:"foo",name:"bar"} "string" --- [string] 'strong' +++ [string] typeof item.id @@ -1,6 +1,6 @@ str -o +i ng power-assert IUUQTHJUIVCDPNQPXFSBTTFSUKTQPXFSBTTFSU
  52. power-assert

  53. power-assert

  54. ߨԋ͢Δ

  55. Ͱ͖Ε͹ϥΠϒίʔσΟϯάͰ

  56. w5XJUUFS wCMPH 2JJUB౳ wࡶࢽهࣄ 8FC ࢴഔମ ిࢠഔମ  wॻ੶ ڞஶ

    ຋༁ ؂༁ ୯ஶ  wߨԋ ࣾ಺ษڧձ ࣾ֎-5 ࣾ֎ߨԋ  wϥΠϒίʔσΟϯά w(JUIVC Ξ΢τϓοτͷνϟωϧ
  57. JOUFSWBM

  58. Agenda ֶͼํΛֶͿ ݱ໾ϓϩάϥϚͰ͍ΔͨΊʹ ͓ΘΓʹ

  59. ຖ೔ίʔυΛॻ͘ ೥Լ͔ΒֶͿ աڈ͔ΒະདྷΛݟΔ ਓͷͭ͘ΔӔΛݟΔ େࣄͳ͜ͱʹूத͢Δ

  60. ຖ೔ίʔυΛ ॻ͘

  61. w K2VFSZ࡞ऀ+PIO3FTJH͸ि຤ʹࣗ෼ͷϓϩ μΫτ։ൃΛؤுΖ͏ͱ͕ͨ͠ɺࣦഊɻ w ฏ೔ͱಉ͡അྗͰ͸ॻ͚ͳ͍ w શͯͷि຤͕ۭ͍͍ͯΔΘ͚Ͱ͸ͳ͍ w Ұिؒ ͋Δ͍͸ೋिؒ

    ͸௕͍ɻίʔυ Λ๨Εͯ͠·͏ w ͦ͜Ͱ+PIO3FTJH͕ߦͬͨ͜ͱ͸ʜʜ ͋ͷ+PIO3FTJHͰ΋͏·͍͔͘ͳ͍͜ͱ
  62. IUUQFKPIOPSHCMPHXSJUFDPEFFWFSZEBZ

  63. ຖ೔ίʔυΛॻ͘͜ͱɻϒϩάɺυΩϡϝϯ τɺͦͷଞ͸ίʔυΛॻ͍ͨΒ΍ͬͯΑ͍ɻ ҙຯͷ͋ΔίʔυΛॻ͘͜ͱɻΠϯσϯτ ΍ϑΥʔϚοτͷमਖ਼ɺՄೳͳΒ͹ϦϑΝΫ λϦϯά΋ίʔυॻ͖ʹ͸Χ΢ϯτ͠ͳ͍ɻ ਂ໷࣌લʹऴΘΒͤΔ͜ͱɻ ॻ͍ͨίʔυΛHJUIVCͰશͯ044ʹ͢Δ ͜ͱɻ ࢛ͭͷϧʔϧ IUUQFKPIOPSHCMPHXSJUFDPEFFWFSZEBZ

  64. ౰࣌ͷ !KFSFTJHͷHJUIVCQSPpMF IUUQTHJUIVCDPNKFSFTJH

  65. w ඞཁ࠷খݶͷίʔυ΁ͷूதҰ೔෼ʙ࣌ؒఔ౓Ͱҙ ຯͷ͋ΔίʔυΛॻ͘͜ͱ͕ڧ͍ΒΕΔ ٳ೔ʹ͸΋ͬͱ ͔͚ΒΕΔ  w ϓϩάϥϛϯάͷश׳ԽHJUIVCʹ૲Λੜ΍͢ͷ͕໨తͰ ͸ͳ͍ɻࣗ෼Ͱࣗ෼ࣗ਎ͷͨΊʹੜ׆श׳Λม͑Δͷ͕େ ࣄ

    w ෆ҆ͱͷઓ͍Ҏલ͸ʮे෼ʹʯਐΜͰ͍Δ͔ɺʮे෼ ʹʯ׬੒͍ͯ͠Δ͔ɺෆ͕҆͋ͬͨɻຖ೔ίʔυΛॻ͍ͯ ΈͯɺਐΜͰ͍Δͱ͍͏࣮ײ͸ɺ࣮ࡍͷਐḿͱಉ͘͡Β͍ ॏཁͩͱ͍͏ؾ͖ͮΛಘͨ +PIO3FTJHʹىͬͨ͜มԽ 
  66. w ि຤ͷա͔ͨ͝͠Ҏલ͸։ൃͷશͯΛि຤ʹṌ͚ࣦͯ ഊ͍͕ͯͨ͠ɺ͍·΍ि຤͸ͦΕ΄ͲॏཁͰͳ͘ͳΓɺ ϦΞϧϥΠϑΛॆ࣮Ͱ͖ΔΑ͏ʹͳͬͨ w όοΫάϥ΢ϯυॲཧࢄาதɺγϟϫʔதɺৗʹίʔ υͷ͜ͱΛόοΫάϥ΢ϯυͰߟ͑ΔΑ͏ʹͳΓɺྑ ͍ΞΠσΞ͕ු͔ͿΑ͏ʹͳͬͨ w ίϯςΫετεΠονҎલ͸िʹҰճͷ։ൃͩͬͨͷ

    ͰίϯςΫετεΠονͷίετ͕͕͋ͬͨɺ͍·͸ ຖ೔ͳͷͰͦΕ͕ͳ͍ +PIO3FTJHʹىͬͨ͜มԽ 
  67. w ϫʔΫϥΠϑόϥϯε࢓ࣄੜ׆ࣗ෼ͷϓϩδΣΫτ ͷόϥϯεͷऔΓํ͕෼͔ͬͨͷ͕࠷େͷऩ֭ͩͬͨɻ ຖ೔΍Δͱ͍͏͜ͱ͸ɺόϥϯεΛऔΔͱ͍͏͜ͱ w ·ΘΓ͔Βͷཧղʮຖ೔ίʔυΛॻ͘ʯͱ͍͏श׳Λ ެݴͨ͜͠ͱͰɺύʔτφʔ͔Βͷཧղ΋ಘΒΕΔΑ ͏ʹͳͬͨ w ͲΕ͚ͩίʔυΛॻ͍͔ͨ͜ͷश׳Λଓ͚Δͱॻ͘

    ίʔυ΍Ξ΢τϓοτ͸ࣗ෼Ͱ΋֮͑ΒΕͳ͍͘Β͍ ͷྔʹͳΓɺॆ࣮ײΛಘΒΕΔ +PIO3FTJHʹىͬͨ͜มԽ 
  68. ݱࡏͷ!KFSFTJHͷHJUIVCQSPpMF IUUQTHJUIVCDPNKFSFTJH

  69. ࢲ΋݁ߏଓ͚·ͨ͠

  70. ࣄྫ

  71. ॅΉ৔ॴΛ޻෉͢Δ

  72. ҙਤతʹΦϑϥΠϯ࣌ؒΛͭ͘Δ

  73. ຖ೔ίʔυΛॻ͘ ೥Լ͔ΒֶͿ աڈ͔ΒະདྷΛݟΔ ਓͷͭ͘ΔӔΛݟΔ େࣄͳ͜ͱʹूத͢Δ

  74. ೥Լ͔Β ֶͿ

  75. lҰੜϓϩάϥϚʔͰ͍ ΕΔ͔Ͳ͏͔͸ɺݴ͍ ׵͑Ε͹೥Լ͔Βֶ΂ Δ͔൱͔ɻz

  76. Ͱ͖Δ ޷͖ʹͳΔ ա৒ద߹ͱλίπϘԽ

  77. wఆظతʹࣗ෼ͷεΩϧΛ୨Է͢͠Δ wੵۃతʹ֎෦ʹग़ͯɺࣗ෼ͷεΩϧΛ ૬ରԽ͢Δ w࢖͏ಓ۩Λఆظతʹม͑Δ wະ஌ͷίϛϡχςΟʹࢀՃ͢Δ wएऀ͔ΒֶͿ wएऀͱಉ͡౔ඨͰڝ͏ ϕϯνϚʔΫͱΞϯϥʔχϯά

  78. ペアプログラミング ベテランにはアンラーニングのチャンス

  79. ຖ೔ίʔυΛॻ͘ ೥Լ͔ΒֶͿ աڈ͔ΒະདྷΛݟΔ ਓͷͭ͘ΔӔΛݟΔ େࣄͳ͜ͱʹूத͢Δ

  80. աڈ͔Β ະདྷΛ஌Δ

  81. ٕज़͸ʮৼΓࢠʯ

  82. ٕज़͸ʮΒͤΜʯ

  83. IUUQTTQFBLFSEFDLDPNUXBEBVOEFSTUBOEJOHUIFTQJSBMPGUFDIOPMPHJFT

  84. IUUQXXXQVCMJDLFZKQCMPHIUNM

  85. ʮ5ࣈܕʯͰ͸ͳ͘ෳ਺ͷபΛ

  86. ຖ೔ίʔυΛॻ͘ ೥Լ͔ΒֶͿ աڈ͔ΒະདྷΛݟΔ ਓͷͭ͘ΔӔΛݟΔ େࣄͳ͜ͱʹूத͢Δ

  87. ਓͷͭ͘Δ ӔΛݟΔ

  88. ૊৫ͷ࣌୅͔Βݸਓͷ࣌୅΁

  89. ݸ͕ଟ͘ू·ΔͱԿ͔͕ى͜Δ

  90. ϩʔυϚοϓࢦ޲͔ΒΤίγεςϜࢦ޲΁

  91. IUUQEIBUFOBOFKQFTTBQ

  92. l͔͠͠ɺࠓͷۀք͸ɺʮΤίγεςϜʯͷ࣌୅ͩɻ ೤ଳӍྛͷΑ͏ʹɺ৯͍͍͋ͭͭڞੜ͋͠͏͞·͟ͳ λΠϓͷϓϨΠϠʔ͕ɺࣗ෼ͷҝ͚ͩͷݸผͷҙࢥܾ ఆΛͯ͠ɺͦͷ૬ޓ࡞༻Ͱٕज़͕ൃల͍ͯ͘͠ɻʮΤ ίγεςϜʯ͸ໃ६ͩΒ͚Ͱɺ͋Δٕज़͕ൃల͢Δͷ ͱಉ࣌ʹɺͦͷΞϯνςʔθͱͳΔٕज़΋৳ͼΔz lʮϩʔυϚοϓʯ͕ࢦࣔ͢͠ະདྷͷํ޲ͱҧ͏ํ޲ ʹਐΉ͜ͱ͸க໋తͳؒҧ͍͕ͩɺʮΤίγεςϜʯ ͸Ή͠Ζத৺෦͕ϨουΦʔγϟϯͰɺपล෦ʹੜ͖ ࢒Γ͕༰қͳϒϧʔΦʔγϟϯ͕͋Δz

    IUUQEIBUFOBOFKQFTTBQ
  93. lී௨ͷਓ͸ʮϩʔυϚοϓʯ ͷதͰ͸ਅΜதΛਐΉ΂͖Ͱɺ ʮΤίγεςϜʯͷதͰ͸ਅΜ தΛආ͚Δ΂͖ͩz IUUQEIBUFOBOFKQFTTBQ

  94. IUUQDIBTFOPSHdEBJUJNUFYUXPSTFJTCFUUFSKBIUNM 5IF3JTFPGl8PSTFJT#FUUFSz

  95. IUUQTUXJUUFSDPNU@XBEBTUBUVT

  96. ຖ೔ίʔυΛॻ͘ ೥Լ͔ΒֶͿ աڈ͔ΒະདྷΛݟΔ ਓͷͭ͘ΔӔΛݟΔ େࣄͳ͜ͱʹूத͢Δ

  97. େࣄͳ͜ͱʹ ूத͢Δ

  98. IUUQTXXXBNB[PODPKQEQ

  99. Agenda ֶͼํΛֶͿ ݱ໾ϓϩάϥϚͰ͍ΔͨΊʹ ͓ΘΓʹ

  100. ֶͼଓ͚Δ࢟੎

  101. ٕज़ΛֶͿͷͰ ͸ͳ͘ɺٕज़ͷ ֶͼํΛֶͿ

  102. ތΓ͋Δϓϩʹͳ͍ͬͯͩ͘͞ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠