Добавил бы Python(Обязательно, всем пригодится чтобы допустим быстро набросать проект или быстро написать какой то скрипт который на c++ займёт много времени) ,Java -также очень хороший инструмент, необязателен но в каких то вещах покажет себя лучше чем плюсы
@@lorigames772 Java классная вещь) если не знаешь как писать что-то и не нашёл примеров на github, то на java это обязательно уже написано. Можно писать на любом языке, и брать примеры из java проектов.
Что показалось критичным - структуры данных и алгоритмы идут перед ссылками и указателями. Не разобравшись с последними, реализовывать первые и вторые будет значительно сложнее, не будет ясности в происходящем.
Сначала язык (базовые), потом алгоритмы и структуры данных, затем более продвинутые темы языка (шаблоны, виртуальное наследование, if constexpr, SFINAE...), затем Advanced алгоритмы в связке с прошлым пунктом (интрузивные контейнеры, std::hash и друзья) {где-то здесь сидит джун}, затем Concurrency/OS internals basics/asm, затем метапрограммирование продвинутое и всякие устройства процессора, памяти и модные интерфейсы ядра {здесь мы уже прошли и мидла}
Ну во первых, благодарю за видео, во вторых с удовольствием посмотрел бы про выбор проекта, и в третьих хотелось бы видеть в этом видео материалы по которым стоит и Не стоит учить (например книги, статьи, сайты, документация и тд) или отдельно бы такое видео. 😅
Запасаемся томами Таненбаума и носовыми платками и готовимся бороться с прокрастинацией, выгоранием, суицидальными мыслями. Желательно также заранее отработать методики возвращения души обратно в тело.
Роудмапа отличная, про книги вам уже сказали, ждём)) Лично я бы порядок плана обучения поменял чутка. Сделал бы упор на раздел C++ (и только его), попутно взяв одну любую IDE (с минимальным функционалом), а потом уже с самых низов идти. Да, это будет обучение без сильного осознания процессов работы, однако, изучение языка с архитектуры ЭВМ верный способ забыть о языке до лучших времён. Ваш вариант годится только в том случае, если вы робот) Вы дали аналогию с фундаментом, а я даю аналогию с поднятием тяжёлых весов, не фиг надрываться, если мышечного каркаса нет и тело не привыкло к высоким нагрузкам. Объясню. Я здесь опираюсь на свой опыт в другой области, в 3Д моделировании. Точно знаю, что если бы я начал изучать это поприще с таких понятий как рендер, работа с видеопамятью, типы моделирования, нормали и прочее, то забил бы на это всё. А вот если просто взять программу, познакомится с ней и базовыми инструментами, навигацией, поделать простые модельки, сделать из этого композицию, выставить свет и сделать стандартный рендер, то появится не только мотивация (так как видимый результат лучший мотиватор), но и скелет, на который я буду опираться, изучая более углублённые вещи. А если по вашей логике учить, то будет информация ради информации, всё забудешь через три дня и никакое конспектирование тебе не поможет. Но когда ты понял основы и набил руку, то изучение более глубоких вещей будет более продуктивным. Проблема в том, как понять, что ты уже готов к этому переходу, но это специфика самообучения и то, насколько ты перфекционист и прокастинатор))
плюсую, для новичков лучший мотиватор - это видимый результат здесь и сейчас. Если бы я начала изучать фронтенд, к примеру, с протоколов передачи данных или устройства браузера, то шанс на выгорание увеличился бы в разы
С заключением полностью согласен. На себе почувствовал тот же эффект: бывает что-то сложно понять, а через время все встаёт на свои места - главное продолжать заниматься. Спасибо за видео. Для меня был немного громкий видео переход. Я аж вздрогнул первый раз, но потом привык. Думаю эта карта будет полезна не только для разработчиков С++, но и для всех программистов.
это роадмапа нереалистичная для 99 процентов людей пытающихся стать программистами. От начала обучения до первых строчек кода куча инфы которая никак и ничем не подкрепляется в плане удовольствия от продленной работы, успехов и неудач. кучу времени потратить на теорию(которая возможно и нужна, но в ней будет эффективно начать разбираться когда человек будет понимать ДЛЯ чего она нужна, а не просто потому что так дают в вузах или какой то чел в интернете так написал). Так уж работает человеческая психика. Убивать с самого начала кучу времени на теорию это самое плохое что можно придумать. В этом как раз беда тех же вузов. Отбивают всякий интерес скучной теорией. Это все имхо, я на фоне автора ролика полный нуб и лох, но среди своего окружения успешных кейсов с таким подходом не встречал от слова вообще.А вот когда человек начинал просто что то писать, спотыкался, падал, и потом все таки куда то попадал на работу и дальше уже развивался как специалист- куча.
если начинать с++ с таких основ как эвм и операционка на 2-3 уроке обучение будет законченно )) начинать нужно с основ языка и кодинга, и кодить как сумашедший с 5 утра до 22 вечера
так что а что кодить ? для какого-то пет проекта знаний пока нет, змейку вывести в консоли - на пару часов хватит может. Есть рекомендации? По факту я сейчас изучаю просто структуру и потом кодираю то что изучила, может и те же примеры по памяти - но не думаю что это продуктивно
@@ДианаЕдемская-я2бЗависит от того в какой сфере хотите работать, если в бэкенде например. Берет фреймворк для написания бэкенда и идете писать свой бэкенд и параллельно по надобности изучаете работу сети или что то ещё
С заключением согласен, причем это работает как с программированием, так и с математикой, например. Да, хотелось бы посмотреть видео о том, как выбрать проект и, возможно, какие-либо нетривиальные идеи
@@ivan-ivanov-ivanovich я смотрел его, интересно, но не зашло, а 2ой человек это мой препод (предмет вступление в специальность)) я 1 курс CS, но понял что это гиблое дело, жду 2ой курс, потому что там алгоритмы, интересно посмотреть что будет, потому что у самого как-то не получается, как собака, понимать понимаю как работает и теорию вери гуд, а на практике не могу сделать,
@@ivan-ivanov-ivanovich хоть с++ и сложные, но мне нравится, правда проблемы в неосознании что и где учить и закреплять, поэтому часто выгораю, книги спасают хоть, но дают только теорию, вроде бы все понимаю, а на практике прочувствовать не могу
RoadMap хороший, но не для джунов, а скорее просто для людей из computer science в общем. К джунам тут скорее раздел с c++, алгоритмы и структуры + я бы добавил SOLID с паттернами. Еще Бьярне писал в своём толмуде, что главное научиться писать хороший код, а технические моменты придут со временем
Спасибо, отличное видео. Вы можете к этим этапам (теоретические/практические) прикрепить литературу или интернет-источники, которые как вы считаете надо прочитать, чтобы всё это освоить в должном объёме. Выпустите видео по литературе и источникам лучшим на ваш взгляд или напишите просто, хотя бы в комментариях или в соц.сетях.
Не представляю кто может осилить такой объем данных, не работая с языком за деньги, в какие-то разумные сроки. Чтобы только познакомиться с плюсами уйдет года 3, а там еще архитектура, сети, операционные системы, тестирование. Еще при этом нужно написать свой пет проект, переписать структуры данных и отточить алгоритмы с ООП.
Роадмап это хорошо, но где взять качественный материал по темам Архитектура компа, операционки и комп сети? Знаю, что есть книги крутые, например Таненбаум. Но это большие труды. Где это все взять в более сжатом варианте, не потеряв качество? Ребята, тоже пишите, если можете посоветовать. Может книги или видео на ютубе хорошие, или курсы. Чтонибудь. Я прошла книгу по основам Стивена Прата, а теперь не знаю, что дальше. Вижу, что много всего надо еще усвоить, но глаза разбегаются и ни к чему не приступаю. Владимир, ждем ваших советов. И кто видит коммент, тоже пишите
Работал на позиции сеньора в одной хорошей компании и то не знаю некоторых вещей из этого роудмапа) Правильно говорят: джун должен знать не меньше сеньора, но за зп джуна.
А кто ж не хочет. А вообще здесь подход от "базы" к высокоуровнему программированию, при чём как мне показалось очень глубокой базы. Я мало вникал в Си, обучаюсь с готового качественого кода с высокоуровнего js уже 2й год. И прекрасно опускаюсь вниз, гораздо лучше понимая, что за алгоритмы для чего они, а вот если бы только начал их изучать, я был бы в таком афиге, что хотелось бы бросать эту затею чаще, а так я только 3 раза бросал. Нужно идти по пути меньшего сопротивления, и этот путь не лучший, но тоже путь.@@lstarbox3765
Мне кажется что уместно было бы - Архитектуры процессора изучать на примере ассемблера, а не теоретически в вакууме и на нем же можно понять, что такое кольца защиты прочитав про привелигированные инструкции и модель памяти - Операционные системы на примере именно той части функционала которой нет в STL, а именно сокетов и криптографию докинул туда же, смежные темы - IPC вообще не рекомендовал бы к изучению, потому что это древний Unix way идельно подходящий для небольших программ написанных на Си и то большая редкость, но никак на C++ с монолитной ООП архитектурой - API Linux или Windows вообще не трогать, ведь это как размазывать ассемблерные вставки по всему коду, только с привязкой к определенной ОС, что рушит любую кроссплатформенность плюсов - VM, JIT, GC и прочее хозяйство из мира Java/C# вообще никак не вяжеться с идеей плюсов о нулевой стоимости, да и противоречит изучению архитектуры процессора, так как придется изучать архитектуру конкректной VM - А где Boost?
По поводу четвертого не согласен ---- C++ кроссплатформенный только до определенного момента: Работать с файлами и терминалом? ---- Пожалуйста Создавать оконный интерфейс или работать с интернетом? ---- Нет, извините, используйте сторонние библиотеки Так что любой профессиональный C++ разработчик должен знать POSIX, WinAPI, Cocoa и Android NDK
Интересно, а есть ли похожая схема/путь/доп ветки, что нужно знать уже для мидла, ну и для сеньора? Или это уже просто зависит от практического опыта работы ?
1) Создаешь пустой файл 2) Записываешь в него код проекта 3) Компилируешь в исполняемый файл или библиотеку (в зависимости от того, что ты пишешь - программу или библиотеку)
@@vladimir_balun_programming Я начал учить Java потому что много книг и видео курсов по Data structure and algorithms есть в интернете.Прохожу курс по Java, но будущем хочу стать .NET Core developer + синтаксис языка Java и C#(.NET Core) очень похоже. Слежу новостями Microsoft, конференция DotNetRu и тд. Есть симпатия C#❤️. Спасибо большое за фидбэк, удачи вам!
Главный вопрос, а где брать эту информацию? Ее надо отдельно по крупицам собирать? Или может есть специальные книги или сайты , например по разделу процессоры или иерархии памяти?
Владимир, столько у вас опыта, смотрел видео где вы рассказывал чем вы занимались в плане работы и на каких языках. Интересно почему вы ушли с С++ на Golang? И часто в вакансиях вижу C++ Golang, Python Golang. Это значит вы будете решать задачи на обоих языках?) Очень интересно было бы услышать ответ от вас) P.S: Я помню что вы сказали, что стало вроде скучно или что то типа того. И позвольте еще один вопрос, как мне сказал один знакомый из одной из компаний манга, не лезь в С++, в 2023 году не имеет смысла учить с++ и тратить столько сил. Согласны ли вы с этим или нет?)
С++ хорош для понимаю того, как что работает - много на что открывает глаза, но есть языки на которых что-то намного проще делать и практически также эффективно, поэтому и ушел на Go. На счет языков - зависит от работы, не получится точно ответить
@@vladimir_balun_programming Так в том то и дело. У Вас видео как называется? Видео про то, что нужно знать джуну! Т.е. тому человеку, который только приступает к программированию на языке C++. Вот если бы видео у Вас называлось "Что нужно знать разработчику C++", то да, тогда Вы были бы правы. Здесь же вы просто решили впихнуть кликбейтное название. Не подумав (либо забив болт) на начинающих людей, которые посмотрев эти ваши божественные требования к новичку, не захотят даже и начинать
Ну с этим багажем потенциальные джуны не будут везде ходить и говорить, что джуны никому не нужны - они не то, что без труда, но тем не менее смогут пройти нужные им собеседования
А я не понял, если честно. А где boost/qt и прочие разные штуки, типа git/gtest, которые работодатель сходу затребует от джуна? Чел "приложения с окошечками" не знает как делать, но его, наврное сразу посадят на разработку софта для сетевого оборудования со знаниями протоколов канального и сетевого уровня, или прямо вот в Intel/amd будет свои знания по архитектуре применять?
@@vladimir_balun_programming ну так для новичка если - сразу и наглядность и батарейки в комплекте. СУБД, model-view-control, система сборки и тестирования. Курс молодого бойца, так сказать. Возможность сделать что-то наглядное, а не просто ковыряться в олимпиадных задачках + навыки, которые ему позарез нужны с первых дней работы. Не обязательно именно этот фреймворк. Подойдёт любой хороший. Чтобы посмотреть сразу, пристреляться и не изобретать велосипеды потом. Разве нет? А архитектура, протоколы и шины и регистры процессора - это уже для миддлов и то не всем пригодится.
@@Милин-к3э ну между джуном и совсем новичком где-то полгода-год подготовки по основам языка, стандартной библиотекеи, алгоритмам, хоть какого-нибудь фреймворка и базовых инструментов. А может и два года, если так, не спеша.
Этот господин свои курсы продает или почему он так легко заливает с плеча что С++ (один из самых сложных языков программирования в мире) легко учить???