Introducing eXchange

I’d begin with a story. It’s about the apprentice.

We all know apprenticeship. It’s the trusted method of knowledge and skill transfer in the craft industry for a long time if not forever. When a kid wanted to, in the future, practice as a craftsman of whatever sort, they were put under the tutelage of a master of a guild. If the master of the guid accepts them they become his apprentice for a specific period.
During that time, the apprentice has the opportunity of working side by side with the master and learning his skills, techniques, and thought-process so they can become better at the craft. It was not the master’s responsibility to ram all those into the apprentice’s head. No. The apprentice had to, via observation and participation, learn the art and craft of their master so that when time comes for them to begin their journeyman years, they’re good enough to survive. Craft apprentices learn by observation and participation at a master’s workshop.
Let me not ramble on. You get it. In so many ways the practice of programming and software engineering is more of an art than a science. It’s a craft. And like any other craft, mastery requires paying rapt attention to masters while they delicately create interactivity using just HTML, or as they industriously yet elegantly conjure addictive games out of mere JavaScript. Good software is a masterpiece. And good software is what we only want to build every time. In that case we should be apprentices at some master’s guild, right?
We know we should sit by Jeff Dean‘s loom everyday. Or join Edem Kumodzi at his workshop and understand why he chooses a specific way of solving a problem over your favorite. And diff and learn. If you’re lucky to have a master as a workmate, awesome, but not everybody does. So we thought about it.
And we came up with DevCongress eXchange. A remote hangout session with people who have distinguished themselves in programming and software engineering. During the session, we’d have the opportunity to:
  1. Get answers to matters of personal growth and development as a programmer
  2. Know best practices in programming concerning dealing with people (teammates and clients), tools, deadlines, etc.
  3. See a live demonstration where our guest loud thinks while they solve a problem. During this last session we should expect to pick up
    1. programming language tips
    2. text editor (or IDE) tricks
    3. proper problem decomposition
    4. better solution planning and execution
    5. how to accept failure (or discover an intractable problem)
    6. how to celebrate your victory alone or with your team
eXchange runs monthly, via Google Hangouts.
Our expectation is to be noticeably better than we were after every eXchange by quickly assimilating whatever is new and better into our routine. We already have suitable guests in mind but we’re also open to suggestions, especially when you can help us get them. Do you have anybody in mind you’d want us to learn from? Let’s talk in the comments.