Wéi ech an ThoughtWorks komm sinn oder e Probeinterview

Wéi ech an ThoughtWorks komm sinn oder e Probeinterview

Schéngt et Iech net komesch datt wann Dir amgaang sidd Aarbecht z'änneren an de Besoin entsteet en Interview ze passéieren, dat éischt wat Dir denkt ass "Dir musst Iech op den Interview virbereeden." Lös Probleemer op HackerRank, liest Crack de Kodéierungsinterview, memoréiert wéi ArrayList funktionnéiert a wéi et sech vu LinkedList ënnerscheet. Oh jo, si kënnen och iwwer d'Sortéierung froen, an et wier selbstverständlech onprofessionell ze soen datt séier Sortéierung héchstwahrscheinlech déi bescht Wiel wier.
Awer waart, Dir programméiert 8 Stonnen den Dag, léist interessant an net-trivial Probleemer, a bei Ärer neier Aarbecht maacht Dir datselwecht, plus oder minus. Awer trotzdem, fir en Interview ze passéieren, musst Dir Iech iergendwéi zousätzlech virbereeden, net emol Är alldeeglech Fäegkeeten verschäerfen, awer eppes léieren wat Dir op Ärer aktueller Aarbecht net gebraucht hutt an onwahrscheinlech op Ärem nächste brauch. Zu dengen Ukënnegungen datt d'Informatik eis am Blutt ass, a wann Dir eis an der Mëtt vun der Nuecht erwächt, si mir verflicht mat zougemaachen Aen op engem Këssenfall e Spazéiergang ronderëm d'Breet vun engem Bam ze schreiwen ouni emol erëm ze bewosst sinn, Ech wäert äntweren, datt wann ech eng Aarbecht am Zirkus kréien, a meng Haaptsaach den Trick wier genee dat - dann vläicht jo, ech averstanen. Dës Fäegkeet muss getest ginn.

Awer firwat Fäegkeeten testen déi irrelevant sinn fir Är aktuell Aarbecht? Just well et moudesch gouf? Well Google dat mécht? Oder well Är zukünfteg Teamleader all d'Sortéierungsmethoden virum Interview muss léieren an elo mengt hien datt "all gudde Programméierer muss d'Ëmsetzung vun engem Palindrom an engem String aus Häerz wëssen."

Gutt, Dir sidd net Google (c). Wat Google sech leeschte kann, kënnen normal Firmen net. Google, nodeems se d'Date vu senge Mataarbechter analyséiert hunn, ass zu der Conclusioun komm datt Ingenieuren mat engem Olympiad-Hannergrond gutt sinn fir seng spezifesch Aufgaben ze këmmeren. Ausserdeem, andeems se hire Selektiounsprozess designen, kënne se sech leeschten de Risiko ze huelen datt se net e puer gutt Ingenieuren astellen well se net mathematesch Probleemer einfach kënne knacken. Awer dëst ass kee Problem fir si, et gi vill Leit déi bei Google schaffen wëllen, d'Positioun gëtt zougemaach.
Loosst eis elo duerch d'Fënster kucken, a wann virun Ärem Büro d'Ingenieuren, déi fir Iech schaffen wëllen, nach keen Zeltlager opgeriicht hunn, an Är Entwéckler méi dacks op Stackoverflow kucken fir wat d'nächst Fréijoersannotatioun installéiert muss ginn, anstatt d'Intricacies vun de Ranking Algorithmen, dann, anscheinend, Et ass Zäit fir Iech ze denken ob Dir Google kopéiere sollt.

Gutt, wann dës Kéier Google gescheitert an keng Äntwert gëtt, wat soll Dir maachen? Préift genau wat den Entwéckler op der Aarbecht wäert maachen. Wat schätzt Dir an Entwéckler?
Maacht Critèrë fir wien Dir wëllt astellen an Tester entwéckelen déi genau dës Fäegkeeten testen.

ThoughtWorks

