Трудное время на первой работе по разработке программного обеспечения [закрыто]

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

Короче говоря, это было сложно. Меня наняли в середине августа, но я не начинал пачкать руки (программирование...) до сентября, потому что были проблемы с моими учетными данными. Мне давали задания и темы по программированию начального/среднего уровня, и хотя я выполнил их все, некоторые заняли у меня немного времени. Сначала это было приемлемо; теперь, когда прошло 2 месяца, время, которое я трачу, начинает действовать на нервы моему руководителю. Он очень занят большую часть времени, и хотя он выделяет время для обучения меня, иногда я спрашиваю его, как сделать что-то более одного раза, что иногда может его раздражать. Система, с которой я работаю, относительно сложна, и я уже разработал около 20+ документов о том, как устранять неполадки с помощью некоторых распространенных ошибок/шагов, обходных путей кода и базовой отладки. Но мне все еще не хватает основ и базовых навыков кодирования, над которыми я работаю, но иногда я борюсь с основными вводными проблемами, с которыми у меня не должно быть проблем к этому времени. Скоро я перееду в другую среду, где от меня ожидают гораздо большего и я смогу решить любые/все проблемы за несколько минут. Меня тоже спрашивают, и он защищает меня перед начальством, но я не хочу, чтобы потом на меня возлагали большие надежды.

Я учусь все больше и больше каждый день, но это недостаточно быстро. Я прямо спросил его, подхожу ли я для компании или нет; Я также спросил, двигаюсь ли я недостаточно быстро, и он сказал, что я должен, мне нужно двигаться намного быстрее. Иногда мне требуется некоторое время, чтобы обработать информацию, чтобы точно знать, что мне нужно делать, и я был таким со времен университета (даже если я получил 100% на моих инженерных/математических экзаменах, я был тем, кто обычно использовал ВСЕ время, и я редко, если вообще когда-либо, уходил рано).

Как мне поступить? Я хочу добиться успеха в области разработки программного обеспечения, но я не знаю, что делать. Учиться дома полезно, но, кажется, этого недостаточно, потому что у меня просто, в упор, не хватает опыта. Что я могу сделать в ближайшие несколько недель, чтобы стать лучше? Иногда, когда он говорит очень быстро или выполняет сложную серию шагов за 2-3 минуты, я пытаюсь попросить разъяснений, но, опять же, иногда у меня создается впечатление, что он раздражен и чувствует, что я должен просто знать после того, как он сказал это один раз. .

Какова реальная проблема с рабочим пространством? Судя по вашему рассказу, вы как будто обозначили проблему, и искали решение, задав вопрос своему руководителю «в упор», и получили ответ. В итоге вы приходите к выводу, что вам просто «не хватает опыта», и кажется очевидным, что если вы продолжите делать то, что делаете, то эта проблема со временем исчезнет. "Как мне поступить?" не подлежит ответу.
В связи с вашим неявным вопросом разработки программного обеспечения: как кодировать быстрее (без ущерба для качества)
Добро пожаловать, новый пользователь, возможно, вам следует резко сократить вопрос, чтобы получить более точные ответы?
Кстати, что такое ГР? О, гугл-тусовки :/
@Fattie Скорее GitHub
Еще хуже :/ клеймо любителя. Несколько связанный контроль качества .
@Brandin Я думаю, что есть ответ: в программном обеспечении «самый большой грех» - это в основном просить о помощи или разъяснениях. «Разработка программного обеспечения» буквально означает «взять на себя» проблему; возвращаться за «помощью» — врожденное противоречие. Вот почему в программном обеспечении нет ничего более раздражающего, чем кто-то, кто возвращается за «помощью», «советом» или «подсказкой». Так вот что ОП должен перестать делать.
Есть множество курсов, которые вы можете пройти, книг, которые вы можете прочитать, или учебных пособий, с которыми вы можете поработать, если вам не хватает вашего языка программирования. Некоторые из них намного лучше других, но если вы ищете рекомендацию, вы находитесь не в том месте. Но несколько недель — это очень мало. Что касается невозможности следить за тем, что говорит ваш босс, вам, вероятно, следует делать заметки и выяснять это позже (или, если вы не можете, попросить разъяснений тогда).
@Fattie Проведя последние сорок с лишним лет своей жизни за разработкой программного обеспечения в нескольких местах, я никогда не видел отношения, о котором вы упоминаете. Ответственность за выполнение работы лежит на разработчике, но отсутствие просьб о помощи, когда это необходимо, не приведет к выполнению работы. «Взять на себя» проблему не значит решить ее полностью в одиночку, а скорее принять на себя ответственность.
Я просто не знаю, @DavidThornley. ОП действительно буквально описывает то, что я говорю. Учтите, что это (безусловно) самый агрессивный, ориентированный на деньги, ориентированный на результат бизнес, это не то же самое, что возиться в облачном магазине или в социальных сетях; они только что наняли настоящего Мастера (!) парня; менеджер, о котором идет речь, хочет результатов и ничего, кроме результатов, он не хочет никаких разговоров. Кроме того, почему этот парень мог помочь? Если бы мы с вами наняли парня, чтобы построить мост, мы дали ему кучу долларов на строительство моста, а он продолжал бы возвращаться к нам с вопросами типа, это балка?
.. мы были бы в шоке, глядя друг на друга как "балка?" и мы предполагаем, что нам придется найти кого-то еще ... кого-то, кто может просто «выполнить работу» :)
Я инженер-программист на пенсии. Моей специальностью в колледже была математика. Единственная причина, по которой я мог работать до выхода на пенсию, заключалась в том, что я очень много работал, когда начинал свою карьеру. Раньше я работал по 80 часов в неделю. Я был молод. Я смог это сделать. Сколько часов вы работаете каждую неделю?

