Это сводится к сложности.

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

Реальные проекты имеют зависимости

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

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

В больших кодовых базах сложно ориентироваться

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

Рабочие отношения могут быть сложными

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

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

Не парься

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