a little programming history

I remember the first book I ever read on programming:

  • Publisher: Macmillan Digital Publishing (September, 1995)
  • ISBN: 1568302371

I was intent on programming and read this book twice. It was a little difficult to understand because I didn’t own a computer at the time. Eventually, I managed to get my hands on an Apple Macintosh 9800 and a copy of CodeWarrior. After that I quickly moved on to this book:

  • Publisher: Wiley Publishing; Book & CD edition (December 20, 1995)
  • ISBN: 1568843496

I’m not sure how many times I tried pushing my way through this book. It was very difficult because I was trying to build applications using the Mac Toolbox before I knew a programming language! I look back on myself and laugh. It was quite fun to deduce fundamental programming constructs in realtime.

on laying concrete

Substantial applications require a solid infrastructure. An infrastructure or framework dictates the organization and interaction of core components. The design of a framework and the derivative applications to follow is an expression of art.

Software is built in small incremental steps, layer upon layer. The layout and modularity of these layers or building blocks will affect every facet of development from that point on. Careful consideration must be given to laying a solid foundation. The underpinnings of your architecture can ease further development or hinder it. Think about it. The way in which you structure your application today may grind development to a halt tomorrow. It may become too costly to extend the system. Even worse, the system may become completely unusable beyond a certain point.

Unfortunately, doing things the wrong way is often the case. This is expected because the problem domain is fuzzy. As development continues the picture becomes clearer and the problem crystallizes. A well-defined problem reveals a well-defined solution. Code must constantly be refactored as new insights are brought into the fold. Charge off into the unknown. Just make sure you come back and refactor what you’ve learned into an elegant solution.