Время, необходимое для начала кодирования в новой компании [закрыто]

12

Я 4 года работаю инженером-программистом, и я только что сменил свою компанию в первый раз.

Компания работает с парным программированием, и прошло 3 дня, я даже не мог написать ни одной строчки кода. Это очень расстраивает меня, потому что я был очень продуктивным в моей предыдущей компании.

Кодовая база большая, они используют 5-6 языков / инструментов, с которыми я не знаком, таких как rspec, haml, jasmine и другие. Но все же я чувствую себя ужасно.

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

Это нормально?

Каков ваш опыт, когда вы меняете работу и погружаетесь в большую кодовую базу, написанную на языках / библиотеках, с которыми вы не знакомы?

Конечно, я не спрашиваю о точном времени, но прошлый опыт или вещи, которые могли бы сделать процесс, были бы хороши.

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

/programming/215076/whats-the-best-way-to-become-familiar-with-a-large-codebase

/programming/214605/the-best-way-to-familiarize-yourself-with-an-inherited-codebase

ОБНОВИТЬ

Все отличные предложения! Я только что пришел с работы, я много работал!

О парном программировании:

Обычно они пишут код, и я стараюсь не пропустить ни секунды! Если я попытаюсь написать код, я знаю, что это займет вечность, потому что я даже не знаю, какие файлы мне редактировать, но помимо этого, как я уже сказал, они используют 6-7 языков / фреймворков, которые я не знакомы и изучать все эти синтаксисы в одном не легко.

Насколько хорошо компания подготовлена ​​для инженеров:

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

Делать заметки, проявляя активность:

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

Это распространено?

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

Я надеюсь, что смогу начать исправлять ошибки / реализовывать проблемы очень скоро.

О фреймворках / языках, которые они используют:

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

@ Sawpaw Hare, большое спасибо за то, что поделились своим опытом. Вы абсолютно правы. Нет никаких гарантий, что я изучу все эти вещи, но я пытаюсь. В конце концов, сложно изучить весь синтаксис одновременно, и я думаю, что это тоже главная проблема. Потому что я могу хорошо ориентироваться в коде ruby, так как знаю этот язык, и я ориентируюсь в js-кодах благодаря инспекторам браузера, но проблема заключается в написании реальных кодов с использованием фреймворков / языков, которых я не знаю.

Роберт Джонсон
источник
Поскольку вы упоминаете, как вы погружаетесь в большие базы кода? что в ответах есть, что не распространяется на ваш случай?
комнат
3
Поскольку вы занимаетесь парным программированием, вам не нужно писать код, чтобы быть продуктивным. Вы можете быть очень полезны, просто наблюдая, как кто-то другой пишет код. Достаточно скоро вы будете знать достаточно, чтобы начать писать код самостоятельно.
Кевин Клайн
@kevincline, если он спаривается как новый разработчик, он должен быть уверен, что это тот, кто на клавиатуре, иначе это было бы довольно плохой парой ...
Джимми Хоффа
Если это то, как компания делает вещи, у вас действительно нет выбора. Убедитесь, что вы знаете, что они ожидают от вас, когда придет время. Задавать вопросы. Получать отзывы. Вы можете потратить много времени, если не будете осторожны.
JeffO
@JimmyHoffa, я знаю, что это было бы лучше для меня, но в этом случае я бы сильно замедлил свою работу. Поскольку мне придется задавать каждый синтаксис, фактический файл, который мне нужно отредактировать, модель данных или что-то еще, это замедлит работу моего партнера.
Роберт Джонсон

Ответы:

10

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

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

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

Рейн Хенрикс
источник
1
Многочисленные месяцы нередки для сложных, больших (1 миллион + SLOC), особенно в том, что домен также является нишевым и / или сложным.
Mattnz
1
+1: у некоторых компаний есть наставники, назначенные для новых сотрудников, независимо от того, сколько у них опыта именно по этим причинам. Я всегда впиваюсь в человека, сидящего ближе всего ко мне, который готов помочь, и задаю ему тонны вопросов - и затем я открыто передаю их своему / их менеджеру, когда они помогают.
Стивен Эверс
@mattnz Да. Несколько месяцев - это всего лишь несколько недель. ;)
Рейн Хенрикс
5

Это нормально?

Для большинства кодовых баз это так. Черт, в моей компании вы встречаетесь с HR в течение 2 дней, прежде чем вам разрешат прикоснуться к компьютеру. Это необычно, но подумайте, сколько времени потребуется, чтобы настроить среду разработки, смутно ознакомиться с доменом, структурой кода, нормами команды ...

Как руководитель группы, я ожидаю, что вы эффективно ничего не сделаете в течение 1 (двухнедельного) спринта и будете работать на ~ 50% в течение следующих 1-2 спринтов.

Telastyn
источник
2

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

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

Newtopian
источник
1

Это действительно зависит от работы, которую вы делаете, и роли, в которой вы находитесь.

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

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

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

Сэм
источник
0

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

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

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

Левша заяц
источник
2
Некоторые люди думают, что это сложнее, чем есть на самом деле. Довольно часто все сводится к уверенности, а не к таланту.
ChaosPandion