Как говорит статистика, один твой друг – айтишник. А может, и не один. Так или иначе, каждый из нас видел IT-мемы или слышал разговоры друзей-программистов, но не все понимали, где смеяться.
Для тех, кто хочет научиться понимать язык айтишников и разделять с ними увлекательное пространство шуток, мы подготовили эту статью.
В познании IT вы не преисполнитесь, но сможете чувствовать себя чуть более причастными.
1. Языки программирования (ЯП) и «вражда» между ними
Перед любым начинающим айтишником стоит выбор из множества языков программирования; JavaScript, Python, C++ – среди популярнейших. У каждого языка свой синтаксис – набор правил для построения кода – и каждый подходит для решения разных задач.
Нет плохих языков: есть люди, которые используют их не по назначению или просто неправильно (что однако не мешает мемам о ЯП плодиться).
2. «Hello, world!»
Обычно на первом уроке программирования новичок обучается написанию кода, который выводит на экране заданный текст. Именно фраза «Hello, world!» обычно используется в учебниках и курсах по программированию. Разные тестовые фразы использовались и раньше, но культовая «Hello, world!» появилась в книге «Язык программирования Си» в 1978 году и стала классикой.
Она даже послужила вдохновением для целой песни – вполне годной, чтобы пополнить ваш плейлист.
3. Фронтэнд и бэкэнд
Чем бы вы ни пользовались – сайтом, приложением, какой-либо программой – у нее есть две стороны.
Фронтенд – это лицевая часть кода, которую видит пользователь и с которой он взаимодействует (кнопки и картинки на сайте, всевозможный интерфейс). Бэкенд – «внутренняя» сторона кода, которая программирует логику и функционал сайта/приложения/программы. Ее пользователь не видит.
Проблема в том, что сайт может быть очень красивым и презентабельным снаружи, но при этом бэкенд у него прописан стремно – ведь «юзер же не увидит». Чем плох неудобный фронтенд, мы, как пользователи, можем представить (вспомните дизайн компьютерной версии фейсбука).
Недобросовестный бэкенд тоже таит подвохи. Может плохо работать сайт и его функционал (как говорят в народе – «через жопу»). Например, проблемы со входом на сайт, загрузкой файлов и прочей работой функций.
4. Код и еще раз код
Много IT-мемов связано с проблемами с кодом.
Если в код проникает баг (англ. bug – жук), то он будет работать с ошибками или вообще не запустится. Некоторые строки с ошибками в синтаксисе (типа упущенной запятой) программа указывает, но искать и фиксить баги в целом долго и нервно.
Часто бывает, что починив один баг, ты вскрываешь еще десяток новых – и это боль.
Часть багов вскрывается на этапе компиляции. Вкратце, компиляция – это перевод кода с любого языка программирования на машинный язык с целью выполнить какую-либо операцию – будь то создание калькулятора или соцсети. Часто говорят просто «закомпилить» или «заранить код» (т.е. запустить).
А еще бывает, что код не сохраняется, поэтому предусмотрительные айтишники постоянно жмут CTRL + S (сохранить).
5. «А вы это разве не умеете?»
Заказчики, которые плохо шарят в программировании, могут путать языки. Java и JavaScript – разные вещи, хоть и звучат похоже.
Есть стандартный прикол в духе «тыжпрограммист»: если ты айтишник, то ты можешь и компьютер починить, и сайт задизайнить, и приложение разработать. Хотя человек может заниматься, например, big data аналитикой, а не чем-то еще.
6. Туториалы от индусов на ютубе
Никто эти видео не любит из-за специфичного акцента и, как правило, низкого качества видеомонтажа. Но многие смотрят, когда нет другого выхода.
Надо сказать, даже рядовой обыватель знает стереотипный образ индуса-айтишника.
Почему в Индии так много программистов?
Дело в щедрой государственной поддержке IT-индустрии: еще в начале 70-х (!) в стране приняли программу, по которой занятые в IT национальные компании получали очень выгодные условия – налоговые, кредитные и прочие льготы.
В 80-х страна уже активно работала на аутсорс, многие индусы иммигрировали в США. Государство стало рассматривать IT-индустрию как главный ресурс развития экономики и создало классные условия для инвесторов, заказчиков, – ну и для самих индусов, желавших заняться программированием.
Поэтому сейчас у программистов Индии большой опыт и знания. А еще элементарно там живет много людей – уж побольше, чем в странах СНГ или США.
7. Документация, которую никто не читает
Документация – это описание того, как нужно работать с языком программирования или с каким-то инструментом.
В целом она составляется, чтобы помогать пользователям, заказчикам или другим разработчикам ориентироваться в коде (или приложении). Документация важна, чтобы каждый участник команды – даже тот, который пришел спустя год с начала разработки – мог понять, что происходило на каждом этапе, что означает тот или иной функционал и как с ним работать.
Также лучше оставлять комменты к функциям кода, чтобы было ясно, как они работают.
Документацию желательно изучать, иначе это как собирать шкаф без инструкции – можно потерять время и получить плохой результат. Но, как и с инструкцией, далеко не все ее читают.
8. Костыль и велосипед
Костыль в программировании – это временное, но не очень элегантное решение. Часто программист пишет костыль, но потом уже не хочет его менять, так как он действует. Это считается плохой практикой, так как работать с таким кодом потом очень тяжело: непонятно, для чего он и что с ним делать.
Велосипед – это когда программист пишет какое-то решение, которое уже существует (отсылка к фразе «изобрести велосипед»). Как правило, из-за нежелания вникать в документацию. Опять же, не рекомендуется так делать по той же причине.
В песне «Костыль и велосипед» группы «Научно-технический рэп» авторы представляют, как программисты строили бы дом. В их сюжете они вместо того, чтобы заморочиться и построить нормальную крышу, просто кладут картон в два слоя. Примерно так и выглядит костыль.
9. ТЗ = тупые заказчики
Кажется, во многих профессиях есть мемы про заказчиков. Появление мемов про ТЗ (техническое задание) – это реакция на горький опыт айтишников: многие не требуют от заказчика ТЗ и предоплату, особенно в начале карьеры.
ТЗ – это документ, в котором четко прописано, какой продукт хочет получить заказчик, его назначение, характеристики, требования. ТЗ нужно, чтобы можно было объективно сказать, выполнен заказ или нет, и понять, кто прав, а кто виноват (если будут споры). Без ТЗ часто неясно, что именно хочет заказчик, поэтому и результаты печальные – вплоть до конфликта и закрытия проекта.
Заказчики часто не хотят составлять ТЗ, потому что лень, а еще чтобы можно было менять требования и не оказываться виноватой стороной в спорах. Одним словом, чтобы эксплуатировать программиста.
10. Stack Overflow как спасение
Это сайт-форум с огромной базой вопросов и ответов по программированию – Ответы.mail.ru на максималках. Сайт очень популярен, потому что это коллективная энциклопедия программистов мира. К тому же, в IT-сообществе многие готовы с энтузиазмом ответить на вопросы, поэтому программисты самого разного уровня прибегают к нему.
В чем профит опытному программисту тратить время на решение задач рандомного коллеги по цеху? Как минимум, это помогает на практике понимать современные требования заказчиков – да и сам Stack Overflow позволяет более отзывчивым программистам задавать больше вопросов на сайте.
11. GitHub
Это эдакая соцсеть для разработчиков, которая позволяет хранить и делиться своими IT-проектами, а также создавать новые проекты вместе с другими пользователями сайта. Гитхаб кишит всевозможным кодом, поэтому там часто можно найти код для какой-то задачи.
Если разработчику пришла идея крутого решения или стартапа, есть вероятность, что его код уже был написан на Гитхабе.
А еще работодатели нередко смотрят на аккаунт потенциального сотрудника на Гитхабе, чтобы понять его или ее способности.
12. Сеньор программист и джун
У айтишников тоже есть своя иерархия по опыту: джуниор, миддл и сеньор-разработчики (Senior Developer).
Оканчивая универ или курсы по программированию, человек получает статус джуниора, или даже претендента на джуниора – в разных компаниях свои критерии.
Из миддлов уже получаются тим-лидеры, их можно ставить во главу целой команды разработки.
Для статуса сеньора нужно иметь солидный опыт – от пяти лет и выше. Конечно, и оплата повышается с каждым уровнем, поэтому многие программисты стремятся достичь левела сеньора – в крупных компаниях в Казахстане зарплата может близиться к миллиону тенге.
Мем в том, что слово «сеньор» прочно ассоциируется с испано- и португалоязычными странами (там оно переводится как «господин»). А еще сеньору приписываются огромная мощь и разум по сравнению с неопытным джуном.
13. «А ты уже скачал Линукс?»
Это операционная система – конкурент Windows, но с большой разницей: код программ Linux и процесс его разработки открыты всем, благодаря чему любой программист может проверить его на ошибки, уязвимости перед взломом, и предложить свои патчи (обновления).
Айтишники ценят Линукс за стабильность, удобство для разработки программ, а еще за возможность скачивать разные проги бесплатно и без вирусов.
Линукс используется на большинстве серверов, поэтому почти всем айтишникам необходимо научиться с ним работать – даже если они предпочитают винду или Mac OS на рабочем компьютере.
14. «Добавлю-ка фичу...»
Фича (англ. feature – особенность) – какая-то дополнительная возможность, фишка продукта – например, темная тема или функция сторис. Часто разработчикам хочется добавить чего-то эдакого (либо об этом просит клиент) – им кажется, что это модно или понравится какой-то части юзеров.
Однако «фичастость» – изобилие ненужными фичами – признак дурного тона. Даже небольшое дополнение может нести сложности в коде и перегружать восприятие продукта юзером. К тому же, любые фичи в дальнейшем нужно поддерживать, проверять баги, модифицировать, а это все стоит времени и денег.
15. Мемы о тестировщиках
Перед выпуском любого продукта в свет необходимо тестирование, и тут в дело вступает тестировщик – специалист, который тестит созданные девелоперами программы, ищет сбои и моделирует разные ситуации, возможные при пользовании продуктом. Он мыслит и как юзер, и как эксперт.
В идеале тестировщик участвует на каждом этапе разработки. Но в реальном мире разработчики часто пишут код до конца, не делая тестов, и в итоге в громоздком коде гораздо тяжелее искать причину ошибок.
На этом все. Теперь можно деловито кивать во время очередных разговоров про IT и может даже генерить свои шутки (без фанатизма, конечно). А за помощь и инсайды в IT-мемы отдельное спасибо @daniyar.aki, @elina.jpeg и @nehvatilofantazii.