Kepiye carane aku mlebu ing ThoughtWorks utawa wawancara sampel

Kepiye carane aku mlebu ing ThoughtWorks utawa wawancara sampel

Apa ora aneh kanggo sampeyan yen sampeyan arep ngganti proyek lan perlu kanggo lulus wawancara, sing pertama sampeyan mikir yaiku "sampeyan kudu nyiapake wawancara." Ngatasi masalah ing HackerRank, maca Crack wawancara coding, apal cara kerjane ArrayList lan kepiye bedane karo LinkedList. Oh ya, dheweke bisa uga takon babagan ngurutake, lan mesthine ora profesional yen ujar manawa urutan cepet bakal dadi pilihan sing paling apik.
Nanging ngenteni, sampeyan program 8 jam dina, ngatasi masalah menarik lan non-trivial, lan ing proyek anyar sampeyan bakal nindakake bab sing padha, plus utawa minus. Nanging, supaya bisa lolos wawancara, sampeyan kudu nyiyapake tambahan, ora malah ngasah katrampilan saben dina, nanging sinau babagan sing ora dibutuhake ing pakaryan saiki lan ora perlu ing sabanjure. Kanggo bantahan sampeyan yen ilmu komputer ana ing getih kita, lan yen sampeyan tangi ing tengah wengi, kita kudu nulis kanthi mripat ditutup ing sarung bantal mlaku-mlaku ngubengi ambane wit tanpa eling, aku bakal njawab yen aku njaluk proyek ing Circus, lan utama trick bakal persis iki - banjur mbok menawa ya, aku setuju. Katrampilan iki kudu diuji.

Nanging kenapa nyoba katrampilan sing ora cocog karo proyek sampeyan saiki? Mung amarga dadi modis? Amarga Google nindakake iki? Utawa amarga pimpinan tim mbesuk sampeyan kudu sinau kabeh cara ngurutake sadurunge wawancara lan saiki dheweke percaya yen "saben programer sing apik kudu ngerti kanthi ati-ati implementasine nemokake palindrome ing senar."

Inggih, sampeyan dudu Google (c). Apa sing bisa ditindakake Google, perusahaan biasa ora bisa. Google, sawise nganalisa data karyawan, nyimpulake manawa insinyur kanthi latar mburi Olimpiade apik kanggo ngatasi tugas tartamtu. Kajaba iku, kanthi ngrancang proses pilihan, dheweke bisa njupuk risiko yen ora bisa nyewa sawetara insinyur sing apik amarga ora bisa ngatasi masalah matematika kanthi gampang. Nanging iki ora dadi masalah kanggo wong-wong mau, ana akeh wong sing pengin kerja ing Google, posisi bakal ditutup.
Saiki ayo goleki metu saka jendhela, lan yen ing ngarep kantor sampeyan para insinyur sing pengin kerja kanggo sampeyan durung nyiyapake kemah, lan pangembang sampeyan luwih kerep nggoleki stackoverflow kanggo apa anotasi Spring sabanjure kudu diinstal, tinimbang kerumitan algoritma peringkat, banjur, ketoke, Iku wektu kanggo sampeyan mikir apa sampeyan kudu nyalin Google.

Nah, yen wektu iki Google gagal lan ora menehi jawaban, apa sing kudu sampeyan lakoni? Priksa persis apa sing bakal ditindakake pangembang ing karya. Apa sampeyan regane ing pangembang?
Gawe kritéria kanggo sapa sing pengin nyewa lan gawe tes sing nguji katrampilan kasebut.

Pakaryan Panginten

