It's better to share with functional programming | Opensource.com
It's better to share with functional programming
Katie Miller is a Developer Advocate at Red Hat for the open source Platform as a Service, OpenShift, and co-founder of the Lambda Ladies group for women in functional programming. She has a passion for language and linguistics, but also for the open source way.
I have a Red Hat sticker on my laptop that simply says: It's better to share.
In this interview, Katie shares with me how she moved from journalism to a job in technology. Also, how she got introduced to functional programming, the Haskell programming language, and how open source is part of her daily life.
What path did you travel to go from journalist to software engineer?
Writing and technology are both longstanding themes in my life. After school, I considered both journalism and information technology degrees. My love of language and linguistics and an unfortunate lack of confidence in my technical skills tipped the balance in favour of journalism. I don't think I was aware of computational linguistics as an option; it would have been the perfect blend. This is one reason why I take part in activities to inform young people about opportunities in the IT industry, such as the Tech Girls are Superheroes campaign and IBM EXITE Camps for teenage girls.
I worked in the news media for more than seven years and held a variety of roles. Managing a news website helped me to realise how much I missed tech, and I decided to return to university to study for a Master of IT degree. I rediscovered my long lost passion for programming and launched a new career as a software engineer. Last year I was given the chance to combine my communications and engineering skills by taking on a Developer Advocate role for Red Hat's open source Platform as a Service, OpenShift, and given my background it seemed like a perfect fit.
Tell us a bit about the Haskell programming language and the concept of functional programming.
My interest in Haskell and functional programming (FP) was sparked by a very passionate professor during my Masters. The subject covering FP and logic programming had been removed from the curriculum, but this lecturer offered to teach keen students the content in covert sessions in the campus library. After university, I joined the Brisbane Functional Programming Group and found six other FP novices with whom to work through the fabulous book Learn You A Haskell, from cover to cover.
Functional programming is a paradigm that treats computation as the evaluation of pure, mathematical-style functions. One of the big advantages of this approach is that it allows you to reason about your code, in the same way you can reason about maths equations. Haskell is a great language in which to learn FP concepts as it is purely functional and statically typed. This means you can spend a lot of time arguing with the compiler but once your program compiles it has a high likelihood of being correct. I think this is a big improvement on spending your time tracing values in a debugger and arguing with your boss about how that bug made it to production.
Katie Miller at the Tech Girls are Superheroes book launch. Photo by David Ryan.
Lets take a jump from Haskell and functional programming to the future of technology. If I say the future lies with our children, would you agree?
Are CoderDojos and other programs like Europe Code Week enough? Or should we do more to teach our children digital skills?
The ability to code gives you the power to choose what your computer does for you, rather than relying on the interfaces others have created. I think all children should be given access to this power through programming classes. CoderDojo and many other volunteer-led programs are doing fantastic work on this front, but what I would really like to see is programming introduced to school curricula. I agree our future lies with our children, and I think we should be equipping them to be the inventors and masters of tomorrow's technology, rather than just its users. Estonia and the United Kingdom have moved to introduce programming education in schools, and I would like to see the same done in Australia and other nations. Not every child will become a software developer, just as not every child becomes a scientist or mathematician, but I think programming should be part of the life skill set that is taught.
Share with us how open source crossed your path? What aspects of open source do you like?
I was first exposed to open source in university, and that is also where I was introduced to Linux. The open source way made sense to me and was a major reason why in a city roughly equally split between Java and .NET, I chose to make my graduate job a Java role. My first IT employer, a financial institution, was fairly progressive when it came to open source and the role gave me the chance to use several FOSS projects. I had just started running Fedora on my personal laptop and built my first custom kernel when I decided to go for a job at Red Hat.
I love the way open source culture draws together people of all kinds from around the world, to change the world. It gives everyone the chance to share their ideas and make contributions that really can make a significant impact. Working for Red Hat gives me the opportunity to participate in that global collaboration as part of my everyday work, which is an amazing privilege. When I write code, at work or play, the default is always to open source, and thankfully I don't have to jump through any hoops to do that. It still always gives me a buzz when someone forks my code and submits a patch, or I have a pull request accepted. I have a Red Hat sticker on my laptop that simply says, It's better to share. That sums it up for me.
Can you give us the scoop on your OSCON 2014 talk?
I try to have a bit of fun with my conference presentations, and this one is no exception. I will be attempting to explain a series of terms commonly thrown around by FP fans in just three minutes each, which is going to be a serious challenge. I've called the talk Coder Decoder: Functional Programmer Lingo Explained, with Pictures, but I'm not much of an artist, so if nothing else people can come along to be entertained by the somewhat peculiar illustrations.