Как снова стать уверенным разработчиком?

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

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

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

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

РЕДАКТИРОВАТЬ: Спасибо за совет, это поучительно видеть разные точки зрения и здорово иметь опытную и поддерживающую группу людей здесь, на бирже стека! а теперь вернемся к этим ошибкам...

Привет, d3lphi, добро пожаловать на Workplace, сайт вопросов и ответов для вопросов о навигации по рабочему месту. Несколько моментов, во-первых, я бы предложил уточнить вопрос о поле, поскольку люди из любого могут неправильно воспринять ваше утверждение. Кроме того, я собираюсь немного отредактировать последнюю часть вашего вопроса, чтобы она была сосредоточена на поиске ответов на проблему, а не на опросе. Не стесняйтесь вносить еще одно редактирование , чтобы сосредоточиться на прояснении вопроса, если мои правки не совсем соответствуют действительности. Удачи! :)
Я бы сказал, побочные проекты и/или с открытым исходным кодом. Кроме того, вы можете попробовать обратиться к своему начальнику с ситуацией (если вам не придется возвращать долг в случае увольнения, что вы теряете?)
Подожди, какова твоя роль на этой стажировке? Вас заставляют работать с клиентами и организовывать встречи из-за проблем с уверенностью, когда вы должны писать код? Почему это правительственное учреждение дало вам эту стажировку только для того, чтобы вы на самом деле не применили навыки, которые вы заработали? Там должен быть кто-то, кто ожидает и хочет от вас большего, чем это. Если нет, сделайте этого человека собой и уволите себя, чтобы вы могли получить эту работу в Силиконовой долине.
@Amy: Да, мне все равно придется выплатить долг (с процентами!), Но чем дольше я остаюсь, тем меньше он будет. Но как можно лучше изменить ситуацию и поговорить с высшим руководством.

Ответы (3)

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

Итак, исходя из своего личного опыта, могу посоветовать вам следующее:

  • Старайтесь оставаться позитивным, независимо от ситуации.
  • «Рим не был построен за один день», поэтому в своей карьере вы должны постоянно развиваться.
  • ИТ — одна из самых динамичных отраслей, вам необходимо обновляться, чтобы идти в ногу со временем.
  • Постарайтесь уделить немного времени своей повседневной работе, и открытый исходный код действительно будет хорошим вариантом (предложено некоторыми пользователями здесь, как однажды задан мой вопрос ).
  • Для целей кодирования постарайтесь ухватить понятия о шаблонах проектирования, написании алгоритмов, программировании и т. д.
  • Посмотрите на этом сайте: http://projecteuler.net/ ; Я использую его для улучшения моего кодирования.
  • Может быть, некоторым людям этот ответ не понравится, но по моему личному опыту, Workplace — отличное место, чтобы оставаться позитивным, следить за вопросами и ответами, поскольку вы наверняка обнаружите, что вы не единственный, кто борется.
  • Также постарайтесь выслушать своих друзей, семью и попросить их совета по поводу вашей карьеры, но оставьте окончательное решение только за вами.

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

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

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

