Что означает у программистов
Понимаем сленг программистов: мини-словарь для начинающих разработчиков
Начинающие разработчики не сразу понимают старших товарищей. Фразы вроде «я апишку свитчнул» или «заимпорти другую либу» звучат для новичков как лекция по математическому анализу для первобытного человека. Поэтому мы решили сделать небольшой словарь профессионального сленга программистов.
Слова и фразы в словаре отсортированы по алфавиту. Кстати, словарь можно дополнять. Пиши в комментариях термины, с которыми вы сталкивались на работе.
Аджайл — от англ. Agile. Общий термин, описывает ценности и принципы гибкой разработки программного обеспечения, а также практические подходы к разработке. Понятие Agile стало популярным после публикации Манифеста гибкой разработки программного обеспечения в 2001 году.
Айдишник — id, идентификатор.
Альфа — этап разработки программного обеспечения, на котором разработчики добавляют в программу новые функции, а тестировщики испытывают программу. Это внутренний или непубличный этап.
Апишка — API, программный интерфейс приложения или интерфейс прикладного программирования.
Аутсорс — аутсорсинг, передача компанией части операционной деятельности другой компании.
Адаптив — адаптивный дизайн, адаптация интерфейса к использованию на разных экранах.
Баг — от англ. Bug — жучок, клоп. Ошибка в программе.
Бахнуть — что-то быстро сделать, изменить или дополнить функциональность приложения.
Бета — бета-версия, приложение на стадии публичного тестирования.
Бот — сокращение от «робот». Ботом называют программу, которая автоматизирует интерфейс. Пример — автоответчик в чате.
Бэкенд — от англ. Back-end. Программно-аппаратная или серверная часть приложения.
Бэкап, бэкапить — резервная копия или процесс создания резервной копии приложения.
Ворнинг — от англ. Warning — предупреждение. Предупреждающее сообщение в интерфейсе.
Войтивайти — шуточное, обозначает процесс переквалификации далёкого от сферы IT специалиста в разработчика.
Выкатить — сделать доступным для пользователей. Например, «выкатили новую версию сайта» значит сделали новую версию сайта доступной для пользователей.
Выпадашка — выпадающее меню, то же, что и «дропдаун».
Галера — компания, в которой платят низкие зарплаты и не ценят разработчиков.
Гит — система контроля версий Git или сервис GitHub.
Г****окод — плохой, некачественный код. Объяснение термина есть в статье нашего студента.
Градиент — плавный переход из одного цвета в другой.
Движок — в веб-разработке так называют системы управления контентом.
Дебажить — устранять ошибки, баги.
Деплой, деплоить — развёртывание, публикация рабочей версии приложения. Пример: задеплоить сайт — перенести сайт с тестового на рабочий сервер, сделать его доступным для пользователей.
Джун, джуниор — от англ. Junior. Младший разработчик. Специалист без опыта или с минимальным опытом работы.
Дезигнер — презрительно-снисходительное название дизайнера.
Драй — от англ DRY, don’t repeat yourself. Принцип программирования, предлагающий избегать повторений кода.
Дропдаун — выпадающее меню, то же, что и «выпадашка».
Жаба — язык программирования Java.
Жабаскрипт — язык программирования JavaScript.
Залить — загрузить. Например, «залить файлы на сервер».
Запилить — сделать что-то, добавить какую-то функциональность.
Змея — язык программирования Python.
Исходник — файлы, в которых находится исходный код приложения, или сам исходный код.
Итерация — повторение. «Мы сделали несколько итераций» — мы повторили шаг несколько раз.
Коммит, коммитить — от англ. To commit — совершать. В контексте работы над приложением — сохранять код в репозитории.
Костыль — код, который нужен, чтобы исправить несовершенство ранее написанного кода.
Это интересно На Хекслете есть раздел с бесплатными курсами. Здесь есть курсы по логике, английскому языку, операционным системам, по языкам и инструментам программирования. Регистрируйтесь и учитесь бесплатно!
Либа — от англ. Library — библиотека. Речь идет о библиотеках кода, например, React.
Линтер — общее нарицательное название программ, которые анализируют код и предупреждают разработчика об ошибках.
Лист — от англ. List — список.
Локалка — локальный. Например, локальный сервер или сеть.
Мидл — от англ. Middle — средний. Уровень разработчика, следующий за джуниором. Опыт и уровень знаний миддла позволяет ему самостоятельно решать серьезные задачи.
Мёржить — от англ. Merge, сливать. Речь идет об объединении или слиянии веток кода.
Меншить — от англ. Mention — упоминание. Речь идёт об упоминаниях в чатах или соцсетях. «Менши меня, когда будет готово» значит «упомяни меня, когда будет готово».
Навбар — навигационный блок на сайте или в интерфейсе программы.
Накатить — внести изменения, задеплоить новую версию приложения. Противоположное термину «откатить».
Откатить — удалить изменения, вернуть предыдущую версию приложения. Противоположное термину «накатить».
Ось — операционная система.
Падаван — ироничное название стажёра или джуниора.
Пилот — пробная (пилотная) версия продукта.
Питон — язык программирования Python.
Подвал — то же, что и «футер». Элемент структуры страницы, который находится в нижней части и содержит служебную информацию.
Поплыла вёрстка — некорректное отображение страницы в браузере.
Продакшн или продакшен (продакшн-код) — обозначение кода для рабочей версии приложения.
Пушить — использовать команду push, публиковать что-то.
Пэхапэ — язык программирования PHP, то же, что и «пыха».
Пыха — язык программирования PHP, то же, что и «пэхапэ».
Релиз — программное обеспечение на стадии публичного использования. Стабильная версия программы, которая прошла тестирование.
Рекурсия — описание процесса с помощью самого процесса. Например, выражение «рекурсивный вызов функции» описывает ситуацию, в которой функция вызывает сама себя.
Репа — репозиторий, хранилище данных. Например, код программы можно хранить в репозитории на GitHub.
Ридми — файл Readme, в котором содержится информация о программе.
Ругаться, например, линтер ругается — сообщения об ошибках в коде, работе сервиса и так далее.
Сабж — от английского Subject — тема, предмет. «По сабжу» — по теме обсуждения.
Свитчнуть, свичнуть — переключить. От английского switch.
Сетка — модульная сетка, используется для дизайна и вёрстки страниц.
Сеньор, синьор — от англ. Senior — старший разработчик.
Стек — изначально абстрактный тип данных. В разговорной речи используется для обозначения списка технологий, которые использует разработчик или компания. Пример: «Наш стек — HTML/CSS, JavaScript, React».
Софт — от англ. Software — программное обеспечение.
Софт-скилы — от англ. Soft skills — знания и качества специалиста, прямо не связанные с профессиональной деятельностью. Примеры: коммуникабельность, проактивность.
Темплейт — от английского template — шаблон.
Тестировщик — специалист по тестированию программного обеспечения.
Тимлид — от английского Team leader — руководитель команды. Координатор группы программистов.
Убить — удалить что-то. Например, «убить профиль» означает удалить профиль.
Фидбек — от англ. Feedback — обратная связь.
Фича — функция, возможность. От англ. Feature.
Фреймворк — от англ. Framework — каркас. Инструмент разработки, набор типовых шаблонных решений, упрощающих работу программиста. Примеры: Laravel, Bootstrap.
Фронтенд — от англ. Front-end — клиентская часть приложения.
Хатэмээль, хатээмэль — HTML, язык гипертекстовой разметки.
Хардкодить — статически прописывать в коде данные, которые должны вычисляться динамически. Плохая практика, антипаттерн в программировании.
Хацкер, кулхацкер — ироничное название начинающего специалиста, который считает себя опытным программистом. От английского hacker и cool hacker.
Хедер, хэдер — элемент структуры веб-страницы, находится в верхней части и содержит логотип, меню, служебную информацию.
Цэмээс, цээмэс — от англ. CMS — content management system, система управления контентом.
Цээсэс — от англ. CSS — Cascading Style Sheets, каскадные таблицы стилей.
Юзать — от английского to use — использовать.
Ява — язык программирования Java.
Яваскрипт — язык программирования JavaScript.
ЯП — язык программирования.
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Кто такой программист, что он делает и сколько зарабатывает
Здравствуйте, уважаемые читатели!
Как все-таки мало большинство людей знает о программистах. Многие считают, что они занимаются ремонтом техники или хакерством. И далеко не все понимают, что эти специалисты разрабатывают программное обеспечение для компьютеров. Ведь технические устройства говорят на машинном языке, на котором надо писать инструкции для выполнения нужных действий.
В статье я расскажу, кто такой программист и что он делает. К заключению вы будете знать, с чем этот специалист работает, что и как создает, где может работать и для чего вообще нужны программисты.
Кто такой программист
Специалисты по разработке, корректировке программ и алгоритмов для вычислительно-операционной техники, а также специалисты по написанию для них кодов методом математического моделирования, именуются программистами.
Под программами понимаются:
Для работы применяются различные языки программирования. Они могут меняться в зависимости от вида программы, поэтому специалист должен знать как минимум пару языков. Наиболее востребованные – это Python, Java, C++, PHP, C#, Perl.
Должностные обязанности
Профессия программиста является творческой, несмотря на все мифы о том, что создавать программный код – это скучно. Область деятельности специалистов весьма обширна: от компаний по созданию компьютерных игр и промышленных организаций, до ракетостроения и научных институтов.
И вот в чем заключается работа программиста:
Преимущества и недостатки профессии
У этой профессии можно выделить следующие положительные стороны:
Заработная плата
Как я уже писала ранее, зарплата – это один из плюсов работы программистом. Даже новичок в этой сфере, например, в пору студенчества, может получать 30–40 тыс. руб.
Размер дохода во многом зависит от квалификации конкретного человека, его знаний и умений, страны и ее региона, кадровой политики и возможностей организации, на которую трудится программист, а также от специализации работника, о которой я расскажу чуть позже.
Диапазон зарплат очень широк и может быть от 30 000 до 300 000 руб. А особоодаренные специалисты могут получать еще больше.
В целом по России зарплаты находятся на уровне от 40 000 до 200 000 руб.:
Как стать программистом
Стать программистом легче в юные годы. Но при желании эта профессия доступна в любом возрасте. Для обучения существуют различные факультеты в вузах и колледжах, бесплатные и платные онлайн-курсы, а также книги для самообразования.
В университетах и других учебных заведениях весьма значительный конкурс по направлениям, которые связаны с программированием. Поэтому далеко не все работающие программисты имеют диплом. Они заканчивают специальные курсы, читают книги и на практике знакомятся с профессией.
Могу порекомендовать такие книги, как:
В рамках самообучения можно начать создавать сайты для себя, читать новости об IT-сфере, изучать углубленно математику, информатику и английский язык.
Кому подходит должность
Как я писала ранее, возрастных рамок для освоения профессии нет. Не существует и ограничений касательно пола специалиста, хотя и считается, что эта специальность больше подходит мужчинам.
Главный критерий – это наличие интереса к программированию и информационным технологиям.
Кроме этого, должность подойдет человеку, если он обладает следующими личностными характеристиками:
Важно понимать, что программисты – это не скромные парни в очках, спрятавшиеся за компьютером, какими их рисует кино, а специалисты, способные генерировать идеи, выдвигать и воплощать их, умеющие взаимодействовать с коллективом и простыми словами объяснять обычному человеку, что такое программирование.
Онлайн-обучение программированию
Чтобы выучиться на программиста, надо выбрать один из 3 вариантов:
Каждый сам для себя выбирает то, с чего начать учиться программированию. Но одним из самых быстрых и эффективных методов является онлайн-обучение у практикующих специалистов.
Образовательные услуги предлагают платформы Skillbox, Нетология, GeekBrains, SkillFactory, ProductStar. Они имеют различные учебные программы, на основе которых и обучают будущих работников IT-сферы. Самые популярные курсы:
Программирование – не самое простое занятие. Поэтому для обучения потребуется больше года. Но после успешного завершения курсов, каждый сможет с уверенностью работать программистом в отечественных или зарубежных компаниях.
Направления профессии и карьерный рост
Грамотные и постоянно развивающиеся программисты всегда в цене. Они востребованы и имеют все шансы найти работу, соответствующую всем запросам.
Бывает, что организации берут к себе на работу перспективных студентов без опыта. Но чаще, конечно, работодатели ждут опытных специалистов.
У программистов есть возможность работать как на фрилансе, так и на какую-либо компанию, например:
Новички в компании начинают с самой низшей должности. И пока не наработают опыт и не скопят знания, они – junior. Если будут быстро обучаться, проявлять инициативу и хорошо работать, то через года 2-3 смогут перерасти в middle. А уже через лет 5 их ждет последняя ступень программиста – senior.
Четкой границы между ними нет. И нельзя точно сказать, сколько может понадобиться времени, чтобы повысить свой профессиональный статус. Можно лишь назвать примерную разницу между рангами.
Владеет минимум одним языком программирования, знает основы IT-сферы, выполняет типовые задачи. Если у него возникают трудности в работе, то эту проблему сможет быстро решить middle.
Junior не хватает опыта. Например, он не всегда обращает внимание на детали и мелочи, по незнанию загружает программу и замедляет ее, пишет нечитаемый код, лишь бы быстрее сдать работу.
Более осторожен, не допускает большинства ошибок junior, внимательнее и аккуратнее пишет код, который старается делать простым и качественным.
Решает более сложные задачи, требующие длительной работы, свободно и на продвинутом уровне владеет как минимум 2 языками программирования и различными технологиями. Middle способен обосновать и доказать правоту своих решений.
Это уже эксперт в своей деятельности. Он опытен, способен анализировать и предвидеть свои и чужие ошибки, эффективность будущей программы или сложность поставленной задачи.
Senior уверен, что справится с задачей за конкретное время, может быстро найти ошибку и исправить ее. Этому специалисту доверяет команда и знает, что на него можно положиться.
Кроме улучшения своих навыков, программист может уйти в смежные области. Например, заняться дизайном или маркетингом и работать в этом направлении. Опытным программистам доступны такие должности, как архитектор программного обеспечения, менеджер IT-проектов, IT-директор предприятия и т. д.
Разделение программистов на группы есть не только в плане их профессионализма и опыта, но и в зависимости от направления деятельности.
Работники делятся на прикладных, системных и веб-программистов.
Прикладные ответственны за разработку, написание и обслуживание программ и приложений для конкретной задачи. Продуктами их деятельности могут быть игры, офисные и бухгалтерские программы, редакторы‚ мессенджеры, ПО для систем аудио- и видеонаблюдения или систем пожаротушения и т. п. Еще они занимаются переработкой существующих программ под требования и потребности той организации, на которую работают.
Системные программисты – это разработчики операционных систем, интерфейсов различных баз данных, сервисов. Они работают с сетями, обеспечивают функционирование и работу созданных ими систем. Эта специализация программистов считается самой малочисленной.
Веб-программисты создают и продвигают интернет-платформы, разрабатывают контент и пишут программную составляющую для сайтов, настраивают динамические веб-страницы и интерфейсы для работы с базами данных.
При поиске работы часто встречается такое разделение. Работодатели выделяют те языки, которыми предлагают пользоваться специалистам. Например, PHP-программист, Java-программист, программист C++ и т. д.
Могут быть программистами баз данных, frontend-разработчиками, backend-разработчиками, fullstack-разработчиками, техниками-программистами, системными инженерами и т. д. Ежегодно появляются все новые должности, например, набирает силу профессия программиста умного дома.
Можно сделать вывод, что программист – достаточно обширный термин. А областей применения этого специалиста очень много.
Требования при приеме на работу
Умения, знания и навыки – это первое, на что обращают внимание организации, предлагающие работу. В первую очередь специалист должен знать языки программирования. И чем больше, тем лучше.
Также кандидат на должность обязан соответствовать следующим требованиям:
Заключение
Теперь вы многое знаете о деятельности программиста: чем он занимается, сколько зарабатывает, плюсы и минусы работы и какое образование нужно.
Программистом может стать только по-настоящему увлеченный информационными технологиями человек. Ведь IT-сфера постоянно меняется, обновляется и совершенствуется, поэтому надо тратить много времени на то, чтобы вникнуть в новую информацию и технологии.
И тех, кто собирается пройти один онлайн-курс и на этих знаниях строить свою карьеру, ждет большое разочарование.
Успешным программистам нравится сам процесс программирования. Они не боятся ошибаться, чтобы в конце концов достичь совершенства.
Чем же занимаются программисты, и как объяснить это остальным?
Наверное, у каждого программиста возникала ситуация, когда совершенно не знакомые с IT люди просили его объяснить, в чём же состоит суть его профессии. Так уж сложилось, что у большинства людей понятие «программист» ассоциируется либо с замкнутым гиком в очках и свитере, либо с неким гениальным красноглазым подростком-хакером — но при этом никто не знает, чем именно он занимается.
Как рассказать им об этом, не пугая страшными терминами и фрагментами кода?
Под катом я воспроизведу такой рассказ, а также развенчаю несколько мифов о программировании.
— Чем занимаются программисты? Это не так-то просто рассказать… Ответьте мне для начала: как в двух словах можно описать, например, суть профессии хирурга?
— Хирург проводит операции.
— Да, отличное описание! Ну а, скажем, футболиста?
— Играет в футбол!
— Угу, а хирург «занимается хирургией». А если без однокоренных слов?
— Пинает мяч?
— Вот это точно. А что же делает программист, кроме как «разрабатывает программы»?
— …
— Программист пишет код. Исходный код своей программы, составленный на каком-то специальном языке программирования. Точнее говоря, сначала он продумывает структуры своих данных, потом составляет алгоритмы для работы с этими структурами — ну а затем уже представляет это в виде кода.
— Что ещё за «структуры данных»? Разве он не управляет компьютером, не нажимает кнопки?
— Эх.
Миф №1: программист работает с компьютерами
Попробуйте донести до людей, что программисту для написания кода, в общем-то, совсем не нужен компьютер. Он нужен лишь для проверки корректности кода, для его тестирования — но писать сам код и составлять схемы алгоритмов вполне можно и на бумаге (хотя на экране монитора, конечно, это делать удобнее). Разработчик же просто записывает на этой бумаге набор каких-то инструкций, команд или конкретных данных (числа, текст). А кто этот набор исполняет — компьютер, телефон или особо умный робот, не так уж и важно. Программист работает с данными, а не с машинами.
— Ну как, понятно?
— То есть, программист просто сообщает машине, что бы он хотел сделать — а она это исполняет?
— Ну да, примерно.
— Так же, как начальник отдаёт распоряжения подчинённым?
— Вроде того.
— А если машина захочет исполнить это как-то по-другому?
— В смысле?
— Ну, что-то ей не понравится. Или просто исполнять не захочет.
— Так, давайте уясним раз и навсегда, что.
Миф №2: машина умеет думать
Почему-то немалое число людей реально считает, будто компьютер обладает каким-то интеллектом. На самом деле — это просто набор железок, которые думать не умеют. Они умеют лишь хранить числовые данные. Размагничен какой-то участок такой железки — значит, это ноль. Намагничен — единица. Плюс, ещё они могут складывать и вычитать эти единицы, образуя более сложные числа (о двоичной системе счисления лучше не стоит упоминать). Больше компьютер сам ничего делать не умеет, только хранить числа и оперировать ими. Это бездумный болван, который лишь выполняет команды программиста.
— В общем, код любой программы представляет собой набор команд, а компьютер их тупо исполняет.
— То есть, он не понимает сути самих команд? Но как он воспринимает текст, который я ввожу на экране?
— Когда ты крутишь педали на велосипеде — понимает ли он, что ему сейчас нужно поехать вперёд?
— Нет, но ведь едет. Поскольку его цепь преобразует вращение педалей во вращение колёса.
— Именно! Также и компьютер преобразует введённый тобой текст в набор чисел.
— Каким образом?
— У каждого символа текста есть свой числовой код, который знает компьютер. Это называется кодировкой. Например, английская «a» кодируется числом 97, а знак равенства — числом 61.
— Поэтому машина и может понимать текст, который мы ей сообщаем?
— Нет, она «понимает» не смысл. А лишь то, каким образом этот текст хранить, и как к нему обращаться.
— Выходит, сначала мы вводим текст, затем компьютер разбивает его на символы, а каждый символ уже представляет в виде числа?
— Верно. Сложные структуры представляются в виде более простых, которые и «понимает» машина.
Скажите мне, из чего состоит жилой дом?
— Ну… Из этажей.
— А из чего состоят этажи? И так далее.
— Этажи — из стен. А стены — из кирпичей. А кирпичи…
— Вот числа для компьютера — это то же, что и кирпичи для дома. Символы — это стены. Отдельные предложения — этажи. А книги — целые дома! Но у программистов есть преимущество перед строителями.
— Какое?
— Строитель не может строить целыми этажами, он вынужден всегда класть кирпичи. Даже если некий сверхмощный подъёмный кран позволит ему строить готовые этажи, он не сможет строить им целые дома или жилые кварталы. А программист сможет! Раз он уже «обучил» машину понимать конечный текст — то, по сути, он «обучил» подъёмный кран строить готовый дом за одно действие.
— То есть, программист может использовать всё более и более сложные структуры данных?
— Да. Поэтому первая из составляющих его работы — представить понятные человеку данные (текст, изображение, звук) в виде объединения более простых данных, уже понятных компьютеру. Разработчик практически «с нуля» составляет структуру, которая должна полностью описывать понятную человеку вещь — причём таким образом, чтобы эта структура была легко расширяемой и изменяемой (ведь в программу часто приходится вносить какие-то новые возможности).
— Хех! Выходит, что он строит резиновые дома из съёмных панелей!
— Примерно так. Однако, ещё ему придётся не только описать, что же ему нужно построить — но и как всё это построить. То есть, придумать алгоритм. Это вторая из составляющих его работы.
— Программист придумывает алгоритм на каждое действие?
— Именно. Поэтому алгоритмов получается очень много. Но его работу облегчает то, что одни действия могут содержать в себе другие, уже описанные им ранее.
— И здесь ему на помощь приходит язык программирования?
— Не совсем.
Миф №3: язык программирования нужен для составления алгоритмов
Нет, язык — это всего лишь инструмент. Как гитара для музыканта. Само по себе умение играть на гитаре вовсе не гарантирует славы — потому что люди, как правило, восхищаются самой музыкой, а не умением быстро и чётко дёргать струны. С другой стороны, вряд ли кто придёт посмотреть на плохого гитариста, какую бы замечательную композицию он не исполнял. Также и с ЯП: знание его синтаксиса и связанных с ним нюансов очень важно, равно как и умение писать красивый и ясный код. Однако, если человек не умеет составлять алгоритмы и структуры данных — то он не может называться хорошим программистом.
Компьютер не понимает язык программирования напрямую. Как и ранее, он представляет каждую команду языка в виде набора «простейших» команд (сохранить число, обнулить число, прибавить к нему единицу), которые он способен исполнить. «Понимает» язык программист, а машина его лишь исполняет. По сути, любой язык программирования — это набор команд, служащих для общения с нею.
— Правда, многие из нынешних языков программирования уже содержат «в себе» набор заранее составленных алгоритмов, которые разработчик может использовать в качестве готовых. Поэтому язык всё же немного облегчает процесс составления алгоритмов.
— То есть, если один программист составил какой-то алгоритм, то его тут же могут использовать другие?
— Да, и это происходит постоянно. Это одна из причин, почему отрасль IT так быстро развивается. Однако новые алгоритмы приходится составлять самому.
— А составь какой-нибудь прямо сейчас!
— Легко. Классический пример: у вас есть книга, в ней 1000 страниц. Вам нужно открыть в ней, к примеру, 875-ю страницу. Как бы вы стали это делать?
— Ну, просто пробежал от первой до 875-й, только и всего.
— Угу, и придётся тебе глядеть на номер каждой страницы. А представь, если все их уголки слиплись — сколько времени тогда пройдёт? А вот мне достаточно перебрать лишь 3 страницы!
— Как?
— Вначале я выберу страницу, которая находится посередине книги, то есть 500-ю. Потом посмотрю: в какую из образовавшихся половин должна попасть искомая страница?
— Во вторую. А дальше что?
— То же самое. Интервал с 500-й по 1000-ю я снова поделю надвое, открыв центральную страницу. Получится интервал от 750-й страницы до 1000-й, в нём я опять выберу центральную. Какой будет номер?
— 750 плюс 125… Так это же и есть 875!
— Вот видишь. Всего 3 действия! Даже если я буду не совсем точен при выборе центральной страницы, я всё равно найду нужную намного быстрее тебя. Этот алгоритм носит название «дихотомия». Хотя в реальности программисты используют куда более сложные алгоритмы.
— И ты можешь записать его на бумаге?
— Конечно. Где там моя ручка?
— Ну как, алгоритм ясен?
— Хм… Да, и впрямь ясен.
— Сейчас он записан в виде, уже слегка похожем на реальный программный код.
— А в чём отличия?
— В реальном коде все слова будут написаны на английском, а также будет заранее описана структура «книга» (помните, что я раньше рассказывал про структуры данных?). Плюс, для действий «ищем» и «удаляем» тоже будут составлены свои алгоритмы. Но в целом — всё то же самое.
— И ты занимаешься этим изо дня в день?
— В основном.
— И тебе не скучно?
— Ничуть!
Миф №4: программирование — это скучно
Конечно, разработка вполне может наскучить, если заниматься только рутинными и однообразными делами. Например, составлением очень простых алгоритмов, но в большом количестве. Или монотонным поиском ошибок в чужом коде. Но это же касается и любой другой работы — рутина везде убивает творческий процесс. А творчества в программировании немало, написание кода похоже на написание художественной книги. Только, в отличие от большинства писателей, программист сначала сам создаёт свой собственный мир (структуры данных) — а уже потом наполняет его сюжетом (алгоритмами).
Временами это действительно чистое творчество, где разработчик сам устанавливает собственные правила. Несмотря на то, что в мире данных и алгоритмов всё строго и логично, в нём присутствует своя красота. Любой программист может привести десятки примеров очень красивого кода, и ещё больше примеров уродливого. Программисты, как и все люди, тоже ошибаются: если где-то в исходном коде допущена ошибка, то задуманные алгоритмы могут работать неправильно. Поэтому код часто превращается в некий детектив — в котором идёт поиск очередного коварного бага, мешающего исполнению алгоритма, или нарушающего структуру данных…
— В шутку можно сказать, что в итоге получается какой-то детектив в выдуманном мире, выраженный с помощью языка программирования.
— А убийца в этом детективе — дворецкий?
— Ага, нулевой указатель. Бывает так, что весь отдел день-другой ловит особо назойливый баг, и каждый программист из отдела берёт на себя какой-то участок кода. Получается целое расследование, с наказанием виновных и награждением сопричастных…
— Хм, а это и впрямь интересно звучит!
— Вот видишь.
— А, скажем, я могу хоть немного научиться программированию?
— Да, конечно! Я знаю один сайт специально для этого.