John Strickler: Instructor

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 Prince to discuss teaching, how he stays up to date with Python, advice to anyone getting into programming, and more.

Q: How did you get into programming and technical training?

A: 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.

Q: How did you get into Python?

A: 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.

Q: As a Python veteran, what are some of the main things to start out with if you're, say, a JavaScript or a Java developer that wants to get into Python, are there any tips and tricks or something that you'd recommend starting to look at?

A: Well, like any programmer, the right thing to do is to install Python and just start writing some scripts. Now if you're a JavaScript programmer, you're going to be very web app front end oriented and that is not Python's strong suit. So that's going to be more of transition. If you're a Java programmer then you can do a lot of things you can do in Java in a lot less code, although I find that Java programmers who take my classes find that Python's version of object oriented programming is if not wrong then is very dissimilar and they're like, "Why doesn't it do it this way like Java says?" And I always have to say, "Well, there's more than one way to do it and Python happens to do it this way."

Q: What are some pet peeves around Python that people struggle or have problems with?

A: 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.

Q: How do you stay up to date on Python? Do you have any favorite learning resources?

A: 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.

Q: What are some of the most frequently asked questions in your Python classes?

A: 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."

Q: How about teaching Python with data science, what have you been doing around that?

A: 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.

Q: Are you using any specific technologies or tools that are more popular than others?

A: 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.

Q: What advice do you have for kids or teenagers who want to get into the technology sector when they grow up?

A: Put some language on your language on your computer. Doesn't really matter, I highly recommend Python not just because I live in the Python world but because I think it's an easier language to learn as your first language. C, on the other hand, would be terrible because it's really hard. JavaScript not too bad. Ruby probably okay. Java, probably in the middle but Python's really easy to learn so I would say install Python on your machine, learn as much as you can but also you may not want to be a programmer. You might want to be a network engineer or a sys op or something so in addition to Python I would make sure I had access to Linux, which is cheap and plentiful and just start playing around with Linux, learn how to use Linux, which are really generic Unix commands and tools and get really comfortable with that because if you move on to a serious tech job they're going to want things beyond PCs.

Q: Are there any specific projects that you recommend for people getting started with Python to kick things off?

A: 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.

Q: What do you do for fun outside of work?

A: 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.

Q: 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.

A: Well, it's my pleasure. It's a wonderful place for an instructor to work. So thanks a lot.

Learn faster

Our live, instructor-led lectures are far more effective than pre-recorded classes

Satisfaction guarantee

If your team is not 100% satisfied with your training, we do what's necessary to make it right

Learn online from anywhere

Whether you are at home or in the office, we make learning interactive and engaging

Multiple Payment Options

We accept check, ACH/EFT, major credit cards, and most purchase orders



Recent Training Locations

Alabama

Birmingham

Huntsville

Montgomery

Alaska

Anchorage

Arizona

Phoenix

Tucson

Arkansas

Fayetteville

Little Rock

California

Los Angeles

Oakland

Orange County

Sacramento

San Diego

San Francisco

San Jose

Colorado

Boulder

Colorado Springs

Denver

Connecticut

Hartford

DC

Washington

Florida

Fort Lauderdale

Jacksonville

Miami

Orlando

Tampa

Georgia

Atlanta

Augusta

Savannah

Hawaii

Honolulu

Idaho

Boise

Illinois

Chicago

Indiana

Indianapolis

Iowa

Cedar Rapids

Des Moines

Kansas

Wichita

Kentucky

Lexington

Louisville

Louisiana

New Orleans

Maine

Portland

Maryland

Annapolis

Baltimore

Frederick

Hagerstown

Massachusetts

Boston

Cambridge

Springfield

Michigan

Ann Arbor

Detroit

Grand Rapids

Minnesota

Minneapolis

Saint Paul

Mississippi

Jackson

Missouri

Kansas City

St. Louis

Nebraska

Lincoln

Omaha

Nevada

Las Vegas

Reno

New Jersey

Princeton

New Mexico

Albuquerque

New York

Albany

Buffalo

New York City

White Plains

North Carolina

Charlotte

Durham

Raleigh

Ohio

Akron

Canton

Cincinnati

Cleveland

Columbus

Dayton

Oklahoma

Oklahoma City

Tulsa

Oregon

Portland

Pennsylvania

Philadelphia

Pittsburgh

Rhode Island

Providence

South Carolina

Charleston

Columbia

Greenville

Tennessee

Knoxville

Memphis

Nashville

Texas

Austin

Dallas

El Paso

Houston

San Antonio

Utah

Salt Lake City

Virginia

Alexandria

Arlington

Norfolk

Richmond

Washington

Seattle

Tacoma

West Virginia

Charleston

Wisconsin

Madison

Milwaukee

Alberta

Calgary

Edmonton

British Columbia

Vancouver

Manitoba

Winnipeg

Nova Scotia

Halifax

Ontario

Ottawa

Toronto

Quebec

Montreal

Puerto Rico

San Juan