Любой человек не из мира IT, который первый раз сталкивается с программистом, Data Scientist-ом или любым другим айтишником, пребывает немного в шоке. И в шоке он зачастую пребывает не потому что поражен блестящими знаниями и профессионализмом, а потому что просто ничего не понял из речи своего собеседника.
Будем честны: любой специалист так или иначе любит сыпать терминологией, профессиональным сленгом и другими словечками, которые якобы возносят его на вершину Олимпа в глазах друзей и родственников. А уж IT индустрия и подавно богата всякими неочевидными фразами и терминами – эти ребята любят придумать что-нибудь эдакое. В этой статье мы с Вами обсудим 9 терминов, которые точно должен знать любой человек, чтобы более-менее комфортно говорить с IT-специалистами. А уж для новичка в этой сфере это просто must have!
Итак, начинаем.
1. Переменная
Переменную можно понимать, как некоторый контейнер, в котором храниться какая-то информация, например, числа, строки, массивы или что-то еще. В качестве контейнера выступает некоторая ячейка памяти Вашего компьютера, и эту ячейку Вы можете заполнить чем угодно.
Представьте себе такой пример: пусть Ваш мозг – компьютер. Весь Вам мозг состоит из большого количества ячеек памяти. Теперь у Вас произошло радостное событие – у Вас родился ребенок. Вы задействуете 3 ячейки памяти, чтобы записать важную информацию о нем: имя, дату рождения и возраст. Ячейки с именем и датой рождения останутся в памяти навсегда, они будут неизменными. А вот ячейка с возрастом будет ежегодно перезаписываться: количество лет будет увеличиваться на единичку, как только у ребенка наступает день его рождения.
Вот так и с переменной – мы один раз ее создаем в какой-то ячейке памяти, записываем в нее некоторую информацию, а дальше можем ее перезаписывать или модифицировать.
2. Компилятор и интерпретатор
На этом моменте даже некоторые люди из IT индустрии задумчиво почешут голову: «А в чем же разница?…» Отвечаем.
Представим себе ситуацию – Вы написали код на некотором языке программирования (например, на Java), и Вам необходимо его выполнить. И как это сделать, с помощью компилятора или интерпретатора? Ответ: идеологически оба варианта подходят, а на практике нужно смотреть с каким языком и как Вы работаете.
Почему же идеологически подходят оба варианта?
Потому что компилятор – программа, которая выполняет компиляцию. Что происходит во время процесса компиляции? Компилятор берет Вашу программу, написанную на языке высокого уровня (например, опять же, Java) и полностью переводит на низкоуровневый язык, близкий к машинному коду (язык, на котором «разговаривает» компьютер), не запуская при этом сам код. И вот уже после этого компьютерный процессор выполнит набор инструкций, которые получились в результате компиляции.
Интерпретатор действует схожим образом, но немного по другой логике. Интерпретатор берет Ваш код и построчно его анализирует, переводит в машинный код и сразу же выполняет. Если где-то по пути возникла ошибка, то интерпретация прервется.
Думаю, основная разница более-менее стала ясна:
- Компилятор транслирует (т.е. переводит) Ваш код в машинный целиком, интерпретатор – построчно.
- Компилятор транслирует Ваш код в машинный без выполнения и только потом запускает, а интерпретатор запускает построчно.
3. Итерация
Многие, возможно, активно используют этот термин и в повседневной жизни. Если еще не используете – кратко опишем, в чем его смысл.
В программировании (как и в жизни) многие вещи необходимо выполнить многократно, прежде чем получить ожидаемый результат. Простой пример: если Вы наберете на калькуляторе число 5 и будете умножать его каждый раз на 2, то Вам придется много раз нажать на одни и те же кнопки, чтобы получить число более тысячи. Это цикл. Вы зациклили: пока не получите число большее тысячи, продолжаете умножать на 2. А каждый виток этого цикла называется итерацией.
На первой итерации Вы получите 10, на второй 20, на третьей 40 и так далее. Алгоритмы, которые достигают цели в результате работы некоторого цикла, называют итеративными.
4. Метод
Все знают слово «Метод» – это синоним слова «Способ». В программировании не все так очевидно.
В IT мире «Метод» синоним термина «Функция». А функция, в свою очередь, – именованный блок кода, который выполняет заданные действия.
Приведу пример: допустим, каждый месяц Вам необходимо делать расчет зарплаты сотрудников, которая зависит только от количества отработанных часов и от должности. Сам расчет для всех одинаковый, но довольно трудоемкий – Вы часами сидите с калькулятором, чтобы рассчитать зарплату всем своим коллегам.
Почему бы тогда для упрощения жизни самому себе однажды не запрограммировать алгоритм расчета зарплаты и не обернуть его в функцию? Подумайте сами, как хорошо, Вы создаете функцию zarplata(), в которую в качестве аргументов передаете должность и количество часов, а она Вам на выходе дает рассчитанную суму зарплаты за считанные секунды! Написал zarplata(‘Директор’, 150), получил одну цифру. Написал zarplata(‘Кассир’, 200), получил другую цифру. Прелесть, не иначе.
5. IDE
IDE (или, как иногда говорят, «идея») – интегрированная среда разработки. Это то, с чем каждый программист или Data Scientist работает каждый день – там они пишут код, там они его правят, редактируют и проверяют.
Простыми словами, IDE – это программа, в которой есть редактор кода, а также дополнительные средства для разработки (отладчик, автозаполнение кода, тестирования и так далее).
Самой популярной, наверно, IDE является Visual Studio – о ней слышали даже люди, не работающие с кодом вообще. Этакий фотошоп IT индустрии.
6. Ребут
Выражение «ребут» или reboot можно услышать от многих людей, которые активно работают с компьютером. Слышали когда-нибудь просьбу «ребутнуть свой комп»? Или негодование по поводу того, что «комп долго ребутится»?
Так вот, reboot – просто перезагрузка. Если Вас просят «ребутнуться», то Вам просто нужно перезагрузить компьютер 🙂
7. Деплой
Деплой или deploy – еще одно интересное англоязычное словечко, которое Вы, возможно, слышали от настоящих программистов.
Когда Вы пишите какой-то код, скорее всего, он будет работать в рамках какой-то системы. Например, если Вы пишите приложение, которым будут пользоваться все сотрудники Вашей компании, то его «главная» или «серверная» часть будет храниться и работать где-то на сервере. Так вот процесс «разворачивания» и запуска Вашей программы на сервере и называется деплоем. Т.е. «задеплоить» значит «загрузить и развернуть на сервере рабочую версию».
8. Agile
Термин Agile напрямую к программированию отношения не имеет, но тесно интегрирован в IT индустрию. Agile – семейство гибких методологий разработки, которые направлены на повышения эффективности, производительности и уровня мотивации команд разработчиков.
Действительно ли это так, разбираемся в нашей статье про Agile.
Традиционно считается, что Agile символизирует умение быстро адаптироваться и принимать решения. Попробуйте внедрить это на себе, расскажете потом, получилось ли 🙂
Два самых известных фреймворка Agile: Kanban и Scrum.
9. DevOps
DevOps или Development Operation – еще один интересный термин из мира IT. Напрямую с разработкой это тоже не связано, но если Вы зайдете на сайт поиска работы и наберете DevOps, Вы будете приятно удивлены количеством вакансий и уровнем зарплат.
Что же это за навык такой (и навык ли вообще), что на него такой спрос?
DevOps – это еще одна методика, призванная повысить эффективность команд разработчиков. Но, в отличие от Agile, она решает абсолютно другие проблемы. В продакшн попадает некачественный код? Из-за этого тормозится процесс эксплуатации и горят сроки по проектам? На выходе из-за путаницы в правках получается некачественный и неструктурированный продукт? Ребята DevOps-инженеры призваны решать такие задачи. Они контролируют сборку, следят за деплоем, тестами и автоматизацией. Они берут рабочий материал и приводят его в идеальный вид. Таким образом разработчики качественно работают и знают свой маневр, а в эксплуатации не возникает проблем, т.к. в работу поступает только качественный код.
Заключение
Мы с Вами рассмотрели всего 9 терминов, которые Вам пригодятся в общении с айтишниками. Естественно, на практике их может встретиться много больше. Однако, чтобы овладеть ими в полной мере, нужно выучить хотя бы один язык программирования; понять, как писать и запускать код; какие ошибки вываливаются при выполнении и так далее. Все это можно освоить на наших курсах «Data Science Academy» и «Бизнес-Аналитик», где Вы разберетесь с языками R, Python и SQL.
Автор: Алексанян Андрон, эксперт SF Education