Qanday qilib men Microsoft, Amazon va Twitter-dan Ivy League darajasiga ega bo'lmagan takliflarni topdim

Bu sizning orangizda ish qidirishni boshlamoqchi bo'lgan va Stenford CS darajasiga ega bo'lmagan holda yuqori darajali texnologik ish topolmaysiz degan xavotirda bo'lganlar uchun. Kimdir sizga Microsoft yoki Facebook-da ishlash uchun yetarli emasligingizni aytdi. Ammo siz bu ishni olishingiz mumkinligini aytish uchun keldim. Mana, men buni qanday amalga oshirgan bo'lsam ham, orzuimdagi ishimni Twitter-ga qo'ydim.

10/19/2018: Men qanday tayyorlaganimni bilish uchun bu erda mening kurslarim haqida ko'proq o'qing.

8/25/2018: Twitter-dagi bir yillik tajribam uchun bu erda o'qing.

Ushbu maqola nimani qamrab oladi:

  • Mening kelib chiqishim
  • Qanday qilib men dunyoning eng yaxshi texnologiya kompaniyalari: Facebook Google, Amazon, LinkedIn, Microsoft, Twitter, Pinterest, Snapchat va boshqalarga intervyu berganman.
  • Qanday qilib men to'liq vaqtli dastur muhandisi sifatida bir nechta takliflarni qabul qildim
  • Suhbat tajribamdan olgan bilimlar
  • Men haqimda ko'proq maqola yangilanishi uchun bu yerga obuna bo'ling

Agar mening o'rniga mening hikoyamni ko'rishni xohlasangiz, men bu erda video qildim:

Fon

Men Ayvi ligasi maktabini bitirmagan edim. Men ikki yil davomida Aydaho shtatidagi jamoat kollejiga bordim, keyin kichik katolik universitetida CS darajamni tugatdim.

Men kollejning kichik yilida kompyuter fanini o'rganishni boshladim, chunki bu vaqt menga juda yoqimli edi. Men ulg'aygan kompyuterga o'xshagan yagona narsa xitoylik Nintendo SNES nusxasi edi. Shunga qaramay, men har safar lenta qo'yganimda bu buzilib ketadi.

Kollejda o'zimni ta'minlash uchun ko'p qavatli ishlarni bajarganman, pollarni tozalash va ish joyidan imtiyozlar olish.

O'qishni bitirganimda, mening ish joyim yo'q edi. Men iloji boricha ko'proq yirik texnologik kompaniyalarga murojaat qildim va bir nechta telefon orqali intervyu olishga muvaffaq bo'ldim.

Hozirgi vaqtda menda texnik ekran qanday bo'lishi haqida bitta tushuncha yo'q edi, bunga qanday tayyorgarlik ko'rish kerakligi haqida ham. Men intervyu oluvchi mendan bog'langan ro'yxat yoki ikkilik daraxti nima ekanligini so'raydi deb o'yladim.

Men bu intervyularning hech birini o'tmadim.

Oldinga siljish

Men o'zimning yaxshligim haqida ko'p narsa bilmasdim. Tez narsalarni o'rganishim mumkinligini bilardim. Menga shunchaki imkoniyat kerak edi.

Aytilganidek, to'ringizni uzoqqa uloqtiring. Shunday qilib men shunday qildim.

Keyingi qilgan ishim - men juda g'ururlanaman. Men oddiy Python skriptini yozdim, unda Craigslist-dagi ish ro'yxatlarini kalit so'zlar ro'yxati berilgan sarlavhalar bilan o'chirib tashladim va elektron pochta xabarlarini elektron jadvalga yig'dim. Urush haqidagi haqiqiy voqea uchun siz mening so'nggi maqolamni bu erda o'qishingiz mumkin.

Bu eng aqlli yechim emas edi, ammo Craigslist-da e'lon qilgan odamlar o'zlarining nomlari bilan ajablanarli darajada aniq.

Biroq, Craigslist odamlar o'z veb-saytlarini qirib tashlashlarini yoqtirmasdi. Buni hal qilish uchun men VPN orqali skriptimni ishga tushirdim va har bir necha daqiqada yoki bir necha daqiqada skriptni to'xtatib turuvchi taymerim bor edi. Bu mukammal emas edi, ammo u yaxshi ishladi.

Uning oxirida men San-Frantsisko, Portlend, Spokan va Sietldan 500 ga yaqin elektron pochta xabarlarini to'pladim. Men natijalarni ular qanchalik aniq va yaqinda bo'lishiga qarab filtrladim va ko'paytirilgan xususiyatlarni qo'shib yaxshiladim.

Ma'lum bo'lishicha, bozorda allaqachon Craigslist-ni qidirib topgan va avtomatlashtirilgan elektron pochta xabarlarini yuborgan bir nechta bot bor edi. Bular asosan o'z kompaniyalarini AQSh bozoriga chiqarmoqchi bo'lgan offshor kompaniyalar edi.

