{"id":12069,"date":"2014-03-16T23:18:27","date_gmt":"2014-03-16T21:18:27","guid":{"rendered":"http:\/\/mozaicworks.com\/?p=6392"},"modified":"2014-03-16T23:18:27","modified_gmt":"2014-03-16T21:18:27","slug":"coding-with-a-stranger","status":"publish","type":"post","link":"https:\/\/mozaicworks.com\/blog\/coding-with-a-stranger","title":{"rendered":"Coding with a Stranger"},"content":{"rendered":"

Romanians have a saying: \u201cSkills are not learned, they are stolen\u201d. We believe this is true about programming skills as well, so we strive to create opportunities for programmers to steal skills from one another. \u201cCoding with a Stranger\u201d is such an opportunity.<\/em><\/p>\n

A Personal Story<\/h2>\n

I will make a confession: I\u2019m an introvert programmer. I love quiet environments and social interactions consume my energy. But I came to value social learning through some of the experiences I had.<\/p>\n

1. The Mistake<\/h3>\n

My first large software project was developed for a French company on a consulting job. I worked there for more than a year, directly with the product manager and developed alone most of the application. At the end of the assignment I realized I made a big mistake: the user interface was strongly coupled with the database and therefore the code was not at all modular. I was honest and confessed my mistake. I also decided to never make it again.<\/p>\n

2. The Mentor<\/h3>\n

My second large software project was very different. The technical lead of the team was an amazing developer from Belgium, and he ended up acting as my mentor. Part of our work was to develop a NoSQL database (before the concept existed) and wrote our own unit testing framework because there wasn\u2019t any for C++. I made it certain to steal from him as much as possible, and I\u2019m still basing my technical decisions on the things I learned back then.<\/p>\n

3. The Enlightenment<\/h3>\n

Later I learned from Corey Haines and JB Rainsberger another way of looking at code. I started to understand what I need to do to change code fast, no matter how adverse are the conditions. I was already doing\u00a0refactoring<\/a>,\u00a0unit testing<\/a>\u00a0and following design principles, but I learned what it takes to move to the next level. The code that I write today is much more different and much easier to change than the code I used to write.<\/p>\n

These are three defining moments that showed me how much I can learn from people with different experiences. While I am still an introvert and I still find it tiring sometimes, I take all possible chances to write code with strangers, either at conferences, at \u201cCode And Beer<\/a>\u201d or through remote pairing sessions.<\/p>\n

Code with a Stranger<\/h2>\n

This is why we decided to have as part of the\u00a0I T.A.K.E. Unconference 2013<\/a>\u00a0a \u201cCode with a Stranger\u201d event. Here\u2019s what will happen:<\/p>\n