Войти
ПроектыФорумСобираю команду

Ищу совета. Программирование на С++.

Страницы: 1 2 3 4 5 Следующая »
#0
(Правка: 13:55) 13:36, 16 фев. 2021

Доброго времени суток, форумчане !
Полтора года изучаю язык С++. (Вузовская программа + самостоятельное изучение интересующих меня тем).
На данный момент мною изучены базовые основы языка вплоть до ООП, включительно, работа с STL,
работа с WinForm. Имеются некоторые потуги в сфере создания серверов(без всякой претензии на профессиональную реализацию. Использовалась библиотека ws2_32.lib). Небольшое знакомство с OpenGl(Не могу сказать, что знаю его крепко, однако кое-что, не без помощи тонны видеоуроков и документации, на нем могу сделать и даже делал. В том, что использовал разобрался полностью, однако прекрасно понимаю, что это лишь верхушка айсберга). Так же имеются небольшие познания в Алгоритмах и структурах данных(в рамках вузовской программы и немного литературы из того, что мне посоветовали добрые люди под моим прошлогодним постом).

Так же реализовывал следующие проекты.

- В рамках курсовой работы написал ремейк игры Pacman на WinForm. Немного позже, когда принялся осваивать серверное программирование, написал простенький сервер для хранения на нем данных из коопа и для возможности играть в кооперативе.
- Для джема писал песочницу с использованием OpenGl.
- Писал клиенто-серверное приложение онлайн чата. Клиент написан на WinForm.

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

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

В данный момент у меня в голове роится множество вопросов, на самые важные из которых, надеюсь, получить ответ здесь.
 
1. Для чего вообще нужен С++ ? Серьезно, я скоро уже как два года учу язык, но так до сих пор и не получил(и сам не нашел) однозначного ответа, где и над чем мне предстоит работать по специальности.
2. Вопрос, который вытекает из первого. Какие инструменты мне стоит осваивать в первую очередь, чтобы как можно быстрее встроиться в разработку коммерческих продуктов. Да, разрабатывать игры на WinForm, чаты на пожилых библиотеках это тоже опыт, но хотелось бы, чтобы все, что я буду осваивать было, по возможности, максимально ликвидным при устройстве на работу.
3. Стоит ли мне вдовесок к С++ осваивать еще какой-либоя язык ? Т.к. я постоянно мониторю вакансии на биржах труда, чтобы ориентироваться на то, что востребовано, очень редко вижу вакансии даже джуна, где требования ограничиваются лишь знанием С++ и связанных с ним библиотек.
4. Ну и последний вопрос, на который я не особо рассчитываю получить ответ(но все же спрошу, авось). Есть ли какие-то задачи на фрилансе, на которых может уже сейчас зарабатывать копеечку-другую программист с моими знаниями, описанными выше. Разумеется, я с удовольствием доучил бы еще технологий, если оно того потребует. Просто интересует, какие задачи(если они есть) и что конктретно для их успешной реализации нужно изучить.

Заранее спасибо, если вы уделили мне немного своего времени, прочтя, данный пост. А если уж ответите по существу, двойное вам спасибо).

UPD:: А, еще такой вопрос задать забыл. Понимаю, что для трудоустройства необходимо иметь портфолио. В связи с эти возникает вопрос, чем его стоит наполнить ? Возможно, есть варианты проектов, которые стоит реализовать в первую очередь, чтобы как и набраться опыта при их написании, так и заиметь наглядную демонстрацию этих навыков ?


#1
14:02, 16 фев. 2021

Ruru_Ferrenio
> Для чего вообще нужен С++ ?

Изначально.

В C++ изначально две идеи.
1. ООП программа, на самом деле, не должна быть ОО. Все ООП может быть реализовано только на уровне обфускации.
2. Построенные на основе C++ "программные миры" должны вводится без нарушения C++-синтаксиса, для чего введена возможность переопределить практически любую лексему. Что, конечно, породило кучу фигни, навроде тех же ссылок.

Дао С++

Главная легенда C++ (по Элджеру):

