Tuesday, September 29, 2015

Online Communities are Why I'm Excited for GHC15

I've attended almost every Grace Hopper since 2008. The one exception was 2011, when I was too pregnant to fly. I found an old blog post about enjoying the conference from afar, where I reflected about being sad to be missing out once the conference started. Since I'll be missing this year as well, it's nice to re-read this:
Fortunately, the very thing that I have worked so hard to make awesome when attending GHC in the past is allowing me to enjoy this year's edition from afar: the online communities. 
I have a whole new appreciation for the many awesome posts on attendees' blogs and Twitter accounts. While seeing conversations between all the people I am missing out on meeting up with makes me feel sad, I also find myself vibrating with excitement with all the amazing things happening in Portland. From the wonderful keynote speakers to the fantastic panels to the neat e-textile workshop, this conference must be the best one yet.
While there is nothing at this year's conference on e-textiles (at least, not that I know of!), the conference is once again gearing up to be the biggest and best. Along with that comes our largest set of amazing volunteers ever – they will be giving their time as always to share the conference through our online communities. And so, the reason I'm excited about GHC15 is the fact that I'll have more blogs, notes, and tweets to enjoy from afar than ever before!
Perhaps I'll see you on Twitter this October (I'm @gailcarmichael), and we can share the conference from afar together!

Thursday, September 24, 2015

Beyond the Code: A Day of Diversity and Inspiration

Monday was a day of inspiration and diverse voices.  It was the second annual Beyond the Code conference in Ottawa, a labour of love for a group of volunteers mostly from Shopify.  As described on the official webpage, "Beyond the Code is a positive, solutions-driven conference for anyone interested in diversifying the technology sector. We’re building a supportive environment for underrepresented groups in tech, to help you build a fulfilling career and feel empowered to make positive changes in your community."

The speaker lineup this year was spectacular, and you can read my lives notes for a bunch of the sessions.

The keynote this year was Hilary Mason, lover of data, cheeseburgers, and apparently Red Bull pancakes.  Mason is a self-confessed optimist: she is a believer in technical progress and in the underlying goodness of humanity.  In her talk, she focused on technology, organizations, and people.  Some of the biggest takeaways for me included that data is exciting, machines are getting more creative, and people aren't fungible.

My job at the conference was to introduce workshop speakers and see if they needed any help.  The one I participated in most was a design thinking workshop lead by Barbara Spanton of Macadamian.  It was a really well organized workshop that had participants work through each stage of design thinking to design a new wallet for their partners.  The prototypes everyone created were really quite good!

All the other speakers I saw were equally as awesome – like Kelly Shearon, who taught us how to better value the "less technical" roles on our teams, Safia Abdalla, who shared her insights on how to effectively teach, and Jen Myers, who shared her wisdom on how to be awesome.  The closing panel of the conference, however, was a perfect way to wrap up the day.

Lead by Cate Huston, the panel featured Omosola Odetunde, Kat Li, Tai Dickerson, Lori Olson, and Marco Rogers.  The coolest thing about it was that it did not cover only women as a diversity issue, but also issues of ethnicity, sexuality, gender, etc.  Cate did a really good job of starting where most panels end, and pushing discussion of the issues further than usual.  For example, instead of the conversation devolving to be all about the pipeline, panellists talked about not just hiring, but retention as well.

Again, you can check out my live notes for the conference, which include quite a bit on most of these talks (only the workshop is missing).  Be sure to watch for next year's Beyond the Code, which I hear might even have a new location.  Hope to see you there!

Friday, September 11, 2015

HLF2015 / Fred Brooks on Software Engineers and Teams

This blog post originates from the Heidelberg Laureate Forum Blog. The 3rd Heidelberg Laureate Forum is dedicated to mathematics and computer sciences, and takes place August 23-28, 2015. Abel, Fields, Turing and Nevanlinna Laureates will join the forum and meet 200 selected international young researchers.

It has been over a week since the end of HLF, and I've been settling back into my life as a software developer at Shopify in Ottawa, Canada.  I often find myself thinking back to what I consider to be an epic conversation with laureate Fred Brooks.  With my husband and fellow blogger, Andrew Carmichael, I interviewed Brooks in what was a joint effort.  Brooks was kind enough to spend over an hour with us.  Since I can't possibly share everything he said in one blog post, I've put together a transcript that you can read online, and I've picked a few tidbits to share here.

