DSF board member, current PSF board member • Engineer at Rackspace Saturday, July 6, 13 But ﬁrst, I thought I’d tell you guys a little bit about myself. I’ve been hacking a lot of open source python stuff for a while. I’m also an engineer at rackspace, and I’m on the board of the PSF.
I get into the meat of this talk, I want to spend a few minutes and speak on behalf of the PSF. We’re extremely excited about PyCon AU and PyCons around the world. Hundreds of pythonistas gathering across the globe, that’s fantastic!
Represent the community • Not the developers of (C)Python What is the PSF? Saturday, July 6, 13 What is the PSF. We raise money, we protect Python’s trademark, we operate the python.org servers and other infrastructure. We give grants to people and groups to help them do great things. The PSF doesn’t do great things itself, we’re here to empower you, however we can.
how many people in here are PSF members. Show of hands, how many people consider themselves “members of the Python community”. Everybody’s hands should be up, if you’re at PyCon you’re a member of the community. So the PSF’s membership model is currently “you get invited by an existing member”, we’re shaking that up.
13 We’ll have three membership classes, sponsor members are corporate sponsors, supporting are individuals who choose to become members, anyone can join. Fellows are elected by existing fellows, as recognition of technical excellence, be it in software, documentation, working with the community etc.
Saturday, July 6, 13 This is the PSF’s mission. To build the best Python community we can. To open our doors to as many new people as we can. To build a technically excellent community that welcomes everyone.
you think we’re doing ok now, we plan to keep getting better. We need to strive to continuously improve, to be the best that we can be. And we really hope you’ll be a part of that. Because we know we can be even better than we are now. This is why we’re so focused on education, and diversity; because we’re making a long term investment in the health of our community.
2014 http://us.pycon.org/ Saturday, July 6, 13 PyCon US is coming up. It’s in Canada. We are not good at naming things. It’ll be in April next, year and the call for proposals is up. Everyone should submit a talk, and we’d also love if you served on the program commitee to help decide which talks to accept, come talk to me about that.
me and my best friend, many years ago. This is actually relevant to the talk, stop laughing. So a year ago I graduated with a degree in computer science. And this year he graduated with a degree in computer science. We’re both programmers. His degree was in engineering and mine was in science.
led me to thinking about, what kinds of professions are there, and how is programming like them, how is it not. Programming is a really young profession, at the absolute oldest 70 years, and in practice as young as 40 years; and I don’t think we’re good at it.
About half the time when I take my MacBookPro out of sleep it immediately goes back to sleep. If I were a normal person I would think “computers suck”. Because I am talented professional software engineer, I can tell you deﬁnitely: “computers suck”. (Talk a bit about the NASA bug reduction thing, order of magnitude or more cost increase).
doubles every 18 months. In practice this means over the course of my life, computers have gotten more than 16,000 times faster. Why do they still feel so slow? Every resource the hardware engineer giveth, the software engineer taketh away.
13 And I mean this in a very fundamental way; we build software, but there’s no methodology to it. How do you folks design your programmers? I think about it for a while, then I scribble on paper for a while, then I remember I hate writing, and I start typing. This isn’t a way to build an industry, it’s something out of a bad comedy sketch. I have no idea what I’m doing.
whatever makes sense, and that’s working out really nicely for me. I ship a lot of code, people think it’s good, it seems to go fast. But I can’t explain to anyone how to achieve the same result. And reproducibility is kind of an important thing.
• “Science, technology, and society” Saturday, July 6, 13 So engineers right. What we do is kind of like them. My friend has a degree in engineering. They’re methodology is based on the application of science. Does anyone here feel like the way they write code is based on the application of science, or based on good modeling of the world?
Research Saturday, July 6, 13 Scientists, I have a degree in science (tell graduation anecdote)! Formal science is based on a pretty rigorous methodology for how to know if we know something, which is really important for research.
when I see it’ Saturday, July 6, 13 I tried to write this slide for a bit, I read a bunch of resources. And I failed miserably. I don’t know how artists work, I can’t deﬁne art, but I think our profession is pretty connected to it. Who here thinks the aesthetics of their code is important?
we should probably apply the scientiﬁc method to all of this. I’ve got a whole slide deck on how to do the scientiﬁc method with benchmarking. We need to be more methodical. We need to design to take advantage of the best our profession lets us.
And we need to get better at teaching it. Why are most people who want to be programmers studying computer science? CS is great, but it’s not the same as programming, and it’s not sufficient to being a good programmer.
data structures, and algorithms, and type theory, and other theoretical things • Learn about design patterns Saturday, July 6, 13 If someone let me design a 4 year software engineering curriculum, there’d be a semester long course on how version control. You’d spend a month talking about the philosophy of logging. You’d write a compiler and learn type theory. You’d learn to build giant programs. We need to give SE as a discipline this level of focus.
13 That’s the main takeaway I want. I don’t know how I reach the decisions I do, I stare at some code, I have some intuition, and it seems to work, and I believe I have an underlying methodology, I want to identify it, and I want to be to analyze it. And I need your help in making software engineering a better discipline.