Caitlin Duncan | Learning Resources Creator for Code Club Aotearoa and a Postdoc at the University of Canterbury | Christchurch
Q. Girls and non-binary children often find it hard to see a pathway for themselves into a coding career. How did you get into coding?
I got into this field completely by chance! If you’d asked me when I was seventeen what computer programming and computer science were I probably would have said all I knew was it was something to do with 0s and 1s. I didn’t even know programming languages existed.
The only reason I ended up learning to code is I didn’t like chemistry, and I flunked the organic chemistry exam at school! I started my degree doing Engineering and in my first semester I had a choice between doing a chemistry paper, or the “Introduction to Computer Science” paper. I dreaded the idea of doing organic chemistry again, so thought I would try computer science. It turned out I loved it, and actually was quite good at it! I also didn’t enjoy my engineering papers in the end; I’ve learnt I’m definitely a scientist rather than an engineer. So I switched to computer science in my second year.
It took me awhile to take the leap and change degrees, despite the CS and maths courses being the only ones I enjoyed in my first year. I was complaining to a friend about disliking Engineering, but not wanting to do CS because of “the kind of people who do it” and I didn’t want to be the only woman in my class. She gave me some pretty blunt but brilliant advice. With some of the expletives removed basically said, “You hate engineering; you loved programming. Stuff any sexist boys – you can do this”. Without that I never would have continued and discovered how much I love computer science. Also something important to note – my classes were not full of unfriendly sexist boys, there were a few of them, but also some great people!
“If you don’t already know what a growth mindset is and the difference between it and a fixed mindset, then look it up.”
Q. What is one piece of advice you have for girls and non-binary children?
My advice is: If you don’t already know what a growth mindset is and the difference between it and a fixed mindset, then look it up, especially if you’re a perfectionist (I like to think of myself as a ‘recovering’ perfectionist). Second, connect with people with similar interests to you and share your experiences with each other. In my fourth year I started a group for women in the Computer Science and Software Engineering Department and by being able to discuss our experiences, and realising that we each weren’t the only ones feeling as though we might not belong made a massive difference. The club, now named WiTSoc, is still going strong, and along with CompSoc (the Computer Science Society) they are now focussing on supporting our queer community in the department as well as women.
Further advice I have for those at university is don’t listen to the people who say one programming language is better than any other. I’ve heard people say things like “Only idiots program in Java,” and “you’re not a real programmer unless you use C++.” Being elitist about this stuff is counter-productive and damaging; you pick the best tool for the job, and knowing one language and not another doesn’t make you inferior.
Similar to this, don’t listen to people who talk about how not everyone doing programming is a “real programmer.” If you know how to program then you’re a programmer, regardless of how many at home projects you’ve done or whether you’ve been coding since you were eight or you’ve just taken it up.
Q. Tell us about a rad piece of code that you’ve written? What piece of code are you most proud of in your career so far?
Like I said before, I’m definitely a scientist rather than an engineer, so the programs I write tend to be shorter algorithms for very specific problems, rather than larger software applications. A lot of them also tend to be examples for teaching, which is actually really interesting. Learning programming changes the way you think, so when I’m teaching I have to remember all the things I found confusing and challenging before I learnt these thinking skills.
“It’s really satisfying to have an idea or problem solution which you could never test in real life, but be able to quickly test with a single program.”
One of my favourite programs I’ve written was something I used to prove that my solution to a classic logic problem was correct, and it worked for every version of the problem. The problem is called “The prisoners problem,” and normally it’s about a line of people with black and white hats on, and how the people in the line can figure out what colour hat they are wearing based on what the previous person said. That’s the basic version, but it can be made more complicated if you change it to three different colours of hats, or four etc. You can take it to (and past) the point where there are a million people in the line with the numbers 1–999,999 on their hats, and it’s still solvable. It’s really satisfying to have an idea or problem solution which you could never test in real life, but be able to implement and quickly test with a single program.
Q. What big dreams do you have as a coder? What are you aspiring to do next?
Another area I am hugely interested in is mental health, and specifically understanding and helping people with severe and endogenous mental illness. When it comes to mental health most of the focus is on wellness and mental well being, which is extremely important, but there is not as much focus on mental illnesses, or brain illnesses as they are also known.
I would love to apply my computer science and coding knowledge to research in this area. I’ve been fascinated by computational neural networks ever since I learnt about them, and it would be interesting to look at applying the use of these to mental illness and neurology. While I’ve been researching computational thinking I’ve had some fascinating conversations with other women programmers about the relationships between this, health, and the way our brains function. Most of these conversations happened while I was helping out at a Women TechMakers event, and I was very inspired by the women I met there. I don’t know much about neurology yet, and it would be a big jump from my current research area! But I would love to contribute to our understanding of the brain, brain illnesses, and how we can help people with these illnesses.