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

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

Fumihiko Shiroyama
March 21, 2019
42k

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

Fumihiko Shiroyama

March 21, 2019
Tweet

Transcript

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

    View Slide

  2. ࣗݾ঺հ
    • നࢁ จ඙
    • 35ࡀ, 2ঁͷ෕
    • Senior Software Engineer @nikkei
    • Android, SRE, ML etc...

    View Slide

  3. Android

    View Slide

  4. Android

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  8. ถࠃϥϘͰͷ׆ಈ

    View Slide

  9. ถࠃϥϘͰͷ׆ಈ
    • ݚڀ։ൃ
    • ৽نࣄۀ
    • ػցֶश
    • ϏδωεΞϥΠΞϯε
    • ৽ٕज़΍τϨϯυͷ࣋ͪؼΓ

    View Slide

  10. ৽نࣄۀ
    ৽نࣄۀʹؔͯ͠͸
    ެ։ࢿྉ͔Β͸࡟আ

    View Slide

  11. ػցֶश

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  15. ਖ਼ղɿͻͱʹΑΔ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. ਖ਼ղɿϏβ

    View Slide

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

    View Slide

  23. Ϗβ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. ओཁͳϏβҰཡ
    • H-1Bʢઐ໳৬Ϗβʣ
    • L-1A, L-1BʢறࡏһϏβʣ
    • E2ʢ౤ࢿՈϏβʣ
    • O-1ʢಥग़ͨ͠ೳྗऀʣ
    • J-1ʢΠϯλʔϯʣ
    • F-1ʢֶੜϏβɻOPTͰΠϯλʔϯՄೳʣ

    View Slide

  29. H-1B
    • ઐ໳৬ͷՖܗ
    • స৬Մೳ
    • άϦʔϯΧʔυਃ੥͠΍͍͢
    • 2018೥ݱࡏɺਃ͠ࠐΈ͕ύϯΫ͓ͯ͠ΓநબͰ3ׂఔ౓
    • ৬ʹؔ࿈͢ΔֶҐ·ͨ͸࣮຿ܦݧ͕ඞཁ
    • 4݄ਃ੥ɺ10݄ब࿑ͱ͍͏଍ͷ௕͔͞Βܟԕ͞ΕΔ
    ౷ܭ্ɺτϥϯϓ੓ݖ͸
    ʢࠓͷॴʣ͋·Γؔ܎ͳ͍

    View Slide

  30. L-1A, L-1B
    • றࡏһϏβ
    • స৬ෆՄೳ
    • άϦʔϯΧʔυਃ੥͠΍͍͢
    • ଟࠃ੶اۀͷΦϑΟεؒͷҟಈʹΑ͘࢖ΘΕΔ
    • Ͳ͔͜ͷࢧࣾʹ1೥ࡏ੶ඞਢͳͷͰస৬࣌ͷϏβʹར
    ༻͢Δ͜ͱ͸Ͱ͖ͳ͍
    ଟࠃ੶اۀͰҟಈ͔Β($α
    ϙʔτ͕͍·࠷΋࣮֬ͳํ๏
    ͱൃදऀ͸ߟ͍͑ͯΔ

    View Slide

  31. E2
    • ౤ࢿՈϏβ
    • స৬ෆՄೳʢE2ಉ࢜͸Մೳʣ
    • άϦʔϯΧʔυਃ੥͠ʹ͍͘ʢඇҠຽϏβʣ
    • ถͱ৚໿క݁ࠃͷࢿຊ͕50%Ҏ্ೖ͍ͬͯΔඞཁ͕͋Δ
    • ਃ੥͕ૣ͍ɺࡏ੶೥਺͠͹Γ͕ͳ͍ɺߋ৽͕൒ӬٱతʹͰ͖Δ
    • ىۀՈɺ౤ࢿՈຊਓɺ؅ཧ৬ɺͦΕΒΛิࠤ͢Δٕज़৬ͳͲղऍ
    ͕޿͍ͷͰۙ೥ͭͱʹ஫໨ΛूΊ͍ͯΔ
    ͨͱ͑͹೔ຊຊ͕ࣾ͋Γɺւ֎ࢧ
    ࣾʢגࣜͷ൒෼Ҏ্Λຊ͕ࣾอ࣋ʣ
    ΁ͷҟಈͳͲͰར༻Ͱ͖Δ
    ৚݅Λຬͨͤ͹ىۀՈຊਓ͕ถࠃʹઃ
    ཱͨ͠ձࣾͰಇͨ͘Ίʹਃ੥Մೳ

    View Slide

  32. O-1
    • Պֶ΍ܳज़ɺεϙʔπͳͲͰಥग़ͨ͠࠽ೳΛ࣋ͭ΋ͷʹൃߦ
    ͞ΕΔϏβ
    • ΦϦϯϐοΫબखɺ਺ֶΦϦϯϐοΫɺ෺ཧΦϦϯϐοΫͳͲ
    • CGΫϦΤΠλʔ΍ϝσΟΞΞʔςΟετ
    • ஶ໊ͳ࿦จ΍PhDอ࣋ऀɺॻ੶ͷग़൛ͳͲͰ΋Մೳੑ͋Γ
    • H-1B͕ػೳ͍ͯ͠ͳ͍ͷͰPhDอ࣋ऀ͸τϥΠ͢ΔՁ஋͋Γ
    Ҡຽหޢ࢜ͷ࿹࣍ୈ

    View Slide

  33. J-1
    • Πϯλʔϯ΍τϨΠχʔ΁ൃߦ͞ΕΔϏβ
    • ͕ͨͬͯ͠ߴ౓ઐ໳৬ऀ͕͜ΕΛར༻ͯ͠ઐ໳৬ʹब͘͜
    ͱ͸NG
    • ೥ऩ্ݶ͕͋ͬͨΓ଺ࡏڐՄ͞ΕΔظ͕ؒ୹͔ͬͨΓ৭ʑ
    ੍ݶ͕͋Δ
    • Ϗβຬྃޙ࠷௿2೥ؒ͸ถࠃ֎Ͱա͝͞ͳ͍ͱ࣍ͷब࿑Ϗ
    β΍ӬॅݖΛਃ੥Ͱ͖ͳ͍(Two-Year Rule)
    ˞ಛผͳ৔߹Λআ͘

    View Slide

  34. F-1
    • ֶੜϏβ
    • ถSTEMֶҐऔಘ͢Δ͜ͱͰOptional Practical
    Training (OPT) ͱͯ͠࠷େ3೥ؒΠϯλʔϯ͕Մೳ
    • ถେֶΛଔۀͰ͖Δਓ͸͜ͷํ๏͕࠷΋Ұൠత
    • ݫ͍͠Admissionɺ௒ߴֹͳֶඅɺ౗ΕΔ΄Ͳͷ՝
    ୊΍ςετΛ৐Γӽ͑ͯଔۀ͠ͳ͍ͱ͍͚ͳ͍ʂ
    ˞ཁ͢Δʹཧܥͱ͍͏͜ͱ

    View Slide

  35. ΫΠζɿελϯϑΥʔυେֶʹ
    ௨͏ʹ͸೥͍ؒ͘Β͔͔Δʁ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  39. H-1Bνϟʔτ
    • https://medium.com/@sakamoto.kazuki/
    2017-12-demystifying-us-visa-f596529701a3

    View Slide

  40. ֶҐ

    View Slide

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

    View Slide

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

    View Slide

  43. ืूҰྫ ௅ઓͷ෣୆ʹ͢Βཱͯͳ͍͜ͱ΋

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  49. ઢܗ୳ࡧ
    • NݸͷཁૉΛઌ಄͔Βݟ͔ͭΔ·Ͱ୳͢
    • 0.01 * 7000000000 / (60 * 60 * 24) / 2≒405೔
    • ࠷ѱܭࢉྔ: O(N)
    ͻͱΓݟ͚ͭΔͷʹ೥Ҏ্ʂ

    View Slide

  50. ೋ෼୳ࡧ
    • ੔ྻࡁΈͷNݸͷཁૉΛ൒෼ͣͭ୳͢
    • Math.log2(7000000000) * 0.01 / 2≒0.16ඵ
    • ࠷ѱܭࢉྔ: O(logN)
    ൺ΂෺ʹͳΒͳ͍ʂʂʂ
    ˞੔ྻͷίετ͸֓Ͷ0 /MPH/

    View Slide

  51. ਺ֶ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  56. ӳޠ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  60. ੈքͰઓ͏ΤϯδχΞʹ
    ͳΔͨΊʹ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide