Pro Yearly is on sale from $80 to $50! »

新卒のギーク揃ってプログラミング研修|師弟登壇2015

3bf6da1f63cd8b7a2f802f95c269ed80?s=47 FromAtom
December 06, 2015

 新卒のギーク揃ってプログラミング研修|師弟登壇2015

pixivの新卒研修(主にプログラミング研修)について師弟登壇2015で発表しました。

3bf6da1f63cd8b7a2f802f95c269ed80?s=128

FromAtom

December 06, 2015
Tweet

Transcript

  1. ৽ଔͷΪʔΫἧͬͯ ϓϩάϥϛϯάݚम @bash0C7 @FromAtom

  2. • ϐΫγϒͱ͸ʁ • ͲΜͳձࣾͳͷ͔ • Ͳ͏͍͏ਓ͕ಇ͍͍ͯΔͷ͔ • ৽ଔ࠾༻ͱݚम͸Ͳ͏ͳ͍ͬͯΔͷ͔ • ϓϩάϥϛϯάݚमʹ͍ͭͯ

    • ͕͜͜ຊ୊ ΞδΣϯμ
  3. None
  4. None
  5. ৔࡞ΓΛ୲͖ͬͯͨ • ٕज़৬ͷධՁ੍౓վળ • "ϙΤϜ"πʔϧͱͯ͠esa.ioಋೖ • ֤छΠϯλʔϯγοϓاը • ٕज़ަྲྀɾڭҭਪਐ •

    ٕज़৘ใൃ৴Ϛωδϝϯτ • ٕज़৬࠾༻Ϛωδϝϯτ
  6. ૑࡞׆ಈ͕ΑΓָ͘͠
 ͳΔΑ͏ͳࣄۀΛఏڙ • Πϥετ • খઆ • ອը • ͓ֆ͔͖

    • Իָ • ൢച • ΋ͷͮ͘Γ • ίεϓϨ • ΞΠυϧ • ΪϟϥϦʔӡӦ
  7. w ʢ֤αʔϏεͷεΫγϣ͸Δʣ

  8. w ʢ֤αʔϏεͷεΫγϣ͸Δʣ

  9. w ʢ֤αʔϏεͷεΫγϣ͸Δʣ

  10. w ʢ֤αʔϏεͷεΫγϣ͸Δʣ

  11. w ʢ֤αʔϏεͷεΫγϣ͸Δʣ

  12. w ʢ֤αʔϏεͷεΫγϣ͸Δʣ

  13. w ʢ֤αʔϏεͷεΫγϣ͸Δʣ

  14. None
  15. None
  16. ͜͏͍͏ਓͨͪ • ࣾһ਺໿100ਓͰେଟ਺͕։ൃΤϯδχΞ • ࣮੷๛෋Ͱ࿹͕͔֬ͳϧʔΩʔਞ • Ұบ΋ೋบ΋͋ΔΩϟϦΞਞ • օ͕ʮϙΤϜʯΛॻ͘

  17. ৽ଔ࠾༻ • ݚڀɾ׆ಈ࣮੷๛෋Ͱ࿹ʹ֮͑ͷ͋Δֶੜ • ֶߍɺಉਓɺݸਓ׆ಈͳͲϑΟʔϧυ໰Θͣ • ଈܴ͑ೖΕ͍ͨͱ։ൃνʔϜ͔Βϥϒίʔϧ • ޓ͍ͷೲಘ౓Λॏࢹ •

    Ϋη͕ڧ͍ͷͰɺ߹͏ਓ͸ੌ͘߹͏͕ • ΠϯλʔϯΛඞͣܦͯ͝Ұॹͯ͠Δ • ྡͰಇ͘஥ؒ͸Զ͕ܾͨͪΊΔɺݱ৔ओಋͷબߟ • ࠾༻ཧ༝΋ෆ࠾༻ཧ༝΋͖ͪΜͱݴޠԽ
  18. ৽ଔݚम • OJT + Off-JTݚम • ೔ʹΑΔ͕3:2ͷൺ཰ • ݚमύʔτ͸ظؒ̎ϲ݄ •

    ݱ৔΋৽ଔ౰ਓ΋ૣ͘pixiv࡞Γ͍ͨͱҳΔ͕ɺ
 ޿ൣͳ஌ࣝ΍εΩϧΛ਎ʹ͚ͭͯ΋Β͑ΔΑ͏झ޲ΛڽΒ͢ • OJT͸഑ଐઌνʔϜͰϝϯλʔ͕ͭ͘ • Ϧʔμʔ/Ϛωʔδϟͱ͸ผ
  19. ݚम಺༰ • Ϗγωεύʔιϯͱͯ͠ͷجૅɺձࣾʹ͍ͭͯͷ஌ࣝ
 ഑ଐઌ͡Όͳ͍෦ॺͷॏཁͳ஌ࣝΛֶͿ • ஌ࣝɾεΩϧΛֶͿ: 7೔ɺϓϩάϥϛϯάΛֶͿ: 7೔ • ϚφʔΛֶͿ:

    2೔ɺ૊৫ΛֶͿ: 2೔ • ձࣾͷཧ೦ΛֶͿ: 3೔ɺձࣾͷྺ࢙Λ஌Δ: 1೔ • ݚम૯ׅ: 1೔ • தݎɺϕςϥϯϝϯόʔ͕ત·ͦ͠͏ʹݟʹ͘Δ • ٕज़ܥͷ΋Ϗδωεܥͷ΋Զࣗ਎ɺͬ͘͡Γड͚͍ͨΑʂ
  20. Ͱ޿ࠂࣄۀ

  21. ϓϩάϥϛϯάݚमͷ࿩

  22. ͷલʹ

  23. ͓લͩΕΑʁ

  24. @FromAtom 2013 Hatena Intern -> Arbeit 2015 iOS Developer at

    pixiv Inc. 2006 Start Programing
  25. None
  26. None
  27. Ͳ͏΋ɺ৽ଔͰ͢

  28. ʮ͜ͷਓ͕ఋࢠαΠυ͔ʯ

  29. NO NO NO

  30. ఋࢠͰ͋Γ ࢣঊͰ΋͋Δ

  31. None
  32. ๻͕ࢣఋͰ͢

  33. ʁʁʁ

  34. ϓϩάϥϛϯάݚमͷ࿩

  35. ॾ஫ҙ

  36. pixiv = PHP

  37. 1)1ͷ࿩͠·ͤΜ ͔͍ͨ͜ͱແ͍͠

  38. • HTML, CSS, JavaScript • Ruby, Java, Scala • Git

    • etc... Ұൠతͳϓϩάϥϛϯάݚमʢ૝૾ʣ
  39. Ұൠతͳϓϩάϥϛϯάݚमʢ૝૾ʣ

  40. Ұൠతͳϓϩάϥϛϯάݚमʢ૝૾ʣ ࢣঊͰ͢

  41. Ұൠతͳϓϩάϥϛϯάݚमʢ૝૾ʣ ࢣঊͰ͢ ఋࢠͰ͢

  42. Ұൠతͳϓϩάϥϛϯάݚमʢ૝૾ʣ

  43. Ұൠతͳϓϩάϥϛϯάݚमʢ૝૾ʣ Ϗγόγ

  44. Ұൠతͳϓϩάϥϛϯάݚमʢ૝૾ʣ Ϗγόγ ͻ͑ʔ

  45. ࡶͳ૝૾Ͱ͢

  46. pixivͷϓϩάϥϛϯάݚम

  47. ৽ଔ͕ ৽ଔʹ ڭ͑Δ

  48. ৽ଔʢΤϯδχΞʣ͕ ৽ଔʢ૯߹৬ʣʹ ڭ͑Δ

  49. ৽ଔͨͪ • ΤϯδχΞɿ6໊ ‣ WebΞϓϦɿ4໊ ‣ iOSΞϓϦɿ2໊ • ૯߹৬ɿ5໊ ‣

    σβΠφɿ2໊ ‣ اըɿ1໊ ‣ Ӧۀɿ1໊
  50. ͲΜͳ಺༰ʁ

  51. 7೔ؒ

  52. 1೔4࣌ؒ

  53. ߹ܭ28࣌ؒͰ

  54. pixivΛ࡞Δ

  55. ը૾౤ߘܝࣔ൘Λ࡞Δ

  56. ཁٻ࢓༷ • ը૾ͱίϝϯτ͕౤ߘͰ͖Δ • ౤ߘ͞Εͨը૾ͱίϝϯτҰཡ͕ݟΕΔ • ը૾ʹΛ͚ͭΒΕΔ

  57. ಺༰·ͱΊ • 7೔ؒ • 1೔4࣌ؒ ‣ 1࣌ؒʙ2࣌ؒ͸ߨٛ ‣ ࢒ͬͨ࣌ؒͰߨٛதʹग़͞Εͨ՝୊Λ΍Δ •

    ࠷ऴతʹ࢓༷Λຬͨͨ͠ը૾ܝࣔ൘Λ࡞ͬͯൃද
  58. ૯߹৬֤Ґͷݴ༿

  59. ʮແཧʯ

  60. ٕज़৬֤Ґͷݴ༿

  61. ʮ͍͚Δ͍͚Δʯ

  62. ߨٛ಺༰ ͬ͘͟Γ

  63. ϓϩάϥϛϯάΛ࢝ΊΑ͏ 1 Day

  64. ϓϩάϥϛϯάΛ࢝ΊΑ͏ 1 Day • OSͱ͸ ‣ ͳͥΤϯδχΞ͸Mac΍LinuxΛ࢖͏ͷ͔ • γΣϧͱ͸ ‣

    ࠇ͍ը໘ڪා঱Λແ͘͢ ‣ `cd`ɺ`ls`ɺ`pwd`ͳͲΛ࢖ͬͯΈΔ • ΤσΟλͱ͸ ‣ શһAtom EditorΛར༻ ‣ Πϯσϯτ΍γϯλοΫεϋΠϥΠτʢ৭෇͚ػೳʣͷࢫຯ • ϓϩάϥϛϯάͱ͸ ‣ rubyΛirbͰ͍ͬͯ͡ΈΔ ‣ ม਺ɺϋογϡɺ৚݅෼ذ͔Βؔ਺·Ͱجૅ͔Βڭ͑Δ
  65. ϓϩάϥϛϯάΛ࢝ΊΑ͏ 1 Day rubyͰ"HelloWorld"ͯ͠تͿ ૯߹৬ͨͪΛݟͯ ٕज़৬΋ʹͬ͜Γ

  66. Git ͱ GitHub 2 Day

  67. GitͱGitHub 2 Day • Gitͱ͸ ‣ ͳͥDropboxͰ͸μϝͳͷ͔ ‣ ༣ศہϝιουΛར༻ͨ֓͠೦ͷઆ໌ ‣

    جຊతͳίϚϯυʢadd, commit, push, pullʣͷઆ໌ • GitHubͱ͸ ‣ ΞΧ΢ϯτͷ࡞੒ɾSSH伴ͷొ࿥ ‣ git push ͯ͠ΈΔ ‣ README.mdΛมߋͯ͠pushͯ͠ΈΔ ࢀߟจݙɿIUUQRJJUBDPNZVOJDPKQJUFNTCEEFGCC
  68. WebΛ࢝ΊΑ͏ 3 Day

  69. WebΛ࢝ΊΑ͏ 3 Day • WebαʔόʹϦΫΤετΛૹΖ͏ ‣ αʔόͱΫϥΠΞϯτͱ͸ ‣ εςʔλείʔυʹ͍ͭͯ ‣

    500͕ग़ͨΒ͙͢ʹΤϯδχΞݺΜͰ͘ΕΑͳʂ • WebαʔόΛ্ཱͪ͛ͯΈΑ͏ ‣ sinatraΛར༻ ‣ ༧Ί༻ҙͨ͠ϦϙδτϦΛGitHub͔Βclone࣮ͯ͠ߦ
  70. DatabaseΛֶ΅͏ 4 Day

  71. DatabaseΛֶ΅͏ 4 Day • σʔλϕʔεΛ஌Ζ͏ ‣ ͳͥExcel͡Όμϝͳͷ͔ ‣ σʔλͷਖ਼نԽ ‣

    τϥϯβΫγϣϯ ‣ ݕࡧɾιʔτ • SQLจΛൃߦͯ͠ΈΑ͏ ‣ ϩʔΧϧͰSQLiteΛ্ཱ࣮ͪ͛ͯߦ ‣ ςʔϒϧ࡞ͬͨΓɺσʔλΛૠೖͨ͠Γͯ͠ࢼ͢
  72. ͜͜Β΁Μ͔ΒͩΜͩΜ ݸਓ͕ࠩग़ͯ͘Δ DatabaseΛֶ΅͏ 4 Day

  73. ؆୯ͳݴ༿Λ࢖ͬͯ ͍ͯͶ͍ʹϝϯλϦϯά͢Δ DatabaseΛֶ΅͏ 4 Day

  74. POSTͱJavaScript 5 Day

  75. POSTͱJavaScript 5 Day • POST ‣ ը૾Λखݩ͔Βܝࣔ൘ʹΞοϓϩʔυ͢ΔͨΊʹ͸ ‣ formͷ࢖͍ํ ‣

    SinatraଆͰड͚औͬͯDBʹอଘ͍ͨ͠ • JavaScript ‣ Javaͱ͸ผ෺Ͱ͢Αʢˡॏཁʣ ‣ ͳͥJavaScript͕ඞཁͳͷ͔ ‣ ܝࣔ൘ͷը૾ʹΛ͚ͭΔॲཧΛ௥Ճ
  76. ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day

  77. ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day • XSS • SQLΠϯδΣΫγϣϯ • σΟϨΫτϦτϥόʔαϧ

  78. `ruby main.rb -e production ` Λ࣮ߦͯ͠IPΞυϨεΛڭ͑ͯԼ͍͞ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day

  79. ͜Ε͔ΒΈͳ͞ΜͷαΠτΛ ΤϯδχΞ͕ഁյ͠·͢ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day

  80. ʮ2ͪΌΜͶΔ͕දࣔ͞ΕΔʂʯ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day

  81. ʮ2ͪΌΜͶΔ͕දࣔ͞ΕΔʂʯ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day ʮΊͬͪΌΞϥʔτ͕ͰΔʂʯ

  82. ʮ2ͪΌΜͶΔ͕දࣔ͞ΕΔʂʯ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day ʮmain.rb͕ফ͑ͨʂʯ ʮΊͬͪΌΞϥʔτ͕ͰΔʂʯ

  83. ʮ2ͪΌΜͶΔ͕දࣔ͞ΕΔʂʯ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day ʮDBͷத਎͕ফ͑ͨʂʯ ʮmain.rb͕ফ͑ͨʂʯ ʮΊͬͪΌΞϥʔτ͕ͰΔʂʯ

  84. ΤϯδχΞ֤Ґʮͨͷ͍͠ʯ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day

  85. ఻͔͑ͨͬͨ͜ͱ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day

  86. όά͸ා͍ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day

  87. NO NO NO

  88. ো֐͕͓͖ͨ࣌ʹࠔΔͷ͸Ϣʔβ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day

  89. ΤϯδχΞʹͰ͖ͳ͍͜ͱΛ ϢʔβͷͨΊʹͯ͠ཉ͍͠ ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day ςϯύͬͯΔ

  90. ๨Εͯ͸͍͚ͳ͍ηΩϡϦςΟ 6 Day • ࣾ಺ʹঢ়گΛ஌ΒͤΔ • Twitter΍͓஌ΒͤͰϢʔβʹ৘ใΛಧ͚Δ • ͱʹ͔͘ϢʔβΛ҆৺ͤ͞Δ

  91. ͻͨ͢Β࣮૷ 7 Day

  92. ͻͨ͢Β࣮૷ 7 Day • ࢓༷͕ຬ͍ͨͤͯΕ͹ྑ͍ • ͓΋͠Ζػೳ΍ศརػೳΛ෇͚଍࢝͠ΊΔ • jQueryϥΠϒϥϦΛೖΕͯ٧·ͬͨΓ͢Δ •

    ͩ͜ΘΓ࢝ΊͯؤுΓ͗͢໰୊
  93. ࢀՃऀͷײ૝

  94. ࢲ͸σβΠφʔͳͷͰɺ ීஈ͡Θ͡ΘͱλʔϛφϧΛ࢖ͬͨΓͯ͠ΔͷͰ͕͢ɺ ݚमͷ͓͔͛Ͱʮλʔϛφϧ͜Θ͍ʯͱࢥΘͣʹ͢ΜͰ·͢ɻ ʢݚमલ͸ࠇ͍ը໘ා͔ͬͨʣ l

  95. googleϏοάΫΤϦͰσʔλऔಘ͢Δͱ͖ɺ SQLΛແࣄʹ࢖͑ͯ·͢ʂ ࠓ೔΋SQLͰΞυϨεσʔλऔಘͯ͠ ͍ΖΜͳϢʔβʔʹϝʔϧૹΓ·ͨ͠ʂ l

  96. l ࣌ؒ͑͋͞Ε͹ σΟϨΫτϦΛ࡞ͬͨΓҠಈͨ͠Γ ࿅शΛ͍ͯ͠·͢ɻ

  97. ͦͷޙͷޮՌ

  98. εΫϨΠϐϯάษڧձ͠·ͤΜʁ HTML5ɾCSS3ͷษڧձ͠ͳ͍ʁ jQueryͷษڧ࠶։ͨ͠Α

  99. ͏Ε͍͠

  100. ؾΛ͚ͭͨ఺ Ingenuity

  101. ؾΛ͚ͭͨ఺ Ingenuity • Mac͔͠࢖Θͤͳ͍ ‣ OSࠩʹΑΔϋϚΓ͸ຊ࣭త͡Όͳ͍͠ਏ͍ ‣ WindowsͰrubyॻ͔ͤΔͷ͸΋͸΍ߥߦ ‣ ձ͔ࣾΒ୺຤ΛआΓͯରԠ

    • ΤσΟλ͸AtomΛ࢖͏ ‣ modeͱ͔Α͘Θ͔Βͳ͍ ‣ Ctrl-x sͰอଘͱ͔Α͘Θ͔Βͳ͍
  102. ؾΛ͚ͭͨ఺ Ingenuity • zshellͱoh-my-zshΛ࢖͏ ‣ ༧Ίٕज़৬͕ಋೖ͓ͯ͘͠ ‣ ৭͍ͭͯΔ͔Βා͘ͳ͍ʢˡॏཁʣ • ؀ڥߏங͸ٕज़৬͕΍͓ͬͯ͘

    ‣ Homebrewɼrbenvɼgem ‣ ϋϚΓ΍͍͢ͷʹͲ͏Ͱ΋͍͍Օॴ • PHP͸͔ͭΘͳ͍ ‣ pixivͷ৽نαʔϏε͸PHP࢖ͬͯͳ͍ ‣ Ruby on RailsɺScalaɺNode.js
  103. ؾΛ͚ͭͨ఺ Ingenuity • ౴͑Λڭ͑ͳ͍ ‣ ʮ͜Ε͸͜͏͢Δͱಈ͖·͢ʯͱ͸ڭ͑ͳ͍ ‣ άάΔҝͷώϯτ΍ίπΛڭ͑Δ ‣ ޙ͔ΒάάΕΔΑ͏ʹ͢Δ

    • ͪΐͪ͘ΐ͘ݟ·ΘΔ ‣ ʮͳΜ͔ࠔͬͯͳ͍Ͱ͔͢ʁʯͱฉ͍ͯճΔ • ࠜؾΑ͘౴͑Δ ‣ ಉ͜͡ͱΛ10ճҎ্ฉ͔ΕΔ ‣ ͦΕ͕ਓ਺෼͋Δ ‣ ౖΒͳ͍
  104. ͳͥݚमΛ͢Δͷ͔ Why?

  105. ͳͥݚमΛ͢Δͷ͔ Why? • ৽ଔಉ͕࢜஥ྑ͘ͳΔͨΊ • ૯߹৬Ͱ΋࠷௿ݶͷٕज़ΛಘΔͨΊ • ۀ຿ʹඞཁ࠷௿ݶͳ஌ࣝΛಘΔ • ΤϯδχΞͷ࢓ࣄͷେม͞Λ஌Δ

    • ΤϯδχΞҒ͍ɾ͍͢͝ɾ͏΍·͑
  106. MAYBE NO

  107. ๻ͷߟ͑͸ҧ͏

  108. ΤϯδχΞͱ
 ʮ͖΋ͪΑ͘ʯ ࢓ࣄ͕Ͱ͖ΔΑ͏ʹͳΔ

  109. ϓϩάϥϛϯά͸೉͍͠

  110. ਓ͕ؒ΍Δ΋ͷ͡Όͳ͍

  111. ΤϯδχΞ≠ਓؒ

  112. ΤϯδχΞ͸ਓؒ͡Όͳ͍ͷͰ ίϛϡχέʔγϣϯ΋େม

  113. গ͠Ͱ΋ΤϯδχΞͷ ݴ༿Λ࢖͑ΔΑ͏ʹ

  114. ݴ༿͕Θ͔Δͱ ࢓ࣄΛཔΊΔ

  115. Ұॹʹ࢓ࣄ͕Ͱ͖Δ

  116. ݴ༿͕Θ͔Δͱ ίϛϡχέʔγϣϯ͕ ָʹͳΔ

  117. Ұॹʹ ʮ͖΋ͪΑ͘ʯ ࢓ࣄ͕Ͱ͖Δ

  118. ͦͷҝͷݚम

  119. ·ͱΊ Summary

  120. ·ͱΊ Summary • pixivͰ͸৽ଔ͕৽ଔʹϓϩάϥϜΛڭ͑Δ • pixivͰ͸૯߹৬΋pixiv͕ͭ͘ΕΔ • ΤϯδχΞͱʮ͖΋ͪΑ͘ʯ࢓ࣄ͕Ͱ͖Δ • Զ͕ࢣఋʹͳΔΜͩΑ͓͓͓͒ʂʂ

  121. ࠷ߴ