You must first decide what your requirements are.
Yes that's an obvious statement but not many people actually work out their requirements until their project is finished!
Do you want to run the entire layout yourself, on your own with no assistance whatsoever. If so then you probably needn't bother reading with rubbish as it won't help you much.
Do you want to drive all the trains yourself, but have the signals change on their own, based upon how the turnouts are set, where the trains are and where they are going?
Do you want to drive the trains yourself but have an automatic system that attempts to prevent collisions, perhaps by cutting power to a track if the train there is about to run into another train ahead of it?
Do you want scenic items (level crossing gates, street lamps, motorized fairground rides) and railway sounds to operate to a coordinated schedule, and synchronised to the railway?
Do you want an automatic shunting movement list, coordinated between several operators, but using computer displays instead of the usual ring-bound pages?
Do you want to drive some trains, but have others running automatically?
Are you part of a club that runs a large layout at exhibitions that needs several operators. If so are there times during exhibitions when operators are in short supply, or would prefer to take a break but thers no-one to stand in for them. Might it be useful for each operator position to have an 'autopilot' that could take over smoothly and interact with other operators (both human and automatic).
Would you like to sit back and just watch the trains go by occasionally?
Deciding what you want to do, both now and what you might like to be able to extend to system to support in the future, is a critical step. Unless you are absolutely clear about what you want to achieve then you'll wander aimlessly in the dark.
Once you have an idea where you want to go the most important thing is to figure out what hardware you need. By this I do NOT mean computer hardware - that comes later. Most important is deciding as early as possible what interfacing is required between layout and the control system. That means what type of sensors, how many and where they have to go; where does the track have to be segmented; how do we feed power to the track; and so on. Changing your control system later is relatively easy but adding sensors and changing track segmentation after your scenery is finished is rather harder (here I am assuming that you don't rip-up and re-lay track for the fun of it).
By now you should have an idea of what the control system needs to do, and have probably got some fairly set ideas of how to implement it. Stop! Step back and assume that all those ideas are wrong. Try to consider how you might connect your layout to all conceivable control systems, including:
Hard-wired logic (or transistors)
Reprogrammable logic, or local micro-controllers
A central computer
A network of computers
I am certain that you 'know' that you don't want and will never want three of these four options, but I suggest you speculate for a few minutes what would happen if, in a years time you realised belatedly that you have to 'upgrade' to the next one down the list. Perhaps you get everything working and then decide you want some fancier behaviour, or more extensive control panels that might be messy, if not impossible with your chosen system.
For example you 'know' that you should use a micro-controller - imaging how you would connect a computer instead. If you design your wiring harness and interfacing hardware suitably then at a later date you could change your control system with a minimum of fuss, perhaps even being able to swap cables to switch between the two while the new system is being developed.
My system, for example uses a single control computer, but I occasionally check that if I run out of steam on that machine, or want several monitors, or whatever reason that I could feed different parts of the layout to different PCs to distribute the load. I haven't the foggiest idea why I might do such a silly thing, but then predicting the future was never one of my skills (if it was then I'd have won the lottery a few times).
Feedback
Personally I would not dream of attempting to control anything as unpredictable as a model railway without adequate feedback. Solenoid driven turnouts are only 99% reliable, tracks get dirty, locos move at different speeds for the same throttle settings as they warm up (even with feedback throttles). Unless you want to have trains stop dead when they hit an unpowered section, and then connect power on a strict timetable (with the sudden stop-starts that would entail) then I suggest you need feedback.
Section 1:Sensors discusses types of sensors and what you can do with them.