Найти тему
Всесторонняя оценка своих навыков
Продолжаем посты про техническое интервью.  Делюсь случаем с сегодняшнего интервью. У нас в компании техническое интервью состоит из секций  code review, problem solving, базы данных,  многопоточка и jdk. Кандидат ответил очень хорошо по секции code review. А три последние секции откровенно завалил. Вывод: перед тем как идти на интервью найдите  человека который сделает вам всестороннее ревью  ваших знаний. И в идеальном случае подсветит  слабые места и предложит план их развития. Помните одно: в жизни не так много действительно  крутых возможностей...
4 месяца назад
Не будь обычным крудошлёпом!
Хочу поделиться маленькой историей. Меня поблагодарил за проект Виртуальная Стажровка (Java) однин из слушателей (Андрей). И после слов благодарности за классный проект он произнес такую фразу: Я не хочу быть обычным крудошлёпом! Хочу стать именно инженером. Андрей сказал, что уже работает в ИТ программистом. Но на работе приходится делать простые задания, а развиваться хочется. Хочется стоя поапладировать Андрею во первых за то, что он видит ценность в развитии своих скилов, даже при том, что он уже работает программистом...
4 месяца назад
Какие фундаментальные навыки должен изучить начинающий программист в первую очередь? Это довольно интересный вопрос. И кого не спроси у каждого будет свое мнение на этот счет. Вам наверное приходят в голову разные варианты: ООП, интерфейсы, дизайн паттерны, Spring, базы данных, микро сервисы, коллекции, функциональное программирование и так далее. На наш взгляд одним из фундаментальных навыков, которому надо обучиться в первую очередь это умение делить сложные задачи на подзадачи. Программирование это процесс в рамках которого вы пытаетесь разделить большую задачу на маленькие части, потом решить каждую из них и из этого собрать решение изначальной большой задачи. Деление задачи на подзадачи тесно связано с методами. Методы или функции это конструкции языка программирования, которые помогают в коде декомпозировать задачу на подзадачи и реализовать решения подзадач отдельно друг от друга. Процесс декомпозиции задач на подзадачи (методы) приведет вас к новому типу мышления. Его еще называют мышление программиста. Это мышление откроет перед вами двери к созданию сложных алгоритмов и написанию больших коммерческих приложений. Именно поэтому на курсе Основы программирования Java мы уделяем много времени разделению задач на методы, реализации методов, тестированию методов. Разделение программы на методы ведет к улучшению читаемости кода, а это в свою очередь открывает дорогу к написанию чистого кода (clean code). Для тех кто хочет получить фундаментальные знания по программирования на Java, 23.10.2024 мы начинаем онлайн авторский курс по Основам программирования на Java. Присоединяйтесь к Телеграм группе курса. Moving Java Forward {JG}
5 месяцев назад
Курс по Основам программирования на Java
Хотите за 12 недель с нуля получить крепкие практические навыки программирования на Java, научиться самостоятельно писать и тестировать программы используя Java Core и JUnit, а так же узнать про clean code, наследование, коллекции, интерфейсы, Stream API и многое другое?  Базовые знания это фундамент вашей будущей ИТ карьеры. Фундамент должен быть прочным, иначе успешную карьеру  выстроить не получится. Фундаментальным знаниям можно обучаться самостоятельно. Но в большинстве случаев это сомнительная авантюра...
5 месяцев назад
REST API
REST API один из самых важных синхронных способов интеграции приложений. Для Java Backend разработчика знание принципов построения REST API очень важно. Как вы изучаете REST API? В проекте Виртуальная Стажировка (Java) студенты на практике проектируют, разрабатывают и тестируют REST API микро сервиса в сфере страхования. Благодаря проекту студенты получают опыт в разработке сложного REST API с реальными бизнес требованиями, рассматривают и применяют на практике версионирование, пишут автоматические интеграционные и acceptance тесты...
5 месяцев назад
Совет по оформлению импортов.
В больших проектах мы часто используем много импортов в одном классе. Очень часто делаем импорты из одного и того же пакета. import lombok.* В таких случаях лучше использовать явные импорты каждого класса: import lombok.Setter import lombok.Getter import lombok.AllArgsConstructor import lombok.NoArgsConstructor import lombok...
5 месяцев назад
Anti-Corruption Layer (ACL) и валидация данных
Anti-Corruption Layer (ACL) и валидация данных — это два важных концепта в архитектуре приложений, которые помогают поддерживать целостность данных и изолировать вашу систему от внешних воздействий или проблемных данных. Для Java Backend разработчика понимание этих понятий необходимо, чтобы проектировать устойчивые и стабильные системы. Давайте рассмотрим их подробнее. 1. Anti-Corruption Layer (ACL) Что это такое? Anti-Corruption Layer (ACL) — это слой, который служит буфером между вашим приложением и внешними системами (например, другими сервисами, микросервисами или базами данных)...
5 месяцев назад
Логирование (Log4j, slf4j, etc)
Концепция наблюдаемости (observability) очень важное понятие для современной Java Backend разработки. В мире микро сервисов, виртуальных машин и контейнеризации наблюдаемость (observability) играет решающую роль в построении стабильно работающих компьютерных систем. В понятие наблюдаемости (observability) входят: логи, метрики и трейсинг. Логи компьютерных систем можно сравнить со следами на снегу. Они дают возможность разработчикам исследовать поведение компьютерной системы, находить проблемы и устранять их...
5 месяцев назад
Библиотека Lombok
Писать шаблонный код это нудно и не продуктивно. Программисты ленивые ребята и всегда изобретают разные интересные штуки, чтобы не заниматься скучными делами. Библиотека Lombok одно из таких изобретений. Библиотека Lombok позволяет используя всего пару аннотаций создать конструктор, get и set методы, билдер и много чего другого. В проекте Виртуальная Стажировка (Java) мы используем библиотеку Lombok с самого начала проекта и генерим с помощью нее тот самый шаблонный код...
5 месяцев назад
Виртуальная Стажировка (Java): Mockito library
Современные Java Backend приложения состоят из большого числа связанных друг с другом классов. Редко когда встретишь класс, который ни от кого не зависит. В такой среде чистое юнит тестирование становится сложной задачей. В такой ситуации на помощь Java программисту приходят мок объекты (mock objects). Мок объекты это специальные умные заглушки, которые позволяют изолировать тестируемый класс от внешних зависимостей и провести его чистое юнит тестирование. Библиотека Mockito это отличный инструмент для создания и управления мок объектами (mock objects)...
5 месяцев назад
Виртуальная Стажировка (Java): JUnit library
JUnit — это популярная библиотека для тестирования Java-приложений, которая помогает разработчикам автоматизировать процесс тестирования кода. Она используется для написания и выполнения модульных тестов. Модульный тест — это небольшой тест, который проверяет правильность работы отдельных модулей или классов программы. Основные особенности JUnit: 1. **Аннотации**: JUnit использует аннотации для указания тестов и методов жизненного цикла теста. Например: - `@Test` — указывает, что метод является тестом...
5 месяцев назад
Виртуальная Стажировка (Java): Unit testing (Юнит тестирование)
Юнит тестирование это эффективный инструмент для нахождения ошибок в программном коде. Он позволяет выбрать один класс и подвергнуть его всестороннему тестированию. Но, к сожалению на практике юнит тестирование очень часто сводится к простому happy path тесту. Все говорят, что тесты нужны, что надо тестировать свой код, но как писать эффективные и качественные тесты мало кто знает и еще меньше применяют это знание на практике. Во первых юнит тесты это часть вашего проекта. Вы тратите на их создание время...
5 месяцев назад