Разумное руководство о том, как добраться до старшего уровня и найти отличное место для работы

Вы выпускник инженера-программиста? Или вы уже несколько лет работаете в области разработки программного обеспечения, но не чувствуете себя в «хорошем месте» и задаетесь вопросом, не делаете ли вы что-то не так?

Ниже я поделюсь 11 нетехническими уроками из моего опыта разработки программного обеспечения, о которых мне хотелось бы, чтобы кто-нибудь рассказал мне, когда я только начинал.

Позвольте мне начать с моего опыта и того, почему чтение этой статьи может принести вам пользу.

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

У меня была своя доля успешных проектов и неудач. Я видел, как проекты, над которыми я работал, появлялись на первых полосах газет, или министры правительства претендовали на признание за успешный запуск, в то время как другие были выброшены и забыты еще до того, как были запущены.

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

1. Начните с того, чего вы хотите в долгосрочной перспективе

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

Рассказ о том, что профессиональная и личная жизнь параллельны и не связаны друг с другом, является ложным. Более того, ваша работа влияет на вашу личность в долгосрочной перспективе.

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

Работа, люди и продвигаемые ценности были для меня пустыми. Я пытался наполнить свою жизнь развлечениями вне работы, чтобы компенсировать это. Но это только подчеркнуло, что я был не в том месте и жил не той жизнью.

Вместо того, чтобы строить свой образ жизни вокруг работы, найдите работу, которая соответствует желаемому образу жизни.

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

2. Планируйте свой следующий карьерный шаг заранее

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

Требуется дополнительная работа, чтобы заранее определить эти возможности и, в идеале, получить соответствующий опыт.

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

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

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

3. Окружающая среда имеет значение; Выбирай с умом

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

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

Если начало вашей карьеры не так гладко, как вам хотелось бы, и вы изо всех сил пытаетесь выполнить поставленные задачи, не спешите делать вывод, что это не для вас. Другая среда может привести к удивительным изменениям.

Я до сих пор хорошо помню начало своего первого рабочего дня в качестве инженера-программиста. Мне дали дату и время, чтобы появиться без какого-либо последующего наблюдения. Я помню, как шел в офис, и в голове крутились вопросы: «У меня действительно есть работа?», «Я не перепутал дату и время?», «Нужно ли мне что-то брать с собой?».

В офисе меня направили к моему месту, где я около часа смотрел на свой компьютер, не зная, что мне делать, пока не появился менеджер. Но и после этого интеграция в компанию осталась в первую очередь за мной, и я не могу сказать, что отлично с ней справился. Я встречал только таких же потерянных коллег, которые бились над одними и теми же вопросами: «Что мы здесь делаем?», «Какова цель компании?», «Везде так?»

Как вы можете догадаться, я пробыл там недолго, как и многие другие.

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

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

4. Опрос компаний

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

Некоторые из предложений, которые я отклонил, или интервью, которые я провалил, оказались положительными событиями, иногда наравне с предложениями, которые я принял. Из-за того, что я отказался от этих интервью или провалил их, я избежал нескольких неудач в своей карьере.

Со временем я выработал некоторые поведенческие модели, чтобы излучать свои ценности, то, какой я человек, и то, что я ищу на новом месте. Я не сторонник конформизма и формальности, поэтому на клишированные вопросы стал отвечать слегка вызывающе. Я также откровенно высказал свои минимальные требования и подчеркнул, что они МИНИМУМ. Любой, кто продолжит собеседование и вернется с предложением ниже, только навредит своей репутации в моих глазах.

И, конечно же, я взял интервью у своих интервьюеров. Моими любимыми вопросами были:
1. Что запрещено в вашей компании?
2. Опишите типичный день инженера-программиста (должность, на которую проводится собеседование) в вашей компании и, если это уместно, следуют: Опишите ваш обычный день в офисе (обычно адресован руководителю группы или менеджеру).

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

Некоторым компаниям это нравилось, некоторым это нравилось, а другим нет, что было естественной фильтрацией. Мне не нужны были предложения ни от какой компании — я хотел предложения от тех компаний, которые мне подходили.

Не бойтесь задавать вопросы и пояснять, что вы ищете на новом месте. Выражая свои ценности, вы также сопоставляете их с ценностями компании. Если они примут это, высоки шансы, что вы будете работать с единомышленниками в дружеской обстановке и получать удовольствие от процесса.

Гораздо лучше получить отказ на собеседовании, чем оказаться в среде, которая вам не нравится.

5. Постоянно улучшайте свои навыки межкультурного общения

Способность понимать, быть понятым и вовлекать других в конструктивные обсуждения для поиска наилучшего решения имеет решающее значение для достижения выдающихся результатов.

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