Apa hubungane ThoughtWorks karo iki? Ing kene aku nemokake conto wawancara model kanggo aku. Sapa sing ThoughtWorks? Ing cendhak, iki minangka perusahaan konsultasi High-End kanthi kantor ing saindenging jagad, saka China, Singapura nganti bawana Amerika, sing wis konsultasi ing bidang pembangunan kira-kira 25 taun, duwe divisi Ilmu dhewe, dipimpin dening Martin. Fowler. Yen sampeyan nggoleki dhaptar 10 buku sing kudu diwaca kanggo Insinyur Perangkat Lunak, mula bisa uga 2-3 saka wong-wong mau bakal ditulis dening wong lanang saka ThoughtWorks, kayata Refactoring dening Martin Fowler lan Building Microservices: Designing Fine-Grained Systems dening Sam Newman utawa Arsitektur Evolusi Bangunan
dening Patrick Kua, Rebecca Parsons, Neal Ford.

Bisnis perusahaan dibangun kanggo nyedhiyakake layanan sing cukup larang, nanging pelanggan mbayar kualitas fenomenal, sing kalebu keahlian, standar internal lan, mesthi, wong. Mulane, nyewa wong sing bener iku penting ing kene.
Wong apa sing bener? Mesthi, ana sing beda kanggo saben wong. ThoughtWorks wis nemtokake manawa kritéria paling penting kanggo model bisnis pangembang yaiku:

  • Kemampuan kanggo berkembang ing pasangan. Iku kemampuan, ora pengalaman utawa skill. Ora ana sing ngarep-arep yen wong-wong sing wis nglatih program Pair sajrone 5 taun bakal teka. Nanging nampa panemu wong liya lan bisa ngrungokake minangka skill sing dibutuhake.
  • Kemampuan kanggo nulis tes, lan saenipun latihan TDD
  • Ngerti SOLID lan OOP lan bisa ngetrapake.
  • Nyedhiyani pendapat sampeyan. Minangka konsultan, sampeyan kudu bisa karo pangembang klien, karo konsultan liyane, lan ana ora akeh entuk manfaat yen wong ngerti carane nindakake soko uga, nanging rampung ora bisa kanggo ngirim menyang liyane saka tim.

Saiki penting kanggo ngevaluasi katrampilan khusus kasebut ing calon kasebut. Lan ing kene aku arep ngomong babagan pengalaman wawancara ing ThoughtWorks. Aku bakal langsung ngomong yen aku lunga menyang Singapura lan lulus, nanging proses rekrutmen kasebut manunggal lan ora beda-beda saka negara menyang negara.

Tahap 0. HR

Minangka asring kedadeyan, wawancara 20 menit karo HR. Aku ora bakal manggon ing, Aku mung bakal ngomong sing aku wis tau ketemu wong HR sing bisa ngomong kanggo 15 menit bab budaya pembangunan ing perusahaan, kok padha nggunakake TDD, kok program pasangan. Biasane, HR bakal takon pitakonan iki lan ujar manawa proses kasebut normal: pangembang berkembang, tes penguji, manajer drive.

Tahap 1. Apa sampeyan apik ing OOP, TDD?

1.5 jam sadurunge wiwitan wawancara, aku dikirim tugas kanggo nggawe simulator Mars Rover.

