Готовимся к собеседованию: неожиданные вопросы для фронтенд-разработчиков и как на них отвечать
На собеседованиях задают не только технические вопросы. Очень часто интервьюеры задают вопросы, ответ на которые неочевиден сразу, и которые выбивают из колеи. У меня такое было чуть ли не на каждом собесе. В основном это были странные (на первый взгляд) задачки, которые предлагали решить прям на собесе.
Вот примеры таких задачек:
❓ 1. Почему крышки люков круглые?
💡 Что проверяют? Логическое мышление и способность рассуждать.
Пример ответа:
"Круглую крышку невозможно уронить внутрь люка, потому что у нее нет углов. К тому же круглую крышку проще перекатывать, и круглая форма крышки люка позволяет ей идеально подходить к отверстию вне зависимости от того, как её повернут."
❓ 2. Ваш коллега допустил серьёзную ошибку, но руководство думает, что виноваты вы. Что будете делать?
💡 Что проверяют? честность, умение управлять конфликтами.
Пример ответа:
"Я бы честно объяснил ситуацию, указав на факты и данные. Но также поддержал бы коллегу, предложив вместе разобраться в проблеме, чтобы избежать подобных ситуаций в будущем."
❓ 3. Как бы вы объяснили API ребенку 10 лет?
💡 Что проверяют? Умение просто объяснять сложные вещи.
Пример ответа:
"Представь, что ты в кафе. Ты просишь официанта принести тебе пиццу. Официант — это API. Он берет твой заказ (запрос) и приносит пиццу (ответ) из кухни (сервер). Но ты не видишь, как пицца готовится, — ты просто получаешь результат."
❓ 4. Сколько теннисных мячей можно поместить в автобус?
💡 Что проверяют: креативность и подход к решению задач без точных данных.
Пример ответа:
"Я бы сначала оценил объём автобуса и объём одного теннисного мяча. Затем разделил бы эти значения, высчитав сколько объемов мяча поместится в 1 объем автобуса. Конечно, это грубая оценка, но так можно примерно прикинуть…»
❓ 5. Представьте, что вам дали задачу, которую вы не понимаете. Ваш руководитель недоступен. Как вы поступите?
💡 Что проверяют: инициативность и умение решать проблемы.
Пример ответа:
"Я бы попытался собрать как можно больше информации из документации, прошлых задач или у коллег. Если это не помогло, я бы составил список уточняющих вопросов и обратился к руководителю при первой возможности."
После множества заваленных собесов, я понял, что когда задают такие вопросы, важно ответить хоть что-то, если вы не знаете ответа. Показать, что вы хотите решить задачу и будете её решать. Просить подсказки, решать пошагово, рассуждать вслух и т.д. Даже если вы её не решите, но хорошо проявите себя в попытках, этот вопрос вам зачтут в +. Ну а если вы отвечаете «Не знаю.» это сразу красный крест на вас и говорит интервьюеру о том, что вы не сможете решать большинство задач на незнакомом проекте.
Всем успешных собеседований! 🚀
Не используйте ИИ…
Для решения задач во время обучения чему-либо (и уж тем более новой профессии).
Хотя я считаю ИИ классным и полезным инструментом для опытных, я частенько вижу, как мои ученики во время обучения начинают его использовать, что может сыграть ПРОТИВ них самих.
Почему? Вот топ-3 причины:
1. Отсутствие развития необходимых навыков
ИИ дает готовые ответы и исправляет ошибки, но не поясняет почему так, и как их избежать в будущем. Важно ведь понимать не только результат, но и процесс. Когда мы решаем проблему сами поиском в интернете, мы сталкиваемся с нюансами, учимся искать информацию, замечаем сопутствующие моменты и больше анализируем код/контекст.
Критически важно иметь аналитическое мышление, которое можно наработать ТОЛЬКО решая задачи самому.
К тому же, многие новички используют ИИ для того, чтобы решить задачу, которую они решить не в силах. В итоге они пропускают понимание БАЗЫ, а это приводит к пробелам в знаниях и к еще большим проблемам в будущем, на более сложных этапах обучения.
А еще, один из ключевых навыков разраба — это умение думать творчески и находить нестандартные решения. ИИ предоставляет ответы на основе существующих данных и алгоритмов, но он не может научить нестандартно мыслить или придумывать новые подходы к решению старых задач.
2. Неполные или некорректные ответы
ИИ не всегда дает правильные ответы или предлагает лучший способ решения. Я ВСЕГДА перепроверяю код, который мне дает ИИ. Очень часто было такое, что я просил написать какой-то несложный алгоритм с разными условиями, а получал код, который работал с ошибками. Плюс, ИИ часто не учитывает контекст приложения, что тоже крайне важно учитывать.
3. Привычка использовать/полагаться только на ИИ
В любой непонятной ситуации вы начинаете использовать только ИИ - быстро и удобно же. А что если завтра его заблочат?) В разработке критически необходимо уметь решать проблемы самостоятельно. Если ты привык к тому, что ИИ всегда даст ответ, твоя способность к решению задач самостоятельно будет практически нулевая.
А что вы думаете насчет использования ИИ при обучении профессии?
Еще один айтишный сервис заблочили
Мы лишились еще одного мессенджера, который активно использовали айтишники и геймеры - Роскомнадзор заблочил Discord. Сразу после блокировки на сервера Роскомнадзора обрушились ddos-атаки — айтишников лучше не злить 😄
Хотя я его никогда не использовал, когда-то мы рассматривали его как мессенджер для учеников в Айтилогии. Классный мессенджер с большими возможностями, но нам он не подошёл.
Интересно, что заблокировали за пропаганду очень плохих вещей (наркотики, лгбт и др). Разве этого нет в других мессенджерах? Такого везде полно, надо заблокировать получается все мессенджеры и соц. сети 🤷♂️
С другой стороны — а как по-другому с этим бороться? 🤔
Если честно, новость совсем не удивила. Как будто все уже привыкли к блокировкам и санкциям. Каждый день что-то перестает работать и чего-то лишаемся из привычного. Раньше не было такой практики что-то блокировать, но последние пару лет всё больше и больше интернет начинают регулировать власти. Кстати, и не только ж в РФ.
VPN, конечно, никто не отменял. Я думаю, что полноценное использование интернета в РФ скоро будет возможно только с постоянно включенным VPN - выключать надо будет только для входа на российские сайты. Прям как в Китае, где заблокировано просто всё) Будем внукам рассказывать: «Эх, было время внучок, когда можно было пользоваться интернетом без впн, и всё работало» 😂
Что думаете по поводу таких блокировок - оправданно или нет?
Вчера я запустил 28 ПОТОК моего обучения на курсе Frontend-разработчик и во время созвона поделился с участниками 3 простыми САМЫМИ ВАЖНЫМИ ФАКТОРАМИ, благодаря которым у них точно получится пройти обучение, обрести профессию разработчика, и устроиться в IT-компанию либо начать свой путь на фрилансе.
Хотя эти факторы я вывел благодаря многолетнему опыту обучения именно IT-профессии, уверен, это работает и для любого другого обучения 💯
Давайте наберем 10 огоньков под этим постом, расскажу вам 😉
О проблеме гос. образования
Так как я обучаю других людей, для меня всегда был актуален вопрос максимально эффективного обучения. Но в последнее время решил ещё больше углубиться в тему того, как же на самом деле правильно учиться?
На фоне чтения одной из книг на эту тему я пришел к интересным выводам про государственное образование. И они не очень то радуют, зато открывают грустную правду.
Главная проблема большинства учебных заведений в том, что преподаватели не стремятся вызвать у учеников ПОНИМАНИЕ. Они стремятся вызвать у них ЗАПОМИНАНИЕ.
В результате запоминания человек научится чему-то с очень маленькой вероятностью. Скорее всего, это будет пустая информация, которая даже если и запомнится, то ненадолго.
Логично, что если информация непонятна, мозг запоминать её не будет. Много ли вы реально помните из универа или школы? 99% этого вы сами поняли, а не бездумно пытались запомнить.
Взять, к примеру, историю. Я вот почти ничего не помню. А все потому, что понимать и не требовалось. Надо было запомнить только то, что надо на экзамене. То есть цель препода не научить, а заучить. Но в рамках обучения не так важно знать какую то дату события, чем понимать почему оно произошло, какие выводы, как это отражается на текущем мире и т.д.
Что ещё более интересно, такая проблема чаще всего связана с некомпетентными преподавателями. Которые сами ПЛОХО ПОНИМАЮТ то, чему «учат». А раз у них основная цель подготовить студентов к экзамену (= заставить заучить), то цели понять у самих преподов и не стоит 🤷
Вспомните, как часто на лекции вы бездумно конспектировали слова препода, который так же бездумно их читал из методички? Есть даже такая шутка, что на лекции записи преподавателя становятся конспектом студента, минуя сознание обоих.
Конечно, я не буду утверждать абсолютно про всех, но думаю многие со мной согласятся, что в большинстве своём так и происходит во всех учреждениях образования. И это лишь ОДНА ИЗ всех проблем системы образования.
На самом деле, учить других это очень сложный процесс. Я давно это понимал (не первый год учу, всё же), но сейчас погружаюсь еще глубже, чтобы познать все тонкости обучения и обучать других еще более эффективно!
А вы согласны со мной по поводу этой проблемы? Делитесь в комментариях 👇
Как правильно работать сидя?
Последнее время из-за проблем с поясницей (напомню, у меня уже в 29 лет вылезла грыжа) я начал активно изучать тему позвоночника, ортопедических кресел, полезных упражнений и в целом правильного сидячего образа жизни.
Уверен, в моем блоге много людей, у которых сидячая работа (да что уж там, мне кажется, 90% людей в городах сейчас сидит целый день), поэтому, делюсь с вами самыми важными моментами, о которых я узнал во время изучения вопроса сидячей работы более детально.
1. Сидеть нога на ногу — вредно. Сидя спина устает меньше, чем стоя. Правильное положение сидя - с прямой спиной. В кресле со спинкой спина не устает. Криво сидеть нельзя, только с ровной осанкой. А теперь внимание, всё что было выше — МИФЫ.
2. На самом деле, можно сидеть как угодно. Главное при этом — как можно чаще менять положение и регулярно двигаться (или хотя бы разминаться). Конечно, с прямой спиной сидеть лучше, чем всегда креветкой, но даже если вы всегда сидите креветкой, а каждые 30 минут встаете и разминаетесь, с вашей спиной всё будет ок. Ровно сидеть долго практически невозможно, т.к. устают мышцы.
3. При работе за компом сидя важно соблюдать следующие правила: монитор должен быть на уровне глаз или чуть ниже; локти и колени должны быть согнуты под углом 90%, плечи должны быть расправлены и слегка опущены; Таким образом можно значительно снизить нагрузку на шею/позвоночник. (см. фото)
4. Ещё раз о самом главном правиле: Менять положение и двигаться (5-10 мин) стоит каждые 30–50 минут независимо от того, как вы сидите (но правильно сидеть — лучше)
5. Особенно важно следить за наклоном головы, ведь из-за нагрузки на шею страдает не только позвоночник, но еще могут быть постоянные головные боли (у меня были и спонтанные головокружения).
Соблюдая такие простые правила ежедневно на уровне привычки, вы точно сможете сберечь своё здоровье 🙌
Смотрите инфографики, там все важные моменты показаны наглядно 👍
Топ 3 проблемы самостоятельного обучения профессии
На каждом потоке моего курса Frontend-разработчик я встречаю людей, которые уже пробовали самостоятельное обучение и у них не получилось добиться результата. Они ходили по бесплатным интенсивам, смотрели видосы на ютуб, скачивали готовые курсы. Некоторые потратили на это уже год, а то и два.
Результат ~ нулевой 🤷
Почему так происходит? 🤔
Я обучаю других людей уже больше 5 лет, и за это время выделил топ 3 критерия, почему самостоятельное обучение — путь вникуда (в большинстве случаев)👇
1. Нет наставника.
Дело в том, что 80% работы разработчик решает проблемы, а не пишет код. То есть проблемы возникают на каждом шагу, и как их решить — непонятно. Если у вас нет наставника, вам не к кому обратиться за помощью, чтобы решить проблему. Скорее всего, вы будете часами напролет шерстить интернет в поисках решения, и не факт, что вы его найдете.
Это критично, потому что просидев несколько раз по 8 часов над мелкими ошибками вы, с высокой долей вероятности, просто потеряете всю мотивацию обучаться, а может и сразу забросите это дело навсегда.
2. Бессистемное обучение.
Вы получаете знания в плохо оформленном виде, собираете по крупицам. От разных авторов. Из разных источников. В разном формате. Возможно, часть инфы уже неактуальна, а вы об этом даже и не узнаете. Информация в голове не превращается в знания и навыки, потому что они собираются туда в виде каши, с которой непонятно что делать, и тем более, когда и как начать применять (=зарабатывать).
3. Вытекающее из 1 и 2 пунктов — отсутствие понимания верного движения.
Вы что-то изучаете, что-то делаете, а как понять, на верном пути или нет? Да никак. Без обратной связи (наставника, реальных денег, оффера на работу) вы НИКАК не сможете понять, верно ли двигались. Нет возможности оценить верно вы решили задачу или нет, хорошо пишете код или нет, правильный ли ответ выбрали в поисковике или нет.
Следствие этих 3 пунктов — потеря времени (самого важного ресурса нашей жизни) и высокая вероятность исхода «так и не получилось».
А вы пробовали обучаться самостоятельно, или нет? Если да, то какой результат, и с чем столкнулись? Пишите в комментах 🙂
У меня украли с кошелька 671 $
А в целом я потерял 3 300 $
…Или история о моей попытке разбогатеть на легких деньгах.
2 года назад был хайп из-за NFT-кроссовок (виртуальные кроссовки).
Смысл такой:
1. За крипту ты покупаешь NFT-кроссовки в приложении.
2. Ходишь по улице с запущенным приложением и зарабатываешь монетки.
3. Прокачиваешь за них кроссовки по уровням
4. Продаешь свои прокаченные кроссовки за крипту
5. Становишься богатым
Мин. стоимость входа была 3 300 $. Я не сторонник быстрых денег, и хорошо осознавал риски. Но, при этом, я лично общался с людьми, которые подняли неплохой куш на этом и продолжали это делать.
Я решил рискнуть. Обратившись к знающим ребятам, которые за процент помогали зайти, я купил себе NFT-кроссовки за 3 300 $ и начал ходить по улице каждый день. Всё начиналось хорошо, но в какой-то момент хайп резко пропал. И буквально за неделю я остался с мелочью в крипте и копеечными кроссовками.
В начале этого года я вспомнил про свой аккаунт, зашел в него и увидел, что на моем кошельке лежит крипта на сумму 671 $ (с того времени выросла в цене), а также есть кроссовки, которые, в теории, можно продать. Но продать их можно только с заморочками, поэтому я решил заняться в другой день.
Зашел в свой аккаунт вчера и увидел, что за это время с моего кошелька кто-то из команды тех, с кем я работал, украл эти 671 $ 🤷♂️
Такой вот интересный опыт. Вывод мой в том, что нех** было лезть в то, в чем я не разбираюсь, и надеяться на легкие деньги. Быстро и легко деньги можно только потерять, но не заработать.
Мне в жизни никогда не удавалось получить что-то легко и быстро: для достижения результатов приходилось много думать и работать. Даже собирая крышки кока-колы всё детство, я ни разу так ничего и не выиграл.
И вам я тоже предлагаю не надеяться на удачу и шанс, а трудиться для того, чтобы у вас были твердые знания и навыки. Например, можно обрести у нас IT-профессию разработчика или дизайнера, а затем управлять своим доходом, перспективами, возможностями, и в целом жизнью, не надеясь на случай или хайп, осознавая ценность себя как профессионала своего дела. Тогда вы априори не играете в рулетку «быстро и легко заработать (потерять)».
🆕 Теперь в телеграм есть пак эмоджи Айтилогии! Целых 192 эмоджи в 4-х наших цветах! На скриншоте лишь третья часть :) Остальное увидите в наборе.
Вы тоже можете установить себе
наш набор по этой ссылке:
🔗 /channel/addemoji/itlogia_ru
[нажмите кнопочку «добавить»]
и использовать их при оформлении ваших сообщений.
С любовью 💟
Главная причина, почему люди остаются в ловушке низкого дохода и не обучаются IT-профессии
Барабанная дробь….
НЕТ ДЕНЕГ
Думаю, это очевидно - не все могут позволить себе сразу заплатить за годовое обучение новой профессии. Но здесь есть кое-что интересное.
Допустим, человек работает на низкооплачиваемой работе. Естественно она его не устраивает: низкий доход, мало времени с семьёй, никаких перспектив. Он поглядывает в сферу IT и вот уже даже готов пройти обучение, но все останавливает "денег нет".
Я немного изучал судьбу тех людей, которые очень давно хотели на мое обучение, но так и не пришли. И вот что выявил👇
Если у человека нет денег на то, чтобы изменить свою жизнь (=улучшить свое финансовое состояние), то он выбирает для себя, по сути, рабство (ужасное слово, но более подходящего не нашел). Более того, если деньги невозможно найти даже на то, чтобы улучшить своё благосостояние и жизнь, то это уже критичный сигнал, чтобы предпринять действия.
Получается такой замкнутый круг: человек работает за небольшую оплату, обучение оплатить не решается, и ждёт пока наступит идеальный момент "когда будут деньги, оплачу".
Парадокс в том, что деньги так и не появляются. Это логично, откуда им взяться, если всё «по-старому»? А у человека так ничего и не меняется – он живёт бесконечной верой, что когда-нибудь наступит "подходящий момент".
Проблема в том, что мир так не работает. И выйти из этого состояния можно лишь приняв твердое РЕШЕНИЕ наконец все изменить и сделать нужное ДЕЙСТВИЕ.
Жаль, что многие тянут "до последнего", а кто-то и вовсе продолжает страдать, думая что у него "нет выбора".
Нет выбора - тоже выбор. Просто он неосознанный.
Так а какие варианты? Например, 2 основных:
1. Сильно ужаться, максимально быстро накопить и начать обучение, не ждать "лучшего дня". Спустя пару месяцев обучения начать зарабатывать и уйти с работы.
2. Взять рассрочку/кредит с небольшим ежемесячным платежом, а затем закрыть кредит с первых денег в IT, далее также уйти с работы.
P.S. У нас, если что, есть варианты удобных рассрочек и кредитов, обо всем можно узнать в отделе заботы. А на наших курсах наши ученики начинают зарабатывать уже со 2-3 месяца после старта потока 🙌
Друзья, делюсь с вами возможностью БЕСПЛАТНО использовать chatGPT 4 turbo в любых своих целях без ограничений. Причем что еще классно - в собственном телеграм-боте. Работая с chatGPT я уже себе столько процессов упростил, но об этом в другой раз.
Прикрепил файл инструкции с настройкой от нашей команды, делается всё за пару минут без каких-либо знаний в тех. части. Пользуйтесь, пока лавочку халявы не прикрыли 🙌
Про моё желание переехать в Майами
Уже второй раз я путешествую по США и сейчас мы с женой находимся в Майами - одном из самых знаменитых городов США по фильмам, да и не только.
Для меня этот город был каким-то культовым после Нью-Йорка. И если последний я больше знаю из американских фильмов, Майами для меня стал когда-то культовым во многом благодаря моей карьере разработчика.
Вот одна из историй, связанная с Майами:
Когда я работал в компании LightPoint, к нам несколько часто приезжали наши заказчики для обмена опытом. В рабочее время мы с ними обсуждали проект и дела, а по вечерам ходили в баню/кальянные и общались о жизни.
Их компания базировалась в Майами, жили они тоже в этом городе, ну и рассказывали мне много про свою жизнь. Учитывая то, что я и до этого мечтал переехать в США как разработчик, после их рассказов моё желание стало еще больше. И больше всего я хотел в Майами.
Честно признаюсь, однажды в личном разговоре с заказчиком по имени Дейв я сказал ему, что был бы рад переехать в США, Майами и работать там в крутой компании (как их) в качестве разработчика.
Почему я ему об этом сказал?
Он занимал достаточно высокую позицию в своей компании и я надеялся, а вдруг он понял что я идеальный кадр в их компанию и предложит мне помочь с трудоустройством и релокацией в Майами?
К сожалению, не прокатило, он на это ничего не ответил. И в Майами я, в итоге, переехать больше не пытался 😀
Мне нравится Майами пока что больше остальных городов США по множеству факторов. Но переехать сюда сейчас - нет. Пожив в США несколько месяцев я для себя понял, что это не та страна, где я бы хотел жить на постоянке, а многие наши люди слишком идеализируют Америку. Но это всё уже тема для отдельного большого поста.
P.S. когда-то я так же говорил и про Москву, а в итоге там и оказался, так что кто знает, как повернутся события )
Люди, которые написали «Hello, World» на JavaScript и уже ждут оффер на 150 тысяч:
Читать полностью…Куда расти разработчику?
Меня в комментариях как-то спрашивали, куда идти разработчику, когда кодить уже скучно, а других навыков, кажется, нет.
Конечно, в начале карьеры мало кто будет задумываться: «А что дальше?». Но через несколько лет такие мысли подкрадываются, особенно у тех, кто не любит однообразие в работе.
Итак, куда же может развиваться программист, не меняя сферы, но меняя формат работы?
1. Развитие до Full stack. Во-первых, если хочешь расти, стоит овладевать широким кругом твердых навыков и расти до разработчика полного цикла. На это уже можно положить 5-7 лет. Да и потом постоянно учиться, потому что технологии совершенствуются постоянно.
Также можно перейти на другой язык программирования, осваивать новые фреймворки – каждый год появляется что-то новенькое, если скучно сидеть на чем-то одном, это хороший вариант.
2. Тим-лид. Уже став Senior Full stack, можно претендовать на должность тим лида. Этот человек принимает все ответственные решения в техническом плане на проекте, решает самые сложные участки проекта. По сути, берет на себя весь проект, и ему помогает пара дополнительных программистов
Для развития до тим лида нужно развивать мягкие навыки: работа в команде, коммуникативность, навыки руководителя и другие.
3. Архитектор ПО. Это специалист, знакомый с широким стеком технологий. Он занимается проектированием архитектуры ПО и помогает бизнесу строить IT-системы для решения задач компаний. В основном его работа направлена на автоматизацию и упрощение бизнес-процессов. Вся техническая сторона проекта - на архитекторе.
Здесь нужно обладать управленческими навыками, уметь брать ответственность, коммуницировать.
4. Проектный менеджер. Можно стать менеджером проекта и контролировать его выполнение со стороны разных специалистов: разработчиков, дизайнеров, копирайтеров, тестировщиков и т.п. Хороший менеджер помогает проекту экономить деньги и больше зарабатывать, именно он распределяет бюджет.
Здесь нужно обладать навыками тайм-менеджмента, коммуникации, потому что часто придётся дергать и подгонять коллег, важно, чтобы они не стали вас избегать 😅 А еще нужно быть структурным, ведь задача проджекта приводить хаос в порядок.
4. Обучение. Что бы ни говорили, потребность в программистах будет только расти. Вы можете использовать весь свой опыт для обучения новичков, как однажды рискнул сделать я.
Плюс этого варианта еще и в том, что вы учите людей зарабатывать. Причем не в отдаленном будущем, а уже через 3 месяца человек может начать зарабатывать какие-то деньги.
Но для того, чтобы люди хотели учиться у вас, нужно заявлять о себе как эксперте: вести блог, соцсети, прокачивать, как сейчас говорят, личный бренд. Этому тоже надо учиться, но вложения окупаются. И учить других новому, тому, что любишь - огромное удовольствие!
5. Свой стартап по разработке ПО. Про нюансы и трудности своего стартапа я уже как-то рассказывал.
6. Развитие своего продукта – коробочное решение или SaaS сервис. Вы придумываете и создаёте сервис и его продаёте, постоянно улучшая и дорабатывая.
Большой плюс такого варианта – у вас есть готовое предложение клиенту, которое довольно просто понять и оценить. Но есть и сложности: если идея на массового потребителя, то вероятно ее уже реализовали. Если идея на очень узкий рынок – на ней сложно заработать.
Классно создать что-то новаторское, что упрощает жизнь и действительно нужно пользователям.
Как видите, учиться новому в любом случае придётся. Вообще, если не развиваешься, то деградируешь. И, к сожалению, некоторых разработчиков это тоже касается. Невозможно однажды чему-то научиться и просто сидеть на этом весь свой карьерный путь. Особенно если хотите расти и чего-то добиваться.
Рефакторинг кода: когда ваш код пора полечить?
В словаре разработчика рассказал про слово рефачить — проводить рефакторинг, т.е. улучшать код без изменения его функциональности. Давайте поподробнее раскроем эту тему. Ведь рефакторинг кода — важная часть нашей работы.
Зачем нужен рефакторинг?
Хорошо структурированный код удобен в обслуживании, легко читается, его можно быстро доработать. Но в процессе работы над проектом сразу сделать его таким получается не всегда. То разработчики спешат, то меняются требования к задаче или возникают срочные правки. В итоге могут появиться баги или хаотичная структура: вроде все работает, но разобраться и что-то исправить следующим разработчикам будет очень сложно.
Чтобы сделать код эффективнее, читабельнее и проще, делается рефакторинг. И не только в старых программах. Лучше всего после реализации проекта оставлять некоторое время на рефакторинг, чтобы:
✔️ сохранить архитектуру проекта, не допустить потери структурированности;
✔️ упростить жизнь будущих разработчиков, сделать код понятным и прозрачным для всех членов команды;
✔️ ускорить разработку и поиск ошибок.
Периодически стоит проводить рефакторинг старых программ. Совершенствуются ЯП, появляются новые функции, библиотеки, операторы, делающие код проще и понятнее. То, что год назад требовало пятидесяти строк, сегодня может решаться всего одной.
Но иногда код сам просит срочного рефакторинга. Вот несколько признаков:
❌ Программа работает, но даже небольшие доработки сильно затягиваются из-за того, что каждый раз приходится долго разбираться в коде.
❌ Очень сложно точно сказать, сколько времени нужно на внесение каких-то доработок в программу, потому что «там надо сначала разбираться».
❌ Одинаковые изменения приходится вносить в разные места текста программы.
Такой код нужно срочно рефакторить, иначе он будет тормозить реализацию проекта и затруднять внесение правок.
Вообще рефакторинг нужно проводить постоянно. Делайте его каждый раз, после того как поменяли программу и убедились, что всё работает. Например, если добавили или изменили какую-то функцию, метод, класс или объявили новую переменную.
Хотите расскажу, как последовательно делать рефакторинг? Ставьте огоньки, и следующий раз распишу.
WebStorm стал бесплатным
Появился официальный способ использовать его бесплатно 👇
Компания jetbrains сделала специальный вид подписки «Некоммерческое использование», которое позволяет активировать среду разработки WebStorm уже сейчас на год совершенно бесплатно, и пользоваться самой последней версией этой IDE со всеми преимуществами.
«Некоммерческое использование» означает, что вы не можете использовать эту программу для разработки, если цель написания кода – получение прибыли (не важно, прибыль ваша, или компании, где вы работаете).
Для использования достаточно просто выбрать соответствующий пункт в последней версии IDE и войти в свой аккаунт (даже если на нем истекла активная подписка или 30-дневный триал)
Самое интересное, что соглашаясь на использование такой лицензии, вы соглашаетесь на отправку «анонимных данных об использовании», чтобы в случае неправильного использования вас могли заблокировать. Но когда нас это останавливало, не так ли? 😅
Не смотря на то, что можно было и раньше бесплатно использовать VS Code или другие редакторы кода, я пользуюсь исключительно WebStorm/PHPStorm. Во-первых, это дело привычки (за столько то лет). Во-вторых, функциональные возможности «из коробки» намного превосходят те, что есть в VS Code, и нет необходимости тратить время и нервы на настройку часто кривых плагинов. Ну и в третьих, работая в такой программе, у тебя всегда всё под рукой и скорость разработки/качество кода существенно улучшаются.
Так что рекомендую вам воспользоваться некоммерческой версией, пока она еще работает. Особенно, если вы только в начале своего пути.
Часто замечаю, как мои ученики во время обучения начинают использовать ChatGPT для решения вопросов/задач/проблем.
Кажется, что ИИ — это быстрое, простое и эффективное решение для поиска ответов. И подвоха сразу не видно - решил проблему за минуту и пошел дальше.
Возможно вы не задумывались, но на самом деле использование ИИ во время обучения несет в себе СЕРЬЕЗНЫЕ проблемы для конечного результата.
Сейчас напишу пост и поясню вам эти моменты 👌👌👌
3 фактора эффективного обучения, которые я вывел за более чем 5 лет обучения IT-профессиям
Я рекомендую своим ученикам следовать этим 3 простым правилам для того, чтобы эффективно пройти обучение, обрести профессию разработчика, и устроиться в IT-компанию либо начать зарабатывать на фрилансе.
1. Делать всё, что есть в обучении.
Наше обучение профессиям это не просто набор материалов или видео. Это многокомпонентная последовательная и продуманная система обучения. А значит, необходимо следовать всем рекомендациям, чтобы получить результат.
2. Заниматься каждый день на уровне привычки.
Максимальный фокус и время — на обучение. Делать на уровне ПРИВЫЧКИ, желательно каждый день. Любое обучение, а уж тем более обучение профессии, это нелегкий труд, поэтому нужно уделять максимум времени, чтобы получать результат. Не получится посидеть «часик на выходных за сериалом». Это же не быстрая схема заработка, а серьезная профессия, на обучение которой нужно приложить немалые усилия и максимально возможное время. Скорее всего, даже изменить жизненные приоритеты. И стоит не только смотреть обучающий материал, но и полностью поместить себя в контекст обучения. Например, начать общаться с ребятами из новой профессии, смотреть тематические фильмы/видео и т.д.
3. Верить в себя и свои силы.
Звучит банально, не так ли? Но я часто встречаю людей, которые не верят, что у них получится. И у них не получается. Как у вас может получиться, если вы сами не верите, что способны? Ваша вера определяет результат.
Поэтому, вам надо верить, что у вас получится. Где взять эту веру? Например, посмотреть кейсы (наши, и не только) тех, у кого получилось, и понять, что стать профессионалом может каждый. Либо посмотреть исследования — я когда-то узнал, что человек, у которого нет проблем с развитием, может обучиться абсолютно любой профессии, независимо от своего прошлого опыта.
Кстати, в ближайшие пару дней еще можно присоединиться к 28 потоку и уже к концу года зарабатывать свои первые деньги в IT на фрилансе. Следуя этим 3 советам, результат гарантирован! Пишите 😉
Вчера встретился со знакомым, который делает свой стартап. Когда-то я ему помог с IT-отделом, а теперь он уже привлекает инвестиции в свой проект. Так интересно наблюдать как растут проекты, к которым ты прикладываешь свою руку 🔥
Решил поделиться с вами одной историей, которая тесно связана с этим знакомствои, где я "случайно" продал свою помощь 😀 👇
В прошлом году я проходил тренинг по команде, и в один из дней было задание на умение зарабатывать деньги: всем 30 участникам дается 10 минут, за которые надо успеть продать хотя бы 5 «чего-либо» другим участникам. В качестве валюты использовали конфетки 😁
Честно признаюсь, я провалил задание. Я умею хоть как-то продавать только свой курс, а предпринимателям его не предложишь. Я проиграл. Тем не менее, я смог продать какую-то фигню типа ссылки на полезный ютуб канал по игре на гитаре 😂
В начале этого года я проходил другой тренинг Пространство для развития, где в один из дней дали примерно такое же задание: «продать что-то время обеда новым способом» но уже за реальные деньги. На это отводился час. Пока мы были на обеде с другими 5 участниками, что я только не пытался им продать. Но ничего не покупали. Я еще тогда подумал: «Блин, ну неужели я такой лох, что второй раз не справлюсь с этим заданием 😁»
Ближе к концу обеда я вдруг вспомнил, что вообще-то я периодически даю другим людям консультации по IT для бизнеса, хотя обычно за это денег не брал, т.к. делал для знакомых. И за столом как раз сидел парень, который основал стартап и ему нужна была такая консультация.
Он долго пытался сбить цену и взять консультацию за копейки, ведь «тебе же надо продать», но я не уступал. Я выбрал не продавать свои услуги дешево, чего и вам советую. В итоге, за 1 минуту до окончания обеда он оплатил консультацию, а я выполнил цель ✅
Хотя я был очень доволен достижением цели, вывод истории в другом.
Вернувшись на тренинг и послушав ситуации в зале я осознал, что мог получить из этой ситуации гораздо больше: не только продать свою консультацию, но смотреть шире, и… купить задешево кучу полезностей для себя от других участников. Ведь другие пытались заработать хоть как-то и продавали свои услуги/консультации за копейки.
Эта ситуация позволила мне главным образом понять, что чаще нужно смотреть на ситуацию шире, не так, как я привык, искать новые грани. И за одной возможностью могут так скрываться еще множество.
Я твердо убежден, что возможности есть у всех и везде в неограниченном количестве.
Если их нет - значит мы их просто не видим. Либо не хотим видеть.
Проекту Айтилогии сегодня 5 лет 🥳🥳🥳
Подумать только, ровно 5 лет назад я запустил своё первое обучение по фронтенду, а вот сегодня мы празднуем 5-летие школы — как же быстро летит время!
После создания школы хотели идти по пути «как можно больше курсов», но спустя время передумали: закрыли все существовавших 5 курсов, отбросили наброски следующих курсов, сделали 2 основных направления и сконцентрировали все силы на качестве, а не на количестве (в отличие от других школ). Добавили сюда заботу об учениках, честность и открытость. И получили ту Айтилогию, которая есть сейчас 🚀
Кстати, есть такая статистика, что 90% проектов закрывается в течение первого года, лишь 3% продолжает существовать более 3 лет. Это значит, что за 5 лет мы заняли очень уверенную позицию на рынке, пусть не количеством курсов, но точно высоким качеством (что подтверждает и рейтинг отзывов 4.9 🌟)
Не смотря на все трудности на нашем пути, с которыми мы сталкиваемся ежедневно, мы продолжаем вас радовать как полноценными программами обучений, так и бесплатными интенсивами, которые проходят тысячи человек ежемесячно 🔥
Впереди вас ждет еще много интересного и полезного от нас!
И небольшой бонус для вас👇
Мы, кстати, не делаем фейковые «скидки 80%» на курсы как другие школы, а цены на наши продукты всегда фиксированы. Но в честь такого праздника решили сделать 1 день уникальных цен с максимальной скидкой по промокоду HB5YEARS – условия можно узнать в поддержке на сайте или в тг @itlogia_bot. Это отличная возможность зайти на обучение для тех, кто давно хочет к нам, но всё никак не решался получить новую профессию.
Нужно ли в IT знать английский?
Если вкратце — необязательно. Но при этом, достаточно важно на перспективу.
Давайте разбираться 👇
Топ-5 причин, почему знание английского важно для IT-специалиста:
1 Позволяет читать оригинальную документацию без переводчика. Вам будет проще найти, понять, и применять информацию о важных инструментах, офиц. доки к которым на русском просто нет.
2 Проще находить решения в работе. Я гуглю исключительно на английском, потому что так вероятность найти верный ответ быстрее НАМНОГО выше — проверено опытным путем за многие годы.
3 Проще пользоваться софтом (программы, сервера, веб-интерфейсы и тд). Вы лучше в них ориентируетесь и эффективнее/быстрее используете.
4 В некоторых случаях будет более высокая ЗП в компании. А иногда, компании могут даже не взять вас на работу, если вы не знаете английского (актуально только для позиций middle и выше)
5 Английский открывает огромные возможности работать заграницей или просто получать деньги в валюте (удаленка, релокация, заказы на фрилансе)
Но, при условии вашей деятельности в РФ/РБ, английский знать вообще необязательно. А особенно в начале пути. К счастью, переводчиком сейчас пользоваться очень просто и незнание английского почти никак не препятствует обучению, старту карьеры и последующему развитию.
Большинство выпускников моего курса не знают английский, тем не менее, они без проблем устраиваются в IT-компании и показывают классные результаты как в проектах, так и по заработку! Я считаю, что наоборот, усиленное изучение английского во время обучения новой профессии в IT может только помешать: всё же и там и там надо уделять очень много свободного времени, лучше оставить главный фокус на чем-то одном, более приоритетном.
Я даже вам скажу больше, первые несколько лет работы в IT-компаниях я знал английский на уровне Elementary и постоянно пользовался переводчиками на работе. Только по мере развития в IT я понял, что англ нужен, и начал им заниматься. Даже дойдя до уровня Senior, я так и не выучил английский выше уровня pre intermediate. Сейчас решил снова взяться за свой английский и поднять уровень для себя 👌
Если вы уже работаете в IT, поделитесь в комментариях, насколько он был важен в вашей карьере?
Первая победа в продакшн
Продолжение истории о 2 выпускниках моего курса, которых я взял лично довести до уровня Middle+ на реальных задачах проектов Айтилогии. В позапрошлом посте, кстати, рассказывал итоги тестового задания, которые повергли меня в шок 😱
Так вот, прошло всего около 2 недель, как мы начали с ними полноценно взаимодействовать. И уже сегодня мы залили итог одной задачи на продакшн 🔥
Хотя это и первая их победа в нашей команде (важно замечать такое и радоваться даже маленьким победам), это вообще мелочь в сравнении с тем, что в ближайшее время мы выкатим на продакшн целый новый подпроект, который они уже почти создали. Каждый пользователь нашей платформы сможет оценить их результат! Как только выкатим, расскажу вам что это за функционал 🙂
Вообще, сначала я думал давать им делать тестовые проекты, чтобы поднатаскать перед основными задачами реальных проектов. Но в самый последний момент передумал, и мы сходу начали делать реальный подпроект и задачи в прод.
Почему?
Да потому что я почувствовал, что они готовы делать это сразу, без лишних прелюдий. С моего курса они вышли спецами с очень твердой базой, которые умеют разбираться и делать нужные задачи в любом проекте, где бы ни начали работать. А мы, на минуточку, сейчас работаем не только на фронтенде с javascript (чему они главным образом обучаются на курсе), но еще с бэком на php и nodejs.
Это, кстати, еще одно подтверждение для меня, что мои выпускники — готовые IT-специалисты в любую IT-компанию, на которых можно положиться (поэтому они и достигают крутых результатов, описанных на нашем сайте в разделе Результаты). Правда горжусь всеми своими выпускниками и точно уверен, что они лучшие среди конкурентов, кто закончил IT-курсы 💯
Я в шоке: как проходит мой эксперимент над учениками
Недавно я решил взять своего ученика, и лично его довести до уровня Middle+ на реальных задачах проектов Айтилогии. Предложение уникальное, ведь это, по факту, моё личное менторство и мощнейшая прокачка знаний и навыков на реальных проектах, за которое человек еще и оплату будет получать.
Желающих было много, поэтому я решил придумать для них непростое тестовое задание, отлично показывающее, подходит ли человек на личную работу со мной на нужных задачах.
Тестовое я решил сделать в соответствии с будущими задачами, на бэкенде: настройка виртуального сервера, язык PHP, базы данных, и другие технологии, с которыми мои ученики никогда не сталкивались (они же обучаются фронтенду, там совсем другие вещи).
Давая такое тестовое, я заведомо знал, что они не знают НИЧЕГО из перечисленного. И помимо самих задач тестового, была еще и скрытая, более важная задача — показать своё умение разобраться в новом, и доводить при этом всё до результата.
Понятное дело, что идеальный результат выполнения тестового был для меня — когда кандидат просто взял, погуглил, разобрался, и сделал всё как надо, то бишь прислал готовое тестовое.
И я сразу понимал, что скорее всего, это утопия 🤷♂️
А теперь делюсь результатами:
- Тестовое задание сроком на 4 дня взялись делать 11 человек.
- Из них 1 отказался, еще 1 – пропал и подчистил переписку.
- Все остальные — просто взяли, разобрались, и сделали то, что нужно было +- идеально, за 1-2 дня 🤩
Я в приятном шоке с результата. Но понимаю, что это — закономерность. Ведь с моего обучения они выходят специалистами, которые не только умеют то, чему учились, но и умеют быстро разбираться в новом и справляться с любой поставленной задачей. А это — САМЫЙ важный навык разработчика.
И результаты такого эксперимента отлично доказывают качество моего обучения в очередной раз. Горжусь своими учениками и их результатами, у них самое мощное конкурентное преимущество 💪
Кстати, завтра стартует уже 25 поток моего обучения, и если вы хотите стать одним из таких профессионалов, самое время присоединиться и уже спустя несколько месяцев начать зарабатывать первые деньги на разработке 🔥
Новые санкции в IT-секторе 😬
Вы уже видели новости про новые санкции в IT-секторе от США к России (и заодно, как обычно, Беларуси)?
Звучит это так 👇
Ограничения, связанные с облачными технологиями, распространяются на ПО для управления предприятиями и ПО для проектирования и производства. Американским компаниям будет запрещено предоставлять облачные вычисления любым гражданам России для вышеуказанных целей.
Исходя из текста пресс-релиза санкций можно сделать выводы, что обычных граждан это не коснется: санкции затронут образно только "ПО для заводов". Но не всё так просто. По факту, под «облачные вычисления» можно приписать и iCloud, и Гугл-док, и вообще любой онлайн-сервис от американской (а это может быть = почти любой зарубежной, так как многие крупные находятся под влиянием США) компании.
Нам с вами важно понимать, коснется ли это нас и если да, то как 🤔
Уже сейчас некоторым пользователям Slack (корпоративный IT-мессенджер) из России приходит сообщение, что их учетная запись будет закрыта. Хотя такие новости и были, у наших учеников (мы им активно пользуемся во время обучения) пока всё исправно работает – возможно это фейк. Но мы держим руку на пульсе и чуть что готовы к переезду 😀
Что может быть дальше?
Я не исключаю, что некоторые важные сервисы могут прикрыть для нас свои возможности из-за двух очевидных факторов:
1. Любая американская компания может либо бояться последствий, либо иметь нежелание разбираться в юридических моментах, и просто закрыть нам доступ «на всякий случай»
2. Просто на фоне ситуации заработать себе доп. репутацию, мол «вот смотрите какие мы молодцы, не поддерживаем это всё».
В целом, как я считаю, ничего критичного произойти не должно. Ну даже если что-то перестанет работать, многие сервисы еще с 22 года уже реализованы российскими разработчиками. Замену любому облачному сервису точно найдем, разве что это может доставить некоторые неудобства отказа от привычного.
Единственное, что может меня расстроить: потеря доступа к GitHub (сервис хранения и работы с кодом) и Гугл-диску. Замену, хоть и с болью, найдем. Но скрестим пальцы, чтобы эти важные сервисы для нас остались в доступе 🤞
Возможно вы уже видели нашумевшее недавнее интервью с Павлом Дуровым, который уже очень много лет нигде не давал интервью и в общем то вообще нигде не появлялся.
Для меня этот персонаж очень интересен: мне очень откликается то, что он говорит про свободу слова, приватность данных и др., но вот 2 самые важные причины👇
1. Он разработчик, и даже первые годы после основания соц. сети ВК он сам же писал в нем код, следил за серверами и тд.
2. Он один из тех, кто воплотил мечту чуть ли не любого разработчика - закОдил свой проект, который взлетел. Сначала ВК, потом ТГ.
Судя из интервью, интересно, что даже сейчас, не смотря на все его достижения, он все еще напрямую взаимодействует со своими разработчиками и утверждает каждую новую фичу в телеге, хотя вероятно, код сам уже и не пишет.
А откликается это всё мне потому, что я так же увлечен своим делом не только как собственник бизнеса, но и абсолютно всем, что происходит внутри. А особенно – технической частью 🔥
Самым интересным и обсуждаемым из его интервью являются стулья на заднем плане с перегородкой между ними.Точной интерпретации нет, каждый понимает это по-своему, есть даже версии и про тюремные истории.
Я их понимаю так👇
Порой, выбор – иллюзия, и в любом случае будет плохо. Важно лишь это понять, принять, и выбрать то, что ты будешь делать ПОСЛЕ этого.
Ведь у него с ВК так и было: нормального выбора то у него и не было. Важно лишь то, что он сделал после этого. И этим после стал Telegram.
Или может у вас есть своя интерпретация? 🤔
По возвращению в РФ обнаружил, что мой VPN на WireGuard перестал работать с мобильной сети и работает только через WiFi. Что еще больше меня расстроило - chatGPT распознает его как VPN и не дает пользоваться, даже имя платную подписку. Забавно, что отключить ежемесячные платежи можно только в личном кабинете, но туда я не могу попасть даже с VPN 😂️️️️️️
Но потратив пару часиков сегодня вечером я нашел рабочую связку, по которой работает у меня всё и без тормозов, включая chatGPT:
- самый дешевый сервак от Digital Ocean (нужна зарубежная карта для оплаты 5$/мес) в Нидерландах
- сделать всё, что описано в этой статье https://habr.com/ru/articles/785186/ (с кое-чем пришлось повозиться)
- на айфон приложение streisand
- на мак приложение hiddify next
Вероятно, вы сможете такое же настроить, только если понимаете, что такое терминал и как им пользоваться хотя бы на уровне новичка. В противном случае - лучше поискать платный вариант. Я принципиально не хочу такие использовать, потому что лучше и безопаснее своего сервера ничего нет пока что 😄️️️️️️
Полезные статьи для разработчиков
Последний в этом году дайджест интересных статей из мира IT. Будет здорово, если тоже поделитесь чем-то интересным, что читали за последнее время.
💻 Статья для новичков на сайте Айтилогии. Насколько глубоко нужно разбираться в JavaScript для старта в разработке и какие аспекты изучать в первую очередь. В статье все разложено по полочкам.
🟣 Полезный материал для тех, кто использует среду разработки Visual Studio: объясняют, как настроить библиотеку SFML.
👍 Ценные лайфхаки для разработчиков: тимлид рассказывает о 5 принципах написания читаемого кода. Для некоторых принципов приведены примеры React и JavaScript.
👻 Последнее время то и дело слышим о киберпреступлениях — «кладут» серверы, взламывают сайты, сливают информацию, воруют страницы в соцсетях. Статья рассказывает о 5 полезных инструментах, которые помогут не стать жертвой киберпреступлений.
⚔️ А еще можно попробовать пройти тест и узнать, как хорошо вы разбираетесь в вопросах кибербезопасности: тест «Кибербезопасность в мемах».
🎤 Недавно рассказывал о пользе нетворкинга для разработчиков и о том, как полезны для развития могут быть выступления на профессиональных конференциях. Статья как раз подскажет, как выбрать тему для выступления на IT-конференции.
🤝 И еще кое-что о мягких навыках, на этот раз о коммуникации с заказчиками на фрилансе. От этого зависит и количество заказов, и насколько вас будут рекомендовать заказчики, и сам успех совместной работы, ведь грамотная и легкая коммуникация все упрощает в разы.
👩💻 Немного интересной истории. Хватит говорить, что разработка только для мужчин, оказывается первыми программистами были женщины! И именно они её придумали.
💊 И под конец о здоровье. Врач-невролог рассказывает о туннельном синдроме у программистов и как с ним бороться. Вещь серьезная, советую заглянуть. Заодно проверите, нет ли у вас признаков этой болячки.
У кого не получится в ИТ?
В этом канале постоянно говорю о навыках, которые нужны айтишникам, о софт скиллах, но хотелось бы порассуждать о том, у кого НЕ получится в IT. В первую очередь, речь о разработке. Дополняйте, если тоже думали на эту тему.
❌ Вы идете в IT, потому что это «модно». Сейчас часто бывает, что в IT стремятся попасть люди, далёкие от понимания того, в чём заключается работа, например, программиста. Сразу платят за обучение профессии, а потом разочаровываются. Сначала лучше попробовать разные интенсивы или марафоны, написать самостоятельно код и понять, а реально ли вы хотите этим заниматься?
❌ Вы не любите учиться. Чтобы расти в профессии, нужно быть любопытным, интересоваться новинками, постоянно изучать новые технологии. Всё очень быстро развивается, нужно быть не только в теме обучения, но также очень много читать форумы, следить за ведущими компаниями-разработчиками и т. п. Будьте готовы, что обучение станет неотъемлемой частью работы. В этой сфере нельзя прочитать две книги и 20 лет работать.
❌ Вы, в первую очередь, думаете о высоких зарплатах айтишников и приятных бонусах. В первую очередь, нужно любить то, чем занимаешься. На многие курсы завлекают именно высокими зарплатами или возможностью работать из любой точки мира. Но нужно понимать, что успехов добиваются те, кто любит свое дело и много трудится. Работа разработчика — это непростая работа.
❌ Вы боитесь самостоятельности и ответственности. Много информации необходимо искать самостоятельно, фильтровать ее, пробовать, ошибаться, рисковать. А еще принимать решения, может не сразу, но впоследствии, когда перейдете на уровень Middle — точно. И никто не будет говорить, что делать и как правильно.
❌ Вам сложно дается однообразная деятельность. Не вся работа разработчика монотонная, но иногда приходится ревьюить код, несколько раз переписывать, чтобы все работало, долго выискивать проблему или ошибку. Иногда приходится всё это делать с одним кусочком кода на протяжении долгого времени. Важна внимательность и концентрация, а еще усидчивость.
И, конечно, без развитых мягких навыков — коммуникации, тайм-менеджмента и других, о которых часто говорю в этом канале, придется непросто. Но это во многих сферах. Что бы вы добавили к этому списку?
👨🏻💻Как делать рефакторинг кода?
Как же подступиться к коду и с чего начать, если код требует доработок или обновлений? Рефакторинг — это маленькие последовательные улучшения кода. Чистить можно всё, но в первую очередь найдите эти проблемы:
🔧 Мёртвый код. Переменная, параметр, метод или класс больше не используются: требования к программе изменились, но код не почистили. Мёртвый код может встретиться и в сложной условной конструкции, где какая-то ветка никогда не исполняется из-за ошибки или изменения требований. Такие элементы или участки текста нужно удалить.
🔧 Дублирование. Один и тот же код выполняет одно и то же действие в нескольких местах программы. Вынесите эту часть в отдельную функцию.
🔧 Имена переменных, функций или классов не передают их назначение. Имена должны сообщать, почему элемент кода существует, что он делает и как используется. Если видите, что намерения программиста непонятны без комментария, — рефакторьте.
🔧 Слишком длинные функции и методы. Оптимальный размер — 2-3 десятка строк. Если получается больше, разделите функцию на несколько маленьких и добавьте одну общую. Пусть маленькие выполняют по одной операции, а общая функция их вызывает.
🔧 Слишком длинный список параметров функции или метода. Они только запутывают, а не помогают. Если все эти параметры действительно нужны, вынесите их в отдельную структуру или класс с понятным именем, а в функцию передайте ссылку на него.
🔧 Много комментариев. Плохой код часто прикрывается обильными комментариями. Если почувствовали желание пояснить какой-то участок кода, попробуйте сначала его переписать, чтобы и так стал понятным. Бесполезные комментарии загромождают программу, а устаревшие и неактуальные вводят в заблуждение.
После каждой правки посмотрите на соседние участки кода: возможно, их тоже стоит поправить и сделать понятнее. И на те участки кода, которые давно не редактировались, — они уже могли стать некорректными.
После каждого изменения программу надо тестировать. Изменения при рефакторинге вносятся небольшие, так что ошибки обычно легко найти и исправить.
Делая рефакторинг, нужно быть внимательным. Небрежность может отбросить выполнение проекта на дни и недели. Но всё равно нельзя пренебрегать усовершенствованием кода, потому что это лучший способ ускорить работу в будущем. Небольшой рефакторинг это как дешевое вложение, которое всегда приносит дивиденды.