Programming is a big plus as it gets you the right mindset to use the tools made by the programmers to design (map maker, scripting language...), and make your own later. UDK is not a final part, it's actually where you start. If your trying to mod it through coding (player physics, graphics(shaders and so on), menus, interfaces etc.), I have no idea yet, though I'm willing to learn.
UDK is a Software Development Kit, and as with other devkits like Valve's new SDK, it is a collection of tools to help you realise a mod or a game. With it you can make maps, meshes for maps, models, animations, etc. Once you get your hands dirty with some modding, to any degree, you'll understand a little more how the game actually functions, and see it's more of a program than anything else (obvious scripts, repetitive models and sounds, map gimmicks to make you think the play area is vast or cyllinders are perfectly round (when they used to be octagonal, and today's aren't much different). You'll have to adopt this analytic way of seeing the levels, as it's very important to hide and to exploit the game's engine as much as possible to give the gamer the best impression possible of what you are trying to portray in that level.
I'm very interested as well. We could start a mod project if your willing, many developers learnt from smaller steps like so. A mod, specifically a total conversion, is practically a new game, with a standardized base to work on (game engine + SDK).
Myself, I preffer Source SDK, as I've learned a little Hammer and haven't played Unreal 3. I'd try to convince you to start with Half-Life 1 as it is easy and simple but outdated as far as graphics and physics and all the little things in between go (mapping problems, NPC paths get affected). Anyway, I love the gameplay of Half-Life, I've played quite a lot of mods, some mindless killing simulators, some inspiring stories told through first person interaction, some in between (like Half-Life is :D).