That's Me, Python Expert!
Join the DZone community and get the full member experience.Join For Free
A year ago I got an introduction through a friend to Marakana. Marakana is a San Francisco-based open source training company and they were looking for a new Python instructor. JJ recommended me and they hired me on JJ's recommendation, sight-unseen, to teach a four day class called Python Fundamentals aimed at teaching programmers converting to Python the finer points of the language from the ground up.
My first class was an adventure. My work for the last few years as a freelance dev has mostly consisted of sitting in my home office writing code. I am mostly solitary and organize my projects via Basecamp, Trac, email and IM but don't have extensive client contact and most of the development work I do is on my own. I get grumpy if I'm interrupted and define my job mostly by the value and utility of the code I write.
Teaching a class has meant a dramatic change in my life. Now I don't write as much code and instead do a lot of communication. An enormous amount in class, of course, when for 8+ hours a day I shepherd 5, 10 or even 20 students through our curriculum. Our classes have a good mix of labwork and lecture but I usually spend the lab portion engaging in quick one-on-one explanations or pair programming with my students. I do follow-up communication with students, often answering questions as they go back to apply what they've learned in their day-job. And I find myself writing more: literate programs designed to illustrate and educate, cheat sheets, quizzes, labs, and curriculum.
This turns out to be a lot of fun. I've always been passionate about programming and learning technology but I haven't ever considered myself a great programmer - I know too many other people who are really exceptional developers who have done more, who know more, heck - who have forgotten more than I'll ever know. I do have excellent communication skills though and as I have gained experience teaching I've realized something new about myself: I'm really good at this!
This isn't just my opinion: if you visit my course page you can see in the sidebar lots of nice things that students have said about me. Perhaps my nicest compliment was from an older engineer who told me (before a long string of detailed and useful criticisms) "you are the best technical presenter I have ever heard."
In the course of the last year I taught more classes for Marakana and each one re-affirmed: I am a good teacher. I discovered that I like to work hard for my students, that I enjoy wrestling with communicating technical concepts in straightforward ways, that the challenge of thinking on my feet keeps each class interesting, and that most importantly I genuinely care that my students do well.
I also discovered that, contrary to my experience as an independent developer, my desire to purse excellence in an open-source sort of way doesn't have to conflict with the necessity of making a living. My desire to explore, to poke around, to find cool new toys and play with them went from being a distracting liability to an asset. And my desire to help people has gone from being the 10% time I've carved out for myself to being the reason I do what I do all the time. Instead of occasionally attending user groups and sprints, occasionally filing bugs on open source projects or even fixing them, my job description is now to help people, 100% of the time. Amazingly people are willing to pay well for our services despite the fact that we give it all away as well - just visit marakana.com to see Marakana's TechTV channel and most of our training material - all freely available or check out my ever expanding Python Fundamentals reference page.
Marakana's motto is helping people get better at what they do and we really believe it. I've had the privilege of helping a bunch of people get better at what they do with Python in 2011 and I'm honored by the invitation to come on-board full-time in 2012. I'm looking forwards to developing more Python classes and expanding into some other areas like Node.js. And if you need technical instruction in 2012 contact me - and I'll hook you up with people who can help you get better at what you do.
Published at DZone with permission of Simeon Franklin, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.