What is the best engine for an avid programmer but novice game developper?
Especially since you are a very experienced coder, you need to look at the specifications and documentation for several game engines to decide which ones fit you. You have that technical experience to know which ones will greatly utilize your skills after deep research.
Make sure to choose a game engine which most closely fits your experience, desire, and your previous workflow pipeline (for examples, Visual Studio or other IDE), because all the best game engines have a kind of default workflow pipeline tailored to a particular set of software and applications (some for Java IDE, Blender IDE, Visual Studio IDE, 3DS Max, and so forth.) Have the best fit game engine! Don't abandon your best experiences and already in place IDE and other major tools but find the game engine that best fits what you know. Do not try to reinvent the wheel.
Usually I would recommend Unity 3D as one of the top game engines but you seem to actually be over-qualified, which is rare. Look for a game engine which is heavy in C++ for the core and at least one other language (such as C#, Python, or Lua) for the game function scripting, particularly end-user functions to be scripted. I assume that you have little or no 2D and 3D graphics art experience so you need to find a game engine with a big community of artists to provide you with assets at least in early stages, but you can use place-holders in Alpha versions of a game.
Think very much in terms of assembling a total workflow pipeline, with early emphasis on model and texture file formats, GUIs, Class Files, physics libraries (such as Bullet Physics, or other), dlls, and increase complexity with version control that is similar to what you are already used to using, like Git or something. Broaden your scope of development early but simple and increase complexity with following cycles of development in versions of the game source code. Use as many already existing libraries under legitimate license as practical. As if this is not already too much, do not spread yourself too thin and take too much or you will screech to a halt and have to reassess your strategy. If your early iterations are very simple but increasing with new versions then you should be alright. Place holders are very important so you don't spend too much time on art assets in early iterations.
An experienced coder like you needs to know what types of things are in a 3D model folder. For example, a model folder for an army tank might
have the model file, texture file, material file, various map files, animation files, effects file, sometimes a model configuration file, and potentially a few others. The 3D model creation software such as Blender, Maya, 3DS Max, and others can usually be manipulated by you to include all of these into one model folder (for example: tnk1, tnk2, etc. - the names of them) but in some cases place a particular file such as the texture file outside of the model folder if needed by the game engine or needed for modding (open modification). Game engines have these specifications according to a workflow pipeline as expressed in the documentation for the engine and you can get help from the community around the engine, too.
Look at Unreal (UDK), Torque 3D, Unity 3D, SFML, and CryEngine as your first priorities for consideration, in your experience situation.
Set achievable weekly and daily goals and be sure to keep it satisfying and rewarding.