Misi rover MarsSkuad rover robot bakal ndharat dening NASA ing dataran tinggi ing Mars. Dataran tinggi iki, sing bentuke persegi dowo, kudu dilayari dening rover supaya kamera ing papan kasebut bisa ndeleng lengkap babagan wilayah sekitar kanggo dikirim maneh menyang Bumi. Posisi lan lokasi rover diwakili dening kombinasi koordinat x lan y lan huruf sing makili salah siji saka papat titik kompas kardinal. Plato dipérang dadi kothak kanggo nyederhanakake pandhu arah. Posisi conto bisa uga 0, 0, N, tegese rover ana ing pojok kiwa ngisor lan madhep Lor. Kanggo ngontrol rover, NASA ngirim senar sederhana. Huruf sing bisa ditindakake yaiku 'L', 'R' lan 'M'. 'L' lan 'R' ndadekake rover muter 90 derajat ngiwa utawa nengen mungguh, tanpa obah saka panggonan saiki. 'M' tegese maju siji titik kothak, lan njaga judhul sing padha.
Asumsi sing kothak langsung Utara saka (x, y) punika (x, y+1).
INPUT:
Ing baris pisanan input koordinat ndhuwur-tengen plato, koordinat ngisor-kiwa dianggep dadi 0,0.
Input liyane yaiku informasi babagan rover sing wis dipasang. Saben rover duwe rong baris input. Baris pisanan menehi posisi rover, lan baris kapindho minangka seri instruksi sing ngandhani rover carane njelajah dataran tinggi. Posisi kasebut dumadi saka rong wilangan bulat lan huruf sing dipisahake dening spasi, sing cocog karo koordinat x lan y lan orientasi rover.
Saben rover bakal rampung kanthi berurutan, tegese rover kapindho ora bakal pindhah nganti sing pisanan rampung obah.
OUTPUT:
Output kanggo saben rover kudu dadi koordinat lan judhul pungkasan.
Cathetan:
Mung ngleksanakake syarat ing ndhuwur lan mbuktèkaké vacuum cleaner bisa digunakake kanthi nulis tes unit kasebut.
Nggawe sembarang wangun antarmuka panganggo iku metu saka orane katrangan.
Ngatasi masalah kanthi ngetutake pendekatan TDD (Test Driven Development) bakal luwih disenengi.
Ing wektu cendhak sing kasedhiya, kita luwih prihatin babagan kualitas tinimbang kelengkapan.
*Aku ora bisa ngirim tugas sing dikirim menyang aku, iki tugas lawas sing diwenehi sawetara taun kepungkur. Nanging pracaya kula, dhasar kabeh tetep padha.

Aku utamané kaya kanggo tarik manungsa waé kanggo kritéria evaluasi. Kaping pirang-pirang sampeyan nemoni kahanan sing penting kanggo calon ora pati penting sajrone audit lan kosok balene. Ora saben wong mikir kanthi cara sing padha karo sampeyan, nanging akeh sing bisa nampa lan ngetutake nilai sampeyan yen kasebut kanthi jelas. Dadi, saka kritéria evaluasi langsung jelas yen katrampilan sing paling penting ing tahap iki yaiku

  • TDD;
  • Kemampuan kanggo nggunakake OOP lan nulis kode maintainable;
  • kemampuan pemrograman pasangan

Dadi, aku dielingake supaya ngenteni 1.5 jam kanggo mikir babagan carane aku bakal nindakake tugas kasebut, tinimbang nulis kode. Kita bakal nulis kode bebarengan.

Nalika kita nelpon, wong lanang sedhela ngandhani sapa dheweke lan apa sing ditindakake lan ditawakake kanggo miwiti pembangunan.

Sajrone wawancara kabeh, aku ora nate ngrasa yen aku diwawancarai. Ana perasaan yen sampeyan ngembangake kode ing tim. Yen sampeyan macet ing endi wae, dheweke nulungi, menehi saran, ngrembug, malah mbantah babagan cara sing paling apik kanggo nindakake. Ing wawancara, aku kelalen carane mriksa ing JUnit 5 manawa ana cara mbuwang Pengecualian - dheweke nawarake kanggo terus nulis tes kasebut, nalika salah sijine googling carane nindakake.

Secara harfiah sawetara jam sawise wawancara, aku nampa umpan balik sing mbangun - apa sing dakkarepake lan apa sing ora. Ing cilik, aku iki ngalembana kanggo nggunakake kelas Sealed minangka alternatif kanggo obyek null; kanggo kasunyatan sing sadurunge nulis kode, Aku wrote ing pseudocode carane aku kaya kanggo ngontrol rover, lan kanthi mangkono nampa sketsa saka kelas, paling sing melu API robot.

Langkah 2: Marang kita

