Forwarded from Java jobs — вакансии для java-разработчиков
#вакансия #удаленка #java
Локация: Удаленка или Томск.
Опыт: от 2-х лет.
Технический стек: Java 8, HTML, CSS, Git.
Требования:
- экспертное владение Java 8
- опыт использования Spring Framework, Hibernate ORM, JDBC, JMS, JMX
- опыт проведения модульного тестирования (JUnit и TestNg)
- опыт работы с инструментами Git, Jenkins, Sonar, Maven, Gradle, Nexus, Jira или аналоги, Confluence или аналоги
- опыт работы с сервером приложений WildFly (JBoss)
- понимание работы SQL и NoSQL хранилищ: PostgreSQL, Cassandra, Apache Ignite
- опыт использования стэка технологий Hadoop, Apache Kafka
Заработная плата: от 150 000 до 250 000 рублей на руки.
Условия:
Корпоративная техника при работе из офиса.
Проект: SUPL Group — разработчик ПО для различных сфер, разрабатывает образовательную платформу, платформу для работы аккредитационных лабораторий, маркетплейс ПО, маркетплейс курсов обучения и тд
Разработчик необходим для работы над:
B2C маркетплейс образовательных курсов (планируемая аудитория — 100 тыс. пользователей).
B2C маркетплейс программного обеспечения (планируемая аудитория — 20 тыс. пользователей).
B2B проект для аккредитационных лабораторий (планируемая аудитория — 10 тыс. пользователей).
Задачи:
- Развивать образовательную экосистему.
- Добавлять новые и развивать уже имеющиеся функции.
У нас большие планы, рост и развитие, будет много тестирования и исследования.
Команда: Product Manager, Team Lead, Frontend Dev, Backend Dev, Designer.
Контакты: @v_pokrovskiy
Локация: Удаленка или Томск.
Опыт: от 2-х лет.
Технический стек: Java 8, HTML, CSS, Git.
Требования:
- экспертное владение Java 8
- опыт использования Spring Framework, Hibernate ORM, JDBC, JMS, JMX
- опыт проведения модульного тестирования (JUnit и TestNg)
- опыт работы с инструментами Git, Jenkins, Sonar, Maven, Gradle, Nexus, Jira или аналоги, Confluence или аналоги
- опыт работы с сервером приложений WildFly (JBoss)
- понимание работы SQL и NoSQL хранилищ: PostgreSQL, Cassandra, Apache Ignite
- опыт использования стэка технологий Hadoop, Apache Kafka
Заработная плата: от 150 000 до 250 000 рублей на руки.
Условия:
Корпоративная техника при работе из офиса.
Проект: SUPL Group — разработчик ПО для различных сфер, разрабатывает образовательную платформу, платформу для работы аккредитационных лабораторий, маркетплейс ПО, маркетплейс курсов обучения и тд
Разработчик необходим для работы над:
B2C маркетплейс образовательных курсов (планируемая аудитория — 100 тыс. пользователей).
B2C маркетплейс программного обеспечения (планируемая аудитория — 20 тыс. пользователей).
B2B проект для аккредитационных лабораторий (планируемая аудитория — 10 тыс. пользователей).
Задачи:
- Развивать образовательную экосистему.
- Добавлять новые и развивать уже имеющиеся функции.
У нас большие планы, рост и развитие, будет много тестирования и исследования.
Команда: Product Manager, Team Lead, Frontend Dev, Backend Dev, Designer.
Контакты: @v_pokrovskiy
#вопросы_с_собеседований
Что делает оператор EXISTS в SQL?
Что делает оператор EXISTS в SQL?
EXISTS
берет подзапрос, как аргумент, и оценивает его как TRUE
, если подзапрос возвращает какие-либо записи и FALSE
, если нет.#вопросы_с_собеседований
В чем заключаются различия между cтеком (stack) и кучей (heap) с точки зрения многопоточности?
В чем заключаются различия между cтеком (stack) и кучей (heap) с точки зрения многопоточности?
Building Java Programs: A Back to Basics Approach (2019)
Автор: Stuart Reges, Marty Stepp
Количество страниц: 1232
Книга познакомит вас с основами Java. Она рассчитана на тех, кто прошел начальный курс подготовки в области компьютерных наук и хочет далее развиваться в сфере Java. В пятом издании книги были добавлены некоторые разделы, включая несколько проектов, примеров кода и упражнений.
Скачать книгу
Автор: Stuart Reges, Marty Stepp
Количество страниц: 1232
Книга познакомит вас с основами Java. Она рассчитана на тех, кто прошел начальный курс подготовки в области компьютерных наук и хочет далее развиваться в сфере Java. В пятом издании книги были добавлены некоторые разделы, включая несколько проектов, примеров кода и упражнений.
Скачать книгу
Telegram
Книги для программистов (reserved)
Building Java Programs: A Back to Basics Approach (2019)
Автор: Stuart Reges, Marty Stepp
Автор: Stuart Reges, Marty Stepp
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований В чем заключаются различия между cтеком (stack) и кучей (heap) с точки зрения многопоточности?
☕️ Cтек – участок памяти, тесно связанный с потоками. У каждого потока есть свой стек, которые хранит локальные переменные, параметры методов и стек вызовов. Переменная, хранящаяся в стеке одного потока, не видна для другого.
☕️ Куча – общий участок памяти, который делится между всеми потоками. Объекты, неважно локальные или любого другого уровня, создаются в куче. Для улучшения производительности поток обычно кэширует значения из кучи в свой стек, в этом случае для того, чтобы указать потоку, что переменную следует читать из кучи, используется ключевое слово volatile.
☕️ Куча – общий участок памяти, который делится между всеми потоками. Объекты, неважно локальные или любого другого уровня, создаются в куче. Для улучшения производительности поток обычно кэширует значения из кучи в свой стек, в этом случае для того, чтобы указать потоку, что переменную следует читать из кучи, используется ключевое слово volatile.
Зачем нужны SOLID принципы? Что нужно сделать с множеством сущностей, чтобы код удовлетворял DIP?
💻Об этом расскажет в четверг, 20 января в 19.00 МСК Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, Директор компании по разработке программного обеспечения «Hello World! Technologies».
Евгений ответит на все вопросы, а также всем участникам будет доступна запись вебинара и презентация спикера.
Зарегистрироваться бесплатно.
💻Об этом расскажет в четверг, 20 января в 19.00 МСК Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, Директор компании по разработке программного обеспечения «Hello World! Technologies».
Евгений ответит на все вопросы, а также всем участникам будет доступна запись вебинара и презентация спикера.
Зарегистрироваться бесплатно.
#вопросы_с_собеседований
Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...].
Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...].
class PowerOfTwo {
private AtomicReference<BigInteger> current = new AtomicReference<>(null);
BigInteger next() {
BigInteger recent, next;
do {
recent = current.get();
next = (recent == null) ? BigInteger.valueOf(1) : recent.shiftLeft(1);
} while (!current.compareAndSet(recent, next));
return next;
}
}
#вопросы_с_собеседований
Что такое статическое и динамическое связывание?
Что такое статическое и динамическое связывание?
Присоединение вызова метода к телу метода называется связыванием. Если связывание проводится компилятором (компоновщиком) перед запуском программы, то оно называется статическим или ранним связыванием (early binding).
В свою очередь, позднее связывание (late binding) это связывание, проводимое непосредственно во время выполнения программы, в зависимости от типа объекта. Позднее связывание также называют динамическим (dynamic) или связыванием на стадии выполнения (runtime binding). В языках, реализующих позднее связывание, должен существовать механизм определения фактического типа объекта во время работы программы, для вызова подходящего метода. Иначе говоря, компилятор не знает тип объекта, но механизм вызова методов определяет его и вызывает соответствующее тело метода. Механизм позднего связывания зависит от конкретного языка, но нетрудно предположить, что для его реализации в объекты должна включаться какая-то дополнительная информация.
Для всех методов Java используется механизм позднего (динамического) связывания, если только метод не был объявлен как final (приватные методы являются final по умолчанию).
В свою очередь, позднее связывание (late binding) это связывание, проводимое непосредственно во время выполнения программы, в зависимости от типа объекта. Позднее связывание также называют динамическим (dynamic) или связыванием на стадии выполнения (runtime binding). В языках, реализующих позднее связывание, должен существовать механизм определения фактического типа объекта во время работы программы, для вызова подходящего метода. Иначе говоря, компилятор не знает тип объекта, но механизм вызова методов определяет его и вызывает соответствующее тело метода. Механизм позднего связывания зависит от конкретного языка, но нетрудно предположить, что для его реализации в объекты должна включаться какая-то дополнительная информация.
Для всех методов Java используется механизм позднего (динамического) связывания, если только метод не был объявлен как final (приватные методы являются final по умолчанию).
#вопросы_с_собеседований
Что такое JDBC?
Что такое JDBC?
JDBC
, Java DataBase Connectivity
(соединение с базами данных на Java
) — промышленный стандарт взаимодействия Java-приложений
с различными СУБД
. Реализован в виде пакета java.sql
, входящего в состав Java SE
.JDBC
основан на концепции драйверов, которые позволяют получать соединение с базой данных по специально описанному URL
. При загрузке драйвер регистрирует себя в системе и в дальнейшем автоматически вызывается, когда программа требует URL
, содержащий протокол, за который этот драйвер отвечает.Простой рабочий алгоритм использования SOLID на практике
Зачем нужны SOLID принципы? Что нужно сделать с множеством сущностей, чтобы код удовлетворял DIP?
🚀Расскажет завтра Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, Директор компании по разработке программного обеспечения «Hello World! Technologies».
🚀Всем участникам будет доступна запись вебинара и презентация спикера. Главное, чтобы вы были зарегистрированы на сайте.
Зачем нужны SOLID принципы? Что нужно сделать с множеством сущностей, чтобы код удовлетворял DIP?
🚀Расскажет завтра Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, Директор компании по разработке программного обеспечения «Hello World! Technologies».
🚀Всем участникам будет доступна запись вебинара и презентация спикера. Главное, чтобы вы были зарегистрированы на сайте.
Может ли имя класса не совпадать с именем файла?
Компилятор требует, чтобы в .java файле был не больше чем один публичный класс верхнего уровня, и чтобы его название совпадало с названием файла. Все специальные символы также должны быть в имени файла.
Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.
Так что ответ – может.
Компилятор требует, чтобы в .java файле был не больше чем один публичный класс верхнего уровня, и чтобы его название совпадало с названием файла. Все специальные символы также должны быть в имени файла.
Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.
Так что ответ – может.
«Библиотека программиста» находится в поиске переводчика технических статей и автора оригинальных статей.
Обязанности:
– Письменный перевод с английского на русский язык технических статей (Medium, Dev.to и т. д.)
– Написание оригинальных статей.
Объем:
– от 3 до 10 тыс. знаков с пробелами.
Тематика:
– Мобильная разработка, информационная безопасность, Data Science, бэкенд веб-приложений, фронтенд-разработка, системное программирование, базы данных.
Языки:
– Python, SQL, JavaScript, C#, Java.
Пишите на [email protected]
Обязанности:
– Письменный перевод с английского на русский язык технических статей (Medium, Dev.to и т. д.)
– Написание оригинальных статей.
Объем:
– от 3 до 10 тыс. знаков с пробелами.
Тематика:
– Мобильная разработка, информационная безопасность, Data Science, бэкенд веб-приложений, фронтенд-разработка, системное программирование, базы данных.
Языки:
– Python, SQL, JavaScript, C#, Java.
Пишите на [email protected]
Java Programming (2018)
Автор: Joyce Farrell
Количество страниц: 870
Даже если вы начинающий программист, книга поможет вам быстро приступить к разработке полезных программ, при этом овладев основными принципами структурного и объектно-ориентированного программирования. Книга содержит уникальные, понятные для читателя объяснения и содержательные упражнения по программированию. Дополнительные цифровые учебные ресурсы в MindTap предоставляют интерактивные инструменты обучения, а также IDE (среда разработки) для отработки и развития ваших навыков.
Скачать книгу
Автор: Joyce Farrell
Количество страниц: 870
Даже если вы начинающий программист, книга поможет вам быстро приступить к разработке полезных программ, при этом овладев основными принципами структурного и объектно-ориентированного программирования. Книга содержит уникальные, понятные для читателя объяснения и содержательные упражнения по программированию. Дополнительные цифровые учебные ресурсы в MindTap предоставляют интерактивные инструменты обучения, а также IDE (среда разработки) для отработки и развития ваших навыков.
Скачать книгу
Telegram
Книги для программистов (reserved)
Java Programming (2018)
Автор: Joyce Farrell
Автор: Joyce Farrell
Простой алгоритм использования SOLID на практике
Зачем нужны SOLID принципы? Что нужно сделать с множеством сущностей, чтобы код удовлетворял DIP?
Рассказывает Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, Директор компании по разработке программного обеспечения «Hello World! Technologies».
https://youtu.be/H2Lk3SQWhnc
Зачем нужны SOLID принципы? Что нужно сделать с множеством сущностей, чтобы код удовлетворял DIP?
Рассказывает Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, Директор компании по разработке программного обеспечения «Hello World! Technologies».
https://youtu.be/H2Lk3SQWhnc
YouTube
Простой алгоритм использования SOLID на практике
Зачем нужны SOLID принципы? Что нужно сделать с множеством сущностей, чтобы код удовлетворял DIP?
Рассказывает Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, Директор компании по разработке…
Рассказывает Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, Директор компании по разработке…
Как стать Data Scientist?
Область Data Science энергично развивается. Наука о данных – это не только нейросети, но и классические алгоритмы машинного обучения, да и вообще всё, что связано с вопросами анализа, обработки и представления информации в цифровой форме.
👨💻 Специалист по анализу данных работает на пересечении нескольких областей: математики, программирования и бизнес-задач.
26 января в 19.00 МСК Артур Сапрыкин, один из дата сайентистов, разрабатывавших в Мегафон программы, анализирующие речь в форме текстов и аудио, расскажет, чем занимается Data Scientist, и какие основные навыки требуются от специалиста по анализу данных.
Регистрация на сайте.
Область Data Science энергично развивается. Наука о данных – это не только нейросети, но и классические алгоритмы машинного обучения, да и вообще всё, что связано с вопросами анализа, обработки и представления информации в цифровой форме.
👨💻 Специалист по анализу данных работает на пересечении нескольких областей: математики, программирования и бизнес-задач.
26 января в 19.00 МСК Артур Сапрыкин, один из дата сайентистов, разрабатывавших в Мегафон программы, анализирующие речь в форме текстов и аудио, расскажет, чем занимается Data Scientist, и какие основные навыки требуются от специалиста по анализу данных.
Регистрация на сайте.
#вопросы_с_собеседований
Что из себя представляет JDBC URL?
JDBC URL состоит из:
•
•
•
Пример
Что из себя представляет JDBC URL?
JDBC URL состоит из:
•
<protocol>
: (протокола) - всегда jdbc
:.•
<subprotocol>
: (подпротокола) - это имя драйвера или имя механизма соединения с базой данных. Подпротокол может поддерживаться одним или несколькими драйверами. Лежащий на поверхности пример подпротокола - это "odbc
", отведенный для URL
, обозначающих имя источника данных ODBC
. В случае необходимости использовать сервис имен (т.е. имя базы данных в JDBC URL
не будет действительным именем базы данных), то подпротоколом может выступать сервис имен.•
<subname>
(подимени) - это идентификатор базы данных. Значение подимени может менятся в зависимости от подпротокола, и может также иметь под-подимя с синтаксисом, определяемым разработчиком драйвера. Назначение подимени - это предоставление всей информации, необходимой для поиска базы данных. Например, если база данных находится в Интернет, то в состав подимени JDBC URL
должен быть включен сетевой адрес, подчиняющийся следующим соглашениям: //<hostname>:<port>/<subsubname
.Пример
JDBC URL
для подключения к MySQL
базе данных «Test
» расположенной по адресу localhost
и ожидающей соединений по порту 3306
: jdbc:mysql://localhost:3306/Test
#вопросы_с_собеседований
Объясните выражение System.out::println.
Объясните выражение System.out::println.
Данное выражение иллюстрирует механизм instance method reference: передачи ссылки на метод println() статического поля out класса System.
С нас полезные лекции и трудоустройство, с тебя – год опыта коммерческой разработки на Java.
⠀
Как все проходит?
3 раза в неделю на протяжении двух месяцев тебя будут обучать Senior’ы и Teamlead’ы ведущих банков страны. Обучение можно совмещать с работой.
⠀
Чему будут учить?
На курсе будем изучать базы данных, Spring, Kafka, Kubernetes и Istio. Помимо этого еще будут практические занятия и домашние задания.
⠀
Что будет после учебы?
Трудоустройство в Цифровые привычки. Ты будешь работать над высоконагруженными, отказоустойчивыми проектами.
⠀
Подать заявку на курс: https://cutt.ly/6IMnY3g
⠀
Как все проходит?
3 раза в неделю на протяжении двух месяцев тебя будут обучать Senior’ы и Teamlead’ы ведущих банков страны. Обучение можно совмещать с работой.
⠀
Чему будут учить?
На курсе будем изучать базы данных, Spring, Kafka, Kubernetes и Istio. Помимо этого еще будут практические занятия и домашние задания.
⠀
Что будет после учебы?
Трудоустройство в Цифровые привычки. Ты будешь работать над высоконагруженными, отказоустойчивыми проектами.
⠀
Подать заявку на курс: https://cutt.ly/6IMnY3g