i learned in c++ : variables and constants /arrays and vectors / statements and operators /controlling program flow /characters and strings /functions /pointers and references / OOP - classes and objects/ Operator Overloading/Inheritance/Polymorphism/smart pointers / exception handling/io and streams / STL
My question is what should do next am i ready to enter unreal engine programming world in c++ is there any thing else i must learn.
and what is the next move after i leaned these things in c++ , should i expand my knowledge in c++ first before entering unreal engine world in c++ programming
I say you actually need to make step backs, as with UE4 you don’t use standard library and STL, UE4 has it own standard library, primerly for multi platform support (it makes sure that UE4 game code will build on any platform with any compiler that UE4 supports) and possibility to monitor code activity and easy adaption to optimization as everything (but only conventionally) is forced to go thru UE4 code and by that UE4 knows what you code is doing.
So i would say you more then ready, you only need to know about syntax and primitive features, you will need forgot about standard library and relearn APIs anyway.
That said you could use C++ standard library, don’t think it some special “UE4 C++” because it isn’t, it is normal C++ just different core libraries and some extra automated code generation tool assistance (UnrealHeaderTool) and use of standard C++ library is not recomanded, UE4 is not even compatible with it anyway but you may end up need to use it when you try to use 3rd party libraries. But oyu would need to wrap it to UE4 APIs.
Find something you’re interested in and work on it. Whether it’s a UE4 project, a plugin, or even the editor itself; open the source code for it and browse its source code. Now that you’ve learned fundamental concepts, you should learn how (and when) they’re put to use.
One thing to keep in mind as you develop your programming skills: each type of component (project, plugin, editor app) has a lifecycle that dictates where it fits into the software ecosystem and what it can do there. They all have ways in which they start up, interact with their environment, and are terminated (shut down). Knowing this helps you focus on the details you’re interested first, and ignore the details that don’t interest you at the moment.
For example, if you want to add a special ability to a game character, you might start from a project that does something similar and study how it was done (without trying to figure out all the details about how projects or plugins work). Then you might try to add the ability you want to another game project. This would allow you to focus on the details of character abilities. This strategy could be applied to other topics of interest in the UE4 system (or other software system in general).