January 31, 2013
Yes. Architecting and designing a product are creative processes that require an appreciation for mathematic aesthetic as well as engineering that requires building a sound design that is resilient and extensible. Programming is a craft skill that is only improved with regular practice. Testing and analysis require performing experiments and analyzing data, much like a science.
Design patterns and design principles have always fascinated me. Sometimes people discover incredibly elegant solutions to software problems and I would love to hear from people who do just that. I also want to increase my familiarity with the myriad of technologies that are available to our craft.
I think the synergy between the opensource movement and interconnecting many small, discrete software components is finally starting to turn into the revolution OO programming promised in the early 2000s. We all heard about how OO was going to change the way we work with software and everyone would be contributing their own objects into a global pool of objects. OO programming didn't deliver that dream. Instead github and bitbucket in conjunction with sound opensource programming is creating an environment where the number of software tools available to solve any given problem is immense. This could very well be the beginning of another digital revolution.
A computer science graduate (and I have a BS in Geology) who spent some time as a graduate student developing an online visualization space for scientific data.