Как я могу спасти мою практику? [закрыто]

65

В настоящее время я работаю стажером в очень крупной компании, не занимающейся разработкой программного обеспечения. Позиция, на которую я претендовал, не была специально разработкой, но команда, которая меня наняла, хотела получить специальность CS, чтобы попытаться разработать для них несколько внутренних проектов. Я был здесь в течение четырех недель, и первоначальное недоумение начинает стираться. Тем не менее, я единственный майор CS во всем офисе - никто из моей команды, в здании или даже в соседних местах не имеет никакого опыта в разработке программного обеспечения. Лучшее, что у меня есть, это менеджер баз данных, а их отдел слишком занят, чтобы поддержать меня в моих проектах. Мои товарищи по команде помогают мне узнать, как они выполняют свою работу (что важно для меня, чтобы выполнять свою работу), но нет никого, кто бы помог мне выполнить мою работу, то есть развитие.

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

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

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

Обновить

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

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

bhamlin
источник
80
В большинстве мест стажеры ожидают, что они будут людьми, которые не знают, что они делают, но которые хотят учиться и приобретать любой опыт, который они могут. Стажировка без наставника звучит так, будто им действительно нужен дешевый или бесплатный разработчик, и они не должны ожидать, что вы произведете готовый продукт. Узнайте как можно больше обо всем опыте, а затем, когда ваша стажировка закончится, продолжайте. Идеально для места, где вы можете пройти стажировку у настоящих разработчиков программного обеспечения :)
Рэйчел
9
Это, кажется, не является специфическим для разработки программного обеспечения, поэтому оно может быть более подходящим для Workplace.SE
Барт ван Инген Шенау
53
«пытаться разрабатывать приложения с нуля без каких-либо инструкций или даже четко определенных целей» - идеальный тренинг для реальной разработки программного обеспечения!
Алан Б
7
Добро пожаловать в раздел «вещи, которые ты не изучаешь в книгах». Это только одна из многих сред, в которых вы можете оказаться, когда закончите обучение. Я оказался точно в твоем положении, за исключением того, что я получил степень, и это было в MIS.
Чад Харрисон
3
@BartvanIngenSchenau В этом вопросе есть угол разработки программного обеспечения, OP - единственный разработчик в компании. Это создает некоторые уникальные проблемы, и я думаю, что некоторые из них могут извлечь выгоду из решений для разработки программного обеспечения. Возможно, этот вопрос лучше подходит для Workplace, но если это не на 100% не по теме, я не думаю, что мы должны его перенести. Если сообщество решит, что вопрос здесь не по теме (закрыв его как таковой), я с удовольствием перенесу его.
Яннис

Ответы:

124

У меня для тебя плохие новости, бхамлин:

Вы не стажер. Скорее, вы неоплачиваемый / дешевый работник.

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

То, что хотела ваша компания, была на самом деле не стажером, а скорее бесплатным / дешевым источником разработки программного обеспечения. Это довольно распространенное , на мой взгляд. Я живу в студенческом городке, и на моем последнем месте работы часто слышали менеджеров, говорящих: «Эй, ИТ-отдел слишком занят, чтобы заниматься Проектом X, давайте посмотрим, сможем ли мы пригласить стажеров из Университета, чтобы написать его для бесплатно / дешево!» Мы ворчали, стонали и скрежетали зубами до небес, но это было реальностью, и я мог понять, почему менеджеры предложили такую ​​вещь. К сожалению, результаты не были хорошими: программное обеспечение, предоставленное стажерами, никогда не было согласованным / масштабируемым / чистым / и т.д.

Это зависит от вас, что вы делаете. Мой совет - просто развивайте все, что вы можете (иногда давление - отличный мотиватор), НО вы также должны планировать «настоящую» стажировку в другом месте, когда она закончится, если это возможно.

Так что не вини себя, но то, во что ты вошел, не было настоящей стажировкой.

Грэхем
источник
18
@ Для меня, большинство оплачиваемых стажировок в основном говорят: «Мы заплатим вам, чтобы вы учились вместе с нами, и в конце этого периода, если все пойдет хорошо, мы хотели бы нанять вас» . Это дает сторонам более длительный период времени для оценки друг друга, и, если все пойдет хорошо, они также смогут нанять сотрудника, который обучен в своей системе и который, как они знают, хорошо подходит для компании. Если они получат какое-то новое программное обеспечение дешево в процессе, это дополнительный бонус, но не ожидание.
Рэйчел
7
Стажировки, как правило, не оплачиваются? Это новость для меня ...
М. Дадли
3
Это хороший момент @Ampt. Я отредактировал свой ответ, чтобы сказать "неоплаченный / дешевый" сейчас. В целом, я думаю, что ответ все еще остается; в этом месте на самом деле не хотел стажера, они просто не хотели платить полную цену за ИТ-услуги.
Грэм
7
@ bhamlin большинство людей, не имеющих опыта работы с программным обеспечением, буквально не имеют ни малейшего представления о том, сколько времени или усилий потребуется для разработки программных проектов. Понятия не имею вообще. Это, к сожалению, так оно и есть.
enderland
10
Если стажировка не оплачивается (или ниже какой-то заработной платы, может быть, минимальной, если память служит), она должна продемонстрировать ощутимую выгоду для стажера, в противном случае бизнес фактически нарушает трудовое законодательство. Это очень важное различие, если этому парню не платят, он может подать в суд на компанию. (Или, так сказать, законы США, не могу говорить с другими странами)
Джимми Хоффа
28

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

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

