Accidentally in Code

Author Archive

Website is finally up! Let me know what you think – www.catehuston.com

My blog has also relocated to www.catehuston.com/blog so please update your RSS.

I’m spending a lot more time teaching other people to code than I am actually coding at the moment.

Whilst I like teaching, this is not at all in line with how I want to be spending my time.

I TA a mandatory computer course in the management school, and I have a friend taking another mandatory programming course for Engineers. The course I TA teaches VB, and the Engineering course teaches C.

These students aren’t stupid, the students learning VB only have to ask you whether you use VB (of course not, does any self-respecting programmer?) and they know they aren’t learning anything that can’t be done using the built in functions in Excel. The students learning C notice that their TA’s (and the prof) keep accidentally giving them Java code. According to O’Reilly, Java has been overtaking C++ as a teaching language for over a decade. Why are these courses so behind?

I think this is a missed opportunity. Students taking Computer Science have signed up for a degree of torment-by-compiler. These students have not. Instead of a course that they hate why not take the opportunity to create a course that excites them about the potential of programming? Instead of alienating them about the whole concept you motivate them with the reasons and real world examples for why programming is a useful skill to have?

For instance: mashup creation, simple scripting, what an API is (and how to make calls to it), web apps.

Yes, it requires more creativity in course creation. Yes, it may require the people teaching these courses and the TAs to learn more skills. Maybe before it didn’t make a big difference to send a bunch of students into different fields with a hatred for programming. In the new reality though, an understanding of programming and why it is useful would potentially give them a big head start.

What do you think?

I’m fairly outgoing – I mean, I moved to another country knowing basically no-one. And I coped. But it’s easy to meet people when you’re a student, and there are a lot of international students here who know what you’re going through. So it’s not been that hard for me to build a group of friends. Meeting people outside university though, is harder and scarier. It took me ages to connect with people I met at kickboxing outside the dojo, for example.

At my first conference (MCETECH), I met someone who suggested another conference (FOSSLC) and then I went to that as well. Another person at that conference followed me on Twitter, and we started interacting, and after a while, hanging out. And then I went along with her to an Ottawa tech event (Democamp – I blogged about it here), where I met some more people, discovered that there are a lot of tech events in Ottawa and also an easy way to find them.

Since then, I’ve been to Ignite and last night I went to Teamcamp. One of my friends went to Ignite, as well as one a guy I met at Democamp and had been interacting with on Twitter. Teamcamp was new, because I didn’t really know anyone there, although there were a couple of people who I’d talked to on Twitter. I nearly flaked, because I haven’t been feeling well all week, but I told myself to snap out of it and set off. And then I got lost in the rain because Google maps was confused.

But once I made it I had an awesome time, met some cool new people and really enjoyed myself. I’m really glad I went!

I guess I’ve accidentally given myself a crash course in “Networking”! Here’s what I’ve learned.

  • Going with someone is fine, but try and come away with one or two new connections.
  • It’s OK if you’re not comfortable working a room, connecting with just a few people is still connecting.
  • Follow up – see how you can help someone and pass that information or contact on. Add them on Twitter and LinkedIn if you want to as well.
  • If you’re nervous, connect with people beforehand on Twitter. Find out the hashtag and tweet about it.
  • Be interesting – have something you’re working on that you can talk about. Be passionate about it!
  • Listen. You’ll have more to talk about later (and if you end up in the vicinity of a presenter, something to complement them on!)
  • Go for it! Most people are nice, and are probably going to these events hoping/expecting to meet people too.

Anything I’ve missed?

There are many things that make it difficult to move to another country. Finding somewhere to live and dealing with not having a credit rating any more are two that spring to mind. Ikea is another. Then there are smaller, but still annoying things – like the fact that your DVDs won’t play on your DVD player.

There are many things I miss about living in the UK. My friends, family, and Smart car of course spring to mind. At this time of year, the more temperate climate is a big one.

There are good things too – it’s a challenge! Meeting new people. I get a big kick about how people dig my accent – a double, because they like the English-English one and the French-French one. Change of scenary. Nicer summers. Beautiful fall. Different attitude. Different lifestyle. Great Asian food. All in all, these outweigh the things I miss.

Sometimes though, I get a little homesick. The first time it happened my roommate (who later went completely bonkers, but that’s a whole other story) came home to find me in tears because I couldn’t order pizza – I’d called the two big international pizza companies and after much kerfuffle with them not understanding my accent/not knowing where I lived because I lived in a new building/me not knowing where I lived in relation to wherever they were talking about, I’d given up.

