Что выведет программа?
Вопрос, который вы, скорее всего, услышите, если будете проходить техническое интервью на Go-разработчика.
Именно на подобных вопросах любят ловить кандидатов, проверяя как хорошо они знакомы с языком.
Во второй функции представлено именованное возвращаемое значение. Что это такое и почему лучше с ними не связываться в боевом коде хорошо написано в статье.
Подсказка:дефер вызывается после вычисления результата функции. Таким образом, в первом случае возвращаемая переменная и переменная, к которой добавляется 5, - это уже 2 разные переменные. В то время как вторая функция работает все время с одной и той же переменной.
Рекомендую такие задачи проговаривать вслух построчно, анализируя что и в каком порядке выполняется. Всегда задавайте вопрос себе: работаем ли мы со значением или с ссылкой.
<песочница>
#go
Вопрос, который вы, скорее всего, услышите, если будете проходить техническое интервью на Go-разработчика.
Именно на подобных вопросах любят ловить кандидатов, проверяя как хорошо они знакомы с языком.
Во второй функции представлено именованное возвращаемое значение. Что это такое и почему лучше с ними не связываться в боевом коде хорошо написано в статье.
Подсказка:
Рекомендую такие задачи проговаривать вслух построчно, анализируя что и в каком порядке выполняется. Всегда задавайте вопрос себе: работаем ли мы со значением или с ссылкой.
<песочница>
#go
👍2
Одна из побочных целей '23 - решить 15 задачек на литкоде. За весь год решил всего две и вот под конец октября решил все-таки добрать количество.
Амбициозно было думать, что за ноябрь наберу еще 12. На текущий момент добавил только 4.
При этом, очень легко потерять мотивацию, когда встречаешь задачу, на которую тратишь несколько часов времени.
Какие выводы можно сделать:
- решение алго-задач - навык, который нужно тренировать регулярно, чтобы легко проходить секцию лайв-кодинга на собеседовании в серьезную компанию
- в шахматах есть дебюты, знание которых необходимо для успешной игры, а в подобных задачах - паттерны, помогающие видеть закономерности между задачами и успешно их решать; в заметках держу курс, который хочется пройти со временем
- в задачах на литкоде уровень medium иногда проще, чем easy
Основная мысль такая: если за 30-40 минут задача не поддается, то нужно отвлечься/погулять. Крайне вероятно, что есть усталость, которая не позволяет ее решить.
Амбициозно было думать, что за ноябрь наберу еще 12. На текущий момент добавил только 4.
При этом, очень легко потерять мотивацию, когда встречаешь задачу, на которую тратишь несколько часов времени.
Какие выводы можно сделать:
- решение алго-задач - навык, который нужно тренировать регулярно, чтобы легко проходить секцию лайв-кодинга на собеседовании в серьезную компанию
- в шахматах есть дебюты, знание которых необходимо для успешной игры, а в подобных задачах - паттерны, помогающие видеть закономерности между задачами и успешно их решать; в заметках держу курс, который хочется пройти со временем
- в задачах на литкоде уровень medium иногда проще, чем easy
Основная мысль такая: если за 30-40 минут задача не поддается, то нужно отвлечься/погулять. Крайне вероятно, что есть усталость, которая не позволяет ее решить.
HighLoad++ 2023
В начале недели посетил свою первую профессиональную конференцию для разработчиков высоконагруженных систем.
Общее впечатление положительное.
Когда занимался информационным моделированием, то несколько раз посещал конференции подобного масштаба (Autodesk University Russia), мне есть с чем сравнивать.
‼️Недостатки в комментариях
Достоинства:
⁃ можно встретить «IT-звезд», которые с радостью поделятся экспертизой
⁃ легко познакомиться с будущим работодателем
⁃ конечно, заряд энергии на саморазвитие, когда вокруг тебя сотни профессионалов (но тут главное не словить синдром самозванца и не демотивироваться)
⁃ многие компании готовят стенды с мерчом, поэтому можно пополнить запас носков ;)
В будущем вряд ли захочу в одиночку посещать оба дня конференции. Теперь планка - набрать достаточно экспертизы, чтобы выступить с интересным и дискуссионным докладом.
В начале недели посетил свою первую профессиональную конференцию для разработчиков высоконагруженных систем.
Общее впечатление положительное.
Когда занимался информационным моделированием, то несколько раз посещал конференции подобного масштаба (Autodesk University Russia), мне есть с чем сравнивать.
‼️
Достоинства:
⁃ можно встретить «IT-звезд», которые с радостью поделятся экспертизой
⁃ легко познакомиться с будущим работодателем
⁃ конечно, заряд энергии на саморазвитие, когда вокруг тебя сотни профессионалов (но тут главное не словить синдром самозванца и не демотивироваться)
⁃ многие компании готовят стенды с мерчом, поэтому можно пополнить запас носков ;)
В будущем вряд ли захочу в одиночку посещать оба дня конференции. Теперь планка - набрать достаточно экспертизы, чтобы выступить с интересным и дискуссионным докладом.
🤔1
Ноябрь 2023:
✅ Завершил курс по Объектной модели (ВШПСБ)
✅ Дочитал книгу "Get Programming with Go" (Nathan Youngman Roger Peppé) // рекомендую для новичков "с нуля"
✅ Прочитал 1/8 книги "100 Go Mistakes and How to Avoid Them" (Teiva Harsanyi) // рекомендую для всех, начиная с мидла; кто не готов читать книгу, можно изучить авторский репозиторий со всеми кейсами
✅ Изучил материалы из email-рассылки HighLoad++ Junior // материал показался разрозненным, подается бессистемно; очевидно, это концентрат лучших докладов конференций прошлых лет; у меня все же ожидания были в сторону более структурированного гайда для новичков
✅ Принял участие в Highload++ // впечатления выше
✅ Прошел внутрикорпоративный курс по ведению блога. Увидел у себя много зон роста, понял что это довольно серьезная работа - регулярно заниматься блогом. Постараюсь держать баланс, чтобы ведение блога не шло во вред с изучением профессии.
⭕️ Решил 4 задачки на литкоде (планировал 12)
—
Планы на декабрь:
🔖 Пройти корпоративный тренажер по информационной безопасности на языке Go (повторно)
🔖 Книгу по микросервисам отложил на следующий год. Вместо этого переключился на еще одну книгу по Go (100 Go Mistakes). За декабрь хочу ее дочитать, чтобы в следующем году сфокусироваться на книгах по архитектуре.
🔖 По-максимуму закрываю цели на 2023 год
📝 Составляю цели и задачи на 2024 год
#результаты
✅ Завершил курс по Объектной модели (ВШПСБ)
✅ Дочитал книгу "Get Programming with Go" (Nathan Youngman Roger Peppé) // рекомендую для новичков "с нуля"
✅ Прочитал 1/8 книги "100 Go Mistakes and How to Avoid Them" (Teiva Harsanyi) // рекомендую для всех, начиная с мидла; кто не готов читать книгу, можно изучить авторский репозиторий со всеми кейсами
✅ Изучил материалы из email-рассылки HighLoad++ Junior // материал показался разрозненным, подается бессистемно; очевидно, это концентрат лучших докладов конференций прошлых лет; у меня все же ожидания были в сторону более структурированного гайда для новичков
✅ Принял участие в Highload++ // впечатления выше
✅ Прошел внутрикорпоративный курс по ведению блога. Увидел у себя много зон роста, понял что это довольно серьезная работа - регулярно заниматься блогом. Постараюсь держать баланс, чтобы ведение блога не шло во вред с изучением профессии.
⭕️ Решил 4 задачки на литкоде (планировал 12)
—
Планы на декабрь:
🔖 Пройти корпоративный тренажер по информационной безопасности на языке Go (повторно)
🔖 Книгу по микросервисам отложил на следующий год. Вместо этого переключился на еще одну книгу по Go (100 Go Mistakes). За декабрь хочу ее дочитать, чтобы в следующем году сфокусироваться на книгах по архитектуре.
🔖 По-максимуму закрываю цели на 2023 год
📝 Составляю цели и задачи на 2024 год
#результаты
GitHub
GitHub - teivah/100-go-mistakes: 📖 100 Go Mistakes and How to Avoid Them
📖 100 Go Mistakes and How to Avoid Them. Contribute to teivah/100-go-mistakes development by creating an account on GitHub.
🔥3
Декабрь 2023:
📌 Месяц, когда многие продуктовые команды в огне, так как пытаются успеть закрыть все свои задачи до фичафриза, а вместе с ними и ОКР'ы. И у меня был жаркий месяц: чувствуешь ответственность за общий результат в условиях ограниченного времени. Конечно, ничего страшного не произойдет, если какие-то задачи не закроешь, но очень уж хотелось запустить все продуктовые эксперименты, которые были на меня завязаны, и закрыть технические задачи, а вместе с ними и тех. ОКРы.
✅ Прошелся по целям и постарался закрыть то, что успевал закрыть
✅ Приступил к треку ООАП (объектно ориентированный анализ и проектирование) в ВШПСБ, где начал прохождение курса про "Правильность проектирования классов"
✅ Написал селф-ревью для будущего перф-ревью (как сделать это быстро и качественно расскажу в отдельном посте)
⭕️ Составляю цели и задачи на 2024 год (пока есть только черновик, не успел нарисовать роадмап и корректно их оформить - в процессе)
⭕️ Продолжаю чтение "100 Go Mistakes"
❌ Времени на корпоративный тренажер по ИБ не нашел
#результаты
📌 Месяц, когда многие продуктовые команды в огне, так как пытаются успеть закрыть все свои задачи до фичафриза, а вместе с ними и ОКР'ы. И у меня был жаркий месяц: чувствуешь ответственность за общий результат в условиях ограниченного времени. Конечно, ничего страшного не произойдет, если какие-то задачи не закроешь, но очень уж хотелось запустить все продуктовые эксперименты, которые были на меня завязаны, и закрыть технические задачи, а вместе с ними и тех. ОКРы.
✅ Прошелся по целям и постарался закрыть то, что успевал закрыть
✅ Приступил к треку ООАП (объектно ориентированный анализ и проектирование) в ВШПСБ, где начал прохождение курса про "Правильность проектирования классов"
✅ Написал селф-ревью для будущего перф-ревью (как сделать это быстро и качественно расскажу в отдельном посте)
⭕️ Составляю цели и задачи на 2024 год (пока есть только черновик, не успел нарисовать роадмап и корректно их оформить - в процессе)
⭕️ Продолжаю чтение "100 Go Mistakes"
❌ Времени на корпоративный тренажер по ИБ не нашел
#результаты
Итоги 2023:
❕Достижение поставленных целей❕
✅ Закрепился на позиции "крепкий мидл (middle+)" (перешел на E4 грейд в текущей компании). Следующий грейд уже сеньорский
✅ Разработал и развернул на своем VPS сервере бота, который радует коллег 3 раза в неделю шахматными задачками
✅ Выполнил дипломный проект в ВШПСБ и подтянул JavaScript до базового уровня, достаточного, чтобы делать несложные проекты
✅ Начиная с февраля, каждое воскресенье занимался английским с американским преподавателем по совету одного из авторов на Хабре
✅ Прокачал свои профили на linkedin (поправил описание опыта и расширил сеть контактов, осталось 18 коннектов до заветной 500-ки) и github (добавил ридми "о себе", виджет со статистикой + выложил новые проекты)
⭕️ Прочитал книгу "Get Programming with Go", половину книги "100 Go Mistakes and How to Avoid Them" и 1/3 "Изучаем SQL" (Алан Бьюли)
⭕️ Решил 12/15 задач на литкоде
❌ Не нашел время для прохождения тренажера по кибер-безопасности
❌ Планировал глубоко изучить TDD, но ограничился лишь вводными статьями
❌ Курс по Linux не прошел. Понял, что это низко приоритетная для меня активность
❕ Что еще было за год ❕
hard skills:
✔️ Прошел курс по верстке HTML / CSS (htmlacademy)
✔️ Сделал несколько MVP проектов для знакомого стартапа (добавил в копилку технологий beanstalkd)
✔️ Позанимался непродолжительное время с ментором, копнул глубже в сети и реализовал примитивный балансировщик нагрузки
✔️ Освоил ChatGPT. Прошел все стадии: от "вау, это меняет все" до "неплохой инструмент, можно использовать время от времени с осторожностью"
✔️ Закончил курс в ВШПСБ по парадигмам программирования. Познакомился с мультипарадигменным языком Julia
✔️ Сделал дипломный проект в ВШПСБ, познакомившись с веб-фреймворком Gin для Go
✔️ Начал погружение в объектно ориентированные анализ и проектирование (ООАП)
soft skills:
✔️ Вдохновил и организовал команду для участия в антихакатоне (заняли 2-е место)
✔️ Вдохновил и организовал команду для участия в хакатоне (топ 3 по результатам зрительских симпатий)
✔️ Организовал регулярное обучение шахматам для всех (занятия 4 раза в неделю), активно развиваю внутреннее коммьюнити ~chess, которое выросло за год в 4 раза
✔️ Завершил несколько курсов по софт-скиллам: "Эффективный театр" и "Продвинутые джедайские техники"
✔️ Написал 3 селф-ревью и собрал для тим-лида достаточную доказательную базу для моего промоута в соответствии с матрицей компетенций для инженера на следующем уровне
также:
✔️ Принял участие в профессиональной конференции разработчиков Highload++
✔️ Провел около 15 технических собеседований (скрининг и платформа Go)
✔️ Снялся в ролике для Хабра и недели бэкенда
✔️ Принял участие в корпоративном интенсиве о том как развивать свой бренд и вести блог
✔️ Сделал ребрендинг канала
#итоги
❕Достижение поставленных целей❕
✅ Закрепился на позиции "крепкий мидл (middle+)" (перешел на E4 грейд в текущей компании). Следующий грейд уже сеньорский
✅ Разработал и развернул на своем VPS сервере бота, который радует коллег 3 раза в неделю шахматными задачками
✅ Выполнил дипломный проект в ВШПСБ и подтянул JavaScript до базового уровня, достаточного, чтобы делать несложные проекты
✅ Начиная с февраля, каждое воскресенье занимался английским с американским преподавателем по совету одного из авторов на Хабре
✅ Прокачал свои профили на linkedin (поправил описание опыта и расширил сеть контактов, осталось 18 коннектов до заветной 500-ки) и github (добавил ридми "о себе", виджет со статистикой + выложил новые проекты)
⭕️ Прочитал книгу "Get Programming with Go", половину книги "100 Go Mistakes and How to Avoid Them" и 1/3 "Изучаем SQL" (Алан Бьюли)
⭕️ Решил 12/15 задач на литкоде
❌ Не нашел время для прохождения тренажера по кибер-безопасности
❌ Планировал глубоко изучить TDD, но ограничился лишь вводными статьями
❌ Курс по Linux не прошел. Понял, что это низко приоритетная для меня активность
❕ Что еще было за год ❕
hard skills:
✔️ Прошел курс по верстке HTML / CSS (htmlacademy)
✔️ Сделал несколько MVP проектов для знакомого стартапа (добавил в копилку технологий beanstalkd)
✔️ Позанимался непродолжительное время с ментором, копнул глубже в сети и реализовал примитивный балансировщик нагрузки
✔️ Освоил ChatGPT. Прошел все стадии: от "вау, это меняет все" до "неплохой инструмент, можно использовать время от времени с осторожностью"
✔️ Закончил курс в ВШПСБ по парадигмам программирования. Познакомился с мультипарадигменным языком Julia
✔️ Сделал дипломный проект в ВШПСБ, познакомившись с веб-фреймворком Gin для Go
✔️ Начал погружение в объектно ориентированные анализ и проектирование (ООАП)
soft skills:
✔️ Вдохновил и организовал команду для участия в антихакатоне (заняли 2-е место)
✔️ Вдохновил и организовал команду для участия в хакатоне (топ 3 по результатам зрительских симпатий)
✔️ Организовал регулярное обучение шахматам для всех (занятия 4 раза в неделю), активно развиваю внутреннее коммьюнити ~chess, которое выросло за год в 4 раза
✔️ Завершил несколько курсов по софт-скиллам: "Эффективный театр" и "Продвинутые джедайские техники"
✔️ Написал 3 селф-ревью и собрал для тим-лида достаточную доказательную базу для моего промоута в соответствии с матрицей компетенций для инженера на следующем уровне
также:
✔️ Принял участие в профессиональной конференции разработчиков Highload++
✔️ Провел около 15 технических собеседований (скрининг и платформа Go)
✔️ Снялся в ролике для Хабра и недели бэкенда
✔️ Принял участие в корпоративном интенсиве о том как развивать свой бренд и вести блог
✔️ Сделал ребрендинг канала
#итоги
🔥3👍2
Привет! Меня зовут Александр Новиков и мне сегодня 30.
Хочу результировать свою экспертизу и рассказать про то, что можно увидеть на канале.
☀️ Сегодня
Бэкенд инженер в компании Авито. С 2022 года развиваю вертикаль Услуги в продуктовой кросс-функциональной команде.
Мой ежедневный инструмент - Go. Специализируюсь на построении серверной части высоконагруженных систем.
🧊 В прошлом
.NET разработчик настольных приложений на C#.
Сертифицированный эксперт в области информационного моделирования зданий (BIM).
BIM-менеджер, разработчик стандартов организации по использованию технологии (EIR, BEP, BS и др.).
Автор научных статей, преподаватель политехнического университета Петра Великого.
🎓 Мое образование
Магистр по направлению "Строительство".
✍️ О чем пишу
- Как я начинал писать код, как выбирал первый язык программирования и в каком направлении двигался
- Каким самообразованием занимаюсь
- С какими трудностями сталкивался и как не потерять мотивацию
- Где брать идеи для пет-проектов
- Какие полезные уроки извлек
- Какие цели ставлю и резюмирую чего удалось достичь
Несмотря на текущую позицию, мой путь в Big Tech только начинается. Уверен, что впереди океан интересного опыта, который будет здорово исследовать вместе.
👨💻 Как выглядит мой код
См. -> Github
📈 Как выглядит моя карьера
См. -> Linkedin
👨🎤 Как выгляжу я
См. -> Youtube
#️⃣ Тэги для навигации
#процесс (начало: мысли и действия)
#карьера (карьерные вехи)
#проект (разработка пет-проекта)
#результаты (за месяц)
#итоги (за год)
#цели
#go
#безопасность
Хочу результировать свою экспертизу и рассказать про то, что можно увидеть на канале.
☀️ Сегодня
Бэкенд инженер в компании Авито. С 2022 года развиваю вертикаль Услуги в продуктовой кросс-функциональной команде.
Мой ежедневный инструмент - Go. Специализируюсь на построении серверной части высоконагруженных систем.
🧊 В прошлом
.NET разработчик настольных приложений на C#.
Сертифицированный эксперт в области информационного моделирования зданий (BIM).
BIM-менеджер, разработчик стандартов организации по использованию технологии (EIR, BEP, BS и др.).
Автор научных статей, преподаватель политехнического университета Петра Великого.
🎓 Мое образование
Магистр по направлению "Строительство".
✍️ О чем пишу
- Как я начинал писать код, как выбирал первый язык программирования и в каком направлении двигался
- Каким самообразованием занимаюсь
- С какими трудностями сталкивался и как не потерять мотивацию
- Где брать идеи для пет-проектов
- Какие полезные уроки извлек
- Какие цели ставлю и резюмирую чего удалось достичь
Несмотря на текущую позицию, мой путь в Big Tech только начинается. Уверен, что впереди океан интересного опыта, который будет здорово исследовать вместе.
👨💻 Как выглядит мой код
См. -> Github
📈 Как выглядит моя карьера
См. -> Linkedin
👨🎤 Как выгляжу я
См. -> Youtube
#️⃣ Тэги для навигации
#процесс (начало: мысли и действия)
#карьера (карьерные вехи)
#проект (разработка пет-проекта)
#результаты (за месяц)
#итоги (за год)
#цели
#go
#безопасность
🔥6
Новиков > путь в Big Tech pinned «Привет! Меня зовут Александр Новиков и мне сегодня 30. Хочу результировать свою экспертизу и рассказать про то, что можно увидеть на канале. ☀️ Сегодня Бэкенд инженер в компании Авито. С 2022 года развиваю вертикаль Услуги в продуктовой кросс-функциональной…»
С Днем упавших тестов!
Первый рабочий день был ознаменован удивительным поведением мастер-ветки нужного мне сервиса, в которой падали тесты, начиная с Нового Года.
К счастью, на этот случай придумали фича-фриз, когда за неделю до больших Праздников блокируется любая выкатка в прод (кроме серьезных фиксов), чтобы сохранять его стабильность.
В свою очередь, я настоятельно попросил коллег не ограничиваться инкрементом значения в том месте, где упал тест (а то можно было бы передавать привет нам из 2025), а сделать рефакторинг, чтобы не зависеть от смены года.
Если бы меня попросили дать ровно 1 совет для написания юнит-тестов, то вероятно он был такой: не завязывайтесь на поведение, которое вы не можете контролировать.
Первый рабочий день был ознаменован удивительным поведением мастер-ветки нужного мне сервиса, в которой падали тесты, начиная с Нового Года.
К счастью, на этот случай придумали фича-фриз, когда за неделю до больших Праздников блокируется любая выкатка в прод (кроме серьезных фиксов), чтобы сохранять его стабильность.
В свою очередь, я настоятельно попросил коллег не ограничиваться инкрементом значения в том месте, где упал тест (а то можно было бы передавать привет нам из 2025), а сделать рефакторинг, чтобы не зависеть от смены года.
Если бы меня попросили дать ровно 1 совет для написания юнит-тестов, то вероятно он был такой: не завязывайтесь на поведение, которое вы не можете контролировать.
🔗 LinkedIn
Из всех социальных сетей, вероятно, самая полезная для построения карьеры будет - LinkedIn. Но она же является и самой требовательной, в первую очередь, к содержанию вашего профиля и той активности, которую вы демонстрируете.
Не скажу, что у меня каноничный профиль, но я стремлюсь к тому, чтобы он таким стал.
Какие вижу преимущества этой соц. сети с точки зрения разработчика:
1. Если у вас сильный профиль, то вы больше не ищете работу, а она сама находит вас. За последние полгода мне на почту пришло около 10 предложений с предложением пройти интервью в топовые тех. компании. Конечно, это не оффер, но теперь вы решаете: принимать ли приглашение рекрутеров или отказывать, как они вам когда-то в начале пути :)
2. Отличная возможность выйти напрямую на людей, в компанию которых вы хотите попасть, минуя стандартный hr-фильтр на площадках с поиском работы.
3. Так как многие пытаются выделить свой профиль, то зачастую встречаются хорошие подборки по техническим материалам. Например, подборка материалов для подготовки к собеседованиям в FAANG.
4. Интересно наблюдать за карьерой известных людей, а также своих знакомых. Плюс отличная возможность поддерживать контакт, особенно когда видишь, что вы можете потенциально зареферить друг друга в свои компании.
Недостатки:
1. На мой взгляд, всего один - вам нужно сделать сильный профиль (это займет время) и поддерживать его активность, чтобы он выглядел солидно и "свежо" для людей, которые хотят предложить вам работу.
Чек-лист по ведению своего профиля, основанный на моем опыте:
☑️ Красивое портретное фото, где видно ваше лицо и энергию
☑️ Лаконичный заголовок, который характеризует вас как специалиста и который релевантен вакансиям, на которые вы претендуете
☑️ Блок о себе желательно заполнить концентрированной информацией о своих навыках и важных карьерных вехах (раскрываем заголовок шире)
☑️ Опыт => Важнейший блок, который нужно заполнять по формуле: сделал X, можно измерить в Y, шаги к достижению Z
☑️ Образование / Волонтерский опыт => Полезно указывать (с указанным образованием предлагают подборки с открытыми позициями, где работают выпускники такого же ВУЗа или другого учреждения)
☑️ Рекомендации / Достижения => С рекомендациями профиль выглядит солиднее, поэтому можно при случае написать с коллегой друг другу
☑️ Активность => Проявляйте активность! Конечно, хорошо, когда вы эксперт и можете делиться своим опытом, но если нет, то неплохой альтернативой являются реакции к другим постам (конечно, профессиональным, так как встречаются и развлекательные), а еще важнее - комментарии, когда вы готовы обсудить что-то с другими под чьим-нибудь постом
☑️ Добавляйтесь в коннекты к тем людям, которые работают в вашей области, так ваша лента и рекомендации будут полезнее
☑️ Ведите профиль на английском
Из всех социальных сетей, вероятно, самая полезная для построения карьеры будет - LinkedIn. Но она же является и самой требовательной, в первую очередь, к содержанию вашего профиля и той активности, которую вы демонстрируете.
Не скажу, что у меня каноничный профиль, но я стремлюсь к тому, чтобы он таким стал.
Какие вижу преимущества этой соц. сети с точки зрения разработчика:
1. Если у вас сильный профиль, то вы больше не ищете работу, а она сама находит вас. За последние полгода мне на почту пришло около 10 предложений с предложением пройти интервью в топовые тех. компании. Конечно, это не оффер, но теперь вы решаете: принимать ли приглашение рекрутеров или отказывать, как они вам когда-то в начале пути :)
2. Отличная возможность выйти напрямую на людей, в компанию которых вы хотите попасть, минуя стандартный hr-фильтр на площадках с поиском работы.
3. Так как многие пытаются выделить свой профиль, то зачастую встречаются хорошие подборки по техническим материалам. Например, подборка материалов для подготовки к собеседованиям в FAANG.
4. Интересно наблюдать за карьерой известных людей, а также своих знакомых. Плюс отличная возможность поддерживать контакт, особенно когда видишь, что вы можете потенциально зареферить друг друга в свои компании.
Недостатки:
1. На мой взгляд, всего один - вам нужно сделать сильный профиль (это займет время) и поддерживать его активность, чтобы он выглядел солидно и "свежо" для людей, которые хотят предложить вам работу.
Чек-лист по ведению своего профиля, основанный на моем опыте:
☑️ Красивое портретное фото, где видно ваше лицо и энергию
☑️ Лаконичный заголовок, который характеризует вас как специалиста и который релевантен вакансиям, на которые вы претендуете
☑️ Блок о себе желательно заполнить концентрированной информацией о своих навыках и важных карьерных вехах (раскрываем заголовок шире)
☑️ Опыт => Важнейший блок, который нужно заполнять по формуле: сделал X, можно измерить в Y, шаги к достижению Z
☑️ Образование / Волонтерский опыт => Полезно указывать (с указанным образованием предлагают подборки с открытыми позициями, где работают выпускники такого же ВУЗа или другого учреждения)
☑️ Рекомендации / Достижения => С рекомендациями профиль выглядит солиднее, поэтому можно при случае написать с коллегой друг другу
☑️ Активность => Проявляйте активность! Конечно, хорошо, когда вы эксперт и можете делиться своим опытом, но если нет, то неплохой альтернативой являются реакции к другим постам (конечно, профессиональным, так как встречаются и развлекательные), а еще важнее - комментарии, когда вы готовы обсудить что-то с другими под чьим-нибудь постом
☑️ Добавляйтесь в коннекты к тем людям, которые работают в вашей области, так ваша лента и рекомендации будут полезнее
☑️ Ведите профиль на английском
👍1🔥1
В этом году я решил пересмотреть свою методику целеполагания в сторону использоваться ОКР'ов.
Такой подход активно используют ведущие IT-компании и с ним постоянно сталкиваюсь в работе.
Основная суть в следующем:
1. Берем довольно протяженный отрезок времени. Год отлично подходит
2. Ставим 3-5 амбициозных целей - это наши "objectives"
3. Для каждой цели добавляем 3-5 измеримых ключевых результата - "key results"
Важно потратить надлежащее время к составлению целей и ключевых результатов, иначе - время в пустую.
Лучшие практики Google:
- Цели должны быть амбициозны и доставлять некоторого рода неудобства (отвечаем на вопрос "Чего я хочу достичь?")
- Ключевые результаты должны быть измеримы и подаваться оценке с помощью удельного веса, например, от 0 - 1.0 от общей цели (отвечаем на вопрос "Как я могу их измерить?")
- ОКР публичны и доступны для всех (прошлые и настоящие)
- Идеальное значение по достижению ОКР лежит между 0.6 и 0.7 (если у нас 1.0 в результате, значит ОКР не был достаточно амбициозен, при этом, если значение меньше, то не следует строго к этому относиться, а стоит сделать выводы и учесть такой опыт в постановки будущих ОКРов)
Полезный к прочтению Google Playbook.
Такой подход активно используют ведущие IT-компании и с ним постоянно сталкиваюсь в работе.
Основная суть в следующем:
1. Берем довольно протяженный отрезок времени. Год отлично подходит
2. Ставим 3-5 амбициозных целей - это наши "objectives"
3. Для каждой цели добавляем 3-5 измеримых ключевых результата - "key results"
Важно потратить надлежащее время к составлению целей и ключевых результатов, иначе - время в пустую.
Лучшие практики Google:
- Цели должны быть амбициозны и доставлять некоторого рода неудобства (отвечаем на вопрос "Чего я хочу достичь?")
- Ключевые результаты должны быть измеримы и подаваться оценке с помощью удельного веса, например, от 0 - 1.0 от общей цели (отвечаем на вопрос "Как я могу их измерить?")
- ОКР публичны и доступны для всех (прошлые и настоящие)
- Идеальное значение по достижению ОКР лежит между 0.6 и 0.7 (если у нас 1.0 в результате, значит ОКР не был достаточно амбициозен, при этом, если значение меньше, то не следует строго к этому относиться, а стоит сделать выводы и учесть такой опыт в постановки будущих ОКРов)
Полезный к прочтению Google Playbook.
🎯 Рад представить свои ОКР'ы на 2024 год!
Процесс затянулся, но уверен, что это время было на пользу конечному результату.
ОКР'ы будут жить в публичной страничке инструмента Notion и там же эволюционировать. Поэтому будет легко следить за прогрессом.
На выбор и адаптацию инструмента потратил не мало времени. Из серьезных конкурентов был Google Sheets, как наиболее простой и доступный. Но захотелось сделать красиво.
Итого
У меня 4 амбициозных целей:
1. Повысить свой грейд до E5 (стать синьор разработчиком)
2. Становление Full-Stack разработчиком (закрываю пробелы по фронтенду)
3. Развиваю мышление в направлении проектирования и сильных абстракций
4. Создаю свой профессиональный и сильный бренд, как инженер-программист
И 12-16 ключевых результатов, по которым легко отслеживать мой прогресс по целям, а также есть полное понимание о том, что нужно делать, чтобы двигаться вперед.
#цели
Процесс затянулся, но уверен, что это время было на пользу конечному результату.
ОКР'ы будут жить в публичной страничке инструмента Notion и там же эволюционировать. Поэтому будет легко следить за прогрессом.
На выбор и адаптацию инструмента потратил не мало времени. Из серьезных конкурентов был Google Sheets, как наиболее простой и доступный. Но захотелось сделать красиво.
Итого
У меня 4 амбициозных целей:
1. Повысить свой грейд до E5 (стать синьор разработчиком)
2. Становление Full-Stack разработчиком (закрываю пробелы по фронтенду)
3. Развиваю мышление в направлении проектирования и сильных абстракций
4. Создаю свой профессиональный и сильный бренд, как инженер-программист
И 12-16 ключевых результатов, по которым легко отслеживать мой прогресс по целям, а также есть полное понимание о том, что нужно делать, чтобы двигаться вперед.
#цели
👍3🔥1
Январь 2024:
навыки
✔️ Прошел курс по ООАП, где занимался проектированием классов на основе АТД. Результат работы можно посмотреть здесь
✔️ Изменил подход к изучению английского и поменял преподавателя. Теперь занимаюсь 2 раза в неделю по 50 минут вместо 1 занятия на 90 минут
канал
✔️ Подвел итоги прошедшего года
✔️ Написал интро-сообщение для канала
цели
✔️ Разработал файлик с ОКРами на 24-й год
#результаты
навыки
✔️ Прошел курс по ООАП, где занимался проектированием классов на основе АТД. Результат работы можно посмотреть здесь
✔️ Изменил подход к изучению английского и поменял преподавателя. Теперь занимаюсь 2 раза в неделю по 50 минут вместо 1 занятия на 90 минут
канал
✔️ Подвел итоги прошедшего года
✔️ Написал интро-сообщение для канала
цели
✔️ Разработал файлик с ОКРами на 24-й год
#результаты
🔥2
Как быть эффективным x2
Нас окружает множество бытовых или семейных дел, которые со временем превращаются в рутину. Такие дела требуют нашего ресурса и внимания, что порой нас сильно утомляет и даже иногда злит. Начинают появляться мысли, что это время проходит впустую и ты мог бы найти для него лучшее применение...
Расскажу что работает для меня.
Возьмем, к примеру, любой тайм-консьюмер: поездка в транспорте, пешая прогулка до работы, уборка дома или квартиры, прогулка с собакой (к сожалению, иногда это тоже становится рутиной) и пр.
Итак, у нас есть деятельность, которая требует от нас какого-то физического усилия, но мозг в этот момент праздно блуждает по мыслям, прокручивая рабочие задачи или планируя следующий день. Как же подкинуть для себя какую-нибудь интеллектуальную деятельность в этот момент?
Подкасты
При этом, я уверен, что немало людей такой рецепт уже используют. Но как же из него получить в 2 раза больше пользы?
Так как я относительно активно учу английский язык, то решил, что подкасты у меня тоже должны быть на английском.
И вот тут появляется большая вариативность по увеличению эффективности.
Например, я беру английский подкаст, в котором общаются программисты о своей профессии, технологиях и лайфхаках.
Так как подкасты зачастую ведут люди с хорошим произношением, то таким образом я могу улучшать свое понимание английской речи, а также еще получаю полезную информацию в IT.
Конечно, тут есть нюанс. Для понимания подобных подкастов и максимальной пользы у вас должен быть уровень владения иностранным языком не менее среднего. Мне хватает B1 в английском, чтобы без особого напряжения слушать и понимать некоторые подкасты.
При этом я:
- фиксирую и разбираю незнакомые слова после прослушивания или находу
- делаю полезные заметки, связанные с программированием (лайфхаки или просто записываю свои мысли)
Крайне важно найти интересный и полезный для вас подкаст.
Попробуйте начать с 15 минут в день. И со временем, это станет еще одной полезной привычкой!
Нас окружает множество бытовых или семейных дел, которые со временем превращаются в рутину. Такие дела требуют нашего ресурса и внимания, что порой нас сильно утомляет и даже иногда злит. Начинают появляться мысли, что это время проходит впустую и ты мог бы найти для него лучшее применение...
Расскажу что работает для меня.
Возьмем, к примеру, любой тайм-консьюмер: поездка в транспорте, пешая прогулка до работы, уборка дома или квартиры, прогулка с собакой (к сожалению, иногда это тоже становится рутиной) и пр.
Итак, у нас есть деятельность, которая требует от нас какого-то физического усилия, но мозг в этот момент праздно блуждает по мыслям, прокручивая рабочие задачи или планируя следующий день. Как же подкинуть для себя какую-нибудь интеллектуальную деятельность в этот момент?
При этом, я уверен, что немало людей такой рецепт уже используют. Но как же из него получить в 2 раза больше пользы?
Так как я относительно активно учу английский язык, то решил, что подкасты у меня тоже должны быть на английском.
И вот тут появляется большая вариативность по увеличению эффективности.
Например, я беру английский подкаст, в котором общаются программисты о своей профессии, технологиях и лайфхаках.
Так как подкасты зачастую ведут люди с хорошим произношением, то таким образом я могу улучшать свое понимание английской речи, а также еще получаю полезную информацию в IT.
Конечно, тут есть нюанс. Для понимания подобных подкастов и максимальной пользы у вас должен быть уровень владения иностранным языком не менее среднего. Мне хватает B1 в английском, чтобы без особого напряжения слушать и понимать некоторые подкасты.
При этом я:
- фиксирую и разбираю незнакомые слова после прослушивания или находу
- делаю полезные заметки, связанные с программированием (лайфхаки или просто записываю свои мысли)
Крайне важно найти интересный и полезный для вас подкаст.
Попробуйте начать с 15 минут в день. И со временем, это станет еще одной полезной привычкой!
👍3
За 6 месяцев в IBM на позицию фулстек разработчика
"Develop Yourself" - подкаст, который я слушаю последние несколько месяцев. При этом, часто подобные подкасты представляют собой фасад, за которым вас ожидают курсы от автора, а повествование строится вокруг истории гостя - успешного разработчика, который раньше работал в другой сфере, но через труд и дисциплину стал программистом.
Всегда важно критически оценивать ту информацию, которую слышите. У каждого свой путь, свои уникальные навыки и обстоятельства, которые будут вас сопровождать.
История тренера по кроссфиту, которая с нуля устроилась в крупнейшую мировую компанию на полную ставку разработчика, для меня выглядит удивительно. Даже, если человек упорно трудился, скорее всего, в истории опущены важные детали и мы видим то, что нам позволяют видеть.
Конечно, хорошо, когда есть такие вдохновляющие истории. Но, чтобы не потерять мотивацию и не строить ложных ожиданий, не сравнивайте себя с 1%, которым это удалось. Крайне вероятно, что это "выжившие".
"Develop Yourself" - подкаст, который я слушаю последние несколько месяцев. При этом, часто подобные подкасты представляют собой фасад, за которым вас ожидают курсы от автора, а повествование строится вокруг истории гостя - успешного разработчика, который раньше работал в другой сфере, но через труд и дисциплину стал программистом.
Всегда важно критически оценивать ту информацию, которую слышите. У каждого свой путь, свои уникальные навыки и обстоятельства, которые будут вас сопровождать.
История тренера по кроссфиту, которая с нуля устроилась в крупнейшую мировую компанию на полную ставку разработчика, для меня выглядит удивительно. Даже, если человек упорно трудился, скорее всего, в истории опущены важные детали и мы видим то, что нам позволяют видеть.
Конечно, хорошо, когда есть такие вдохновляющие истории. Но, чтобы не потерять мотивацию и не строить ложных ожиданий, не сравнивайте себя с 1%, которым это удалось. Крайне вероятно, что это "выжившие".
В ближайшие месяцы планирую взять на себя роль Security Champion нашей продуктовой команды.
Это поможет улучшить свои знания в кибер-безопасности, а также усилить свою команду экспертизой в этом направлении.
Если совсем кратко, то секьюрити чемпион предупреждает любые риски связанные с уязвимостью поставляемых фич или новых сервисов.
Чтобы перенять эту роль, существует роадмап. Приведу основные пункты из него:
1. Пройти security gym на одном из основных языков программирования (go, php, js) - это тренажер, состоящий из 12-ти заданий, в каждом из которых разбираются основные уязвимости в формате задач.
2. Пройти несколько воркшопов по моделированию угроз, пентесту и криптографии.
3. Провести сессию по моделированию угроз для команды.
В связи с этим планирую выпустить цикл постов, где разберу основные уязвимости веб-разработки и приведу примеры как их избежать в Go.
Это поможет улучшить свои знания в кибер-безопасности, а также усилить свою команду экспертизой в этом направлении.
Если совсем кратко, то секьюрити чемпион предупреждает любые риски связанные с уязвимостью поставляемых фич или новых сервисов.
Чтобы перенять эту роль, существует роадмап. Приведу основные пункты из него:
1. Пройти security gym на одном из основных языков программирования (go, php, js) - это тренажер, состоящий из 12-ти заданий, в каждом из которых разбираются основные уязвимости в формате задач.
2. Пройти несколько воркшопов по моделированию угроз, пентесту и криптографии.
3. Провести сессию по моделированию угроз для команды.
В связи с этим планирую выпустить цикл постов, где разберу основные уязвимости веб-разработки и приведу примеры как их избежать в Go.
owasp.org
OWASP Security Culture | OWASP Foundation
OWASP Security Culture on the main website for The OWASP Foundation. OWASP is a nonprofit foundation that works to improve the security of software.
👍6🔥5
Межсайтовый скриптинг (XSS) в HTML
XSS - одна из разновидность инъекций в уязвимости веб-приложений. Если форма ввода никак не валидируется, то очень легко вместо ожидаемого значения подложить вредоносный скрипт.
Предлагаю ознакомиться с лучшими практиками по предотвращению подобной атаки и применить полученные знания.
Задание: Как сделать код ниже более безопасным?
Код написан на Go. Если раньше с языком не работали, для сборки проекта можно использовать инструкцию.
0) Создайте файлик main.go и поместите туда код из задания
1) Соберите и запустите проект (
2) Перейдите на
3) Попробуйте ввести ожидаемый ввод, например:
4) А теперь попробуйте подложить вредоносный скрипт в другой запрос, например:
5) У нас выполнился безобидный скрипт с простым алертом. А, если можно выполнить его, то можно выполнить что угодно таким способом, не так ли?
6) Исправьте уязвимость
Исправленный код
#безопасность
XSS - одна из разновидность инъекций в уязвимости веб-приложений. Если форма ввода никак не валидируется, то очень легко вместо ожидаемого значения подложить вредоносный скрипт.
Предлагаю ознакомиться с лучшими практиками по предотвращению подобной атаки и применить полученные знания.
Задание: Как сделать код ниже более безопасным?
Код написан на Go. Если раньше с языком не работали, для сборки проекта можно использовать инструкцию.
0) Создайте файлик main.go и поместите туда код из задания
1) Соберите и запустите проект (
go run main.go)2) Перейдите на
http://localhost:4000/3) Попробуйте ввести ожидаемый ввод, например:
?name=Alexander4) А теперь попробуйте подложить вредоносный скрипт в другой запрос, например:
?name=</div><noscript>alert(document.cookie)</noscript><div>5) У нас выполнился безобидный скрипт с простым алертом. А, если можно выполнить его, то можно выполнить что угодно таким способом, не так ли?
6) Исправьте уязвимость
#безопасность
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/", HelloHandler)
err := http.ListenAndServe(":4000", mux)
log.Fatal(err)
}
func HelloHandler(w http.ResponseWriter, req *http.Request) {
http.SetCookie(w, &http.Cookie{Name: "user", Value: "guest"})
http.SetCookie(w, &http.Cookie{Name: "password", Value: "qwerty123"})
helloTemplate := `
<html>
<head></head>
<body>
<p>Hello, <b>%s</b></p>
</body>
</html>
`
name := req.URL.Query().Get("name")
fmt.Fprintf(w, helloTemplate, name)
}
owasp.org
Cross Site Scripting (XSS) | OWASP Foundation
Cross Site Scripting (XSS) on the main website for The OWASP Foundation. OWASP is a nonprofit foundation that works to improve the security of software.
👍2
Межсайтовый скриптинг (XSS) в ответах API
XSS атаки бывают не только в HTML, но и в серверных ответах API.
И если в прошлый раз мы закрывали уязвимость заменой 5 основных символов: <, >, &, ' и " - то теперь используем другой подход.
В некоторых библиотеках для работы с HTML (для Go это text/template и net/http) заголовок Content-Type проставляется автоматически в зависимости от содержимого. И, если в коде ответа будут обнаружены html-тэги, то может проставиться заголовок подразумевающий выполнение кода браузером.
Таким образом, явная установка нужного хэдера, отмечающего за Content-Type, также позволяет избежать XSS.
Прикладываю код с уязвимостью, который нужно обезопасить.
Исправленный код
#безопасность
XSS атаки бывают не только в HTML, но и в серверных ответах API.
И если в прошлый раз мы закрывали уязвимость заменой 5 основных символов: <, >, &, ' и " - то теперь используем другой подход.
В некоторых библиотеках для работы с HTML (для Go это text/template и net/http) заголовок Content-Type проставляется автоматически в зависимости от содержимого. И, если в коде ответа будут обнаружены html-тэги, то может проставиться заголовок подразумевающий выполнение кода браузером.
Таким образом, явная установка нужного хэдера, отмечающего за Content-Type, также позволяет избежать XSS.
Прикладываю код с уязвимостью, который нужно обезопасить.
#безопасность
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/", HelloHandler)
err := http.ListenAndServe(":4000", mux)
log.Fatal(err)
}
func HelloHandler(w http.ResponseWriter, req *http.Request) {
helloTemplate := `{{.}}`
tmpl := template.New("hello")
tmpl, _ = tmpl.Parse(helloTemplate)
name := req.URL.Query().Get("name")
_ = tmpl.Execute(w, name)
}
IDE делает вас глупее [1/2]
Каждый ли помнит как написать простейший цикл на своем языке или слово
3 года назад я купил IDE Rider от компании JetBrains для разработки на платформе .NET, а также призывал инвестировать в свой комфорт.
В тот момент я не понимал как можно вести разработку под .NET без одной из IDE: MS Visual Studio или JetBrains Rider. Я использовал обе и это было очень удобно, но я совершенно не задумывался, что происходит внутри: когда я создавал новый консольный, веб или WPF-проект или когда запускал дебагер. Это просто работало и я мог писать свой код.
Когда я перешел на Go, то IDE Goland от JetBrains - была самым очевидным выбором. Я слышал, что это лучшее решение на рынке и мне очень оно нравилось. Тем более, сперва у меня была бесплатная версия для учебных целей, а потом компания предоставила лицензию для работы.
Такой мультитул сильно повышает скорость и удобство. Но многие ли задумываются о том, что скрывает внутри себя любимая интегрированная среда разработки, предлагая нам тот комфорт, к которому мы привыкли? 🤔
...
В первую очередь,редактор текста .
У меня есть коллега, который до сих пор принципиально использует Vim. Ему так удобнее и быстрее. Пару недель назад он давал мастер-класс по своему инструментарию для разработки и это действительно поражает, как быстро и эффективно можно работать без мыши и без классических тяжеловесных IDE.
Про удобство Vim слышу от многих разработчиков, в особенности про Neovim. Но порог вхождения очень высокий, особенно, если начинали свой путь с популярных IDE, которые все делают за вас.
IDE - это не только текстовый редактор, но она также включает SDK выбранного языка, а это компилятор (если язык компилируемый), стандартные библиотеки, дебагер, LSP для автокомплита и множество других фич.
Очевидно, возникает вопрос: зачем отказываться от IDE, которая максимально облегчает твою жизнь в разработке?
Ответить можно по-разному, но вот несколько моих причин:
1. В РФ JetBrains прекратила поддержку своих продуктов, а значит их стало сложнее купить для личного использования, а "белым" компаниям практически невозможно.
2. Отсутствие поддержки = отсутствие обновлений, а это чревато комфортом в работе. Например, полгода назад мне пришлось самостоятельно разбираться в версиях дебагера, которую использовала IDE и вручную переопределять его конфигурацию, скачивая самую актуальную сборку Delve.
3. Некорректная работа IDE при отладке больших проектов. Пару раз Goland вводила меня в заблуждение своим поведением и все, что помогало - перезагрузка среды или ПК (да, пару раз было и такое).
4. Я время от времени балуюсь C#, а для разработки под него нужна отдельная IDE.
5. Все, что описал выше, уже с лихвой оправдывало переход на другой инструмент, но сюда еще и добавилось мое любопытство к тому, что именно заменяет IDE, когда стал отказываться от нее.
Так можно ли жить без IDE совсем? Каждый решаем сам, но для себя я решил однозначно: да.
В четверг расскажу о своем сетапе для разработки (где пишу код и какие еще использую инструменты).
Каждый ли помнит как написать простейший цикл на своем языке или слово
for и двойная команда TAB делает это за нас? Способны ли вы, смерджив несколько веток в мастер и разрешив при этом конфликты, собрать свой проект используя только консоль?3 года назад я купил IDE Rider от компании JetBrains для разработки на платформе .NET, а также призывал инвестировать в свой комфорт.
В тот момент я не понимал как можно вести разработку под .NET без одной из IDE: MS Visual Studio или JetBrains Rider. Я использовал обе и это было очень удобно, но я совершенно не задумывался, что происходит внутри: когда я создавал новый консольный, веб или WPF-проект или когда запускал дебагер. Это просто работало и я мог писать свой код.
Когда я перешел на Go, то IDE Goland от JetBrains - была самым очевидным выбором. Я слышал, что это лучшее решение на рынке и мне очень оно нравилось. Тем более, сперва у меня была бесплатная версия для учебных целей, а потом компания предоставила лицензию для работы.
Такой мультитул сильно повышает скорость и удобство. Но многие ли задумываются о том, что скрывает внутри себя любимая интегрированная среда разработки, предлагая нам тот комфорт, к которому мы привыкли? 🤔
...
В первую очередь,
У меня есть коллега, который до сих пор принципиально использует Vim. Ему так удобнее и быстрее. Пару недель назад он давал мастер-класс по своему инструментарию для разработки и это действительно поражает, как быстро и эффективно можно работать без мыши и без классических тяжеловесных IDE.
Про удобство Vim слышу от многих разработчиков, в особенности про Neovim. Но порог вхождения очень высокий, особенно, если начинали свой путь с популярных IDE, которые все делают за вас.
IDE - это не только текстовый редактор, но она также включает SDK выбранного языка, а это компилятор (если язык компилируемый), стандартные библиотеки, дебагер, LSP для автокомплита и множество других фич.
Очевидно, возникает вопрос: зачем отказываться от IDE, которая максимально облегчает твою жизнь в разработке?
Ответить можно по-разному, но вот несколько моих причин:
1. В РФ JetBrains прекратила поддержку своих продуктов, а значит их стало сложнее купить для личного использования, а "белым" компаниям практически невозможно.
2. Отсутствие поддержки = отсутствие обновлений, а это чревато комфортом в работе. Например, полгода назад мне пришлось самостоятельно разбираться в версиях дебагера, которую использовала IDE и вручную переопределять его конфигурацию, скачивая самую актуальную сборку Delve.
3. Некорректная работа IDE при отладке больших проектов. Пару раз Goland вводила меня в заблуждение своим поведением и все, что помогало - перезагрузка среды или ПК (да, пару раз было и такое).
4. Я время от времени балуюсь C#, а для разработки под него нужна отдельная IDE.
5. Все, что описал выше, уже с лихвой оправдывало переход на другой инструмент, но сюда еще и добавилось мое любопытство к тому, что именно заменяет IDE, когда стал отказываться от нее.
Так можно ли жить без IDE совсем? Каждый решаем сам, но для себя я решил однозначно: да.
В четверг расскажу о своем сетапе для разработки (где пишу код и какие еще использую инструменты).
🔥4
IDE делает вас глупее [2/2]
Я полностью отказался от классической IDE и теперь счастлив. Ежедневно я использую 3 инструмента: редактор текста (кода), инструменты для работы с запросами API и проксированием трафика.
3 инструмента, которые покрывают полный цикл разработки и тестирования на всех платформах
📝 1. Редактор кода
С конца февраля весь код пишу только в Visual Studio Code. Это легковесный (по сравнению с IDE) редактор исходного кода.
При этом создал себе комфорт, который был в IDE, добавив следующие плагины:
1. Go для разработки под Go, предлагающий дебагер delve, Go LSP - gopls и пр.)
2. GitLens для просмотра истории коммитов прямо в коде (использую только 1 функцию - превью последнего коммита с автором на выбранной строке)
3. GitHub Theme для пестрой раскраски кода
Есть еще плагины для сторонних проектов, но их использование оцениваю как 5% от всего остального:
// 4. C# Dev Kit (плагин для разработки под .NET)
// 5. Julia (плагин для разработки на Julia)
При этом, я уверен, что можно ограничиться еще большим минимумом плагинов (или вообще обойтись без них), но пока у меня такой сетап.
Предостережение, если смотрите в эту сторону: не увлекайтесь установкой множества плагинов, а то на выходе можно получить более неповоротливое решение, чем коммерческие популярные IDE. Фактически, когда вы к редактору кода добавляете плагины, то на выходе получается интегрированная среда разработки :)
🚀 2. Запросы к API
Все запросы организую в коллекции с помощью Postman: <название сервиса> / <ендпоинты> / <платформы> и т.д. Когда работаешь с десятками, а то и сотнями микросервисов - это просто необходимо для удобной разработки и тестировании фич.
👨🚀 3. Проксирование запросов
Проксирую запросы (трафик) для отладки с помощью Proxyman. Это полезно для тестирования мобильных клиентов: iOS и Android. Очевидно, что это работа для QA, но я убежден, что в тестирование нужно отдавать полностью проверенный код. И, если я могу самостоятельно поднять тестовую среду и проверить несколько кейсов на каждой из платформ, то это сильно сократит время тестирования и, следовательно, Time to Market. На этом этапе можно отловить большинство глупых ошибок - лучше узнать про них первым, чем их потом принесет QA.
Выводы
VS Code + плагины полностью развязали мне руки:
1. Убрал зависимость от конкретного коммерческого продукта (VS Code - это опен-сорс), при этом экономлю еще (100-200)$ каждый год.
2. Получил полное осознание того, что скрывает IDE под капотом и за что мы платим.
3. Стал меньше бояться Vim'а, с легкостью из него выхожу и даже активно использую, когда появляется необходимость править ридми или конфиг файлы на удаленном сервере, где под рукой только консоль.
4. Нашел новые крутые фишки, которые ускоряют работу.
5. Чувствую себя более уверенным :)
Возможно, со временем стану еще более аскетичным и перейду на Neovim, но пока понимаю, что слишком мало времени, чтобы привыкать к этому инструменту.
Если готовы поделиться, то интересно, что используете вы в своей работе/учебе? Удобно ли вам или тоже иногда задумываетесь о переходе на что-то другое?
Я полностью отказался от классической IDE и теперь счастлив. Ежедневно я использую 3 инструмента: редактор текста (кода), инструменты для работы с запросами API и проксированием трафика.
3 инструмента, которые покрывают полный цикл разработки и тестирования на всех платформах
📝 1. Редактор кода
С конца февраля весь код пишу только в Visual Studio Code. Это легковесный (по сравнению с IDE) редактор исходного кода.
При этом создал себе комфорт, который был в IDE, добавив следующие плагины:
1. Go для разработки под Go, предлагающий дебагер delve, Go LSP - gopls и пр.)
2. GitLens для просмотра истории коммитов прямо в коде (использую только 1 функцию - превью последнего коммита с автором на выбранной строке)
3. GitHub Theme для пестрой раскраски кода
Есть еще плагины для сторонних проектов, но их использование оцениваю как 5% от всего остального:
// 4. C# Dev Kit (плагин для разработки под .NET)
// 5. Julia (плагин для разработки на Julia)
При этом, я уверен, что можно ограничиться еще большим минимумом плагинов (или вообще обойтись без них), но пока у меня такой сетап.
Предостережение, если смотрите в эту сторону: не увлекайтесь установкой множества плагинов, а то на выходе можно получить более неповоротливое решение, чем коммерческие популярные IDE. Фактически, когда вы к редактору кода добавляете плагины, то на выходе получается интегрированная среда разработки :)
🚀 2. Запросы к API
Все запросы организую в коллекции с помощью Postman: <название сервиса> / <ендпоинты> / <платформы> и т.д. Когда работаешь с десятками, а то и сотнями микросервисов - это просто необходимо для удобной разработки и тестировании фич.
👨🚀 3. Проксирование запросов
Проксирую запросы (трафик) для отладки с помощью Proxyman. Это полезно для тестирования мобильных клиентов: iOS и Android. Очевидно, что это работа для QA, но я убежден, что в тестирование нужно отдавать полностью проверенный код. И, если я могу самостоятельно поднять тестовую среду и проверить несколько кейсов на каждой из платформ, то это сильно сократит время тестирования и, следовательно, Time to Market. На этом этапе можно отловить большинство глупых ошибок - лучше узнать про них первым, чем их потом принесет QA.
Выводы
VS Code + плагины полностью развязали мне руки:
1. Убрал зависимость от конкретного коммерческого продукта (VS Code - это опен-сорс), при этом экономлю еще (100-200)$ каждый год.
2. Получил полное осознание того, что скрывает IDE под капотом и за что мы платим.
3. Стал меньше бояться Vim'а, с легкостью из него выхожу и даже активно использую, когда появляется необходимость править ридми или конфиг файлы на удаленном сервере, где под рукой только консоль.
4. Нашел новые крутые фишки, которые ускоряют работу.
5. Чувствую себя более уверенным :)
Возможно, со временем стану еще более аскетичным и перейду на Neovim, но пока понимаю, что слишком мало времени, чтобы привыкать к этому инструменту.
Если готовы поделиться, то интересно, что используете вы в своей работе/учебе? Удобно ли вам или тоже иногда задумываетесь о переходе на что-то другое?
🔥6