JavaStart
910 subscribers
910 photos
28 videos
620 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
SQL, базы данных. Часть 18.

Приоритет операторов AND, OR.

У нас есть таблица team с разработчиками. И на этот раз нам нужно разработать бэкенд для сайта. И для этого нам нужны все Python и PHP разработчики. Напишем:

SELECT * FROM team
WHERE language = 'python' OR language = 'php';

Обратите внимание, что нужны нам все Python И PHP разработчики, но пишем мы OR. После выполнения запроса мы получим такую таблицу как на Картинке 2.

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

SELECT * FROM team
WHERE
    language = 'python' OR
    language = 'php' AND
    level = 'middle';

После выполнения мы получим такую таблицу как на Картинке 3.
И результат довольно странный, в итоговой таблице присутствуют также джуниоры и сеньоры. И дело в том, что операторы OR и AND имеют приоритет выполнения и у AND он выше. Поэтому в первую очередь база данных находит всех мидлов, которые пишут на PHP. Такому условию соответствует только одна запись, а далее срабатывает оператор OR, который добавляет всех Python-разработчиков.

То есть мы ищем ИЛИ мидлов на PHP, ИЛИ Python-разработчиков без указания их уровня владения языком. Поэтому в таблицу также попали джуниоры и сеньоры.

Чтобы решить поставленную задачу, нужно четко расставить приоритет с помощью скобок. Как в математике. Поместим скобки справа и слева от OR:

SELECT * FROM team
WHERE
    (language = 'python' OR
    language = 'php') AND
    level = 'middle';

Теперь в таблице остались только мидлы на Python и PHP (Картинка 4).

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

Вообще, даже не так, каждый раз когда у вас есть в запросе есть OR и AND применяйте скобки для расстановки приоритетов, даже если уверены в своём коде.

Такая практика позволит избежать неприятных логических ошибок.

👉 JavaStart. Подписаться
👍5322🔥2
Какой метод вызывается автоматически при создании объекта класса?
Anonymous Quiz
2%
start()
3%
run()
14%
main()
61%
constructor()
7%
void()
4%
create()
8%
Посмотреть ответ
👍4🎉31🔥1👏1
Желаю всем таких синьоров в команду!

👉 JavaStart. Подписаться
13👍11🔥3🤩1
Всем привет!
Хотим с вами поделиться информацией про наш курс, который будет анонсирован уже в начале июня.

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

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

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

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

👉 JavaStart. Подписаться
👍7🔥3🤝2👨‍💻1
SQL, базы данных. Часть 19.

Сортировка результатов.

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

В первом уроке мы написали SQL-запрос для получения данных о совершеннолетних пользователях (Картинка 1). Посмотрим на него еще раз:

SELECT last_name, first_name, birthday, age FROM users WHERE age >= 18;

Обратите внимание, что сейчас данные никак не упорядочены. Ни по фамилии, ни по имени, ни по дате рождения. Но давайте добавим после конструкции WHERE: ORDER BY last_name:

SELECT last_name, first_name, birthday, age
FROM users WHERE age >= 18 ORDER BY last_name;

Получим результат как на Картинке 2. После выполнение данного SQL запроса мы получим таблицу отсортированную по столбцу last_name (фамилия). Так как last_name хранит строки, то сортировка происходит в алфавитном порядке.

Разумеется, сортировать можно не только по текстовым полям. Например, можно написать ORDER BY birthday:

SELECT last_name, first_name, birthday, age
FROM users
WHERE age >= 18
ORDER BY birthday;

И получить данные упорядоченные по дате рождения в хронологическом порядке как на Картинке 3.

А если в конструкции ORDER BY после имени столбца написать DESC, то данные будут отсортированы в обратном порядке — свежие даты выше. Смотрим на Картинку 4.

SELECT last_name, first_name, birthday, age
FROM users
WHERE age >= 18
ORDER BY birthday DESC;

Про ключевое слово DESC часто спрашивают на собеседовании на позицию Junior разработчика или Trainee. Могут даже спросить и мидла. Данное ключевое слово очень часто применяется в повседневной практики на коммерческом проекте! Так что запомните это SQL слово)

👉 JavaStart. Подписаться
🔥4👍3221
Всем привет!
Расскажу немного про себя, как и почему я создавал курс.

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

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

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

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

Помимо цели обучения, есть цель устройства на работу. Пройдя очень много собеседований, я начал понимать, как это работает. Первое, что нужно сделать, это попасть на собеседование, нужно хорошее резюме, и пройти HR (HR делит ваше резюме на 2, значит нужно его умножить на 3? а если нечего умножать?). Далее собеседование. На самом старте собеседований не много, значит даже к первому нужно быть максимально готовым.

Учитывая все особенности получения первой работы, я перешел к созданию курса. После обучения нескольких потоков людей уже было несколько редакций и расширений курса, так как требования к junior разработчикам все-таки растут.

👉 JavaStart. Подписаться
👍14🔥42🤩1
Какая конструкция используется для обработки исключений в Java?
Anonymous Quiz
1%
for
3%
switch–case
3%
if–else
1%
foreach
91%
try–catch
0%
while
1%
Посмотреть ответ
32👍2🔥2🎉2
Всем привет!

Мы рады анонсировать вам платформу JavaStart

Вы уже знаете некоторую информацию про курс, но мы перечислим важные темы:

Курс будет доступен онлайн на платформе пожизненно;
Среднее прохождение курса составляет от 7–10 месяцев. Вы будете заниматься индивидуально и в своем темпе;
Личный ментор;
3 тестовых собеседования;
Три пет проекта для портфолио.

Первый проект только Java, второй Spring + Hibernate и финальный – система микросервисных приложений, которая включает в себя полный стек современных технологий крупных компаний – Spring Cloud, Docker, PostgreSQL, RabbitMQ.

Всего в курсе будет 4 модуля по 9–12 занятий. С программой курса вы можете ознакомиться на сайте. После второго, третьего и четвертого модуля ментор проведет вам собеседования.

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

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

Задавайте любые вопросы, на сайте есть ссылки на чат с поддержкой и номер телефона для связи – можно писать как в 💬 Telegram, так и в 💬 WhatsApp

Для тех, кто дочитал до конца, – промокод Start даст скидку 15% при оплате 😊

👉 JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥21👏1🎉1🤩1
JavaStart pinned a photo
Новое видео на Ютуб канале по интерфейсу Map в Java.

Друзья, для тех, кто лучше воспринимает информацию по видео, на нашем YouTube канале вышел короткий и очень наглядный ролик под названием “Интерфейс Map и его реализации”.

Переходите по ссылке и смотрите скорее! И конечно же подписывайтесь на наш канал JavaStart, чтобы не пропустить следующие обучающие видеоуроки по нашей любимой Java👩‍💻

https://www.youtube.com/watch?v=da99gND5RcI

👉 JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥21
😁26👍211🔥1
Паттерны проектирования в Java. Часть 1.

Практически всегда, если вы собеседуетесь на позицию Junior Java разработчика или стажера, вас спросят – знакомы ли вы с паттернами проектирования?

Также попросят рассказать о самом распространенном паттерне Singleton. Давайте разбираться.

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

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

Давайте я перечислю некоторые типы паттернов с кратким описанием, чтобы вы понимали, что их на самом деле очень много. А потом поговорим про каждый подробнее и в частности про Singleton паттерн.

И так, типы паттернов бывают:

– Порождающие.
Порождающие паттерны предоставляют механизмы инициализации, позволяя создавать объекты удобным способом.

– Структурные.
Структурные паттерны определяют отношения между классами и объектами, позволяя им работать совместно.

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

В следующих постах поговорим о представителях каждого типа паттернов проектирования.

👉 JavaStart. Подписаться
👍1641🔥1
Паттерны проектирования в Java. Порождающие. Часть 2.

Порождающие паттерны:

Singleton (Одиночка) - ограничивает создание одного экземпляра класса, обеспечивает доступ к его единственному объекту;

Factory (Фабрика) - используется, когда у нас есть суперкласс с несколькими подклассами и на основе ввода, нам нужно вернуть один из подкласса;

Builder (Строитель) - используется для создания сложного объекта с использованием простых объектов. Постепенно он создает больший объект от малого и простого объекта;

Prototype (Прототип) - помогает создать дублированный объект с лучшей производительностью, вместо нового создается возвращаемый клон существующего объекта;

И др.

К Синглтону ещё вернёмся. Как я уже говорил, о нем почти всегда спрашивают на собеседованиях 🤓

👉 JavaStart. Подписаться
👍6🔥621