Thinking linearly and like a flow chart was key when starting out. Later, parallel processes, multiple cores, multiple workstations and networking and prioritizing or load balancing and all the things to control traffic, share resources, all adds to the complexity but also versatility and design freedom. Sometimes it makes your head hurt but careful design and documentation will make it all easier.