C++ или С#

Востребован ли C++ в 2020? Или лучше перейти на C#.

1111

Фундаментально реши, каким программистом ты хочешь стать.


Если хочешь писать охрененные низкоуровневые алгоритмы, и выжимать последние проценты из железа, учи C++. C# абсолютно бесполезен как язык в этом плане. Даже Unity вон неспешно мигрирует на DOTS (считай, мелкое не-ублюдочное подмножество C#, работая в котором ты ощущаешь себя Си-программистом из 80-х годов, но зато твой код работает почти так же быстро, как работал бы хорошо написанный аналогичный C++ код). В этом направлении очень много бабла, если ты уходишь в финансы (весь speed трейдинг — чистый C++), очень много фана, если ты уходишь в геймдев (почти всё, что не юнити — чистый C++; все вот эти фростбайт энжины, сорс энжины, все движки всяких юбисофтов и EA, и так далее). Много работы в серверном мире, но надо знать куда идти где востребована производительность (гугл, яндекс, прочее такое крупное, а мелкие компании не будут писать C++ сервера под бизнес-задачи приблизительно никогда, т.к. железо для них будет дешевле времени программиста). В РФ сильно меньше возможностей, чем не в РФ.

Если хочешь просто соединять готовое, посмотри на C# и Python. Ты будешь сильно продуктивней, если надо просто сделать чтобы что-то работало. Скажем, надо тебе в Azure поднять фигню, котрая будет что-то считать и хранить для пользователей, а потом что-то другое отправлять в другой сервис — хуяк-хуяк, готово. Тут примотал какой-то готовый нугет изолентой, там нафигарил адаптер от одной библиотеки к другой, и всё заработало. Самому писать ничего не надо. Получилось медленно и через жопу, зато работает вот прямо уже, а не через два месяца. Заодно будь готов подхватить ещё полдюжины языков под всякие отдельные задачи (тут прилепить чей-нибудь JS код, там позвать какую-то фигню на Scala...). Есть куча людей, которым это приносит больше фана чем первый вариант с C++. В первую очередь, требования к тебе как к программисту сильно ниже. Денег в целом сильно больше для людей среднего уровня (т.к. быстро решаются вполне понятные бизнес проблемы, и это приносит вполне понятное бабло), но потолок роста для программиста очень низкий. Либо ты уходишь в руководящие должности, либо остаёшься примерно на той же зарплате что и средний senior, т.к. между средним C# программистом и крутым C# программистом для бизнеса в общем очень невелика разница. Это примерно как разница между начинающим укладчиком асфальта и крутым укладчиком асфальта — асфальту в общем плевать, кто его укладывал, если руки не совсем уж из жопы. Ты никогда не станешь Джоном Крамаком или Джеффом Дином. Будь готов стать безымянным code monkey, если не повезло с компанией.

Но. Есть третий вариант: уйти в профессию, для которой кодинг — просто инструмент. Модный buzzword последних нескольких лет — data scientist, например. Обучать нейронки, анализировать петабайты говна, и пр. Там в общем от выбора языка мало что зависит, т.к. вполне может быть, что твоя гигантская сеть, обучаемая на кластере из 2000 серверов, тупо зовёт из python код какого-нибудь уже готового фреймворка (и плевать, в общем, насколько оно быстро и медленно, т.к. твой личный код ничего не привносит). Там в целом полезно знать все языки, но не надо быть специалистом в каком-то конкретном. Потолок ЗП крайне высок, но надо применять мозг.

8
Ответить

Та ладно, не такой уж C# и медленный, что ты его ставишь в линейку с питоном. Медленее С++, конечно, но для большинства задач КРУДов его скорости хватает с головой и приличным запасом. Все равно, шарписты чаще всего фигачат какую-то систему документо-оборота и банковское ПО :)

Ответить

Очень жизненно расписал, очень плюсую.
Самому надоело сидеть на стеке C# + Unity, потому что в Украине не так и много перспектив с этим: делаешь убогий AR, казино/слоты или конвейер однотипных поделок в плей стор.
Так что после нескольких лет решился на изучения C++ и OpenGL, живу теперь с надеждой, что смогу реализовать себя там. :)

1
Ответить