Но что, если вы тоже ненавидите лимонад?
не говоря уже о ваших самых важных «клиентах» — это ваш босс и те, с кем вы беседуете.
@ Эрик Реппен - «Но что произойдет, если вы действительно ненавидите лимонад?» Затем вы отдаете его или продаете другим. Или вместо этого сделайте лимонные квадраты и раздайте или продайте их. Или вы тонко нарезаете его, украшаете джином с тоником и пьете, раздаете или продаете. Или вы меняете лимоны на лаймы, выжимаете их и кладете в блендер со льдом, трипл-секом и текилой. Но все это немного менее содержательно, чем высказывания.

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

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

  • «Оставайтесь позитивным» — это абсолютно хороший совет, но одна из тех вещей, которые просто неприятно слышать. Это не то, что вы уже не пытаетесь! Попробуйте сосредоточиться на себе и на том, что вы можете сделать, чтобы стать лучшим разработчиком и командным игроком. Представьте, что вы работаете на той милой работе в Силиконовой долине, но вам все еще приходится делать такую ​​работу, пока вы платите взносы как новый парень. Делайте это так, как будто вы хотите произвести впечатление на своих замечательных новых боссов, сводя к минимуму время, затрачиваемое на программирование. Используйте свои знания CS, чтобы помочь спроектировать рабочий процесс, чтобы он лучше соответствовал технической структуре проекта. Работайте над оптимизацией создания документов, изучая шаблоны и изучая ярлыки и советы по редактированию документов.
  • Нейл прав насчет возможности улучшить свои навыки общения. Понимание желаний и потребностей клиентов и знание того, как определить различия, всегда будет важным навыком. Пусть волнение клиентов будет заразительным, и сосредоточьтесь на том, чтобы помочь им достичь своих целей; пусть они будут вашими товарищами по команде. Если вы интроверт, как и многие программисты, поработайте над тем, чтобы быть обаятельным и приветливым. Думайте об этом как о практике предпринимателя; это один из классов, необходимых для успешного стартапа.
  • То же самое для автоматизации рабочего процесса. По возможности создавайте сценарии и автоматизируйте повседневные рутинные задачи. По мере того, как небольшие компании становятся успешными и растут, эта область начинает серьезно влиять на прогресс. Техническое обслуживание — это значительная трата времени; стать гуру в минимизации этого надежно.
  • Если контроль версий на самом деле не используется, это дает вам много возможностей для изучения его настройки и разработки хороших тактик ветвления и привычек фиксации. Вы можете экспериментировать с идеологиями и технологиями, не затрагивая других. Настройте репозиторий Git для себя и потренируйтесь жонглировать ветками разработки, исправления и выпуска, поэкспериментируйте с автоматическим написанием сценариев, чтобы добавить нумерацию версий и т. д. Если вы будете там достаточно долго, изучите несколько способов сделать это.
  • Как сказал swapnesh, работайте над своими навыками развития. Если вы все еще что-то программируете, попрактикуйтесь в некоторых методологиях разработки программного обеспечения, насколько это возможно, самостоятельно. Вероятно, одному человеку довольно сложно заниматься скрамом, но вы все равно можете его прочувствовать. Ознакомьтесь с шаблонами проектирования и лучшими практиками. Может быть, программа, которую вам нужно написать, подходит для использования фабрики классов, даже если она никогда не будет масштабироваться настолько, чтобы это имело значение. Вы все еще можете использовать его для практики. Вы даже можете попробовать разные архитектуры для решения одной и той же задачи, чтобы узнать, как их использовать на практике.
  • Изоляция может стать большой проблемой. Мало того, что это самоподкрепляется, так еще и легко обвинить отдельных людей в том, что они не стараются усерднее. Обед с людьми, насколько позволяет культура; коричневая упаковка экономна, но имеет социальные издержки. Узнайте, что другие люди умеют или любят, и относитесь к ним как к местным экспертам в этом. Скажем, один человек известен сетевым программированием, и вам нужно реализовать парсинг сообщений или что-то в этом роде. Придумайте свой план, а затем спросите их, думает ли он, что он сработает или его можно улучшить. Или попробуйте свой план и сделайте то же самое, если он нуждается в доработке. Неважно, насколько хороши вы или они; вы дадите им возможность чувствовать себя хорошо, демонстрируя свой опыт и в то же время общаться. Это важно для сближения, и если это начнет приживаться, у вас может появиться больше шансов поработать над кодом. Это также работает для всех вещей, которые вам нужно делать, не связанных с программированием.
  • Сейчас не время агрессивно бросать вызов статус-кво. Если вы попытаетесь отстаивать контроль версий для всех или что-то подобное, вы, вероятно, вызовете негодование, усилите изоляцию и начнете выглядеть мошенником. Не бойтесь помочь улучшить ситуацию, но будьте скромны и готовы помочь. Крестовые походы не приобретают друзей.

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