JavaRush /Java блогы /Random-KK /Техникалық сұхбаттағы пилотаж: мен Google, Microsoft және...

Техникалық сұхбаттағы пилотаж: мен Google, Microsoft және т.б.-ға қалай кірдім

Топта жарияланған
Ace Your Technical Interview мақаласының аудармасы және бейімделуі : Мені Google-ға, Microsoft-қа және басқаларға не әкелді Medium-дағы Startup қауымдастығында. Техникалық сұхбатта пилотаж: Google, Microsoft және т.б.-ға қалай кірдім - 1Тағылымдаманың алғашқы сұхбатына дейін мен техникалық сұрақтардың да қойылатынын ойламадым. Мені тек «өзің туралы айт» деген сұрақтар күтіп тұр деп ойладым. Алайда оларға да дұрыс дайындалмадым. Мен кәсіптік бағдарлау орталығында екі сағатымды әркімнен құнды кеңестер алуға тырыстым, ал тағы екі сағат үйде әртүрлі сұрақтарға жауаптарды қайталаумен болдым. Бірақ сұхбат алуға келгенде сұхбат беруші менің күшті және әлсіз жақтарымды сұрамады. Оның орнына маған маркер беріп, тақтаға шығуды бұйырды. Олар бірінші менің техникалық дағдыларымды тексереді деп ойламадым! Бұл мені таң қалдырды. Мен сұрақтарға қалай дұрыс жауап беру керектігін білмедім және бірнеше сағаттан кейін сыпайы бас тарту туралы электрондық хат алдым. Бақытымызға орай, осы оқиғадан кейін мен көптеген сәтті сұхбат алдым. Мен елу техникалық сұхбатта болдым және олар үшін көптеген достарымды дайындадым. Менің көзқарасым өте жақсы жұмыс істейтін сияқты, өйткені ол маған және басқаларға Google, Microsoft, Apple, Amazon және т.б. компаниялардағы сұхбатта табысқа жетуге көмектесті. Мен барлығына жеке көмектескім келеді, бірақ бұл үшін уақыт жеткіліксіз. Мен жасай алатын ең жақсы нәрсе - техникалық сұхбаттарды қалай алуға болатыны туралы қадамдық нұсқаулықпен бөлісу. Мұндай жағдайларда не істеуге болатынын және не істеуге болмайтынын сынақ және қателесу арқылы білдім. Міне, мен бірнеше жыл бойы тәжірибе жинақтаған пайдалы кеңестер тізімі.

1. Жалған сұхбаттарға бірден кіріспеңіз.

Адамдар әдетте мүмкіндігінше көп өтірік сұхбат беруге кеңес береді - және олар дұрыс. Бірақ егер сіз дайын болмасаңыз, жалған сұхбат тиімсіз, қорқытатын және тіпті моральды түсіретін болуы мүмкін. Мен сізге өз тәжірибемнен айта аламын: егер мен тәжірибе ретінде мүлдем дайын емес адаммен сұхбаттассам, соңында олар сұрақтарға «қалқыған» және өте жақсы жауап бермегендіктен, мотивацияланғандай сезінді. Жақсырақ дайындалуға және техникалық сұхбаттың қандай екенін түсінуге уақыт бөліңіз. Міне, Google-дағы жалған сұхбаттың жақсы мысалы:

2. Қарым-қатынас дағдылары > техникалық дайындық деңгейі

Көптеген адамдар LeetCode және Hackerrank сияқты сайттарда сағат жұмсау арқылы техникалық сұхбатқа дайындалады. Бұл тәжірибе үшін тамаша платформалар. Бірақ сұхбатта кездесеміз деп ойлайтын мәселелерді кездейсоқ шешу үшін бірнеше сағатты босқа өткізбес бұрын, аз уақытты алған дұрыс. Бұл тиімсіз тәсіл: сұхбатта сіз бұрын еш жерде көрмеген кем дегенде бір сұраққа тап боласыз. Кейбір достарымның маған қарағанда мықты программистері бар, мен неге техникалық білімім бойынша тестілеуден өткеніме таң қалатынмын, ал олар (кейде) жоқ. Біздің арамыздағы ең үлкен айырмашылық менің коммуникативті дағдыларымды жаттықтыруға көп уақыт жұмсағанымда болса керек. Байыпты түрде: шешім логикасын нақты түсіндіре алмасаңыз, ең жақсы 100 техникалық тапсырманы қалай шешуге болатынын білу көмектеспейді. Ойды құрастыруды үйрену өте маңызды. Алдымен мұның бәрі қиын, ыңғайсыз және табиғи емес болып көрінуі мүмкін, бірақ тәжірибе көмектеседі. Техникалық біліміңізді жаңартып отыру маңызды, бірақ қарым-қатынас дағдыларын дамыту одан да маңыздырақ. Алдағы сұхбатқа дейін уақытыңызды қысып жатсаңыз, информатикада екі жыл оқыған материалды екі күнде қайталауға тырысқанша, қарым-қатынасқа назар аударған дұрыс. Келесі техникалық сұхбат алдында мынаны біліп көріңіз:

2.1 Түсіндіретін сұрақтар қоюды үйреніңіз

Сұхбаттың басты артықшылықтарының бірі - сізге қойылған сұрақты нақтылау мүмкіндігі. Әдетте сұхбат жүргізетіндер барлық ақпаратты бермейді, сондықтан олардан қосымша мәліметтер алу керек. Сіз оның не екенін толық түсінбейінше мәселені шеше алмайсыз! Тәжірибе жасау үшін сіз техникалық сұхбаттардан бірнеше сұрақ алып, олар үшін нақтылайтын сұрақтар топтамасын жасай аласыз. Мысалы, тізімді сұрыптау сұралса, сіз мынаны сұрауыңыз мүмкін:
  • Тізімді қалай сұрыптауға болады – өсу немесе кему ретімен?
  • Тізімде деректердің қандай түрі бар?
  • Тапсырманың осы түрі үшін деректерді енгізу және шығару қандай болуы керектігі туралы мысал келтіре аласыз ба?
  • Және т.б.
Көптеген сұрақтар болуы мүмкін - бұл бірнеше мысалдар ғана. Әртүрлі нюанстарды нақтылауды ұмытпаңыз: Кіріс пен шығыстың мысалын сұраңыз
  • Деректер түрін көрсетіңіз
  • Мәндер ауқымында қандай да бір шектеулердің бар-жоғын тексеріңіз
  • Сізге шеткі істермен айналысу керек пе деп сұраңыз
  • Бағдарламалап жатқан тілдің белгілі бір кітапханалары мен мүмкіндіктерін пайдалана алатыныңызды біліңіз

2.2 Ойларын жеткізе білуге ​​үйрету

Барлық нақтылау сұрақтарын қойып, мәселені шешу үшін не қажет екенін нақты білгеннен кейін, шешіміңіздің мәнін дұрыс жеткізуді үйренудің уақыты келді. Егер сіз codeты не үшін істеп жатқаныңызды түсіндірместен жай ғана жаза бастасаңыз, сұхбат алушыға сіздің дұрыс немесе бұрыс екеніңізді анықтау қиын болады. Сіз бұл үшін ұпай алмайсыз, тіпті қате шешім жазуыңыз мүмкін. Шешіміңіздің логикасын түсіндіріп бергенде, сұхбат алушы сізді дұрыс бағытқа бағыттай алады, егер сіз курстан сәл ауытқып кетсеңіз. Кез келген codeты жазбас бұрын мына әрекетті орындап көріңіз:
  • Әңгімелесушіңізге өзіңіздің ықтимал шешіміңіз туралы айтыңыз - сіз мәселені «төбелес» шеше аласыз ба және бұл мүмкін бе немесе оны қандай да бір жолмен жақсартуға бола ма?
  • Оның қалай жұмыс істеуі керек екенін түсіну үшін мысалмен шешіміңізді кезең-кезеңімен қараңыз.
  • Шешімді бірнеше қадамға бөліп, сұхбат алушы сіздің ойлау үдерісіңізді түсінуі үшін псевдоcode немесе «қаңқа» жазыңыз.
  • Барлығын қамтығаныңызды көру үшін шешіміңізді әртүрлі шеткі жағдайлармен сынап көріңіз. Сұхбат берушінің пікірін сұраңыз.