Wat huet ThoughtWorks domat ze dinn? Hei hunn ech e Beispill vun engem Modellinterview fir mech selwer fonnt. Wien sinn ThoughtWorks? Kuerz gesot, dëst ass eng High-End Berodungsfirma mat Büroen op der ganzer Welt, vu China, Singapur bis op den amerikanesche Kontinenter, déi zënter ongeféier 25 Joer am Beräich vun der Entwécklung konsultéiert, huet seng eege Science Divisioun, ënner der Leedung vum Martin Fowler. Wann Dir no enger Lëscht vun 10 Must-read Bicher fir e Software Engineer sicht, da wäerte vläicht 2-3 dovunner vun de Kärelen aus ThoughtWorks geschriwwe ginn, sou wéi Refactoring vum Martin Fowler a Building Microservices: Designing Fine-Grained Systems vum Sam Newman oder Building Evolutionary Architectures
vum Patrick Kua, Rebecca Parsons, Neal Ford.

D'Geschäft vun der Gesellschaft ass gebaut fir zimlech deier Servicer ze liwweren, awer de Client bezilt fir phenomenal Qualitéit, déi aus Expertise, intern Standarden an natierlech Leit besteet. Dofir ass et hei vital fir déi richteg Leit anzestellen.
Wéi eng Leit hu Recht? Natierlech ginn et verschidde fir jiddereen. ThoughtWorks huet festgestallt datt déi wichtegst Critèrë fir hiren Entwéckler Geschäftsmodell sinn:

  • D'Kapazitéit fir a Pairen z'entwéckelen. Et ass Fäegkeet, net Erfahrung oder Fäegkeet. Keen erwaart datt Leit, déi 5 Joer Pair Programméiere praktizéieren, wäerte kommen.Mee op d'Meenung vun anere Leit ophuelen a kënnen nolauschteren ass eng néideg Fäegkeet.
  • D'Kapazitéit fir Tester ze schreiwen, an am Idealfall TDD ze üben
  • SOLID an OOP verstoen a fäeg sinn se anzesetzen.
  • Presentéiert Är Meenung. Als Beroder musst Dir mat den Entwéckler vum Client schaffen, mat anere Beroder, an et gëtt net vill Virdeel wann eng Persoun weess wéi een eppes gutt mécht, awer komplett net fäeg ass et dem Rescht vum Team ze vermëttelen.

Elo ass et wichteg dës speziell Fäegkeeten am Kandidat ze evaluéieren. An hei wëll ech iwwer meng Erfahrung vum Interview bei ThoughtWorks schwätzen. Ech wäert direkt soen datt ech op Singapur gaang sinn a passéiert sinn, awer de Rekrutéierungsprozess ass vereenegt a wäert net vill vu Land zu Land ënnerscheeden.

Etapp 0. HR

Wéi dacks geschitt, en 20-Minuten Interview mam HR. Ech wäert net driwwer bleiwen, ech soen just datt ech nach ni eng HR-Persoun begéint hunn, déi 15 Minuten iwwer d'Entwécklungskultur an der Firma schwätze konnt, firwat se TDD benotzen, firwat Pairprogramméierung. Normalerweis wëlle HRs op dëser Fro a soen datt hire Prozess normal ass: Entwéckler entwéckelen, Tester testen, Manager fueren.

Etapp 1. Wéi gutt sidd Dir bei OOP, TDD?

1.5 Stonne virum Ufank vum Interview krut ech eng Aufgab fir e Mars Rover Simulator ze maachen.

Mars Rover MissiounE Kader vu Roboter Rovers soll vun der NASA op engem Plateau um Mars landen. Dëse Plateau, dee virwëtzeg rechteckeg ass, muss vun de Rovers navigéiert ginn, sou datt hir Bordkameraen e komplette Bléck op d'Ëmgéigend terrain kréien fir zréck op d'Äerd ze schécken. D'Positioun an d'Location vun engem Rover gëtt duerch eng Kombinatioun vun x- an y-Koordinaten duergestallt an e Bréif deen ee vun de véier Kardinolkompasspunkte representéiert. De Plateau ass an e Gitter opgedeelt fir d'Navigatioun ze vereinfachen. E Beispill Positioun kéint 0, 0, N sinn, dat heescht datt de Rover am ënneschten lénksen Eck ass a Richtung Norden ass. Fir e Rover ze kontrolléieren, schéckt d'NASA eng einfach String vu Buschtawen. Déi méiglech Buschtawen sinn 'L', 'R' an 'M'. 'L' an 'R' maachen de Rover 90 Grad lénks respektiv riets, ouni sech vu senger aktueller Plaz ze beweegen. 'M' heescht e Gitterpunkt no vir goen, an déi selwecht Rubrik behalen.
Ugeholl datt de Quadrat direkt Norden vun (x, y) ass (x, y+1).
INPUT:
Déi éischt Linn vum Input sinn déi uewe riets Koordinate vum Plateau, déi ënnescht lénks Koordinate ginn ugeholl datt si 0,0 sinn.
De Rescht vum Input ass Informatioun betreffend d'Rovers déi ofgesat goufen. All Rover huet zwou Linnen vun Input. Déi éischt Linn gëtt d'Positioun vum Rover, an déi zweet Linn ass eng Serie vun Instruktiounen, déi dem Rover soen wéi de Plateau entdecken. D'Positioun besteet aus zwee ganz Zuelen an engem Bréif getrennt vu Raum, entspriechend den x- an y-Koordinaten an der Orientéierung vum Rover.
All Rover gëtt sequenziell fäerdeg gemaach, dat heescht datt den zweeten Rover net ufänkt ze beweegen bis deen éischten fäerdeg ass.
OUTPUT:
D'Ausgab fir all Rover soll seng lescht Koordinaten a Rubrik sinn.
NOTIZEN:
Ëmsetzen einfach d'Ufuerderungen hei uewen a beweist datt e Staubsauger funktionnéiert andeems Dir Eenheetstester dofir schreift.
All Form vu User Interface erstellen ass ausserhalb vum Ëmfang.
De Problem léisen andeems Dir eng TDD (Test Driven Development) Approche verfollegt gëtt bevorzugt.
An der kuerzer Zäit sinn mir méi Suergen iwwer Qualitéit wéi Vollständegkeet.
*Ech kann d'Aufgab, déi mir geschéckt gouf, net posten, dëst ass eng al Aufgab, déi virun e puer Joer gemaach gouf. Awer gleeft mir, am Fong bleift alles d'selwecht.

Ech wëll besonnesch op d'Bewäertungscritèren opmierksam maachen. Wéi oft hutt Dir eng Situatioun begéint, wou Saachen, déi fir e Kandidat wichteg sinn, während dem Audit komplett onwichteg sinn a vice versa. Net jiddereen denkt déiselwecht wéi Dir, awer vill kënnen Är Wäerter akzeptéieren a verfollegen wa se kloer uginn. Also, aus den Evaluatiounskriterien ass et direkt kloer datt déi wichtegst Fäegkeeten op dëser Etapp sinn

  • TDD;
  • Fäegkeet OOP ze benotzen an erhale Code ze schreiwen;
  • Pair programméiere Fäegkeeten

Also, ech war gewarnt déi 1.5 Stonnen ze verbréngen fir nozedenken wéi ech d'Aufgab maachen, anstatt Code ze schreiwen. Mir schreiwen de Code zesummen.

Wéi mir um Telefon ukomm sinn, hunn d'Jongen eis kuerz gesot wien si sinn a wat se maachen an hunn ugebueden d'Entwécklung unzefänken.

Wärend dem ganzen Interview hat ech ni eng Kéier d'Gefill, datt ech interviewt ginn. Et gëtt e Gefill datt Dir Code an engem Team entwéckelt. Wann Dir iergendwou hänke bleift, hëllefen se, beroden, diskutéieren, streiden souguer matenee wéi et am beschten ass. Am Interview hunn ech vergiess wéi ech am JUnit 5 kontrolléieren datt eng Method eng Ausnahm werft - si hunn ugebueden den Test weider ze schreiwen, während ee vun hinnen googelt wéi et ze maachen.

Wuertwiertlech e puer Stonnen nom Interview krut ech konstruktive Feedback - wat ech gär hunn a wat ech net. A mengem Fall war ech gelueft fir e benotzen Sealed Klassen als Alternativ zu der null Objet; fir d'Tatsaach, datt ier ech de Code schreiwen, hunn ech am Pseudocode geschriwwen wéi ech de Rover kontrolléiere wéilt, an hunn domat eng Skizz vun de Klassen kritt, op d'mannst déi, déi an der API vum Roboter involvéiert sinn.

Schrëtt 2: Sot eis