My roommates and I would celebrate/commiserate/relax with pizza and a girly movie. Any movie in that period you’d be ashamed to rent from Blockbuster, I’ve probably seen. And liked. We also watched a whole lot of Charmed. So whenever I’m feeling a little overwhelmed or run down, I want to kick back with my roommates and a double-decker with extra cheese, bacon and chicken and BBQ sauce. But I don’t have roommates, I have a boyfriend who loathes these kind of movies and we don’t order pizza, because Greek food is healthier.

Finding new habits, rituals, is hard when you’re starting from scratch. Finding people you can turn to when you’re having a bad day who’ll listen, and sympathize, or just watch a terrible movie is hard, and I know I feel like I don’t want to impose. But little by little, I’m building a life here. It’s scary, and it’s stressful, and it’s hard… but the adventure is worth it.

Tonight, I ran my first workshop in Wave. It was nice to have a space to discuss things, and unlike in a chat client it’s easy to indicate what you’re replying to. What I did was create a slide deck and make it available the day before. Then on the day, I was available to trouble shoot. The slide deck was fairly comprehensive (see it here) so I encouraged people to work through it at their own pace, whilst I clarified and helped with issues that arose.

Screenshot below shows mutiple threads of conversation happening simultaniously:

Multiple Conversations

Multiple Conversations

It’s also really easy to drag and drop screenshots, so that can help me see where people are at, and what could be going wrong.

Drag and Drop Screenshots

Drag and Drop Screenshots

Wave has nice indentations (kind of like we indent in Java!) that show a diversion:

Indentation shows the flow of the conversation

Indentation shows the flow of the conversation

Finally, trying to schedule when everyone can make the next session can be difficult – but Widgets sure make it easier!

Widgets help with scheduling

Widgets help with scheduling

So, all in all, wish Wave was faster but I think it was a success. Hopefully as people build up more knowledge they’ll discuss amongst themselves more. We will leave this wave going as people work their way through the rest of the slides (and I can help if necessary) and move to a new wave for the next session.

I’ll keep you posted about when that will be – and will put the slides up here soon!

Thanks to everyone who participated.

This was discussed at the WECS meeting this week, there’s a new attention to it as the number of women enrolled in undergraduate programs from a high of 20% to 17%. See the full report here. Recommendations are as follows:

  1. Raise the profile and improve the image of the profession.
  2. Explore how engineering curriculum and its delivery could, without compromising the high standards of the Canadian system, become more attractive to a greater diversity of students.
  3. Demonstrate the value of diversity in engineering education and in the workplace.
  4. Help better prepare female engineers for the workforce.
  5. Promote information-sharing on mentorship programs and the importance that mentors have in the attraction and retention of women in engineering.
  6. Work with industry on methods to help improve the retention of female engineers in the workforce and diversity in general.

I’m particularly interested in 1, 2 and 4.

1. This makes me wonder, is the lack of women self-perpetuating? Few women go into it so few are inclined to? Why is biology succeeding to attract women, where engineering fails?

2. Most beginner programming courses I’ve seen fail to engage. One thing I see regularly is having a solution (what you want to teach) and trying to twist a problem to fit it. Finding the right problem makes the solution seem much more intuitive. Also, making stuff that has no bearing on the real world. That’s a big one. Innovative curriculum designed for engagement could go a long way, I think. In Computer Science, particularly teaching Java, there’s no excuse not to do this. There are so many free and open source teaching tools out there.

4. It’s tough to work in a predominantly male environment. I’ve done it – the only other girl was the secretary. As nice as the boys were, it can be difficult. I’m hoping WISE can put together a workshop for this.

Let me know what you think, and how WISE could help!

I don’t know what to think anymore. Too much information from all sides, some positive, some not so much. Today in the space of 10 minutes I came across these two things, one positive for equality – the other, not so much (although the video is charming).

Positive – Marcus Buckingham writing in the HuffPost – men are becoming more like women, with the work-life balance stresses that go with that.

Not so much – KIRTSY Takes a Bow.

 

Tomorrow I’m running an introduction to Java via Wave. Because I’ve had a degree of interest from non-complete beginners in learning Processing, I’ve split the content so that one session will be Java: Building Blocks which will teach the very basics of Java but does not introduce Processing, and the other session will be An Introduction to Processing.