Mening tekshiruvlarimdan biri shuki, men elektron pochta manzillarining sarlavhasida ularning ro'yxatidan kalit so'zlarni ishlatadigan elektron pochta xabarlarini tuzdim. Keyin men uni yanada ko'rinadigan qilish uchun xabarlarning asosiy qismidan foydalanib ko'proq tafsilotlarni qo'shdim. Men A / B tez sinovini o'tkazdim va olingan javoblar 2-3% dan 10% gacha biroz oshdi.

500 yoki undan ortiq elektron pochta xabarlaridan 50taga yaqin javob oldim va telefon ekranlariga ularning ozgina qismi joylashtirildi. Men 500 da to'xtadim, chunki vaqtim qisqa edi va ishni imkon qadar tezroq yakunlashim kerak edi. Men shu nuqtaga yetgandan ko'ra natijalarni optimallashtirardim.

Omad bo'lishiga qaramay, men nihoyat Sietldagi dasturiy ta'minot bo'yicha kichik muhandis sifatida ishga joylashdim. Boshlovchi o'sha paytda Kerklandda joylashgan edi, shuning uchun men 45 daqiqada avtobusga chiqishim kerak edi, chunki suhbatga vaqtida borgan edim.

Keyin keyingi 3,5 yil davomida u erda qoldim, u erda Amazon AWS, EC2, DynamoDB, SQS va Docker kabi juda ko'p narsalarni o'rgandim. Men bu davrda juda ko'p o'sdim. Modulli, saqlanadigan kod yozishni o'rgandim. Men dasturiy ta'minot dizayni haqida qanday mulohaza qilishni o'rgandim. Va men odamlarning muammolarini qanday hal qilishni o'rgandim.

Men Microsoft, Amazon va LinkedIn-da ish olib boradigan bir guruh aqlli odamlar yonida ishladim va guruhda "shimgich" bo'lishga harakat qildim. Men hech narsaga va ular menga tashlagan narsalarga sho'ng'idim. Ishonamanki, bu mening faoliyatimda katta ta'sir ko'rsatdi.

Boshlanish kunlari

Mening boshlang'ich faoliyatim davomida men deyarli faqat orqa tomonlarni ishlab chiqish bilan ishladim, ular orasida bir nechta dasturlar mavjud. Men asosan kichik hajmdagi xususiyatlarni qo'shish / o'zgartirish uchun ba'zi funktsiyalarni yozishni boshladim. Lekin kod bazasini tushunish va ba'zi kodlarni ko'rib chiqish juda yaxshi imkoniyat edi.

Bir yil o'tgach, men kod bazasining qismlariga egalik qila boshladim, keyin menga funktsiyalar to'plamini xizmatga aylantirish vazifasi qo'yildi. Bu startap uchun SOA bosqichining boshlanishi edi. Biz saytning turli tarkibiy qismlarini xizmatlarga aylantira boshladik va shu bilan RESTful xizmatlar, autentifikatsiya, AWS xizmatlari, pub-sub, tarqatilgan tizimlar va boshqalar haqida ko'proq bilishni boshladim.

Bu erda qiziq tomoni shundaki, men bu haqida biron bir ma'lumotni kitoblar yoki rasmiy ta'lim orqali bilmagan edim. Aksincha, men ushbu funktsiyalar to'plamini amalga oshirishim kerak edi va bu erda muammolar bor.

Men o'yladim, uni hal qilaylik!

Ko'p marta analiz falajiga duchor bo'lganman - bu men stsenariylarni haddan tashqari tahlil qilgan va natijaga erisha olmagan holat.

O'sha qiyin paytlarda o'rganish eng katta imkoniyat edi. Men xususiyatlarni o'rganish, muzokaralar, monitoring, ogohlantirish va hujjatlarni o'rganishni boshladim. Jarayonning har bir bosqichida men o'rganishim kerak bo'lgan ko'proq narsalar aniqlandi. So'nggi 2-3 yil ichida men ham, ham dastur muhandisi sifatida eng ko'p o'sdim.

Intervyularimga qanday tayyorgarlik ko'rdim

Men birinchi ish qidirishda qiynalganimdan so'ng, o'zimni kelajakdagi intervyularga tayyor bo'lishim kerakligini aytdim.

Men intervyuga tayyorgarlik ko'rishni boshladim, chunki men o'zimning yaxshi, yomon va qayerda yaxshilashim mumkinligini tasvirlab berardim. Men uni uchta toifaga ajratdim: ma'lumotlar tuzilmalari, algoritmlar va tizim dizayni.

Kasbiy faoliyatimning ko'p qismi uchun PHP-da va kollejda C ++ da ishlaganim sababli, suhbatlashish uchun biroz sodda va ozroq narsani sinab ko'rmoqchi edim.

