Part of the magic of software development occurs when lines of code alchemize into more than the sum of their parts. You'll find you need some amount of creative visualization when trying to build abstractly in this way. This can be true for word processing or web design, just as it can for programming.