Seminggu sadurunge wawancara, aku dijaluk nyiyapake presentasi babagan topik sing disenengi. Format kasebut prasaja lan akrab: presentasi 15 menit, 15 menit mangsuli pitakon.
Aku milih Arsitektur Bersih dening Pakdhe Bob. Lan maneh aku diwawancarai dening saperangan wong. Iki minangka pengalaman pertama saya presentasi ing basa Inggris, lan, mbok menawa, yen aku ngalami kahanan sing ora bisa ditindakake, aku ora bakal bisa ngatasi. Nanging maneh, aku ora nate ngrasa yen aku ana ing wawancara. Kabeh kaya biasane - Aku pitutur marang wong-wong mau, padha ngrungokake kanthi teliti. Malah sesi pitakonan lan wangsulan tradisional ora kaya wawancara; jelas yen pitakonan kasebut ora dijaluk "klelep", nanging sing bener-bener kasengsem ing presentasiku.

Sawetara jam sawise wawancara, aku nampa umpan balik - presentasi kasebut migunani banget lan dheweke seneng ngrungokake.

Tahap 3. Kode Kualitas Produksi

Sawise ngelingake yen iki minangka tahap pungkasan wawancara teknis, aku dijaluk nggawa kode kasebut ing omah menyang negara sing siap produksi, banjur ngirim kode kanggo ditinjau lan jadwal wawancara ing ngendi syarat kanggo tugas bakal diganti lan kode kasebut bakal diganti. mbutuhake modifikasi. Ing ngarep, aku bisa ngomong yen review kode ditindakake kanthi wuta, sing nyemak ora ngerti posisi sing dilamar calon, ora weruh CV, malah ora weruh jenenge.

Telpon muni, lan maneh ana sawetara wong lanang ing sisih liyane monitor. Kabeh padha karo ing wawancara pisanan: sing utama ora lali babagan TDD, ngandhani apa sing sampeyan lakoni lan kenapa. Yen sampeyan durung nindakake TDD sadurunge, mula aku nyaranake miwiti langsung, ora amarga perlu ing perusahaan, nanging amarga bisa nyederhanakake urip sampeyan, nyuda tingkat stres yen sampeyan seneng. Elinga carane sampeyan kudu frantically nggoleki karo debugger kanggo kesalahan sing mung bisa maleh liwat browser, nanging sampeyan ora bisa ngasilaken karo tes? Saiki bayangake yen sampeyan kudu nyekel kesalahan kasebut sajrone wawancara - sampeyan dijamin pirang-pirang rambut abu-abu. Apa sing kita entuk karo TDD? Kita ngganti kode kasebut lan ora sengaja nyadari yen saiki tes kasebut abang, nanging apa kesalahan sing ora bisa dingerteni nalika sepisanan? Oke, kita ngomong "Adhuh" marang sing diwawancarai, penet Ctrl-Z lan miwiti njupuk langkah cilik maju. Lan ya, sampeyan kudu ngembangake kemampuan kanggo berkembang nggunakake TDD ing dhewe, kemampuan kanggo pindhah menyang goal supaya tes sampeyan permanen ijo, lan ora abang kanggo setengah dina, amarga "sampeyan duwe akeh refactoring." Iki minangka skill sing padha karo nulis kode sing bisa dijaga, utawa nulis kode produktif.

Dadi, sepira apike kode sampeyan bisa diganti gumantung saka desain apa sing sampeyan pikirake kanggo miwiti, sepira gampang, lan tes sampeyan apik.

Sawise wawancara, aku nampa umpan balik sajrone sawetara jam. Ing tahap iki, aku nyadari yen aku wis meh rampung lan isih sithik nganti aku "ketemu Fowler."

Tahap 4. Pungkasan. Cukup pitakonan teknis. Kita pengin ngerti sapa sampeyan!