Shuning uchun men Python-ni tanladim. O'rganish uchun juda zo'r til, uni yig'ish oson, ma'lumotlarning ko'plab tuzilishini qutidan tashqarida qo'llab-quvvatlaydi va ularni tez orada doskaga yozib olish mumkin. Men Python-ni Youtube-ga o'xshash darsliklardan o'tib, ularning hujjatlarini o'qib o'rganganman. Men Python 2.x-ni afzal ko'raman, lekin siz 2.x yoki 3-ga o'tishingiz mumkin.

Pythonni tanlaganimning yana bir sababi shundaki, u juda o'qiydi va oq doskada yozilishi oson. Bu erda C ++ va Python o'rtasidagi arzimas taqqoslash.

C ++ dasturi kamayib boruvchi tartibda tartiblash uchun:

# o'z ichiga oladi 
stad std yordamida;
int main ()
{
   int arr [] = {1,10,0,4,5}
   int n = kattalik (arr) / sizeof (arr [0]);
   sort (arr, arr + n, kattaroq  ());
   uchun (int i = 0; i 
   qaytish 0;
}

Buni Python versiyasi bilan taqqoslang:

a = [1,2,4,5,1000]
a.sort (teskari = haqiqiy)
bosib chiqarish a

Men intervyu beruvchilarning intervyuda qisqartirish tomonini xato qilishlari haqida xabar oldim. 45 daqiqali intervyuda siz ko'p vaqtingizni haqiqiy muammoni hal qilishga sarflashni xohlaysiz.

Maslahat: oq doskada kodni tezroq yoza olishingiz uchun kamroq og'zaki tilni tanlang

Tayyorgarlik rejimi

Men bir hafta davomida LeetCode, HackerRank va Project Eyler-da oddiy interfeyslarni sinab ko'rdim, ularning interfeysi bilan tanishish va Pythonda kod yozishga odatlanganman.

Birinchi hafta menga ba'zi dasturlash tillarida vakolat darajam to'g'risida tushuncha berdi. Men yana bir hafta "dizayn X" kabi dizayn muammolarini boshdan kechirdim va imkon qadar keng va chuqurroq bordim.

Bu men uchun juda qiziqarli bo'ldi, chunki men tez-tez iOS dasturlarini ko'rib chiqardim va ular buni qanday amalga oshirganlarini tushunishga harakat qildim. Masalan, Instagram-ni noldan qanday yaratgan bo'lardingiz? (Buni menga Facebook orqali so'rashdi).

Mening bilimlarim API dizaynida va xizmatga yo'naltirilgan arxitekturada. Shunday qilib, men o'zimning Instagram-dagi o'z versiyamni qanday loyihalashtirishimni namoyish etish uchun fursatdan foydalandim. Mening yon loyihalarim bo'yicha iOS dasturlash tajribasiga ega bo'lganim sababli, bu erda qo'ng'iroqlar va push / uzoq so'rovlar haqida ozgina gaplasha olaman.

Suhbatni o'zimning Instagram-dagi o'zim yoqtirgan ba'zi xususiyatlar bilan boshladim: yoqadi, fotosurat yuklayman va oddiy xronologiyada. Xususiyatlarni aniqlash menga juda yaxshi API yaratishga yordam berdi, chunki men bu stsenariylarni yaxshi bilaman.

Keyin men yuqori darajadagi dizayni, mijozning backend bilan qanday munosabatda bo'lishini va ma'lumotlarni saqlovchi ma'lumotlarning ba'zi rasmlarini chizdim.

Men kichkina ishlarni boshladim, keyin kerak bo'lganda ko'proq qismlarni qo'shdim va muammoli joylarni faol ravishda qidirib topdim. Men talablar qanday bo'lishini va har bir texnologiya qanday qilib mos kelishini bilgan holda ma'lumotli taxminlarni qildim (o'qimang, ko'r ko'r-ko'rona emas). Qaysi texnologiyalar yaxshi mos kelmasligi ham bir xil darajada muhimdir.

Masalan, nima uchun ba'zi ma'lumotlarni saqlash uchun MySQL-dan Cassandra-dan foydalangan edingiz (masala: o'lchov, rivojlanish tezligi, sxemalarni ko'rib chiqish), nima uchun OAuth-ni oddiy autentifikatsiya orqali ishlatish, ma'lumotlarni keshlash uchun Redis vs Memcached, ma'lumotlarni oqimi va to'plamga ishlov berish va boshqalar.

Bu erda ko'p joylarni o'rganishingiz mumkin, shuning uchun odatda bir soatlik mashg'ulot etarli emas. Ushbu savollarga yaxshi javob berish uchun siz savdo-sotiq haqida o'qib chiqishingiz kerak. Sohadagi texnologiyalarning afzalliklari va kamchiliklari. Buning uchun men HighScalability kabi saytni tavsiya qilaman.