Надежный способ документирования любого процесса

Задайте эти вопросы в следующем порядке:

  1. Какой выход? (Получите как можно более конкретный ответ)
  2. Какие входные данные?
  3. Достаточно ли входов для создания вывода?

Если ответ на номер 3 - « НЕТ» , тогда найдите недостающие фрагменты. Это могут быть формулы, бизнес-правила или что-то еще.

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

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

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

Майкл Райли - AKA Gunny
источник
1
Члены моей команды показывали мне процессы, поэтому у меня есть представление о входах и выходах и о том, что они хотят. У меня есть представление о том, как я хочу решить проблемы, это просто разбить его на кусочки и собрать все вместе, что вызывает у меня проблемы (особенно с использованием технологий, в которых я не настолько квалифицирован, как базы данных). К счастью, я могу довольно хорошо объяснить «выродок» «не выродкам». Я предполагаю, что в этот момент я должен начать сводить мои проблемы с кодированием к переполнению стека, чтобы увидеть, возможны ли мои решения. Спасибо за ваш вклад.
Бхамлин
Что касается базы данных, я рекомендую книгу Майкла Эрнандеса под названием « Разработка базы данных для простых смертных ». Эта книга выдающаяся.
Майкл Райли - AKA Gunny
1
+1 за «надежный способ документирования любого процесса». Хотелось бы, чтобы это было размещено на видном месте в моем кубе, когда я впервые был нанят на работу по системному анализу.
dodgethesteamroller
1
@bhamlin: Я предлагаю вам сделать все возможное, чтобы уменьшить ожидания того, что вы собираетесь доставить. Кроме того, разбейте его на очень мелкие проблемы, то, что вы думаете, что можете сделать за день (так, чтобы это было сделано в течение недели;) и, предпочтительно, вещи, которые полезны сами по себе, а не только модули, которые не будут работать без ядро. Таким образом, если вы потерпите неудачу, ваша работа все равно будет полезна. Кроме того, ИМО, этот опыт, вероятно, будет очень полезным и стимулирующим (хотя и не финансовым), но в конечном итоге вызовет уныние.
Стефф
18

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

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

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

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

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

Ampt
источник
6
Мои родители сказали мне, что я должен принять предложение, если я получу его в конце лета, но я попытался объяснить им, что эта работа может не помочь продвинуть мою карьеру в качестве разработчика программного обеспечения. Они не хотят слушать меня и думают, что любая работа, которую я получаю, является благословением, но я чувствую, что имею право отказаться, особенно если это не хорошая рабочая среда для меня. Мне нравится идея вести дневник, я ношу с собой ежедневник, поэтому начну документировать, что я делаю, так что, похоже, я ничего не делаю. Я ценю вашу помощь.
Бхамлин
1
Нет проблем, бхамлин. Когда я начал эту стажировку, я чувствовал, что нахожусь в том же положении. Мой менеджер принимает очень невнимательный подход к команде инженеров, позволяя нам структурировать наш день, как мы пожелаем (мы также следуем модели гибкой разработки, которая поддерживает это), и пришел из классов, где у меня были почти ежедневные требования к проектам, это было совсем другое , Я обнаружил, что ведение журнала заставляло меня нести ответственность, а также предоставлять документацию, которую я, по крайней мере, делал ЧТО-ТО. Это также помогает мне поддерживать импульс изо дня в день и неделю в неделю.
День
7
@ MLowry Я думаю, что это плохой совет. Пребывание на рабочем месте, которое вы ненавидите, измотает вас физически и особенно психологически. Вы впадете в депрессию, будете ненавидеть каждый момент и сожалеть об этом решении каждый день. Зачем проходить это? Было бы целесообразно сделать это в течение 6 месяцев, если финансовая сторона была бы экстраординарной. Но, вероятно, это не так, учитывая, что он в самом начале своей карьеры.
Раду Мурзеа
2
+1 за «Вы чему-то учитесь». Эта рабочая среда, к сожалению, не какая-то аномалия. Многие компании, которые специально не занимаются ИТ-бизнесом, борются с тем, что делать с ИТ-ресурсами, поэтому уроки, которые вы здесь усвоите (смутные требования, несоблюдение сроков), будут полезны позже при попытке определить проблемные среды.
Грэм
2
+1 за "вести дневник". Возьми эту привычку до конца своей карьеры! Когда проект идет хорошо, никто не задает вопросы. Когда все идет плохо, они хотят придираться к каждой проклятой вещи, которую ты сделал / сделал. Журнал очень хорошо освещает вашу шкуру. (лучше, чем отчет о состоянии).
TimG
13

