Как долго учить с++ ? [закрыто]

191
15 декабря 2016, 16:01

Наверное уже всех давно задолбал этот вопрос :D , но все-таки ребят сколько же нужно обучаться с++ чтобы уметь самому создавать небольшие проги . Я не говорю о огромных проектах, а просто для себя типа небольшая 2д игра. Я стараюсь все понимать, смотрю видеоуроки, примерно 2 - 5 штуки за неделю :D Опытные прогеры просветите меня и есть ли какие-нибудь советы новичку ?) (кстати я уже просмотрел уроков 30 и в целом понимаю как все устроено и умею пару вещей :)

Answer 1

Неудержался

Answer 2

Просто смотреть видеоуроки недостаточно. Основные усилия при изучении любого языка программирования должны быть направлены на практику. Вы должны как можно больше писать программ, иначе знания просто не закрепятся. Ставьте перед собой задачи и решайте их, со временем усложняя эти задачи. Только так вы сможете освоить C++ (или любой другой язык). И именно от количества практики зависит скорость вашего обучнеия.

И ещё. Я понимаю, что у каждого человека свои способы получения и усвоения новой информации, но я бы посоветовал перейти с видеоуроков на книги. Дейтела, например. Всё-таки книги по программированию, в отличие от видеоуроков, пишут (в основном) специалисты, информация в книгах проходит редактуру и содержит гораздо меньше ошибок, неточностей и недоговорок, чем видеоуроки, которые сейчас клепают все кому не лень.

Answer 3

Сколько учить?

Для основ нужно примерно четыре-семь хороших книг по 1000+ страниц каждая(базовый синтаксис + stl + немного winapi и directx для игр) с довольно сложными для освоение темами и практика написания хороших программ после чтения. Сколько займет это времени у Вас никто точно сказать не сможет, это как вопрос "Как долго читать войну и мир?". Но зато вы можете отслеживать свой прогресс по этому плану и видеть, как быстро вы растете.

Темы для чтения

Ну и я бы не стал рассчитывать, что на основы для написания маленьких программ уйдет меньше года. Для средних программ в среднем пять лет.

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

P.S. На всякий случай я оставлю тут еще вот эти видеоуроки:

OpenGL от Anton Te

OpenGL от HeNe

Answer 4

типа небольшая 2д игра

Для "типа небольшой 2д игры" вообще не обязательно на чем-то уметь программировать. Есть такой движок, называется Construct 2. На нем можно делать "типа небольшие 2д игры". Знаю, звучит не очень вдохновляюще. Поэтому лучше просто загугли сразу про этот движок. Прочувствуешь всю его простоту по первому взгляду. Посмотри на ютубе пару видео о нем. Материала по нему предостаточно, в том числе на русском языке. И как бы оно плохо не звучало, вещь довольно прикольная. Не очень перспективная, но прикольная.

Если же у тебя все-таки где-то в глубине души есть желание делать большие и классные игры (2д/3д - не важно), а не только лишь "типа небольшие 2д игры" - тогда лучше всего подойдет C# и Unity.

Для сравнения... Пока ты будешь "вариться" во всем этом, то:

В случае с Construct 2:

Ты можешь неспешно что-то пытаться делать, изучать, что-то придумывать, и через пару-тройку месяцев родишь более-менее играбельное и готовое "нечто" (а не очень готовое, но хоть сколько-нибудь играбельное - можно хоть через пару дней). Если повезет с идеей, не подкачаешь с реализацией, то игру можно даже опубликовать и продавать. Но это скорее исключение, чем правило.

Из плюсов, относительно Unity:

  • С ним очень просто и приятно работать, если ты не особо шаришь в программировании
  • Не нужно уметь программировать ни на одном из языков (хотя эти знания будут очень кстати, потому что ты все равно в каком-то смысле будешь программировать различные действия и взаимодействия)
  • Можно быстро делать разные небольшие 2д игры

Из минусов:

  • У движка есть нехорошая особенность, которую в двух словах не объяснишь. Но при падениях FPS у игры, ты можешь столкнуться с тем, что некоторые объекты будут проходить сквозь друг друга (в частности это касается небольших объектов, с большими объектами все в порядке).
  • Движок также мультиплатформенный, как и Unity, но для мобильных платформ он не подойдет, потому что оптимизация огорчает. Тут скорее даже не движок виноват, а то, что игра выходит на HTML5. Поэтому игра на многих даже очень хороших мобильных устройствах будет плохо идти. Исключение: какие-нибудь "point and click" квесты или другие игры, где не нужен хороший FPS. Десктопных игр это не особо касается, на них проблем с производительностью при текущих мощностях компьютеров нет.
  • Если захочешь продавать игру, нужно приобрести лицензию (8000р с небольшим)

В случае с Unity и C#:

Ты можешь неспешно что-то пытаться делать, изучать, что-то придумывать, и через пару-тройку лет родишь более-менее играбельное и готовое "нечто" (а не готовое - через пару-тройку месяцев). Скорее всего такой продукт можно будет продавать.

Из плюсов, относительно Construct 2:

  • Это перспективно (в плане профессии). Сейчас много компаний делают игры исключительно на Unity.
  • Стабильность. В движок влили огроменные деньги, поэтому все на нем прекрасно работает, в том числе на мобильных платформах.
  • Если тебе нужен Unity не для компании с доходом 100000$ в год, то это реально бесплатно (я не шучу, у Unity реально есть такое ограничение). Лицензий никаких приобретать не нужно, игру можно спокойно продавать (например, в Desura).
  • В перспективе ты можешь прикрутить к игре онлайновые функции (в Construct 2 это невозможно в принципе)
  • Если будешь изучать C#, то сможешь не только игры делать на Unity, но и программы (на Xamarin Studio или Visual Studio)
  • Контента по Unity в интернете, все-таки, больше. Что важно, намного больше именно хорошего, качественного контента.

Из минусов:

  • Конечно, можно использовать намного более простой JavaScript, но если все-таки серьезно решил делать игры, то рекомендую изучать именно C#. Это объектно-ориентированный язык, а значит придется также разобраться с объектно-ориентированным программированием. А это не самая простая штука - в этом минус :)
  • Тебе понадобится много времени ;)
Answer 5

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

Сколько учить? Как писали выше - всю жизнь. имхо выбырайте java не пожалеете.

READ ALSO
Компилляция прокта C++ из под РНР

Компилляция прокта C++ из под РНР

ЗдравствуйтеСтолкнулся со следующей задачей - необходимо компиллировать проект, написанный на C++ из под PHP

181
Чтение куска файла в двумерный массив

Чтение куска файла в двумерный массив

Здравствуйте! Есть файл типа:

184