I am attending PyCon for the first time this year, and I was a little nervous about it until recently. Pycon is the annual conference for anyone who uses the Python programming language. I am excited to go, but I have also been a little hesitant about my role in the Python community. I am not really a programmer. I have played with programming all my life, but I have never done it professionally. I finally felt comfortable as a PyCon attendee by reminding myself to simply accept my own professional role – I am a teacher, and there should be plenty to gain from attending PyCon as a teacher.
I have been anxious about being surrounded by people who know more than I do in an intellectually challenging field. Almost everyone at Pycon has done much more with programming than I will ever do, and I expect they’ll talk circles around me. I was anxious about talking to anyone at PyCon because I was wondering how I would keep up in the conversations I find myself in. Then I realized I just need to be open about my role. I expect people will probably be happy to share thoughts with a teacher. There is a shortage of good programmers, and most people working in the field would love to have more qualified colleagues joining their organizations. Outside of a few specialized schools, and a few isolated classes, programming is not taught very well in most high schools (if it is taught at all). So I put together a list of goals for what I’d like to learn from this conference:
- I want to improve my understanding of best practices in software development.
- I want to meet people who program professionally.
- I want to hear what professional programmers think young people should do to prepare for a career in software development.
- I want to keep an eye out for professional programming practices that are relevant to education as a whole.
Improving my understanding of best practices will help me as a programmer, and help me instill good habits in students from the beginning of their programming experiences. I am starting to do some development to solve significant problems for my school, and writing reliable code will help with that work. Meeting people who program professionally gives me a better perspective on what students are likely to find if they pursue a career in software development. This is a perspective few guidance counselors and teachers, outside of technology hotspots like Silicon Valley and NYC, can offer to students who are interested in the field.
The last two goals have a possibility of being meaningful for people beyond just my school. Technology standards for high schools are fairly weak as far as preparing students for careers in software development. Many current standards bodies emphasize the use of existing applications, and hardly touch on developing new software and services. I would like to reflect on what I see here and offer a critique of existing standards, or at least a reflection on how well existing standards match with what professional programmers are saying.
People in the software development field have studied their professional processes pretty thoroughly. Good software development companies follow very clearly articulated workflows. If they don’t, their code ends up full of bugs, difficult to maintain, and almost impossible to build upon. There are clearly articulated best practices in terms of managing teams of professionals as they work toward a single common goal. Many of these practices offer insight into better processes that educators could use in improving their craft, and in improving the overall education system in the US. This will be a harder thing to look for, but I will try to keep an eye out for it.
I also want to develop a plan to integrate programming into the everyday culture of my school. People become good programmers by coding every day, but programming classes get pushed to the side by core requirements such as English, Social Studies, Science, and Math. To develop good programmers in high schools we need to integrate programming into students’ everyday lives, rather than keeping it as an elective that is tacked on after core subjects are taken care of. We want to stay up with “21st century” values, but we cling to our old requirements. People need to be well-rounded, but there is room to integrate new fields such as software development into core subject areas.
For example, we can come up with a list of books students could read and a list of essays students could write in their English classes, that relate to programming. We could develop a list of social studies issues students could focus on, and a list of math and science problems students could solve by writing programs. We can also find more ways to recognize students who go beyond minimum academic requirements, and who specialize in certain fields while still in high school. We can make lists of what students should do during high school if they already know they want to pursue software development. We should not make students have to code on their own for four years and wait until college before they get meaningful direction from a teacher about programming. I imagine something like an intro class or two, then a largely self-directed learning plan that is project-based and involves creating an online presence, and a series of assignments in the core disciplines that relate to programming.
I find myself digressing into specifics before the conference even begins. I look forward to meeting some fellow Pythonistas, being open about my role in the Python community, and hearing what people here have to say.
PyCon 2012: An Educator’s Perspective
PyCon 2012: An Educator’s Perspective, part 2
PyCon 2012: Side trip to the redwoods
PyCon 2012: Saying “Thank you” to Guido
PyCon 2012: An Educator’s Perspective, part 3