Нескучный WebDev
334 subscribers
34 photos
2 videos
21 links
Канал о веб-разработке с тонной образовательного контента, юмором и много чем еще!
Download Telegram
В чем разница между Web- и мобильной разработкой?

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

Тем более, что многие языки программированиях подходят и для разработки веб-приложений, и для мобильной разработки, например Java (используется для создания высоконагруженных систем в браузере или разработки приложений для ОС Android) и C# (используется для написания backend-части для веб-приложений, а также для создания мобильных игр)

У web- и мобильных приложений разные задачи:
web-приложения помогают без проблем найти, упорядочить и просматривать необходимую информацию, не требуют использования дополнительных ресурсов, самостоятельно собирают, хранят и обрабатывают данные пользователей .
мобильные приложения используют для увеличения продаж и стимулирование повторных покупок, постоянной связи с клиентом (через уведомления) и роста его лояльности, автоматизация процессов. Они банально всегда под рукой!

Примеры известных web-приложений:Google, Netflix, YouTube
Примеры известных мобильных приложений:Tik-Tok, Instagram, Ozon

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

А вам какой вид разработки ближе
🔥4
Что такое десктоп-разработка, и для чего она нужна?

Десктоп
(от англ. desktop) - рабочий стол. А десктопное приложение — соответственно, это программа, которая устанавливается прямо на компьютер и работает под управлением операционной системы.
Например, у знаменитого редактора Figma есть браузерная версия, а есть десктопная. Ее можно запустить прямо с рабочего стола. Такие приложения высокопроизводительные, могут работать напрямую с принтерами, сканерами и прочей техникой.

Преимущества для пользователя:
1. Работа как в онлайне так и в офлайне.
2. Быстрый запуск.
3. Отзывчивый пользовательский интерфейс.
4. Быстрая работа.
5. Работа с периферийными устройствами
6. Дополнительные возможности. Например, в случае с Figma, десктоп-версия открывает опцию легкого переключения между вкладками с задачами.

Но количество скачиваний таких приложений невелико. Почему?
Это легко объяснить нежеланием пользователей использовать память компьютера и совершать “лишние” действия, да еще и постоянно обновлять их. Гораздо проще открывать любимые программы непосредственно в браузере.
А вы за десктоп или за web?
👍2
Не только боты! Какие проекты мирового значения написаны на Java?

NASA World Wind
Это полностью трехмерный интерактивный виртуальный глобус, который использует спутниковые снимки NASA и аэрофотосъемку Геологической службы США для построения трёхмерных моделей Земли, Луны, Марса, Венеры и Юпитера.

Google и Android OS
Компания Google использует Java для многих своих продуктов. В основном для программирования сервера и разработки пользовательского интерфейса.
Например, для Google Docs — приложения для работы с документами, которое очень похоже на Microsoft Word.
И конечно, здесь мы никак не можем пройти мимо операционной системы Android — ведь она берет свое начало именно от виртуальной машины Java (JVM). Поэтому на этом языке можно разрабатывать и мобильные приложения.

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

Uber
Для приложения Uber Java — одна из важнейших технологий наряду с Python, Node.js и Go. Согласно заявлению разработчиков, они выбрали Java именно по причине высокой производительности, что является одной из главных характеристик этого языка. Также Java обладает преимуществами экосистемы с открытым исходным кодом и интегрируется с внешними технологиями.

Minecraft
Да, эта всемирно известная компьютерная инди-игра в жанре песочницы тоже написана на Java. По словам разработчиков “пусковая установка Minecraft поставляется с Java версией 1.8.0_51, которая используется по умолчанию”. Однако они рекомендуют обновиться, чтобы увеличить производительность.

А о каких из них вы знали?
👍4
На каком языке мы будем писать Телеграм-бота?
Anonymous Quiz
14%
Phyton
69%
Java
1%
PHP
14%
Не знаю
2%
С++
👍3
Нескучный WebDev
На каком языке мы будем писать Телеграм-бота?
58% наших подписчиков ответили верно - бота будем писать на языке Java☕️
Почему именно этот язык? Во-первых, потому что для создания ботов в Telegram написана отличная библиотека именно на Java. И поэтому многие разработчики ботов используют этот язык.
А еще - Java входит в топ-3 самых востребованных языков и считается универсальным.
Его бета-версия была выпущена в 1995 году, а в марте 2022 вышел уже 18-ый релиз!😵
Сейчас он наиболее востребован в таких направлениях, как

- веб-разработка (масштабные бизнес-проекты);
- программы для ПК (десктопный софт);
- компьютерные игры (например, Minecraft);
- приложения для мобильных устройств (ОС Android);
- научные исследования и разработки;
- промышленный программинг.

Остались вопросы? Пишите их в комментариях👇🏼
👍12👎1
Java vs Python: какой язык изучать?

Сейчас принято активно рекламировать Пайтон как наиболее простой для изучения язык программирования. Да, в этом его неоспоримое преимущество, но проще - не значит лучше!

Давайте разберемся, в чем Java "сильнее" Python?
Безопасность.
При написании кода на Java ошибки выявляются в процессе компилляции, а не в процесс реализации программы, как это происходит с Python. То есть, все потенциальные "баги" проще выявить на стадии "до выполнения", а значит, проще избежать;

Командная работа
Изучить чужой код на Java проще, из-за обилия описаний переменных. А вот чужой код на Python прочесть уже сложнее.

Скорость
Производительность Java-приложений примерно равна производительности того, что написано на С/С++.
Python-разработчики могут использовать Cython и Jython для написания модулей С/С++ и Java-кода под Python. Но это не сильно улучшает общую скорость работы приложений. Python куда медленнее Java.

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

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

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

И, как обычно, мы ждем ваших вопросов в комментариях👇🏼
👍13👎1
Почему в backend-разработке лидирует язык из середины 90-х и при чем здесь кофе?

Как бы парадоксально ни звучало, но самым актуальным языком для бэкенд-разработки на данным момент остается язык из середины 90-х. Да, Java впервые был презентован Джеймсом Гослингом 23 мая 1995 года. Правда, изначально он назывался Oak, что в переводе означает “дуб” .
Но оказалось, что язык с таким названием уже существует, и выбор пал на слово Java, в честь марки кофе (а кофе, как известно, лучший друг программиста)

В чем секрет лидирования Java в backend? В надежности, скорости и безопасности этого языка.

А еще Java — это круто, потому что вы сможете:
- изучать космос с NASA;
- помогать докторам посещать пациентов на расстоянии;
- создавать софт для трейдинга;
- разработать торговый автомат;
- подписаться на Java в Twitter, который создан с помощью Java



Поэтому, ответ на вопрос: "Стоит ли изучить Java?" - однозначно “да”, если вы, конечно, хотите стать востребованным программистом.
А что думаете вы?
15🔥3
Кто с нами в эфире?
🔥171
👋🏼Всем привет!

Виктор Сильнов ведет блог в Телеграмме о программировании и о работе, будет рад вас видеть

https://t.iss.one/silnovblog
👍7
⚡️Факт!
По данным Хабр.Карьеры за июнь,сейчас среди IT-специалистов большим спросом у российских компаний пользуются backend-разработчики.

🤔А самый популярный язык программирования на котором реализуют backend - это Java. (35% вакансий - это вакансии Java-разработчиков)

Как вам такое?
👍13
Привет всем! Сегодня публикуем пост Александра Демидова, backend-разработчика "Альфа-банка":

❗️Он достаточно длинный, но очень интересно написан:

"Как начать карьеру в разработке?

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

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

Мой выбор пал на программирование не случайно. Я четко понимал, чего я хочу и, что более важно, чего я не хочу от работы. Мне было важно видеть результаты своего труда как можно скорее, практически мгновенно, а не через месяц, квартал или год.
Мне было важно понимать, что результат моей работы зависит по большей части только от меня самого
, и что мои компетенции можно просто и объективно оценить в рамках требований индустрии. Для меня важно, что возможностей для роста в программировании предостаточно, и более того, они прозрачны: выбирай одно из множества направлений, осваивай стек технологий и изучай его так глубоко, как это необходимо, потом переходи к следующему. Иначе говоря, я воспринимал (и сейчас воспринимаю) программирование как ремесло, такое же как работа строителя, кузнеца, столяра или электрика, только цифровое. И мне захотелось стать мастером своего дела - это моя мотивация.

Так что мой первый совет: разберитесь, зачем вам это?
Вам потребуется ответ на этот вопрос, когда вы будете продираться сквозь десятки вкладок гугла, документации, stackoverflow и видеороликов программистов с сильным индийским акцентом

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

У всех желающих стать разработчиком будут разные жизненные обстоятельства. Но ресурсы для обучения у всех будут одни и те же - это время и деньги. Когда я еще только задумывался о том, чтобы сменить сферу деятельности и пойти учиться, я принял решение, что я буду делать это full-time, то есть не совмещая ни с какой другой работой, не по вечерам и не на выходных. Моя тогдашняя работа вместе с дорогой до неё не оставляли мне сил и времени для учебы, и я, скорее всего, просто бы сгорел от такого ритма. Хотя я и знаю реальные примеры перехода в IT, когда люди учились буквально где угодно и каждую свободную минуту, совмещая это со своей основной работой, мне остается только засвидетельствовать мое почтение к их силе воли и целеустремленности, я думаю, что я бы так не смог.

Путем изучения различных “историй успеха” таких же “перебежчиков” из других сфер, я оценил общие затраты времени на мое обучение и трудоустройство в 10-12 месяцев с полного “нуля”.
Под “нулем” я имею в виду следующее: мне 28 лет, у меня нет технического бэкграунда, ЕГЭ по математике в 2010 году я сдал на 56 баллов, по образованию я логист, по опыту работы я закупщик напитков и алкоголя, ближайший к программированию опыт - это написание формул в Excel, имею свой компьютер, доступ в интернет и знаю английский язык (последнее не критично, но достаточно сподручно). Обучаться на “полную ставку” я решил как на обычной работе, пять дней в неделю с 9 до 18 с перерывом на выходные и праздники.

Если бы я заранее знал, что конкретно мне придется изучать, для чего, и сколько времени это займет, то я бы разбил свой процесс обучения на несколько стадий и определил для каждой из них временной период следующим образом:
👍1
1. Основы синтаксиса языка: 1 месяц (Hello world, виды переменных, циклы, массивы, могу написать программу, которая что-нибудь посчитает и выведет на экран в консоль)
2. Парадигма объектно-ориентированного программирования и её реализация в Java: 2 месяца (модификаторы доступа, наследование, интерфейсы, могу написать программу с иерархией классов и объяснить принципы ООП не только на примере автомобиля)
3. Продвинутый уровень Java (исключения, коллекции, лямбда-выражения, дженерики, основы многопоточности, знаю как работает HashMap и что выбрать между ArrayList и LinkedList, а также не путаюсь в проблеме PECS): 2 месяца
4. Сетевое взаимодействие в Java (клиент-сервер, HTTP протокол, обработка JSON, могу написать программу, которая сходит по ссылке, что-то из неё получит, обработает и выведет на экран): 1 месяц
5. Базы данных, основы SQL и Java (могу поднять базу на своем компьютере, сообразить её схему и создать таблицы, могу писать простые SQL запросы к этой базе, могу по JDBC подключить эту базу к своей программе): 1 месяц
Spring Framework и всё вокруг него (Spring Boot, REST API, WebMVC, Maven/Gradle, тестирование, могу написать приложение с RESTful API, взаимодействующее с подключенной базой данных и покрыть код тестами): 3 месяца

Итого 10 месяцев. На что еще 2? На подготовку к собеседованиям, конечно же. Когда вы нагуглите список вопросов к собеседованию на джависта и пойдете по нему, то вы сразу увидите, что многих интервьюеров интересуют какие-то странные вещи, а также, что вы уже забыли какую-то часть пройденного материала, а что-то вы вообще не знаете и нужно это изучить и разобрать. Особенно это касается вопросов по Spring...."

Интересно? Публикуем продолжение?
👍3
Публикуем продолжение поста и обращаем ваше внимание на то, что Александр проходил курсы не у нас (наш курс длится гораздо дольше):

"Ну и все, учитесь!
Смотря на свой реальный опыт обучения со стороны, я могу предложить несколько советов:
1️⃣Если вы не знаете наверняка, хотите ли вы становиться java-программистом, насколько вам это вообще интересно или вы считаете, что вряд ли осилите этот путь, то сначала попробуйте начать с чего-то малого и бюджетного. Под малым и бюджетным я понимаю различные бесплатные или очень дешевые курсы самых базовых основ языка.
Эти материалы помогут вам понять, на что вообще вы можете рассчитывать, что у вас получается, а что нет, и стоит ли продолжать.


2️⃣Уверены, что все ОК? Тогда советую выбрать курсы по программированию. Как бы к ним не относились в пространстве рунета, они дают несколько полезных вещей: структуру обучения и обратную связь на вашу работу. В процессе обучения у вас появится огромное количество вопросов. Задавать их вы будете, в основном, в Гугл, но иногда помощь преподавателя или сокурсников может быть очень важна. Опять же, многие курсы предлагают работу над учебным проектом в команде ближе к концу обучения, и это тоже довольно важный момент, потому что на будущей работе вы не будете работать в одиночестве и вам надо хотя бы представлять как взаимодействовать с коллегами.
Структура обучения на курсах - это ваш вектор для развития своих навыков. Чтобы не потеряться в разнообразии тем, которых вы не знаете, но вроде как надо бы их учить, следует держаться этого вектора. Качество обучения на курсах бывает разным, но структура примерно одна, и она поможет вам держаться пути и не растеряться.

3️⃣Основная часть вашего обучения - это самообучение. Я в полной мере ощутил этот тезис на себе, когда записался на курсы java-разработчиков в один из именитых ВУЗов России. Это были официальные курсы повышения квалификации, с сертификатом государственного образца и длились они 4 месяца. Из них один месяц отводился на написание дипломного проекта. Выучить Java, БД, SQL и Spring за квартал, неплохо, правда? Неправда :)

4 месяца я не видел белого света, но курсы закончил и даже получил свою “пятерку” за диплом. Но лекции у меня были 2 - 3 раза в неделю на несколько часов, а учился я каждый день больше, чем до этого работал. Никто не будет дважды объяснять вам одно и то же. Никто не будет вас ждать или проводить индивидуальные сессии. Ну и конечно, после таких курсов я обнаружил, что в голове у меня какая-то каша, и что её надо приводить в порядок, опять же, самостоятельно. Так что, во-первых, не ведитесь на такие сроки, как я, а во-вторых, во время обучения вы точно не будете сразу въезжать в какие-то темы, и почти всегда вам придется разбирать их самостоятельно...."

Это еще не весь пост. Продолжаем?
👍5
Публикуем продолжение поста (начало на несколько сообщений выше):

"Отнеситесь к изучению основ языка серьезно. Вы должны понимать как устроен код, чтобы когда вы откроете какой-нибудь внутренний класс одной из библиотек, чтобы понять как она работает, он вас не смутил имплементацией интерфейса, вложенными классами или множеством дженериков. Знание основ Java - это фундамент, на который вы будете строить все новые и новые знания, и если вы что-то пропустите или не поймете, то вы не сможете понять и изучить следующие темы с более сложными технологиями. Мне пришлось много раз возвращаться к начальным темам, потому что я проскочил их слишком быстро или не уделил им достаточно внимания. Лучше сразу остановиться и разобрать что-то непонятное до основания.


После окончания курсов/обучения нужно иметь в портфолио какой-нибудь проект, демонстрирующий ваши умения. Как правило, это Spring Boot + БД + REST API + тесты. Может, Телеграм-бот для демонстрации умений работы со сторонней API? Трекер рабочего времени? Система учета клиентов в клинике? Система продажи билетов на мероприятия? Вариантов масса, и наверняка у вас есть своя более интересная идея. Этот проект можно демонстрировать потенциальным работодателям и указать его в резюме. Вероятность, что его посмотрят невысока, но никогда не знаешь.

Для подготовки к собеседованиям можно посмотреть mock-интервью, например на канале JetBulb, чтобы примерно понимать, чего ожидать.

Регулярно просматривайте вакансии по ключевым словам “Java”, “Spring”, “Junior”, “Trainee”, чтобы понимать ситуацию на рынке труда и мониторить требования к этим вакансиям. Я знал расписание стажировок в нескольких компаниях своего города (они проводились 3 раза в год), а также знал общие требования к вакансиям джунов и корректировал обучение соответственно. Смотрите не толькоHeadHunter, но и Хабр.Карьеру и различные группы с IT вакансиями в Телеграм.

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

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

В целом, это наверное всё, что я хотел сказать о том как вкатиться в Java Backend разработку. Рассчитайте свои силы и возможности, будьте готовы много работать над собой и ни за что не сдавайтесь. При должном упорстве у вас все обязательно получится..."

В следующем посте - топ навыков для новичка
👍32
Просто оставим это здесь😉
👏10
Всем привет! Есть у кого-нибудь пример тестового задания на джуниора? Записываем уроки, хочу разобрать реальное задание
👍6
Чуть-чуть о C#
Название языка C# произносится как “Си Шарп” (на случай, если вы читали его иначе) Разработал его в 2000 году инженер-программист из компании Microsoft Андерс Хейлсберг.

С# - модификация C и C++. А такое название для языка было вдохновлено музыкальными нотами. Символ # (диез) означает, что нота должна быть на полтона выше. Также он напоминает соединение четырех знаков + в один символ.

C# известен благодаря:
простоте — с его помощью можно за короткий срок создать полноценное функциональное приложение;
востребованности — он был придуман, чтобы облегчить разработку приложений под Windows.

На C# можно создавать:
видеоигры — многие из них разрабатываются на платформе Unity, а C# наиболее адаптирован для работы с ней;
приложения для Windows — многие программы операционной системы Microsoft написаны на этом языке, к примеру, Skype, Internet Explorer, Microsoft Office, продукты компании Adobe;
мобильные приложения: как для ОС iOS, так и под ОС Android;
нейросети — в любое приложение, написанное на C#, можно заложить алгоритмы машинного обучения с помощью специальной библиотеки от Microsoft ML.NET.

Несмотря на весомые преимущества, у этого языка найдутся и минусы. Например:
C# ориентирован в основном на операционную систему Windows;
он относится к высокоуровневым языкам программирования — это значит, что программы на нем занимают больше памяти, а время их выполнения замедляется.

Однако C# активно развивается и поддерживается таким гигантом как Microsoft.
Многие компании предпочитают именно этот язык программирования. Поэтому если вы захотите связать свою жизнь с IT, то вам определенно стоит обратить внимание на C#.
Особенно его понравится изучать тем, кто хочет создавать 3D-графику, погрузиться в индустрию геймдизайна, писать программы для Windows, iOS или Android и веб-приложения.

А как вы относитесь к С#?
👍5👎1