Eng Woch virum Interview gouf ech gefrot fir eng Presentatioun iwwer all Thema ze preparéieren dat mech interesséiert. D'Format ass einfach a vertraut: 15 Minutte Presentatioun, 15 Minutten Äntwert op Froen.
Ech hunn Clean Architecture vum Monni Bob gewielt. An erëm gouf ech vun e puer Leit interviewt. Dëst war meng éischt Erfahrung op Englesch ze presentéieren, a vläicht, wann ech an enger stresseger Situatioun gewiescht wier, hätt ech et net gepackt. Awer erëm, ech hat ni eemol d'Gefill datt ech bei engem Interview war. Alles ass wéi gewinnt - ech soen hinnen, si lauschteren virsiichteg. Och déi traditionell Fro an Äntwert Sessioun war net wéi en Interview, et war kloer datt d'Froen net gefrot goufen "ze ënnerzegoen", mee déi, déi se wierklech a menger Presentatioun interesséiert hunn.

E puer Stonnen nom Interview krut ech Feedback - d'Presentatioun war ganz nëtzlech a si hu wierklech gär gelauschtert.

Etapp 3. Produktioun Qualitéit Code

Nodeems ech gewarnt hunn datt dëst déi lescht Etapp vun techneschen Interviewe war, gouf ech gefrot de Code doheem an e Produktiounsfähig Staat ze bréngen, dann de Code fir Iwwerpréiwung ze schécken an Interviewen ze plangen, bei deenen d'Ufuerderunge fir d'Aufgab änneren an de Code géif änneren. verlaangen Ännerung. Wann ech no vir kucken, kann ech soen datt d'Code-Review blann duerchgefouert gëtt, d'Rezensoren wëssen net wéi eng Positioun de Kandidat sicht, se gesinn säin CV net, se gesinn net emol säin Numm.

Den Telefon schellt, an erëm waren et e puer Kärelen op der anerer Säit vum Monitor. Alles ass d'selwecht wéi am éischten Interview: den Haapt Saach ass net iwwer TDD ze vergiessen, soen wat Dir maacht a firwat. Wann Dir TDD net virdru praktizéiert hutt, da recommandéieren ech et direkt unzefänken, net well et an de Firmen néideg ass, awer well et Äert Liewen wesentlech vereinfacht, reduzéiert Äre Stressniveau wann Dir wëllt. Erënnert Dir Iech wéi Dir mat engem Debugger no engem Fehler frentesch gesicht hutt, deen nëmmen duerch de Browser reproduzéiert ka ginn, awer Dir kënnt et net mat Tester reproduzéieren? Stellt Iech elo vir, datt Dir esou e Feeler während engem Interview muss fänken - Dir sidd garantéiert e puer gro Hoer. Wat kréie mir mat TDD? Mir hunn de Code geännert an onerwaart gemierkt datt elo d'Tester rout sinn, awer wat ass de Feeler dee mir déi éischte Kéier net erausfannen? Okay, mir soen "Oops" zu den Interviewer, dréckt Ctrl-Z a fänkt u kleng Schrëtt no vir ze maachen. A jo, Dir musst d'Fäegkeet entwéckelen mat TDD an Iech selwer z'entwéckelen, d'Fäegkeet fir op d'Zil ze goen, sou datt Är Tester permanent gréng sinn, an net fir en hallwen Dag rout, well "Dir hutt vill Refactoring." Dëst ass genau déiselwecht Fäegkeet wéi e haltbaren Code ze schreiwen, oder produktive Code ze schreiwen.

Also, wéi gutt Äre Code ka geännert ginn hänkt dovun of wéi en Design Dir am Kapp hutt fir unzefänken, wéi einfach et ass a wéi gutt Är Tester sinn.

Nom Interview krut ech bannent e puer Stonnen Feedback. Op dëser Etapp hunn ech gemierkt datt ech bal duerch war an et war ganz wéineg lénks bis ech "Fowler begéint."

Etapp 4. Finale. Genuch technesch Froen. Mir wëllen wëssen, wien Dir sidd!

