PyDev of the Week: David Kopec | The Mouse vs The Python

PyDev of the Week: David Kopec | The Mouse vs The Python

This week we welcome David Kopec (@davekopec) as our PyDev of the Week! David is the author of Classic Computer Science Problems in Python from Manning, as well as several other books. He was even interviewed about his book by Talk Python! If you would like to see what open source projects he is working on, then you should head on over to Github. Now let’s take some time to get to know David!

Can you tell us a little about yourself (hobbies, education, etc)?


Before I start, I want to thank Mike for including me in this series. It’s an honor.


I’m an assistant professor in the Computer Science & Innovation program at Champlain College in beautiful Burlington, Vermont, USA. Before becoming a full time professor, I worked professionally as a software developer, and I’m still open to taking projects on a consulting basis. I have a bachelors degree in economics (minor in English) from Dartmouth College and a masters degree in computer science, also from Dartmouth.


I’m the author of three programming books: Dart for Absolute Beginners (Apress, 2014), Classic Computer Science Problems in Swift (Manning, 2018), and Classic Computer Science Problems in Python (Manning, 2019). However, I no longer recommend the Dart book because it’s very outdated. I’m also an active contributor to open source.


When I’m not working, I enjoy learning about American history, entrepreneurship, and keeping up with the world of computing (although that’s kind of my job too). I also have all the same hobbies that just about everyone has—cooking, traveling, film, reading (classics, biography, history, business dramas), television (Frasier & The Curse of Oak Island!), music, video games (Zelda & AOE2!), podcasts, stock trading, etc.


Why did you start using Python?


When I started graduate school at Dartmouth about a decade ago, I realized that many of my classes were in Python, so I thought: “I better get good at this language!” I really liked the language from the beginning, because of its succinctness and rich standard library. I appreciate how Python often closely resembles the pseudo-code you find in a textbook or you write on the board, but it’s not pseudo-code, it’s real-code.


I’ve used Python on-and-off for web development projects, and we teach several of our computer science courses at Champlain in Python.


What other programming languages do you know and which is your favorite?


It’s a long list because I started programming when I was eight years old and basically never stopped. Here are the languages I’ve actually used on non-trivial projects in the approximate chronological order of when I learned them: BASIC, Visual Basic, Java, C, Objective-C, PHP, JavaScript, Python, Ruby, Dart, and Swift. I’ve also learned in school, or learned in order to teach them: Scheme, Haskell, Assembly, and Go. And I’ve dabbled in Perl, C++, and Clojure.


It’s a fairly long list—I know. I guess I’m a bit of a language optimist, because the one I like best is often the one I’m really deep into using on a project. Well, if you asked me five years ago about my favorite, I would probably say Objective-C. However, today I don’t really have a favorite. My go-to languages right now are Swift for building Mac & iOS apps, Python for web or scripting work, and C for some of my hobby projects.


I know what I don’t like, though. And that’s C++. I begrudgingly started to learn some of the recent changes in C++ 11, 14, and 17 last week. And while they generally make the language a bit better, they also make the thing I dislike most about C++ worse—its size. It’s just such a big language with so many features that it’s hard to wrap your head around it when you’re not using it every day. I’ve heard it said that even people who write C++ professionally usually only use a subset of the language. I hope to never have the misfortune of writing C++ professionally, so hopefully I will never have to find out. All kidding aside though, it’s not my favorite language. But based on my prior history, maybe I’d start to like it more if I just wrote more of it!


One recent worry I’ve had is that perhaps I’m context switching languages too much. In my work, it’s not unusual for me to be answering student questions in Go, Swift, and Python during the day and then coming home and doing some of my own projects in C. The worry is that I’m no longer spending enough time in a single language to be fully realizing the benefits of mastery. Instead I’m trying to remember how to do something differently in one language than in another.


Thanks for doing the interview, David!


The post PyDev of the Week: David Kopec appeared first on The Mouse Vs. The Python.
from The Mouse Vs. The Python


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s