
Je, haionekani kuwa ya ajabu kwako kwamba unapokaribia kubadili kazi na hitaji linatokea la kupita usaili, jambo la kwanza unafikiri ni "unahitaji kujiandaa kwa mahojiano." Tatua matatizo kwenye HackerRank, soma Crack mahojiano ya usimbaji, kariri jinsi ArrayList inavyofanya kazi na jinsi inavyotofautiana na LinkedList. Ndio, wanaweza pia kuuliza juu ya kupanga, na itakuwa wazi kuwa sio taaluma kusema kwamba aina ya haraka ingekuwa chaguo bora zaidi.
Lakini subiri, unapanga masaa 8 kwa siku, kutatua matatizo ya kuvutia na yasiyo ya kawaida, na katika kazi yako mpya utafanya kitu kimoja, pamoja na au kupunguza. Lakini hata hivyo, ili kupitisha mahojiano, unahitaji kwa njia fulani kujiandaa kwa kuongeza, sio hata kuboresha ujuzi wako wa kila siku, lakini jifunze kitu ambacho haukuhitaji katika kazi yako ya sasa na hakuna uwezekano wa kuhitaji katika ijayo yako. Kwa pingamizi lako kwamba sayansi ya kompyuta iko kwenye damu yetu, na ikiwa unatuamsha usiku wa manane, tunalazimika kuandika macho yetu kwenye foronya kutembea kuzunguka upana wa mti bila hata kupata fahamu, nitajibu kwamba ikiwa nitapata kazi katika circus, na hila yangu kuu itakuwa hii - basi labda ndiyo, nakubali. Ustadi huu unahitaji kupimwa.
Lakini kwa nini ujuzi wa mtihani ambao hauhusiani na kazi yako ya sasa? Kwa sababu tu ikawa mtindo? Kwa sababu Google hufanya hivi? Au kwa sababu kiongozi wako wa timu ya baadaye alilazimika kujifunza mbinu zote za kupanga kabla ya mahojiano na sasa anaamini kwamba "kila mpanga programu mzuri lazima ajue kwa moyo utekelezaji wa kutafuta palindrome katika kamba."
Kweli, wewe si Google (c). Google inaweza kumudu, makampuni ya kawaida hayawezi. Google, baada ya kuchambua data ya wafanyikazi wake, ilifikia hitimisho kwamba wahandisi walio na asili ya Olympiad ni wazuri katika kushughulika na kazi zake maalum. Zaidi ya hayo, kwa kubuni mchakato wao wa uteuzi, wanaweza kumudu kuhatarisha kwamba wanaweza wasiajiri wahandisi wachache wazuri kwa sababu hawawezi kutatua matatizo ya hesabu kwa urahisi. Lakini hii sio shida kwao, kuna watu wengi ambao wanataka kufanya kazi kwenye Google, nafasi hiyo itafungwa.
Sasa hebu tuangalie nje ya dirisha, na ikiwa mbele ya ofisi yako wahandisi wanaotaka kukufanyia kazi bado hawajaweka kambi ya hema, na watengenezaji wako mara nyingi zaidi wanaangalia stackoverflow kwa kile ambacho kidokezo kinachofuata cha Spring kinahitaji kusakinishwa, badala ya ugumu wa algorithms ya kuorodhesha, basi, inaonekana, ni wakati wako wa kufikiria ikiwa unapaswa kunakili Google.
Kweli, ikiwa wakati huu Google imeshindwa na haikutoa jibu, unapaswa kufanya nini? Angalia ni nini hasa msanidi atafanya kazini. Je, unathamini nini kwa wasanidi programu?
Tengeneza vigezo vya nani ungependa kumwajiri na utengeneze majaribio ambayo yanajaribu ujuzi huu haswa.
Kazi za Kufikiria
ThoughtWorks ina uhusiano gani na hili? Hapa ndipo nilipata mfano wa mahojiano ya mfano kwangu. ThoughtWorks ni akina nani? Kwa kifupi, hii ni kampuni ya ushauri ya High-End yenye ofisi duniani kote, kuanzia China, Singapore hadi mabara ya Marekani, ambayo imekuwa ikishauriana katika masuala ya maendeleo kwa takribani miaka 25, ina kitengo chake cha Sayansi, kinachoongozwa na Martin. Fowler. Ukitafuta orodha ya vitabu 10 vya lazima kusomwa kwa Mhandisi wa Programu, basi labda 2-3 kati yao vitaandikwa na wavulana kutoka ThoughtWorks, kama vile Refactoring By Martin Fowler na Building Microservices: Designing Fine-Grained Systems na Sam. Newman au Usanifu wa Mageuzi wa Jengo
na Patrick Kua, Rebecca Parsons, Neal Ford.
Biashara ya kampuni imejengwa kwa kutoa huduma za gharama kubwa, lakini mteja hulipa ubora wa ajabu, ambao una utaalam, viwango vya ndani na, kwa kweli, watu. Kwa hivyo, kuajiri watu sahihi ni muhimu hapa.
Watu wa aina gani wako sahihi? Bila shaka, kuna tofauti kwa kila mtu. ThoughtWorks imeamua kuwa vigezo muhimu zaidi vya mtindo wao wa biashara wa wasanidi programu ni:
- Uwezo wa kuendeleza katika jozi. Ni uwezo, si uzoefu au ujuzi. Hakuna mtu anayetarajia kwamba watu ambao wamekuwa wakifanya programu ya Jozi kwa miaka 5 watakuja. Lakini kukubali maoni ya watu wengine na kuwa na uwezo wa kusikiliza ni ujuzi muhimu.
- Uwezo wa kuandika vipimo, na kufanya mazoezi ya TDD
- Elewa SOLID na OOP na uweze kuzitumia.
- Toa maoni yako. Kama mshauri, lazima ufanye kazi na watengenezaji wa mteja, na washauri wengine, na hakuna faida nyingi ikiwa mtu anajua jinsi ya kufanya kitu vizuri, lakini hawezi kabisa kuwasilisha kwa timu nyingine.
Sasa ni muhimu kutathmini ujuzi huu hasa katika mgombea. Na hapa nataka kuzungumza juu ya uzoefu wangu wa kuhojiwa huko ThoughtWorks. Nitasema mara moja kwamba nilikwenda Singapore na kupita, lakini mchakato wa kuajiri ni umoja na hautatofautiana sana kutoka nchi hadi nchi.
Hatua ya 0. HR
Kama kawaida, mahojiano ya dakika 20 na HR. Sitakaa juu yake, nitasema tu kwamba sijawahi kukutana na mtu wa HR ambaye angeweza kuzungumza kwa muda wa dakika 15 kuhusu utamaduni wa maendeleo katika kampuni, kwa nini wanatumia TDD, kwa nini programu ya jozi. Kawaida, HRs hutafuta swali hili na kusema kwamba mchakato wao ni wa kawaida: watengenezaji huendeleza, mtihani wa majaribio, wasimamizi wanaendesha.
Hatua ya 1. Je, una sifa gani katika OOP, TDD?
Saa 1.5 kabla ya kuanza kwa mahojiano, nilitumwa kazi ya kutengeneza simulator ya Mars Rover.
Misheni ya rover ya MarsKikosi cha rovers cha robotic kitatua na NASA kwenye uwanda wa Mirihi. Uwanda huu, ambao ni wa mstatili wa ajabu, lazima upitishwe na rovers ili kamera zao zilizo kwenye ubao ziweze kupata mwonekano kamili wa ardhi inayozunguka ili kurudisha Duniani. Nafasi na eneo la rova huwakilishwa na mchanganyiko wa viwianishi vya x na y na herufi inayowakilisha mojawapo ya nukta nne za dira. Uwanda wa juu umegawanywa katika gridi ya taifa ili kurahisisha urambazaji. Nafasi ya mfano inaweza kuwa 0, 0, N, ambayo inamaanisha kuwa rover iko kwenye kona ya chini kushoto na inaelekea Kaskazini. Ili kudhibiti rover, NASA hutuma safu rahisi ya barua. Herufi zinazowezekana ni 'L', 'R' na 'M'. 'L' na 'R' hufanya rova izunguke digrii 90 kushoto au kulia mtawalia, bila kusonga kutoka mahali ilipo sasa. 'M' ina maana ya kusonga mbele pointi moja ya gridi, na kudumisha kichwa sawa.
Chukulia kwamba mraba moja kwa moja Kaskazini kutoka (x, y) ni (x, y+1).
Pembejeo:
Mstari wa kwanza wa pembejeo ni viwianishi vya juu-kulia vya tambarare, viwianishi vya chini kushoto vinachukuliwa kuwa 0,0.
Ingizo lililobaki ni habari inayohusu rover ambazo zimetumwa. Kila rover ina mistari miwili ya pembejeo. Mstari wa kwanza unatoa nafasi ya rover, na mstari wa pili ni mfululizo wa maagizo yanayomwambia rover jinsi ya kuchunguza uwanda. Nafasi imeundwa na nambari mbili kamili na herufi iliyotenganishwa na nafasi, inayolingana na viwianishi vya x na y na mwelekeo wa rover.
Kila rover itakamilika kwa mfuatano, ambayo ina maana kwamba rover ya pili haitaanza kusonga hadi ya kwanza imemaliza kusonga.
PATO:
Pato kwa kila rover inapaswa kuwa kuratibu zake za mwisho na kichwa.
VIDOKEZO:
Tekeleza kwa urahisi mahitaji yaliyo hapo juu na uthibitishe kuwa kisafisha tupu hufanya kazi kwa kuiandikia vipimo vya kitengo.
Kuunda aina yoyote ya kiolesura ni nje ya upeo.
Kutatua tatizo kwa kufuata mbinu ya TDD (Test Driven Development) itapendelewa.
Kwa muda mfupi unaopatikana, tunajali zaidi ubora kuliko ukamilifu.
*Siwezi kuchapisha kazi niliyotumwa, hii ni kazi ya zamani ambayo nilipewa miaka kadhaa iliyopita. Lakini niamini, kimsingi kila kitu kinabaki sawa.
Ningependa hasa kuzingatia vigezo vya tathmini. Ni mara ngapi umekutana na hali ambapo mambo ambayo ni muhimu kwa mgombea sio muhimu kabisa wakati wa ukaguzi na kinyume chake. Sio kila mtu anafikiria kama wewe, lakini wengi wanaweza kukubali na kufuata maadili yako ikiwa yamesemwa wazi. Kwa hiyo, kutokana na vigezo vya tathmini ni wazi mara moja kwamba ujuzi muhimu zaidi katika hatua hii ni
- TDD;
- Uwezo wa kutumia OOP na kuandika msimbo unaoweza kudumishwa;
- uwezo wa kupanga programu
Kwa hivyo, nilionywa kutumia saa hizo 1.5 kufikiria jinsi nitakavyofanya kazi hiyo, badala ya kuandika nambari. Tutaandika kanuni pamoja.
Tulipopiga simu, watu hao walituambia kwa ufupi wao ni nani na wanafanya nini na wakajitolea kuanza maendeleo.
Wakati wa mahojiano yote, sikuwahi hata mara moja kuwa na hisia kwamba nilikuwa nikihojiwa. Kuna hisia kwamba unakuza msimbo katika timu. Ikiwa utakwama mahali fulani, wanasaidia, wanashauriana, wanajadiliana, hata wanabishana juu ya jinsi bora ya kuifanya. Katika mahojiano, nilisahau jinsi ya kuangalia katika JUnit 5 kwamba njia inatupa Ubaguzi - walijitolea kuendelea kuandika mtihani, wakati mmoja wao alikuwa akitafuta jinsi ya kuifanya.
Saa chache baada ya mahojiano, nilipokea maoni yenye kujenga - nilichopenda na kile ambacho sikupenda. Kwa upande wangu, nilisifiwa kwa kutumia madarasa yaliyofungwa kama mbadala wa kitu kisicho na maana; kwa ukweli kwamba kabla ya kuandika kanuni, niliandika kwa pseudocode jinsi ningependa kudhibiti rover, na hivyo kupokea mchoro wa madarasa, angalau wale wanaohusika katika API ya robot.
Hatua ya 2: Tuambie
Wiki moja kabla ya mahojiano, niliombwa nitayarishe wasilisho kuhusu mada yoyote iliyonivutia. Muundo ni rahisi na unaojulikana: uwasilishaji wa dakika 15, dakika 15 kujibu maswali.
Nilichagua Usanifu Safi na Mjomba Bob. Na tena nilihojiwa na watu kadhaa. Huu ulikuwa uzoefu wangu wa kwanza wa kuwasilisha kwa Kiingereza, na, labda, kama ningekuwa katika hali ya mkazo, nisingeweza kustahimili. Lakini tena, sikuwahi hata mara moja kuwa na hisia kwamba nilikuwa kwenye mahojiano. Kila kitu ni kama kawaida - ninawaambia, wanasikiliza kwa uangalifu. Hata kipindi cha kawaida cha maswali na majibu hakikuwa kama mahojiano; ilikuwa wazi kuwa maswali hayakuulizwa "kuzama", lakini yale ambayo yaliwavutia sana katika uwasilishaji wangu.
Saa chache baada ya mahojiano, nilipokea maoni - wasilisho lilikuwa muhimu sana na walifurahiya kusikiliza.
Hatua ya 3. Kanuni ya Ubora wa Uzalishaji
Baada ya kuonya kwamba hii ilikuwa hatua ya mwisho ya usaili wa kiufundi, niliombwa kuleta nambari hiyo nyumbani kwa hali tayari ya uzalishaji, kisha nitume kanuni kwa ajili ya ukaguzi na ratiba ya mahojiano ambapo mahitaji ya kazi yatabadilika na kanuni itabadilika. zinahitaji marekebisho. Nikiangalia mbele naweza kusema uhakiki wa kanuni unafanywa kipofu, wahakiki hawajui nafasi anayoomba mgombea, hawaoni CV yake, hata jina lake hawaoni.
Simu iliita, na tena kulikuwa na wavulana kadhaa upande wa pili wa mfuatiliaji. Kila kitu ni sawa na katika mahojiano ya kwanza: jambo kuu si kusahau kuhusu TDD, sema unachofanya na kwa nini. Ikiwa haujafanya mazoezi ya TDD hapo awali, basi ninapendekeza kuanza kuifanya mara moja, si kwa sababu ni muhimu katika makampuni, lakini kwa sababu hurahisisha maisha yako, hupunguza kiwango chako cha dhiki ikiwa unapenda. Kumbuka jinsi ulilazimika kutafuta kwa bidii na kitatuzi kwa hitilafu ambayo inaweza kutolewa tena kupitia kivinjari, lakini huwezi kuizalisha tena kwa majaribio? Sasa fikiria kwamba itabidi upate kosa kama hilo wakati wa mahojiano - umehakikishiwa nywele kadhaa za kijivu. Tunapata nini na TDD? Tulibadilisha msimbo na bila kutarajia tukagundua kuwa sasa vipimo ni nyekundu, lakini ni kosa gani ambalo hatuwezi kujua mara ya kwanza? Sawa, tunasema "Lo" kwa wanaohoji, bonyeza Ctrl-Z na uanze kupiga hatua ndogo mbele. Na ndio, unahitaji kukuza uwezo wa kukuza ukitumia TDD ndani yako, uwezo wa kwenda kwenye lengo ili vipimo vyako viwe vya kijani kibichi, na sio nyekundu kwa nusu ya siku, kwa sababu "una urekebishaji mwingi." Huu ni ujuzi sawa na kuandika msimbo unaoweza kudumishwa, au kuandika msimbo wenye tija.
Kwa hivyo, jinsi msimbo wako unavyoweza kubadilishwa inategemea ni muundo gani unaofikiria kuanza nao, jinsi ilivyo rahisi, na jinsi majaribio yako yalivyo mazuri.
Baada ya mahojiano, nilipokea maoni ndani ya masaa machache. Katika hatua hii, niligundua kuwa nilikuwa karibu kumaliza na kulikuwa na kidogo sana iliyobaki hadi "nilipokutana na Fowler."
Hatua ya 4. Mwisho. Maswali ya kiufundi ya kutosha. Tunataka kujua wewe ni nani!
Kwa kuwa mkweli, nilichanganyikiwa kwa kiasi fulani na uundaji huu wa swali. Unawezaje kuelewa mimi ni mtu wa aina gani katika saa moja ya mazungumzo? Na hata zaidi, unawezaje kuelewa hili ninapozungumza lugha ambayo sio lugha yangu ya asili, na, kusema ukweli, ni ya uchungu sana na iliyofungwa kwa ulimi. Katika mahojiano ya awali, ilikuwa rahisi kwangu binafsi kuzungumza badala ya kujibu maswali, na lafudhi ilikuwa lawama. Angalau mmoja wa waliohojiwa alikuwa Mwaasia - na lafudhi yao, sawa, tuseme, ni maalum kwa sikio la Uropa. Kwa hivyo, niliamua kuchukua mbinu ya haraka - kuandaa uwasilishaji juu yangu mwenyewe na mwanzoni mwa toleo la mahojiano kuzungumza juu yangu na uwasilishaji huu. Ikiwa watakubali, basi angalau kutakuwa na maswali machache kwangu; ikiwa watakataa toleo, basi, masaa 3 ya maisha yangu yaliyotumiwa kwenye uwasilishaji sio bei ya juu sana. Lakini unapaswa kuandika nini katika uwasilishaji wako? Wasifu - Alizaliwa huko, wakati huo, alienda shule, alihitimu kutoka chuo kikuu - lakini ni nani anayejali?
Ukiweka Google kidogo kuhusu utamaduni wa Mawazo, utapata makala ya Martin Fowler [https://martinfowler.com/bliki/ThreePillars.html] ambayo inafafanua Nguzo 3: Biashara Endelevu, Ubora wa Programu, na Haki ya Kijamii.
Wacha tufikirie kuwa Ubora wa Programu tayari umeshaangaliwa kwa ajili yangu. Inabakia kuonyesha Biashara Endelevu na Haki ya Kijamii.
Aidha, niliamua kuzingatia mwisho.
Kuanza, nilimwambia kwa nini ThoughtWorks - nilisoma blogu ya Martin Fowler nikiwa chuoni, hivyo basi napenda sana msimbo Safi.
Miradi pia inaweza kuwasilishwa kutoka pembe tofauti. Pia alitengeneza programu za dawa ambazo zimerahisisha maisha ya wagonjwa, na hata, kulingana na uvumi, ziliokoa maisha ya mtu. Pia nilitengeneza programu kwa ajili ya benki, ambayo pia ilirahisisha maisha kwa wananchi. Hasa ikiwa benki hii inatumiwa na 70% ya wakazi wa nchi. Hii sio kuhusu Sberbank na hata kuhusu Urusi.
Unataka kujua kunihusu? SAWA. Hobby yangu ni kupiga picha, kwa njia moja au nyingine nimekuwa nikishikilia kamera mikononi mwangu kwa karibu miaka 10, kuna picha ambazo sioni aibu sana kuonyesha. Pia, wakati mmoja, nilisaidia makao ya paka: Nilipiga picha paka ambazo zinahitaji nyumba ya kudumu. Na kwa picha nzuri ni rahisi zaidi kuweka paka. Labda nilipiga picha paka mia :)
Mwishowe, 80% ya uwasilishaji wangu ulijazwa na paka.
Mara tu baada ya uwasilishaji, HR aliniandikia kuwa bado hajajua matokeo ya mahojiano, lakini ofisi nzima tayari imevutiwa na paka.
Hatimaye, nilisubiri maoni - nilitosheleza kila mtu kama mtu.
Lakini wakati wa mazungumzo ya mwisho, HR alisema kwa busara kwamba Haki ya Kijamii ni nzuri sana na ya lazima, lakini sio miradi yote ni kama hii. Na akauliza ikiwa ilinitisha. Kwa ujumla, nilienda juu kidogo na Haki ya Jamii, hufanyika :)
Jumla ya
Kwa hivyo, nimekuwa nikifanya kazi nchini Singapore kwa miezi kadhaa katika Thoughtworks, naona kwamba hapa makampuni mengi sana yanachukua "mazoea bora ya mahojiano" kutoka kwa Google, kwa kutumia majani na Whiteboard kwa usimbaji, licha ya ukweli kwamba wana ujuzi zaidi kuliko Spring. , Symfony, RubyOnRails ( Piga mstari chini ya kile kinachohitajika) haihitajiki katika kazi. Wahandisi huchukua mapumziko ya wiki moja kabla ya mahojiano ili "kujiandaa."
Katika Workworks, pamoja na mahitaji ya kutosha kwa mgombea, kanuni zifuatazo ziko mstari wa mbele:
Furaha ya Usaili. Aidha, kwa pande zote mbili. Hakika, ikiwa unataka kupata wafanyikazi bora (na ni nani asiyefanya hivyo?), basi mahojiano sio soko ambalo watumwa huchaguliwa, lakini onyesho ambalo mwajiri na mgombea hutathmini kila mmoja. Na ikiwa mgombea anahusisha hisia za kupendeza na kampuni, kuna uwezekano kwamba atachagua kampuni hii.
Wahoji wengi ili kupunguza upendeleo. Katika Thoughtworks, upangaji wa programu jozi ndio kiwango cha ukweli. Na ikiwa mazoezi haya yanaweza kutumika kwa maeneo mengine, TW inajaribu kufanya hivyo. Katika kila hatua, mahojiano hufanywa na watu 2. Kwa hivyo, kila mtu anatathminiwa na angalau watu 8, na TW inajaribu kuchagua wahojiwa wenye asili tofauti, mwelekeo tofauti (sio teknolojia tu) na jinsia.
Hatimaye, uamuzi wa kukodisha utafanywa kwa kuzingatia maoni ya angalau watu 8, na hakuna mtu aliye na kura ya kupiga kura.
Kuajiri kulingana na sifa Badala ya kufanya uamuzi kulingana na apendavyo au asivyopenda mtahiniwa, fomu hutengenezwa kwa kila jukumu na kila hatua inayojumuisha sifa zinazotathminiwa. Wakati huo huo, wakati wa kutathmini, inashauriwa sana kutathmini sio uzoefu katika ujuzi fulani, lakini uwezo wa kuitumia. Kwa hivyo, ikiwa mtahiniwa hakuweza kutumia ujuzi wowote, kama vile TDD, lakini hata hivyo anajaribu kuutumia, anasikiliza ushauri wa jinsi ya kuzitumia kwa usahihi, ana kila nafasi ya kufaulu mahojiano.
Vyeti vya elimu hazihitajiki TW haihitaji udhibitisho au elimu yoyote katika Sayansi ya Kompyuta. Ujuzi pekee ndio unaopimwa.
Haya ni mahojiano ya kwanza kuwa na makampuni ya kigeni ambayo sikulazimika kuyatayarisha. Baada ya kila hatua, sikuhisi nimechoka, lakini kinyume chake, nilifurahi kwamba ningeweza kutumia mazoea bora, ambayo watu wa upande mwingine wa kufuatilia waliithamini na kuitumia kila siku.
Baada ya miezi kadhaa, naweza kusema kwamba matarajio yangu yalitimizwa kikamilifu. Je, ThoughtWorks ni tofauti gani na kampuni ya kawaida? Katika kampuni ya kawaida unaweza kupata watengenezaji wazuri na watu wazuri, lakini katika TW mkusanyiko wao hauko kwenye chati.
Ikiwa una nia ya kujiunga na ThoughtWorks, unaweza kutazama nafasi zetu zilizo wazi
Pia ninapendekeza kulipa kipaumbele kwa nafasi za kuvutia:
Mhandisi Mkuu wa Programu: , , ,
Mhandisi Mwandamizi wa Programu: , , ,
Mhandisi wa Programu: , ,
Mhandisi Mkuu wa Takwimu:
Mchambuzi wa Ubora:
Miundombinu: , ,
(Ningependa kukuonya kwa uaminifu kwamba kiungo ni kiungo cha rufaa, ukienda kwa TW, nitapokea bonus nzuri). Chagua ofisi unayopenda, sio lazima ujiwekee kikomo kwa Uropa, baada ya yote, kila miaka 2 TW itafurahi kukuhamisha kwenda nchi nyingine, kwa sababu ... hii ni sehemu ya sera ya ThoughtWorks, kwa hivyo utamaduni unaenezwa na kuunganishwa.
Jisikie huru kuuliza maswali katika maoni au kuniuliza kwa mapendekezo.
Ikiwa mada inaonekana ya kufurahisha, nitaandika juu ya jinsi inavyokuwa kufanya kazi katika ThoughtWorks na jinsi maisha yanavyokuwa Singapore.
Chanzo: mapenzi.com