Fir éierlech ze sinn, war ech e bësse verwonnert vun dëser Formuléierung vun der Fro. Wéi kënnt Dir verstoen wat fir eng Persoun ech an enger Stonn Gespréich sinn? An nach méi, wéi kanns du dat verstoen, wann ech eng Sprooch schwätzen, déi net meng Mammesprooch ass, an, éierlech gesot, ganz schlecht a sproochlech. A fréieren Interviewen war et méi einfach fir mech perséinlech ze schwätzen anstatt Froen ze beäntweren, an den Akzent war Schold. Op d'mannst ee vun den Interviewer war asiatesch - an hiren Akzent, gutt, loosst eis just soen, ass e bësse spezifesch fir dat europäescht Ouer. Dofir hunn ech beschloss eng proaktiv Approche ze huelen - eng Presentatioun iwwer mech selwer virbereeden an am Ufank vum Interview Offer iwwer mech selwer mat dëser Presentatioun ze schwätzen. Wann se d'accord sinn, da ginn et op d'mannst manner Froen fir mech; wa se d'Offer refuséieren, gutt, 3 Stonne vu mengem Liewen op enger Presentatioun sinn net sou en héije Präis. Awer wat sollt Dir an Ärer Presentatioun schreiwen? Biographie - Gebuer do, zu där Zäit, an d'Schoul gaangen, Diplom vun der Uni - mä wien egal?

Wann Dir e bëssen iwwer d'Thoughtworks Kultur Google Google, fannt Dir en Artikel vum Martin Fowler [https://martinfowler.com/bliki/ThreePillars.html] deen déi 3 Piliere beschreift: Nohalteg Business, Software Excellence, a Sozial Gerechtegkeet.

Loosst eis unhuelen datt Software Excellence scho fir mech gepréift gouf. Et bleift no Nohalteg Business a Sozial Gerechtegkeet ze weisen.

Ausserdeem hunn ech beschloss op déi lescht ze fokusséieren.

Fir unzefänken, hunn ech him gesot firwat ThoughtWorks - Ech hunn dem Martin Fowler säi Blog zréck op der Uni gelies, dofir meng Léift fir Clean Code.

Projeten kënnen och aus verschiddene Wénkel presentéiert ginn. Hien huet och Software fir Medizin entwéckelt, déi d'Liewe vu Patienten vereinfacht huet, a souguer, laut Rumeuren, ee Liewen gerett. Ech hunn och Software fir Banken entwéckelt, déi de Bierger och d’Liewen méi einfach gemaach huet. Besonnesch wann dës Bank vu 70% vun der Bevëlkerung vum Land benotzt gëtt. Dëst ass net iwwer Sberbank an och net iwwer Russland.

Wëllt Dir iwwer mech wëssen? OK. Mäin Hobby ass Fotografie, op eng oder aner Manéier hunn ech eng Kamera an den Hänn fir ongeféier 10 Joer, et gi Fotoen déi ech net ze ongenéiert sinn fir ze weisen. Och eng Kéier hunn ech e Kazenasyl gehollef: Ech hunn Kazen fotograféiert, déi e permanent Heem brauche. A mat gudde Fotoen ass et vill méi einfach eng Kaz ze placéieren. Ech hun wuel honnert Kazen fotografeiert :)

Um Enn war 80% vu menger Presentatioun mat Kazen gefëllt.

Direkt no der Presentatioun huet den HR mir geschriwwen datt hien d'Resultater vum Interview nach net wosst, awer de ganze Büro war scho vun de Kazen beandrockt.

Schlussendlech hunn ech op Feedback gewaart - ech hunn jiddereen als Persoun zefridden.

Awer am leschte Gespréich huet den HR taktesch gesot datt d'Sozial Gerechtegkeet ganz gutt an néideg ass, awer net all Projete sinn esou. An hien huet gefrot ob et mech Angscht huet. Am Allgemengen sinn ech e bëssen iwwer Bord gaang mat der Sozial Gerechtegkeet, et geschitt :)

D 'Resultat

Als Resultat hunn ech zënter e puer Méint zu Singapur bei Thoughtworks geschafft, an ech gesinn datt hei ze vill Firmen "bescht Interviewpraktiken" vu Google adoptéieren, Blieder a Whiteboard fir Kodéierung benotzen, trotz méi Wëssen wéi Fréijoer, Symfony, RubyOnRails ( Ënnersträichen wat néideg ass) ass net an der Aarbecht erfuerderlech. Ingenieuren huelen eng Woch fräi virun engem Interview fir "virzebereeden."

