Dans notre série “Rôles modèles”, c’est au tour de Katrina Owen de nous présenter son parcours. Créatrice d’ exercism, speaker et co-auteur, sa carrière est un exemple pour les dev que nous sommes. Vous pourrez aussi la retrouver à la conférence Mix-it cette année.

Pauline : Hi Katrina, can you introduce yourself ?

Katrina : Sure! I’m a web developer, though I almost never touch the front-end. For the most part I write Ruby and Go.


Pauline : You make the project exercism.io. Can you tell us more about this project ?

Katrina : Exercism is focused on helping developers improve their programming skills. You download exercises consisting of a README and a test suite. The test suite simulates TDD, which is new to some people. It also gives you a clear signal that you’ve solved the problem: the tests pass. Then you submit your solution to the site, and others can review it. Based on the conversation that happens, you’re encouraged to submit new iterations of the same exercise. Once you’ve submitted an exercise, it’s worth looking at other people’s solutions, asking questions, and giving feedback.


Doing code reviews on the site is an even more powerful learning tool than doing the exercises. You start to develop a mental checklist of things that are good or bad, and you have to articulate why you think something is worse than some other approach, and this forces you to consider code more deeply than just getting a test to pass.


The site serves three primary audiences.


The first is programmers who already do this for a living, and who want to learn a new language. This might be because they have a project at work that is in a different language, or because they’re looking for a new job, and this language would help with that, or just because they’re curious. The feedback on the site helps people quickly write code that follows the conventions of the language, uses its strengths, and makes good use of the standard library.


The second group is experienced programmers who want to dive deeply into one of their primary languages. These programmers use the exercises to explore design trade-offs and clean code.


The third group is people who are learning to program. They use the exercises to start learning how to solve basic problems, how to solve things more simply, and become familiar with the standard library in their language of choice.


Pauline : Can you describe your typical day ?

Katrina : A few months ago I quit my job in order to take a break so that I could focus on both Exercism and the book I’m working on. I’ll probably be starting a new job before too long, which will push Exercism towards the edges of my day. I’ve been experimenting to figure out how to be more productive. The best days are the ones where I get up, and don’t check email or GitHub until noon. I’ll have four or five hours of solid work on something (writing, programming, or preparing a talk). Then I’ll spend an hour or two on Exercism after lunch. This sometimes ends up taking over the rest of my day. Other days I’ll be able to tackle shallow work on other projects in the afternoon—the stuff that just has to be done, but doesn’t take deep thinking to accomplish. One or two hours is almost never enough to catch up on Exercism stuff, so on the weekends I tend to start in the morning and then work until I get through all the various emails and issues and fixes that have to be done. Even then, it’s never really “done”.


Pauline : You will give a talk at the conference Mix-It. When and why did you wanted to become speaker ? Why did you choose to speak at Mix-It ?

Katrina : I’ve heard good things about the programming community in Lyon, and I really like that the conference isn’t focused on one specific language or technology. I love meeting people who work on problems that are completely different from the problems that I work on. This is the third year that I’ve heard about the conference and wanted to attend. Finally this year it worked with my schedule. It helps that I don’t have a day-job right now, of course. It’s a lot harder to go to conferences when you’re supposed to be at your desk shipping code.


Pauline : You are very active : you make exercism, you are speaker, you are co-writer of the book “99 bottles of OOP”, how can you do all these projects ? (by the way, thanks for your book ! I just discovered http://www.99-bottles-of-beer.net)


Well, the truth is I took on too much, and couldn’t do it all. Over the past two years I’ve been trying to finish projects without adding new ones. This break from work has been an attempt to get some more control. Now the book is in private beta, and I’ve made some important progress with Exercism, so I feel like I can go back to work without burning out. Preparing presentations is a tricky one, though. It always takes longer than I thought it would. Last year I didn’t make any new talks at all—I just didn’t have the energy to. This year I have a bunch of new talks I want to make.


Pauline : You’re fond of refactoring. Can you explain why this is so important for a developer ?

Katrina : Refactoring is the thing that will let you go from simple code that you can understand but can’t change, to code that is still understandable, but has the flexibility you need to solve the problems that you have. It’s also the thing that lets you go from horrifyingly complex code that you don’t understand, to simpler code that you can understand. And it lets you do all of this safely. Without it programming is so much more painful and expensive.


Pauline : Your career is very inspiring. Do you have any message to young ladies beginning technical professions ?

Katrina : Focus on solving the types of problems that you like to solve. Don’t worry so much about what people are thinking or talking about. There’s a lot of talk and a lot of noise. Doing actual work is worth more than talk.


Pauline : Thank you Katrina!