One of the great things about being a software developer is that one spends an inordinate amount of time not just manipulating abstract symbols, but also getting those symbols to produce useful output when executed by a machine. When we're programming 'in the small' the two phases do not have much distinction between them but in the large, the former activity is often termed as the 'architecture' or 'system design' phase.
Architecture is something that all programmers do and have done, in big or little ways. Deciding where to put a function is also a form of architecture (ok, interior design, but you get my point). And all of this is great fun and games until suddenly we hit the Engineering Manager level and we forget everything we learned about turning abstract symbols into useful output.
No sooner do we have to deal with people than we revert to the ways of civilians, those who have not seen the power of running text through some form of interpreter.
Read on to know more! 👇