Поговорите со своим консультантом по стажировке

Кажется, что все ответы, которые я видел до сих пор, сосредоточены на работодателе, что важно.

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

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

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

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

  • В этот момент вы наслаждаетесь творческой свободой, о которой программисты, работающие в больших командах программистов, могут только мечтать. Все, от выбора языка, управления исходным кодом до редакторов и архитектуры программного обеспечения, полностью зависит от вас. Поверь мне, ты скучаешь по этому, когда его нет.
  • Работа с людьми, которые мало знают о программном обеспечении, является важной частью процесса разработки программного обеспечения. В школе вас ждут четко определенные задания от людей с большим опытом преподавания разработки программного обеспечения. Даже в командах программистов ваши задания никогда не бывают такими четкими. Умение справляться с этим сейчас даст вам преимущество.
  • Получение знаний в предметной области без помощи наставников является важной частью процесса разработки программного обеспечения. Раз в год или два я получаю задание типа «Станьте нашим специалистом по X-технологиям». Кто-то должен быть первым в компании, кто изучит новую технологию. Вы получите более интересные задания, если сможете показать, что этим человеком может быть вы.
  • С вашей точки зрения, это похоже на большое давление, но вы должны знать, что их ожидания от вас действительно довольно низки. Они знают, что тебе труднее без надлежащего наставника. Просто сделай все возможное, и все будет хорошо.

При этом решение вашего первого крупного проекта может быть ошеломляющим. Следующее может помочь:

  • Старайтесь не думать обо всем проекте сразу. Подумайте, что вам нужно сделать прямо сейчас.
  • Получить список функций, которые необходимо выполнить, и заставить их расставить их в приоритетном порядке. Таким образом, если вы не закончите все приложение, самые важные функции все еще будут там.
  • Разбейте первую функцию на все меньшие и меньшие задачи, пока не дойдете до задач, которые можно выполнить за день или два. Не бойтесь заставить их звучать глупо просто. Моя первая задача в новых проектах - заставить работать мир и проверить систему контроля версий. Особенно, если это новый язык или язык, который я давно не использовал, который говорит мне, что моя среда сборки и инструменты настроены правильно.
  • Получайте ваш обзор часто. Не пытайтесь выливать на них готовый продукт в конце лета. Покажите им, по крайней мере, один раз в неделю, что у вас есть до сих пор.
  • Потратьте некоторые усилия заранее, чтобы попытаться найти существующие проекты и компоненты, которые могут удовлетворить ваши потребности. Настроить существующую систему гораздо проще, чем с нуля. Многим компаниям нужны подобные виды внутренних приложений. Это то, о чем я хотел бы знать сам. Один из моих проектов стажировки в основном заново (плохо) изобрел CRM .

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

Карл Билефельдт
источник
6

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

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

Я вижу, здесь вы проходили практику в компании X. Как это было? Почему ты ушел ?

Если вы сможете показать им, что справились со своей сложной ситуацией на профессиональном уровне, это будет ОЧЕНЬ МНОГО , работодатели обычно очень впечатлены чем-то подобным.

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

1 = Я надеюсь, что вы это сделаете, потому что в этом случае произойдет самоубийство в карьере (рано или поздно ... возможно, рано)

Раду Мурзеа
источник
2
На этот вопрос легко ответить. «Мне нравилось работать в X, и я многому научился во время стажировки. Однако они не являются компанией по разработке программного обеспечения. Поэтому я не думаю, что смог бы так хорошо развить свои инженерные навыки, оставаясь там. Я бы предпочел работать с другими разработчики программного обеспечения и есть проекты, которые являются более совместными. "
Селби
5

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

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

Вычислять:

  • Что они хотят от продукта (входы и выходы, минимум )
  • Каковы ваши ограничения? (т.е. какие программы вы можете / не можете использовать?)

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

Покажите им демонстрацию (спросите их, это ли у них на уме), это покажет им ваш прогресс и поможет вам понять, чего они хотят.

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

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

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

Прокомментируйте свой код. Если они планируют передать это другому стажеру или сотруднику, это им очень поможет.

Продолжайте общаться с вашим менеджером / супервайзером о проекте и вашем прогрессе в нем.

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

TL; DR

  • Общайтесь с вашим менеджером на каждом шагу

  • Код основной функциональности

  • Получить помощь от Google и обмен стека

  • Не волнуйтесь, если вы не можете закончить

stackErr
источник
1
  1. Ищите разъяснения по целям стажировки - почему вам было поручено так много проектов?
  2. Уточните руководству, что в отведенное время вы не сможете завершить запрошенные проекты
  3. Подготовьте анализ того, как наилучшим образом использовать свое время. Например, предложите работать только над одним проектом и отбросить другие.

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

KyleM
источник