Bei Thoughtworks, zousätzlech zu adäquate Viraussetzunge fir de Kandidat, sinn déi folgend Prinzipien am Virdergrond:
Freed vum Interview. Ausserdeem, fir béid Säiten. Tatsächlech, wann Dir dat bescht Personal wëllt kréien (a wien net?), Dann ass en Interview net e Maart wou Sklaven gewielt ginn, mee eng Show wou de Patron an de Kandidat sech géigesäiteg evaluéieren. A wann e Kandidat agreabel Emotiounen mat enger Firma assoziéiert, ass et wahrscheinlech datt hien dës speziell Firma wäert wielen

Multiple Interviewer fir Bias ze reduzéieren. Bei Thoughtworks ass Pairprogramméierung den de facto Standard. A wann dës Praxis op aner Beräicher applizéiert ka ginn, probéiert TW dat ze maachen. Op all Etapp gëtt den Interview vun 2 Leit gemaach. Also gëtt all Persoun vu mindestens 8 Leit bewäert, an TW probéiert Interviewer mat verschiddenen Hannergrënn, verschiddenen Richtungen (net nëmmen Techien) a Geschlecht ze wielen.

Schlussendlech gëtt d'Astellendecisioun baséiert op d'Meenunge vun op d'mannst 8 Leit, a keen huet eng Bestëmmung.

Attribut-baséiert Astellung Amplaz eng Entscheedung ze huelen op Basis vun engem Kandidat seng Likes oder Dislikes, gëtt eng Form fir all Roll an all Etapp entwéckelt, déi d'Attributer enthält déi bewäert ginn. Zur selwechter Zäit, wann Dir bewäert, ass et recommandéiert net d'Erfahrung an enger gewësser Fäegkeet ze bewäerten, awer d'Fäegkeet et z'applizéieren. Wann e Kandidat also keng Kompetenzen konnt applizéieren, wéi z.B. TDD, awer trotzdem probéiert se anzesetzen, lauschtert no Rotschléi fir se richteg ze benotzen, huet hien all Chance fir den Interview duerchzekommen.

Educatioun Certificaten net néideg TW erfuerdert keng Zertifizéierung oder Ausbildung an der Informatik. Nëmme Fäegkeeten ginn bewäert.

Dëst ass den éischten Interview, deen ech mat auslännesche Firmen hat, op déi ech mech net muss virbereeden. No all Etapp hunn ech mech net erschöpft gefillt, awer am Géigendeel, ech war frou datt ech déi bescht Praktiken benotze konnten, datt d'Leit op der anerer Säit vum Monitor et appréciéieren an all Dag applizéiert hunn.

No e puer Méint kann ech soen datt meng Erwaardungen voll erfëllt goufen. Wéi ass ThoughtWorks anescht wéi eng normal Firma? An enger regulärer Firma fannt Dir gutt Entwéckler a léif Leit, awer an TW ass hir Konzentratioun aus den Charts.

Wann Dir un ThoughtWorks interesséiert sidd, kënnt Dir eis oppe Positiounen kucken hei
Ech proposéieren och op interessant Plazen opmierksam ze maachen:
Lead Software Engineer: Däitschland, London, Madrid, Сингапур
Senior Software Engineer: Sydney, Däitschland, Manchester, Bangkok
Software Ingenieur: Sydney, Barcelona, Mailand
Senior Data Engineer: Mailand
Qualitéit Analyst: Däitschland China
Infrastruktur: Däitschland, London, Chile
(Ech wéilt Iech éierlech warnen datt de Link e Referrallink ass, wann Dir op TW gitt, kréien ech e flotte Bonus). Wielt e Büro deen Dir gären hutt, Dir musst Iech net an Europa limitéieren, schliisslech all 2 Joer wäert TW Iech gären an en anert Land plënneren, well ... Dëst ass Deel vun der ThoughtWorks Politik, sou datt d'Kultur verbreet an homogeniséiert gëtt.

Fillt Iech gratis Froen an de Kommentarer ze stellen oder mech fir Empfehlungen ze froen.
Wann d'Thema interessant schéngt, schreiwen ech iwwer wéi et ass bei ThoughtWorks ze schaffen a wéi d'Liewen zu Singapur ass.

Source: will.com

Setzt e Commentaire