February, 2010

Feb 10

Speaking at the Boston .NET User Group

I’ll be giving my widely acclaimed “F# and You!” presentation at the Boston .NET User Group on Wednesday March 10th.   There will be chills, thrills and spills as programmers watch their parallelism and asynchrony problems melt away.  Strap on your recursion goggles for in-your-face .NET functional programming action.

Slides and samples will be available here after the talk.

Feb 10

On Finding Mentors Through Issuing Challenges

I hear it again and again: the key to a successful career is in finding good mentors. According to the Women in Tech panel I attended at PDC, lack of female mentors is the number one reasons for our gender dichotomy in tech.  I’ve also seen much of my success through mentoring. Were it not for Steve Hawley and Lou Franco at Atalasoft, the paths to accomplishing things like applying for a patent or speaking at an event would have continued to remain a mystery.  Once something has been shown possible it becomes much more accessible.

So, how to find mentors?  As with anything people related, it’s all about generating good feelings. Consider two ways to accomplish this:  Making a personal connection and offering a defeatable challenge.

Finding Mentors through Friendship

Make friends with someone more knowledgeable than you and of course that person will want to share their knowledge with you. It’s always good to invest time in getting to know those who are more experienced. This can be accomplished with something as simple as asking someone if they’d like to go get lunch. This is the traditional way to find a mentor. It might even be considered common knowledge.

However, as you accomplish more and more in your career, the mentors you need are busier and busier people and thus harder and harder to gain access to. How might you incentivize them to spend time on your education?

Finding Mentors through Challenge

This one only occurred to me recently and was the impetus for this post.  The idea was inspired by the recent exchange of posts by Chris Smith and Brian McNamara on the F# Team. Through a series of technically escalating blog posts each out-optimized the other.  What better way is there to get someone to spend a lot of time on teaching you than to challenge them on a topic they know well? Nothing motivates like a challenge to the ego.

Did you ever get in a fight with someone in grade school and become fast friends after? I know it happened to me. When the victor reaches out his hand in friendship to the bested, acknowledging their strength in offering or standing to face a challenge, a strong bond can be created. The victor is now the mentor, the bested the student.

The big risk in a professional setting is in how things work out afterward. If things get too intense your relationship might be damaged. I believe this risk can be measured in terms of the work environment and how used to conflict the members are. If a large amount of tension was a allowed to build up before the challenge, people are likely to take the challenge personally. However, if things have been kept playful with a small amount of constant challenge, escalating is much less likely to have any repercussions.

Feb 10

Heading to the 2010 Microsoft MVP Summit

Tomorrow, at the ungodly hour of 6:00am, I will be boarding a plane headed to Seattle for the 2010 Microsoft MVP Summit.   This is my first year as a MVP and, like becoming part of any new ecosystem, it comes with a mix of excitement, anticipation and trepidation.   It was easy to feel like a rock star at PDC but the MVP Summit is essentially the Microsoft Ecosystem’s rock star conference.   I’m sure to meet many people with experience and wisdom far beyond mine and who also are able to articulate it well.

I think a reasonable approach is to meet as many of these people as possible and learn all I can.   As one my favorite quotes goes:

“Employ your time in improving yourself by other people’s writings, so that you shall gain easily what others have labored hard for.”
— Socrates

Although, it is my experience that reading is a poor substitute for discussion.

Feb 10

Professional F# 2.0 in Progress

Over the past few months I’ve been hard at work on Professional F# 2.0 for Wrox.

Describing functional programming to an object oriented audience is a major challenge but I believe I have risen to it well thus far.  The main issue stems from the fact that functional programming is so different and most of the ideas encompassed by it are difficult to extract alone.  I know it took a lot of “A-hah!” moments before I really understood even the basic underlying paradigm.  The goal now is to make the idea gained in each of those moments explicit, at least in the context of the F# language.

Well, time to get back to business.