In some circles, Perl gets a bad rap as the language of geeks with grey beards too young to know COBOL. In contrast with this Perl archetype is Emma Howson. I met Emma a year ago when I taught her Perl as an IT Graduate at Net-A-Porter. She's now a full-time Perl developer helping me out with teaching this year's grads. For the benefit of people trying to decide whether to learn Perl at the outset of their careers, I spent an hour learning more about what makes a graduate Perl developer.
AS: Emma, where did your interest in programming start?
EH: I actually remember the time my parents bought a computer and I thought it was the most amazing thing. I’d spend hours and hours trying to figure out how to use it. Then when I started IT lessons at primary school I would go home and replicate what I’d learnt. By then it was only basic things like using Word and clip art and macros and stuff like that. When I went on to secondary school (Dover Grammar School for Girls) I was still interested and I took IT for GCSE and as one of my A Levels. The only problem with that is that IT is based around teaching you how to use Microsoft Excel and Access, whereas Computing would have taught me the basics of coding, but unfortunately a Computing A Level was only available at the boy’s school. There were other topics in IT such as learning binary and some basic theory, which kept me interested enough along with my interest in problem solving and logic puzzles to pick Computer Science as a university degree.
AS: After school you enrolled in a computer science degree at University College London. It strikes me that you must have found it challenging given that you only had the school ICT subjects to work from while most of the other students would have done the Computing course at school. It doesn't sound like a level playing field. How did you overcome this challenge? Also, am I right in thinking most of the other students were male?
EH: When I had my interview at UCL one of the things I raised was the fact that I’d never been taught any programming before. I had bought a Java for Dummies book and was trying to teach myself but I’d only got so far as installing an IDE and getting “Hello World” to print out. They said it wouldn’t be a problem and that the course was taught from the very basics. I was completely reassured but when it got to my first day, I realised that I was one of the very few that had done no programming at all. I think it took me at least a year to catch up and be on the same level as everyone else. It was difficult because at the same time as learning to write code, I had to learn what the concept of programming was and get my head around how the things I was typing related to things happening on a computer. I don’t think I understood how writing Hello World was applicable in the real world, but I eventually caught up in the second year and really enjoyed the rest of my course. And you are right about the male/female ratio, in a class of 50 there were 5 females including me. That was actually a good year. I think in the year before me, there was one girl. But that never really bothered me, I went to an all girls secondary school and then I went to a nearly all boys course at uni so I think it kind of evened out.
AS: Having overcome these challenges, what are your happy memories of the computer science degree?
EH: I have many happy memories of my degree. I think one of the best things I did was starting up my own uni society – UCLU Pole Fitness, which I am proud to say is still going. I’d done a pole dancing taster session and loved it but lessons were so expensive. For those of you that don’t know much about it, pole dance is basically gymnastics on a pole and a fantastic way to keep fit. I decided that creating a society at uni would make it cheaper and accessible to loads of students so I went for it. It was an amazing year, I had to do everything from scratch from finding funding for the poles to finding an instructor, to convincing the union that a pole fitness society was a good idea. I think the thing that topped it off was the show we put on at the end of the year. It was such a great learning experience. Other highlights are the two volunteer trips I took to Africa; first to Ghana on my own, and then to Tanzania with my sister. I had a fantastic time, it was great to experience another culture and at the same time help out. Most of the time I was teaching at schools and they absolutely loved maths, if I asked them what they wanted to learn, it was always “Miss, can you put more maths problems on the board?”. It was really nice teaching students that really wanted to be there.
This is a picture of me in one of our promotional shoots.
AS: Just focussing now on the curriculum, what were the important topics you covered?
EH: A lot of my course was theoretical, we did a lot of theory and logic and maths and I really enjoyed this. It’s a shame, but programming was never really my thing, I think it’s because it took me a while to catch up with everyone else. Whilst Java was the main language we used throughout the degree, we also had some courses in other languages. I did like Prolog; we had to make a Sudoku solver as our final project. We also used Groovy for a while and I think I remember doing some C#. Another subject that sticks out in my mind is compilers. I remember I found it interesting but very challenging. My favourite topic was Artificial Intelligence. I did a course in first year and for my final project, I decided to predict the financial market using neural nets. It actually worked! (Well, it worked slightly better than picking random outcomes.) I’m still interested in AI now and I’m hoping I’ll be able to include it in my work at some point.
AS: Now you've worked on Perl for a year, compared with a 4 year degree using Java, can you compare Java with Perl?
EH: Sorry to all the Java people out there, but I just don’t get on with it! It may be just that it’s the language I started with and at that time I was having trouble catching up with everyone else – I don’t know. I think one of the reasons it’s bad for a beginner is that you have to write so much fluff to actually get your code running. The beginner is going to have absolutely no idea what all this means, and all they want to do is print something! When I started learning Perl and realised that to print something, all you need to do is write “print”, it made it much easier to experiment with the code and actually get things done. It’s much easier to get something running quickly. I think after a year of Perl, I am much more confident that after 4 years of Java.
The only thing I’d say I do miss sometimes is that you get a nice IDE and debugging facilities with Java, there’s always a look of confused silence when I tell someone that you generally code in the terminal and there’s no auto complete. I have tried the Perl debugger in a workshop at work (http://techblog.net-a-porter.com/2014/03/learning-the-perl-debugger-introduction/), but it’s just not the same really. I forgot how to use it the minute I walked out of the room. Also I use vim and out of sheer laziness I haven’t learnt that many shortcuts so I’m stuck doing a lot of things the long way. I’m sure as time goes on, I’ll pick up some more.
AS: Now I was absolutely delighted that you made it through the harrowing passport controls on return from Palestine in time for starting this round of Perl training. Can you share what took you to Palestine, and how it panned out?
EH: It’s a good thing I got to the airport three hours before my flight. Otherwise with all of the security checks, I would have missed my plane and not been back in time!
I did have a fantastic time, though it wasn’t a normal holiday in the sense of relaxing on the beach with a cocktail. My boyfriend is Palestinian and was born in Bethlehem and all his family still live there. He goes about once every two years and this time I went with him to meet his family and see where he grew up, so this was the first time I’d ever been there. As well as visiting his huge family, we did all the touristy things like going to the Dead Sea and seeing the Nativity Church. I also got to see a Palestinian wedding as my boyfriend’s brother was getting married. I’m saying “boyfriend” but actually as of the last day of the holiday, that’s no true anymore. While I was there he asked me to marry him so I guess now he’s my fiancé!
AS: What does the future hold? And can I convince you to take my Perl Dancer course so you can live up to your photo?
EH: Haha, yes I’m waiting for a chance to be able to start the Perl Dancer course. I’m definitely enjoying teaching Perl to some of the testers and the new grads with you so hopefully more of that. I’m also going to continue writing my blog as I learn (www.perladventures.blogspot.co.uk). The blog is mainly to help me retain everything I’m learning, as explaining what you know is a good way to enforce it, but I also hope that it could be of help to anyone else learning Perl with a beginner’s perspective on new topics. I’m also enjoying being a mentor to one of the new graduates at my company, it’s nice to be able to guide him through what I went through a year previously and I hope that he’ll benefit from it.