Buni hamkasbingiz bilan o'tkazilgan miya hujumi kabi odatiy mashg'ulot singari oling, imkon qadar ko'proq va chuqurroq o'rganing.

Ushbu dizayn intervyulari sizni qanchalik bilishingizni va uni qanchalik yaxshi bilishingizni o'rganish uchun mo'ljallanganligini bilish juda muhimdir va bu sizga porlash uchun imkoniyatdir. Men Youtube-dagi sobiq video muhandisning dizayndagi muammolarni qanday hal qilish haqida tomoshasini ko'rdim va bu menga dizayn bo'yicha intervyu berishimda juda yordam bergan tushunchalar berdi. Undan mening ikkita asosiy o'rganishim: dizayn suhbatini boshqaring va bilganingizni namoyish eting.

Men o'zimning kompetentlik darajamni sanab o'tdim: ma'lumotlar tuzilmalari (bog'langan ro'yxat, xesh xaritasi, ikkilik daraxt, ikkilik qidirish daraxti, uyum, qator), algoritmlar (ikkilik qidirish, xesh, dinamik dasturlash, saralash) va tilga xos sintaksis va kutubxonalar ( kabi, Python uchun lambda, qo'shish, indeksatsiya).

Men eng yomon bo'lgan joyni tanladim va u ustida ishlay boshladim: algoritmlar.

Algoritmlar hech qachon mening qal'am bo'lmagan. Kollejda o'qigan kunlarimdan beri bir muncha vaqt o'tdi va kundalik faoliyatimda ikkilik qidirishga ko'p vaqt sarf qilmadim. Men har bir algoritmni qanday bajarishi va ulardan qanday stsenariylarda foydalanish haqida bilardim. Ammo men 10 minut ichida ikkilik qidiruvni yozishga 100% qulay emas edim. Oq doskada. Suhbatdosh oldida.

Shuningdek, Amazon-dan ajoyib ishlaydigan juda ko'p sonli markerlarni oldim. Ehtimol, bu shunchaki men, lekin intervyu xonalarida eng yaxshi belgilar odatda umuman ishlamaydi. Men odatda 2-3 daqiqa ishlaydigan qalamni qidirib o'tiraman, va bu 2-3 daqiqani behuda sarflashga toqat qilolmaysiz. Bundan tashqari, ingichka nuqtali belgilar odatdagi doskaga va qalinlariga nisbatan 5-8 qatordan iborat kod yozishga imkon beradi. :)

Maslahat: O'zingizning nozik nuqtali belgilaringizni oling

Men Costco-dan 50 dollarlik doskani oldim, Amazon-dan ba'zi kitoblar (quyida tavsiya etiladigan vositalar ro'yxatida keltirilgan) va kodlash amaliyotini boshladim. Ikkilamchi qidirish, rekursiya, dinamik dasturlash, BFS va DFS-ga kirishimga ishonch hosil qildim. Ko'p intervyu savollari recursion va ikkilik qidiruv yoki uning ba'zi o'zgarishlari atrofida paydo bo'ldi.

Men ko'rgan eng yaxshi intervyu savollariga turli xil echimlar topilgan va siz borgan sari rivojlanib borgan sari yana bir qavat qo'shilgan.

Menda Google-dan bitta savol fayl tizimlari kataloglari va ularni qanday o'tish haqida edi (ishora: recursion). Men buni juda tez hal qildim va suhbatdosh ushbu jildda yo'qolgan faylni qanday aniqlashni so'radi. Bu biroz qiyinlashdi, lekin men buni boshdan kechirdim. Va keyin biz katalogni qanday tiklash, uni qanday seriyalash / deserializatsiya qilish haqida gaplashdik va kaput ostida fayl kataloglari qanday ishlashini muhokama qildik. Bu men uchun juda yoqimli sessiya bo'ldi.

Yuqori darajadagi kompaniyalarda suhbat

Haqiqatan ham bu asabiy tushkunlik tajribasi edi. Va qanday g'ildirakli sayohat

Men vaqtimni quyidagicha ajratdim: 20% rezyume, 20% tadqiqot va 60% suhbatga tayyorgarlik.

Men kamida uch yil ichida yangilanmagan rezyumeni tuzishga vaqtimning 20 foizini sarfladim. Ilgari qilgan narsalarimga qattiq tikilib qaradim va murakkabligidan qat'i nazar, oxir-oqibat ishlagan loyihalarni tanladim.

Buning sababi ikki baravar. Loyihani boshidan oxirigacha olish intizom va etakchilikni talab qiladi - men bilmoqchi bo'lgan ikkita xususiyat.