"По-моему, изучение С++ чем-то напоминает подъем на лифте.
Дзынь! Второй этаж. С++ - это усовершенствованный вариант С, с сильной типизацией (которую, впрочем, при желании можно обойти) и удобными комментариями //. Любой программист на С, если он не хочет подаваться в менеджеры, должен двигаться дальше… а Бьярн Страуструп (Господи, благослови его) придумал для этого отличную возможность.
Дзынь! Третий этаж. С++ - хороший, хотя и не потрясающий объектно-ориентированный язык программирования. Не Smalltalk, конечно, но чего ожидать от языка, работающего с такой головокружительной скоростью? С++ - это Cobol 90-х, политически выдержанный язык, которые гарантирует финансирование вашего проекта высшим руководством. А уж если С++ достаточно часто упоминается в плане, можно надеяться на удвоение бюджета. Это тоже хорошо, потому что никто толком не умеет оценивать проекты на С++ и управлять ими. А что касается инструментария - глаза разбегаются, не правда ли?
Дзынь! Последний этаж, все выходят. Но позвольте, где же "все"? Лифт почти пуст. С++ - это на самом деле не столько язык, сколько инструмент для создания ваших собственных языков. Его элегантность заключается отнюдь не в простоте (слова С++ и простота режут слух своим явным противоречием), а в его потенциальных возможностях. За каждой уродливой проблемой прячется какая-нибудь умная идиома, изящный языковой финт, благодаря которому проблема тает прямо на глазах. Проблема решается так же элегантно, как это сделал бы настоящий язык типа Smalltalk или Lisp, но при этом ваш процессор не дымится от напряжения, а на Уолл-Стрит не растут акции производителей чипов памяти. С++ - вообще не язык. Это мировоззрение или наркотик, меняющий способ мышления".

Обратите внимание: "карьера... финансирование... акции..." И, чем, выше этаж, тем удобнее другие языки. На втором этаже кончаются написанные на C++ реальные программы. Выше третьего не поднимается творчество крестопроблемцев. Сама книга Элджера после первых строк вызывает недоумение: мол, зачем мне элегантные решения проблем корявого языка, если я могу взять элегантный язык?

Сейчас. Просто удобное средство имитации полезной деятельности. Можно меряться знанием тонкостей стандартов. Можно вылизывать библиотеки или переписывать решения старых задач. Можно шокировать начальство мегабайтами текстов. Программировать нельзя.

Ruru_Ferrenio
> Какие инструменты мне стоит осваивать в первую очередь, чтобы как можно быстрее
> встроиться в разработку коммерческих продуктов.

В каждой конторе - свой стандарт C++. Заранее не подготовишься. Надо за две недели проникнуться корпоративным духом и начать писать, как окружающие. Ориентируйтесь на людей, а не на язык.

Ruru_Ferrenio
> Стоит ли мне вдовесок к С++ осваивать еще какой-либоя язык ?
Знание какого-либо языка (или нескольких) не означает умения программировать.

#2
14:18, 16 фев. 2021

1. Нужен для очень быстрых вещей. Любые программы с большими массивами данных: аудио, видео, графика, датасеты, бекенд.
3. Если знаешь плюсы, то не будет никаких проблем с изучением любых мейнстримовых языков. Там проблема в знании библиотек.

#3
14:21, 16 фев. 2021

gudleifr
> > Какие инструменты мне стоит осваивать в первую очередь, чтобы как можно
> > быстрее
> > встроиться в разработку коммерческих продуктов.
>
> В каждой конторе - свой стандарт C++. Заранее не подготовишься. Надо за две
> недели проникнуться корпоративным духом и начать писать, как окружающие.
> Ориентируйтесь на людей, а не на язык.

Дельный совет, спасибо. И все же, есть ли какой-то основной стек знаний, который в среднем по-рынку ждут от программиста, который пришел на свою первую работу ?  На чем мне стоит особенно сфокусировать свое внимание при изучении программирования, чтобы при приходе на работу не оказалось, что данный скилл является настолько мастхев, что его даже в требованиях не указывали ?  gudleifr
> Дао С++
>
> Главная легенда C++ (по Элджеру):
> "По-моему, изучение С++ чем-то напоминает подъем на лифте.
> Дзынь! Второй этаж. С++ - это усовершенствованный вариант С, с сильной
> типизацией (которую, впрочем, при желании можно обойти) и удобными
> комментариями //. Любой программист на С, если он не хочет подаваться в
> менеджеры, должен двигаться дальше… а Бьярн Страуструп (Господи, благослови
> его) придумал для этого отличную возможность.
> Дзынь! Третий этаж. С++ - хороший, хотя и не потрясающий
> объектно-ориентированный язык программирования. Не Smalltalk, конечно, но чего
> ожидать от языка, работающего с такой головокружительной скоростью? С++ - это
> Cobol 90-х, политически выдержанный язык, которые гарантирует финансирование
> вашего проекта высшим руководством. А уж если С++ достаточно часто упоминается
> в плане, можно надеяться на удвоение бюджета. Это тоже хорошо, потому что никто
> толком не умеет оценивать проекты на С++ и управлять ими. А что касается
> инструментария - глаза разбегаются, не правда ли?
> Дзынь! Последний этаж, все выходят. Но позвольте, где же "все"? Лифт почти
> пуст. С++ - это на самом деле не столько язык, сколько инструмент для создания
> ваших собственных языков. Его элегантность заключается отнюдь не в простоте
> (слова С++ и простота режут слух своим явным противоречием), а в его
> потенциальных возможностях. За каждой уродливой проблемой прячется какая-нибудь
> умная идиома, изящный языковой финт, благодаря которому проблема тает прямо на
> глазах. Проблема решается так же элегантно, как это сделал бы настоящий язык
> типа Smalltalk или Lisp, но при этом ваш процессор не дымится от напряжения, а
> на Уолл-Стрит не растут акции производителей чипов памяти. С++ - вообще не
> язык. Это мировоззрение или наркотик, меняющий способ мышления".
>
> Обратите внимание: "карьера... финансирование... акции..." И, чем, выше этаж,
> тем удобнее другие языки. На втором этаже кончаются написанные на C++ реальные
> программы. Выше третьего не поднимается творчество крестопроблемцев. Сама книга
> Элджера после первых строк вызывает недоумение: мол, зачем мне элегантные
> решения проблем корявого языка, если я могу взять элегантный язык?
>
> Сейчас. Просто удобное средство имитации полезной деятельности. Можно меряться
> знанием тонкостей стандартов. Можно вылизывать библиотеки или переписывать
> решения старых задач. Можно шокировать начальство мегабайтами текстов.
> Программировать нельзя.
Я правильно понимаю, что Вы считаете С++ неподходящим для начала карьеры ? Честно говоря, я сам об этом постоянно задумываюсь, хотя из-за крайней скудности знаний про особенности других языков, я не могу судить, что актуальнее(некорректно, говоря. Но точнее мысль выразить не могу). Не знаю, как ситуация обстоит с востребованностью в компаниях, но на тех же фриланс-биржах я постоянно сталкиваюсь с тем, что имеется постоянный спрос на задачки под тот же Шарп или еще что-то, которые я мог бы уже решить на своем родном языке, однако же на С++ вижу спрос на задачи с использованием целого стека технологий, про которые я даже не слышал. 

