Вы собираетесь прочитать мою любимую цитату.

Это поразило меня с первого момента, когда я это услышал; вы также можете найти его как «мантру» на странице описания моего сайта; это потому, что я считаю, что эта фраза стала для меня поворотным моментом.

Я не лучший программист. Я просто хороший программист с прекрасными привычками.

Бум. Мощный. Мощный, почти откровенный, по крайней мере, для меня.

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

TDD, BDD, DDD, CQRS… Множество сокращений и модных словечек, представляющих сложные концепции, которые всегда казались недостижимой утопией: все казалось таким далеко, поэтому невозможно реализовать в обычных рабочих реалиях, в которых многие из нас работают; только «они» делают это, только «они» преуспевают.

Они.

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

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

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

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

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

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

Я понимаю, почему многие разработчики страдают от этого, это неудивительно, учитывая, сколько знаний в мире: вы всегда чувствуете, что знаете недостаточно. Мои 2 цента: вы никогда не узнаете всего!

В то же время я говорю вам: не обращайте внимания на это чувство!

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

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

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

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

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

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

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

Таковы мои чувства по поводу работы разработчика и мой опыт роста с точки зрения автономии и способности создавать личный путь и бороться со своими слабостями в процессе обучения.

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