Ikkinchidan, loyihaning oxirigacha egalik qilish, men loyihaning har bir jihati haqida uzoq va chuqur gapirishim mumkinligini anglatadi. Bu menga Twitter-da dizayni aylanishida yordam berishda juda muhim bo'ldi, bu erda ular nafaqat mening loyihalarim, balki ularning orqasida qabul qilingan qarorlar haqida ham bilishadi.

Mening vaqtimning 20 foizi tadqiqotga sarflangan. Ushbu holatda olib borilgan tadqiqotlar, men qiziqqan kompaniyalarga tegishli tavsiyanomalarni qilishni va tavsiyanomalarni olishga harakat qilishni anglatadi. Yo'naltirishga ega bo'lish, qo'ng'iroqlarni qaytarishda yordam beradi.

O'z tajribamdan kelib chiqqan holda, men startaplar va o'rta darajadagi kompaniyalarga 20 yoki undan ko'p sovuq xabarlarni yubordim va faqat bir nechta odamlardan javoblarni eshitdim. Ammo, bir xodim menga murojaat qilgan deyarli barcha kompaniyalar menga bir hafta ichida xabar yuborishdi. Bu juda hayajonli, ammo u erda bo'lish muhim ahamiyatga ega.

Men unchalik do'st emasman va meni qiziqtirgan kompaniyaga murojaat qila oladigan ko'p odamlarni bilmasdim. Bu muammoni hal qilish uchun LinkedIn-ga o'tdim. Ularda men birinchi va ikkinchi darajali ulanishlarni qidirishda foydalangan qidirish funktsiyalari mavjud. 2-darajali aloqalar - bu sizning yaqin atrofingizdan bitta xop bo'lgan odamlar. Boshqacha aytganda, mening ishonchli ekanligimni ta'minlaydigan o'zaro do'stlarimiz bor.

LinkedIn qidiruvi

Bu juda muhim, chunki kimnidir ishga taklif qilish juda qiyin, ayniqsa hozirgi bozorda. Odamlar sovuq qo'ng'iroqlar haqida gap ketganda ehtiyot bo'lish kerak. LinkedIn-dan foydalanish mening tadqiqot bosqichim uchun juda foydali bo'ldi.

Men intervyu bergan barcha kompaniyalarga nazar tashlar ekanman, ularning har biri to'g'risida fikrlarim quyidagicha:

  • Facebook / Google - juda mexanik. Oddiy intervyu jarayoni va men ular bilan shaxsiy aloqani sezmadim.
  • Pinterest - eng yaxshi intervyu tajribasi emas, balki ajoyib mahsulot va kompaniya.
  • Microsoft - jamoani va ayniqsa menejerni va uning menejerini juda yaxshi ko'rardi. Standart intervyu savollari, lekin juda aniq. Ikkinchi tanlov. Sizning yurishingiz har xil bo'lishi mumkin, ammo har bir jamoa Microsoft suhbatida har xil.
  • Amazon - standart intervyu jarayoni. Odamlarning 50 foizga yaqini uni sevadi, boshqalari esa yoqmaydi.
  • Twitter - nihoyatda qiziqarli va shaxsiy. Intervyu berish jarayonini yoqtirdim, shaxsga va ilgari qilgan ishlarimga ko'p e'tibor qaratdim.
  • Snapchat - LA-dagi ajoyib ofis, startap tasmasidan sakrab o'tishga qaror qilgan ko'plab odamlar. Maxfiy narsalar buluti ostidagi narsalar singari sirg'alar qoplangan edi.
  • Lyft - yashash joyim yaqinida, yaxshi ofis, intervyu olishning oddiy jarayoni. Bu borada kuchli tuyg'ular yo'q.

Sevimlilarim haqida gaplashaylik

Men ko'p jihatdan Twitterning intervyu uslubi qiyin bo'lganini aytardim. Ammo, shu bilan birga, men suhbatlashgan boshqa kompaniyalarga qaraganda u yanada qiziqarli va ta'sirchan edi.

Ularning intervyu jarayoni muhandislik menejeri bilan kirish qo'ng'irog'idan boshlanadi. Qanday bajarishingizga qarab, bitta yoki ikkita texnik telefon ekranini kuzatib borasiz. Agar siz yaxshi ish qilsangiz, ular sizni intervyu olgan idorangizga olib ketishadi. Uch soatlik 15 va 15 daqiqalik turlar bo'lib, ularning har biri ikkitadan intervyu oladilar.

Dastlabki ikkita texnik telefon ekranlari standart, ishlab chiqarishda ishlaydigan texnik ekranlar bo'lib, unda siz kodlash muammolarini birgalikda kodlash hujjatida hal qilasiz.

