Próbuję ustalić kilka dobrych pytań na rozmowę kwalifikacyjną, aby ocenić zdolność ludzi do pracy w HTML / CSS, jednak temat ten jest bardzo szeroki i nie jestem pewien, jakie pytania mogę zadać, aby poprawnie ocenić czyjś HTML / Znajomość CSS.
Jakie pytania mogę zadać, aby ocenić umiejętności HTML / CSS kandydata podczas rozmowy kwalifikacyjnej?
Idealnie chciałbym zadać kilka pytań, a następnie dać im scenariusz z prawdziwego życia do walki.
web-development
html
css
webnoob
źródło
źródło
Odpowiedzi:
HTML i CSS są trudne do przeprowadzenia wywiadu z kilku powodów:
Są zbyt podstawowe, w porównaniu na przykład z językiem programowania,
Zależy to bardzo od kontekstu pracy. Przykłady:
Jeśli utworzysz ogromnie szybkie i zoptymalizowane witryny w skali Google, osoby, z którymi przeprowadzasz rozmowę, nie mogą ignorować ikonek CSS.
Jeśli tworzysz prawidłowe strony XHTML W3C, powinieneś upewnić się, że kandydaci znają różnicę między XHTML 1.0 i XHTML 1.1, lub jakie są obowiązkowe atrybuty
<img/>
itp.Jeśli tworzysz okropne witryny pełne hacków, powinieneś zapytać osoby, z którymi przeprowadzasz wywiad, o to, jak zrobią takie hakowanie, jak obsługują różne CSS dla różnych przeglądarek itp.
itp.
Jeśli jest to czysto HTML i CSS, osoba będzie musiała pracować z projektantami z jednej strony, a programistami z drugiej. Muszą znać HTML i CSS, ale o wiele bardziej cenna jest ich umiejętność interakcji z tymi ludźmi oraz zrozumienia zarówno potrzeb projektantów, wymagań programistów, jak i ograniczeń HTML i CSS.
Na przykład muszą wiedzieć, jak ustrukturyzować swój kod HTML w taki sposób, aby programista JavaScript mógł później łatwo dodać interaktywność.
Możesz zacząć od kilku podstawowych pytań:
Jeśli dana osoba odpowie „Internet Explorer”, natychmiast przerwij wywiad: nie potrzebujesz kogoś takiego.
Nie, żartuję. Odpowiedź jest nieistotna. Zamiast tego możesz zadać następujące pytania:
Używając Chrome, codziennie pracuję z Narzędziami programisty. Te narzędzia pozwalają mi:
Wyświetl żądania złożone ze strony,
Przeanalizuj czas potrzebny do załadowania strony i powiązanych zasobów, szczególnie czas wyszukiwania DNS, czasy oczekiwania i odbierania,
Sprawdź nagłówki wysłanych elementów, a także wskaźnik pamięci podręcznej,
Wyświetl DOM i zbadaj, w jaki sposób stosowane są selektory CSS,
Używam również YSlow, który służy mi jako lista kontrolna do optymalizacji strony internetowej, która wymaga wysokiej skalowalności. YSlow jest również dobrym narzędziem, jeśli chodzi o ustalenie, czy serwer jest poprawnie skonfigurowany (wysyłanie poprawnych nagłówków itp.).
W Firefoksie używam Firebug, narzędzia bardzo podobnego do Narzędzi dla programistów z Chrome. Narzędzia programistyczne są również dostępne w nowych wersjach programu Internet Explorer, a także pozwalają mi przejść do widoków zgodności IE7 na IE10. Ta ostatnia funkcja jest bardzo pomocna, ponieważ bez niej byłbym zmuszony zainstalować kilka maszyn wirtualnych tylko w celu testowania starszych wersji lub częściej korzystać z płatnych usług, takich jak Litmus .
Tutaj chcesz, aby osoba była w stanie wyjaśnić, że
<dl/>
dotyczy słowników, kojarzy jeden klucz<dt/>
z jedną lub kilkoma wartościami<dd/>
. Chociaż podstawowe zastosowanie tego znacznika było wyłącznie związane z semantyką, w praktyce zostało ono szeroko wykorzystane do zastąpienia tabel, czego dobrym przykładem jest PHPBB3. Jest to dobra rzecz, gdy tabele spowalniają renderowanie strony, ale należy jej używać ostrożnie: nie tylko tabele są nadal odpowiednie w wielu przypadkach, aby lepiej opisywać dane, ale mogą też istnieć inne środki, takie jak zwykłe listy, aby opisać zawartość bez użycia<dl/>
.Stały układ ma wstępnie zdefiniowane szerokości elementów. Elementy płynnego układu zależą od szerokości strony.
Stały układ ułatwia projektowanie strony, zwłaszcza gdy jest dużo grafiki o pełnej szerokości. Nawet bez grafiki jest to jeszcze łatwiejsze, ponieważ zależy Ci tylko na precyzyjnym etui. Na przykład Programmers.SE jest witryną o stałym układzie, kolumna wyświetlająca pytania i odpowiedzi ma zawsze ten sam rozmiar. Jeśli płynny układ zostałby zastosowany w tej kolumnie, spowodowałoby to problem: na małych ekranach tekst byłby nieczytelny, ponieważ linie byłyby zbyt krótkie, podczas gdy na dużych ekranach linie byłyby bardzo duże, więc tekst też byłby nieczytelny.
Problem ze stałym układem polega na tym, że działa on dobrze dla kilku najczęściej używanych rozdzielczości, ale zawodzi mniej więcej dla wszystkich innych. Staje się to szczególnie ważne od czasu przyjęcia bardzo dużych, szerokich monitorów oraz rosnącego wykorzystania Internetu na małych urządzeniach mobilnych.
Pomaga w tym płynny układ, ale projekt takiej witryny jest trudniejszy. W niektórych scenariuszach dotyczących źle zarządzanych projektów może to prowadzić do włamań HTML i CSS, dużych stron, niskiej konserwacji i, podczas opracowywania, do wyższych kosztów i przekroczenia terminów.
Możesz ograniczyć szerokość strefy tekstu, używając
max-width
właściwości.Fragment kodu ma tę wadę, że łączy logikę prezentacji w HTML. Logikę prezentacji należy umieścić w CSS z kilku powodów:
Po kilku takich podstawowych pytaniach możesz zadać bardziej skomplikowane pytania:
Robisz to za pomocą preprocesorów CSS, takich jak Sass lub LESS. Pozwalają definiować kolory, czcionki i inne części stylu wewnątrz zmiennych, które można później wykorzystać w swoich stylach.
Wadami preprocesorów CSS są:
Czasami wymagają zmiany przepływu pracy programistycznej i wdrożeniowej, aby mieć aktualny kod CSS w przeglądarce,
Są znani tylko przez kilku programistów, co utrudnia nowej osobie dołączenie do projektu lub utrzymanie go później,
Nie ma zarówno dobrych, jak i szybkich IDE dla Sass i LESS, a integracja z najpopularniejszymi IDE jest raczej rozczarowująca.
Ponieważ HTTPS wymaga, aby każdy wywoływany zasób również znajdował się w HTTPS (w przeciwnym razie użytkownik wyświetli ostrzeżenie dotyczące bezpieczeństwa), nie można określić łącza jako
http://cdn.example.com/image.png
. Aby poprawnie połączyć się z obrazem,//cdn.example.com/image.png
należy użyć; przeglądarka zostanie następnie dodanahttp:
lub whttps:
zależności od kontekstu.Jeśli używany jest protokół HTTP 1.1, strona może być podzielona na części . Oznacza to, że pierwsze części pojawią się szybciej, sprawiając wrażenie, że strona internetowa jest szybsza niż w rzeczywistości. Kodowanie przesyłania fragmentarycznego jest niemożliwe w HTTP 1.0, co oznacza, że w tym przypadku nie ma nic do zrobienia.
Aby móc wyświetlać fragmenty treści, z perspektywy HTML należy zmienić kolejność elementów, umieszczając te najbardziej krytyczne na górze pliku (co nie znaczy, że musiałyby pojawić się na górze strony). Na przykład w witrynie e-commerce, gdy użytkownik chce zobaczyć szczegóły produktu, pierwsza porcja może zawierać
<head/>
szczegóły produktu i. Następna porcja może zawierać podstawowe elementy, takie jak logo witryny, menu główne, prawa autorskie itp. Wreszcie ostatnia porcja może zawierać sekcję „Ludzie, którzy to kupili, również kupili”, komentarze i oceny produktu, „Udostępnij na Facebooku” itp.Na koniec możesz poprosić kandydata o opracowanie scenariusza z prawdziwego świata. Może to być cokolwiek, na przykład najłatwiejszy z poniższych, w złożonych scenariuszach, w których dana osoba ma do czynienia ze sprite'ami CSS lub innymi zaawansowanymi technikami optymalizacji, z niespójnościami przeglądarki itp.
W rzeczywistości jest to dość proste, ale pokazuje, czy osoba ma odruch, aby myśleć o wysokościach. Niedoświadczony kandydat utworzy
float:left
strefę iborder-left:solid 1px #ccc;
strefę, ale zapomnij o dodaniu granicy do lewej strefy i przedłużeniu jej, aby dwie granice znalazły się w tym samym miejscu.źródło
Oto kilka pytań, które chciałbym zadać na temat CSS:
inline-block
i inne wyświetlane wartości. Różnica międzydisplay: none;
ivisibility: hidden;
(jest to dobre i łatwe pytanie dla osób początkujących w CSS)inline-block
vsfloat
dla układów.I kilka pytań na temat HTML:
em
vsi
)?Zasadniczo kładę większy nacisk na CSS, ponieważ jest to obszar, który wielu ludziom trudno zrozumieć i efektywnie wykorzystać. Spotykam wielu kandydatów, którzy umieszczają „CSS” w swoich życiorysach, ale nie są w stanie odpowiedzieć na żadne pytania na ten temat. Większość ludzi mówi wprost: „Nie, nie, wiem , że CSS jest wystarczająco dobry, aby sobie z tym poradzić, ale nie wystarczająco dobry, aby o tym mówić”.
Czasami dobrze jest po prostu dać proste zadanie i wykonać wywiad. Powiedz, zaprojektuj prostą stronę z układem i stylem bloków, która obsługuje wiele rozmiarów ekranu i odpowiednio się dostosowuje. Powinno to zająć około godziny lub dwóch, a kandydat powinien wyjaśnić, co robi i dlaczego.
Powodzenia w przeprowadzaniu wywiadów!
źródło
Jeśli przeprowadzasz wywiad na żywo, najlepszym sposobem jest poproszenie programisty o napisanie kodu HTML / CSS.
Przykład (bardzo powszechny w prawdziwym rozwoju). Poproś programistę o napisanie kodu HTML / CSS strony za pomocą:
UPD: Oczywiście, poproś programistę o napisanie kodu przy użyciu tylko div (bez tabel).
Powinno to wyglądać następująco:
Ale przed rozmową na żywo sugeruję przetestowanie kandydatów online. Ponieważ łatwiej jest przetestować kandydatów online i zaprosić na rozmowę tylko wykwalifikowanych programistów, niż spędzać czas na każdym kandydacie.
źródło
position:absolute
jest dozwolony itp.Siedziałem w kilku wywiadach z projektantami stron internetowych, a my zrobiliśmy wydrukowanie bardzo prostego wyglądu bloga na papierze, a następnie poprosiłem kandydata o zapisanie kodu HTML i / lub CSS na stronie przez około 10 minut, aby dać podstawowa koncepcja tego, jak by to napisali. Daje nam to informację, czy ktoś RZECZOWO znał CSS, czy nie. Po prostu szukaliśmy podstawowych rzeczy, takich jak zmiennoprzecinkowe kontra tabele, czy cokolwiek innego, i wyjaśniliśmy, że to wcale nie musi być idealne.
Mnóstwo ludzi twierdziło, że ma wieloletnie doświadczenie z CSS, ale kiedy były
layout: floating; direction: up;
zmuszone to napisać, pisały dzikimi domysłami, takimi jak „ ” lub innymi podobnymi „jibberish”. Więcej niż 1 „CSS Ninja” nawet nie uzyskał właściwej składni, a la „div(margin=5)
”. To było dla mnie bardzo otwarte, aby zobaczyć, ile osób po prostu kłamie w wywiadach. I pozornie łatwiej jest kłamać o CSS niż o prostym kodowaniu. Nie możesz nic wiedzieć o CSS, ale zrób trochę google i możesz szybko rzucić odpowiednią terminologię. Tak naprawdę nie można tego skutecznie zrobić na przykład z koncepcjami wyższego poziomu, takimi jak OOP.źródło
Jest test online, w którym musisz wymienić tagi HTML lub właściwości CSS w ciągu 5 minut.
Chociaż nie jest to test w pełni odporny, może to dać ci znać, jeśli kandydat zna język HTML / CSS.
Jeśli chodzi o pytanie, możesz wykonać test z przykładowym kodem i poprosić go o wykrycie błędów składniowych / strukturalnych.
Jeśli chodzi o rzeczywisty scenariusz, wszystko zależy od tego, nad czym kandydat będzie pracował w Twojej firmie. Jeśli chcesz tylko programistę front-end, możesz poprosić o projekt strony internetowej na dowolny temat.
źródło
Jednym z rodzajów testów mających zastosowanie do języków programowania i języków znaczników jest przegląd kodu. Utwórz małą próbkę (20 lub 30 wierszy) z mieszanką błędów składniowych, błędów logicznych, przypadków narożnych, prawdopodobnie złego stylu ... Następnie poproś kandydata o zidentyfikowanie wszystkiego, co uzna je za podejrzane.
Ważne jest prawidłowe stosowanie tego rodzaju testu: jak w przypadku każdego pytania podczas rozmowy kwalifikacyjnej ważne jest, jak kandydat podchodzi do zadania, a nie tylko wyniki.
Nie zamierzam publikować mojego testu, ale kilka wskazówek, jak zastosować to do CSS:
em
ipx
, itd. Ktoś, kto studiował składnię za wywiad prawdopodobnie nie złapie wielu z nich.źródło
Z własnego doświadczenia, współpracując z innymi programistami, myślę, że pytania na temat HTML i CSS nie oddzieli ludzi, którzy wiedzą, o czym mówią, od tych, którzy wiedzą, co faktycznie robią.
Polecam próbny test / prototyp oparty na realistycznym doświadczeniu potrzeb Twojej firmy.
źródło