I have six months to learn to code in c++. I choose c++ because it seems good and is compatible with cocos2D which also looks great!
My learning plan is:
Sept-Nov - test myself and basically become fluent in c++
Nov-Jan - Start with VERY basic games, get better and make the final project: 'ORP' (which I am entering for a contest)
So my main question is do you think this plan is good enough to go with, and what i really want to ask is, did you fellow programmers learn from paid cources or use free courses? If you used free courses, can you please link me to it. A course to help me with game Development. Because i have no plan in making a non-game software
Have you programmed before, or would C++ be your first language? Have you written games before?
Six months is what I would consider a fairly tight time frame to go from "I've never written C++" to "I've mostly stopped writing code that crashes seemingly at random".
If you just want to write a 2D game, I'd recommend that you look instead at the LÖVE 2D game engine. Use those six months to work on what you actually want to make; you can learn C++ later when you're not working on anything.
you can self learn but the internet is the internet. Free materials may be outdated, or flat out wrong. I learned c++ as part of a university program but have since learned many other languages on my own, mostly for free or for the cost of a book. Used books are often quite affordable, but here again get one that is no more than a few years old or you will risk outdatedness.
your timeframe is probably unrealistic, as already said. C++ is a challenging language.
Programming is 99% problem solving, you can learn how to decode how a program works, step by step by learning the programming language, and when you go to a course that claims to teach programming in 3 months, that's what you are getting. But there is a black art inside of programming which will take much longer to learn than you will think, which is the art of actually writing good code yourself, when there isn't a single spoon on the internet or a book that could help you in your very specific scenario.
Note that all tutorials feel like tutorials, none of them are close to production level code because they all care a lot about readability and cleanliness, and no I am not talking about high performance code (that's the worst in my opinion), I am talking about things that feel good. There is no such thing as a fun game made from a standalone tutorial unless its something like tetris... (I don't blame tutorial makers, I don't read them to seriously play the game it makes).
The problem is that you would think that by immediately being very experimental and creative with your code and making it as complex as possible is the best way to learn, when actually the best way to learn is to learn how other people write (being creative is still very important, but in programming you should avoid making too many assumptions on how things work early on, until you get it), and when you start to trying to write something without a guideline, it usually ends up in a mess. The reason why is because the most hardest part of programming (especially with C++) is the fact that making short and simple code is more difficult than writing complex code, because in some cases simple code could be reused and does the same job as the complex version but... better! You will also learn that there are a billion billion ways to write any piece of code. I generally try to follow a rule of: if a highschool student can't comprehend it, then nobody can comprehend it.
And you are probably thinking, "those last 2 paragraphs contradict each other!", yes they do, and its your job to figure out which code should be written from a tutorial or taken from somewhere (because its perfectly good code just laying there!), and which code that needs to be unique and cool (without blowing up), and the worst feeling of all, spending years on your first project... bad, very bad idea, and there is a whole other world of failing at making a good game idea (or art, or sounds!) even if you are good at programming. Productivity and determinism is what you need.