I have a limited amount of experience with this, and what I do have can hardly be called rigorous. I've only done relatively simple research.
I'm not sure you can call my approach academic, and it doesn't always work out the way I think it will, but I try to break down the learning process into steps, and start my network with a neuron for every step (not counting the input and output layers.) The arrangement isn't necessarily a linear one though - that is to say, you'll usually find some steps need to be made concurrently. Other steps that appear to be a single evaluation point, end up being multiple evaluation points (the reverse is also sometimes true.) Then tweak until it works
A word of warning about my advice though, I tend to be a little to boolean about things, overtrain, and spend a lot of time reinventing the wheel.
There is surprisingly little literature available on ANNs, at least that is understandable by a reasonably well-educated lay person.