John Strickler is an Accelebrate instructor, Python guru, and got into technical training in a twist of fate. He also makes good chili. John sat down with Accelebrate's Julie Halbersberg to discuss teaching, how he stays up to date with Python, advice to anyone getting into programming, and more.
For the entire video interview, please visit https://youtu.be/bTfS7xrC0Uw
Accelebrate: How did you get into programming and technical training?
John: Both of those were a fluke and both of them were largely because of my lovely wife. I was actually at one point an English major and because of that I was working in a bar and my wife said, "Hey, they are doing some computer classes over at the community college," where she happened to work as an information specialist. And I'm like, "No, computers are terrible. I'm an English major. They dehumanize humanity and everything." I was a little bit resistant and then I, of course, because I trust my wife, she's a smart person, I went over and took whatever it was, microcomputers 101 and even though it was on an Apple 2E and we peaked and poked our name on the screen and it was not anything like a modern computer experience, I'm like, "Hmm, this is kind of cool." As far as how I got into training, like so many people who change careers abruptly, it was because I got fired from my day to day programming job. Laid off is what they say because they were reducing the size of the company but fired is fired, the way I go.
And so, anyway, I was kind of unemployed and coincidentally a friend again of my wife's, who was in the non-technical training biz, my wife was in the non-technical training biz, a friend of hers who was in the technical training biz called her and said, "Do you know anybody who could teach some Unix classes?" And Claire said, "Huh. I think John could," and that's how I got started. So, it was a fluke all around.
Accelebrate: How did you get into Python?
John: Well, another friend. I've always depended on the kindness of strangers. A friend of mine and I were talking, and he was like, "You know there's this language, Python, that you should learn because a lot of people are using it." This was many years ago, I'd say '93, '94, just guessing. "There's this language, Python, a lot of people are using." So, I got Python installed on my computer and started using it and I hated it. There were two or three things in Python that I just didn't care for that everybody stumbles over and I'm like, "Yeah, this is, I don't know. It's kind of weird." At the time, I was using a lot of Pearl and so I put it aside. But then a few months later, I'm like, "My friend is really smart. I should give it a try." The second time, for whatever reason, I had the right attitude, jumped right in and I've never looked back and I've programmed almost exclusively in Python since that day. It was a big deal.
Accelebrate: What are some pet peeves around Python that people struggle or have problems with?
John: One of the things that everyone struggles with, including me, when they're first learning Python is the fact that unlike most languages nowadays which use curly braces to delimit a block of code, Python uses indentation. Most of us Python programmers think it's the best way once we learn it and get over that road bump. But a lot of people come in are like, "Uh, you mean I can't line up my curly braces to delimit a block?" It turns out that in Python it means that you always indent things correctly, which means they're always correctly indented or it won't run, which turns out to be a big bonus but it's a big roadblock for people to get over. The other bump there in Python that people coming from especially Java, C++, C Sharp, is that it is a dynamically typed language. This gives you a lot of freedom, but some people are uncomfortable with that freedom.
Accelebrate: How do you stay up to date on Python? Do you have any favorite learning resources?
John: Well, of course, on the web there are too many resources but basically, I subscribe to a couple of news groups, list serves, for Python. But the main thing that I use is probably Reddit area of R Python.
Because that's used for announcements so whenever anything is new in the language, a new library's released or a new feature or if people are mad about something or happy about something, it usually gets posted there pretty quick. So that's kind of my go to and also of course keep up with Python's homepage, python.org because announcements will show up there. And I tend to, once in a while, just go browse the documentation because you always can pick up something you hadn't seen before.
Accelebrate: What are some of the most frequently asked questions in your Python classes?
John: That's a really good question because I have such a wide variety of students across a wide variety of locations and disciplines. I was trying to think of if there was any particular frequently asked question and I don't know if it's a specific question but usually it's something along the lines of, "But why does Python do this?". Sometimes there is a very specific answer and sometimes it's just because Guido said so, Guido being the creator of Python 20 some years ago. Or, "Why is it this way? Why didn't they do it that other way?" And I just have to say, "Sometimes they just did. We just have to live with it."
Accelebrate: How about teaching Python with data science, what have you been doing around that?
John: Well, Python has what's usually called The Python Scientific Stack and it is a set of libraries that work together for data science and these include NumPy, SciPy, Pandas, Matplotlib and Jupiter Notebooks and this is the toolkit that most people use. And then there are some extra toolkits built on those toolkits such as Scikit-learn for machine learning. So yeah, I think a lot of people who are super smart scientists, who are working with huge amounts of data and just want to make some sense of it and Python's a great language for that.
Accelebrate: Are you using any specific technologies or tools that are more popular than others?
John: I would say Pandas is very popular because it serves as kind of a front end for some of the other tools and makes them a little easier to use.
Accelebrate: What advice do you have for kids or teenagers who want to get into the technology sector when they grow up?
Accelebrate: Are there any specific projects that you recommend for people getting started with Python to kick things off?
John: That's a tough call. It depends on your interest. I would say that if you don't know any other languages maybe start with something simple. There is a module called Pygame that lets you make simple games so that's a good thing for maybe a teenager, maybe even a younger person, to put together. You can make action games and Whack-a-mole type games and so forth.
If you want something a little more serious I would recommend maybe the Django framework, which is kind of overwhelmingly huge but if you read the tutorial you can get a website going with not too many steps and by the time you work through that tutorial you'll have good ideas about how Python pieces work together. And then I would pick something that's interesting to you and make a little website, make a game. If you're working on computers, maybe do some little replace some of your shelve scripts or batch files with Python. But, of course, if you're just getting started you don't have any of that so I would just write some little utility. Go through all of your pictures on your machine, go through your machine, find all of your pictures and find the oldest and newest picture. Just make up some tasks for yourself.
Accelebrate: What do you do for fun outside of work?
John: I was thinking about this earlier and I was going to say leaf blowing or something but really, I like to cook very much, it's one of my passions. I make pretty good chili. And apple pie. Those are two I could say that I'm pretty good at. There's probably some others but those are good.
Also, traveling including traveling in our camper, getting out in the woods, bicycling and canoeing, kind of outdoorsy things.
Accelebrate: Thank you so much. It was really good talking with you again and thank you for all of the amazing work you've done with Accelebrate over the years.
John: Well, it's my pleasure. It's a wonderful place for an instructor to work. So thanks a lot.
Accelebrate’s training classes are available for private groups of 3 or more people at your site or online anywhere worldwide.
Don't settle for a "one size fits all" public class! Have Accelebrate deliver exactly the training you want, privately at your site or online, for less than the cost of a public class.
For pricing and to learn more, please contact us.Contact Us Train For Us
New York City
Salt Lake City