I don't think it's abstract. It's like anything else: break a larger problem up into smaller problems and work on one piece at a time, with thought towards piecing it all together.
I'm no programmer but I think the hardest part is grasping concepts/technologies and how many there are.