Книги онлайн и без регистрации » Бизнес » IT-рекрутмент. Как найти лучших специалистов, когда все вокруг горит - Егор Яценко

IT-рекрутмент. Как найти лучших специалистов, когда все вокруг горит - Егор Яценко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 13 14 15 16 17 18 19 20 21 ... 50
Перейти на страницу:
какое видение продукта было определено, какие метрики считались, какие гипотезы выстраивались, что получилось, что нет, каких результатов добились, за какую часть продукта отвечал продакт (или за продукт целиком), на каком этапе пришел, запускал ли продукты с нуля.

А у проджекта полезно спросить про то, как строились процессы, участвовал ли он в найме сотрудников, приходилось ли увольнять, четко ли соблюдались сроки, как решались конфликтные ситуации, отвечал ли он за бюджет, случались ли случаи перебюджета и почему.

Глава 10

Языки программирования

Как мы уже определили в предыдущих главах, разработчики (девелоперы, программисты) — это люди, которые пишут код. И делают они это на разных языках. Чтобы заниматься рекрутментом разработчиков, необходимо хотя бы в общих чертах понимать, чем языки отличаются друг от друга и для каких целей используются.

Разные источники утверждают, что сегодня в мире существует от 1000 до 10 000 языков программирования. Такой разброс связан с тем, что пока нет договоренности, какие языки могут считаться самостоятельными, а какие «диалектами», то есть разновидностями других языков. В любом случае мы не будем рассматривать их все, а остановимся на самых востребованных.

Чтобы условно систематизировать языки программирования, давайте вспомним, что существует бэкенд— и фронтенд-разработка. Бэкенд — это программирование внутренней логики продукта, тогда как фронтенд, наоборот, — создание той части софта, которую видит пользователь.

В зависимости от задач самыми популярными языками для бэкенд-разработки можно назвать Java (читать «джава», но разработчики говорят и «жава», и даже «ява»), C++ («си плюс-плюс» или попросту «плюсы»), С# («си шарп»), Python («питон» или «пайтон»), PHP («пэхэпэ» или даже «пыха») — и это, конечно же, далеко не полный список. Для фронтенда же чаще всего используются JavaScript («джава скрипт»). Но есть исключения, когда JS используется на бэке, а именно платформа node.js.

В мою задачу не входит детально разобрать, какой язык для каких целей лучше подходит, — IT-специалисты могут спорить об этом годами и, как вы можете предположить, далеко не всегда приходят к общему мнению. Я опишу языки программирования для того, чтобы у вас было общее представление о том, что это такое, какие внутренние особенности у них есть и как выстроить диалог с кандидатом, чтобы понять, насколько он вам подходит.

Бэкенд-разработка

Итак, какими языками чаще всего пользуются бэкенд-разработчики? Для начала вспомним, что языки условно разделены на три типа: высокого уровня, среднего и низкого. Высокоуровневые языки созданы с расчетом на то, что их будут понимать люди: например, в некоторых С-подобных языках или на Python команды выглядят как вполне понятные английские фразы. Таким образом, языки высокого уровня более дружественны к программисту — их проще выучить. Тогда как языки среднего и низкого уровня более дружественны машинам, а нам понятны совсем чуть-чуть. Зачем же они нужны?

Среднеуровневые языки служат связующим звеном между аппаратной и программной частью компьютера, а низкоуровневые — это, по сути, инструкции для конкретной архитектуры компьютера, они удовлетворяют нужды «железа». Соответственно, высокоуровневые языки работают, условно говоря, на любом «железе»: в какую бы среду вы ни поместили программу, написанную на языке высокого уровня, она будет работать одинаково. Низкоуровневые же, наоборот, машинозависимы: при переносе с одной архитектуры компьютера на другую код перестает работать.

С («си») и C-подобные языки. По данным TIOBE Index в 2020 году язык C занимал первое место по популярности в мире. В 2022-м же он стоит на 2-й строчке. Его можно назвать родоначальником языков высокого уровня, тогда как сам он является низкоуровневым. Отчасти благодаря ему компьютерные программы перестали быть инструментом ученых, а вышли из университетов к нам, простым пользователям.

Когда появились первые ЭВМ, разработчики писали код не на читабельном языке программирования. До создания языков высокого уровня были перфокарты — картонки с дырочками, позже появился бинарный код — нули и единицы.

По сути, машины и сейчас «понимают» только нули и единицы, но разработчик создает код не в бинарном формате: он пишет конструкции, приближенные к естественной речи, а автоматические компиляторы и интерпретаторы переводят его волеизъявление в машинный код.

Проблема первых программистов была не только в сложности создания бинарного кода, но и в том, что программы были не универсальны. Например, одна и та же игра могла прекрасно работать на одном компьютере, но совершенно не запускаться на ЭВМ с другой архитектурой.

В 1972 году случилось то, что решило обе эти проблемы: американец Деннис Ритчи, работавший в корпорации AT&T, создал язык программирования C. Это был один из первых языков, в котором использовались «человеческие» слова, и при этом программы стало можно переносить с одного компьютера на другой.

Язык С стал основой для высокоуровневых C++, C#, Java, PHP.

Где применяется старый добрый С сейчас? Будучи созданным как язык системного программирования, он по сей день используется в создании операционных систем, драйверов, загрузчиков и утилит. В задачи языка входит написание максимально быстрого и близкого к «железу» кода, поэтому разработчики, работающие на C, должны быть хорошо знакомы с архитектурой ЭВМ.

В С значительно меньше готовых решений, фреймворков и библиотек: многое разработчик делает с нуля. Архаично, но красиво!

Общаясь с разработчиком С, есть смысл спросить его, с каким «железом» он работал. Зачастую они работают с микропроцессорами определенной архитектуры (самые популярные — ARM, AVR). Приходилось ли писать драйвера? Можно спросить, какая операционная система была на устройстве: Linux, или unix-подобные, или какие-то операционные системы реального времени (RTOS).

С++ — язык-наследник, развившийся на базе С, был представлен в 1985 году и развивается по сей день (хотя и не так активно, как Python, Kotlin, Go и др.).

На С++ создают игровые движки, прикладные десктопные программы, драйверы устройств и приложений для встраиваемых систем высокопроизводительных серверов.

Чтобы упростить программирование на C++, существуют специальные библиотеки и фреймворки.

Что сказать о плюсах этого языка? Среди его достоинств — высокая производительность и поддержка самых разных стилей программирования. Однако он настолько сложен, имеет такой объемный синтаксис и множество ответвлений, что даже опытные си-плюс-плюс-разработчики не могут утверждать, что знают этот язык хотя бы на 80 %.

Важно, что эти разработчики могут использовать различные библиотеки (по сути, то же самое, что и фреймворки), которые помогают им писать код. Среди популярных библиотек можно выделить:

● STL — раньше выделялась как отдельная, но сейчас входит в стандарт языка.

● Boost — довольно универсальная библиотека, состоящая из большого количества модулей (можно так и спросить: с чем именно из буста вы работали?).

● Qt — универсальная библиотека, которая раньше применялась для создания

1 ... 13 14 15 16 17 18 19 20 21 ... 50
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. В коментария нецензурная лексика и оскорбления ЗАПРЕЩЕНЫ! Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?