Я видел, как лондонская компания однажды заменила свою консалтинговую фирму по программному обеспечению из Китая другой компанией из Ирландии, сославшись на единственную причину: культурные предпочтения. Различия в общении и работе с китайцами были настолько значительными, что они изо всех сил пытались выполнить свою работу и в итоге наняли компанию с похожей культурой.

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

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

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

6. Поймите коммерческую ценность вашей задачи

Вам когда-нибудь давали задачу или проблему, которую нужно решить, и вы начинали задаваться вопросом, как вы могли бы решить ее, даже не взглянув на все требования?

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

Однажды в качестве консультанта я присоединился к команде в конце этапа разработки важного проекта. Они работали над этим пару лет и имели хорошо налаженные процессы и гибкие практики. Они использовали PR, автоматические тесты, сканеры кода и специальные тестировщики для обеспечения качества. Требования были тщательно определены преданными своему делу бизнес- и системными аналитиками.

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

Непосредственно перед этим я успешно руководил реализацией жизненно важного проекта, который прошел совсем по-другому. Все было не так, ни определенной методологии, ни проверки качества кода, ни даже требований! Вот мой разговор с моим менеджером в самом начале проекта:

Менеджер: Проект масштабный, и у нас есть год, чтобы его реализовать. Нам пора начинать.
Я: Ага. Просто дайте мне требования.
Менеджер: Их нет. Это еще предстоит согласовать политикам в Брюсселе.
Я: Но проект большой. Нам нужно начать как можно скорее, чтобы иметь шанс закончить вовремя.
Менеджер: Да! Поэтому я и говорю, что нужно начинать сейчас!
Я: А с чего же начинать, если требований нет?!
Менеджер: Ну, давайте что-нибудь придумаем!
Я: O_O
Менеджер: Есть унаследованный проект. Требования к новому проекту будут другими, но не совсем. Таким образом, мы можем начать с переноса функций устаревшего проекта и корректировать их по мере появления фактических требований.

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

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

7. Продолжайте общаться

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

Лучшие вакансии не рекламируются; они заполняются рефералами. Мы все это слышали, и большинство из нас игнорирует это. Но, возможно, мы не должны.

Компания, в которой я работал, отличалась лучшей атмосферой, за два года моей работы в ней выросло с 20+ до 50+ сотрудников. В то время очень мало вакансий публично рекламировалось. Им не нужно было быть. Как только вакансия была разослана по электронной почте, все рекомендовали бывшим коллегам, друзьям и даже родственникам, если они соответствовали требованиям.

Нетворкинг может быть очень разнообразным, и способ его проведения зависит от личности, поэтому я не буду советовать, как это сделать. Но не забудьте связаться с людьми за пределами вашей рабочей сети и отрасли. Общение только с теми, кто имеет аналогичный опыт, значительно ограничивает преимущества нетворкинга.

Кроме того, делайте это регулярно. Случайно обращаться к кому-то, с кем вы не общались годами, только когда ищете новую работу, не просто неловко, это может быть просто грубо.

8. Не доверяйте рекрутерам от третьих лиц

Если вы будете следовать пунктам 2 и 7 выше, вам не нужно будет взаимодействовать с рекрутерами. Но если, как и многие другие, вы оставляете это на волю случая, вам нужно понимать, что если для вас смена работы — это событие, которое изменит жизнь, то для них это просто очередная продажа. Если вы не нашли подходящую компанию для себя, вы действительно думаете, что кто-то другой сделает это за вас?!

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

  1. Обычный сценарий: во время первого звонка рекрутеры часто спрашивали, что я ищу на новом месте. Позже они притворялись, что нашли подходящую работу. На самом деле они использовали бы мои критерии для описания существующих вакансий, пытаясь убедить меня продолжить работу с ними.
  2. Необычный трюк: однажды рекрутер прислал мне требования вместе с названиями компаний. У первой компании была неплохая репутация, и, поскольку требования были очень похожи, я предположил, что вторая компания, о которой я ничего не слышал, почти так же хороша. Поэтому, когда первая компания не ответила мне на вопрос об интервью, я согласился на собеседование во второй компании.
    Позже я узнал, что у первой компании был эксклюзивный договор с другим кадровым агентством. Никакие другие рекрутеры не могли нанять на эту должность. Рекрутер просто использовал его, чтобы заманить меня на собеседование во вторую компанию.
  3. Задание с небольшим шансом: однажды, после неудачного технического собеседования, я получил звонок от рекрутера, которого я пропустил в следующий раунд. Это было странно, учитывая, что с момента интервью прошло около двух недель. Рекрутер заверил меня, что компания что-то напутала, и поэтому я не получил ответа раньше. Следующий тур был заданием. По словам рекрутера, было важно произвести впечатление на компанию, даже сразить их моим решением, которое он повторил пару раз. Это должно было вызвать у меня подозрения, но я был наивен и очень хотел наверстать упущенное. Я согласился и потратил на это все выходные. После отправки задания я так и не получил ответа ни от рекрутера, ни от компании.

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

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

Я не искал работу уже много лет, но если бы я искал ее, у меня были бы свои особые требования, и никто, кроме меня, не стал бы их отстаивать.

Вы тоже можете это сделать.Рекрутеры на удивление нетерпимы к таким требованиям, как «Я хочу работать четыре дня в неделю, из дома, с гибким графиком», «Я хочу удвоить свою текущую зарплату, не удваивая объем работы». » или «Я хочу работать с этой компанией. Можешь устроить мне там интервью?

9. Получите несколько предложений

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

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

Например, если сотрудник приносит компании один миллион дохода в год, считаете ли вы, что зарплата этого сотрудника в 500 тысяч оправдана? Нет, если компания сможет найти кого-то, кто сделает это за меньшие деньги.

Вот почему во многих случаях блестящая работа оказывает минимальное влияние на вознаграждение, и только когда сотрудник уходит, руководитель готов к переговорам.

То же самое касается интервью. Они используются для уточнения вашего уровня знаний, но не вашей рыночной стоимости. Запросы специалистов одного уровня определяют рыночную стоимость.

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

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

Рекрутеры или работодатели могут представить вам массу аргументов о том, почему они не могут работать лучше, чем их текущее предложение, и я уверен, что у вас есть еще масса аргументов, почему они должны. Это просто слова против слов. Так что прервите его и скажите: «Компания X предложила мне сумму Y с преимуществами Z. Вы можете победить это?» И да, убедитесь, что у вас есть это предложение.

В текущих условиях представитель компании может определить сроки найма с самого начала. И это обычно очень похоже, например. в Ирландии это около одного месяца. Поэтому, если вы начнете процесс собеседования в течение одной недели с несколькими компаниями, высока вероятность того, что вы получите предложения примерно в одно и то же время. Не торопитесь, чтобы рассмотреть их и договориться.

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

10. Всегда договаривайтесь о вознаграждении!

Ваша переговорная сила значительно снижается без второго предложения, но это не значит, что ваши варианты ответов ограничены да/нет.

Переговоры в этом случае вряд ли окажут существенное влияние на ваше вознаграждение. Тем не менее, это может многое рассказать о компании и о том, насколько вы ценны.

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

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

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

Иногда даже небольшие компании ведут себя на удивление жестко и не обсуждают предложение. Как вы представляете себе работу в такой компании? Вы хотите там работать? Другие, даже крупные корпорации, на удивление открыты для переговоров или организации встречи с вашим потенциальным менеджером для решения ваших проблем.

Если вы не планируете работать тихо и не озвучивать свои опасения или требования, вам лучше начать общение с работодателем, прежде чем принять предложение.

11. Будь инженером

Это может показаться странным, но я не мог оставить это без внимания. Спрос на разработку программного обеспечения побуждает все больше и больше людей выбирать эту карьеру. К сожалению, число тех, кто становится инженером-программистом только из-за высоких зарплат, с каждым годом становится все больше. И в этом нет ничего плохого. Плохо быть инженером без желания решать проблемы.

За свою карьеру я встречал довольно много инженеров-программистов, которые были бы счастливы заниматься чем угодно, только не программированием. Им не терпелось «перейти» к чему-то смежному с разработкой программного обеспечения, не требующему написания кода. Например, системный аналитик, скрам-мастер, владелец продукта и, в идеале, МЕНЕДЖЕР! А до тех пор они избегали фактического кодирования половинчатыми решениями и очень мало интересовались техническим развитием.

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

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

Я помню один яркий пример. Однажды «знающий эксперт» о том, что наша команда, к несчастью, ушла в отпуск ровно на время одного спринта. Предполагаемый результат для этого спринта был на 15–20% ниже, так как мы упустили одного разработчика. Но фактическая производительность была в 2,5 (250 %) раза больше, чем обычно.

Если вы заметили, что вам не нравится разработка программного обеспечения, просто переключитесь на что-то другое как можно скорее. Это будет победа для всех.

Если вы обнаружите, что работаете с такими людьми, не стесняйтесь говорить «технически» и оспаривать предлагаемые ими решения или результаты. Вам могут понадобиться приличные коммуникативные навыки, чтобы избежать конфликтов, но это может избавить вашу команду от разочарований в долгосрочной перспективе.

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

Вот и все. Это самые важные уроки, которыми я хотел бы поделиться из того, что сейчас кажется другой жизнью. Я не искал работу и не проходил собеседования с тех пор, как сел и тщательно обдумал, где я хочу быть в долгосрочной перспективе (урок 1).

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

Спасибо за прочтение и удачи в разработке программного обеспечения! Если есть еще какие-то советы, которые, по вашему мнению, должны знать инженеры-программисты, поделитесь ими в комментариях.