Гибкие навыки. Исчерпывающее руководство по прокачке себя для начинающих разработчиков — страница 37 из 82

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

Еще ты можешь пройти профессиональную сертификацию. Хотя сертификация ценится меньше высшего образования, она стоит намного дешевле и поможет тебе доказать свою компетентность в определенной области. Например, существуют профессиональные сертификации для технологий Microsoft и Java, а также для методологий типа Scrum. Обычно ты можешь самостоятельно изучить одну из программ, пройти недорогое тестирование и получить сертификацию.

УПРАЖНЕНИЯ

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

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

35Ищем пробелы в знаниях

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

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

Почему у нас остаются пробелы

Долгое время я не понимал, как именно работают лямбда-выражения в С#. Лямбда-выражения – это анонимные функции, использующиеся для создания делегата в С#. Ты можешь использовать лямбда-выражение для объявления функции без имени.

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

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

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

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

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

Обнаруживаем пробелы

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

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

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

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

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

И самый сложный способ: спроси своего коллегу или знакомого с работы, занимающегося ревью твоего кода, о пробелах в твоих знаниях. Возможно, неплохим вариантом будет спросить своего менеджера, но будь осторожен. В большинстве случаев менеджер, желающий тебе лишь лучшего, солжет тебе, считая, что ты не сможешь вынести всю правду. Тогда ты можешь упомянуть пару пробелов, о которых ты уже знаешь, и рассказать, как ты их устраняешь. Хоть это и рискованно, но ты можешь указать на один из недостатков менеджера (конечно же, по-доброму), после чего менеджер точно выскажет все, что он о тебе думает. Используй этот способ с осторожностью!


Проверяем пробелы в знаниях:

• чем ты занимаешься бо́льшую часть времени;

• повторяющиеся задачи, которые можно ускорить;

• информация, программы и т. д., которые ты не понимаешь;

• вопросы для собеседований, на которые ты не можешь ответить.

Заполняем пробелы

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

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


Нахождение и заполнение пробела


Убедись, что ты точно знаешь, что тебе нужно выучить. Если твой пробел заключается в том, что ты не разбираешься в физике, то такой пробел будет сложно заполнить. Но если ты сможешь сузить формулировку, например «не понимаю, как работают пружины», то все, что тебе придется сделать, – это потратить немного времени на знакомство с законом Гука (http://simpleprogrammer.com/ss-hookes-law). У тебя все получится!

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

УПРАЖНЕНИЯ

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

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

• Понаблюдай за собой в течение дня и определи болевые точки. Найди способы избавиться от них и заполнить пробелы в знаниях.

Часть IVПродуктивность

Любители сидят и ждут вдохновения; остальные просто встают и идут работать.

Стивен Кинг

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

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