Tag Archive for: Python

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.

Learn to code

“I jumped at the chance to participate in this workshop because, while I taught myself HTML in 1998, I have been woefully out of touch with what makes a website work since then. Django Girls appeared to be an approachable group of people with an excellent mission. Besides, what did I have to lose?” says Kristina King, Community Manager at Jama, who participated in the fourth Portland workshop organized by the non-profit group, Django Girls. Jama’s Senior QA Engineer, Hang Dao, adds, “My interest in attending the Django Girls workshop was to get more familiarity with the Django framework and to be surrounded by other Python enthusiasts. We use Python at Jama in our test frameworks and in our tools for QA and DevOps. It was great to be connected with such an active community – not only in Portland but also worldwide.”

Both Kristina and Hang appreciated the free coding class for a few reasons. Hang says, “I enjoyed the format with the smaller teams and having a code coach on each team.” She mentions there were no assumptions on the  level of familiarity with the topic or development experience. Hang learned about setting up a Python environment, Code Editor, Git repository and Python Deployment Server. She enjoyed having fellow Jama ladies at the event (Janessa Olson, Technical Support Engineer and Iris Blackburn, Project Manager) as they helped each other when they ran into challenges. Kristina adds that the workshop proved to be educational: “The coaches guided small teams (2-3 ladies) through tutorials that allowed us to work at our own pace, and by the end of the day, we had created rudimentary blogs. The best part was gaining familiarity with Python, Django, the command line, and Git. Not too shabby for one day!”

They’d definitely recommend this workshop to any woman interested in learning how to code, as “it provides a great foundation”, according to Kristina. “In the end it was definitely worth one Saturday and I’d recommend it for anyone wanting to learn to code in Python,” adds Hang.

What are some ways that have inspired you to improve your coding skills?