Software and Computer Engineering

Approaching Programming From First Principles

A possible approach to programming is the “throw mud at the wall and hope it sticks” approach. This consists in the following steps:

The approach which I think is more technically sound goes as follows:

I find the second approach to have the following advantages:

I believe the value of reasoning from first principles -- as represented by often starting a reasoning from a smaller set of “solid” ground -- is that we keep refining and deepening our understanding about the fundamentals by continuously challenging it against new scenarios.

While the particular applications, problems and solutions do change over time as the computing industry evolves, having a firm grasp of the fundamentals undoubtedly pays dividends over time.

Reasoning from first principles succeeds where the “analogy” approach falls hostage to being presented a similar previously achieved solution. It allows one to tackle novel problems with confidence.