Programming As Lifestyle

This is a bad name--it brings up visions of late nights washing down stale pizza with caffeinated beverages while trying to find that one last bug, but...

I would like to explore not so much programming itself, as much as its effect on the programmer.

A subgoal is to enumerate how being involved in the creation of software changes the way one perceives the world. The ramification of the crossover between life experience and software architecture, methodology, mentality, process, etc.

The final goal is to expand the collection of patterns, processes, etc., by stripping the anthropomorphic elements from the metaphors discovered in this process.

I know this sounds a little bit like someone trying to complement a Vogon on his poetry, but I'm serious.

-- BobBockholt

Perhaps you can start with an example?

[See also PrologFitsOurMentalAbilities, LifeAsCode]
Especially if you do things like database programming you naturally have to model everything as classes, structures, schemas and tables so it creeps into daily life and you tend to want to write programs to manage everything. I find I don't trust off the shelf programs such as contact managers as you know you could do better (why has Outlook formerly MS Schedule still only have 3-5 levels of priority?). Paradoxically such programs are difficult to write properly so things like PersonalWiki s come in handy. Alternatively you want to get a break from computers for managing daily life many gravitate towards things like PersonalAnalogDevice s, but at the MentalModel level you are still thinking in design mode. You do it even uncounciously - InstinctAsIntelligence. If you've done ArtificialIntelligence it is even worse you start with SemanticNet s and SymbolicLogic. For me because my personal goal is to be able to program any kind of application if needed, I like to practise modelling everyday domains and activities - budgeting, contacts, bookshelfs, shortest routes to drive, movies-to-see etc. I like XpAndUml even if it does not end up as code it could if I wanted. Also to look at examples from on all manner of fields such as Biology, Economics, Physics, Chemistry and do ClassDiagrams for them though my day to day programs are more business oriented (at this point in my LifeVectors). Even politics the leaders speak but what went into composing a speech by their writers, the whole dynamics of power, military decisions and world affairs - there are mathematical models for these (EigenValue s anyone?) which if you are familiar with them are easily translated to programming contructs.

Very early in a new project I like to ask myself, and others, questions like, "How many people with pencil and paper would it take to do this kind of job? In what ways will end user experience with this product be better or worse for not having a real person to talk to?" This often helps the team see the futility of putting in lots of convenience features that end up being inconvenient and frustrating. It puts the work in a human (humane?) framework. -- Bob Bockholt

ProblemSolving. Over several years I have found that I use thinking that's very similar to programming in solving life problems. Little things like extra attention to exception handling, proper sequencing, veracity of assumed data, and modeling the problem as much as is feasible before committing resources (like time and money).

When I was much younger, I tended to use chess and other games as a meta-thinking model. The problems that this created were less about things you have to solve to live, and more about GamesConditions? (the ZeroSum kind) with people. Not all of life is adversarial, and using OppositionOriented? gaming as a foundation eventually loses.

Chess doesn't prepare you for situations where you have to deal with dynamics larger than competing.

Programming allows planning in broader contexts, provided you allow yourself to get beyond simple mechanics.

-- GarryHamilton

I had some friends who became obsesive GoGame? players for a while. When they began to notice that when standing around talking they took up positions with respect to one another and their environment that were 'defensive' or 'offensive' in terms of game positions according to their role in the conversation. Moral: Don't get too obsessive. -- Bob Bockholt

Gee, thanks everyone. I'll see if I can begin to distill some of this stuff into what I think I'm looking for. As for you others, please don't hesitate to contribute! -- Bob Bockholt

See also WeirdDeveloperDreams

View edit of April 27, 2005 or FindPage with title or text search