Not everyone comes to software development and Python through four-year computer science programs
at universities. This episode highlights one alternative journey into Python. Over the course
of two episodes, you will meet people who started in other industries and specializations and now
make Python part of their daily experience. Some of them have used programming to power up their
specialization. Others decided they'd rather just be doing programming full-time and made that switch
over. This is part two of the two-part series. Our guests this time are Giuseppe Consolo, Brian Skin,
and Teresa Borkusch. This is Talk Python to Me, episode 174, recorded July 15th, 2018.
Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem,
and the personalities. This is your host, Michael Kennedy. Follow me on Twitter where I'm @mkennedy.
Keep up with the show and listen to past episodes at talkpython.fm and follow the show on Twitter
via at Talk Python. This episode is brought to you by Vetteri and Rollbar. Please check out what
they're both offering during their segments. It really helps support the show. Giuseppe, Brian,
Teresa, welcome to Talk Python. Thanks for having us. Yeah, it's really great to have you all here,
and I'm really excited to share your story with everyone. So many people come into programming,
either use it to amplify their skills or actually move into programming, and they haven't gone through
a four-year computer science degree, and that pretty much covers you all as well. So I'm really excited to
dig into what the motivation was, how that's affected you, and just what your experience was. So that's
going to be great. I think probably the first place to start is, what industry did you come from? And I guess we'll
just go down our list. Giuseppe, you started in somewhere that probably most people don't think of as hotbeds of
programming. No, it's a completely different industry. So right now, my current job is a DevOps engineer. But until
five years ago, I was in medical school, although I was not progressing, I was kind of stuck. I've been
stuck for a few years. And there was an ambulance paramedic and member of a rescue team. I think
rescue inside a chemical plant or something like that. So completely different industry to what I'm doing
right now. Yeah. So you used to drive around racing to emergencies and ambulances and stuff like that,
right? Yes, that's correct. Just got to be such a crazy job. And you must have some wild stories. It's
very different than sitting behind a keyboard all day, I'm sure. A lot different. Although there's some
similarity in the way, you know, in this is happening world, everything is on fire. And you have to,
you know, be quick and do something very quickly do kind of diagnose on be very quick at finding what's
wrong and fix it. So in a way, it's kind of similar. The web server is down. It's a little bit similar.
All right, Brian Skin, how about you? My background is chemical engineering. I have a bachelor's and PhD
there. And I really have not moved out of chemical engineering. I sort of changed subdisciplines,
so to speak. What I'm working on now isn't at all directly related to what I got my doctorate,
what I did for my doctorate, but it is still engineering, chemical engineering, sort of a
thing. So my day to day, most of it is working on developing new processes for things like
electroplating and electropolishing. For anybody who knows what electrochemistry is,
if it's under that field, then we've probably played with it.
Okay, that sounds really interesting. I suspect there's, you know, that's much closer to the sort
of computational stuff. So probably less far away than say ambulances in medicine. But still,
it's not a lot of programming, right?
Not in the nominal job description. No.
Yeah, sure. Cool. And Teresa?
Currently, I'm a data scientist. But up until, I don't know, about two years ago, I had been
a biologist. And I was a grad student. And I spent a lot of time studying animal behavior,
really. So a lot of time abroad, observing dolphins and primates and stuff. So very little
programming there.
Yeah, a little bit disconnected. It sounds really fascinating, though.
Yeah, super cool, but not a lot of time. Well, sometime behind a computer, but not programming.
Yeah, more data analysis and vlogging what you've seen, right?
Yeah, yeah. A lot of like looking at photos. And I did like some caveman level R for some stats
classes. But that was as far as it went.
Yeah, interesting. I like the description. So I guess the one of the first questions everyone's
probably wondering to hear is, you know, why did you get into programming? Like, the chemical
engineering is somewhat close to the computational stuff, but other ones, not so much, I guess. So
Teresa, maybe we'll start with you. Like, what was the motivation to get into programming in Python?
It sort of taps into, I liked, even though I was programming like a caveman in R, I did really like
doing the sorts of statistical analyses and wanted to take it further and sort of wanted to make a
career out of it. And thought that learning Python and sort of getting involved in data science would
be the way to do that. So that was, yeah, that was my motivation. I found the tool set I had to
answer sort of scientific questions wasn't really sufficient. And it was just looking for something
bigger and more powerful.
In the beginning, were you considering like, I'm going to get these skills so that I can
do my biology work better? Or were you pretty sure you're like, I kind of want to move beyond this and
like get into the straight data science programming side of things?
I was moving out of biology. I think I was more interested in like, I really want to get into
data science. That seems like a really great career path.
Yeah, I think it is. And probably a lot of the skills you learned in biology about data collection and
things like that. And the little bit of our experience as well helped.
Yeah, totally. There's a certain way of thinking, you know, generating hypotheses and testing them
that is continuous throughout both fields. So it seems like they're totally disconnected. But the
how you think about questions and go about answering them is sort of useful in both.
Yeah, that's cool. Brian, how about you? Why'd you get into programming?
Programming sort of grabbed me from the beginning. I, my first programs were on my TI-82 calculator in high
school. And, you know, just kind of continued from there, TI-82, TI-89. My one actual formal programming
class was a required intro C++ class, freshman year of college. And then other than that, it was all kind
of somewhat self-directed, somewhat externally motivated. I did an internship in college that
turned into the company I was working for had this, it was actually data science. But more than I look back
at it, they had this gigantic table of data from the processes they were running. And my job over this
eight month internship was to develop an application for suggesting improved programs for their equipment.
And at the time, what was at hand was Excel VBA. So I got really, really good at Excel VBA, GUIs and,
you know, the document object model and everything. And so that really established that. And then from there,
I dabbled in Java a bit in mid grad school, but then came to Python about four years ago.
Oh, yeah, I suspect many people's first programming, you know, in quotes, experience is Excel,
right? Like I have these pieces of data. And can I show or hide or change the color of this
based on whether it's positive or negative, or, you know, something like that, right?
Yeah, I mean, you know, the multiple times on the podcast, you've had people say,
in industry, in the corporate world, the most prevalent database is Excel. The same thing is true
that the for the corporate world, in a lot of cases, unless there's a specific reason to use,
you know, something else, Excel is probably also the one of the most prevalent development
environments in the corporate world, just because it's, it's anybody who has window has office,
has VBA for better or for worse.
Yeah, that's pretty funny. And probably a lot of the programming happens in that one little cell
editing text area right at the top, right?
Yeah, the formulas too. I mean, that's, it's like these different paradigms going on,
colliding and, you know, crashing into one another.
I'm sure, I'm sure. Giuseppe, how about you? You took a pretty hard turn, I guess,
suspect it probably wasn't something day to day that you were experiencing, or maybe it was, tell us.
No, it wasn't. I have to go back to something like five years ago, I decided I wanted to change my life.
And I left medical school, I moved to another country to England, and followed my other passion, which is Linux.
And along the way, so I started to take support and then into a sysadmin job.
And along the way, I picked up a genuine passion for Python.
And, you know, the reason is very, it comes to a simple reason.
It's easy to understand.
So, even though I didn't have a that specific background, I could understand Python.
So, I offered some of my friends from my hometown Linux user group,
they've been doing stuff in Python for some time, and I was kind of, you know, exposed to Python.
I was curious.
So, that's how I got started, really.
And then I found that it made my life a lot easier.
So, my day-to-day job was a lot easier because of Python, because the new skills.
And that was really the moment where, yes, I love this programming language.
I love Python.
Yeah, you can do some stuff in Bash and Shell scripts, but it's not the same as a real programming language.
Yes, absolutely.
And I had the first time experience about that.
My previous job, my old job, I wrote a script in Python to resolve a day-to-day problem that was nearly impossible to do in Bash.
Python, easy.
I mean, it took me a bit of time to get to that point, but I learned a lot along the way.
Yeah, absolutely.
That sounds really interesting.
Was it scary or nerve-wracking to, you know, leave medical school and then also leave Italy and just completely rearrange your life like that?
Like, were you like, what am I doing?
I'm almost a doctor.
This is crazy.
It is.
Between all of these single things, moving to a new country, changing my life, I don't know what was more scary, but here I am.
Yeah, it sounds like it's working out pretty well for you.
It's really interesting.
I have two of my neighbors.
They're both doctors at a nice hospital, research hospital here.
And I talk to them about, you know, have a good day.
How is everything going?
And they're like, I wish I would have just gone into computers or started a podcast or something.
It seems like, I'm like, really?
And they're like, yeah.
It's just, you know, your life looks easy and smooth and mine is stressful and all this bureaucracy and stuff.
So you probably made a good choice there, Giuseppe.
Giuseppe, sorry.
I think so, yeah.
Now I'm working, you know, a desk job.
So I'm not outside.
And people don't throw stuff at me.
How boring.
Maybe one of those little office dart things, like a little office toy, right?
Yeah.
Nerf guns, yeah.
Yeah.
How funny.
Okay.
So one thing I wanted to start this conversation with is I feel like there's a lot of talk about people becoming programmers because computers are important.
So programmers, that's what you should do.
But I think there's a large value in having another skill like biology or chemistry or medicine or something like that.
And sort of supercharging that with programming or Python.
Now, I know some of you kind of moved on to do more specific programming.
But, you know, you come from this background.
So you're totally in a good place to talk about it.
Maybe just let me know what you think about, like, people who are not going to become programmers but are doing stuff and, say, in your field that you came from, you know, how it might help them.
So, Giuseppe, start with you.
The new thing that comes to my mind is when I was doing the ambulance, the paramedic stuff, sometimes we had some kind of problems with the keeping track of vehicles, ambulances, and calls.
And that was at some point I was considering, oh, it would be so much easier if someone who is inside, who does this on a daily basis, could write a single program that just do what you need to do.
Just keep track of the ambulances, keep track of the calls.
Unfortunately, in Italy, well, at least where I was working, we didn't have any of that.
Some custom proprietary software, but not nearly close to what we needed.
And for some time I kind of dreamed of, oh, if only I could pick up very quickly some programming skills, I could do that.
Yeah, imagine just like a cheap Raspberry Pi with a cellular connection or something like that, right?
Yes, absolutely.
Imagine how much you can do and how much you can do processing data with Pi.
A lot of data, like the call time, the average time the ambulance needs to get to some place.
And how much you can improve the system having access to this data.
I'm sure somewhere someone is doing something like this.
But I guess I was in the wrong place and I had the wrong kind of skill set at the time.
At the time, yeah.
If I could go back now and, well, not now, I don't consider myself skilled enough, but say in 10 years with the skills that I, the skills I would like to have in 10 years, go back in time and do that thing.
That would be my dream.
Yeah, it sounds like a really cool use of the IoT stuff.
And these days, it's got to be almost easy.
So, Brian, what do you think about it?
You're still doing chemical engineering.
What do you think about this power-up, Python power-up idea?
I think the analogy that I would draw is actually it's kind of a reflection of the technical management conundrum.
Where in order for someone to make better, at least, high-level vision choices for a technical effort, if you don't know at least something about the, if you don't have some expertise in the technical thing, then it's hard to have the perspective to make those kind of bigger visionary decisions.
It can still work, but it can be harder.
I would draw the same sort of parallel to the programming skill set.
A lot of the things that we work on involves equipment and tanks and pumps and things that you can't really, there's no IoT for the simple pumps we work with, for example.
But in terms of data analysis and driving some of the data acquisition hardware or some controller hardware, having the ability to just toss together a script or to dig into a command line or a serial prompt or something.
And even if it's not the prettiest code or the most efficient, effective, fastest, whatever, it's still so many orders of magnitude more capable than it would if there were not any programming expertise around to bring to it.
And so it's not critical exactly, but it can help so much that it almost is, I would say it's near critical in a lot of cases.
It basically opens up new possible questions you can answer and stuff because where there used to be too much data, now it's, you know, it runs for three seconds.
Manageable.
And you can also, you know, being able to handle things faster means you can handle more things, which is really valuable.
So.
Teresa, how about you?
Do you see those kinds of opportunities in the biology space?
Totally.
I think it's helpful, I think, to think of programming as something that'll save you time.
You know, looking back on the way I used to handle data or the way we used to store data and the amount of time I spent, like, scrolling through Excel sheets looking for things when, like, you know, the database, a database might have been the right solution.
Or, you know, manually cleaning things in Excel when, if I had just put something into, say, like, a Pandas data frame, yeah, it would have saved me hours.
So I like to think that its main benefit would have been just freeing up brain space to think about, like, the actual biological problems or the actual questions of interest and kind of automate away a lot of those pain points.
Yeah, and it seems to me like that kind of work is the least fun.
You know, like, cleaning up data by hand in Excel or something like that.
Yeah.
That doesn't sound fun.
It's the least fun, but you can never make it go away.
You can just make it take.
No, you have to do it.
Yeah, it'll take a tenth of the time, though, with the right tools for the job.
Yeah, yeah, that's cool.
I have a very low tolerance for boring, repetitive tasks now.
It's like, okay, I'm automating this right now.
Yeah, exactly.
I've had the same experiences in some of my stuff where I'm like, you know, for the third day, I spend an hour doing something.
I'm like, why do I not just take half an hour, write a program that solves this problem, and it'll be fixed forever, not just for today.
Yeah, but you kind of need to hit that threshold, right, where it's like, I know I'm doing this enough, and it's painful enough, and so on, until you decide, like, that's it.
I'm writing a program.
I guess maybe, like, a lot of the real opportunity for people to see programming as relevant to them when they're not programmers is kind of this automate the boring stuff type of angle, like that Al Swigert talks about in his book and stuff, which is they're really just, you know, you could do that in 10 lines of Python if you just knew the 10 lines in the right packages.
Yeah.
This portion of Talk Python is brought to you by Vetteri.
Vetteri is an online hiring marketplace that connects highly qualified job seekers with thousands of inspiring companies.
They specialize in positions in the tech space, including software development, data science, and project managers.
Vetteri is not only free for job seekers, you'll actually get paid to get a job through them.
They're offering a $500 bonus if you accept a job through Vetteri.
Whether you're looking for a job at a tech startup or a major corporation, visit talkpython.fm/Vetteri, that's V-E-T-T-E-R-Y, and get that $500 bonus.
Brian, I guess I'll ask you this one first, because it's maybe most relevant to you, is how has learning programming sort of changed how you do chemical engineering?
Like you said, you now have this super low threshold for boring repetitive work, which is obvious.
What else?
So the programming shows up, it's really scattered all over.
I mean, the title, the automated boring stuff, is a really great philosophy, I think, for how it helps me.
My day-to-day spans the whole range of engineering research, writing proposals, doing experiments, directing them, doing some modeling sometimes, consoles, that sort of thing.
Writing stuff up, writing talks, writing papers.
And for the most part, programming kind of sits in the gaps.
It's scattered all over.
And this is where the VBA is actually really helpful, has been really helpful, because I have a library of scripts that are bound to ribbon buttons or keyboard shortcuts or whatever.
So I can file labeling, categorizing, filing emails, popping attachments off the server, cleaning up data in Excel, chart, some chart automation stuff, keyboard shortcuts in Word to switch highlighting around or various things.
I can work large single-digit integer times faster because of all of the automation I have tied into my workflow start to finish in just lots of small little ways that are customized to me and they work really well.
So it's a productivity enhancer to the max.
Yeah.
I'm really impressed at how many different apps it sounds like you've plugged this stuff into.
It's not just like, well, I'll go do it in Python now, but like Word and Excel and all sorts of stuff.
Well, that's the thing.
I'm the only, I think it's safe to say I'm the only programmer in my office.
I work in a small business that's 10 technical staff.
I'm the only one with any programming background at all.
And some of what I've written, I've handed off to other people, and the only way they're realistically going to use it is if it can be bound to a keyboard shortcut or a button.
Yeah, that makes sense.
Obviously, the command line and a pip install this, and yeah, that's not going to work.
Yeah, there are some data analysis tasks, and I've done a very little bit of probably very low-quality machine learning for a project.
And so for that, Python was the only thing that made sense of what I knew.
But for the day-to-day, it's all VA.
That's really interesting.
Are you known as the person who can solve the programming problems and people come to you with data problems, like process this for me?
Not so much.
I could be, but...
You dodged that bullet.
It's more that in order to know, it goes back to that pain point problem.
In order to help somebody out with a data analysis or data processing automation, I have to understand what the data is and what I need to do, what needs to be done with it.
And that knowledge transfer adds significantly to that cost of an automation step.
Right.
It has happened, but a lot of the time, it's not enough pain for them to cross that threshold of making it worth the extra communication time and then the automation.
It's happened a couple of times, but it actually doesn't happen very often.
Yeah, they probably don't realize the amount of pain they could avoid.
They probably just see that as a fact of their job.
I agree.
I think it's very likely that's the case.
Like you have a lower tolerance now.
So, Teresa, let me ask you about you.
So, you've fully switched into doing data science.
What kind of problems are you studying now?
What sorts of problems?
Yeah, like what area of data science are you doing?
I work for iRobot.
So, a lot of analysis on data that would explain how people are using a robot.
So, some things that are sort of consumer-based analytics, like looking at use patterns, things like that.
I like to use the analogy that it's not that different from studying, say, like a population of dolphins out in the ocean that you can't really see what they're doing.
You just get like glimpses or a few signals.
I don't really know what all the people are doing with their products, but I get glimpses and signals, and it's somewhat analogous.
That's really interesting.
So, iRobot, that's the company that makes like Roomba, the automated vacuums, and things like that.
Yeah, that's right.
Small, like home cleaning personal robots.
Yeah, I have one in my kitchen right now.
It's not going, but it's hanging out there.
To you, it was more of a sort of career transition.
I guess, like how do you, are you happy that you've learned programming and took this transition?
Is it working out well?
Like what was the experience?
Oh, totally.
It's, I love how, you know, I was trained as a scientist using probably not all the tools that I could have to really work in that field in academia.
But now I still get to use sort of my science content knowledge, but with this whole new, way more powerful skill set.
So I think back a lot to like problems that I've solved now in my current job.
And they're somewhat similar to questions that might have been asked before, but they were such a struggle.
I had no idea how to process this much data or, you know, how to make up a graph that would answer this question easily.
And now knowing Python and being plugged into all the really great tools like Pandas or Scikit-learn, all these things for machine learning, it's a breeze to do this sort of stuff.
And I always look back and say, if I had the skills I have now, I was still doing that job, what I could have done.
But it's overall been just amazing.
That sounds really awesome.
Is it interesting to come from an academic space and then into industry, as they say, and sort of look back and go, just see the differences?
Yeah, totally.
I think the contrast is really interesting.
I think the pace at which things move has been a huge shocker in a way.
Like academia is much slower, you know, as opposed to, you know, if a question needs to be answered, they need the answer within a week or a few weeks, as opposed to, oh, spend a few months like thinking about it.
Or, you know, maybe you'll publish a paper in a year.
Exactly.
Well, yeah.
And then they'll come out in a journal six months after that, right?
Exactly.
Right.
And two people will read it instead of, you know, this very fast turnaround, kind of not necessarily high profile, but work that has impact, like immediate impact.
Yeah.
It is interesting how narrow the academic exposure is.
I mean, it's really important, but it's, there's like 10 people that might read a paper and it will influence their thinking in the world, right?
Which is crazy compared to like all the people that have a Roomba.
Exactly.
Yeah.
Much broader audience.
Yeah.
Maybe a little more shallow effect on their life, but more broad.
Yeah.
Who knows which one has more volume.
Okay.
Giuseppe, how about you?
Like this move from studying medicine and doing, you know, the ambulance emergency stuff into DevOps.
Like, how's that transition been?
I'm trying to get rid of the old habits of jumping into problems, you know, heads on and putting out fires.
I'm trying to get new habits on, think about the problem, break it in single little problems that you can then fix to apply some automation to that.
So these days I'm mostly working on this part and automation of provisioning virtual machine servers and I'm using Python to do that.
So it's not an easy transition from the old world, the old life, the old habits, but I'm getting there.
I'm getting there and I'm enjoying a lot Python along the way.
It's really fun for me.
It makes it feel easier in my day-to-day work life.
Yeah, that's really cool.
What kind of stuff do you do around DevOps that you talked about?
For example, the need to automate the provision, the creation of a series of server in environment.
And so far, it's not much automated.
So my project currently is to make that completely, fully automated.
And when I was interviewed for this position a few months ago, I asked, can I use Python?
The answer was yes.
And I was, yes, I want this job.
It's funny.
But, you know, working in a technology day-to-day-to-day, like some technologies are more fun than others.
And if you get to choose, it really can make a difference on how happy and joyful what you're doing.
Yeah, absolutely.
So come the first week, the second week at this job, and I have to get information from a hypervisor about all the VMs running, something in the range of 120 VMs.
And the specs, the information about the disks, the RAM CPU, that kind of boring stuff that you think, why don't I automate that once and reuse multiple times every time I need to gather information again.
And I did that in Python.
And there's a wonderful SDK.
It's called Over Engine SDK Python, which is really a great library.
But for some reason, it didn't play well with the version of the hypervisor we are currently using.
So I ended up writing a simple skeleton script using requests to pull information using the APIs from the hypervisor, getting this information, parse what I need, and put everything in a well-organized CSV file.
That's really cool.
That was the fun part of my first, second week at the new job.
I thought, this is what I really wanted to do, and gave me another motivation to keep doing more Python, give me more confidence in doing more in the future.
Yeah, that's a great story.
I feel like those little solutions add up, right?
You come to a company, you get hired there or something, and people just do stuff in this sort of painful manual way because that's the way they've always done it.
And you come with fresh eyes.
You're like, why?
Why is this not automatic, right?
And then slowly, these things sort of get piled on until everything gets easier.
It's great.
Especially if you're coming from a different background.
So it's not really – I still feel I'm misplaced.
I'm not in the right place.
I still have to think, is it really me doing this stuff?
I couldn't think of myself doing Python five years ago.
It's a complete drastic change.
Yeah, it's like an identity shift, right?
Yes.
It sounds like a good one, though.
Yes, that makes me so happy.
So it's definitely a good one.
That's awesome.
Yeah, that's really, really great.
So one thing I'd like to do is maybe go around and see which – sort of what technologies you're all using these days.
It's probably a little bit different as you're solving different types of problems.
So, Teresa, what does yours look like?
Is it Jupyter and those kinds of things?
What are you using these days?
Yeah, definitely.
I'm in Jupyter notebooks pretty much all day.
I really like Jupyter notebooks.
Other people on my team are sort of – have mixed feelings.
But for me, it's really convenient.
And it just really works well for me.
In terms of which specific libraries I like, Pandas and NumPy are sort of essentials.
I find myself dipping into like SciPy or like stats models or something for more statistics-relevant things.
And I guess – actually, a major part of my job is making like visualizations to summarize findings and things like that that are –
Sure.
You know, it could be shared around the company.
And I found that Plotly is a really great library for that sort of easy to use and makes pretty nice looking graphs.
Yeah, can recommend.
Yeah, cool.
Plotly is really nice.
Some of those – some of the graphing capabilities there are really coming along.
Are you thinking of switching to a JupyterLab?
I don't know.
Probably not.
I think I'm pretty happy with my setup.
But I might be able to be convinced.
Yeah, yeah.
It's a little bit different.
So, the people that aren't using Jupyter that you're working with, what else are they using?
What's their alternative if they don't totally love it?
PyCharm, I think, is the other contender.
As well as just like – I guess like just writing scripts in Atom and then running it, you know, from the command line or something like that.
Yeah, so more like traditional computer science type programming stuff.
Yeah.
Okay, yeah.
That makes a lot of sense.
Brian, how about you?
Platform?
So, at work, I am strictly Windows.
I do use Git Bash for everything.
Source controlling it.
Mostly, I'm in Jupyter Notebook.
A lot of H5Py, NumPy, SciPy, SciKits.
It's Matplotlib sort of a thing.
Side projects.
I work both Linux and Windows and go broader to Sphinx documentation, Tox for testing, Travis.
I have packages on PyPI, so I've messed with the setup.py, Twine, and all that kit.
And I'm a big fan of adders for basically everything I'm doing.
Yeah, adders is a good way to get some quick classes in place.
The wrapper, the Dunder wrapper and Dunder string that it auto-generates, that's so annoying.
Creating those by hand and just having a nice representation by default is so nice.
Yeah, I really like outputs.
I'll go and write those almost primarily for debugging.
If I want to print one out or I can pause in a debugger at a breakpoint, you see the variables windows.
Instead of just seeing this object at this memory address, you can see really useful stuff there.
It's great.
And adders just does that automatically, right?
Yep, it definitely does.
Nice.
Giuseppe, how about you?
Linux all the way.
I'm in Linux 7.
All right, which distribution?
Well, I'm partial to Ubuntu.
Yeah, I like Ubuntu as well.
Although I have to say I started some, well, a long time ago with Gintu.
Yeah, nice.
Which probably not everyone knows.
But I'm using CentOS and Red Hat, they're better at work.
But I use Ubuntu at home.
Nice.
And for Python, what are some of the libraries and stuff you're using for interacting with VMs over the network and the kind of work you're doing?
I try to keep it simple.
I'm using mostly requests and Beautiful Soup.
And I don't know if you want to count this as a...
They come with any Linux distribution, any Python in a Linux distribution that I've used so far.
My best friends are Subprocess and ArgParse.
Yeah, of course.
There's a lot of automation stuff there.
That's great.
Yeah.
Do you use things like Paramico and stuff for remote interactions?
When I can, yeah.
But sometimes I had to just use Subprocess and call SSH with Subprocess just to make it the Python script portable.
So you could use it everywhere on any machine, even if you don't have Paramico on that machine.
Because, you know, you have to install Paramico.
Right.
Sometimes, you know, trying to keep it simple so it can be used anywhere.
That was the best strategy for me in some occasions so far.
Yeah.
It sounds like it's working well.
That's great.
This portion of Talk Python to me has been brought to you by Rollbar.
One of the frustrating things about being a developer is dealing with errors.
Relying on users to report errors, digging through log files, trying to debug issues, or getting millions of alerts just flooding your inbox and ruining your day.
With Rollbar's full stack error monitoring, you get the context, insight, and control you need to find and fix bugs faster.
Adding Rollbar to your Python app is as easy as pip install Rollbar.
You can start tracking production errors and deployments in eight minutes or less.
Are you considering self-hosting tools for security or compliance reasons?
Then you should really check out Rollbar's compliant SaaS option.
Get advanced security features and meet compliance without the hassle of self-hosting, including HIPAA, ISO 27001, Privacy Shield, and more.
They'd love to give you a demo.
Give Rollbar a try today.
Go to talkpython.fm/Rollbar and check them out.
Giuseppe and Teresa, think of biology and medicine and stuff.
I want to ask you this question.
Back to the people, the place you were before, Brian.
I'm still where you are.
If you're talking to someone who is in your industry or was in the industry you came from, and they had no background in programming,
what advice would you give to them about maybe learning it or how it might help them push their career forward?
Teresa, go first.
I think I left my field maybe about two years ago, but it really did seem to me that there was a certain sparsity of biologists who were competent in or, I mean, both interested and able to program and just like utilize the power that this, you know, that Python could unleash for you.
And I would say do it because it'll set you apart.
It'll both make your life easier and make you sort of a rarity in the field.
So I think the field as a whole could really benefit from more people who have these skills.
And, you know, if you want to be like a competitive job prospect within the field, if you have the ability to, say, set up a database for a project you're trying to work on, that's really going to put you head and shoulders above a lot of the other candidates out there.
Yeah, that's cool.
And if you decide for some reason that academia is not for you, you could always go work for a cool robot company, right?
Yeah, exactly.
Just jump ship.
It's okay.
All right.
Giuseppe, how about you?
I would say don't be afraid.
For a long time, really a long time, I was curious about Python, but too afraid to start doing anything, even to, you know, start opening a book about Python because of my lack of programming background.
So don't be afraid.
Try a little script.
Try something just for fun and practice.
That's something that in medicine, it's everything about practice, practice, practice.
Do something until you can do it blindfold or you can do it without looking.
You can do it on a different patient every day and still you can do that something.
So in the same way, if you keep practicing and doing a little bit every day, that's a good way to get rid of the fear of not having a programming background.
And this is where the 100 days of code is perfect for anyone from a different, I believe, from anyone from a different background that wants to get started with Python.
That is a good resource.
And it's not that much of a commitment.
It's an hour a day for a little over three months.
It's not too bad.
Brian, how about you?
So I keep coming back to the automate the boring stuff theme.
For somebody in engineering who isn't looking to become a full-time dev, think about what you do during the day.
Think about the tasks that you have to address and then identify the ones that drive you nuts because it's the same thing over and over and over again.
And start small.
Find a little thing.
It can be hard to know what's going to be big or small going into it.
But pick something that seems like it's small and then identify a relevant programming language.
So a lot of the proprietary software has its own internal scripting languages or whatnot.
But if you're in Excel, if you're in Word, it gets slammed a lot, kicked around.
But VBA is actually a pretty good choice because if somebody else needs to use what you end up making, it will transfer.
And then, of course, I would definitely recommend Python for anything general because it's great for that.
And then look around.
Find a book, a Learn to Program book in that language.
O'Reilly has stuff for Excel that has some VBA in it.
There's a VBA for dummies.
There are a plethora of Python books that you can find.
Search the web.
Hit up Stack Overflow.
And just search until you find something that seems relevant to solve what you're trying to solve to automate this problem, to solve this problem.
Try it.
Code it.
If it doesn't work, keep tinkering at it until this first small thing, you can get it to work.
And then pick the next thing.
And learn what you need to do to make it work.
And just step by step, eventually you'll accumulate enough of an understanding of the way the computer thinks, the way the computer works, that you can start telling it what to do without having to figure anything out.
And then you're unstoppable.
Oh, that's great advice.
And I feel like these can really quickly add up in ways that are hard to foresee.
If you can do this little thing to process a CSV file, maybe convert it to an Excel file, and then you're going to do some other little trick, get some other little trick.
All of a sudden, you could sort of chain those together and process a thousand files all at once.
Whereas before, you're like, oh, boy, I've got to go through all of this.
They add up in non-obvious ways.
Yeah.
It is definitely a super linear capability curve.
If you know how to do n things, you have n to the x, where x is large, total things you can do with those bits of knowledge.
Yeah.
I think actually part of the secret of programming that people who are not programmers don't actually get to see is it's really about building these little building blocks and then clicking them together to build larger building blocks.
And in the end, you're clicking big pieces together, not small pieces often.
Yes.
Absolutely.
I agree.
And also the ability to see the problem and break the problem in single units.
That's another something that, from my point of view, helps to, it's something to get in front of a big problem, it's something to see the big problem, be able to split it in single units.
And, okay, now I do this unit, now I do this, fix this problem, do this little action, little operation, and then after a while, bam, your big problem is gone.
Yeah.
It's definitely an important part of the skill set, but it's something I don't, that's not something that somebody coming, new coming into programming should expect to be able to do in an effect efficient or natural way with no experience whatsoever.
I, I would be surprised if most people coming in fresh to programming would have an instinct for how to break problems down that way.
It's sort of, that sense develops along with the facility in programming generally.
Yeah.
It's definitely powerful once you get it, but it's hard to just, it's hard to see that it's being useful in the early days.
early, early stages.
All right, we're getting sort of near the end of our time here.
So I do want to ask you all sort of forward looking question on this.
So obviously programming is changing stuff for all of you, but it's also, I think, dramatically changing everyone's roles in these industries.
So I guess, where do you see programming and technology pushing your industry or the one you came from over say the next 10 years in the next reasonably predictable amount of time?
Brian, you want to go first?
Sure.
10 years.
I have to imagine that programming will still be a non-critical skill.
You can thrive and do well without it.
But as the scope of data and the automatability, automability of proprietary tools and the growth of open source stuff like Python and R and others,
the productivity and capability advantage that's going to come from being a programmer, that differential is only going to increase.
Things may get to the point where a lack of a programming ability just is too much of an efficiency drag on an engineer in general.
You're thinking it's like almost like saying, well, I can't type or I can't use Word.
Right.
I just take notes on my legal pad.
Like, you know what?
Thanks, but no thanks.
We're going to find a different candidate.
Exactly that sort of thing.
It won't be fatal, but it will be more and more important.
And ultimately, no matter how far things go, I think it will continue to be a skill that differentiates between just a solid competence versus being a magician of sorts in terms of being able to churn through, chew through data and tasks.
Yeah.
You should be able to address questions or problems that others just can't.
Yes, exactly.
Yeah.
Interesting.
Teresa?
Yeah, I agree with that idea that it'll be sort of a, the baseline will raise.
You know what I mean?
Like you'll, there'll be a certain expectation that you will know how to store larger amounts of data or like a task, you know, the expectation that cleaning your data set might take you two weeks, like sort of an expectation that it might take you a couple hours because you can do it programmatically.
I think things have to go that way.
It seems almost inevitable.
And I guess something that I would hope would come with it, and I don't really know if it's headed this way, is sort of a change in how we think about sharing code or sharing information of that type in academia.
I know that like, you know, if you, now at my work, if someone were conducting an analysis and we really wanted to comb into it and reproduce it, you'd want to see the code for how they set things up.
And I don't think that standard is there in academia.
It's sort of hand-wavy.
Like we did this model with these things, but you don't see it written out.
So I don't know that things will go that way, but I think that would really be a benefit.
There are definitely people pushing that way and infrastructure getting to the point where, you know, they're still figuring out how to manage it, how in the world to set everything up.
But there's definitely attention being paid to it.
Right.
Because there is sort of attention you want to protect your work and, you know, your original ideas and things like that.
But it does, you know, science is sort of built on sharing the ideas among different teams.
So sharing that code would really go a long way, I think.
I wonder if there's going to be a shift where, you know, right now it's like you get credit for writing the paper and getting the result.
But it's maybe, you know, more is like, well, we collected the data and then here you can see we wrote the software.
And here's the GitHub repository that shows all the commit history.
And, yeah, somebody took it and drew a picture and made a conclusion.
But that's not the work.
You know what I mean?
Yeah, exactly.
Yeah, one thing I know of where they're doing that, you can actually assign a DOI to a GitHub repo and possibly even a specific release.
CERN, I think, is where it's out of.
There's a site called Zenodo, Z-E-N-O-D-O.
That's right.
Yeah.
And that might have come up previously on the podcast.
But they're definitely getting infrastructure to site data, code, and all those sorts of things as individual units to tie into this research documentation process.
Yeah.
It lets you sort of claim or make a permanent link back to the software in an exact state, the digital object identifier.
Yeah.
They're doing some really cool stuff with reproducible science there.
But also, you could see it for attribution, right?
Interesting.
Yeah, that's really cool.
Yeah.
Giuseppe, let me ask you the same question.
Where do you see, like, programming and software pushing medicine in the next 10 years?
That's an interesting question.
Maybe in the direction of collecting information, storing information, and parsing information on a higher level, on a region, city, region, general population level.
Which is, there must be some work being done about that.
Yeah.
That privacy always gets in the way.
You know?
The privacy just makes it so hard to write that software.
It's all for the greater good.
But on a personal level, maybe, do you remember what was done with Watson, the IBM software, but taking the history of a patient and making a diagnosis of the patient in an automated way?
So maybe that's a possibility using AI or machine learning in a way that the processor, I wouldn't say less prone to error, but maybe it could be, you know, a safeguard or a backup for the doctor, for example.
Yeah, that's a really good point.
Something that verify the information and say, okay, the probability this being the illness is this much or could be this other problem, this other.
Yeah, when I was young, thinking about careers, you know, people always said, oh, you could become a doctor and you're always going to have a good job.
And it's always going to, you know, that is a stable, reliable job.
There are always going to be people and they're always going to need health care.
And if you want to be safe, you become a doctor or, you know, of course, if you're under a resident as well.
But that was a part of the message, I thought.
And I don't know that that's necessarily true anymore.
There is a physical part that is not going to go away.
It's not going away, not today, not in 10 years, 15 years.
But there's another part of the whole process that could be, I would say, improved by technology.
Yeah, for sure.
I mean, we saw some projects where they took mammogram pictures.
And the AIs were doing better than the radiologists on predicting cancer.
There's some stuff they took on doctor's notes and then figured out the readmission rates.
And actually, the AI was doing better on that.
And I can see a world where, like, a doctor is a skilled scientist who understands the body, but is also largely acting as a, like, a very knowledgeable counselor to help understand what the machines are saying.
It's going to be interesting.
Yeah.
There'll always be a place for doctors, but I think it's going to shift a little.
It'll be interesting.
All right.
Well, I guess we're going to probably leave it there just for the sake of time.
So it's all very interesting.
But we've got to ask you all the last final two questions, of course.
So just quickly go through both these.
We won't have a lot of time.
So, Giuseppe, I'll start with you.
Favorite editor or what you use day to day?
And then notable PyPI package.
I use Sublime Text with Anaconda, and I love it.
And that Anaconda is a plugin that makes Python editing better, not Anaconda, the distribution that distributes scientific packages.
That's correct.
Pretty clear for everyone, yeah?
And favorite package, I guess, I'll go with the request just because it saved my day in so many different occasions.
It is special.
Brian?
I'm a polyglot when it comes to editors.
I work most of it's in Jupyter for side projects.
Depending on how big the project is, if it's smaller, I'll just use Vim on Linux or Notepad, Wordpads, lightweight text editors on Windows.
Or if I do want a full IDE on Linux, I think it's pronounced Genie, G-E-A-N-Y.
Okay.
And then I'll pull up PyCharm on Windows.
And as for a package, I'm going to go kind of far from the usual fold, I think, here.
For one of my side projects where there's a technical program that runs some calculations, but it just spits data to the terminal.
But I want to run it async, and I've used a package called Sarge.
Sarge, okay.
Yeah, like Sargent and all.
Yeah.
To run it.
It's a wrapper around subprocess, I guess.
But it handles all of the pipes, the standard in, standard out, standard error, so that you don't get lockups from buffers filling up.
Oh, wow.
Okay.
Continuously flushes them and makes them available as capture objects that then you can pull and parse and spit back to the console if you want.
And it's like a version 0.1.5 or something, so it's still not only early development, but for what I've needed it for, it's worked really well.
That's cool.
So that's like that building block idea, right?
So now you can take these other processes and really easily click them together.
Mm-hmm.
Nice.
I love it.
Teresa?
As far as editors, I'm a big Jupyter fan, but also I just use Atom.
Nothing too crazy there.
And package-wise, I'll say one that's not necessarily my all-time favorite, but it saved me a ton of time recently.
So I'll give a little shout-out to OpenPyExcel, which is just a really convenient way to work with Excel sheets, especially if people want to save data in multiple tabs.
It's really very, very helpful.
Oh, that's cool.
Yeah, I've played just a little bit with that, and that is great.
And I think it's really relevant to the audience who would be interested in this particular show, right?
Like, very likely they've got some data in Excel and they want to just interact with it.
Well, here's a nice way to automate that from Python.
It's cool.
Yeah.
I haven't used it yet, but I'm planning on it.
Yeah, it's really good.
It'll let you just, like, tab through all the tabs that you might not be able to get if you just saved as a CSV and really very, very intuitive, I think.
You could even do formatting, I think, like colors and formulas and stuff like that.
It's pretty sweet.
Yeah, I think so.
I haven't gotten too much into that aspect, but I think that you can.
I think so, too.
I've just never needed to, like, programmatically set a color, but I could see how you might someday.
All right.
Well, thank you all for being on the show.
It's been really great to hear your stories and thanks for coming on and sharing them with everyone.
Thank you.
Thank you very much for the opportunity.
Really appreciate it.
Yeah, you bet.
Bye, everyone.
This has been another episode of Talk Python to Me.
Guests on this episode have been Giuseppe Consolo, Brian Skin, and Teresa Borkush.
It's been brought to you by Vetteri and Rollbar.
Vetteri will connect job seekers with thousands of great companies.
Make Monday something to celebrate.
Visit talkpython.fm/Vetteri.
That's V-E-T-T-E-R-Y.
And get a $500 bonus if you accept a job through them.
Rollbar takes the pain out of errors.
They give you the context and insight you need to quickly locate and fix errors that might have gone unnoticed until your users complain, of course.
As Talk Python to Me listeners, track a ridiculous number of errors for free at rollbar.com slash talkpythontome.
Want to level up your Python?
If you're just getting started, try my Python jumpstart by building 10 apps or our brand new 100 days of code in Python.
And if you're interested in more than one course, be sure to check out the Everything Bundle.
It's like a subscription that never expires.
Be sure to subscribe to the show.
Open your favorite podcatcher and search for Python.
We should be right at the top.
You can also find the iTunes feed at /itunes, Google Play feed at /play, and direct RSS feed at /rss on talkpython.fm.
This is your host, Michael Kennedy.
Thanks so much for listening.
I really appreciate it.
Now, get out there and write some Python code.
Thank you.
you
Thank you.