Ammo saytdagi sayohatlar ancha suhbatdosh bo'lib, o'zlarini kamroq qo'rqitadi. Intervyuerlar sizning oldingi loyihalaringiz haqida chuqur savollarni so'rashadi va ular sizning o'tmishda qilgan ishlaringizni bilib olishadi. Agar siz biron bir loyihaga egalik huquqini da'vo qilsangiz, bu haqda ba'zi savollarni kutishingiz kerak. Siz ularni ma'lumotnomalar uchun ishlatishingiz va fikrlarni o'rtoqlashishingiz tavsiya etiladi.

Men hech qachon sehrli ravishda to'liq ishlaydigan yechimni taklif qilish uchun hech qanday bosimni his qilmadim va bu juda hamjihatlikni his qildi.

Boshqalar

Taqqoslash uchun, Facebook va Google-da intervyu ancha mexanik bo'lib tuyuldi. Ular bitta yoki ikkita texnik telefon ekraniga va besh-oltitadan sayt ichidagi kodlash turlariga ega. Har bir turda oq doskada ba'zi kodlar mavjud bo'lib, sizga maqbul vaqt ichida sizga eng zo'r echimni topishingiz kutiladi.

Facebookda ikkita kodlash davri, bitta dizayn davri va bittasi xulq-atvor davri mavjud.

Men kun oxirida qo'shimcha soya turidan o'tdim, ular mening umumiy ballarimni hisobga olmadilar.

Google beshta kodlash turini o'tkazdi, ularning hech biri dizaynga e'tibor qaratmagan va bironta ham suhbatdosh oldingi loyihalarim haqida so'ramagan. Men buni yomon deb o'ylamayman. Ammo menimcha, bu juda mexanik edi va muhandisga nimalarga qodirligini namoyish etish uchun katta imkoniyat bermadi. Ba'zi bir o'quvchilar imtihonlarda yaxshi qatnashganlari singari, ushbu stsenariylarda ham yaxshi.

Pinterest bilan suhbatim menga yoqmadi. Menimcha, mahsulotning o'zi qiziqarli va ularning muhandislik jamoasi juda ajoyib texnik muammolar ustida ishlayotganga o'xshaydi. Ammo men u erda intervyu paytida, shubhasiz, salbiy tajribani boshdan kechirdim.

Pinterest uchta kodlash va bitta dizaynli turga ega. O'sha to'rtta turdan dizayn dizayni meni juda xafa qildi. Shuning uchun:

Intervyu beruvchi kechroq keldi va u bir necha daqiqa sarflab, mening rezyumeimni bortda ba'zi API-larni chizishni davom ettirdi. U API nima qilishni kutganligi haqida qisqacha ma'lumot berdi va uni qanday hal qilishimni so'radi. Biz API xususiyatlarini aniqladik va men o'zimning echimimni oq taxtadan foydalanib tasvirlay boshladim. Besh daqiqa ichida men orqamga o'girildim va u bir oz uxlab yotganini ko'rdim!

Salqin emas.

Men so'rovnomada yollovchilarga o'z mulohazalarimni bildirdim va shundan so'ng ulardan javob eshitmadim.

Men barcha intervyular paytida menga berilgan savollarning o'ziga xos xususiyatlarini bilmayman. Buning o'rniga, men tayyorgarlik jarayonida o'rgangan ba'zi tushunchalar va foydali maslahatlar bilan bo'lishaman.

Men nimani bilib oldim:

  • Rezyumeingizda halol bo'ling. Aksariyat kompaniyalar sizning rezyumeingiz haqida savol berishadi va agar siz uni tuzgan bo'lsangiz, ular sizga xabar berishlari mumkin. Bitta loyiha haqida 100% bilishdan ko'ra 10% turli xil loyihalarni 100% bilish yaxshiroq bo'lganligi yaxshiroqdir.
  • Bir sahifali rezyume tavsiya etiladi. Bu, ayniqsa, texnologik kompaniyalar uchun to'g'ri keladi va texnologiya sohasidagi donolik shundan iboratki, siz doktorlik dissertatsiyasi uchun ikki varaqni va undan ko'p vaqtni zaxiralashingiz kerak yoki agar siz o'zingiz biladigan va chuqur g'amxo'rlik qiladigan ko'plab loyihalarni amalga oshirgan bo'lsangiz. . Mening bir do'stim Jobscan ismli kompaniyani boshqaradi, u rezyumeni skanerdan o'tkazadi va ularda aniq va faol yaxshilanishlarni amalga oshiradi. Ular juda ajoyib, shuning uchun ularni sinab ko'ring :)
  • Ijtimoiylashtiring va tarmoq yarating. Dasturiy ta'minot muhandisligi bo'yicha ish joylari uchun juda ko'p raqobat mavjud va bu eng yaxshi texnologiya kompaniyalari kuniga minglab rezyumeni sinab ko'rishadi. Yo'llanma sizga rezyumeni ko'rishga yordam beradi.
  • Qavsingizni mixlang. Sizni qiziqtirgan har bir kompaniya sizni nima uchun qiziqtirayotganingizni bilishni xohlaydi. Yomon javob: Xarajatlarni to'lash uchun menga hoziroq ish kerak. Kamroq yomon javob: Internetda ko'rib chiqdim va sizga yigitlarni topdim. Siz qiziqarli narsalar ustida ishlayotganingizga o'xshaydi. Yaxshi javob: Bilaman, siz Y-ga erishish uchun X-da qiziqarli ishlarni qilyapsiz. Men ilgari ishlaganman va bu erda X, B, C bilan bog'liq bo'lishi mumkin bo'lgan narsalar haqida bilib olganman. Y chunki bla. (Buni shablon sifatida ishlatmang. Buning o'rniga, siz bu erda naqshni ko'rishingiz kerak - tadqiqotlaringizni olib boring, o'zingizning foningizdan foydalaning va kompaniyangizga nima uchun ikkalangiz bir-biriga yaxshi mos kelishini ko'rsating)