Because Andrew and I both work as software developers, we wanted to take a more practical, industry-driven approach to our discussion with Brooks.  For example, we asked early on what makes a programmer great.  At first Brooks simply said "too hard" in his patient southern accent with a smile on his face.  He then explained that being able to visualize complex geometric constructs was a pretty good indicator of whether beginners would be good programmers.  We also discussed the importance of teamwork:
I once worked with a colleague when I was a summer intern… this fellow was extremely difficult to get along with.  He was our supervisor to us two interns, and that was fine, but he could not get along with any other colleagues in the room.  His boss remarked one day to the two of us privately, “You know, if we could put him in a box with two slots, one to put problems in and one to get answers out, it would be great!” [laughter] And he was easily the sharpest person in the room, but I was not surprised to learn three years later that when they had a reduction, he was the first one let go in that group. ... We used to get fractional distillation of the nerds [laughter]. ... Now we’re drawing from a larger population.
We also wondered what companies could do to grow recent graduates into effective professional programmers.  For Brooks, the key is apprenticeships.
Only talk to me about the theory when I’ve encountered the problems.  I’m willing to listen to your war stories, but I need to be able to bring from my own background my own war stories to make what you say to me relevant. 
Therefore I would do rotational mini-projects, and I would do rotation definitely so that...well, you know, the same thing they do with residents in medical school.  Go try surgery, go try pediatrics, go try psychiatry.  It will make you in general a better physician in all respects. 
I’m not interested in making people into better programmers, I’m interested in making people better software engineers.
Once a programmer is ready to join a team, there are many skills to learn.  For example, estimating how long software projects will take is a very difficult task for teams.  When we asked about what could be done about it, Brooks gave us this great quote:
One of my friends who was an electrical engineer on the 360 project said there are promising engineers, and there are old engineers, but there are not promising old engineers [laughter] - they don’t make promises!
Of course, how well a team can produce estimates is not the only indicator of how successful they will be (or perhaps not an indicator at all).  We asked Brooks what he would do if he could spend one day with our teams at work if he had to determine whether we would succeed or fail.
Talk to a lot of people [laughter].  One of the things I’d be looking for is how consistent is their view of the goals.  One is: how highly do they respect each other? One I would be looking for is: do they believe in the goals, or is it something they were assigned and not sure they’re going to be able to do anyway? One is: are they excited about the goals? “Yeah, this is going to a contribution, it’s going to be a great system, and I’d be glad to be part of this team!” 
One question I’d listen for, but my presence would interfere, is when they chat, do they chat about work, or last night’s TV? Which has to do with: are they really excited about what they are doing, or are they just turning the crank? 
Purely subjective.
This is just a taste of our interview.  Our conversation took many different directions, winding through topics like education and Grace Hopper.  We were very grateful, however, to be able to bring all kinds of practical advice and insights to our team at work.  Again, check out the transcription of the interview if you want to see more.

Tuesday, September 1, 2015

HLF2015 / Sir Antony Hoare — Theory and Practice

This blog post originates from the Heidelberg Laureate Forum Blog. The 3rd Heidelberg Laureate Forum is dedicated to mathematics and computer sciences, and takes place August 23-28, 2015. Abel, Fields, Turing and Nevanlinna Laureates will join the forum and meet 200 selected international young researchers.

As with my interview with John Hopcroft, I was most interested in what Sir Antony Hoare had to say about computer science education. He was, after all, knighted for his work in education in addition to research. I was also particularly fascinated with his effort to tie academia and industry together, for example by setting up an external Masters degree for software engineers.

©HLF/ / C. Flemming­ - All rights reserved 2015

My first question for Sir Hoare was about whether we should be concerned that undergraduate degrees try to address both theory and practice. Most graduates will go on to work in industry, but many academics seem to believe that they are training students primarily for academia. Sir Hoare's belief (and I happen to agree) is that theory is valuable to learn for all students regardless of their future paths. Learning theory helps you better understand what you're doing by noticing analogies to what you've done before, thus increasing your competence. Once you get into the workplace, theory can make your job less boring: it is fun to see real-life examples of the theory you learned in school! It can also help you understand when the code you write is 'good.'

Next, I was curious what Sir Hoare thought of active learning techniques in the classroom. Though he wasn't particularly familiar with recent approaches, he wouldn't say no to the possibility that they can improve learning. As with anything, if it's done well and in moderation, it can be a good thing. Then again, we can also talk about what makes a lecturer effective on their own: a good lecturer, he says, has charisma and motivates students with rhetoric. Further, the lecturer has many existing tools available, such as textbooks, tutorials, exercises, practical projects, and even discussions (sadly, we never had any of these in our undergrad CS classes). I would love to say that I believe all this is enough, but I have seen firsthand that, for far too many students, it isn't. It will be interesting to see what a typical undergraduate lecture hall will look like in a decade or two.

Finally, I told Sir Hoare that I couldn't not ask him a question about quicksort, but that I'd try to put a different spin on it. (This elicited a large smile.) I have used quicksort as a first introduction to recursion for my students in the past, including for my arts and social science students as they learn the basics of computational thinking. I wondered how he felt about its efficacy as a first example. It turns out that not only does he think it's great for teaching recursion, but he even had some fun ideas for how to do it. One is a wonderful video that explains the algorithm via a Hungarian folk dance. I've used the same set of videos in my lectures, and highly recommend them. Another idea is based on the card game Patience (also known as Solitaire).

It's interesting that Sir Hoare began our conversation with an admittance that he hasn't been working on education the last 15 years, so he thought he wouldn't have much to say about it. As you can see, I once again had a wonderful conversation on the topic, and am very glad to have gained some insight into Sir Hoare's thoughts on theory and practice in computer science education.