Ответы (1)

Я не согласен с некоторыми аспектами ответа толстяков.

Вам не нужно начинать программировать в 13-14 лет, чтобы стать хорошим программистом, вам просто нужно сжать опыт программирования в более короткие сроки.

А я категорически не согласен с утверждением

Именно в программном обеспечении, когда вы ставите перед кем-то задачу, определение провала — это когда они задают вопросы.

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

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

  • Гугл, гугл и гугл. Если у вас есть проблема, не связанная с продуктом, внутренними интерфейсами или политиками вашей компании, почти гарантировано, что кто-то уже сталкивался с такой же проблемой. Спросить коллегу «как мне написать цикл» требует 2 человек, занимает 5 минут, но также выводит коллегу из продуктивного режима. Если вашему коллеге требуется 20 минут, чтобы вернуться к продуктивному ходу мыслей, в сумме получается 30 минут. В гуглении участвует только 1 человек, поэтому, если вам не нужно 30 минут, чтобы понять цикл, гугление более эффективно.
  • Если вы чувствуете, что искали слишком долго, но так и не нашли решения, спросите своих коллег, знают ли они решение , а не то, что это за решение. Если ваши коллеги сами не знают ответа, даже час гугления в одиночку будет эффективнее, чем вовлекать в поиск более невежественных людей.
  • Если вы не получаете нужных результатов поиска, возможно, будет эффективнее обратиться к коллегам за более подходящим поисковым запросом , чем за решениями. Поиск правильных условий поиска для проблемы и знание правильного названия технологий и методов также требует опыта.
  • Если у вас есть вопросы, на которые Google не может ответить, не сосредотачивайтесь только на своем руководителе. Если поблизости есть другие программисты и вам нужна помощь с довольно простой концепцией, спросите их. Если они решат проблему за минуту, попросите их объяснить вам, как подойти к проблеме , чтобы найти решение так же быстро, как и они.
  • Еще одна хорошая идея — спросить коллег , где они сталкивались с такой же проблемой или где они уже решали подобную проблему . Если они могут указать вам примерное направление в коде, углубитесь в него, чтобы найти существующее решение. Не ждите, что ваши коллеги укажут на нужную строку кода, вы должны найти ее сами.
  • Чтение книг и других материалов — хорошее начало, но не решение. Они часто содержат десятилетия опыта некоторых из лучших программистов. Попытайтесь усвоить их подходы, но имейте в виду, что чтение само по себе не сделает вас хорошим программистом. Мой личный совет: изучайте «надежный код», а не «программирование для чайников».
Чтобы уточнить. (1) Никогда не возвращайтесь к менеджеру и ничего не спрашивайте, потому что (как я указываю) это совершенно упускает из виду суть программирования - решать проблемы. (2) Во что бы то ни стало постоянно и настойчиво искать информацию в Интернете и т. д. ДА. Никогда не изобретайте велосипед. (3) Конечно, когда ваш менеджер буквально инструктирует вас, конечно, задавайте «глупые вопросы», чтобы просто уточнить задание («Вы имеете в виду ЭТОТ сервер?!») НЕ спрашивайте «как» решить это. Единственная самая раздражающая вещь в S/W — это когда кто-то, кому вы дали задание... спрашивает вас, как это сделать. Он мгновенно помечает их как стажеров .
@Fattie Это было не атакой на ваш ответ, а вторым мнением. Я думаю, что ваш ответ будет значительно улучшен, если вы включите этот комментарий (особенно номер 3). То, как это читается сейчас, действительно вводит в заблуждение...
Конечно, отредактировал, спасибо. Суровая реальность заключается в том, что ОП (1) «не умеет программировать» и (2) работает программистом в (3) просто самой требовательной, суровой и ценной области программного обеспечения. Мой ответ в основном гласит: «На обучение уходят десятилетия, и вы будете бороться». Это привлечет отрицательные голоса от всех, кто хочет счастливого конца :)
«пока вам не нужно 15 минут» - я бы сказал, что должно быть ближе к часу (если не чуть больше). Задав кому-то вопрос, вы отвлекаетесь от того, что делали, и может потребоваться некоторое время, чтобы вернуться к продуктивной работе. И если вы поймете это самостоятельно, это будет означать, что вы, вероятно, лучше поймете это в следующий раз, и вы, вероятно, улучшите свою способность разбираться во всем самостоятельно.
Скорее, как и сбивающие с толку комментарии под моим непопулярным ответом («Это не так! Я работал в компаниях!»), Обратите внимание, что ОП буквально слово в слово говорит то, что я описываю. Час? 15 минут? «он говорит очень быстро или выполняет сложную серию шагов за 2-3 минуты , я пытаюсь попросить разъяснений, но, опять же, иногда у меня создается впечатление, что он раздражен и чувствует, что я должен просто знать после того, как он сказал это один раз». В любом случае.