Yana bir nechta maslahat

Texnik intervyu nihoyatda qiyin va ba'zida bu juda ham qiyin yoki o'tkazib yuborilishi mumkin. Ammo eng yaxshi imkoniyatlar tayyor bo'lganlar uchun ajratilgan.

  • Erta tayyorlaning, yaxshilab tayyorlang. Suhbatga tayyorgarlik ko'rish kerakligini hamma biladi, lekin ko'pchilik buni qanday qilib yaxshi qilishni bilmaydi. Qilish kerak bo'lgan har qanday narsa kabi, biror narsani yaxshi qilish uchun qasddan mashq qilish kerak. Va qasddan amaliyot siz tizimga ega bo'lishingiz kerakligini anglatadi.
  • Texnik ko'nikmalarni mashq qilish uchun tizim yarating. Men o'zimni qanchalik yaxshi ekanligimni o'zimning baholarimni 1–10 dan boshladim va yomon ko'rganlarim ustida ishladim. Men har bir tushunchani to'liq o'zlashtirmagunimcha kunlarimni turli xil savollarga bag'ishladim. Va men Evernote-da har kuni eslatmalar yozdim. Menda hamma narsa dasturlash uchun miya axlati bo'lib xizmat qiladigan eslatma bor edi. U dasturlash bo'yicha maslahatlar va nayranglar, keng tarqalgan xatolar va noto'g'ri tushunchalar, muayyan turdagi savollarni hal qilish uchun asos va boshqa ko'p narsalarga to'la.
Mening daftarcham
  • O'zingiz o'rgangan narsalarning daftarini saqlang. Men narsalarni kuzatish uchun Evernote va OneNote-dan foydalanaman. Texnik narsalar / kodlar uchun OneNote, chunki men eslatmani xohlagan shaklda osongina formatlashim mumkinligi menga yoqadi. Men Evernote-dan insholar / fikrlar uchun foydalanaman. Yuqoridagi rasmda men arxitektura va tizim dizayni bo'yicha eslatma mavjud.
Fikrlar / maslahatlar uchun Evernote
  • Hech qachon foydalanmasligingizni bilmasangiz ham, barchasini o'chiring. Men juda oson unutishga moyilman, shuning uchun men nimani o'rgansam ham, yozaman, shu jumladan qobiq buyruqlarini. Men vaqti-vaqti bilan texnik bloglarni o'qiyman va agar biron bir qiziq narsa topsam, darhol Evernote-ga yozib qo'yaman. Men har hafta yoki oyda qayta ko'rib chiqaman va shunga ko'ra qayta tashkil qilaman. Bu menga kariyeramda katta yordam berdi.
  • Soxta intervyu oling. Bu, albatta, juda qadrli edi va men bunga juda maslahat beraman. Do'stlarim bilan masxarali suhbatlar o'tkazdim va imkon qadar ko'proq mashq qilishga harakat qildim. Agar siz mashq qilish uchun do'st topolmasangiz, unda men Refdash-ni tavsiya etaman, bu Intervyu-As-A-Xizmatdir. Ular orasida Google, Facebook va Microsoft kabi yirik texnologik kompaniyalarda ishlaydigan bir guruh intervyuchilar bor. Ushbu intervyuerlar sizni kodlash va dizayn ko'nikmalaringizni baholaydilar. Uning eng yaxshi tomoni - ular oxirida sizga qanday yaxshilash kerakligi to'g'risida aniq elementlar bilan sizga ball berishadi.
  • Muvaffaqiyatsiz. Men butun jarayon davomida bir nechta intervyu bera olmadim. Ba'zan siz shunchaki yomon kunni o'tkazasiz. Agar siz muvaffaqiyatsiz bo'lsangiz, bu dunyoning oxiri emas. Kompaniyalar "yo'q" deb aytishga qarshi bo'lishadi, chunki bu ular uchun pastroq xavf. Soxta musbat uzoq muddatda noto'g'ri manfiydan ko'proq xarajat qiladi. Shubhasiz, dastlabki bir nechta rad javoblari. Intervyu berishni boshlaganimda, men bir nechta telefon ekranlarini ishdan chiqardim va o'zimga ishonch darajasi tushib ketdi. Men o'z qobiliyatlarimga nisbatan shubhalanardim va hozirgi ish bozorida mening mahoratlarim ahamiyatsiz bo'lishidan qo'rqardim. Biroq, men o'zimga bir maslahat berdim: agar siz 10 marta muvaffaqiyatsiz bo'lsa, unda 10 marta ko'proq harakat qiling. Sizga bitta muvaffaqiyat kifoya qiladi. Bu tasalli menga o'zimni ishontirishga yordam berdi va mening birinchi taklifim paydo bo'lganda, boshqa takliflar ancha osonlashdi.

