I'll put my 50 cents in on this one. Stupid inflation. First of all, watch these 11 videos:
https://www.youtube.com/watch?v=zlsJxSK8tPE
Second, you need to realize that, though they appear similar, ladder logic programs are in fact NOT equivalent to hand-drawn schematics. Hand drawn schematics follow one of two form factors (in general). Either everything is shown in the "standard state" where none of the contacts are actuated, and everything is in its normal, untouched position or they are drawn in an actuated position, where everything is "on" or the switch is in a specific position.
Ladder logic is NOT like this. The contacts are looking for a specific value in a memory address throughout a scan cycle. This can be synchronous or asynchronous, meaning outputs immediately energize if a rung is true for asynchronous, or outputs do not energize until all of the logic has been executed for synchronous. The very first thing you should do is find out what kind of scan cycle your controller has. This is PARAMOUNT and in my eyes the single most important thing to learn first.
Now, lets look at your example of the ladder logic using an NO contact, -| |-. This means that as the rung is being evaluated, left to right, top to bottom, if the value assigned to that instruction is a 1 (or ON, or true), then the rung is true to that point and will continue to be evaluated. So, it does not matter if you are using NC or NO sensors. The important thing of note is the STATE you wish that sensor to be in to make the rung true. You can use an NO contact or an NC contact and get the exact same logical effect.
Watch those videos, start looking at ladder logic in those terms, and for pete sake learn the scan cycle of your PLC. This will help you understand what is going on.