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

世界で戦うエンジニアになるために_公開用.pdf

3cca191bf3064fd059ea2c3d6022afbd?s=47 Fumihiko Shiroyama
March 21, 2019
26k

 世界で戦うエンジニアになるために_公開用.pdf

3cca191bf3064fd059ea2c3d6022afbd?s=128

Fumihiko Shiroyama

March 21, 2019
Tweet

Transcript

  1. ੈքͰઓ͏ΤϯδχΞ ʹͳΔͨΊʹ May 2019 - Fumihiko Shiroyama

  2. ࣗݾ঺հ • നࢁ จ඙ • 35ࡀ, 2ঁͷ෕ • Senior Software

    Engineer @nikkei • Android, SRE, ML etc...
  3. Android

  4. Android

  5. ΞδΣϯμ • ถࠃϥϘͰͷ׆ಈ • ถࠃʹ͓͚Διϑτ΢ΣΞΤϯδχΞͷՁ஋ • ถࠃͰιϑτ΢ΣΞΤϯδχΞʹͳΔʹ͸ • ੈքͰઓ͏ΤϯδχΞʹͳΔͨΊʹ

  6. ถࠃͷ࿩Λฉ্͘Ͱͷ஫ҙ఺

  7. ถࠃͷ࿩Λฉ্͘Ͱͷ஫ҙ఺ • ʮ୭͕ݴͬͯΔ͔ʯ͕෺ੌ͘ॏཁ • ཹֶੜɺறࡏһɺ݁ࠗ഑ۮऀɺݱ஍ब৬ • ͋͘·Ͱ͍ͪαϯϓϧʹա͗ͳ͍͜ͱʹཹҙ ৗʹϙδγϣϯτʔΫͷ ՄೳੑΛ͓ٙ͏

  8. ถࠃϥϘͰͷ׆ಈ

  9. ถࠃϥϘͰͷ׆ಈ • ݚڀ։ൃ • ৽نࣄۀ • ػցֶश • ϏδωεΞϥΠΞϯε •

    ৽ٕज़΍τϨϯυͷ࣋ͪؼΓ
  10. ৽نࣄۀ ৽نࣄۀʹؔͯ͠͸ ެ։ࢿྉ͔Β͸࡟আ

  11. ػցֶश

  12. ػցֶश • τϥΠΞϧϢʔβ͕༗ྉձһʹͳΔ͔ʁ • ಡऀ͕΋ͬͱڵຯΛ΋ͭهࣄΛఏҊͰ͖Δ͔ʁ

  13. ถࠃʹ͓͚Δ ιϑτ΢ΣΞΤϯδχΞͷՁ஋

  14. ΫΠζɿถࠃͷΤϯδχΞ͕೥ ऩ2000ສ΋Β͏ͬͯϗϯτʁ

  15. ਖ਼ղɿͻͱʹΑΔ

  16. ਖ਼ղɿͻͱʹΑΔ ϕΠΤϦΞͰ͸ ͋ͳ͕ͪେ͛͞Ͱ΋ͳ͍ʂ

  17. ໿ສԁ • https://www.levels.fyi/SE/Google/Facebook/Microsoft • L5(Senior Software Engineer): $363,870 • ※

    Base Salary + Bonus + RSU
  18. গ೥ΑɺେࢤΛ๊͚ʂ ˞෺Ձͷҧ͍ʹཹҙͯ͠Ͷʂ

  19. ถࠃͰιϑτ΢ΣΞΤϯδχΞ ʹͳΔʹ͸

  20. ΫΠζɿถࠃͰιϑτ΢ΣΞΤ ϯδχΞʹͳΔʹ͸Կ͕ॏཁ͔

  21. ਖ਼ղɿϏβ

  22. ถࠃͰιϑτ΢ΣΞΤϯδχΞ ʹͳΔʹ͸ 1.Ϗβ 2. ֶҐʢܭࢉػՊֶɺ਺ֶɺ෺ཧֶ etc...ʣ 3. ӳޠ

  23. Ϗβ

  24. Ϗβ • ϏβʂϏβʂϏβʂٕज़ऀͱͯ͠͸͔ͣ͘͠ ͳ͍ͷ͔ʂ • Ϗβ͸ͱʹ͔͘௒ॏཁɻ͍·͸ٕज़৬ͷՖܗ H-1B͕௒ͱΓʹ͘͘ͳ͍ͬͯΔɻ • ΈΜͳ͋ͷख͜ͷखͰϏβΛೖख͍ͯ͠Δɻ

  25. ถࠃ଺ࡏࢿ֨Ұཡ • ถࢢຽݖऀʢΞϝϦΧࠃ੶ʣ • ถӬॅݖอ࣋ऀʢάϦʔϯΧʔυʣ • ֶੜϏβɺब࿑Ϗβ

  26. ถࠃ଺ࡏࢿ֨Ұཡ • ถࢢຽݖऀʢΞϝϦΧࠃ੶ʣ • ถӬॅݖอ࣋ऀʢάϦʔϯΧʔυʣ • ֶੜϏβɺब࿑Ϗβ ΞϝϦΧͰ͏·ΕΔ͔ ਌͕ΞϝϦΧਓ ؼԽ͢ΔʢӬॅݖऔಘޙ̑೥Ҏ্ʣ

  27. ถࠃ଺ࡏࢿ֨Ұཡ • ถࢢຽݖऀʢΞϝϦΧࠃ੶ʣ • ถӬॅݖอ࣋ऀʢάϦʔϯΧʔυʣ • ֶੜϏβɺब࿑Ϗβ ΞϝϦΧࢢຽݖऀͱ݁ࠗ ब࿑Ϗβ͔ΒӬॅݖਃ੥ %JWFSTJUZ1SPHSBN

    ʢ௨শ($͘͡ʣ
  28. ओཁͳϏβҰཡ • H-1Bʢઐ໳৬Ϗβʣ • L-1A, L-1BʢறࡏһϏβʣ • E2ʢ౤ࢿՈϏβʣ • O-1ʢಥग़ͨ͠ೳྗऀʣ

    • J-1ʢΠϯλʔϯʣ • F-1ʢֶੜϏβɻOPTͰΠϯλʔϯՄೳʣ
  29. H-1B • ઐ໳৬ͷՖܗ • స৬Մೳ • άϦʔϯΧʔυਃ੥͠΍͍͢ • 2018೥ݱࡏɺਃ͠ࠐΈ͕ύϯΫ͓ͯ͠ΓநબͰ3ׂఔ౓ •

    ৬ʹؔ࿈͢ΔֶҐ·ͨ͸࣮຿ܦݧ͕ඞཁ • 4݄ਃ੥ɺ10݄ब࿑ͱ͍͏଍ͷ௕͔͞Βܟԕ͞ΕΔ ౷ܭ্ɺτϥϯϓ੓ݖ͸ ʢࠓͷॴʣ͋·Γؔ܎ͳ͍
  30. L-1A, L-1B • றࡏһϏβ • స৬ෆՄೳ • άϦʔϯΧʔυਃ੥͠΍͍͢ • ଟࠃ੶اۀͷΦϑΟεؒͷҟಈʹΑ͘࢖ΘΕΔ

    • Ͳ͔͜ͷࢧࣾʹ1೥ࡏ੶ඞਢͳͷͰస৬࣌ͷϏβʹར ༻͢Δ͜ͱ͸Ͱ͖ͳ͍ ଟࠃ੶اۀͰҟಈ͔Β($α ϙʔτ͕͍·࠷΋࣮֬ͳํ๏ ͱൃදऀ͸ߟ͍͑ͯΔ
  31. E2 • ౤ࢿՈϏβ • స৬ෆՄೳʢE2ಉ࢜͸Մೳʣ • άϦʔϯΧʔυਃ੥͠ʹ͍͘ʢඇҠຽϏβʣ • ถͱ৚໿క݁ࠃͷࢿຊ͕50%Ҏ্ೖ͍ͬͯΔඞཁ͕͋Δ •

    ਃ੥͕ૣ͍ɺࡏ੶೥਺͠͹Γ͕ͳ͍ɺߋ৽͕൒ӬٱతʹͰ͖Δ • ىۀՈɺ౤ࢿՈຊਓɺ؅ཧ৬ɺͦΕΒΛิࠤ͢Δٕज़৬ͳͲղऍ ͕޿͍ͷͰۙ೥ͭͱʹ஫໨ΛूΊ͍ͯΔ ͨͱ͑͹೔ຊຊ͕ࣾ͋Γɺւ֎ࢧ ࣾʢגࣜͷ൒෼Ҏ্Λຊ͕ࣾอ࣋ʣ ΁ͷҟಈͳͲͰར༻Ͱ͖Δ ৚݅Λຬͨͤ͹ىۀՈຊਓ͕ถࠃʹઃ ཱͨ͠ձࣾͰಇͨ͘Ίʹਃ੥Մೳ
  32. O-1 • Պֶ΍ܳज़ɺεϙʔπͳͲͰಥग़ͨ͠࠽ೳΛ࣋ͭ΋ͷʹൃߦ ͞ΕΔϏβ • ΦϦϯϐοΫબखɺ਺ֶΦϦϯϐοΫɺ෺ཧΦϦϯϐοΫͳͲ • CGΫϦΤΠλʔ΍ϝσΟΞΞʔςΟετ • ஶ໊ͳ࿦จ΍PhDอ࣋ऀɺॻ੶ͷग़൛ͳͲͰ΋Մೳੑ͋Γ

    • H-1B͕ػೳ͍ͯ͠ͳ͍ͷͰPhDอ࣋ऀ͸τϥΠ͢ΔՁ஋͋Γ Ҡຽหޢ࢜ͷ࿹࣍ୈ
  33. J-1 • Πϯλʔϯ΍τϨΠχʔ΁ൃߦ͞ΕΔϏβ • ͕ͨͬͯ͠ߴ౓ઐ໳৬ऀ͕͜ΕΛར༻ͯ͠ઐ໳৬ʹब͘͜ ͱ͸NG • ೥ऩ্ݶ͕͋ͬͨΓ଺ࡏڐՄ͞ΕΔظ͕ؒ୹͔ͬͨΓ৭ʑ ੍ݶ͕͋Δ •

    Ϗβຬྃޙ࠷௿2೥ؒ͸ถࠃ֎Ͱա͝͞ͳ͍ͱ࣍ͷब࿑Ϗ β΍ӬॅݖΛਃ੥Ͱ͖ͳ͍(Two-Year Rule) ˞ಛผͳ৔߹Λআ͘
  34. F-1 • ֶੜϏβ • ถSTEMֶҐऔಘ͢Δ͜ͱͰOptional Practical Training (OPT) ͱͯ͠࠷େ3೥ؒΠϯλʔϯ͕Մೳ •

    ถେֶΛଔۀͰ͖Δਓ͸͜ͷํ๏͕࠷΋Ұൠత • ݫ͍͠Admissionɺ௒ߴֹͳֶඅɺ౗ΕΔ΄Ͳͷ՝ ୊΍ςετΛ৐Γӽ͑ͯଔۀ͠ͳ͍ͱ͍͚ͳ͍ʂ ˞ཁ͢Δʹཧܥͱ͍͏͜ͱ
  35. ΫΠζɿελϯϑΥʔυେֶʹ ௨͏ʹ͸೥͍ؒ͘Β͔͔Δʁ

  36. ਖ਼ղɿ$67000ʢ໿740ສԁʣ https://news.stanford.edu/2018/02/14/trustees-set-2018-19-tuition/ तۀྉ໿ສυϧ ྈඅ౳Ͱ໿ສυϧ

  37. ೔ຊͷτοϓߍ͸ ۃΊͯܙ·Ε͍ͯΔͷͩʂ ೔ຊͷେֶग़਎Ͱ ϕΠΤϦΞͰ׆༂͍ͯ͠Δઌഐ͸ ͨ͘͞Μ͍Δͧ

  38. ܅ͨͪʹͰ͖Δ͜ͱ • ΞϝϦΧਓͱ݁ࠗ͢ΔʢGCʣ • ถେֶʹਐֶ͢ΔʢOPTͰब৬ʣ • ೔ຊͷେֶʹਐֶ͢ΔʢH-1BͰब৬ʣ • ೔ຊͰਐֶɺଟࠃ੶اۀʹब৬͠ɺถࠃҟಈΛ໨ࢦ͢ʢL-1Bʣ •

    ೔ຊͰਐֶɺब৬ɺͦͷޙถࠃब৬Λ໨ࢦ͢ʢH-1BɺJ-1ɺO- 1ͳͲʣ
  39. H-1Bνϟʔτ • https://medium.com/@sakamoto.kazuki/ 2017-12-demystifying-us-visa-f596529701a3

  40. ֶҐ

  41. ΞϝϦΧ͸௒ֶྺࣾձ ೔ຊͷൺ͡Όͳ͍ͧʂ

  42. େࣄͳ͜ͱ • େֶ໊͡Όͳͯ͘ઐ߈ • ֶ࢜ΑΓम࢜ɺम࢜ΑΓത࢜ • ઐ໳ੑΛຏ͘ɻӳޠ͸ग़དྷͯ౰ͨΓલ • େֶͷษڧ΋େࣄ͚ͩͲɺब৬ͷͨΊͷτϨʔ χϯά͸ผʢ˞ޙड़ʣ

    ϏβͰ΋ؔ࿈ֶҐ͸ॏཁʂ
  43. ืूҰྫ ௅ઓͷ෣୆ʹ͢Βཱͯͳ͍͜ͱ΋

  44. ιϑτ΢ΣΞΤϯδχΞͳΒ • ίϯϐϡʔλɾαΠΤϯεʢܭࢉػՊֶʣ • σʔλɾαΠΤϯεɺ౷ܭֶ • ਺ֶɺ෺ཧֶ • ػց޻ֶɺిࢠ޻ֶ

  45. ίϯϐϡʔλɾαΠΤϯε

  46. ίϯϐϡʔλɾαΠΤϯε • ΞϧΰϦζϜͱσʔλߏ଄ • ܭࢉෳࡶੑཧ࿦ • ΦϖϨʔςΟϯάγεςϜ • ωοτϫʔΫ etc...

  47. ΫΠζɿੈքਓޱશһͷ໊฽͔ Β୭͔ͷ໊લΛ୳͢ͷ͸Ͳͷ͘ Β͍͕͔͔࣌ؒΔʁ ԯਓͱ͠Α͏ ͻͱΓௐ΂Δͷʹඵ ͔͔Δͱ͠Α͏

  48. ਖ਼ղɿ୳͠ํʹେ͖͘ґଘ͢Δ ώϯτɿΈΜͳࣙॻ͸Ͳ͏΍ͬͯҾ͘ʁ

  49. ઢܗ୳ࡧ • NݸͷཁૉΛઌ಄͔Βݟ͔ͭΔ·Ͱ୳͢ • 0.01 * 7000000000 / (60 *

    60 * 24) / 2≒405೔ • ࠷ѱܭࢉྔ: O(N) ͻͱΓݟ͚ͭΔͷʹ೥Ҏ্ʂ
  50. ೋ෼୳ࡧ • ੔ྻࡁΈͷNݸͷཁૉΛ൒෼ͣͭ୳͢ • Math.log2(7000000000) * 0.01 / 2≒0.16ඵ •

    ࠷ѱܭࢉྔ: O(logN) ൺ΂෺ʹͳΒͳ͍ʂʂʂ ˞੔ྻͷίετ͸֓Ͷ0 /MPH/
  51. ਺ֶ

  52. ਺ֶ ࡾ֯ؔ਺͸ඞཁͳ͍ʂ

  53. ਺ֶ ࡾ֯ؔ਺͸ඞཁͳ͍ʂ

  54. ࡾ֯ؔ਺ • ਤܗͷճసɺԁӡಈ • ճసߦྻʢઢܗ୅਺ʣ • ϕΫτϧͷίαΠϯྨࣅ౓ ࢖Θͳ͍ͱ͜ΖΛڍ͛Δํ͕ Ή͔͍͙ͣ͠Β͍ͩͧʂ

  55. ඍ෼ • Ճ଎౓ • يಓ༧ଌɺఱؾγϛϡϨʔγϣϯ • ػցֶशͷଛࣦؔ਺ͷ࠷খԽ ͍·ྲྀߦΓͷػցֶशͰ ࢖͍·͘Δͧʂ

  56. ӳޠ

  57. ΫΠζɿੈքͰઓ͏ͨΊʹඞཁ ͳӳޠྗͬͯͲͷ͘Β͍ͩΖ͏

  58. ਖ਼ղɿx→∞ ͍͘ΒͰ͖ͯ΋ଟ͗͢Δͱ͍ ͏͜ͱ͸ͳ͍ʂ

  59. ӳޠ • ӳޠ͕Ͱ͖Δ͚ͩͰ͸উෛʹͳΒͳ͍ • Կ͔֬ͨΔઐ໳Λ্࣋ͬͨͰӳޠ͕Ͱ͖Δ͜ ͱ͸ڧ͍෢ثʹͳΔ • TOEIC900఺ͱ͔͸Կͷҙຯ΋ͳ͍ ཹֶ͢ΔͳΒ50&'-఺ͱ͔ ͸ҙຯ͕͋ΔͧʂؤுΕʂ

    ൃදऀͷମײͰɺ50&*$఺Ͱݱ஍ͷࡀࣇ͙Β͍ͩͳʂ
  60. ੈքͰઓ͏ΤϯδχΞʹ ͳΔͨΊʹ

  61. ੈքͰઓ͏ΤϯδχΞʹͳΔͨΊʹ • কདྷʹ͍ͭͯߟ͑Α͏ • ເ͔Βٯࢉͯ͠ܭըΛཱͯΑ͏ • ಛʹු͔͹ͳ͍৔߹͸ͱʹ͔͘ษڧ͠Α͏ʂ ਺ֶͱӳޠ͕͓͢͢Ίͩͳʂ ͦΕΒ͕ෆཁͳ৬ۀͳΜͯͳ͍ʂ

  62. ϓϩάϥϛϯά͸ඞཁ͔ • ඞͣ͠΋ͦ͏Ͱ͸ͳ͍ͱൃදऀ͸ߟ͑Δ • खஈΛ֮͑ΔΑΓɺຊ࣭Λཧղ͠Α͏ • ڊࢹతͳ؍఺Ͱޮ཰ͷྑ͍ΞϧΰϦζϜ΍σʔ λߏ଄͕બ΂Ε͹ɺݴޠͷҧ͍ͳͲ͍͞͞ͳ ΋ͷͩ

  63. ίʔσΟϯάςετରࡦ • ϕΠΤϦΞͷτοϓاۀͰ͸աࠅͳίʔσΟ ϯάςετ͕՝͞ΕΔ • େֶͷ಺༰ʹ४ڌ͢Δ͕ɺແରࡦͰಥഁ͢Δ ͷ͸ෆՄೳ • AtCoder, LeetCodeͳͲ͕Φεεϝ

  64. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

  65. Thanks • ͍Β͢ͱ΍ • https://www.irasutoya.com/

  66. ໔੹ࣄ߲ • ຊεϥΠυͷ಺༰͸ൃදऀͷಠࣗௐࠪͰ͢ɻ ಛʹϏβʹؔͯ͠͸ඞͣҠຽหޢ࢜ʹ૬ஊ͠ ͍ͯͩ͘͞ɻ • ຊεϥΠυͷ಺༰Λ࣮ફͨ͜͠ͱʹΑΔ௚઀ తɺ෇ਵతɺ݁Ռతɺؒ઀తɺ͋Δ͍͸௄േ తͳଛ֐ɺܦඅɺଛࣦɺ·ͨ͸࠴຿ʹ͍ͭͯɺ ͍͔ͳΔ੹೚΋ෛ͍͔Ͷ·͢ɻ