Проваљивање предњег интервјуа

Тешки су технички интервјуи. То је чињеница. Не само да морате добро да разумете основе рачунарске науке, већ и разумевање ствари попут веб перформанси, система за изградњу и механизама за постављање ЦСС-а.

Иако постоје ресурси, открио сам да постоји само неколико комплетних водича који ће вам помоћи да се припремите за фронт-енд интервју. Зато сам одлучио да напишем конту по темама која ће вам, надам се, помоћи да припремите следећи интервју.

Пре интервјуа

Дакле, пре интервјуа, питајте свог регрутера за формат интервјуа. Неки интервјуи могу се вртјети око табле, док други могу користити мрежни уређивач текста као што је ЦодерПад. Важно је знати како бисте могли да вежбате у окружењу у којем ће се одржати ваш интервју.

Такође, питајте свог регрутера за савете на које теме треба да се усредсредите током припреме. Разлог за то је тај што ће вам нека предузећа, осим специфичног питања за фронт-енд, постављати и традиционална рачунарска питања о темама попут алгоритама претраживања и сортирања.

Фронт-енд концепти

ХТМЛ и ЦСС, Јавасцрипт и Јавасцрипт обрасци дизајна су кључни концепти на којима ћете бити тестирани током интервјуа. Прегледајте листу и уверите се да ли вам је пријатна свака тема.

ХТМЛ и ЦСС су попут хлеба и путера фронт-енд развоја. Током интервјуа биће вам највероватније постављена питања о нијансама ХТМЛ-а и ЦСС-а. Такође, будите спремни да се од вас затражи да кодирате изглед заснован на макети.

За случај да вам треба освежавач ХТМЛ-а и ЦСС-а, ево неколико основних концепата које треба прегледати.

  • ЦСС анимације
  • ЦСС спритес
  • Псеудо класе
  • Мрежни системи
  • Семантичка ознака

Поред ових концепата, знајте и о ЦСС претпроцесорима попут САСС или ЛЕСС и њиховим предностима. Такође се упознајте са ЦСС конвенцијама именовања попут БЕМ и ООЦСС.

Још једна важна ствар је да анкетари траже кандидате који подржавају најбоље праксе у ЦСС-у. Као добра референца, овај водич који је написао фронт-енд на Медиум-у пружа увид у то како се Медиум поновио према њиховој тренутној ЦСС архитектури.

Раније сам споменуо да ће неки анкетари тражити од вас да поново направите распореде у ХТМЛ-у и ЦСС-у. Вежбајте то на игралишту попут ЦодеПен-а. Погледајте Дрибббле јер има пуно једноставних, али лепих дизајна које би било забавно поново створити.

Коначно, као предњи крајеви, толико смо навикли да вршимо промене у нашем уређивачу, а затим да верификујемо промене у нашем прегледачу. Често пута током интервјуа нећете имати овај луксуз. Када се припремате за интервју, покушајте да кодирате већи део свог изгледа не гледајући резултат до краја.

Ако су ХТМЛ и ЦСС хлеб и масла за фронт-енд развој, онда је Јавасцрипт нож. Компаније ће потрошити прилично времена током вашег интервјуа тестирајући ваше знање о Јавасцрипту. Много питања вртиће се око следећих концепата.

  • Прототипско наследство
  • Сцопинг
  • Затварања
  • Петља догађаја
  • Мехурићи догађаја
  • Пријавите се, позовите и повежите
  • Повратни позиви и обећања
  • Подизање променљивих и функција
  • Цурриинг

Када вам се постави питање за Јавасцрипт, схватите на ком од ових концепата се тестирате и биће много лакше пронаћи право решење. Ако се осећате уверено у своју способност Јавасцрипта, тестирајте своје знање овде, овде и овде.

Узорци дизајна у Јавасцрипту нуде вам поновљива решења за уобичајене проблеме. Ово је неколико образаца дизајна које је важно знати.

  • Декоратер
  • Фабрика
  • Синглетон
  • Откривање модула
  • Фасада
  • Посматрач
  • МВЦ, МВП, МВВМ

Поред Јавасцрипт дизајнерских образаца, добро је бити упознат са Јавасцрипт оквирима. То се не значи да морам да идем учити још један оквир пре интервјуа. Уместо тога, знајте када и зашто фронт-енд тимови користе оквире. Такође, ако интервјуишете за нешто попут Реацт + Флук или угаоне позиције, претходно прегледајте неку од документације за архитектуру оквира.

Појмови рачунарске науке

Неке компаније унајмљују софтверске инжењере пре фронт-енд програмера. То значи да ове компаније очекују да будете добро утемељени у темама попут добрих принципа дизајна софтвера, скалабилне архитектуре кода и тестирања.

Ако вам регрут предлаже да преиспитате своје знање о структурама података и алгоритмима, овај одељак је за вас. У супротном, слободно прескочите овај одељак. Ако немате рачунарску науку, то је у реду. Већина ових концепата прилично је једноставно научити.

Ово су основне структуре података које бих вам предложио да знате одозго. Немојте само читати о њима, одвојите време да их примените и у Јавасцрипту. Ако нисте упознати са јединственим тестирањем, тестирајте структуру података у библиотеци као што је Моцха да бисте научили.

  • Повезане листе
  • Хасхтаблес
  • Гомиле и редови
  • Дрвеће (бинарно дрвеће и гомиле)
  • Графикони

Напомена: За графиконе, такође знате како да примените обилазнице претраживања по дубини и ширини.

За примене ових структура података, можете погледати СанФоундри. Сви њихови примери су на Јави, али је поновна примена у Јавасцрипту прилично једноставна.

Једном када се осећате сигурним у вези са структурама података, можете прећи на сортирање. Прегледајте листу, примените их у Јавасцрипт, а затим забележите њихову временску и просторну сложеност.

  • Бинарна претрага
  • Буббле сорт
  • Сортирање уметања
  • Сортирање спајањем
  • Брзо сортирање
  • Сортирање избора

Након прегледа структура података и алгоритама, тестирајте своје знање помоћу Леетцоде-а и ових техничких питања о Јавасцрипту.

Умотавање

Знам да треба узети пуно материјала, посебно ако сте нови у фронт-енд развоју. Почните да се припремате за интервју пре времена, како бисте могли да се крећете угодним темпом.

Такође имајте на уму да интервјуи нису мера ваше вредности као програмера. Неки људи су добри у интервјуима, други не. Понекад кликнете са анкетером, други пут не.

Ако имате било каквих питања, слободно ми оставите белешку или Твеет. Такође бих волео да знам како је протекло ваше искуство са интервјуима. Срећно!

ПС Ако вам се свидео овај чланак, много би значило ако притиснете дугме за препоруку или поделите са пријатељима.

Ако желите још, можете ме пратити на Твиттер-у где објављујем несензибилне расправе о дизајну, фронт-енд развоју, ботовима и машинском учењу.