5 років тому, слідуючи всім порадам Сергія (переглянув майже весь канал)), я став бекенд розробником. Тому з впевненістю можу сказати, все що радить Сергій це оптимальні поради що працюють для вас. Дякую Сергій за вашу працю! Ну і менторинг який я теж використовував у навчанні це дійсно супер ефективна методика, особливо для світчерів як я)
Спасибо! Очень нужная дорожная карта для тех, кто ранее ничем подобным не занимался. Учусь программированию уже второй год, пока только языки, и только сейчас хоть кто-то разъяснил, как программу собирать.)
Добрый день, спасибо за видео! Ох уж этот зоопарк на бекенде, сначала выбери любимый яп, потом выбери любимый фреймворк, потом выбери любимую ОРМку, потом выбери любиму БД, выбери любимую ОСь (выбор архитектуры процессора?). Поэтому совет выбора языка по тому как он нравится - я считаю немного поверхностным. Одно дело выбрать язык, который может нравиться, но потом придется столкнуться с реальностью работы с фреймворками и либами которые не будут нравиться и наоборот может ЯП не очень будет нравиться, но сама его экосистема будет сильно нравится. Та и само понимание что нравится, а что нет будет меняться с годами и опытом, поэтому свитчинг для многих людей - неизбежен, не только потому что свои предпочтения могут меняться, но и индустрия может сильно меняться. Но я полностью согласен что у человека должен присуствовать эмоциональных отклик - это топливо мотивации, но далеко не всегда это связано с выбором языка программирования. Мб более универсальным критерием был бы выбор ЯПа по которому есть возможность качественного обучения, нет смысла учить Окамл если обучение нему будет создавать больше трудностей чем помогать. Я всегда удивляюсь Вашему пониманию "схожести языков". Да языки могут быть похожи синтаксически, но семантически и концептуально между ними может быть пропасть. Говорить что С# это джава от Майкрософта (я могу устать перечислять различия между джавой и шарпом), а Котлин вышел из джавы и поэтому они похожи - это мягко говоря некорректно. Это как сравнивать два мотоцикла и сказать что они почти одинаковые потому что у них цвет одинаковый и одинаковое количество колёс. Минус MySQL что его сложно устанавливать на виндовс - не актуален. БД можно ставить не в систему, а через докер и кстати тот же PHPMyAdmin тоже можно подымать через докер весьма просто. На последок хочу еще раз поблагодарить за Ваши труды, что стараетесь помогать людям с развитием и сами двигаетесь вперед.
@@seka1309 Я попробую, но сразу отмечу что я джаву знаю поверхностно и по некоторым пунктам могут быть неточности Начну с того что С# работает с .net, java с Java Platfomr EE - то есть на практике одна две программы делающие одно и то же будут выглядеть совершенно по разному и иметь в обороте разные имена в С# есть nullable типы и возможность работать с нулл как отдельным типом для борьбы с НулПоинтер ошибками, когда в джаве нету nullable типов в С# есть структуры, в java нет в С# есть ref который дает механизм изменения значения переменной из метода в который она передалась, в java нет в java есть анонимные классы, в С# нет в С# есть анонимные объекты, в java нет между java и С# есть различия в модификаторах доступа, начиная поведения по умолчанию (при отсуствии явного объявления модификатора) и заканчивая их количеством и возможных комбинаций модификаторов в С# дженерики существуют в рантайме и не пропадают на этапе компиляции, в java дженерики исчезают после компиляции (и кажется есть различия работы с ковариантностью и контрвариантностью) в С# есть кортежи и синтаксис для их распаковки, в java нет в обоих языках уже есть паттерн матчинг но описывается и работает он по разному (тут тоже может быть достаточно много отличий) в java ты обязан прописывать в сигнатуре метода тип прокидываемой ошибки, в С# нет в С# очень много ситаксиса есть для геттеров и сеттеров, в java нет в С# есть методы расширения, в java нет в в java енамы это полноценные классы для которых можно добавлять конструкторы методы, С# енамы это по сути числовые примитивы без возможности объявить методы, кроме разве что создавать методы расширения в С# есть события и делегаты в С# есть LINQ (что по сути является языков в языке), тогда как ближайший аналог в джаве это Stream API в С# есть async/await работа со строками сильно отличается между java и С# в С# прострастнва имен, в java модули (кажется которые появились сравнительно недавно) в C# есть возможность работать с указателями через unsafe блоки, в java нет в С# есть особый синтаксис для создания итераторов, в java нет в С# можно перегружать операторы, в java нет в С# есть параметры по умолчанию и именнованные параметры для методов, в java нет в С# есть using для гарантированного высвобождения ресурсов, в java для этого try используются И это только по верхам пройтись, на самом деле сложно представить сколько еще различий можно найти в нюансах работы похожих структур данных, когда какие ошибки прокидываются, а когда нет, различные экосистемы построенные вокруг языков увеличивают количество различий между языками до бесконености.
Сергей и весь коллектив канала, традиционное спасибо за выпуск, как всегда содержательно и интересно 👍👍👍 Слушаю и мечтаю, что бы что-то подобное по уровню и харизме было про аналитику данных 🙂
Гайс, по поводу выбора ЯП и прочих инструментов для бэка Я лично ориентировался по спросу на технологии на момент 2024-2025 В итогу я пришёл к идее писать бэк на Java (как бы я убиваю двух зайцев сразу: 1) нахожу подходящий по синтаксису язык и 2) очень востребованный ЯП в бэке Но есть одно но: (кому-то пох, кому-то нет), Java в основном используется в энтерпрайзе и корпоративе, и для стартап-разработки очень мало годится из-за его сложности. Поэтому параллельно, т.к. я разраб уже с некоторым опытом, я изучаю "трендовые" языки, такие как JS, Python, т.к. чувствую, что на них спрос будет только расти в бэке. Для меня выучить второй язык вообще не является проблемой, но это касается тех, у кого хотя бы основа уже откладывается в голове (особенно, если вы выбрали Си-подобный язык) Имея всю базу по прогичу, (которой должен обладать не важно какой разраб), тут уже надо ориентироваться по вакансиям, зпшкам и требованиям на рынке, хотя по спрингу щас +1600 вакансий до сих пор на том же ХХ Я буду в будущем ориентироваться на международный рынок, а там уже другие требования
Языки, нужно выбирать верно говорите исходя из задач, но сейчас в основном это api + ws, тут возникает вопрос какой язык может обеспечить WS потоки, NoSQL - суть DOM объект положить целиком, и хранить такой какой есть- это очень ресурсо зхатратно припоиске если модели хнятняться не в ОЗУ а ПЗУ, CRUD, PgSQL это на текущий момент самая оптимальная СУБД, сидим к коментариях и записываем мысли ;). Фреймворки нужно выбирать от языка+ кол-во людей в комьюнити, при паблике SSL + nginx + Acme(certbot). И я читаю что бэкэндер в себя devoops в себя включает по умолчанию
Я всегда считал, что система Git вообще отдельна от GitHub, Gitlab. Просто когда я её устанавливал на Ubuntu, при установке он именно позицианировал себя как Git. А уже можешь зарегистрироваться допустим на GitHub, и туда если надо скидывать свои проекты с помощью git. У git даже логотип отдельный
Так и есть. Git - просто система контрелей версий, она может работать даже без интернета. А условный GitHub - это просто подходящее хранилище для таких Git проектов. Можно сравнить с гугл диском, ван драйв и прочим, только для Git. Сергей подразумевал, хотя и не сказал, что Git нужен в первую очередь для работы в команде, а значит где-то нужно хранить версии проекта и синхронизировать их
Дехто радить застосовувати контейнерізацію одразу на початку навчання. Так "docker compose up -d" - це дуже просто. Але є одне але. Без розуміння того як працює контейнер ви потім будете сидіти і чухати потилицю, бо незрозумілим буде де проблема. У фреймворку, у БД, у контейнері, у взаємодії контейнера з БД із контейнером з фреймворком і т. ін. Список може виявитися несподівано довгим, а якщо це все ще й на Віндовс замутити, то шанси покинути навчання дуже високі.
На самом деле реляционные базы данных называются так из-за их основы на реляционной алгебре, а не из-за связей между таблицами. Даже база данных, состоящая из одной таблицы, всё равно будет реляционной. "Реляции" в контексте реляционных БД - это отношения между колонками и записями внутри таблиц, а не только между самими таблицами.
Да, и теории множеств. А еще CRUD операции В ИБ, это не SQL. SQL начинается от уровня понимания транзакций, и всего остального...Но зачем все это знать, если у бекендера есть ORM
А я сам себе такой roadmap придумал 😂Я уже и юнит тесты писать начал и фронтенд технологию Blazor мало мальски освоил для своего C# и Redis нереляционный в придачу к реляционным Postgres и MySql, а ещё и Сагу и MassTransit. Можно уже пытаться работу искать? И да, учил всё сам и в проекте своём применил всё обозначенное выше и плюс освоил всё то, о чём Сергей говорил.
Добрый день! Хочу у вас поинтересоваться какой вариант лучше выбрать, изучать на родном языке какой-то условно купленный курс или есть вариант взять от MIT на английском, английский у меня на уровне понимания документации и плюс минус что-то на слух воспринять могу(процентов 60-70)
Laravel отраслевой стандарт для PHP. Оочено спорное утверждение. Я б даже сказал что образовалась отдельная каста Laravel разработчиков, которые как бы пишут на php но по факту на ларе, кто в теме тот поймет о чем я. Отраслевой стандарт php это Symfony здесь даже нечего обсуждать
Я не дуже згоден з 23:00, з тим, що контерізацію треба вчити у самому кінці. Просто ви до цього розповідали наприклад про проблеми з MySQL на винді - так ось контерізація й вирішує ці проблеми. Також при роботі з інтерпретованими мовами контерізація може дуже допомогти. Вчити її треба на дуже базовому рівні, просто щоб поточний проект можно було розгорнути локально. Нехай без розуміння що воно насправді робить, нехай конфіги будуть згенеровані ШІ, але це значно спростить сам процес навчання.
Я хоть и уже давненько в мире разработки, но периодически смотрю что там новичкам советуют, и что-то мне совсем не понравилась фраза о том, что сейчас реляционки больше 80 процентов рынка занимают. Во всех проектах, где я был, там было что угодно, начиная от cassandra и clickhouse заканчивая самописными движками для работы с данными. И как будто сейчас необходимо даже для джуна не просто знать как писать на языке, а знать чуть ли не исходный код языка. На гошке на каждом собесе будут ждать вопросы как устроены те или иные объекты под капотом, как проходит этап компиляции, и уходить вниз это может чуть ли не до обработки ассемблера процессором.
Никто уже ничего не ставит на виндоус, для этого есть докер. Майэскюэль давно принадлежит ораклу, поэтому скорее всего уже давно проблем с установкой куда бы то ни было не будет
Ребят мне 15 так что не смеемся и не говорим что я тупой. Помогите разобраться что вообще такое бэкэнд это только веб сайт и сервисы под ним? Или бэкэнд это все сразу и в десктопе и в мобилке и в веб? Если да то чем занимается мобайл разраб и бэкэнд разраб какие отличия. Есть ли направления в Java не связанные с одной областью, только с веб или моблкой, а что-то серверное которые соединяет и веб сайт и мобильное приложение, на чем работают оба этих приложения. 😅
Бэкенд это вся логика приложения, которое крутится на сервере и обрабатывает запрос. Бэкенд будет присутсвовать везде, даже если ты написал десктоп для себя без клиента-сервера, и вот то, что ты написал для того, чтобы работала твоя прога, ее функционал, тоже будет бэкендом(но скорее как модуль локальной логики, без сервака). Мобаил разраб это абстракция, так же само можно сказать про дестоп разраб, геймдев. Внутри этой абстракции будет присуствовать как фронтенд так и бэкенд(и другие узкоспециализированные), в случае с мобилкой, если это приложение будет крутится на сервере, у тебя будет бэкенд API, а так же фронтенд для мордочки. На джаве ты напишешь много чего, но опять же не нужно искать область по конкретному языку, просто ищи область и уже исходя из области ты увидишь перечень инструментов которые хороши для этой области. Выбирай направление, а уже после инструмент, Сергей об этом не раз говорил. " А что то серверное, которое соединяет и веб сайт и мобильное приложение..." Ты уже тут и ответил на свой вопрос, это и есть серверное приложение которое и будет общим для сайта и мобилки( это просто API написанный на том перечне языков из видео, к которому будет ходить и сайт и мобилка), конечно можно и разделить это все, если есть такая потребность
Очень поверхностно поднята тема Go, вроде язык очень лёгкий, но ИМХО джун го, это худшее что я видел. Кажется что сейчас это тот самый язык который "нельзя учить первым" (из перечисленных), потому что получается супер говно в коде, которое перечёркивает все плюсы языка. К gin тоже большие вопросы, как фрейм ок, но многие предпочитают стандартный http сервер, или что-то вроде echo. С ORM вообще беда, я видел мало проектов с ней, тут это точно не must have, т.к. часто go это про микросервисы, там проще сделать сырой запрос и не тащить зависимости. Короче будьте аккуратными с го, как с первым яп, он прост в освоении, но далеко не так прост в использовании:)
путь от пхпшника до программиста занимает лет эдак... хотя, кого мы обманываем - бывших пхпшников не бывает как и бывших наркоманов. хотя, как знать... всё-таки пхп эволюционирует, постепенно изобретая все те вещи что были в джава изначально. возможно в ходе своей эволюции бывшая персонал-хоум-пейдж однажды настолько эволюционирует что станет наконец просто ещё одним клоном джавы, только более медленным... но это будет ещё не скоро. как знать, может роботы доведут это дело до конца.
Только никто не пишет на голом PHP, стандарт индустрии Symfony или Laravel, компании которые исторически вляпались с написанием своего фремворка теперь больно и медленно внедряют точечно пакеты Symfony. Я работал над проектом который существует лет 15 и это один огромный монолит который пытаются как-то рефакторить, но тем не менее сам продукт генерит миллионы долларов дохода) И к слову те же фреймы php это то из-за чего он не умер лет 10 назад и сейчас ситуация на рынке труда для этого языка лучше чем для джавы или шарпа
Насчет проблем с виндой и MySQL. Мне кажется, бэкэнд разработчику вообще нет смысла сидеть на винде, если только он не пишет под .net. Ваши приложения в 99.9% будут работать на серверах под linux, так зачем лишние костыли ? Надо сразу осваивать эту систему.
Есть академический подход, сначало компилируемый язык со строгой типизаций C++. Потом интерпретируемый язык со строгой типизацией C# или Java. А потом уже всё остальное, PHP Javascript и прочие Python'ы. Тогда праильно сформируется понимание как всё работает. Но если цель формошлёпить или генерить CRUDы, тогда пофиг, можно учить тот ЯП на котором будешь работать, если возьмут конечно.
typescript это javascript с типами. Что это значит на практике? А то что они шарят одну и ту же семантику, у них одинаковые функции и выполнятся они в одинаковых окружениях. То есть выучив тайскприпт и если есть понимание как код написанный на тс будет работать в рантайме, то эти знания спокойно можно применять и в жс, то есть переключится с тс на жс в разы проще, чем переключится с жс на тс.
@@woodzimierz9621, так, на бекенді. Для повноцінного розуміння і створення проекту на Джанго, просто необхідно знати HTML, CSS хоча б на базовому рівні. Це те, про що він казав "щоб мордочку висунути в інтернет". По великому рахунку, треба і JavaScript трохи знати для динаміки на сторінці, або для усіляких "затемнень" і "вискочуючих віконечок", але це вже не вважається базовими знаннями. А от HTML CSS - треба точно., хоча б основу.
4:15 Ось тут я не згоден, ось чому: наразі є мова яка значно по будь якому параметру перевішує інші: інструментарій та система керування залежностями, гарантована відсутність помилок, швидкодія та споживання пам'яті, можливість застосування для будь якої задачі, швидкість та зручність розробки. Авжеж ця мова це Rust. Але, при всьому цьому я не дуже можу уявити її як першу мову. Фактично єдиний мінус Rust- це поріг входу. Тому вивчити якусь java, php, go, python а потім вже перейти до Rust - це шлях. додано 5:30 ну ок...
Ця вся краса вам такою виглядає, бо просто полюбляєте Rust, але в реальності справи трохи інші. Не існує "срібної кулі" яка б вирішувала абсолютно всі проблеми.
@@woodzimierz9621 я просто перерахую які великі проблеми вирішив Rust: - data race/race condition: таких помилок гарантовано не буде при конкуретному коді з використанням shared memory (такі гарантії можуть дати лише специфічні функціональні мови на кшталт Хаскеля) - помилки пов'язані з ручним керуванням пам'яттю або витрати на garbage collector: фактично у вас є С, де споживання пам'яті дуже мале але можливі помилки та є мови де є gc та пов'язані з цим накладні расходу пам'яті та процесорного часу який витрачається на збирання сміття. Rust одночасно споживає мало пам'яті та не витрачає процесорний час, але не має необхідності вручну визволяти пам'ять - null: різні мови мають різноманітні помилки якщо щось може бути null, як і об'єкт у мовах високого рівня так і поінтер у мовах низького рівня. Нема null - нема помилок. Якщо програміст звертається до чогось у коді - там буде гарантовано те що він очікує. Поінтери завжди посилаються на валідні дані - іммутабільність: скоріше це стає проблемою коли повертаєшся з Rust до іншої мови. У парадигмі ООП є окремі правила, як має називатися та як працювати геттер, а як - сеттер. У Rust це вирішено просто у сигнатурі функції. Ніяка мейнстрім мова наскільки я знаю так не вміє - швидкодія: Rust десь проміж с та с++. Всі інші мови значно повільніше. Go у випадку вебсервера повільніше у рази навіть якщо не буде проблем с gc Фактично ви можете взяти будь яку мову та переконатися, що Rust не поступається або навіть перевищує її у аспекті де вона сяє та значно перевищує у будь яких інших аспектах.
По поводу php у каждого своей роадмап. Новичку я бы рекомендовал изучать битрикс, так как на нем ГОРАЗДО больше вакансий. Да и берут джунов охотнее. Тем более, что зачастую первая работа будет в студии, а не в продуктовой компании. А в России битрикс востребованное чем ларавел, уж не говоря о симфони. Достаточно на hh сравнить кол-во вакансий. На текущем проекте у нас так вообще нативный php только. Какие фреймворки и ORM? Только прямые запросы. Мне так и сказали на собесе, что окей, что знаешь ларавел, а нативный php знаешь? То же самое с докером, в студии скорее всего будете сразу на проде фигачить. Ну или будет гит для вас, но при этом будете дублировать код в прод, так как никакого докера не будет у клиента.
По докеру по факту будет скорее всего докер композ. Нужно просто уметь скачивать докер и его устанавливать. Ну и достаточно docker compose up -d -build чтобы развернуть проект. Сам конфигурационный файл докер композа уже будет написан на проекте далеко до вас. Писать с нуля никто не попросит, уж тем более джуну. Это работа девопса. Опять же если докер вообще будет на проекте
душнила моде он relation - это не про связи между таблицами, это математики так таблицу обозвали. то бишь реляционная == табличная на русском это "отношение". но алгебра при этом реляционная.
Если человек не любит работать, то он становится руководителем. Когда ему становится снова скучно, то он начинает учить других. Это применительно ко всем сферам деятельности.
Ну конечно, писать сценарии, прорабатывать дикцию, заниматься записывающей техникой и софтом, заниматься монтажем, заниматься маркетингом, заниматься рекламой, придумывать интересные темы для видео, структурировать знания, формировать знания в удобоваримом формате для аудитории - это же намного проще чем писать круды
Нифига себе, скл простой 😳 Это самая большая головная боль. Год пользуюсь и до сих пор часто часами пишу один запрос с cte, особенно с рекурсией. Особенно для апдейта. А если для инсерта, то вообще приходится через подзапросы, так как, оказывается не каждая версия mysql, такое поддерживает.
Скачать Roadmap для Backend-разработчика!👉 t.me/foxminded_events_bot?start=672b738ede96bbca4001e7b5
Привет всё ещё Сергею Немчинскому :)
😊
Сергей мы вас все еще очень любим!!! И уважаем!
Вся жизнь вела к моменту выхода этого видео 😊
класс)
5 років тому, слідуючи всім порадам Сергія (переглянув майже весь канал)), я став бекенд розробником. Тому з впевненістю можу сказати, все що радить Сергій це оптимальні поради що працюють для вас. Дякую Сергій за вашу працю! Ну і менторинг який я теж використовував у навчанні це дійсно супер ефективна методика, особливо для світчерів як я)
Спасибо! Очень нужная дорожная карта для тех, кто ранее ничем подобным не занимался. Учусь программированию уже второй год, пока только языки, и только сейчас хоть кто-то разъяснил, как программу собирать.)
отлично, успехов вам!
Добрый день, спасибо за видео!
Ох уж этот зоопарк на бекенде, сначала выбери любимый яп, потом выбери любимый фреймворк, потом выбери любимую ОРМку, потом выбери любиму БД, выбери любимую ОСь (выбор архитектуры процессора?). Поэтому совет выбора языка по тому как он нравится - я считаю немного поверхностным. Одно дело выбрать язык, который может нравиться, но потом придется столкнуться с реальностью работы с фреймворками и либами которые не будут нравиться и наоборот может ЯП не очень будет нравиться, но сама его экосистема будет сильно нравится. Та и само понимание что нравится, а что нет будет меняться с годами и опытом, поэтому свитчинг для многих людей - неизбежен, не только потому что свои предпочтения могут меняться, но и индустрия может сильно меняться. Но я полностью согласен что у человека должен присуствовать эмоциональных отклик - это топливо мотивации, но далеко не всегда это связано с выбором языка программирования.
Мб более универсальным критерием был бы выбор ЯПа по которому есть возможность качественного обучения, нет смысла учить Окамл если обучение нему будет создавать больше трудностей чем помогать.
Я всегда удивляюсь Вашему пониманию "схожести языков". Да языки могут быть похожи синтаксически, но семантически и концептуально между ними может быть пропасть. Говорить что С# это джава от Майкрософта (я могу устать перечислять различия между джавой и шарпом), а Котлин вышел из джавы и поэтому они похожи - это мягко говоря некорректно. Это как сравнивать два мотоцикла и сказать что они почти одинаковые потому что у них цвет одинаковый и одинаковое количество колёс.
Минус MySQL что его сложно устанавливать на виндовс - не актуален. БД можно ставить не в систему, а через докер и кстати тот же PHPMyAdmin тоже можно подымать через докер весьма просто.
На последок хочу еще раз поблагодарить за Ваши труды, что стараетесь помогать людям с развитием и сами двигаетесь вперед.
Расскажи пожалуйста, о разница джавы и с#
@@seka1309 Я попробую, но сразу отмечу что я джаву знаю поверхностно и по некоторым пунктам могут быть неточности
Начну с того что С# работает с .net, java с Java Platfomr EE - то есть на практике одна две программы делающие одно и то же будут выглядеть совершенно по разному и иметь в обороте разные имена
в С# есть nullable типы и возможность работать с нулл как отдельным типом для борьбы с НулПоинтер ошибками, когда в джаве нету nullable типов
в С# есть структуры, в java нет
в С# есть ref который дает механизм изменения значения переменной из метода в который она передалась, в java нет
в java есть анонимные классы, в С# нет
в С# есть анонимные объекты, в java нет
между java и С# есть различия в модификаторах доступа, начиная поведения по умолчанию (при отсуствии явного объявления модификатора) и заканчивая их количеством и возможных комбинаций модификаторов
в С# дженерики существуют в рантайме и не пропадают на этапе компиляции, в java дженерики исчезают после компиляции (и кажется есть различия работы с ковариантностью и контрвариантностью)
в С# есть кортежи и синтаксис для их распаковки, в java нет
в обоих языках уже есть паттерн матчинг но описывается и работает он по разному (тут тоже может быть достаточно много отличий)
в java ты обязан прописывать в сигнатуре метода тип прокидываемой ошибки, в С# нет
в С# очень много ситаксиса есть для геттеров и сеттеров, в java нет
в С# есть методы расширения, в java нет
в в java енамы это полноценные классы для которых можно добавлять конструкторы методы, С# енамы это по сути числовые примитивы без возможности объявить методы, кроме разве что создавать методы расширения
в С# есть события и делегаты
в С# есть LINQ (что по сути является языков в языке), тогда как ближайший аналог в джаве это Stream API
в С# есть async/await
работа со строками сильно отличается между java и С#
в С# прострастнва имен, в java модули (кажется которые появились сравнительно недавно)
в C# есть возможность работать с указателями через unsafe блоки, в java нет
в С# есть особый синтаксис для создания итераторов, в java нет
в С# можно перегружать операторы, в java нет
в С# есть параметры по умолчанию и именнованные параметры для методов, в java нет
в С# есть using для гарантированного высвобождения ресурсов, в java для этого try используются
И это только по верхам пройтись, на самом деле сложно представить сколько еще различий можно найти в нюансах работы похожих структур данных, когда какие ошибки прокидываются, а когда нет, различные экосистемы построенные вокруг языков увеличивают количество различий между языками до бесконености.
Какой то chatGPT написал, несерьёзно как-то...
@@ievgenk.8991 спасибо
@@xakep2776 Напиши лучше, тебе люди спасибо скажут :)
Сергей и весь коллектив канала, традиционное спасибо за выпуск, как всегда содержательно и интересно 👍👍👍
Слушаю и мечтаю, что бы что-то подобное по уровню и харизме было про аналитику данных 🙂
😊 спасибо)
Спасибо. Хотелось бы также видео о roadmap для ML разработчика
как всегда cool!! ))
Доброго дня Сергеям Немчинским , остальным соболезную
Тільки на минулому стрімі спитав за спрінг от і відос по темі беку. Дякую за відео
Ми раді, що відео корисне для вас
Гайс, по поводу выбора ЯП и прочих инструментов для бэка
Я лично ориентировался по спросу на технологии на момент 2024-2025
В итогу я пришёл к идее писать бэк на Java (как бы я убиваю двух зайцев сразу: 1) нахожу подходящий по синтаксису язык и 2) очень востребованный ЯП в бэке
Но есть одно но: (кому-то пох, кому-то нет), Java в основном используется в энтерпрайзе и корпоративе, и для стартап-разработки очень мало годится из-за его сложности. Поэтому параллельно, т.к. я разраб уже с некоторым опытом, я изучаю "трендовые" языки, такие как JS, Python, т.к. чувствую, что на них спрос будет только расти в бэке. Для меня выучить второй язык вообще не является проблемой, но это касается тех, у кого хотя бы основа уже откладывается в голове (особенно, если вы выбрали Си-подобный язык)
Имея всю базу по прогичу, (которой должен обладать не важно какой разраб), тут уже надо ориентироваться по вакансиям, зпшкам и требованиям на рынке, хотя по спрингу щас +1600 вакансий до сих пор на том же ХХ
Я буду в будущем ориентироваться на международный рынок, а там уже другие требования
Большое спасибо за информацию!
Пожалуйста! ☺
8:50 золотые слова!
Языки, нужно выбирать верно говорите исходя из задач, но сейчас в основном это api + ws, тут возникает вопрос какой язык может обеспечить WS потоки, NoSQL - суть DOM объект положить целиком, и хранить такой какой есть- это очень ресурсо зхатратно припоиске если модели хнятняться не в ОЗУ а ПЗУ, CRUD, PgSQL это на текущий момент самая оптимальная СУБД, сидим к коментариях и записываем мысли ;). Фреймворки нужно выбирать от языка+ кол-во людей в комьюнити, при паблике SSL + nginx + Acme(certbot). И я читаю что бэкэндер в себя devoops в себя включает по умолчанию
Я всегда считал, что система Git вообще отдельна от GitHub, Gitlab. Просто когда я её устанавливал на Ubuntu, при установке он именно позицианировал себя как Git. А уже можешь зарегистрироваться допустим на GitHub, и туда если надо скидывать свои проекты с помощью git. У git даже логотип отдельный
Естественно, гит это поограмма, а гитхаб хранилище. Можно например использовать гит и хранить репозитории на битбакете
Так и есть. Git - просто система контрелей версий, она может работать даже без интернета. А условный GitHub - это просто подходящее хранилище для таких Git проектов. Можно сравнить с гугл диском, ван драйв и прочим, только для Git. Сергей подразумевал, хотя и не сказал, что Git нужен в первую очередь для работы в команде, а значит где-то нужно хранить версии проекта и синхронизировать их
Дехто радить застосовувати контейнерізацію одразу на початку навчання. Так "docker compose up -d" - це дуже просто. Але є одне але.
Без розуміння того як працює контейнер ви потім будете сидіти і чухати потилицю, бо незрозумілим буде де проблема. У фреймворку, у БД, у контейнері, у взаємодії контейнера з БД із контейнером з фреймворком і т. ін. Список може виявитися несподівано довгим, а якщо це все ще й на Віндовс замутити, то шанси покинути навчання дуже високі.
Так контейнери краще вчити потім?
На самом деле реляционные базы данных называются так из-за их основы на реляционной алгебре, а не из-за связей между таблицами. Даже база данных, состоящая из одной таблицы, всё равно будет реляционной. "Реляции" в контексте реляционных БД - это отношения между колонками и записями внутри таблиц, а не только между самими таблицами.
Да, и теории множеств. А еще CRUD операции В ИБ, это не SQL. SQL начинается от уровня понимания транзакций, и всего остального...Но зачем все это знать, если у бекендера есть ORM
А я сам себе такой roadmap придумал 😂Я уже и юнит тесты писать начал и фронтенд технологию Blazor мало мальски освоил для своего C# и Redis нереляционный в придачу к реляционным Postgres и MySql, а ещё и Сагу и MassTransit. Можно уже пытаться работу искать? И да, учил всё сам и в проекте своём применил всё обозначенное выше и плюс освоил всё то, о чём Сергей говорил.
хмм когда-то давно, в детстве когда занимался игровыми серверами, только и юзал мускул (так мы его называли) отлично работал на windows xp и 7
Локально базы в систему лучше вообще никогда не ставить - юзайте докер! )
Спасибо ! 🎉
😊
Во frontend выбор все-таки есть, потому что еще есть flutter. На нем тоже активно веб-приложения пишут
Для go розробників краще спочатку вивчити стандартну net/http, ніж gin
Добрый день! Хочу у вас поинтересоваться какой вариант лучше выбрать, изучать на родном языке какой-то условно купленный курс или есть вариант взять от MIT на английском, английский у меня на уровне понимания документации и плюс минус что-то на слух воспринять могу(процентов 60-70)
Согласен с роадмапом. Если бы я не скакал между языками то за 7 лет уже давно бы стал сеньорным джаваскриптизером, а так все еще миддл+.
С таким роадмепом ещё компас нужен)
А что не так с роадмепом?
Я учу С++. Подскажите как вы смотрите на С++ вплане Бэкенд и есть у С++ фрейворки?
Мечта извращенца.
@@projectJdk почему же? Бэкенд у большинства крупных и дорогих компании именно на C++
@@projectJdk Ты про js?
Laravel отраслевой стандарт для PHP. Оочено спорное утверждение. Я б даже сказал что образовалась отдельная каста Laravel разработчиков, которые как бы пишут на php но по факту на ларе, кто в теме тот поймет о чем я.
Отраслевой стандарт php это Symfony здесь даже нечего обсуждать
зачем вообще на php писать
@@gsh137лёгкие, быстрые сайте:)
Сергей, использовать фреймворки в GO это не GO way :) так же как ORM, и DI в GO комьюнити не приветствуется.
Я не дуже згоден з 23:00, з тим, що контерізацію треба вчити у самому кінці. Просто ви до цього розповідали наприклад про проблеми з MySQL на винді - так ось контерізація й вирішує ці проблеми. Також при роботі з інтерпретованими мовами контерізація може дуже допомогти. Вчити її треба на дуже базовому рівні, просто щоб поточний проект можно було розгорнути локально. Нехай без розуміння що воно насправді робить, нехай конфіги будуть згенеровані ШІ, але це значно спростить сам процес навчання.
На базовому рівні - запустити docker compose up -d. Який написав хтось вумніший. На старті є що вчити з більш пріоритетного.
Добрый день, я разрабатываю сайты на фрилансе, я учился сам, подскажите пожалуйста могу ли я указать фриланс как опыт работы backend и frontend?
Коммерческий
@xakep2776 спасибо большое
@@valid-cooler5991 да не за что, если что обращайтесь
Я хоть и уже давненько в мире разработки, но периодически смотрю что там новичкам советуют, и что-то мне совсем не понравилась фраза о том, что сейчас реляционки больше 80 процентов рынка занимают. Во всех проектах, где я был, там было что угодно, начиная от cassandra и clickhouse заканчивая самописными движками для работы с данными.
И как будто сейчас необходимо даже для джуна не просто знать как писать на языке, а знать чуть ли не исходный код языка. На гошке на каждом собесе будут ждать вопросы как устроены те или иные объекты под капотом, как проходит этап компиляции, и уходить вниз это может чуть ли не до обработки ассемблера процессором.
потом он приходит на работу и jsonы туда сюда перекладывает
на go учить фреймворки это вообще не обязательно и скорее даже не нужно
5:00 у меня есть один пример, когда прям стоит, но TS - это не совсем язык программирования
так если в списке есть докер - то какая сложность для винды в mysql?))
Складність - докер для вінди. Не на всіх редакціях ОС є його підтримка, як мінімум.
5:23 сначала подумал речь про C перед C++, а потом со стула со смеху упал
👍
С Джанго успокоили. Везде куда не посмотрю , все хотят фаст апи. Может показалось
Никто уже ничего не ставит на виндоус, для этого есть докер. Майэскюэль давно принадлежит ораклу, поэтому скорее всего уже давно проблем с установкой куда бы то ни было не будет
Моделька мотоцикла на столе Honda Deauville?
Не, GoldWing
Ребят мне 15 так что не смеемся и не говорим что я тупой.
Помогите разобраться что вообще такое бэкэнд это только веб сайт и сервисы под ним? Или бэкэнд это все сразу и в десктопе и в мобилке и в веб? Если да то чем занимается мобайл разраб и бэкэнд разраб какие отличия. Есть ли направления в Java не связанные с одной областью, только с веб или моблкой, а что-то серверное которые соединяет и веб сайт и мобильное приложение, на чем работают оба этих приложения. 😅
Бэкенд это вся логика приложения, которое крутится на сервере и обрабатывает запрос. Бэкенд будет присутсвовать везде, даже если ты написал десктоп для себя без клиента-сервера, и вот то, что ты написал для того, чтобы работала твоя прога, ее функционал, тоже будет бэкендом(но скорее как модуль локальной логики, без сервака). Мобаил разраб это абстракция, так же само можно сказать про дестоп разраб, геймдев. Внутри этой абстракции будет присуствовать как фронтенд так и бэкенд(и другие узкоспециализированные), в случае с мобилкой, если это приложение будет крутится на сервере, у тебя будет бэкенд API, а так же фронтенд для мордочки. На джаве ты напишешь много чего, но опять же не нужно искать область по конкретному языку, просто ищи область и уже исходя из области ты увидишь перечень инструментов которые хороши для этой области. Выбирай направление, а уже после инструмент, Сергей об этом не раз говорил. " А что то серверное, которое соединяет и веб сайт и мобильное приложение..." Ты уже тут и ответил на свой вопрос, это и есть серверное приложение которое и будет общим для сайта и мобилки( это просто API написанный на том перечне языков из видео, к которому будет ходить и сайт и мобилка), конечно можно и разделить это все, если есть такая потребность
@naturelove5213 спасибо!❤️
Друг советую задавать такие вопросы интернету а не людям
@@kurapika8420 спасибо откажусь
Есть мнеие, что у PostgreSQL есть какие-то проблемы с безопасностью, который нет у других баз данных. Какое мнение об этом?
Ты имеешь ввиду SQL инъекции? Нужно всегда подготавливаемые запросы делать. Или ты про что то другое?
Звідки така інформація?
@@vader1413 SQL инъекции не зависят от БД
@@vader1413 Трудно сказать, я студент заочник и услышал это от преподавателя по Базам данных, вот и решил поинтересоваться
Я Первый лайк 😃
Смотрю каждое видео с удовольствием, жаль что курсы из РФ никак не купить =(
Flask??
Очень поверхностно поднята тема Go, вроде язык очень лёгкий, но ИМХО джун го, это худшее что я видел. Кажется что сейчас это тот самый язык который "нельзя учить первым" (из перечисленных), потому что получается супер говно в коде, которое перечёркивает все плюсы языка. К gin тоже большие вопросы, как фрейм ок, но многие предпочитают стандартный http сервер, или что-то вроде echo. С ORM вообще беда, я видел мало проектов с ней, тут это точно не must have, т.к. часто go это про микросервисы, там проще сделать сырой запрос и не тащить зависимости.
Короче будьте аккуратными с го, как с первым яп, он прост в освоении, но далеко не так прост в использовании:)
вакансию джуна на Go еще поискать... в основном мидлы да сеньоры требуются
А если Go больше всего нравится из бэкендовых языков?
@@AntonD-kc9zy Если ты уже изучил язык, сделал пару проектов, попробуй книжку 100 Go Mistakes and How to Avoid Them
Я все понял, пошел я на завод.
Отраслевой стандарт для JavaScript - NestJS, express.js это микрофреймвор
Планирую за полгода с нуля стать мидлом
"А я планирую тудым -сюдым туда, а я планирую тудым-сюдым обратно..."(А. Розенбаум)
путь от пхпшника до программиста занимает лет эдак... хотя, кого мы обманываем - бывших пхпшников не бывает как и бывших наркоманов. хотя, как знать... всё-таки пхп эволюционирует, постепенно изобретая все те вещи что были в джава изначально. возможно в ходе своей эволюции бывшая персонал-хоум-пейдж однажды настолько эволюционирует что станет наконец просто ещё одним клоном джавы, только более медленным... но это будет ещё не скоро. как знать, может роботы доведут это дело до конца.
Только никто не пишет на голом PHP, стандарт индустрии Symfony или Laravel, компании которые исторически вляпались с написанием своего фремворка теперь больно и медленно внедряют точечно пакеты Symfony. Я работал над проектом который существует лет 15 и это один огромный монолит который пытаются как-то рефакторить, но тем не менее сам продукт генерит миллионы долларов дохода) И к слову те же фреймы php это то из-за чего он не умер лет 10 назад и сейчас ситуация на рынке труда для этого языка лучше чем для джавы или шарпа
как насчет Php Symfony?
Что с ним?
а кафку забули
Насчет проблем с виндой и MySQL. Мне кажется, бэкэнд разработчику вообще нет смысла сидеть на винде, если только он не пишет под .net. Ваши приложения в 99.9% будут работать на серверах под linux, так зачем лишние костыли ? Надо сразу осваивать эту систему.
Согласен
А что на счет macos, тот же Unix
что Сергей постоянно держит в руках?
кликер, у Сергея конспект выведен на суфлер
Почему-то про очереди ни слова
Есть академический подход, сначало компилируемый язык со строгой типизаций C++. Потом интерпретируемый язык со строгой типизацией C# или Java. А потом уже всё остальное, PHP Javascript и прочие Python'ы. Тогда праильно сформируется понимание как всё работает. Но если цель формошлёпить или генерить CRUDы, тогда пофиг, можно учить тот ЯП на котором будешь работать, если возьмут конечно.
Как можно учить TypeScript не выучив JavaScript?
а зачем учить javascript до typescript?
як можна вчити граматику не вивчивши абетку?
typescript это javascript с типами. Что это значит на практике? А то что они шарят одну и ту же семантику, у них одинаковые функции и выполнятся они в одинаковых окружениях. То есть выучив тайскприпт и если есть понимание как код написанный на тс будет работать в рантайме, то эти знания спокойно можно применять и в жс, то есть переключится с тс на жс в разы проще, чем переключится с жс на тс.
Тайпскрипт это не язык программирования
Все серьёзные команды используют Typescript, а от JS постепенно избавляются. Думаю, объяснять почему так, не надо.
Первый🎉
А что делать с html и css ?
На бекенді? Ви точно розумієте про що було відео?
@@woodzimierz9621, так, на бекенді. Для повноцінного розуміння і створення проекту на Джанго, просто необхідно знати HTML, CSS хоча б на базовому рівні.
Це те, про що він казав "щоб мордочку висунути в інтернет".
По великому рахунку, треба і JavaScript трохи знати для динаміки на сторінці, або для усіляких "затемнень" і "вискочуючих віконечок", але це вже не вважається базовими знаннями. А от HTML CSS - треба точно., хоча б основу.
@@woodzimierz9621 видимо вопрос в том, как быть с фронтенд-частью приложения для портфолио на собеседовании
@@kirillperov3843 Все верно это же не из воздуха берется
Брокеры сообщений ещё
4:15 Ось тут я не згоден, ось чому: наразі є мова яка значно по будь якому параметру перевішує інші: інструментарій та система керування залежностями, гарантована відсутність помилок, швидкодія та споживання пам'яті, можливість застосування для будь якої задачі, швидкість та зручність розробки. Авжеж ця мова це Rust. Але, при всьому цьому я не дуже можу уявити її як першу мову. Фактично єдиний мінус Rust- це поріг входу. Тому вивчити якусь java, php, go, python а потім вже перейти до Rust - це шлях.
додано 5:30 ну ок...
Ця вся краса вам такою виглядає, бо просто полюбляєте Rust, але в реальності справи трохи інші. Не існує "срібної кулі" яка б вирішувала абсолютно всі проблеми.
@@woodzimierz9621 я просто перерахую які великі проблеми вирішив Rust:
- data race/race condition: таких помилок гарантовано не буде при конкуретному коді з використанням shared memory (такі гарантії можуть дати лише специфічні функціональні мови на кшталт Хаскеля)
- помилки пов'язані з ручним керуванням пам'яттю або витрати на garbage collector: фактично у вас є С, де споживання пам'яті дуже мале але можливі помилки та є мови де є gc та пов'язані з цим накладні расходу пам'яті та процесорного часу який витрачається на збирання сміття. Rust одночасно споживає мало пам'яті та не витрачає процесорний час, але не має необхідності вручну визволяти пам'ять
- null: різні мови мають різноманітні помилки якщо щось може бути null, як і об'єкт у мовах високого рівня так і поінтер у мовах низького рівня. Нема null - нема помилок. Якщо програміст звертається до чогось у коді - там буде гарантовано те що він очікує. Поінтери завжди посилаються на валідні дані
- іммутабільність: скоріше це стає проблемою коли повертаєшся з Rust до іншої мови. У парадигмі ООП є окремі правила, як має називатися та як працювати геттер, а як - сеттер. У Rust це вирішено просто у сигнатурі функції. Ніяка мейнстрім мова наскільки я знаю так не вміє
- швидкодія: Rust десь проміж с та с++. Всі інші мови значно повільніше. Go у випадку вебсервера повільніше у рази навіть якщо не буде проблем с gc
Фактично ви можете взяти будь яку мову та переконатися, що Rust не поступається або навіть перевищує її у аспекті де вона сяє та значно перевищує у будь яких інших аспектах.
РоР "берешь" и гребешь...:D
Oracle самая популярная система? Что?
Я думал сначала выбирают что будут писать, а потом уже язык.
Так видео по бекенду уже
Уже выбрано - backend
По поводу php у каждого своей роадмап. Новичку я бы рекомендовал изучать битрикс, так как на нем ГОРАЗДО больше вакансий. Да и берут джунов охотнее. Тем более, что зачастую первая работа будет в студии, а не в продуктовой компании. А в России битрикс востребованное чем ларавел, уж не говоря о симфони. Достаточно на hh сравнить кол-во вакансий.
На текущем проекте у нас так вообще нативный php только. Какие фреймворки и ORM? Только прямые запросы. Мне так и сказали на собесе, что окей, что знаешь ларавел, а нативный php знаешь?
То же самое с докером, в студии скорее всего будете сразу на проде фигачить. Ну или будет гит для вас, но при этом будете дублировать код в прод, так как никакого докера не будет у клиента.
По поводу MySQL - на всех проектах только он и был
А то что проблемы с виндой, то фигня. Ставите openserver и вообще не задумываетесь
До сих пор сижу на винде и горя не знаю
По докеру по факту будет скорее всего докер композ. Нужно просто уметь скачивать докер и его устанавливать. Ну и достаточно docker compose up -d -build чтобы развернуть проект. Сам конфигурационный файл докер композа уже будет написан на проекте далеко до вас. Писать с нуля никто не попросит, уж тем более джуну. Это работа девопса. Опять же если докер вообще будет на проекте
И вообще ни разу не замечал проблем при установке MySQL на винду. А какие там проблемы?
душнила моде он
relation - это не про связи между таблицами, это математики так таблицу обозвали. то бишь реляционная == табличная
на русском это "отношение". но алгебра при этом реляционная.
Алгоритмы непонятная херь. Не надо врать, что программирование всем доступно
Сначала несколько десятков лет программируете, а потом пишите ролики на ютубе.
Ти мабуть тут щось забув.
Если человек не любит работать, то он становится руководителем. Когда ему становится снова скучно, то он начинает учить других. Это применительно ко всем сферам деятельности.
@@DenysBaiuk Кириллицу
Ну конечно, писать сценарии, прорабатывать дикцию, заниматься записывающей техникой и софтом, заниматься монтажем, заниматься маркетингом, заниматься рекламой, придумывать интересные темы для видео, структурировать знания, формировать знания в удобоваримом формате для аудитории - это же намного проще чем писать круды
здрисни звідси, болотяний привид!
Нифига себе, скл простой 😳 Это самая большая головная боль. Год пользуюсь и до сих пор часто часами пишу один запрос с cte, особенно с рекурсией. Особенно для апдейта. А если для инсерта, то вообще приходится через подзапросы, так как, оказывается не каждая версия mysql, такое поддерживает.
Нафиг гит. Я все на флэшку сохраняю😂 И иногда на хостинг.
Краще на DVD-RW
На инфокарту @@woodzimierz9621