Как понять, что стажировка по java плохая, и что с нее стоит уйти?
Устроился на стажировку в enterprise проект, в начале сильно радовался. Из полезного, узнал насколько большие эти ваши энтерпрайз приложения(серьезно, не увидел бы своими глазами, не поверил). Сразу подтянул maven и git Но 3 месяца прошло, а я кодил примерно 1/20 всего времени. А так в основном кидают запросы на выяснение в чем ошибка, с одним стектрейсом, годичной давности. Стараюсь не стесняться задавать вопросы, но ожидание, пока ко мне подойдут и объяснят зачастую довольно долгое, ведь все сильно заняты. В итоге я без дебага и логов с ssh в командной строке "хакаю" базу данных, чтобы понять в какой таблице нужное поле, соответствующее бину. Часто просиживаю часы впустую, лишь бы график отработать, заниматься своими делами не могу, стыдно. Сижу туплю в этот легаси, стараюсь его хоть как-то анализировать. Это при том, что я работаю на полставки и стараюсь совмещеть учебу в вузе.
Меня все время мучает ощущение, что я теряю время. Каждый раз думаю, эти 9 часов могли бы пойти на учебу, или на самообучение(тому же spring). Хотя с другой стороны вижу комментарии типа "у java слишком высокая конкуренция вначале, устраивайся куда попадется". Но это все ради графы "Опыт работы" в резюме? Просто даже если я год в таком темпе отработаю, то что я смогу сказать на следующем интервью"? От меня ведь будут ожидать чего-то большего. Я все свое время остающееся после учебы и работы оставляю на самообучение, но это максимум 2 иногда 3 часа. В итоге java core я постепенно забываю, а энтерпрайз идет очень трудно(потому что учу его час утром перед работой/учебой и час вечером).
Таков вопрос, стоит ли оно того? Может действительно лучше бросить все это, и погрузиться в обучение? Тем более я накопил достаточно денег, чтобы полгода на минимум прожить без стипухи(с таким графиком ее сложно не потерять) и зарплаты в общаге. Так что, вопрос не касается ни денег, ни графы "Опыт работы", ни сложности. Вопрос касается лишь времени. Оно быстро течет, и вопрос в том, в правильном ли направлении?
Я месяц все обдумывал с мыслей "утро вечера мудренее", но уже слишком долго сомневаюсь. Прошу совета, т.к. у меня недостаточно опыта для принятия решения.
Все плохо.
Варианта 2:
- поговорить с работодателем и добиться норм условий (маловероятно), а если не добьётесь смело уходить
- заниматься своими делами на работе и не париться, тем более, задачи то вы выполняете
Второй вариант даст лишь циферку в опыте работы, но найти норм компанию будет намного лучше
Ваш случай типичен для старта в энтерпрайз.
У меня было похоже, первые пол года медленно, скучно и мало работы.
Сейчас нужно вникать в проект и предметную область, потом спросят.
Если проект и команда большие, это Java, и они готовы держать бесполезных трейни - не торопитесь уходить, это возможно отличный шанс подняться.
Самообразование прекрасно, но подобная стажировка выигрывает 100 очков вперед.
У вас неоправданные требования для позиции стажер
Учить вас никто не будет
Вам повезло с тем что проект устоявшийся и вы там на самом деле не нужны - иначе б вас там уже не было
Вам повезло, что на ваши вопросы отвечают
Вам повезло, что к вам подходят
Теперь что вам нужно сделать
0. Проверить три раза, что все таски, что повешены на вас решены/закрыты
Далее в произвольном порядке после разговора с тем к кому вы прикреплены как стажер
1. Подойти к ТЛ и спросить можно ли браться за баги из багтрекера или для вас есть более срочные задачи
1.1 Если дано добро на баги - начните с того, на который указали или самого древнего. Если не понимаете, как пофиксить - будет достаточно подтвердить его существование. Идеально - написать тесты под него
2. Подойти к ближайшему мидлу или лучше джуну и попросить посидеть у него за спиной посмотреть, как он/она пишет код
3. Посмотреть код коммита за которым вы наблюдали, понять и повторить его
4. Когда такое начнет получаться и у вас появится понимание что происходит - напроситься на парное программирование
5. Поговорить с мидлами - что глобального для облегчения их задач вы можете сделать. Нарисовать диаграму, прошерстить тесты и тд и тп
nrgian,
В теории - да
На практике - уровни понятия "просто" сильно различаются
Простота, для программера с большим опытом разработки, не в том, что он будет использовать известные для трейни подходы, а в том, что он не будет переусложнять код и лепить абстракции
Также "простота" сильно гуляет в зависимости от ЯП и проекта
Если человеку сходу будет доступен уровень понимания кода условного синьойра на его текущем проекте, значит период "посидим и посмотрим код джуна" пройдет очень быстро и он начнет писать продуктовый код быстрее
Проскакивать же данный етап просто так, потому что ЧСВ зашкаливает, ИМЗ, не стоит
Во-первых, надо понять, что без опыта очень тяжело устраиваться, а попасть на стажировку - редкая удача, особенно в enterprise. Многие убили бы за возможность попасть на ваше место. Не разбрасывайтесь возможностями. Во-вторых, работа отличается от учёбы, в офисе никогда не будет рядом преподавателей стремящихся вас научить. Люди, которые могли бы, завалены своими делами. Придётся суетиться самому. В-третьих, не стоит ждать волшебного взлёта профессионального уровня. В среднем чтобы дорасти до разработчика (перестать быть джуном) нужно около трёх лет. Наконец, по неопытности можно не видеть возможности для обучения, находящиеся прямо под носом. Это напоминает дзенские притчи, в которых мастер годами лупит ученика по голове бамбуковой палкой, а ученик удивляется, почему его не учат.
Статистика-с, сэр.
Индустрия существует уже очень давно.
Первые научные трактаты, анализирующие работу программистов, появились еще в конце 1960-х годов.
На сегодня подобных исследований/замеров - полно.
Понятно, что цифра 80 это - условная.
Но суть-то в том, что на отладку (а также поиск ошибок, что выявлены по результатам эксплуатации казалось бы уже отлаженной программы) любой сколько нибудь нетривиальной программы уходит намного (в разы!!!) больше времени, чем на собственно написание исходных текстов.
Исследования по ошибкам в программах - это очень большой раздел человеческих познаний.
Человечество уже довольно много об этом знает и много чего напридумывало связи с этим.
Начните хотя бы с "Мифический человеко-месяц", Ф. Брукса. Это тонкая книжка, не пожалейте времени. Уж столько десятилетий прошло - а выводы, сделанные автором являются актуальными и поныне.
Есть и забавные методы. Например, существует такая: искусственно добавляем в программу ошибки, потом другой человек отлаживает.
И по тому сколько он выявил ошибок (и искусственно внедренных и существовавших в программе изначально) мы делаем выводы - а сколько еще ошибок осталось.
Эта метода реально применялась на практике.
nrgian, За совет "Мифический челоко-месяц" спасибо, стоит в очереди в списке "Прочесть", думаю мне стоит повысить её приоритет.
Например, существует такая: искусственно добавляем в программу ошибки, потом другой человек отлаживает.
И по тому сколько он выявил ошибок (и искусственно внедренных и существовавших в программе изначально) мы делаем выводы - а сколько еще ошибок осталось.
Вот согласен, просто поговорите с начальством на тему, чтобы мне поизучать такого в рамках самообразования. Думаю, начальство в этих ваших энтерпрайзах будет всецело радо, что работник не сидит без дела, а самообразовывается. Как минимум я всегда приветствовал самообразование, даже на курсы посылал, а вот ответственные и интересные задания конечно же давать не будут, пока вы даже не junior и на полставки.
Что до работы на junior в энтерпрайзе и с легаси кодом, то оно все так и есть - копаться и исправлять старые баги. Но поверьте, обычно с зарплатой все хорошо. И чем больше код, тем больше оплата по его корректной поддержке. Переписать систему - это долго и дорого.
Вот я вижу тут возможность заниматься самообразованием. Тебе же самому не нравится сидеть и ничего не делать. При этом тебе не хватает времени после на самообразование. Совмещай, тебе еще за это деньги платят.