Тәжірибе жасау үшін сұхбаттасу сұрағын алыңыз және досыңызға дұрыс жауапты (шешімін) айтуға тырысыңыз. Егер сіз дос таба алмасаңыз, тұлыпты немесе кез келген басқа затты алып, олармен жаттығу жасаңыз.

3. Техникалық біліміңіз бен дағдыларыңызды жетілдіріңіз

Сұхбатта дұрыс сөйлесуді үйренгеннен кейін, техникалық біліміңізді арттыруға бар күшіңізді сала аласыз. Алгоритмдер мен деректер құрылымдарын жаңартыңыз. Деректер құрылымдары, сұрыптау, алгоритмдермен жұмыс, разрядтық операторлар, Big O белгілері және т.б. сияқты негізгі тақырыптарды түсінгеніңізге көз жеткізіңіз. Сіз білуі керек нәрселердің тізімі сіз үміткер лауазымға байланысты өзгереді.

4. Жаттығу!

Енді қажетті дағдылар мен білімдерді жетілдіре отырып, сіз бар күшіңізді тәжірибеге жұмсай аласыз.
JavaRush курсында көптеген «басқатырғыш» тапсырмалары және қолданбалы шешімдерді жасауға арналған толық жобалар бар.
Шешімді жазуға ғана емес, қадамдар туралы ойлануға тырысыңыз: ойша нақтылау сұрақтарын қойыңыз, құрылымды ойластырыңыз, содан кейін ғана шешімді жазыңыз. Бұл сұхбатта өзіңізді сенімдірек сезінуге көмектеседі және сенімділік - патша!

5. Сұхбат кезінде «тоқтап қалсаңыз» не істеу керек?

Енді сіз нақты сұхбатқа кірдіңіз және кенеттен сұрақ сізді таң қалдырғанын түсіндіңіз делік. Сіз не істеу керектігін және мәселені қалай шешу керектігін білмейсіз. Сіз жай ғана бөлмеден қашып кеткіңіз келеді және қайтып келмейсіз. Түсінемін - мен түнде әлі де армандайтын жағдайларға тап болдым. Бірақ уайымдамаңыз - барлық үміт әлі жойылған жоқ. Бұл сұхбат кезінде бірнеше рет болды, бірақ олар әдетте ұсыныспен аяқталды. Қиын, жүйкеңді ауыртады, бірақ бәрі де мүмкін. Демалыңыз және ойланыңыз. Тыныс алыңыз, ойларыңызды ретке келтіріңіз. Мүмкін сізде «анықтама» болатын шығар. Қарапайым мысалмен шешіміңізді тексеріңіз. Қадамдық әрекеттерге назар аудара отырып, ұқсас мәселені шешудің жеңілдетілген нұсқасын жасауға тырысыңыз, бірақ қарапайым. Мысалы, тізімді сұрыптау қажет болса, не істейсіз? Ең кіші санды тауып, басына қоясыз. Бұл шешімді codeта қалай енгізер едіңіз? Жеке шешім туралы айтыңыз. Егер толық шешім шықпаса, бұл жақсы. Сұхбат алушыға осыны айтыңыз, сонымен қатар оған өз ойларыңызды енгізуге мүмкіндік беріңіз. Бұл қиындық сіз кездестірген кез келген нәрсеге ұқсай ма? Оны шешу үшін белгілі бір деректер құрылымын пайдалану қажет сияқты ма? Сізге басшылық ететін логикамен бөлісіңіз. Адал бол. Сізге қойылған сұрақ сізге бейтаныс білім саласына қатысты екеніне сенімді болсаңыз, бұл туралы сұхбат берушіге айтыңыз. Шешімді іздеуге дайын екеніңізді айтыңыз, бірақ сізде әлі қажетті дағдылар жоқ. Бірде маған желі қауіпсіздігіне қатысты сұрақ қойылды. Ол кезде сұхбат берушілерге айтқан бұл салада тәжірибем болған жоқ. Олар маған тапсырманы жеңуім үшін қажетті негіздерді түсіндірді. Сізден нақты адамдар сұхбат алады :) Олар сізді жақсы түсінеді, өйткені олардың өздері де осындай жағдайда болған. Мұның бәрі мен бірнеше жылдар бойы сұхбаттасу барысында әзірлеген кеңестер. Олар маған және менің достарыма жетекші компанияларға түсуге көмектесті. Іздеуге сәттілік!
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION