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

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

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

Eea9a05e6e222a3d50c73f54a49fadf4?s=128

Recruit Technologies

August 21, 2020
Tweet

Transcript

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

  2. UXBEB U@XBEB UXBEB ࿨ా୎ਓ

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

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

  5. wେֶࡏֶத͔ΒઃܭͱϓϩάϥϛϯάͷΞϧόΠτ Λ࢝ΊΔ wଔۀޙϓϩάϥϚͱͯ͠ͷΩϟϦΞΛ։࢝ wిࢠ੓෎ͷαϒϓϩδΣΫτ ਺ઍਓن໛ ͰϦʔυ ϓϩάϥϚ w91ͷίʔνͱͯ͠ਓͷΞδϟΠϧνʔϜʹࢀՃ wߨԋɺࣥචɺ044׆ಈΛ࢝ΊΔ wݱࡏ͸ٕज़ސ໰ۀΛߦ͍ͬͯΔ

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

  7. None
  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. ୈೋͷݴޠʹ͸ɺੋඇͱ΋ɺ࠷ॳͷݴޠͱ͸ύϥμΠϜ ͷҧ͏ݴޠΛબͿ΂͖Ͱ͢ɻͦΕ͸ͳ͔ͥͱ͍͏ͱɺύ ϥμΠϜͷҧ͏ݴޠΛֶͿͱɺΞϧΰϦζϜɺΠσΟΦ Ϝɺύλʔϯͷ࣮૷ʹ͍ͭͯݏͰ΋ߟ͑ΔΑ͏ʹͳΔ͔ ΒͰ͢ɻ ಉ༷ͷΞϧΰϦζϜΛ࣮૷͢Δʹͯ͠΋ɺ৭ʑͳ΍Γ͔ ͕ͨ͋ΓಘΔ͜ͱʹؾ͖ͮ·͢ɻ͜ͷମݧ͕ɺϓϩάϥ Ϛͷٕज़Λେ͖͘޲্ͤ͞·͢ɻ ϓϩάϥϛϯάݴޠ͸ෳ਺शಘ͢΂͖

  28. "OEZ)VOUͱ%BWF5IPNBT͸ɺଟ͘ͷਓʹӨڹΛ༩ ͑ͨஶॻʰୡਓϓϩάϥϚʔʱͷதͰɺʮຖ೥ɺ৽ͨͳ ϓϩάϥϛϯάݴޠΛͭ͸ֶͿ͜ͱʯͱקΊ͍ͯ· ͢ɻࢲ͸ͦͷΞυόΠεʹै͍ɺաڈԿ೥͔ͷؒʹ࣮ࡍ ʹ਺ଟ͘ͷݴޠΛֶΜͰ͖·ͨ͠ɻ ͦͯ͠ɺͦͷதͰʮݴޠΛֶͿͱ͍͏ͷ͸ɺͨͩจ๏ɺ ߏจΛֶͿ͜ͱͰ͸ͳ͘ɺͦͷഎܠʹ͋ΔจԽ΋ֶͿ ͜ͱʯͱ͍͏ॏཁͳڭ܇Λಘ·ͨ͠ɻ ݴޠ͚ͩͰͳ͘จԽ΋ֶͿ

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

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

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

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

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

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

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

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

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

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

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

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

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

  44. Ξ΢τϓο τΛߦ͏

  45. σʔϧͷԁਲ਼

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

  47. Πϯϓοτ Ξ΢τϓοτ ਖ਼ͷϑΟʔυόοΫϧʔϓ ໼ҹਖ਼ͷ઀ଓ ࠜݩ͕૿͑Ε͹ઌ΋૿͑Δɻ ࠜݩ͕ݮΕ͹ઌ΋ݮΔ

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

  49. CMPHΛॻ͘

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

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

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

  53. ίʔυΛެ։͢Δ

  54. 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
  55. ߨԋ͢Δ

  56. ϥΠϒίʔσΟϯά͕࠷΋ϋΠϦεΫϋΠϦλʔϯ

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

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

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

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

  61. ຖ೔ίʔυΛ ॻ͘

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

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

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

  65. ౰࣌ͷ !KFSFTJHͷHJUIVCQSPpMF IUUQTHJUIVCDPNKFSFTJH

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

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

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

    ίʔυ΍Ξ΢τϓοτ͸ࣗ෼Ͱ΋֮͑ΒΕͳ͍͘Β͍ͷ ྔʹͳΓɺॆ࣮ײΛಘΒΕΔ +PIO3FTJHʹىͬͨ͜มԽ 
  69. ʮ͍·ɺখ͞ͳ͜ͱΛଟ͘ੵΈ্ ͛Δ͜ͱ͕ɺͱΜͰ΋ͳ͍ͱ͜Ζ ΁ߦͨͩ͘ͻͱͭͷಓͳΜͩͳͱ ͍͏;͏ʹײ͍ͯ͡·͢ʯ Πνϩʔ͕೥ʹ/#"೥ؒ࠷ଟ҆ଧΛߋ৽ͨ͠ͱ͖ͷݴ༿

  70. ࢲ΋݁ߏଓ͚·ͨ͠

  71. ࣄྫ

  72. ݱࡏͷ!KFSFTJHͷHJUIVCQSPpMF IUUQTHJUIVCDPNKFSFTJH

  73. ࢝ൃӺۙ͘ʹॅΈɺ࠲ΕΔՄೳੑΛίϯτϩʔϧ͢Δ

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

  75. ೥Լ͔Β ֶͿ

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

  77. Ͱ͖Δ ޷͖ʹͳΔ ա৒ద߹ͱλίπϘԽ ໼ҹਖ਼ͷ઀ଓ ࠜݩ͕૿͑Ε͹ઌ΋૿͑Δɻ ࠜݩ͕ݮΕ͹ઌ΋ݮΔ

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

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

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

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

  82. ٕज़͸ʮৼΓࢠʯ

  83. ٕज़͸ʮΒͤΜʯ

  84. IUUQTTQFBLFSEFDLDPNUXBEBVOEFSTUBOEJOHUIFTQJSBMPGUFDIOPMPHJFT

  85. IUUQXXXQVCMJDLFZKQCMPHIUNM

  86. IUUQTGVLBCPSJGN

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

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

  89. ਓͷͭ͘Δ ӔΛݟΔ

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

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

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

  93. IUUQEIBUFOBOFKQFTTBQ

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

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

  96. IUUQDIBTFOPSHdEBJUJNUFYUXPSTFJTCFUUFSKBIUNM 5IF3JTFPGl8PSTFJT#FUUFSz

  97. IUUQTUXJUUFSDPNU@XBEBTUBUVT

  98. IUUQTTQFBLFSEFDLDPNUXBEBXPSTFJTCFUUFSVOEFSTUBOEJOHUIFTQJSBMPGUFDIOPMPHJFTFEJUJPO

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

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

  101. IUUQTXXXBNB[PODPKQEQ

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

  104. ֶͼଓ͚Δ࢟੎

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

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