Menga atigi 2 oy ataylab mashq qilish va intervyuga tayyorgarlik ko'rish kerak edi. Men haftasiga 20 soat yoki oyiga 80 soat sarfladim, to'liq kunlik ishning ustiga yozuvlarni o'rganib, yozdim.

Mening rezyumeni yaratish uchun 3,5 yillik maqsadli, qasddan ishlash kerak edi. Men hammadan ko'p narsalarni o'rganishim uchun qasddan og'ir va qotib qolgan narsalarni tanladim. Mening rezyumeimda firma nomidagi universitet yoki yuqori darajadagi texnologik kompaniya bo'lmasa-da, men o'zim ishlagan loyihalarni aniq va puxta o'ylab topdim. Bu men o'rgangan narsalarimning yozuvlarini o'rganib chiqqandan so'ng yozganman va ularni qayta ko'rib chiqadigan tizimga ega bo'lganim uchun mumkin edi.

Esingizda bo'lsin: kuchli odam omon qoladi, qiyin gullab-yashnaydi.

TL; DR: Taslim bo'lmang, imkoniyatlarga tayyorlaning, ko'p mashq qiling va umidvor bo'ling. Jarayonga e'tibor qarating va jarayonga intizomli va sodiq munosabatda bo'ling.

Men tavsiya etadigan vositalar

  • Data-intensiv dasturlarni loyihalash: taqsimlangan tizimlarning miqyosini o'rganish uchun ajoyib kitob! Juda tavsiya etiladi.
  • Dasturlash suhbatlari elementlari: kodlash bilan bog'liq muammolarni hal qilish uchun juda yaxshi.
  • Kodlash intervyusini sindirish: CS-ning asosli kodlash muammolarini yoritishda juda yaxshi.
  • Kundalik kodlash muammosi.com: Bu bepul kundalik kodlash bilan bog'liq muammolarni taklif qiladigan bepul veb-sayt. Siz kundalik kodlash bo'yicha qiziqarli muammolarga yozilishingiz mumkin va agar xohlasangiz, echimlarni to'lashingiz mumkin.
  • Dropbox: Men o'zimning barcha fayllarimni, rasmlarimni saqlayman va shu erda davom ettiraman. Bir marta o'rnatiladigan va hamma joyda mavjud bo'lgan qulay foydalanish. Uni seving (Agar siz ushbu havolaga kirsangiz, ikkalamiz ham 500MB bepul olasiz!
  • CodeRunner: Men ushbu Mac ilovasini yaxshi ko'raman! Men bir necha marotaba Python skriptlari / funktsiyalarini ishga tushirishda foydalanganman va u juda ajoyib ishlaydi.
  • Kafka qo'llanmasi: Men ushbu kitobdan ma'lumotnoma sifatida foydalanganman va uni yuqori darajadagi tavsiflashdan zavqlanganman.
  • AlgoExpert: Ushbu veb-sayt bir necha kodlash amaliyoti muammolarini chuqur taklif etadi va echimlar qanday ishlashini tushuntiradi. Narxiga kelsak, buni sinab ko'rishga arziydi.

(Men shaxsan o'zim ishlatgan ko'proq manbalarni baham ko'raman va zhiachong.com saytida tavsiya qilaman, agar siz ko'proq bilmoqchi bo'lsangiz)

Hikoyamni o'qiganingiz uchun tashakkur! Siz meni Twitter va LinkedIn-da topishingiz mumkin. Texnika, startaplar, sayohat haqida ko'proq gaplashish va suhbatlashish istagi paydo bo'ladi: D

Kreditlar:

Brendon tajribbrien, mening ustozim va yaxshi do'stim, ushbu maqolani qanday yaxshilash kerakligi to'g'risida o'qiganingiz va qimmatli fikr bildirganingiz uchun.

Youtube-ning yangi yulduzi Yug Sugishita, dalillarni o'qish va tanqidiy mulohazalar uchun o'z orzularini amalga oshirish uchun Google-dagi ishini tark etdi.