Jujur, aku rada bingung karo rumusan pitakonan iki. Kepiye carane sampeyan bisa ngerti aku kaya apa ing obrolan siji jam? Lan malah luwih, carane sampeyan bisa ngerti iki nalika aku ngomong basa sing dudu basa asliku, lan, terus terang ngandika, banget lousy lan basa-diikat. Ing wawancara sadurunge, aku luwih gampang ngobrol tinimbang mangsuli pitakon, lan logat kasebut disalahake. Paling ora salah siji saka sing diwawancarai yaiku wong Asia - lan logat, uga, ayo ngomong, rada spesifik kanggo kuping Eropa. Mulane, aku mutusake kanggo njupuk pendekatan proaktif - nyiapake presentasi babagan aku lan ing wiwitan tawaran wawancara kanggo ngobrol babagan aku karo presentasi iki. Yen padha setuju, paling ora ana pitakonan sing luwih sithik kanggo aku; yen dheweke nolak tawaran kasebut, 3 jam uripku kanggo presentasi ora larang regane. Nanging apa sing kudu ditulis ing presentasi sampeyan? Biografi - Lair ing kana, nalika iku, sekolah, lulus saka universitas - nanging sing peduli?

Yen sampeyan Google sethithik babagan budaya Thoughtworks, sampeyan bakal nemokake artikel dening Martin Fowler [https://martinfowler.com/bliki/ThreePillars.html] sing nggambarake 3 Pilar: Bisnis Sustainable, Keunggulan Perangkat Lunak, lan Keadilan Sosial.

Ayo nganggep manawa Software Excellence wis dicenthang kanggo kula. Iku tetep kanggo nuduhake Bisnis Sustainable lan Keadilan Sosial.

Kajaba iku, aku mutusake kanggo fokus ing sing terakhir.

Kanggo miwiti, aku ngandhani kenapa ThoughtWorks - Aku maca blog Martin Fowler nalika kuliah, mula aku tresna marang kode Clean.

Proyek uga bisa ditampilake saka macem-macem sudut. Dheweke uga ngembangake piranti lunak kanggo obat sing nyederhanakake urip pasien, lan malah, miturut gosip, nylametake siji nyawa. Aku uga ngembangake piranti lunak kanggo bank-bank, sing uga nggawe urip luwih gampang kanggo warga. Utamane yen bank iki digunakake dening 70% saka populasi negara. Iki ora babagan Sberbank lan malah ora babagan Rusia.

Pengin ngerti babagan aku? OK. Hobiku fotografi, siji-sijine cara aku nyekel kamera ing tanganku kira-kira 10 taun, ana foto sing aku ora isin banget kanggo nuduhake. Uga, ing sawijining wektu, aku mbantu papan perlindungan kucing: Aku motret kucing sing butuh omah permanen. Lan kanthi foto sing apik, luwih gampang nyelehake kucing. Mungkin aku foto satus kucing :)

Pungkasane, 80% presentasiku diisi kucing.

Sanalika sawise presentasi, HR nulis marang aku yen dheweke durung ngerti asil wawancara, nanging kabeh kantor wis kesengsem karo kucing.

Pungkasane, aku ngenteni umpan balik - aku marem kabeh wong minangka wong.

Nanging sajrone obrolan pungkasan, HR kanthi wicaksana ujar manawa Keadilan Sosial pancen apik lan perlu, nanging ora kabeh proyek kaya ngono. Lan dheweke takon yen aku wedi. Umumé, aku rada overboard karo Keadilan Sosial, kedadeyan :)

Asile

Akibaté, aku wis kerja ing Singapura sawetara sasi ing Thoughtworks, aku weruh manawa ing kene akeh banget perusahaan sing nggunakake "praktik wawancara paling apik" saka Google, nggunakake godhong lan Papan Putih kanggo coding, sanajan kasunyatane dheweke duwe kawruh luwih akeh tinimbang Spring. , Symfony, RubyOnRails ( Underline apa sing perlu) ora dibutuhake ing karya. Insinyur njupuk seminggu sadurunge wawancara kanggo "nyiapake."

