We recently hosted a series of Code School sessions within Jama aimed at teaching non-engineers how to program. I worked on two 90-minute classes that taught some of our Sales and Customer Service reps how to interact with the Jama API using Python. By the end of it, they had the skills to automate some simple tasks and were hungry to learn more.
The idea was brought up by our CPO, Eric Winquist, back in January. Eric has had a hand in coding some parts of our application back in Jama’s early days, so I like to believe he shares my view that coding is useful for all sorts of disciplines, not just engineering. It’s a useful tool in automating simple tasks and helping your critical thinking skills in everyday situations. I volunteered to teach the class, as I’ve had some experience with teaching technology to youth, and I always enjoy seeing that “ah-ha” moment that people have when they solve a difficult problem.
Many professions are seeing a rise in the amount of mundane tasks they need to automate in order to concentrate more on decision-making. GE’s CEO recently said that all of their new hires will be learning to code, whether they are in sales, finance or operations. It’s an important skill to have, even if you don’t find yourself using it all the time. One quote I put at the very beginning of our first class was straight from Steve Jobs:
“Everybody in this country should learn to program a computer, because it teaches you how to think”
Thinking differently was kind of a mantra to our classes. I also tried to point out that the computer isn’t just a platform for ready-made applications that you buy in the store. It can also be a swiss-army knife that can do your bidding – as long as you know how to use it. I feel like programming really brings out two qualities in most people: thinking outside of the box and putting that thought into practice. These are both essential for any skilled professionals, not just engineers.
We had about 25 people sign-up for the Code School initially and I got to working on something that would be accessible to any skill level. I also wanted to keep the material relevant to what we do at Jama, so I settled on teaching two sessions based on Python and the Jama API. The first session was an intro to programming with Python. Everything from variables to if/then/else statements, to while loops, and even to functions. I based a lot of material for this class on a book called Automate the Boring Stuff with Python.
The second session was based around our Jama REST API. I started the class talking about what HTTP protocol is, how it allows you to interact with the web, what a REST API is and how to understand it, and finally what our Jama API is and what it looks like in the documentation. We spent a good amount of time going over these topics and exploring Jama’s interactive REST API documentation. Then we settled down and started to piece together a working script in Python to update users in Jama through the API. I think this is where a lot of parts of both of the classes started to really come together and people could see more potential in how programming could be used in their daily jobs.
To help assist with getting through the difficult sections and with all of the random issues that typically get associated with programming, I enlisted a couple of Teaching Assistants (TA’s) to sit in the back of the class and jump in whenever someone was having trouble. This was possibly the biggest contributor to having a successful code school and I owe everything to Max Marchuk (Front-End Developer) and Nicholas Lawrence (Support Engineer) for helping out in this role. Often small technical issues and syntax errors can really bring a class like this to a crawl, but with the TA’s around I was able to pause for just a short amount of time to resolve an issue before moving on to the next topic.
I was maybe a little surprised by just *how well* everyone handled the material actually. Other than some bumps with the Python interpreter and syntax issues here and there, just about everyone in both of our classes understood the material well and asked many pointed questions. Most of the class was from our Customer Success and Sales departments, with 1 from Operations and a couple from QA in Engineering.
After the classes were over, I sent out a survey to gather feedback on how the class went. Everyone who answered not only said how much they enjoyed the classes, but agreed that they would like to continue learning more Python or some other language in the future. A little over half of the responses revealed they could see themselves using these skills in their day jobs, and everyone agreed that we should host these types of classes again for more people. Some of the replies also speak for themselves:
“Having TAs was a huge help”
“I had a really great time and feel like I better understand the work you guys do, even if we only scratched the very, very, very surface.”
“It would be great to see more types of coding examples, C++, Java Script, Java, etc, etc.”
“Code School 3 and 4!” (After our first two sessions)
I’m really grateful to Jama for not only giving me the opportunity to teach these classes, but for also for trying unique ways to boost our skill set as a company and to provide a unique bonding opportunity across different departments that isn’t just another happy hour. Learning how to code might provide a way to automate a simple task, but more importantly it helps people to think logically and programmatically.