Java: Building Blocks covers the very very basics of Java – writing your first program, primitive types, conditions, and loops. At the end, we should be able to make a simple Hangman game using a framework I will provide.

An Introduction to Processing will cover getting started with Processing and be suitable for beginners who have gone through Java: Building Blocks but hopefully won’t be too dull for more advanced programmers. It will take you through creating your first little Java applet in Processing.

I’m taking suggestions for Topics, but things I’m contemplating are:

  • Java: Next Steps – covering arrays, multidimensional arrays, Objects, more on functions (passing arguments etc). Finishing with a TicTacToe or Pacman game (I have frameworks for both of these).
  • Test Driven Development and Exceptions – throwing and handling exceptions, writing code to pass test cases. Working on a Blackjack game.
  • Creating games in Processing – detecting key presses etc.
  • New Since Java 5 – Generics, enum, for each, etc.

Slides for Java: Building Blocks can be found below. As ever, I really welcome feedback!

There are two things that are almost guaranteed to bring out the giant ***** in me. One is people who accost me in the street trying to convert me to one religion or another (it’s amazing none of them have punched me for suggesting they’re mentally ill). The other thing is sales calls.

I think this allows me to be nice to almost everyone else, even when they’re being annoying.

Anyway, this morning I got a call from the Ottawa Sun, asking if I wanted a trial of the newspaper for as little as $0.20 a day. I said,

My boyfriend and I are 24 and 28. I don’t think either of us has ever bought a newspaper, apart from The Economist. We get all of our news online. So I don’t think we’re really your target market

This guy he took it really well, laughed and complimented me, and told me his kids were the same way.

I was talking to Treena the other day about her start-up, Betidings. She observed that the people who had really “got it” were my generation.

Now, it seems obvious. People used to hear about events in the paper (perhaps some people still do). However, I don’t know anyone who reads a paper – I’m the exception, and I only read the Economist! We get our news from various sources online, and hear about events from our friends or via Facebook or Twitter. But you can’t export Facebook events to your calendar and Facebook doesn’t really display them that helpfully either. The thing about Twitter is that in order to hear about events someone is going to you have to be tuning in to everything they’re saying, and even then you may only hear about it on the day (when it’s too late to get tickets). Betidings means you can just tune into their calendar. That’s kinda awesome.

I think newspapers will die, but I also think that presents an opportunity to those willing to look for them. Betidings is one such example. Do you have another?

Check out what events I’m going to through my Betidings calendar.

After I gave my presentation the other week, someone asked a question. It was:

So, basically what you’re doing is data-mining?

And I said, no, well yes, but that’s not how I think about it. I see it as creating something that will help people understand their use of Twitter. The fact that I achieve this by data mining is by-the-by.

Maybe when we speak to other programmers it’s OK to say something like, “I’m data-mining social graphs in Twitter and visualizing them” but when we speak to our users, that may not mean very much to them. What’s more, I don’t think I would have come up the idea to do that if I’d gone to Twitter with the intention of data-mining. This didn’t come from me as a programmer with an interest in data-mining, or an interest in visualization (as an aside, I took a course in visualization at Edinburgh and hated it. Mostly because we were coding in Tcl). It came from me as a Twitter user, wanting a better way to measure engagement than followers/following.

Yesterday, I wrote a little bit about the journey that brought me to Ottawa. I think I’ve finally realized what I’m passionate about. It’s people. It’s users. This is why I’m so fascinated about what I’m working on right now – what’s more people than social networking? It’s also why I’m so interested in Usability. I’ve read every article on Don Norman’s website, I find usability so interesting, so important.

I’m passionate about giving users what they want – that’s usability, better ways to display data, etc. That’s creating the things they say they want.

Even more so, though, I’m passionate about giving user what they want, that they don’t realize they want yet. In small ways, that’s telling people who are emailing spreadsheets about Google Docs, or explaining to someone frustrated by their web designer about the simplicity and ease of use of WordPress. In bigger ways, it’s been taking a mess of spreadsheets and turning it into a database that can answer questions that users hadn’t even thought to ask. It’s been creating something that’s can make you really aware of your conversational network, and encourage you to talk to new people (the most rewarding feedback I got was from someone who told me they were now making an effort to speak to more people after seeing their graph). I hope these things are just the beginning.

So, what do I want to be when I grow up? I want to be a programmer who speaks fluent human. How about you?


Archives