Ing Thoughtworks, saliyane kanggo syarat sing nyukupi kanggo calon, prinsip ing ngisor iki ana ing ngarep:
Seneng Wawancara. Kajaba iku, kanggo loro-lorone. Pancen, yen sampeyan pengin entuk personel sing paling apik (lan sapa sing ora?), banjur wawancara dudu pasar sing dipilih budak, nanging pertunjukan ing ngendi majikan lan calon ngevaluasi saben liyane. Lan yen calon nggandhengake emosi sing nyenengake karo perusahaan, mesthine dheweke bakal milih perusahaan tartamtu iki.

Wawancara akeh kanggo nyuda bias. Ing Thoughtworks, pemrograman pasangan minangka standar de facto. Lan yen praktik iki bisa ditrapake ing wilayah liyane, TW nyoba nglakoni. Ing saben tahap, wawancara ditindakake dening 2 wong. Mangkono, saben wong ditaksir paling ora 8 wong, lan TW nyoba milih pewawancara kanthi latar mburi sing beda, arah sing beda (ora mung teknisi) lan jender.

Wekasanipun, kaputusan hiring bakal digawe adhedhasar panemu saka ing paling 8 wong, lan ora ana siji casting voting.

Hiring adhedhasar atribut Tinimbang nggawe keputusan adhedhasar seneng utawa ora disenengi calon, formulir dikembangake kanggo saben peran lan saben tahapan sing kalebu atribut sing ditaksir. Ing wektu sing padha, nalika ngevaluasi, dianjurake kanggo ngevaluasi ora pengalaman ing katrampilan tartamtu, nanging kemampuan kanggo ngetrapake. Dadi, yen calon ora bisa ngetrapake katrampilan, kayata TDD, nanging dheweke nyoba ngetrapake, ngrungokake saran babagan cara nggunakake kanthi bener, dheweke duwe kesempatan kanggo lulus wawancara.

Sertifikat pendidikan ora dibutuhake TW ora mbutuhake sertifikasi utawa pendidikan ing Ilmu Komputer. Mung katrampilan sing ditaksir.

Iki minangka wawancara pertama aku karo perusahaan manca sing aku ora kudu nyiyapake. Sawise saben tataran, aku ora krasa kesel, nanging ing nalisir, aku bungah sing aku bisa aplikasi paling laku, sing wong ing sisih liyane monitor ngormati lan Applied wong saben dina.

Sawise pirang-pirang wulan, aku bisa ujar manawa pangarepanku wis rampung. Kepiye ThinkWorks beda karo perusahaan biasa? Ing perusahaan biasa sampeyan bisa nemokake pangembang sing apik lan wong sing apik, nanging ing TW konsentrasi kasebut ora ana ing grafik.

Yen sampeyan kepengin melu ing ThoughtWorks, sampeyan bisa ndeleng posisi sing mbukak kene
Aku uga menehi saran supaya menehi perhatian marang lowongan sing menarik:
Lead Software Engineer: Saksa, London, Madrid, Сингапур
Senior Software Engineer: Sydney, Saksa, Manchester, Bangkok
Software Engineer: Sydney, Barcelona, Milan
Senior Data Engineer: Milan
Analis Kualitas: Saksa China
Infrastruktur: Saksa, London, Chile
(Aku kaya kanggo sajujure ngelekake sing link link rujukan, yen sampeyan pindhah menyang TW, Aku bakal nampa bonus becik). Pilih kantor sing disenengi, sampeyan ora kudu mbatesi dhewe menyang Eropa, sawise kabeh, saben 2 taun TW bakal seneng pindhah menyang negara liya, amarga ... iki bagéan saka kawicaksanan ThoughtWorks, supaya budaya nyebar lan homogenized.

Bebas bae kanggo takon ing komentar utawa takon kula kanggo Rekomendasi.
Yen topik katon menarik, aku bakal nulis babagan kerja ing ThoughtWorks lan kepiye urip ing Singapura.

Source: www.habr.com

Add a comment