#4
14:26, 16 фев. 2021

Ruru_Ferrenio
> мониторю вакансии на биржах труда, чтобы ориентироваться на то, что
> востребовано, очень редко вижу вакансии даже джуна

Госконторы и аффилированные с ними лица, компании, работающие на госкомпании с созданием кроссплатформенных приложений или драйверов. Большие такие, серьёзные, работающие по госстандартам.

#5
(Правка: 14:32) 14:31, 16 фев. 2021

Ruru_Ferrenio
> И все же, есть ли какой-то основной стек знаний

Посмотрите, например, тему https://gamedev.ru/flame/forum/?id=258328 . Есть ли там хоть два человека, мнение которых о C++ совпадает? Полсотни страниц спора о пустом. И так - в любой теме форума. Каждый верит в "свой стек" и поносит "стек" оппонента.

Ruru_Ferrenio
> Я правильно понимаю, что Вы считаете С++ неподходящим для начала карьеры ?
В наше время карьера - понятие чисто коммуникативное, никак не связанное с работой. Учиться программировать хотите? Есть какая-то домашняя/рабочая рутина, которую стоит запрограммировать для облегчения жизни/произведения впечатления на окружающих?

Ruru_Ferrenio
> однако же на С++ вижу спрос на задачи с использованием целого стека технологий,
> про которые я даже не слышал. 
Это про те самые "две недели".

#6
14:32, 16 фев. 2021

papa_Lev
Ну так в том-то и загвоздка. Серьезные компании набирают, я так понимаю, программистов с серьезным багажом. В том и главный вопрос, из чего мне стоит составить этот самый багаж ?
У меня, честно говоря, глаза разбегаются от обилия технологий. А найти внятный роад-мап так и не вышло. Да и проблему с практикой никто не отменял.

#7
14:32, 16 фев. 2021

Ruru_Ferrenio
> Для чего вообще нужен С++ ?

Писать движок.

#8
(Правка: 14:48) 14:36, 16 фев. 2021

Ruru_Ferrenio
> В том и главный вопрос, из чего мне стоит составить этот самый багаж ?
Обычно, из того, что Вы умеете делать в реале:

Считать радиоантенны по уравнениям Максвелла?
Поводить морфологический анализ текстов?
Строить семантику вычислений?
Копаться внутри компьютеров?
Производить впечатление своей эрудицией?
Втюхивать дерьмо клиентам, наконец?

А уж запрограммировать это - дело десятое.

#9
14:37, 16 фев. 2021

gudleifr
> Ruru_Ferrenio
> > Я правильно понимаю, что Вы считаете С++ неподходящим для начала карьеры ?
> В наше время карьера - понятие чисто коммуникативное, никак не связанное с
> работой. Учиться программировать хотите? Есть какая-то домашняя/рабочая рутина,
> которую стоит запрограммировать для облегчения жизни/произведения впечатления
> на окружающих?
Да, я понимаю о чем Вы. Не то, чтобы создания какого-то идейного проекта с нуля, но то же допиливание коопа для игры из курсовой работы было лишь моей инициативой.

#10
14:54, 16 фев. 2021

встречал в последнее время такие предложения о работе (С++)
матч3
командный шутер
утилиты c GUI на Qt
продукты, инфраструктуру и аналитические сервисы для Такси (С++ или Python) (back end)
компьютерное зрение - распознавание, подсчет элементов на конвейере

выбирай что нравится и качай направление

#11
15:22, 16 фев. 2021

Ну можно ещё C++ под UE4 прокачать, это обязательное требование для программистов у геймдев-студий (разрабатывающих игры на UE4).

#12
(Правка: 7:22) 7:02, 17 фев. 2021

Ruru_Ferrenio
А ты думал вообще в какой области хочешь работать? C++ это просто инструмент, а инструмент выбирают для конкретной задачи.

> 1. Для чего вообще нужен С++
Геймдев (тот же анрил энжин или in house движки в крупных студиях), embedded всякий (тут надо знать электронику вдобавок), ну и как уже сказали, везде, где надо перформанс. Причём, часто перфоманс критикал код просто используется как библиотека из более дружелюбных языков (пример из геймдева - юнити. Или какой-нибудь ImageMagick в php, TensorFlow в python).

> 2. Вопрос, который вытекает из первого. Какие инструменты мне стоит осваивать в первую очередь, чтобы как можно быстрее встроиться в разработку коммерческих продуктов.
Для начала надо понять, а нужен ли тебе C++ в целом для карьеры. В какой области ты хочешь работать, что тебе интересно? Если хочешь в геймдев - C++, конечно, норм. Backend (не геймдев) сейчас на крестах пишут мало, больше всяких .net / java / Go / node js.
Если захочешь пойти по простому пути, то web Frontend и подавно не на крестах.

> 3. Стоит ли мне вдовесок к С++ осваивать еще какой-либоя язык
Лишним не будет. Но опять же, сначала определись в какой области развиваться. Можешь попробовать разные области с мейнстримовыми языками в них. Например Swift для iOS разработки или какой нибуль Kotlin для Android.

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

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

И что бы ты не выбрал, фундаментальные знания имеют наибольшую ценность, тк они не зависят от текущей технологии, которая в тренде. Алгоритмы / матан итд.

#13
(Правка: 9:05) 9:02, 17 фев. 2021

Ruru_Ferrenio
> 1. Для чего вообще нужен С++ ? Серьезно, я скоро уже как два года учу язык, но
> так до сих пор и не получил(и сам не нашел) однозначного ответа, где и над чем
> мне предстоит работать по специальности.
На базе С++ можно соорудить любой инструмент, если для какой-то задачи не устраивают имеющиеся. Но это не дешево. Если можно обойтись без С++, сейчас предпочитают без него обходиться. Сегодня не как в двухтысячном году, когда на С++ программировать пытались все задачи.

> 2. Вопрос, который вытекает из первого. Какие инструменты мне стоит осваивать в
> первую очередь, чтобы как можно быстрее встроиться в разработку коммерческих
> продуктов. Да, разрабатывать игры на WinForm, чаты на пожилых библиотеках это
> тоже опыт, но хотелось бы, чтобы все, что я буду осваивать было, по
> возможности, максимально ликвидным при устройстве на работу.
> 3. Стоит ли мне в довесок к С++ осваивать еще какой-либоя язык ? Т.к. я
> постоянно мониторю вакансии на биржах труда, чтобы ориентироваться на то, что
> востребовано, очень редко вижу вакансии даже джуна, где требования
> ограничиваются лишь знанием С++ и связанных с ним библиотек.
Не получится быстро начать работать на С++. На такую работу берут только опытных. С++ - плохой выбор для первого языка. Без пяти лет опыта и пары крупных проектов за плечами, ты никому не нужен. Простые работы на С++ не делают.
Юникс осваивай. Большая часть работ на С++ делается под юникс.

> 4. Ну и последний вопрос, на который я не особо рассчитываю получить ответ(но
> все же спрошу, авось). Есть ли какие-то задачи на фрилансе, на которых может
> уже сейчас зарабатывать копеечку-другую программист с моими знаниями,
> описанными выше. Разумеется, я с удовольствием доучил бы еще технологий, если
> оно того потребует. Просто интересует, какие задачи(если они есть) и что
> конктретно для их успешной реализации нужно изучить.
Фриланс - для простых и ясных задач, где совершенно четко до начала работ ясно что надо сделать. В больших проектах так не бывает, по ходу работы обретаем ясность того, что делаем. Попытка отдать такое на фриланс приведет только к ругани и взаимному кидалову. Т.е. очень не подходящая область для применения С++, который выгоден только в сложных случаях.

#14
9:20, 17 фев. 2021

https://www.freelancer.com/jobs/cplusplus-programming/

Страницы: 1 2 3 4 5 Следующая »
ПроектыФорумСобираю команду