Пидоры изучившие C++, подскажите как лучше его учить и куда смогу пойти на работу
Подробнее
КУПОН НА 1 помощь
it,c++,языки программирования,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,пидоры помогите,реактор помоги
Еще на тему
Иди наладчиком ЧПУ, мой совет тебе.
gamedev||embedded
но такие вещи лучше спрашивать у linkedin||hh
Там не чистые плюсы, потому как у них виртуальная машина, что уже для плюсовиков нонсенс. Если пытаться пропихивать ему чистый плюсовый код, не обмазанный анриловскими макросами, то он будет падать в любой непонятной ситуации, даже если со стороны твоего кода, казалось бы, все норм. А с макросами код мало чем отличается от какого-нибудь шарпа.
С UE изучать плюсы не советую, так как атрофируется мозг безвозвратно. STL там можно сказать свой, но он местами странный.
Попробуй поюзай чистые плюсовые классы в лямбдах, таймерах, и RPC функциях, и найди ошибку где упало, грамотей. А так же изучи как работают потоки в геймтреде.
Допустим я не ебу как они работают. В каком месте это противоречит моим словам про вм? Ты мне хочешь сказать что кол игры и эдитора компилится не в код для конкретной платформы? В каком месте там вм начинается?
"Тут я не эксперт, поэтому пошлю на диван человека, который, возможно, имеет какой-то опыт".
Ты прав только в том, что сборщик мусора обращает внимание только на наследников UObject(это база, на которой все держится), и то, что изучать анриал, с целью изучения С++ - это плохая идея (в итоге только больше запутаешься и не поймешь ни языка, ни движка).
Считается ли чистым С++ кодом использование заранее написанных для тебя методов? Я думаю, нет. Строчка "А + В" будет выглядеть одинаково на большинстве языков, а плюсовые "финты ушами" с указателями очень не приветствуются ни движком, ни кодстайлом.
В анриале ты вообще должен забыть про существование таких опасных операторов как "new" и "delete", и всю присущую им арифметику указателей. Все, что касается игровых потоков, накладывает на разработчика жесткие ограничения в используемых методах. Под любой класс или структуру у фреймворка есть свои заранее заготовленные макросы и набор методов, которые ты обязан использовать. В противном случае, код даже после успешной компиляции будет либо просто игнорироваться, без выполнения, либо падать во время выполнения, а стектрейс забурится внутрь движка так глубоко, что ты будешь долго откапывать место, где "рвануло" и почему. С одной стороны, соблюдение кодстайла нужно для читабельности кода, с другой для уменьшения количества багов, поверх тех, что уже наговнокодили разработчики движка (а они тоже не редко ошибаются, особенно в последние годы).
Виртуальная машина тут не такая продвинутая, как у какого-нибудь шарпа. Она начинает работать там, где начинаются блюпринты и некоторые фичи редактора. Нужна не для кроссплатформенности, а, прежде всего, для того, чтобы блюпринты не компилились так же долго, как и плюсы. А вот билд под конкретную платформу уже собирается на чистых плюсах, после того, как в них интерпретируется все блюпринтовые элементы проекта. Именно поэтому, например, некоторые вещи в релизном билде работают иначе чем в эдиторе под виртуальной машиной.
В плюсах ты тоже обычно не юзаешь ни new, ни delete напрямую. Как минимум потому что есть умные указатели и штуки вроде make_shared, make_unique.
Кроме того в том же анриле есть как раз таки те самые пресловутые умные указатели, https://docs.unrealengine.com/4.26/en-US/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/SmartPointerLibrary/.
С виртуалькой я согласен, я не знал как УЕ ранает блюпринты. Но это не отменяет факта что тебе никто не мешает писать код не касаесь этой хуйни, ровно как не касаять наследования от UOBJECT и сборки мусора. До тех пор, пока ты не пытаешься писать что-то около геймплейной логики например.
Предлагаю закончить страдать хуйней и сойтись на том, что мы смотриим на одно и тоже под разными углами. Так как технически то что сказал ты, не противоречит тому что сказал я
Из интересного только геймдев. Но интересную вакансию в РФ будешь очень долго искать, даже если наберешься достаточно опыта, чтобы называться джуном. Все остальные востребованные для плюсов области тебя так задушат, что перспектива "стать проституткой" будет не такой плохой. Десктопные приложения сейчас никому не нужны, а программировать контроллеры и налаживать станки на заводе это очень на любителя.
Лучше идти на что-то более современное. Даже наши динозавры понимали, что всё это говно надо удалять и писать с нуля на каком-нибудь вебе.
Это к тому, что если Си - это не от любви к искусству, а за деньги, то лучше в тестирование или девопс(но там сложное).
А еще мне понравилась книга "Освой самостоятельно C++ за 21 день", начал читать по приколу, просто из-за мемасиков.
С++ далеко не для всех, слабые духом не освоят. И я не освоил.
А говорили "IT это просто", чёртовы жирафы.
Что бы освоить С++ не обязательно надо осваивать Qt, оно не всем надо.
На собеседование пойди, возьмут на работу - значит освоил :D
Ну такое себе. Мой прошлый собес:
- C++ знаешь?
-- Нет
- узнаешь.
не узнал (
Хотя бы каким-то объективным критерием считаю то, что если тебе за это платят - то в принципе можно считать, что освоил. Остальное - слишком субъективно.
Но даже эта точка зрения очень субъективна
2. Полагалаю, что ты не совсем тот вопрос задаешь. Надо не язык выбирать, а то, чем ты хочешь заниматься (хотя бы перечень сузить), а уже под него выбирать технологию/язык.
3. Плюсы сложны и их сложность в данный момент довольно не часто окупается. Не так много задач, для которых плюсы будут хорошим решением. т.к. большую часть задач эффективнее (с точки зрения суммарного выхлопа и разработки, а не производительности) решают более высокоуровневые языки, а для кусков, которые критичны по производительности можно дописать библиотеку на С (ну или С++).
4. Если таки брать проекты на плюсах, то это таки либо упомянутые embeded (хотя там больше C), геймдев (Unreal Engine либо самописные), тяжеловесные десктоп-приложения (ну а вдруг привалит какой-нибудь Photoshop или 3dsMax писать, либо IDE какую-нибудь), либо какие-нибудь критичные к производительности или платформе части серверной системы.
- хочешь фронтенд сайтиков - тут Javascript (+ обёртка в виде Typescript) и к нему какой-нибудь фреймворк популярный. Альтернатив по языкам нет.
- хочешь бекенд сайтиков, то тут выбор самый широкий - c#, java, js (nodejs), python, ruby, go и т.д., дофига их.
- хочешь игры пилить - C# (Unity) либо C++ (Unreal Engine), остальное на уровне погрешности.
- хочешь банковские системы - java
- мобильные приложения - java/kotlin под андроид, swift (ну и к нему вероятно придётся Objective-C чуть выучить) - под ios. + сейчас ещё часто используют всякие технологии типа ionic, xamarin, react native и т.д. чтобы можно было на C#, JS/TS писать под все мобильные платформы сразу пилить одну приложуху.
- десктоп - C#, Java, C++, а сейчас ещё и JS/TS используя упомянутые выше electron, nwjs (дофига их разных)
- хочешь ИИ, аналитику, математику - Python
- хочешь долбиться в задницу - 1C или Ruby
Вообще, при всей своей отвратительности, Javascript (и к нему ОБЯЗАТЕЛЬНО Typescript) позволяет иметь более широкий диапазон сфер, куда можно приткнуться т.к. сейчас на нём помимо фронтенда можно и бекенд, и с меньшей вероятностью, но всё же десктоп и мобайл.
Если хочешь диапазон сфер и нормальный язык - то C#