I want to start programming to help me in my artworks, and don't know python. However, I can pick languages quite easily. Where should I get started and what's the software I need? Plus, if I want to develop the Game Engine, will I need C++ programming knowledge? I want to become a developer for the game engine.
Many times as you know more about Blender you will need less Python.
In Blender use the Python console window and execute your python from a text window. Note that tool tips show Python references. See text output in the Blender console window. One small project suggestion is to print out the names of the Blender Objects in the console window.
Python.org site can be incrementally read and searched via the internet. There are certainly free videos and texts on the internet, with and without Blender.
Here at Stack Exchange there is a Python group.
Note that in Blender the [info window] shows Python for many of your user actions so you can observe and customize.
If you want to reinvent the 3D Wheel and get Python experience, pick a small project such as one that has many scripts and solutions already, so one may refer to known solutions. Here is one idea. Write Python to change the content of a [text] object over time from a Python list of strings.
Know that Node programming exists for the Compositor and Materials et cetera. There is also BAN ... Blender Animation Nodes. There is also the driver feature of Blender which use Python. One small project might be to animate the visibility of two objects based on the visibility of a third object.
I am not addressing the Game Engine in particular.