выдержки из статьи (https://gmsservices.ru/blog/2016/03/22/programmer-interview/)
1. Следует проверить, насколько кандидат любит программирование
Разработчик из лондонского офиса Google Йон Скит (Jon Skeet) советует интервьюерам больше говорить о том, что интересно кандидату-программисту. Страсть, с которой человек говорит о своей работе и своих достижениях – самый надежный индикатор его профессионализма. Скит говорит, что за свою многолетнюю практику не встречал программиста, увлеченно рассказывающего о разработках, но не способного написать качественный код.
2. Крайне важно проверить навыки работы с кодом
Разработчик Адам Лисс (Adam Liss) в свою очередь убежден, что важнейшим элементом интервью с техническим специалистом должна быть проверка его навыков работы с кодом. Среди заданий может быть, к примеру, поиск ошибок в кусках уже написанного кода, кроме того, можно попросить кандидата рассказать, что этот код делает, а также оценить стиль его написания, выбранный алгоритм, возможность быстро внести нужные исправления и т.д.
Мне кажется, от джуна главное — это:
а) базовый уровень знаний по нужному языку,
б) умение и желание учиться.
- Я не знаю (+1 — честен)
- Я не знаю, но думаю, что .. (+2 — честен и смел) Затем идет вопрос «А почему вы так думаете?» За ответ на него можно заработать еще плюсов. Или минусов, если внятного ответа не получим.
- Я не знаю, но думаю, что ... потому что .. (+4 честен, смел, предугадал вопрос «почему», аргументировал ответ)
В чем должен разбираться:
кросс-браузерная и кросс-платформенная разработка;
прогрессивное улучшение и изящная деградация;
мобильная разработка;
адаптивная и отзывчивая верстка;
веб-шрифты;
принципы SEO-оптимизации.
Методологии и подходы написания CSS?
GruntJS,Gulp, Bower, npm — для чего используются?
RequireJS (или подобные) — зачем нужны?
Тестирование: какие библиотеки знаете для тестирования, что использовали на практике? (какие подводные камни были и тд)
Как логировать JS ошибки с клиента, какие "подводные" камни?
Какие фреймворки знаете/использовали на практике (если не использовали, то почему), как они устроены внутри.
Паттерны проектирования
Другие вопросы из области вёрстки (css, html)
Итак, какие технологии должен освоить фронтенд-разработчик:
HTML и CSS (в том числе сетки и CSS-фреймворки, спецификации W3C и WHATWG, HTML5/CSS3 Polyfills)
Препроцессоры CSS (Sass, Less, Stylus и т. д.)
JavaScript
Популярные фреймворки и библиотеки: jQuery, Angular.JS, React.JS, Backbone.js и т. д.)
OOCSS / BEM / SMACSS
SVG
DOM
HTML5 API
ECMAScript 6
Понимать принципы построения бекэнда и разбираться в серверных технологиях (Node.js, PHP, Ruby, .NET и т. д.)
Инструменты дебаггинга (Chrome Dev Tools, Firebug и прочие)
JavaScript транспайлеры (Babel)
Инструменты контроля версий (Git, GitHub, CVS и т. д.)
Базы данных и языки запросов (SQL, MySql, NoSQL, MongoDB и т. д.)
Графические редакторы (Photoshop, Illustrator и т. д.)
- *interview of python (it is cool) https://grishaev.me/interview/
- *Патерны проектирования https://github.com/pkolt/design_patterns
- *Паттерны для масштабируемых JavaScript-приложений http://largescalejs.ru/
- *кратко про фронт https://bool.dev/blog/detail/tipichnye-voprosy-na-sobesedovanii--javascript-razrabotchika
- *вопросы обо всем https://github.com/MaximAbramchuck/awesome-interview-questions#python
- *python interview of middle https://luminousmen.com/post/python-interview-questions-middle
- Exceptions — какие бывают, иерархия
- Команды Git — как сделать коммит и тд
- Может ли блок finally не выполняться?
- Постулаты ООП с примерами
- Что такое конструктор?
- Написать 2 SQL-запроса (первый содержал join, который я заменила вложенным запросом, второй — ключевые слова limit и desc)
- слово final — все, что знаешь
класс по паттернам https://refactoring.guru/ru