Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
世界で戦うエンジニアになるために_公開用.pdf
Search
Fumihiko Shiroyama
March 21, 2019
18
45k
世界で戦うエンジニアになるために_公開用.pdf
Fumihiko Shiroyama
March 21, 2019
Tweet
Share
More Decks by Fumihiko Shiroyama
See All by Fumihiko Shiroyama
The world of Android wireless communications without Internet
srym
1
120
AWS Device FarmとCircleCIでAndroidのUIテストを自動化しよう
srym
1
4.9k
Spring BootをKotlinで作成しAmazon Elastic Container Service (ECS) で稼働させる
srym
6
1.9k
iOSDC_2019_DeviceFarm.pdf
srym
8
19k
Unit Testing in a Nutshell - DroidKaigi 2018
srym
11
15k
Clean Architecture & TDD
srym
1
3.7k
はやい・やすい・うまい!スタートアップでも使える Retrofit + RxJava で瞬間APIクッキングレシピ
srym
2
590
I/O 2017 Short Report
srym
0
300
Mock Partially using Dagger
srym
0
650
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
41
2.1k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
How to Ace a Technical Interview
jacobian
275
23k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.2k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
RailsConf 2023
tenderlove
29
880
Building a Scalable Design System with Sketch
lauravandoore
459
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Transcript
ੈքͰઓ͏ΤϯδχΞ ʹͳΔͨΊʹ May 2019 - Fumihiko Shiroyama
ࣗݾհ • നࢁ จ • 35ࡀ, 2ঁͷ • Senior Software
Engineer @nikkei • Android, SRE, ML etc...
Android
Android
ΞδΣϯμ • ถࠃϥϘͰͷ׆ಈ • ถࠃʹ͓͚ΔιϑτΣΞΤϯδχΞͷՁ • ถࠃͰιϑτΣΞΤϯδχΞʹͳΔʹ • ੈքͰઓ͏ΤϯδχΞʹͳΔͨΊʹ
ถࠃͷΛฉ্͘Ͱͷҙ
ถࠃͷΛฉ্͘Ͱͷҙ • ʮ୭͕ݴͬͯΔ͔ʯ͕ੌ͘ॏཁ • ཹֶੜɺறࡏһɺ݁ࠗۮऀɺݱब৬ • ͋͘·Ͱ͍ͪαϯϓϧʹա͗ͳ͍͜ͱʹཹҙ ৗʹϙδγϣϯτʔΫͷ ՄೳੑΛ͓ٙ͏
ถࠃϥϘͰͷ׆ಈ
ถࠃϥϘͰͷ׆ಈ • ݚڀ։ൃ • ৽نࣄۀ • ػցֶश • ϏδωεΞϥΠΞϯε •
৽ٕज़τϨϯυͷ࣋ͪؼΓ
৽نࣄۀ ৽نࣄۀʹؔͯ͠ ެ։ࢿྉ͔Βআ
ػցֶश
ػցֶश • τϥΠΞϧϢʔβ͕༗ྉձһʹͳΔ͔ʁ • ಡऀ͕ͬͱڵຯΛͭهࣄΛఏҊͰ͖Δ͔ʁ
ถࠃʹ͓͚Δ ιϑτΣΞΤϯδχΞͷՁ
ΫΠζɿถࠃͷΤϯδχΞ͕ ऩ2000ສΒ͏ͬͯϗϯτʁ
ਖ਼ղɿͻͱʹΑΔ
ਖ਼ղɿͻͱʹΑΔ ϕΠΤϦΞͰ ͋ͳ͕ͪେ͛͞Ͱͳ͍ʂ
ສԁ • https://www.levels.fyi/SE/Google/Facebook/Microsoft • L5(Senior Software Engineer): $363,870 • ※
Base Salary + Bonus + RSU
গΑɺେࢤΛ๊͚ʂ ˞Ձͷҧ͍ʹཹҙͯ͠Ͷʂ
ถࠃͰιϑτΣΞΤϯδχΞ ʹͳΔʹ
ΫΠζɿถࠃͰιϑτΣΞΤ ϯδχΞʹͳΔʹԿ͕ॏཁ͔
ਖ਼ղɿϏβ
ถࠃͰιϑτΣΞΤϯδχΞ ʹͳΔʹ 1.Ϗβ 2. ֶҐʢܭࢉػՊֶɺֶɺཧֶ etc...ʣ 3. ӳޠ
Ϗβ
Ϗβ • ϏβʂϏβʂϏβʂٕज़ऀͱ͔ͯͣ͘͠͠ ͳ͍ͷ͔ʂ • Ϗβͱʹ͔͘ॏཁɻ͍·ٕज़৬ͷՖܗ H-1B͕ͱΓʹ͘͘ͳ͍ͬͯΔɻ • ΈΜͳ͋ͷख͜ͷखͰϏβΛೖख͍ͯ͠Δɻ
ถࠃࡏࢿ֨Ұཡ • ถࢢຽݖऀʢΞϝϦΧࠃ੶ʣ • ถӬॅݖอ࣋ऀʢάϦʔϯΧʔυʣ • ֶੜϏβɺब࿑Ϗβ
ถࠃࡏࢿ֨Ұཡ • ถࢢຽݖऀʢΞϝϦΧࠃ੶ʣ • ถӬॅݖอ࣋ऀʢάϦʔϯΧʔυʣ • ֶੜϏβɺब࿑Ϗβ ΞϝϦΧͰ͏·ΕΔ͔ ͕ΞϝϦΧਓ ؼԽ͢ΔʢӬॅݖऔಘޙ̑Ҏ্ʣ
ถࠃࡏࢿ֨Ұཡ • ถࢢຽݖऀʢΞϝϦΧࠃ੶ʣ • ถӬॅݖอ࣋ऀʢάϦʔϯΧʔυʣ • ֶੜϏβɺब࿑Ϗβ ΞϝϦΧࢢຽݖऀͱ݁ࠗ ब࿑Ϗβ͔ΒӬॅݖਃ %JWFSTJUZ1SPHSBN
ʢ௨শ($͘͡ʣ
ओཁͳϏβҰཡ • H-1Bʢઐ৬Ϗβʣ • L-1A, L-1BʢறࡏһϏβʣ • E2ʢࢿՈϏβʣ • O-1ʢಥग़ͨ͠ೳྗऀʣ
• J-1ʢΠϯλʔϯʣ • F-1ʢֶੜϏβɻOPTͰΠϯλʔϯՄೳʣ
H-1B • ઐ৬ͷՖܗ • స৬Մೳ • άϦʔϯΧʔυਃ͍͢͠ • 2018ݱࡏɺਃ͠ࠐΈ͕ύϯΫ͓ͯ͠ΓநબͰ3ׂఔ •
৬ʹؔ࿈͢ΔֶҐ·࣮ͨܦݧ͕ඞཁ • 4݄ਃɺ10݄ब࿑ͱ͍͏ͷ͔͞Βܟԕ͞ΕΔ ౷ܭ্ɺτϥϯϓݖ ʢࠓͷॴʣ͋·Γؔͳ͍
L-1A, L-1B • றࡏһϏβ • స৬ෆՄೳ • άϦʔϯΧʔυਃ͍͢͠ • ଟࠃ੶اۀͷΦϑΟεؒͷҟಈʹΑ͘ΘΕΔ
• Ͳ͔͜ͷࢧࣾʹ1ࡏ੶ඞਢͳͷͰస৬࣌ͷϏβʹར ༻͢Δ͜ͱͰ͖ͳ͍ ଟࠃ੶اۀͰҟಈ͔Β($α ϙʔτ͕͍·࠷࣮֬ͳํ๏ ͱൃදऀߟ͍͑ͯΔ
E2 • ࢿՈϏβ • స৬ෆՄೳʢE2ಉ࢜Մೳʣ • άϦʔϯΧʔυਃ͠ʹ͍͘ʢඇҠຽϏβʣ • ถͱక݁ࠃͷࢿຊ͕50%Ҏ্ೖ͍ͬͯΔඞཁ͕͋Δ •
ਃ͕ૣ͍ɺࡏ੶͠Γ͕ͳ͍ɺߋ৽͕ӬٱతʹͰ͖Δ • ىۀՈɺࢿՈຊਓɺཧ৬ɺͦΕΒΛิࠤ͢Δٕज़৬ͳͲղऍ ͕͍ͷͰۙͭͱʹΛूΊ͍ͯΔ ͨͱ͑ຊຊ͕ࣾ͋Γɺւ֎ࢧ ࣾʢגࣜͷҎ্Λຊ͕ࣾอ࣋ʣ ͷҟಈͳͲͰར༻Ͱ͖Δ ݅ΛຬͨͤىۀՈຊਓ͕ถࠃʹઃ ཱͨ͠ձࣾͰಇͨ͘ΊʹਃՄೳ
O-1 • Պֶܳज़ɺεϙʔπͳͲͰಥग़ͨ͠࠽ೳΛ࣋ͭͷʹൃߦ ͞ΕΔϏβ • ΦϦϯϐοΫબखɺֶΦϦϯϐοΫɺཧΦϦϯϐοΫͳͲ • CGΫϦΤΠλʔϝσΟΞΞʔςΟετ • ஶ໊ͳจPhDอ࣋ऀɺॻ੶ͷग़൛ͳͲͰՄೳੑ͋Γ
• H-1B͕ػೳ͍ͯ͠ͳ͍ͷͰPhDอ࣋ऀτϥΠ͢ΔՁ͋Γ Ҡຽหޢ࢜ͷ࣍ୈ
J-1 • ΠϯλʔϯτϨΠχʔൃߦ͞ΕΔϏβ • ͕ͨͬͯ͠ߴઐ৬ऀ͕͜ΕΛར༻ͯ͠ઐ৬ʹब͘͜ ͱNG • ऩ্ݶ͕͋ͬͨΓࡏڐՄ͞ΕΔظ͕͔ؒͬͨΓ৭ʑ ੍ݶ͕͋Δ •
Ϗβຬྃޙ࠷2ؒถࠃ֎Ͱա͝͞ͳ͍ͱ࣍ͷब࿑Ϗ βӬॅݖΛਃͰ͖ͳ͍(Two-Year Rule) ˞ಛผͳ߹Λআ͘
F-1 • ֶੜϏβ • ถSTEMֶҐऔಘ͢Δ͜ͱͰOptional Practical Training (OPT) ͱͯ͠࠷େ3ؒΠϯλʔϯ͕Մೳ •
ถେֶΛଔۀͰ͖Δਓ͜ͷํ๏͕࠷Ұൠత • ݫ͍͠AdmissionɺߴֹͳֶඅɺΕΔ΄Ͳͷ՝ ςετΛΓӽ͑ͯଔۀ͠ͳ͍ͱ͍͚ͳ͍ʂ ˞ཁ͢Δʹཧܥͱ͍͏͜ͱ
ΫΠζɿελϯϑΥʔυେֶʹ ௨͏ʹ͍ؒ͘Β͔͔Δʁ
ਖ਼ղɿ$67000ʢ740ສԁʣ https://news.stanford.edu/2018/02/14/trustees-set-2018-19-tuition/ तۀྉສυϧ ྈඅͰສυϧ
ຊͷτοϓߍ ۃΊͯܙ·Ε͍ͯΔͷͩʂ ຊͷେֶग़Ͱ ϕΠΤϦΞͰ׆༂͍ͯ͠Δઌഐ ͨ͘͞Μ͍Δͧ
܅ͨͪʹͰ͖Δ͜ͱ • ΞϝϦΧਓͱ݁ࠗ͢ΔʢGCʣ • ถେֶʹਐֶ͢ΔʢOPTͰब৬ʣ • ຊͷେֶʹਐֶ͢ΔʢH-1BͰब৬ʣ • ຊͰਐֶɺଟࠃ੶اۀʹब৬͠ɺถࠃҟಈΛࢦ͢ʢL-1Bʣ •
ຊͰਐֶɺब৬ɺͦͷޙถࠃब৬Λࢦ͢ʢH-1BɺJ-1ɺO- 1ͳͲʣ
H-1Bνϟʔτ • https://medium.com/@sakamoto.kazuki/ 2017-12-demystifying-us-visa-f596529701a3
ֶҐ
ΞϝϦΧֶྺࣾձ ຊͷൺ͡Όͳ͍ͧʂ
େࣄͳ͜ͱ • େֶ໊͡Όͳͯ͘ઐ߈ • ֶ࢜ΑΓम࢜ɺम࢜ΑΓത࢜ • ઐੑΛຏ͘ɻӳޠग़དྷͯͨΓલ • େֶͷษڧେࣄ͚ͩͲɺब৬ͷͨΊͷτϨʔ χϯάผʢ˞ޙड़ʣ
ϏβͰؔ࿈ֶҐॏཁʂ
ืूҰྫ ઓͷʹ͢Βཱͯͳ͍͜ͱ
ιϑτΣΞΤϯδχΞͳΒ • ίϯϐϡʔλɾαΠΤϯεʢܭࢉػՊֶʣ • σʔλɾαΠΤϯεɺ౷ܭֶ • ֶɺཧֶ • ػցֶɺిࢠֶ
ίϯϐϡʔλɾαΠΤϯε
ίϯϐϡʔλɾαΠΤϯε • ΞϧΰϦζϜͱσʔλߏ • ܭࢉෳࡶੑཧ • ΦϖϨʔςΟϯάγεςϜ • ωοτϫʔΫ etc...
ΫΠζɿੈքਓޱશһͷ໊͔ Β୭͔ͷ໊લΛ୳͢ͷͲͷ͘ Β͍͕͔͔࣌ؒΔʁ ԯਓͱ͠Α͏ ͻͱΓௐΔͷʹඵ ͔͔Δͱ͠Α͏
ਖ਼ղɿ୳͠ํʹେ͖͘ґଘ͢Δ ώϯτɿΈΜͳࣙॻͲ͏ͬͯҾ͘ʁ
ઢܗ୳ࡧ • NݸͷཁૉΛઌ಄͔Βݟ͔ͭΔ·Ͱ୳͢ • 0.01 * 7000000000 / (60 *
60 * 24) / 2≒405 • ࠷ѱܭࢉྔ: O(N) ͻͱΓݟ͚ͭΔͷʹҎ্ʂ
ೋ୳ࡧ • ྻࡁΈͷNݸͷཁૉΛͣͭ୳͢ • Math.log2(7000000000) * 0.01 / 2≒0.16ඵ •
࠷ѱܭࢉྔ: O(logN) ൺʹͳΒͳ͍ʂʂʂ ˞ྻͷίετ֓Ͷ0 /MPH/
ֶ
ֶ ࡾ֯ؔඞཁͳ͍ʂ
ֶ ࡾ֯ؔඞཁͳ͍ʂ
ࡾ֯ؔ • ਤܗͷճసɺԁӡಈ • ճసߦྻʢઢܗʣ • ϕΫτϧͷίαΠϯྨࣅ Θͳ͍ͱ͜ΖΛڍ͛Δํ͕ Ή͔͍͙ͣ͠Β͍ͩͧʂ
ඍ • Ճ • يಓ༧ଌɺఱؾγϛϡϨʔγϣϯ • ػցֶशͷଛࣦؔͷ࠷খԽ ͍·ྲྀߦΓͷػցֶशͰ ͍·͘Δͧʂ
ӳޠ
ΫΠζɿੈքͰઓ͏ͨΊʹඞཁ ͳӳޠྗͬͯͲͷ͘Β͍ͩΖ͏
ਖ਼ղɿx→∞ ͍͘ΒͰ͖ͯଟ͗͢Δͱ͍ ͏͜ͱͳ͍ʂ
ӳޠ • ӳޠ͕Ͱ͖Δ͚ͩͰউෛʹͳΒͳ͍ • Կ͔֬ͨΔઐΛ্࣋ͬͨͰӳޠ͕Ͱ͖Δ͜ ͱڧ͍ثʹͳΔ • TOEIC900ͱ͔Կͷҙຯͳ͍ ཹֶ͢ΔͳΒ50&'-ͱ͔ ҙຯ͕͋ΔͧʂؤுΕʂ
ൃදऀͷମײͰɺ50&*$Ͱݱͷࡀࣇ͙Β͍ͩͳʂ
ੈքͰઓ͏ΤϯδχΞʹ ͳΔͨΊʹ
ੈքͰઓ͏ΤϯδχΞʹͳΔͨΊʹ • কདྷʹ͍ͭͯߟ͑Α͏ • ເ͔Βٯࢉͯ͠ܭըΛཱͯΑ͏ • ಛʹු͔ͳ͍߹ͱʹ͔͘ษڧ͠Α͏ʂ ֶͱӳޠ͕͓͢͢Ίͩͳʂ ͦΕΒ͕ෆཁͳ৬ۀͳΜͯͳ͍ʂ
ϓϩάϥϛϯάඞཁ͔ • ඞͣͦ͠͏Ͱͳ͍ͱൃදऀߟ͑Δ • खஈΛ֮͑ΔΑΓɺຊ࣭Λཧղ͠Α͏ • ڊࢹతͳ؍Ͱޮͷྑ͍ΞϧΰϦζϜσʔ λߏ͕બΕɺݴޠͷҧ͍ͳͲ͍͞͞ͳ ͷͩ
ίʔσΟϯάςετରࡦ • ϕΠΤϦΞͷτοϓاۀͰաࠅͳίʔσΟ ϯάςετ͕՝͞ΕΔ • େֶͷ༰ʹ४ڌ͢Δ͕ɺແରࡦͰಥഁ͢Δ ͷෆՄೳ • AtCoder, LeetCodeͳͲ͕Φεεϝ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
Thanks • ͍Β͢ͱ • https://www.irasutoya.com/
໔ࣄ߲ • ຊεϥΠυͷ༰ൃදऀͷಠࣗௐࠪͰ͢ɻ ಛʹϏβʹؔͯ͠ඞͣҠຽหޢ࢜ʹ૬ஊ͠ ͍ͯͩ͘͞ɻ • ຊεϥΠυͷ༰Λ࣮ફͨ͜͠ͱʹΑΔ తɺਵతɺ݁Ռతɺؒతɺ͋Δ͍േ తͳଛɺܦඅɺଛࣦɺ·ͨ࠴ʹ͍ͭͯɺ ͍͔ͳΔෛ͍͔Ͷ·͢ɻ