Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Веселая аркада с Печенькой для новогоднего настроения. Объезжайте препятствия, а подарки, варежки, конфеты и прочие приятности не объезжайте: они помогут набрать очки и установить новый рекорд.

Сноуборд

Спорт, Аркады, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Java + Программирование

С этим тегом используют

IT Программист IT юмор Обучение Android Python Разработка Картинка с текстом Юмор Все
645 постов сначала свежее
342
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
1 год назад

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности⁠⁠

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Рубрика «сам себе экосистема» уже успела стать постоянной в моем блоге. Для тех, кто читает меня в первый раз, расскажу: одним из основных направлений блога всегда был моддинг и попытка использования устройств прошлых лет в современных реалиях. Именно поэтому я пишу клиенты нужных мне сервисов с нуля, дабы иметь возможность пользоваться такими замечательными смартфонами, как Xperia Pro, Xperia Play, Desire Z и конечно же Motorola Droid, а в статьях я делюсь с вами не только причинами своей мотивации, но и рассказываю, как разрабатываются приложения для 10+ летних смартфонов с нуля и с минимальным набором зависимостей и детали реализации тех или иных фишек. В сегодняшнем материале мы подведем с вами промежуточные итоги и узнаем, справляются ли смартфоны 14 летней давности с современными сервисами?


❯ Предисловие


Наверняка у многих читателей за последние годы сложилось впечатление, мол пользоваться смартфоном, которому 5+ лет просто невозможно: ОЗУ и постоянной памяти мало, дисплей «низкого» разрешения, смартфон лагучий и отнюдь не плавный, а разработчики приложений давным-давно забыли о том, что такое поддержка 10-летнего Android 5.1. Я лично так не считаю: при определенной сноровке, наличии запала и энтузиазма, а также истинной любви к интересным смартфонам, выясняется, что все необходимые в повседневной жизни приложения можно разработать и самому, с нуля и даже без зависимостей!

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Изначально я и не думал писать материал в таком формате, вроде бы всё очевидно: кто ищет приложения под старенький смартфон, может найти их чуть ли не по первым ссылкам в гугле на 4pda, а кому интересны детали реализации — переходят по линкам на соответствующие статьи из первого сообщения в теме.

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

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

Если вам нравятся мои статьи — можете и на YouTube подписаться!

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

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Все приложения можно взять либо в соответствующих топиках (см. подпись) на 4pda (на форуме обязательна регистрация для скачивания файлов, иначе будет ошибка 404), либо на моём GitHub в релизах.

❯ На чём тестируем?


Для тестов я выбрал 4 легенды своих лет и каждый по своему может быть интересен читателям даже для покупки в 2024 году. Все смартфоны, перечисленные ниже, стоят до 1 500 рублей по рынку на вторичке!

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Первым будет Sony Ericsson Xperia Pro, основная фишка которого — выдвижная QWERTY-клавиатура и достаточно компактные размеры. К сожалению, выдвижных сайд-слайдеров уже давно не делают и ценителям QWERTY-устройств остается лишь использовать Б/У устройства или переходить на смартфоны а-ля UniHertz Titan. Смартфон вышел в 2011 году и работал на базе чипсета Qualcomm MSM8255 с одним ядром Scorpion (на базе Cortex A8) на частоте 1.5ГГц и имел 512Мб ОЗУ и 512Мб постоянной флэш-памяти. Из коробки смартфон работал на Android 2.3, есть апдейт до 4.0.4. Казалось бы, характеристики совсем слабые по сравнению даже с современными реалми по 5 000 рублей. В среднем, сейчас эти смартфоны можно найти за 1 000 рублей на онлайн-барахолках.

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Вторым будет не менее легендарный Sony Ericsson Xperia Play. Это единственный в своем роде смартфон с выдвижным геймпадом и при этом реально удобным! На устройстве есть адаптированные под аппаратный геймпад эксклюзивы и я частенько люблю поиграть на Play в классические Android-игры 2010-2011 годов. Именно благодаря уникальности смартфона я продоолжаю время от времени использовать его и сейчас в качестве портативной игровой консоли. Характеристики практически идентичны Xperia Pro, за исключением наличия того самого геймпада, где роль стиков выполняют маленькие тачпады с контроллером Synaptics! Не исключено, что смартфоны строились на одной платформе, конструктивно они похожи. Сейчас Play можно найти на барахолках за 2-3 тысячи рублей (это адекватная цена), иногда дешевле. Я время от времени покупаю нерабочие Play'и по 500 рублей и собираю из десяти ещё один — поскольку много плеев в коллекции не бывает и я их очень люблю :)

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Третьим будет Samsung Galaxy Ace — в своё время очень популярный смартфон, о котором я когда-то мечтал, будучи юнцом. Отличный смартфон, сбалансированный и недорогой по меркам Samsung в те годы. За 15 000 рублей можно было получить 384Мб ОЗУ, Qualcomm MSM7227 и неплохоий дисплей. Сейчас их можно найти на барахолках буквально по 200-300 рублей рабочими и с аккумуляторами, они практически не ценятся и их очень много поскольку модель была крайне массовой и успешной.

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Четвёртым будет диковинка сегодняшней статьи — Samsung Galaxy Pocket. Это очень бюджетный смартфон, «топ за свои деньги» тех лет, который может быть интересен читателю благодаря очень компактным размерам. Смартфон легко помещается в кармашек рубашки и его удобно носить в качестве второго. Интересны и характеристики: чипсет Broadcom на частоте 832МГц, родственный процессору Raspberry Pi 1, 256Мб ОЗУ, 4Гб встроенной памяти, работает смартфон на базе Android 2.3 и дисплей всего 2.8". Да, пусть всего 240x320, но всё равно! Какой-же он крошечный :)

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Вот такие интересные и необычные смартфоны собрались в сегодняшнем тесте. Их всех объединяет одно: примерно похожий уровень производителньости, который в разы уступает любому современному бюджетнику. Но значит ли это что эти «ретро» смартфоны бесполезны? Давайте посмотрим на практике!

❯ Практика


Начинаем с ВК. На смартфонах Xperia приложения работают крайне плавно, а в случае Xperia Pro можно без проблем чатиться с помощью встроенной QWERTY-клавиатуры. Несмотря на то, что функционал клиента совсем базовый, тем не менее он вполне функционален и, что немаловажно, практически не потребляет и без того небольшие ресурсы смартфонов в фоне.
Анимация чуть-чуть подлагивает лишь на Galaxy Pocket в силу не самого мощного железа.

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

YouTube тоже работает нормально, однако есть важный нюанс: в смартфоны Xperia для работы нужно обязательно вставить MicroSD-флэшку (поскольку как таковой пользовательской памяти в них нет, только под приложения). YouTube пока что отдаёт видео в h263, который поддерживают большинство смартфонов тех лет и не сваливаются в программный декодер. Так что всё работает очень быстро — хоть и видео необходимо загружать перед началом просмотра.

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

Клиент Telegram работает также быстро, хоть и реализован с костылем в виде прокси-сервера. Контакты и аватарки прогружаются моментально, никаких лагов при скроллинге нет. В целом, учитывая, что телега один из самых популярных мессенджеров в СНГ и большинство контактов уже есть там, это вполне себе новая жизнь для смартфонов тех лет!

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности Android, Смартфон, Покупка, Социальные сети, Ретро, Железо, Телефон, Гаджеты, Мобильные телефоны, Приложение, Java, Программирование, Видео, YouTube, Длиннопост

❯ А на что ещё способны?


Помимо клиентов основных приложений, такие смартфоны пригодятся и для других задач.

Например, для использования электронной почты. Клиент в Android 2.3 до сих пор работает при условии включения опции «разрешить все SSL-сертификаты»:

Простой серфинг. Да, большинство сайтов с динамикой уже «отваливаются», но пока что Opera Mini ещё работает на 2.3, позволяя почитать Хабр или зайти на лор.

Ну и, конечно-же, послушать музыку.

❯ Заключение


Вот мы и узнали с вами, на что способны смартфоны которым более 13 лет! Как я уже говорил, немножечко сноровки, энтузиазма и любви к гаджетам тех лет и можно вполне пользоваться ими как основными каждый день! А какие смартфоны были у вас? Пишите в комментариях! Если вам интереса тематика программирования, моддинга и ремонта гаджетов прошлых лет, подписывайтесь на мой Telegram-канал, куда я вовремя публикую ссылки на новые статьи, а также различные мысли и фото-отчеты о ремонте гаджетов!

Также я реализовал подобные приложения и для Windows Phone, когда снова хотел ими пользоваться как основными. Уж очень мне понравилась Lumia 640, купленная за 100 рублей в своё время, с которой я ходил как с основным смартфоном :)

Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, дабы не пропускать новые статьи каждый день!

Показать полностью 11 1
[моё] Android Смартфон Покупка Социальные сети Ретро Железо Телефон Гаджеты Мобильные телефоны Приложение Java Программирование Видео YouTube Длиннопост
53
user8973774
1 год назад

Хотела сделать мод для майнкрафт⁠⁠

Хотела сделать мод для майнкрафт Программирование, Программист, Java, Minecraft

mdk вот открыла и всё красное и серое, в видео было по другому, чё нетак то 6ля?

Показать полностью 1
[моё] Программирование Программист Java Minecraft
27
3
Roughneck22
1 год назад

Java Backend или Android?⁠⁠

Привет всем бывалым айтишникам и джунам :)

В общем, я очередной "вкатун", "вайтишник", "свитчер" или как там нас ещё называют.

Изучаю Java, параллельно работая на своей работе (я работаю в нефтегазовой отрасли и она мне ужасно надоела, собсна из-за чего и собираюсь вкатываться). Учу java-core уже 4 месяца. Да, согласен, это медленно, но на работе выходных у меня практически нет.

И слава богу, что до Spring и прочего непотребства я ещё не успел дойти, потому что у меня назрел резонный вопрос: почему не андройд разработка?

Изучение рынка труда java backend оставила неизгладимое впечатление безнадеги, а один знакомый HR, который хайрит как раз джава бэкендеров сказал, что в этой отрасли людей без опыта НЕ РАССМАТРИВАЮТ ОТ СЛОВА СОВСЕМ. Но это если верить ему. Как дела обстоят на самом деле я не знаю

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

Заранее всем большое спасибо за ответы. Я надеюсь, что этот вопрос дойдет до нужной аудитории

Показать полностью
[моё] Программирование Android Kotlin Java Backend IT Информатика Айтишники Текст
67
Блог компании
VSKurs
VSKurs
1 год назад

ТОП-15 лучших курсов Java: обучение онлайн с нуля для начинающих, платные + бесплатные⁠⁠

В этой статье сравниваем ТОП-15 лучших онлайн-курсов по обучению Java программированию по рейтингу + рассматриваем бесплатные курсы.

Java — мощный и гибкий объектно-ориентированный язык программирования. Он обладает популярностью благодаря своей платформенной независимости, позволяя запускать программы на разных ОС. Java применяется во многих сферах, таких как веб-разработка, мобильные приложения, корпоративное программирование и игровая индустрия. Он поддерживает современные технологии и имеет обширную экосистему библиотек и фреймворков для упрощения разработки.

ТОП-5 лучших курсов Java

  1. «Профессия Java-разработчик» [Skillbox] - 826 отзывов

  2. «Java-разработчик с нуля» [Нетология] - 215 отзывов

  3. «Java-разработчик» от школы [SkillFactory] - 427 отзывов

  4. «Java-разработчик: быстрый старт в профессии» [GeekBrains]

  5. «Java-разработчик» [skypro]

Курсы Java

1. Курс «Профессия Java-разработчик» обучение от [Skillbox] - 826 отзывов

Информация о курсе: стоимость — в рассрочку от 3 959 ₽/мес. на 34 месяца, длительность курса 8 месяцев

Особенности: помощь в трудоустройстве, командный проект, доступ к курсу навсегда, персональная обратная связь, регулярные вебинары, 28 практических работ, сертификат установленного образца. Обучение Java программированию с нуля.

Программа обучения:

  • 44 часа теории

  • 28 практических работ

  • 1 индивидуальный проект

  • 1 командный проект

Вводный курс

  • Знакомство с профессией (бесплатно на 7 дней)

Базовые навыки

  1. Вводный модуль

  2. Синтаксис языка

  3. Объекты и классы

  4. Примитивы

  5. Числа и даты

  6. Строки

  7. Массивы и списки

  8. Коллекции Set, Map

  9. Comparator, Iterator, Collections

  10. Наследование

  11. Абстрактные классы и интерфейсы

  12. Deployment

Продвинутые навыки

  1. Функциональное программирование

  2. Исключения, отладка, логирование

  3. Работа с файлами и сетью

  4. Работа с MySQL в Java

  5. Многопоточность

  6. Протокол HTTP

  7. Разработка веб-приложений

  8. Тестирование приложений

  9. Нереляционные (NoSQL) базы данных

  10. Производительность и оптимизация

Индивидуальный итоговый проект

Разработка на Spring Framework

  1. Основы Spring

  2. Spring Boot

  3. Web-приложение с базой данных

  4. RestAPI с базой данных

  5. Интеграция с внешними системами (Rest)

  6. Интеграция с внешними системами (Kafka)

  7. Реактивное программирование в Spring

  8. Spring Security

Дополнительно

  • Командный итоговый проект

  • Трудоустройство: Центр развития карьеры

  • Бонусные курсы

  • Презентация итоговых проектов

Java разработчик: обучение с нуля →

2. Курс «Java-разработчик с нуля» [Нетология] - 215 отзывов

Цена на курсы Java-программирования с нуля: 131 100 ₽ или в рассрочку 3 833 ₽/месяц на 36 месяцев, длительность курса 14 месяцев. Обучение программированию на Java.

Особенности: диплом о профессиональной переподготовке установленного образца, помощь в трудоустройстве/стажировке, 7 проектов в портфолио.

Вы изучите многофункциональный язык программирования с нуля и станете востребованным в областях разработки веб- и мобильных приложений, Big Data и многих других. В процессе изучения вы освоите JavaCore, Spring Boot, основы DevOps, SQL, Git и разработаете 8 полностью функциональных проектов, которые станут ценным дополнением к вашему портфолио.

Чему научитесь на курсе Java-программиста:

  • Разработка веб-приложений: приобретете знания о клиент-серверном взаимодействии и работе с базами данных и SQL.

  • Использование фреймворков: освоите шаблоны проектирования и изучите фреймворк Spring, широко используемый среди Java-программистов.

  • Программирование на Java: изучите основы программирования на Java, включая синтаксис языка и принципы ООП.

  • Мышление как программист: сможете разрабатывать быстрые алгоритмы и использовать стандартные структуры данных.

  • Участие в командной разработке: попрактикуетесь в работе с Git в командных проектах.

  • Готовиться к собеседованиям: освоите навыки формулирования карьерных целей, создания резюме и составления портфолио для успешных собеседований.

Программа обучения:

  1. Вводные уроки по языку программирования Java

  2. Применение концепций объектно-ориентированного подхода в программировании на Java

  3. Использование Git - инструмента для управления версиями кода

  4. Фундаментальные аспекты языка Java (Java Core)

  5. Понимание и применение шаблонов проектирования в разработке программного обеспечения

  6. Освоение многопоточного и функционального программирования в Java

  7. Создание веб-приложений с использованием Spring и Spring MVC

  8. Разработка, развертывание и инфраструктура приложений на Spring Boot

  9. Обеспечение безопасности хранения данных и работы приложений на S pring

  10. Дополнительные темы и модули для расширения знаний

  11. Подготовка карьеры в разработке на Java

  12. Основы английского языка для новичков в разработке программного обеспечения

  13. Введение в информационные технологии и их применение

  14. Изучение алгоритмов и структур данных для эффективной разработки программ.

Java курс →

3. Курс «Java-разработчик» от школы [SkillFactory] - 427 отзывов

Информация о курсе: стоимость — от 3 933 р./мес. при рассрочке на 36 месяцев, длительность курса 14 месяцев.

Особенности: 5 проектов для портфолио, помощь в трудоустройстве. Курсы Java с нуля.

Приобретите навыки в backend-разработке и программировании с использованием Java и Spring, а также основы методологии DevOps.

Программа обучения:

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

Курс содержит следующие темы:

  • Введение в Java программирование + основы.

  • Работа с базами данных и языком SQL.

  • Изучение алгоритмов и структур данных.

  • Практическая стажировка в виртуальной среде.

  • Backend-разработка на Java.

  • Изучение Spring Framework.

  • Frontend для разработчиков backend.

  • Основы системного администрирования.

  • Введение в методологию DevOps.

  • Завершающий индивидуальный проект.

Навыки после обучения:

  • Решение задач различной сложности с помощью алгоритмов.

  • Программирование на Java и применение концепций Collections, Exceptions, Generics, а также основ Multithreading.

  • Разработка серверной логики и настройка взаимодействия с базами данных, включая написание SQL-запросов.

  • Использование фреймворков Spring и SpringBoot.

  • Создание REST-сервисов с разнообразными функциями.

  • Развёртывание и поддержка веб-сайтов на домене.

  • Отладка и исправление ошибок в коде (debugging).

  • Создание собственного движка для веб-сайтов.

  • Работа с системой контроля версий Git и применение Gitflow.

  • Знание и применение дополнительных фреймворков.

  • Использование инструментов DevOps.

  • Тестирование приложений.

Курс Java →

4. Курс «Java-разработчик: быстрый старт в профессии» [GeekBrains]

Цена на курс Джава: в рассрочку от 3 960 ₽/месяц на 34 месяца, длительность курса 9 месяцев

Особенности: курсы обучения Java с помощью в трудоустройстве, диплом о профессиональной переподготовке.

Пройдите обучение на позицию инженера-программиста с углубленным изучением Java. В ходе обучения вы освоите базовые алгоритмы и примените их на практике, приобретете уверенное владение языком Java и сможете разрабатывать универсальные программы для различных современных платформ: от сетевых чатов и приложений до мобильных игр и других сервисов. По окончанию 9-месячного курса вы будете готовы к трудоустройству на соответствующие вакансии.

Программа обучения включает следующие темы:

  1. Основы программирования

  2. Введение в системы контроля версий

  3. Практическое знакомство с системами контроля версий

  4. Ознакомление с различными языками программирования

  5. Знакомство с работой баз данных

  6. Видеокурс: основы математики

  7. Введение в язык Java и основы использования его API

  8. Принципы объектно-ориентированного программирования (ООП)

  9. Обработка исключений при программировании

  10. Видеокурс: алгоритмы и структуры данных

  11. Видеокурс: операционные системы и виртуализация (Linux)

  12. Java Core

  13. Java Development Kit

  14. Java Junior

  15. Видеокурс: Spring Framework для языка Java

  16. Видеокурс: контейнеризация

  17. Работа с базами данных и язык SQL

  18. Видеокурс: глубокое погружение в системы контроля версий с Git

  19. Завершающий проект (дипломная работа)

Джава обучение онлайн →

5. Курсы «Java-разработчик» [skypro]

Информация о курсе: стоимость — При рассрочке на 36 месяцев от 4439 ₽/мес., длительность курса 11 месяцев

Особенности: помощь в трудоустройстве, 5 проектов в портфолио.

Курсы по изучению Java →

6. Курс Java-разработчик (PRODUCTSTAR) — 58 отзывов

На курсе вы овладеете следующими навыками:

  1. Освоите синтаксис языка Java.

  2. Познакомитесь с Java Core и основами ООП.

  3. Научитесь структурировать свой код и анализировать код других.

  4. Изучите методы тестирования программ как вручную, так и автоматически.

Помимо этого, программа обучения включает в себя:

  1. Знакомство с Hibernate и Spring, а также с ORM и JDBC.

  2. Изучение методологии Devops и её применение на реальных кейсах.

  3. Работу с базами данных и системами контроля версий.

  4. Освоение основ работы на Linux.

По завершении курса, вы сможете выбрать специализацию в Android-разработке или Frontend. Также вы будете готовы к свободному написанию кода на Java, тестированию на Java, использованию фреймворков для языка Java и применению основ Devops в Java-разработке.

Курс программирования на Java →

7. Курс Java Developer. Professional (OTUS) — 126 отзывов

Для кого предназначен этот курс?

  • Разработчики Java с практическим опытом работы.

  • Разработчики на других языках ООП с опытом работы от трех лет.

Чего вы достигнете после прохождения курса?

  • Создание современных Java-приложений.

  • Понимание основ работы JVM (включая сборку мусора и байт-код).

  • Освоение приемов работы с многопоточностью.

  • Самостоятельное решение задач уровня Middle+.

Какие преимущества принесет этот курс?

  • Получение знаний о последних технологических наборах.

  • Проведение 88 часов практической работы.

  • Детальный разбор технологий изнутри.

  • Практика решения сложных задач с детальным код-ревью от экспертов.

  • Расширение возможностей использования языка Java.

  • Ознакомление с подходами, позволяющими писать код быстрее и чище.

Структура курса:

  1. Язык и платформа Java

  2. Проектирование

  3. Работа с окружением

  4. Spring

  5. Многопоточность

  6. Проектная работа

Курсы "Java разработчик" →

8. Курс Java-разработчик (Яндекс.Практикум)

За 10 месяцев вы приобретёте следующие навыки:

  • Освоите использование среды разработки IDEA и изучите основные её функции.

  • Создадите REST API, применяя фреймворк Spring Boot.

  • Познакомитесь с работой с базами данных на примере PostgreSQL.

  • Изучите Git с самых начальных шагов до работы в команде.

  • Развернёте ваш сервис в Docker.

  • Получите опыт работы с базами данных из кода, применяя Spring Data и Hibernate.

  • Освоите методики тестирования вашего кода с помощью библиотек JUnit и Mockito.

  • Приобретёте базовое понимание алгоритмов для написания более эффективного кода.

  • Изучите фреймворк Apache Maven для автоматизации сборки проектов.

Кроме того, изучение Java имеет преимущества:

  • Подходит для новичков.

  • Некоторые сложные конструкции и особенности языка делают код более понятным и снижают вероятность ошибок.

  • Множество готовых решений в виде библиотек и фреймворков, что упрощает разработку.

  • Большое сообщество разработчиков, готовых помочь и поделиться опытом.

  • После изучения Java проще освоить другие языки программирования, так как вы освоите основные принципы программирования.

Курсы языка программирования Java →

9. Курс Джава EE (Сетевая Академия Ланит) — 40 отзывов

Курсы по Джаве:

  • Основы программирования на языке Java NEW

  • Программирование на языке Java. Углубленный курс NEW

  • Разработка приложений с использованием SPRING NEW

  • Построение приложений-клиентов баз данных с использованием JDBC 4.0

  • Разработка веб-сервисов на Java

  • Технологии JavaServlets и JavaServerPages

Курсы Ява →

10. Курс "Ява-разработчик" обучение от [Специалист]

В обучающую программу по Java включены следующие курсы:

  1. "Основы программирования и работы с базами данных"

  2. "Основы решения алгоритмических задач. Уровень 1"

  3. "Программирование на языке C (Си)"

  4. "Java. Уровень 1. Язык программирования Java"

  5. "Java. Уровень 2. Разработка клиент-серверных приложений"

  6. "Разработка приложений с использованием SPRING и Spring MVC/REST"

Пройдите дипломную программу и получите высокооплачиваемую профессию!

После завершения дипломной программы ваше резюме будет включать в себя:

  • Отличное владение языком программирования Java и глубокое понимание работы виртуальной машины Java (JVM).

  • Знание и опыт работы с веб-технологиями SOAP, REST API, JSON, XML.

  • Знание платформы J2EE (Enterprise Java), включая EJB, JAX-WS, JAX-RS, JMS.

  • Опыт работы с фреймворком Spring Framework, включая Spring MVC и Spring JDBC.

  • Опыт работы с ORM и Hibernate.

  • Повышение квалификации.

Хотите усилить свое резюме? Мы рекомендуем пройти дополнительные курсы:

  1. "Linux. Уровень 1. Основы администрирования систем Debian, CentOS, Gentoo"

  2. "Agile - Scrum Foundation 1. Управление проектами с использованием гибких подходов"

  3. "Agile - Scrum Foundation 2. Управление проектами с использованием гибких подходов"

  4. "PostgreSQL: Уровень 1. Основы SQL"

  5. "PostgreSQL: Уровень 2. Продвинутые возможности"

  6. "Система управления версиями Git"

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

  • Навыки администрирования GNU/Linux и написания скриптов на языке bash.

  • Опыт работы в Agile-ориентированных проектах и методологии Scrum.

  • Умение писать SQL-запросы и разрабатывать структуру баз данных, а также опыт работы с СУБД PostgreSQL.

  • Навыки работы с системой контроля версий Git.

Джава курс →

11. Курс Программирование на языке Java (УДО ИИ ТУСУР) — 33 отзывa

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

Программа обучения языку Java включает в себя следующие темы:

  • Ознакомление с технологией Java и средой разработки JetBrains IDEA (нововведение 2020 года).

  • Введение в объектно-ориентированное программирование на Java.

  • Работа с типами данных, переменными и операторами.

  • Создание и использование объектов, классы и объекты String, классы и объекты Java API.

  • Использование операторов управления ходом программы.

  • Разработка методов, инкапсуляция, конструкторы, массивы объектов.

  • Изучение наследования, интерфейсов и полиморфизма.

  • Механизм исключений и операции ввода/вывода.

  • Работа с коллекциями, стримами, лямбда-выражениями (нововведение 2020 года).

По завершении курса вы получите следующие знания:

  • Историю и развитие технологии Java, её основные цели и области применения, ключевые понятия и компоненты, комплект разработки JDK, редакции и версии Java, а также жизненный цикл Java-программы.

  • Основные элементы интерфейса и возможности среды разработки IntelliJ IDEA.

  • Основные понятия языка Java и его синтаксис, такие как класс, объект, атрибут, операция, композиция, наследование, интерфейс, пакеты.

  • Базовые возможности класса String, а также классов Java API и массивов объектов.

По завершении курса вы сможете:

  • Установить комплект разработки JDK и среду разработки IntelliJ IDEA на операционной системе Windows.

  • Компилировать и запускать Java-программы из командной строки.

  • Эффективно работать с ресурсами в среде разработки IntelliJ IDEA.

  • Проектировать классы и применять механизмы наследования и полиморфизма, выражая отношения между классами с помощью нотации UML.

  • Использовать механизм исключений при операциях ввода-вывода.

По завершении курса вы овладеете методами разработки и отладки Java-кода в среде разработки IntelliJ IDEA.

Продолжительность обучения:

  • Учебная программа: 72 часа.

  • Продолжительность обучения: 2 месяца.

Обучение Джава программированию →

12. Курс Java с нуля до Junior + Подготовка к собеседованию (Stepik) — 28 отзывов

Какие навыки вы освоите на курсах по Java-программированию:

  • Создание программ на языке Java

  • Правила и структура языка Java

  • Основные конструкции, такие как циклы и условия

  • Принципы объектно-ориентированного программирования

  • Работа с несколькими потоками одновременно

  • Проведение тестов с использованием JUnit

  • Изучение и применение коллекций (Collections Framework)

  • Применение обобщений (Generics)

  • Работа с потоками данных через Stream API

  • Освоение работы с потоками ввода-вывода

  • Подготовка к собеседованию в области программирования

Онлайн-курс Java →

13. Курс Язык программирования Java. Базовый уровень. (Академия АйТи) — 23 отзыва

Обучение программированию Java. Этот курс представляет основные принципы объектно-ориентированного программирования и разработки приложений на языке Java. По завершении курса вы получите Удостоверение о повышении квалификации.

Он охватывает следующие темы:

  • Синтаксис языка Java и особенности объектно-ориентированного программирования на нём.

  • Обработка исключений и операции ввода/вывода файлов с использованием базовых методов ввода/вывода.

  • Написание программ с использованием многопоточности.

  • Основы функционального программирования, введённые в версии Java 8.

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

Курсы Java программирования →

14. Курс Java-разработчик с нуля (TopJava) — 10 отзывов

Онлайн-курсы программирования Java:

  1. StartJava:

    • Основы языка Java с нуля

    • Написание грамотного кода

    • Выпускной проект

  2. BaseJava:

    • Освоение Java Core

    • Создание большого web-приложения

    • Использование БД и облачных сервисов

    • Проверка домашних заданий дважды в день

  3. TopJava (стажировка):

    • Создание сложного web-приложения

    • Изучение технологий для трудоустройства (Spring, Hibernate, БД и др.)

    • Выпускной проект

    • Помощь с трудоустройством

  4. MasterJava:

    • Создание многомодульного Maven-проекта

    • Написание трех web-приложений

    • Использование Java EE, многопоточности и web-сервисов

    • Расширение кругозора

Курс обучения Java с нуля →

15. Курс Java-разработчик (Kata Academy ) — 9 отзывов

Программа обучения:

  1. Java Core - 1.5 месяца

  2. Подготовка к проекту (Spring + Hibernate) - 2 месяца

  3. Java Advanced (бонусный модуль) - 0.5 месяца

  4. Командный проект - 1 месяц

  5. Подготовка к собеседованию - 2 месяца

  6. Трудоустройство - 1 месяц

Ява обучение →

16. Курс Ява программист (ЦАО ИТ) — 2 отзыва

Программа курса "Java - разработчик" состоит из следующих частей:

Часть I: Технологии программирования (50 академических часов)

  1. Основы технологий программирования

  2. Работа с алгоритмами

  3. Применение методов сортировки и поиска данных

  4. Типизация и структуры данных

  5. Основные парадигмы программирования

  6. Визуальное моделирование и основы Unified Modeling Language (UML)

  7. Использование основных диаграмм UML

  8. Работа с GitHub

Часть II: Программирование на Java (базовый уровень) (65 академических часов)

  1. Введение и работа с IDE. Основы типов данных

  2. Понятия классов, объектов, модификаторов доступа и базового синтаксиса

  3. Использование статических и нестатических блоков, полей и методов, концепции final

  4. Работа с Git, циклами for и forEach

  5. Применение алгоритмов и структур данных, работа с массивами

  6. Работа со строками (String), StringBuilder и StringBuffer

  7. Основы объектно-ориентированного программирования. Абстрактные классы и интерфейсы

  8. Использование внутренних, вложенных и анонимных классов. Принципы SOLID

  9. Обработка исключений. Отладка программы с помощью Debugger

  10. Работа с коллекциями и обобщениями (Generics)

  11. Чтение и запись файлов

  12. Применение паттернов проектирования (Factory, Builder, Prototype и др.)

  13. Работа с датой и временем

  14. Использование лямбда-выражений

  15. Основы функционального программирования

  16. Работа с многопоточностью

Часть III: Основы разработки баз данных (35 академических часов)

  1. Введение в базы данных

  2. Принципы нормализации баз данных

  3. Обеспечение целостности данных и реализация ограничений

  4. Знакомство с PostgreSQL, основные синтаксис и операторы PL/pgSQL

  5. Создание баз данных и файлов баз данных, проектирование и создание таблиц, управление индексами

  6. Обработка данных, использование соединений и представлений

  7. Использование функций, хранимых процедур и триггеров

  8. Обзор NoSQL баз данных

Часть IV: Программирование на Java (расширенный уровень) (40 академических часов) (Проводится преподавателями-практиками из IT-индустрии)

  1. Применение HTTP, REST и JSON, введение в Spring Initializr

  2. Работа с Spring Boot и Maven. Структура проекта и создание контроллеров

  3. Использование аннотаций и сервисов

  4. Работа с Spring JPA и PostgreSQL

  5. Применение пагинации, сортировки и фильтрации. Диалект HQL

  6. Использование Swagger-UI, настройка конфигурационных классов и обработка исключений

  7. Модульное тестирование с использованием JUnit, Mockito и SpringBootTest

  8. Работа с Spring Security и JWT Token

  9. Основы Docker и Kafka

Часть V: Работа над проектом (60 академических часов)

Курс Джава →

Бесплатные курсы и уроки Java

1. Бесплатный курс Java-разработчик (Skillbox)

В тестовом варианте доступен 1 модуль из программы курса "Джава разработчик".

Вы научитесь программировать на языке Java и разрабатывать веб-приложения с использованием фреймворка Spring с нуля. За шесть месяцев вы приобретёте базовые навыки и создадите портфолио, а мы окажем помощь в поиске работы.

Java Developer: обучение →

2. Курс Основы разработки на Java (Нетология)

Обучение Java с нуля бесплатно. Изучите основы популярного языка программирования. Разработайте Telegram-бота и приложение для просмотра фото от NASA.

Формат:

  • Вебинары и практические занятия

Уровень:

  • Для начинающих

Стоимость:

  • Бесплатно

Ваши проекты на курсе:

  • Приложение для просмотра фото от NASA:

    • Разработаете приложение, которое будет получать астрономические изображения от NASA с помощью их API.

  • Telegram-бот:

    • Создадите Telegram-бота, который будет ежедневно публиковать космические фотографии по вашему запросу.

Результат обучения:

  • Общее представление о Java и готовый проект в портфолио.

Программа курса:

  1. Введение в Java-разработку:

    • Познакомитесь с обязанностями Java-разработчика и возможными зарплатами в бэкенд-разработке.

    • Изучите основы синтаксиса Java.

    • Практика: Установка и настройка Java.

  2. Создание приложения для загрузки фото с сайта NASA:

    • Узнаете, как настроить сборку проекта.

    • Научитесь использовать существующий код.

    • Практика: Запуск консольного приложения.

  3. Интеграция приложения с Telegram-ботом:

    • Познакомитесь с понятием API.

    • Узнаете, как ваше приложение может взаимодействовать со сторонними системами.

    • Изучите понятие «клиент-серверное взаимодействие».

    • Практика: Перенос ранее написанного приложения в Telegram-бота.

  4. Создание автономного приложения:

    • Узнаете, как сделать приложение полностью автономным с помощью облачных технологий.

    • Изучите методы хранения данных.

    • Практика: Запуск приложения в облаке и создание хранилища данных — в итоге получите приложение, готовое к реализации.

Java-разработчик: обучение →

3. Основы Java (Хекслет) — обучение Java бесплатно

Курс включает:

  • 29 уроков (видео и/или текст)

  • 35 упражнений в тренажере

  • 95 тестов

  • Дополнительные материалы

  • Помощь в «Обсуждениях»

Чему вы научитесь:

  • Создавать простые программы с использованием основных конструкций языка (условия, циклы, методы и т.д.)

  • Разделять код на методы для повторного использования

  • Анализировать ошибки в коде и использовать отладочную печать

Описание:

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

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

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

Курсы разработки Java →

4. Java (Центр Финансовых Технологий) — обучение на Java-разработчика с нуля

Что вас ждет в проекте:

  • Изучите тонкости и особенности языка Java, необходимые для промышленного программирования.

  • Примените полученные знания на практике, проходя строгий и внимательный code review.

  • Получите звание Junior Java Developer, открывающее широкие возможности в IT-разработке.

  • Лучшие выпускники получат предложение работы в команде ЦФТ с графиком 40 часов в неделю.

Содержание курса:

  • Введение в Java, типы данных

  • Операторы, составные типы данных

  • Введение в ООП, модификаторы

  • Инициализация классов и объектов, исключения

  • Класс Object, определение классов, сборка мусора

  • Принципы и паттерны проектирования

  • Обобщённое программирование, рефлексия

  • Многозадачное программирование: основы и инструменты

  • Стандартная библиотека Java

  • Сетевое программирование, протокол HTTP

  • Основы Servlet API

  • Основы Spring и Spring MVC

  • Работа с базами данных: JDBC

  • Основы Hibernate

Обучение Ява программированию →

5. Java (itProger)

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

Обучение Джава с нуля →

6. Легкий старт в Java. Вводный курс для чайников (Stepik)

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

Java — универсальный язык программирования, стабильно занимающий одно из лидирующих мест среди популярных языков программирования.

Java обладает рядом преимуществ, таких как использование принципов объектно-ориентированного программирования (ООП), простой синтаксис, безопасность и поддержка кроссплатформенности.

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

Java-разработчик: курсы →

Сколько стоит обучение Java?

От 0 рублей, если говорим о бесплатных курсах. Один из популярных платных курсов стоит в рассрочку 3 959 ₽/мес. на 34 месяца.

С чего начать изучение Java с нуля?

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

1. Основы программирования

Если вы новичок в программировании, начните с изучения общих концепций программирования, таких как переменные, циклы, условия, функции и структуры данных. Это можно сделать на любом простом языке, таком как Python или даже Pseudocode.

2. Установка окружения

Для разработки на Java вам понадобится установить следующие инструменты:

  • JDK (Java Development Kit): он включает в себя компилятор Java и другие инструменты разработки. Скачайте и установите последнюю версию JDK с сайта Oracle или OpenJDK.

  • IDE (Integrated Development Environment): рекомендуемые IDE для начинающих:

    • IntelliJ IDEA (Community Edition)

    • Eclipse

    • NetBeans

3. Изучение основ Java

Изучите базовые понятия Java:

  • Синтаксис: ознакомьтесь с синтаксисом Java, включая типы данных, операторы, структуры управления (циклы и условия), методы и классы.

  • Объектно-ориентированное программирование (ООП): поймите основные концепции ООП, такие как классы, объекты, наследование, полиморфизм, инкапсуляция и абстракция.

4. Ресурсы для обучения

Используйте различные ресурсы для изучения Java:

  • Книги:

    • "Head First Java" от Kathy Sierra и Bert Bates

    • "Effective Java" от Joshua Bloch

    • "Java: The Complete Reference" от Herbert Schildt

  • Онлайн курсы

  • Документация и справочники:

    • Официальная документация Oracle по Java

    • Java Tutorials на сайте Oracle

5. Практика

Практика - ключ к успеху в программировании. Решайте задачи на различных платформах:

  • HackerRank

  • LeetCode

  • Codewars

6. Проекты

Создайте несколько простых проектов, чтобы закрепить свои знания:

  • Калькулятор

  • Программа для управления списком задач

  • Простая игра (например, крестики-нолики)

7. Углубленное изучение

Когда вы будете уверенно чувствовать себя с основами, переходите к более сложным темам:

  • Коллекции: List, Set, Map и другие

  • Потоки ввода-вывода (I/O)

  • Обработка исключений

  • Параллельное программирование (многопоточность)

  • Работа с базами данных (JDBC, ORM фреймворки, такие как Hibernate)

8. Сообщество

Присоединяйтесь к сообществу разработчиков Java:

  • Форумы (Stack Overflow, Reddit)

Сколько учить Java с нуля?

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

  1. Основы программирования (1-2 месяца):

    • Изучение основ синтаксиса Java.

    • Понимание переменных, типов данных, операторов, циклов и условий.

    • Основы работы с массивами и строками.

  2. Объектно-ориентированное программирование (2-3 месяца):

    • Понимание концепций классов, объектов, наследования, полиморфизма, абстракции и инкапсуляции.

    • Практика написания простых программ с использованием этих принципов.

  3. Дополнительные концепции и библиотеки (1-2 месяца):

    • Работа с коллекциями, списками, множествами, картами.

    • Обработка исключений.

    • Основы работы с потоками ввода-вывода.

    • Знакомство с основными стандартными библиотеками Java.

  4. Практика и проекты (2-4 месяца):

    • Выполнение небольших проектов для закрепления знаний.

    • Изучение лучших практик программирования.

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

Таким образом, интенсивное обучение может занять от 6 до 12 месяцев. Однако, это время может варьироваться в зависимости от вашего темпа обучения и наличия предыдущего опыта в программировании.

Какая зарплата у программиста Java?

Зарплата Java-программиста зависит от уровня квалификации и региона. В среднем по стране, зарплаты выглядят следующим образом:

  • Junior (начинающий) Java-программист: от 50,000 до 150,000 рублей в месяц. В крупных городах, таких как Москва и Санкт-Петербург, зарплаты начинаются от 60,000 и могут доходить до 150,000 рублей.

  • Middle (средний) Java-программист: от 100,000 до 250,000 рублей в месяц. В зависимости от опыта и компании, в Москве средняя зарплата может достигать 200,000 рублей, а в Санкт-Петербурге около 180,000 рублей.

  • Senior (старший) Java-программист: от 120,000 до 500,000 рублей в месяц. В Москве и Санкт-Петербурге старшие разработчики могут зарабатывать до 450,000-500,000 рублей.

Показать полностью
Удаленная работа Фриланс Обучение Дистанционное обучение Курсы Онлайн-курсы Курсы повышения квалификации Образование Развитие Карьера Учеба Профессия Онлайн-школа Онлайн Полезное Программирование Бесплатное обучение IT Java Программист Блоги компаний Длиннопост
58
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
1 год назад

Друзья! Вышел новый видос, статью тоже на этой неделе постараюсь успеть подготовить⁠⁠

[моё] Гаджеты Покупка Смартфон Android Программирование Java Обзор Ретро Мобильные телефоны Электроника Телефон Железо Видео YouTube ВКонтакте Telegram Олдфаги
9
139
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
1 год назад

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых⁠⁠

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

Друзья! А вы помните, какими были мобильные игры в 2000-х годах? Помните, как разработчики умудрялись уместить целые миры в устройство с небольшим дисплеем, аппаратной клавиатурой, весьма слабым железом и парой сотен килобайт памяти? Но задумывались ли вы, как в своё время работали эти сами игры «под капотом»? В сегодняшней статье-ретроспективе предлагаю вспомнить мобильный геймдев нулевых и узнать, как же работали 2D Java-игры, какие API были доступны и что из себя представлял средний телефон тех лет! Интересно? Тогда добро пожаловать под кат!

❯ Предисловие


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

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

Но помимо десктопных и консольных игр, существуют и мобильные игры, которые в последние 5 лет вплотную приблизились к уровню AAA на консолях (привет порту GRID, AC Mirage, RE4 на мобилки). А ведь ещё 15-20 лет назад мы играли на кнопочных телефонах с небольшими дисплейчиками, которые в свое время подарили нам множество эмоций и кайфа от прохождения этих самых игр, несмотря на простенькую графику, не особо комплексный геймплей и относительно простой левел-дизайн. Продвинутые мобильные геймеры играли уже на Symbian-смартфонах и WinMobile-коммуникаторах (да, в какой-то момент времени, устройства на WM были весьма перспективными), но чаще всего — на Java-телефонах Nokia, Sony Ericsson, Siemens и, конечно-же, Samsung с LG!

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

По правде сказать, игры на смартфонах — тема отдельная, например на Symbian был полноценный телефон-игровая консоль Nokia N-Gage, о которой я писал отдельный материал, а о разработке игры под Windows Mobile я относительно недавно написал отдельную статью. У смартфонов обычно было несколько больше ресурсов: шустрее процессор, значительно больше памяти доступной игре, а также возможность запуска нативного кода, но и игры для них было разрабатывать значительно сложнее.

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

Зато о том, как работали игры на Java-телефонах информации практически нет и этот недостаток нужно исправлять, ведь это была одна из первых попыток унифицировать формат приложений на телефонах вне зависимости от архитектуры их процессоров и ОС на борту. Недавно я писал о том как работали 3D-игры на Java-телефонах, но там затрагивалась только 3D-часть без 2D, звука, обработки ввода и иных модулей, без которых игра не может работать!

❯ Каким был телефон?


В середине 2000-х годов, обычно телефон представлял из себя девайс в корпусе моноблок/раскладушка/слайдер и «флип» с весьма большим цветным дисплеем, одним/двумя (привет Motorola E398) динамиками и несколькими аппаратными кнопками. В зависимости от ценового сегмента устройства, обычно менялся корпус, разрешение и размер дисплея, а также материалы, из которого был изготовлен девайс. При этом у многих больших вендоров были собственные программные платформы — у Nokia это был S40, у Sony Ericsson своя, у Samsung и LG тоже свои.

В среднем, характеристики телефонов были следующими:

  • Процессор: ARMv4/ARMv5 на частоте ~100-200МГц. Есть исключения — Siemens E-Gold работал на базе архитектуры C166, а платформа Motorola работала на 66МГц (что и объясняет небольшую тормознутось).

  • ОЗУ: ~8Мб SDRAM. Эта память распределялась под все нужды системы, в том числе и обработку GSM, Java и пользовательский интерфейс. Java-приложениям было доступно ~1Мб ОЗУ.

  • Постоянная память: в среднем ~10-30Мб, плюс возможность расширения памяти за счет MicroSD или MS Pro Duo (Sony Ericsson).


Казалось бы, не густо. На самом деле вполне достаточно, учитывая все ограничения телефонов тех лет. Но почему именно Java?

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

Ещё в начале нулевых, когда прогресс развития телефонов шёл семимильными шагами, перед разработчиками телефонов встал вопрос, какой формат для программ выбрать, дабы привлечь как можно больше разработчиков на рынок мобильных приложений. Очевидно, что нативные программы на C/C++ точно не подойдут (разные архитектуры, большие отличия в платформах), поэтому нужна была виртуальная машина с собственным байткодом. Вариантов было несколько: Mophun, некая корейская виртуальная машина (точного названия, увы, не помню и инфы очень мало) и, конечно-же, Java с JVM. Со временем именно J2ME стала стандартом благодаря оптимальной скорости работы, хорошему и простому API и низкому порогу входа.

❯ Какие API существовали?


Несмотря на то, что игры под кнопочные телефоны писались на Java, набор API и поддерживаемых пакетов отличался от обычной JVM на ПК, которую использует, например, Minecraft. Всего существует три профиля — J2SE (Android и ПК), J2EE (серверы и энтерпрайз) и J2ME (встраиваемая электроника и телефоны). Однако сам по себе J2ME делится ещё на два стандарта — CLDC/CDC (набор поддерживаемых фишек языком — например, ранние телефоны не поддерживали float) и MIDP (набор поддерживаемых телефоном фишек — работа с дисплеем, проигрывание звуков, доступ в сеть и обработка ввода — всё это часть MIDP). За всё время существования было две версии MIDP — 1.0, которая была весьма ограничена в возможностях (например, нельзя было развернуть игру на весь экран) и использовалась с 2001 по ~2003 год и MIDP 2.0, которая использовалась вплоть до кончины J2ME.

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

Теоретически, появление J2ME должно было стандартизировать игры на телефонах разных производителей… но был нюанс — ведь функционал телефонов рос как на дрожжах, разрешение дисплеев тоже, у телефонов появлялась собственная память и файловая система, возможность подключения к интернету и Bluetooth и появился целых ворох API…

Несмотря на то, что игры по большей части были одинаковыми (или почти одинаковыми) на всех кнопочных телефонах, тем не менее набор поддерживаемых API каждым устройством значительно отличался. Вероятно, вы помните как многие игры подразделялись не только на версии для разных разрешений дисплея, но и на версии для каждого производителя отдельно: Nokia, SE, Samsung и т. п. Для реализации каких-то особых фишек (например, быстрая отрисовка изображений с регулируемой прозрачностью) требовалось использовать пакеты, неподдерживаемые в базовом профиле MIDP. И подобные пакеты делились на два типа — JSR и Vendor-specific пакеты.

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

JSR — это расширения-спецификации (то есть просто описание классов без какого либо кода), которые вносились в специальную базу Java community process и формально стандартизировались среди всех нормальных производителей телефонов. Среди таких JSR есть и поддержка 3D-графики (JSR184 — M3G, JSR239 — OpenGLES Bindings for J2ME), и доступа к файловой системе устройства (JSR75), и возможность использования Bluetooth для реализации мультиплеера (JSR82). Говоря простыми словами, это опциональные «фишки», которые могли быть доступны на каких-то телефонах, а на каких-то не поддерживались и соответственно игры, которые их используют, в большинстве случаев просто вылетают с ошибкой (однако особенно «умные» игры используют рефлексию и определяют поддерживается ли та или иная функция с помощью метода Class.forName).

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

Vendor-specific пакеты обеспечивали очень крутой функционал, характерный не просто одному производителю телефонов, а зачастую даже одной линейке телефонов на определенной платформе. На SE такие пакеты практически не использовались (кроме, конечно, Mascot Capsule), а вот на Nokia постоянно (Nokia UI, Nokia S40 API), позволяя на изначально «слабеньких» s40-телефонах рисовать в буфер дисплея напрямую, а также отрисовывать треугольники, рисовать полупрозрачные картинки и выполнять некоторые другие операции, недоступные на других телефонах. У Samsung, же, например, в свое время была поддержка MMF-звуков в мобильных играх, что в начале и середине 2000х годов было просто нереально крутым, даже несмотря на другие ограничения корейских телефонов.

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

❯ Графика


Возможности по отрисовке графики на кнопочных телефонах были не сказать что сильно широкие, но тем не менее позволяли легко реализовать графику уровня SNES или даже PlayStation 1. Например, в отличии от современных смартфонов, мы не могли использовать шейдеры, умножить спрайт на цвет (дабы придать ему другой оттенок) и даже использовать аффинные трансформации (поворот, скейлинг) — исключительно полупрозрачные спрайты даже без возможности плавно «растворить» спрайт путем изменения его альфы! Поэтому многие разработчики шли на «хак» и предварительно рисовали в редакторе 8-16 положений одного спрайтов с разным углом поворота, дабы потом выбрать нужный в зависимости от физического угла поворота в градусах!

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

Для графики использовался пакет javax.microedition.lcdui, в котором были классы для построения нативного интерфейса (выглядело так себе на большинстве телефонов), а также механизм фреймов (Form, Canvas).

Для игр же предлагался Canvas и GameCanvas, которые позволяли развернуть поверхность для рисования на весь экран и предлагали инстанс объекта Graphics, который сразу предоставлял механизм двойной буферизации! В свою очередь, Graphics предоставлял методы для отрисовки спрайтов (Image и drawRGB для «сырых» картинок не в нативном-формате, может быть медленно), примитивов (линии, прямоугольники, овалы), текста и… всё! Например, картинку можно было нарисовать вот так:

getGraphics().drawImage(img, 0, 0, Graphics.LEFT | Graphics.TOP);

При этом с шрифтами вопрос был отдельный: у каждого устройства был свой набор поддерживаемых шрифтов и свои фишки, о которых клиентская программа даже могла и незнать: например поздние телефоны поддерживали сглаживание шрифтов (что дико лагало на устройствах типа Nokia Asha), но что самое забавное — шрифты не могли быть произвольного размера, лишь 3х типов (один из них — моноширинный) и 3х размеров (маленький, средний, большой). Немудрено, что многие вендоры реализовывали свои рендереры битмапных шрифтов, которые точно будут нужного разработчику размера.

Но откуда же грузить картинки? Для этого, в Java был использован встроенный механизм открытия ресурсов из JAR: никакого кэша, никаких OBB, все нужные данные сразу в пакете с игрой. Да, это накладывало некоторые ограничения: например на телефонах Samsung долгое время было ограничение ~250Кб на приложение, зато было просто и портативно. Выглядело это вот так:

InputStreamReader reader = new InputStreamReader(getClass().getResourceAsStream('/img.png");

Или в случае картинок так:

Image image = Image.createImage("/img.png");

Всё очень легко и понятно, согласитесь?

❯ А звук?


Помните диалог «включить звук» при запуске почти каждой игры? Конечно же помимо графической части, в каждой игре должен быть и звук! И с его реализацией были свои нюансы: ведь в MIDP 1.0 звук поддерживался только с помощью Vendor-specific API (то есть его вообще могло и не быть, зато на телефонах Samsung поддерживался MMF, что, как я уже и говорил раннее, было очень круто).

MIDP 2.0 уже стандартизировал нормальный протокол для общения с мультимедийной подсистемой устройства с помощью пакета javax.microedition.media, в котором было три класса: Player (собственно, сам звук или музыка), PlayerListener (прослушиватель событий от плеера) и Control для управления различными параметрами воспроизведения (громкость, тональность и, вероятно, прочие расширения от производителей типа эквалайзера).

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

Конечно-же набор поддерживаемых форматов был невелик, но почти все устройства хотя-бы поддерживали wav (для коротких эффектов) и midi (для музыки), на ранних телефонах ни о каком mp3 и речи не шло (именно в Java-приложениях). При этом на некоторых телефонах, насколько мне известно, не было возможности воспроизводить одновременно звуки и музыку из-за отсутствия программного или аппаратного микшера. Интерфейс для воспроизведения звуков был один: мы создаём Player с помощью метода createPlayer, которому передаём адрес нужного ресурса и проигрываем его. Это мог быть как и трек на удаленном сервере (стриминг поддерживался не везде), так и в ресурсах программы:

InputStream is = getClass().getResourceAsStream("/music.wav");
Player player = Manager.createPlayer(is, "audio/x-wav");

player.prefetch();
player.start();

Так почему-же в большинстве игр на телефонах тех лет были midi-мелодии вместо wav? Всё дело в размере и ресурсах: во первых, midi-мелодия на пару минут может весит пару десятков килобайт. Помните «бумер.mid», «europa.mid» и другие известные тогда файлы? Эти треки весили совсем немного благодаря тому, что в отличии от оцифрованных сэмплов (т.е аналоговых данных с микрофона), вес которых зависит от разрешения, наличие стерео и частоты дискретизации, midi оперировали лишь наборами инструментов: что где и когда нужно проиграть. Во вторых, в Java-телефонах был ограниченный объем памяти, а heap мог быть менее 1 мегабайта, поэтому загрузка даже небольшого wav-файла могло быть крайне проблематичным на таком устройстве. Поэтому выкручивались как могли!

Но в целом, аудио-возможности были хорошими. Java-игры славились весьма неплохим звуковым сопровождением для уровня телефонов, явно не хуже GBA.

❯ Мультиплеер! Давай про мультиплеер!


Вероятно многие читатели помнят, что локальный мультиплеер в Java-играх был зачастую Must-have: возможность игры с друзьями по «локалке» собирала все лавочки и подоконники в школах на переменах в жёстких баталиях на бипланах, или, например, в матчах CS для Java!

Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых Java, Программирование, Игры, Олдфаги, Ретро, Ностальгия, Java игры, J2me, Телефон, Nokia, Моторола, Гаджеты, Ретро-игры, Читальный зал, Ретроспектива, Длиннопост

И для реализации мультиплеера у Java было довольно немало возможностей: в первую очередь, это наличие полноценных TCP-сокетов и Http-подключений с помощью класса Connection. Да, были некоторые ограничения (например на Nokia нельзя было установить TCP-соединение на порт 80 в обход встроенного клиента Http), но тем не менее даже через GPRS можно было создать с кем-то матч и попробовать поиграть, а чуть позже, к 2009 году, в РФ уже появился +- стабильный 3G и можно было поиграть в игры с достаточно быстрым и стабильным интернетом! Но интернет был дорогой, да и смысл ради сессионного матча подключаться к интернету, когда есть Bluetooth?

Появление Bluetooth в телефонах значительно расширяло возможности телефонов в обмене информации на короткой дистанции. Конечно и до этого уже был ИК-порт, который позволял передавать файлы на относительно низкой скорости, но у него была не самая большая стабильность, да и далеко не все можно было успеть перекинуть за время школьной переменной (и не все давали свой телефон «на урок»). Появление OBEX и возможности передачи файлов друг-другу через беспроводной канал дало возможность скидывать музыку и игры прямо на уроке, что было очень круто и позволило некоторым школьникам с флэшкой или телефоном с большим объемом встроенной памяти даже торговать контентом и скидывать, например, эротику за пирожок или школьную пиццу (я застал когда она уже стоила около 10 рублей — весьма немало!). Особо красноречивые ребята умудрялись уболтать друзей себе скидывать весь контент, что был у них на телефонах и становились центром внимания с новым крутым треком — я и сам в некоторой степени таким был (у меня была флэшка на 2 гигабайта!).

Но помимо возможности обмена файлами, Bluetooth также поддерживал некоторые профили: например, подключение к наушникам или протокол L2CAP/RFCOMM для установки соединения клиент-сервер между устройствами, которое и использовалось в Java-играх. Именно оно позволяло сделать один телефон сервером (хостом), а другому — клиентом, который подключается к серверу и они инициируют сессию игры!

❯ Проблемы мультиплатформенности


На бумаге все было хорошо: Java-машина была стандартизированной, поддерживаемые профили тоже и по идее игры и программы должны без проблем запускаться на большинстве Java-телефонов. Но как-бы не так: проблемы с кроссплатформенностью имели место быть. Начиная от упомянутых выше Vendor-specific API и версиями MIDP, заканчивая… как это ни странно, разрешениями экрана.

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

Во времена Java-телефонов, зависимость от разрешения дисплея была критичной и поэтому игры для «не того» разрешения либо выходили за экран, либо наоборот — выглядели слишком маленькими и игрались в небольшом окошке. Многие вероятно вспомнят как устанавливая игру для малого разрешения дисплея, можно было заметить как шлейфом уезжают спрайты за виртуальный экран и остаются на белом фоне…

Небольшие проблемы были и с обработкой ввода. И если резистивные тачскрины поддерживались еще в MIDP 2.0 с помощью обработки определенных событий, то с мультитачем (во времена Asha и поздних телефонов Samsung) было уже сложнее. Другой вопрос что даже коды кнопок почему-то не унифицировали, из-за чего возникало деление на Samsung, Sony Ericsson и Nokia: разработчики J2ME предполагали что смартфоны будут в разных форм-факторах и предоставили лишь механизм для унификации «игровых» кнопок. Таким образом, некоторые игры, собранные под телефоны конкретного производителя могли не реагировать на нажатие кнопок клавиатуры из-за отличающихся кодов клавиш.

❯ Заключение


Друзья! Вы, вероятно, думаете что если телефоны с поддержкой J2ME больше не производятся, значит и коммьюнити уже «всё»? Как-бы не так: после моих статей мне продолжают писать читатели и спрашивать детали реализации тех или иных техник или игровых механик! Да, энтузиастов мало, но они есть, как и у ретро-компьютеров: например, спектрума, или консолей типа NES… А значит наше дело будет жить и Java-телефоны с их играми останутся в наших сердцах, а Java-телефоны останутся на скрижалях истории! Берегите своих кнопочных красавцев и восстанавливайте по возможности, благо пока-что даже корпуса на популярные модели кнопочных телефонов найти относительно легко.

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

Материал подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, дабы не пропускать новые статьи каждую неделю!

Показать полностью 11
[моё] Java Программирование Игры Олдфаги Ретро Ностальгия Java игры J2me Телефон Nokia Моторола Гаджеты Ретро-игры Читальный зал Ретроспектива Длиннопост
27
3
Shawurma
Shawurma
1 год назад
Инкогнито

Ошибочка вышла⁠⁠

Источник

Ошибочка вышла Программирование, IT юмор, Программист, Юмор, IT, Райан Гослинг, Java, Linux, Картинка с текстом
Показать полностью 1
[моё] Программирование IT юмор Программист Юмор IT Райан Гослинг Java Linux Картинка с текстом
3
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
2
DELETED
1 год назад
Лига программистов

Что скажете про хекслет?⁠⁠

Ребят, хекслет норм? Как обучение, как с трудоустройством? Я понимаю, что со старта мне кучу денег платить не будут. Смогу устроиться хотя бы за 30/25 к (если что, то могу первые месяца 3-4 даже бесплатно поработать) куда-нибудь джуном/стажёром?
Пойду на курс java разработчик.

[моё] Программирование Курсы программирования Hexlet Вопрос Трудоустройство Java Нужен совет Текст
40
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии