Visit our site to listen to past episodes, support the show, and sign up for our mailing list.
Summary
The Software and Data Carpentry organizations have a mission of making it easier for scientists and data analysts in academia to replicate and review each others work. In order to achieve this goal they conduct training and workshops that teach modern best practices in software and data engineering, including version control and proper data management. In this episode we had the opportunity to speak with Maneesha Sane, the program coordinator for both organizations, so that we could learn more about how these projects are related and how they approach their mission.
Brief Introduction
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- Subscribe on iTunes, Stitcher, TuneIn or RSS
- Follow us on Twitter or Google+
- Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+
- I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com
- This episode is sponsored by Zato – Microservices, ESB, SOA, REST, API, and Cloud Integrations in Python. Visit zato.io to learn more about how to integrate smarter in the modern world.
- I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus.
- Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project
- We are recording today on November 10th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
- Today we are interviewing Maneesha Sane about Software Carpentry and Data Carpentry
Interview with Maneesha Sane
- Introductions
- How did you get introduced to Python?
- Can you explain what the Software and Data Carpentry organizations are and what their respective goals are?
- What is the history of these organizations and how are they related?
- What does a typical Software Carpentry or Data Carpentry workshop look like?
- What is the background of your instructors?
- Can you explain why Python was chosen as the language for your workshops and why it is such a good language to use for teaching proper software engineering practices to scientists?
- In what ways do the lessons taught by both groups differ and what parts are common between the two organizations?
- What are some of the most important tools and lessons that you teach to scientists in academia?
- Do you tend to focus mostly on procedural development or do you also teach object oriented programming in Software Carpentry?
- What is the target audience for Data Carpentry and what are some of the most important lessons and tools taught to them?
- Do you teach any particular method of pre-coding design like flowcharting, pseudocode, or top down decomposition in software carpentry?
- What scientific domains are most commonly represented among your workshop participants for Software Carpentry?
- What are some specific things the Python community and the Python core team could do to make it easier to adopt for your students?
- What are the most common concepts students have trouble with in software & data carpentry?
- How can our audience help support the goals of these organizations?
Picks
- Tobias
- Chris
- Maneesha
Keep In Touch
Links
The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
Hello, and welcome to podcast.init, the podcast about Python and the people who make it great. You can subscribe to our show on iTunes, Stitcher, TuneIn Radio, or add our RSS feed to your podcatcher of choice. You can also follow us on Twitter or Google plus and please give us feedback. You can leave us a review on iTunes, send us a tweet, an email, or leave us a message on Google plus or you can leave a comment on our show notes. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show, you can visit our site at pythonpodcast.com.
This episode is sponsored by Zato. Microservices, ESB, SOA, REST, API, and cloud integrations in Python. Visit zato.io to learn more about how to integrate smarter in the modern world. I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of podcast.init. Use the link hired.com/podcastinit to double your signing bonus. We are recording today on November 10, 2015, and your hosts as usual are Tobias Macey and Chris Patti. Today, we are interviewing Manisha Sanneh about software carpentry and data carpentry. Manisha, could you please introduce yourself?
[00:01:25] Unknown:
Sure. So, my name is Manisha Sanneh, and I actually wear, a bunch of hats doing a bit of, freelance database and programming work. I'm the organizer for the local, Python users group in Philadelphia and teach Python boot camps locally, but what I'm really here to talk about is my role as the program coordinator for 2, partner or sibling organizations called Software Carpentry and Data Carpentry. And so, of course, we'll spend the rest of this podcast going into detail about what these programs are and how they work. But in a nutshell, it's scientists teaching scientists the basic the basics of data management and analysis and computer programming, so that they have better tools to approach and manage their research.
[00:02:21] Unknown:
That's great. So how did you get introduced to Python?
[00:02:24] Unknown:
Good question. So I don't actually have a formal background in programming or computer science or anything like that. My background is in education and nonprofit management, and I've been working in that field for, you know, maybe 15 years or so, when about 5 years ago, I severely broke my leg. I had surgery on it and was stuck at home for a few months while all those pins and plates and screws, holding my leg together healed. And I've always had an interest in programming and database design and stuff like that, and so I figured, you know, while I couldn't go anywhere, couldn't really move, with my broken leg, I would just sit there with my laptop and go through every online tutorial I could find.
Choosing Python was actually a pretty random but really lucky choice for a first language. It wasn't until much later that I realized, 2 really big advantages of it, that it has a really well deserved reputation for being an easy first language to learn and that it also has a really amazing community focused on encouraging new learners on diversity and inclusivity, stuff like that. So I'm really glad I got into it, and, yeah, here I am.
[00:03:54] Unknown:
That's awesome. Talk about the classic example of of, you know, life giving you lemons and making lemonade out of it. Exactly.
[00:04:04] Unknown:
So can you share with us some of the history of the software and data carpentry organizations and how they're related?
[00:04:10] Unknown:
So, software carpentry was founded, by, Greg Wilson and Brent, Gorda. Greg is still working with us now. He is phasing out of his role as the executive director and focusing more on, training of our new instructors. But basically, you know, they were looking, you know, seeing scientists who were working with complex datasets and experimental designs in their research and things like that, but saw that the scientists didn't necessarily have the tools to automate any of those processes or to use, you know, version control to keep track of what they were doing or anything like that. And so their mission was to put these tools in the hands of researchers and scientists, kind of thinking about what computer scientists have, to teach, you know, physical scientists and engineers and, people in fields like that.
And Data Carpentry is a relatively newer organization, a spin off from Software Carpentry, and takes a similar approach, but it's less focused on, the software programming side of it and more focused on really kind of thinking about the whole data narrative, the whole data side, beginning with the very basics of just making sure your data is clean and organized, and going through, you know, what you need for data analysis and visualization.
[00:05:49] Unknown:
So what does a typical software carpentry or data carpentry workshop look like?
[00:05:54] Unknown:
Yeah. So our workshops are typically hosted at a university, or research institute, sometimes, government labs, places like that. And they're 2 days long, usually 2 full days, where we have 2 of our trained instructors leading a group of, usually around 20 to 40, students through the various parts of our curriculum. And we try to make sure that we have a really good balance of lectures and hands on activities so that students not only get to hear about these concepts and see demonstrations, from our instructors, but also get to work through, some of, some sample of problems on their own. And having 2 instructors is also really nice because, they get the chance to tag team and play off of each other.
It's, a lot less tiring than 1 person having to teach 2 full days. And then also lets instructors teach to their own strengths. So if, a 1 instructor is particularly proficient in, Python and Shell and the other 1 is especially proficient in Git, you know, they'll work together to, be able to co teach like that.
[00:07:16] Unknown:
So what is the background of your instructors?
[00:07:20] Unknown:
Yeah. So there is a few points about our instructors that I think make software carpentry and data carpentry really powerful programs. 1st is, you know, these programs are based on a peer to peer model, you know, scientists teaching scientists. It's not expert programmers, outside consultants coming in to teach. And, that's really important because we don't want our instructors to be outsiders. You know, they are scientists and researchers themselves, so they know what it's like to apply concepts of computer programming to scientific research. And then also, you know, the instructors themselves, because they are not expert necessarily expert programmers, their programming experience may actually just be a few steps ahead of their students.
And that is really important because we want them to the instructors to remember what it was like to be a novice, you know, to be exposed to and to learn these things for the first time, and what all of that struggle and discovery and that whole process felt like. And then lastly, they all go through a training program in order to become instructors that are certified to teach with us. And part of that is, you know, of course, demonstrating that they know the basic skills in what we teach, but we also, teach them about some pedagogical approaches important, specific to teaching adults, since adults often learn in different ways than youth do, and we want to be sure that our instructors have some teaching methods and, philosophies that they can apply in these contexts.
[00:09:11] Unknown:
Yeah. Having instructors who have a similar background to the people they're teaching and aren't too far advanced is definitely important because I know that a lot of times when I'm trying to explain concepts to more junior developers, I have a really hard time recapturing the beginner mind and remembering what pieces I actually had a hard time with because it was just so long ago.
[00:09:31] Unknown:
Right. And so, yeah, we want our instructors to be able to make that connection.
[00:09:36] Unknown:
Yeah. And I imagine that that greatly increases the effectiveness of the tutoring as well. Definitely. And can you explain why Python was chosen as the language to use for your workshops and what makes it such a good language to use for teaching proper software and data engineering practices to scientists?
[00:09:54] Unknown:
Yeah. Yeah. So, Python is actually not the only language that we teach. Our workshops are offered in Python, or r and actually also, with, MATLAB as another option. And when a so we have, you know, host sites, universities, research institutions, places like that, which will request a workshop, and they may already know whether they want it to be focused on Python or R or whatever. And sometimes they don't necessarily know. They're not sure. And so that's when I actually talk to them more about our approach. You know, 1 of the things I might ask them is to find out what language is more commonly used in their departments or their fields as a whole so that we can give them the skills and have, you know, common language that they can go back and connect back with their colleagues and peers.
And knowing so I know I'm on a Python podcast, so maybe I should be pitching Python. But, really, in the end, if people are totally new to programming and we know that their goal is to met to use the programming language to manage their research, It's not gonna make a huge difference whether their first exposure is to Python or R or something else. You know, there's nothing that you can do in Python that you can't do in r or the other way around. And what we're really trying to teach them is the tools they need to reshape their thinking towards problem solving. You know, we're teaching, the concepts of programming, and, you know, the secondary to that is the syntax of a particular language.
So a really simple example might be, you know, when you're assigning variables. You use the equal sign in Python, you use like the less than sign with a hyphen in R, but knowing that syntax doesn't really matter, doesn't make a huge difference if you don't get the concept of variables being assigned values. So, really, we're looking at, teaching the concepts. And then again, with Python specifically, you know, I think, like I said earlier, Python has pretty, a firmly a that make it a really good choice for, for scientific research.
[00:12:28] Unknown:
And in what ways do the lessons taught by both groups differ, and what parts are common between the 2 organizations?
[00:12:34] Unknown:
Mhmm. So, software carpentry has a core curriculum that always includes 3 components. 1 is the programming language that is used for data analysis, you know, R, Python, MATLAB, whatever the whoever we're doing the workshop with will choose. But then we also include 2 software programming tools, and that those would be namely, shell scripting so that they, our students learn how to do, you know, some basic file management and other navigation, straight from the command line. And then we also teach version control through Git, which is also really a really exciting tool because it just opens up sort of the way people are thinking about approaching their work, you know, not necessarily in a straight out linear, you know, step by step. These are the steps I'm taking, but to think about how people can start, you know, doing all the things that Git does, letting you, branch and experiment and merge in someone else's work so you can collaborate.
So we teach a lot of those things in the software carpentry curriculum. Data carpentry also does lessons on, data analysis through a programming language, just like software carpentry, but then doesn't necessarily focus on those tools of software programming like shell scripting and version control. Rather with data carpentry, we will use tools that are focused on data organization and cleanup, and that might include things as familiar as spreadsheets. You know, most people have used spreadsheets, and we're teaching them how to use them more effectively. But then also things like SQL, which I really like. It's exciting to see, like, what a difference it makes when you move beyond, you know, 2 dimensional datasets like spreadsheets into relational databases and continues to emphasize the need for clean and well organized data.
[00:14:43] Unknown:
And in the process of teaching them how to properly track and manipulate the data, do you also cover any tools to track the provenance of the data? Because I know that that can be a common issue in replicating people's research is understanding where all the bits of data came from and how they were obtained.
[00:15:03] Unknown:
Right. We don't necessarily go into that. I think some of it we will talk about, yeah, just knowing where your data is coming from. But we I think, are generally working with the understanding that the data that people have is, data that they have been in control of. I think it's important in any situation, you know, to be critical of your data sources. It will sometimes come up where, just because of the nature of whatever host organization we're working with, they may have tighter rules about the data that they use. It might be proprietary.
They might have other conditions that they can work with. And so we will work with our students and our hosts when things like that come up.
[00:15:57] Unknown:
And so what are some of the most important tools and lessons that you teach to scientists coming from academia?
[00:16:03] Unknown:
We talked a little bit about, you know, what we teach all those, programming and data management skills and tools, but really the biggest, takeaway I think that we want to see is that we're opening doors, for people to know that there are other approaches to problem solving and the work that they need to do. So for software carpentry and data carpentry alike, you know, we're not creating expert software programmers. I think that's an unrealistic goal for any kind of boot camp. And our programs, our workshops are typically 2 day boot camp style workshops.
But we what we are doing is exposing people to new tools and new approaches to existing problems more efficiently and, more accurately. So, you know, let's just say, as an example, you had a team of, like, you know, 50 field researchers who all returned their datasets as CSV files. So now you have these 50 CSVs, but you really only want the top 10 results from each 1. You know, nobody really wants to spend their time opening 50 files 1 by 1 and sorting each 1 and copying and pasting and, you know, doing all of that. So at the end of this workshop, you know, I would want people to realize that they don't have to do all of that, and they can ingest a couple of lines of code have all of that done. And not even necessarily knowing the exact code that they need to write, but really knowing that this is possibility.
So they may not leave the workshop knowing, you know, every line of code that they need to write off the top of their head, but they may leave the workshop knowing that it's programmatically possible to open and read a file, to sort elements, to access specific elements in a file, to do that, you know, to do that repetitively through a loop. And now they can think about how to put all of that together. So really, that's the biggest takeaway that we want them to have, a different approach to solving that problem.
[00:18:07] Unknown:
So do you tend to focus mostly on procedural development, or do you also teach object oriented programming in software carpentry?
[00:18:14] Unknown:
Yeah. So it would be great to be able to get into that, but, we don't really get into object oriented programming. I think that's a pretty big goal for an intro workshop, a 2 day boot camp, especially when Python is only a piece of it. You know, I've taught 2 day boot camps that are nothing but Python, and we still don't come close to touching object oriented programming. At this point, I think what we're really trying to teach people is how to think about, you know, breaking down their tasks into manageable steps, operating on data sets. So to that end, you know, we will teach people, you know, how to, do things like writing loops and writing functions because we do want them to get to that concept of writing reproducible code.
Objects and classes, I think, get a little more advanced than what we can cover. So maybe 1 day when we get to run more advanced workshops, but, yeah, it's not something we've been, tackling yet. No. I think that makes a lot of sense, especially when you think about, you know, all the pitfalls involved in
[00:19:24] Unknown:
actually composing your objects intelligently, and dealing with the the perils of inheritance, and, you know, all the rat holes you can end up going down, procedural programming gives people a tremendous tool chest in and of itself. So I think that's actually very smart.
[00:19:40] Unknown:
Yeah. Yeah. And there's so much that you can do without even having to touch, you know, objects and classes and stuff. So so, yeah, we still get to cover a lot.
[00:19:52] Unknown:
And what is the target audience for data carpentry, and what are some of the most important lessons and tools taught to them?
[00:19:59] Unknown:
Yeah. So I think both programs have a similar audience, but, as the name implies, data carpentry is more focused on the data management side. So we aren't, teaching some of the things that I talked about around, like, Git and shell scripting and stuff. So in this way, really, that's actually some place where, the question you asked before about just thinking about, you know, your data sources and making sure that, all of your data is, you know, coming from consistently consistent sources and stuff like that. We do actually look at, you know, how to begin by cleaning and organizing your data because if your data isn't clean and organized and consistently formatted and stuff like that, you know, the analysis that you run later is going to be flawed.
And so we really, take them through that whole process of, looking at your data and making sure that it's, clean and consistent and all of that, and then looking at, the data analysis tools that programs like Python and R and MATLAB have to offer.
[00:21:09] Unknown:
So do you teach any particular method of precoding design like flowcharting, pseudo code, or top down decomposition in software carpentry?
[00:21:18] Unknown:
Yeah. So we don't necessarily focus on 1 particular method, but definitely encourage people to use some kind of precoding methods. And that gets back to my point of, you know, trying to teach people the concepts and approaches first and the syntax, second. Kind of the syntax is just, a medium for that. I know when I'm teaching, if someone you know, if I have a student who is stuck with a problem, I'll actually have them step away from their code for a minute and think about what they want to do. I'm gonna talk it through in plain English, and, after that, come back to it and then think about what the syntax actually looks like. And so it could mean drawing a diagram or a flowchart.
It could mean, you know, writing in pseudo code. Just whatever takes them away from worrying about the syntax and just has them thinking about the logic. And really, it's not something that I do just when I'm teaching, it's something that I do and I think, most programmers do themselves when they're trying to work through, a certain problem. It makes such a difference when you can think about stuff just kind of, like, on a human level and using basic logic and then applying the syntax to it.
[00:22:37] Unknown:
It definitely does, but I but I also think, you know, especially people for whom software is not their primary occupation, you know, they're not software developers. They're scientists. Right? I can only imagine the pressure must be even more intense to not take that time and to just sit there and bang it out and get it going. I mean, that happens to those of us who are software engineers. So it's great that you folks do emphasize that, okay. Sit down. Take some time to actually think through what it is you're trying to build. Because as you point out, you know, sometimes answering that question in a really clear cut, simple to articulate and understand way is the most you know, 1 of the most important aspects of good software design, period. Right?
[00:23:20] Unknown:
Right. Right. And a lot of times when people talk about it and start to think about it in plain English, those words that relate back to the actual syntax of whatever language they're using actually come out and you hear people using words like 'if' or using words like go through something 1 by 1, and then you're like, okay. So let's think about a loop. So it's it it connects, pretty easily back to the syntax that we actually want them need them to use.
[00:23:48] Unknown:
And do you have any sense of what your workshop participants generally find to be the most revelatory aspect of the boot camp?
[00:23:57] Unknown:
You know, I I think it really varies based on the, background of the participants. We do sometimes have, you know, participants who are already coming in with a little bit of programming background. And so in that case, something like, you know, just learning what a loop is might not be that big a deal because they've already done it in other languages. I think 1 of my favorite things to teach and what I see as most transformatory is actually teaching Git. It's something that I think has the steepest learning curve, and some of it is, you know, just learning the vocabulary. Like, I know when I was first learning it, I had to, you know, force myself to remember, you know, what direction a pull or a push was or things like that. But some of it is also just, changing your way of thinking. Like I was saying, you are not going linear step by step, workflow anymore. You have branches and merges. You're able to step forward and back.
And once you get the hang of it, it's incredibly empowering because it just frees you up to make mistakes and to experiment and to share. And you're not going to ruin your work if you do something bad because you know that you branched off or did something like that. So so I think Git is probably 1 of the most, transformatory, but also 1 of the things that I think people, struggle with the most. So it's something that, you know, has a big trade off for, you know, putting in, a bit of effort.
[00:25:40] Unknown:
Yeah. I can definitely agree that having a good understanding and use case for software for, version control is pretty game changing because I remember when I first started using it and realized that could very easily do experimentation without having to worry about completely destroying my working tree. And just having an easy reset button definitely frees you up to, like you said, do more exploration without having to worry about the changes that you're actually making and being able to get back to a working state. Because as long as you are careful about when you make commits and branches, then all of your history will still be available.
[00:26:19] Unknown:
Yeah. Exactly. And that's why, like I said, it's so it completely, transforms, like, how you think about approaching your problem because you aren't thinking about it linearly. You're thinking about it in, just I can take all kinds of directions I want. And if I need to go back to where I started, I can. So
[00:26:37] Unknown:
And so what scientific domains are most commonly represented among your workshop participants for software carpentry?
[00:26:44] Unknown:
Yeah. So software carpentry itself is actually, domain agnostic, and we of our students as well as our instructors, they really come from across all kinds of scientific domains. You know, we have biologists and geologists and, pretty much, anything you can think of. Data carpentry is a little different. Its lessons are a little more are, more domain specific where we have lessons that are specifically using, you know, biological data or genomic data. We're also working on some in, not necessarily the hard sciences, but in, like, library science and other fields. And, with the intent of, you know, the idea that if the data the sample data that we're using to teach is more relevant to your work, it's a little easier to grasp, the concepts, but it doesn't mean that, you know, you must be in this field to understand this, to understand this lesson. And the so really the universities that request our workshop and consequently the students that, participate in our workshops usually represent a pretty broad spectrum of scientific domains.
[00:28:05] Unknown:
What are some specific things the Python community and the Python core team could do to make it easier to adopt for your students?
[00:28:14] Unknown:
Yeah. So we have of the Python community, you know, we have a really active group within our own instructor pool, our instructors who run all of our workshops, and they've been able to do some really great stuff. We recently ported our whole curriculum to Python 3. That was a really big step for us. We use the Anaconda distribution, so we don't need to worry about, you know, installation of specific packages, since we are teaching things like NumPy and Matplotlib. You know, it kind of all comes together. And so we've had some really active instructors from the Python community maintaining all of that. As far as the Python community as a whole, our curriculum is actually all open source. It's all on GitHub, and so there are definitely opportunities to contribute to our lessons.
If you go to our GitHub page, and I think we can put all of this in the show notes, you know, there's a bunch of open issues that you can come in and take a look at and, yeah, just help us to continue to develop our curriculum.
[00:29:24] Unknown:
So what are some of the most common concepts students have trouble with in software and data carpentry?
[00:29:31] Unknown:
Sure. So I talked a little bit about Git because that is something that I think, of anything we teach, probably has the steepest learning curve. But beyond that, I think sometimes there is just that general intimidation of writing a computer program. You know? Like, I'm I don't know what the computer is gonna do if I enter this command or if I run this script or whatever. And what I like to tell students when they are coming in with that mindset is that, yeah, you might not know this command now, but we're teaching you the basics and we're showing you that, you know, you can look up or ask what a certain command does.
And once you gain that and, once you do that and you have that knowledge and understanding, you enter the realm of my favorite thing about computer programming is that computers do only and exactly what you tell them to do, and that's not something that you'll ever experience in your interpersonal relationships. You know? When was the last time your coworker, spouse, friend, kid, whoever did only and exactly what you expect, told them or expected them to do. And so there is this idea that, you know, you're gaining so much precision and control because that's because, because, yeah, your computer is only going to do what you tell it to do, and nothing more, nothing less.
[00:31:00] Unknown:
So it's almost like the xkcd cartoon, Sudu Make Me A Sandwich. I don't know if you've ever seen that. Yes.
[00:31:07] Unknown:
Yeah. I wish I could use sudo on my kids sometimes. And so, what are some ways that our audience can help support the goals of the software and data carpentry organizations? Is there any need for additional volunteer instructors
[00:31:21] Unknown:
or any any other support that they can provide? Uh-huh. So there are actually a lot of ways that people can get involved. 1 way, like you were just saying, is to sign up for instructor training. We have a training coming up in December, but I think by the time this podcast comes out, the deadline for signing up for that will have passed. But definitely keep an eye out for other trainings. The trainings we've done, trainings online, so you don't necessarily need to be in a specific location. But, yeah, definitely sign up for instructor training. You can, like I was saying, earlier, check out our curriculum.
It's all, on our website, and on GitHub, it's all open source. Not just the Python parts of it, but, you know, the r and SQL and shell scripting and all that stuff. So you can not only contribute to the curriculum, but since it's all available on our website, you can actually follow along if you want to learn all of this, if this all sounds exciting, but you can't actually get yourself to a workshop. You know, play with it, provide feedback to us. You can even use it to teach parts of, any or all of our lesson in your own school or workplace. We have requirements if you're actually using the software carpentry name and branding it as a software carpentry workshop.
But other than that, if you just want to use parts of our workshop in, like I said, where you are, you know, you're definitely welcome to do so. We have a discussion mailing list, where people ask questions and share resources, success stories, all that sort of stuff, and that's an open list that anyone can join. You can actually request a workshop if you think that your school or your workplace would benefit from this kind of training. You can follow our blog, follow us on Twitter to stay, connected with what we're doing. And, again, I guess we can put links to all of this in the show notes.
[00:33:14] Unknown:
Yes. Definitely. Is there anything that we didn't ask you that you think we should have or anything that you want to mention before we move to the picks?
[00:33:22] Unknown:
I think the big thing I just wanna say is that, I really wanna plug for carpentry and Dan Carpentry as a member driven organizations. We have just a couple of people who are, you know, paid staff, but we are completely built on volunteer efforts. It's our volunteer instructors who are not just, you know, actually teaching the workshops, but are also continuing to, you know, develop our curriculum, they'll mentor new instructors, they'll work on things like assessment and communication so we can gauge the impact of our programs and spread the word. And I just I really think that that speaks volumes that, you know, people would not be willing to give up their time like this if they and their colleagues didn't find some real value in it, And so the fact that, like, it is completely built on volunteer efforts, is, to me, 1 of the most impressive.
[00:34:19] Unknown:
And so how are the software and data carpentry workshops funded? Are they paid for by the people who are receiving the training, or is there some sort of nonprofit organization that has accepts grants and donations?
[00:34:31] Unknown:
Just curious how that works. Yeah. So it's a bit of all of that. Sites might request, so sites when they request individual workshops, you know, we have a fee structure for, each workshop, and it's based on whether the host is, you know, a nonprofit, university, government law, stuff like that, or a corporate host. And details of that whole free fee structure can be found on our website. And then we also have institutional memberships where a site might, make a pay for a larger membership fee. And there's a series of benefits and obligations that come with that. And, again, details are on our website.
And then we do also have, money that just comes in as donations, whether it's from the sites that we work with who actually want to contribute a little extra or, philanthropic organization, foundations, making donations, things like that. And both, Software Carpentry and DADA Carpentry are, not independent nonprofits, but fiscally sponsored projects of an organization called NumFocus, which supports a lot of open data and community based tech initiatives.
[00:35:49] Unknown:
Excellent. So if there's not anything else that you wanted to mention, then we'll go ahead and move to the picks. Sounds good. So for my first pick today, I'm going to choose the Vivaldi browser, which is a new browser that was started by 1 of the original founders of the Opera browser. And it's still in beta, so there are some rough edges. But for the most part, it's really well executed. It's actually built primarily in Node and React, and it uses the Blink rendering engine from Chrome. So as a result of that, you can actually install Chrome extensions. And that's 1 of the things that has made me able to actually transition to using that as my primary browser because there were a number of extensions that were exclusive to Chrome that I used, which I couldn't find in Firefox or Opera.
And now that I can move those over to Vivaldi, I can take advantage of that. And there are just a bunch of other niceties that it has like tab stacking and being able to actually tile your browser panes so that you can view them side by side in the same window, which is pretty slick. And for my next pick, I'm going to choose choose Vite. In, which is the scheduling service that we use for getting all of our podcast episodes scheduled. And it's just well done because it lets you very easily suggest some times and dates. And everybody who you invite can either vote on those suggestions or make their own suggestions until everybody involved can agree on a time. And then you just click confirm, and it's automatically in everybody's calendar.
So it's definitely simplified and reduced a lot of the back and forth emailing that would have been associated with getting people scheduled otherwise.
[00:37:29] Unknown:
Absolutely. I I'm sorry. I just wanna say 1 thing. Those folks have been really great. They've really helped me debug a rather hairy configuration issue that I was having that was keeping me from getting the most out of the service. And we're not even premium users, so they you know, I I I'm fairly impressed.
[00:37:45] Unknown:
Yeah. Yeah. They've definitely been pretty great. And it's still a fairly new tool, but it's pretty well polished. So I definitely recommend people check it out. And I also have actually been using it for scheduling personal things as well because you can create a scheduling page where anybody you give it to can request some time on your calendar and that helps with getting things scheduled as well because you don't have to go do the back and forth of oh, this is when I'm available and this is when I'm available. You just send them a link and they can pick a few times that work for their schedule. And you just pick the 1 that works for yours, and everything's done.
So for my last pick, I'm going to choose the Pocket Casts application for listening to podcasts. That's what I use on a daily basis on my Android tablet. And it's just got a bunch of really nice features. 1 of the things I really like is being able to sync your subscriptions and your progress between devices. So if you are listening on your tablet and you also have a phone, for instance, then it will keep track of that. But they also have a web player that will sync with your progress as well. So definitely just very well executed. Definitely recommend checking it out. And I also appreciate the ability to accelerate playback so that I can listen to my podcast at 2.5x speed since I have about 60 that I'm subscribed to, and there's no way I'd get through them otherwise. And with that, I will pass it to you, Chris.
[00:39:08] Unknown:
Okay. So so I'm in a musical mood today. My first pick is a series of, albums. They're essentially freely available, like like, pay what you want kind of thing on Bandcamp called Chiptunes equals win. If you're old and crusty like me and grew up with, you know, 8 bit computers and the like in video games, chiptunes are kinda cool. It's people making modern music with really old hardware. It's it's funky and novel, and I really dig it. The next is a playlist called electronic study music on Spotify. I really like it. It's it's really just great music to focus and work to, and I feel like I'm underselling it, but that's all I'll say about that. And my 3rd pick is a very cerebral, very interesting rapper call who goes by Super Galactic Expansive.
His lyrics, you know, have any everything from, Vedic philosophy to metaphysics. It's just very, very, very interesting, very like, you end up saying, what did he say? Did he say that? And it it's just it's really great great stuff. And that's it for me. Manisha, what do you have for picks?
[00:40:21] Unknown:
Sure. So I have a couple that are Python and programming related and 1 that isn't. The first 1 is an Android app called Q Python. I'm not sure if it's available for iPhone. But basically, it's a Python, IDE that works on your Android phone or tablet, and it's not something that I actually use when, you know, I'm really coding, but I like to use it when I'm out, you know, just listening to a talk, or watching a presentation, or even listening to a podcast like this, and the speaker talks about, like, a cool, trick, some little syntactical thing or whatever, and I want to see what it looks like. I don't always have my laptop open and in front of me, so I'll type in liner 2 in Q Python, on my tablet and see what happens.
I couldn't imagine actually writing out code on my tablet, but, it's nice just to try something quick like that when you're not at your desk. So my second pick is a YouTube channel called New Boston, and I have no idea why it's called New Boston, but, I actually watched this guy's he does, video tutorials, and I watched his, Python videos way back when I was teaching myself Python with a broken leg. And there were some of my favorite tutorials back then, but he was also clearly just starting out making them. And I've revisited it recently and now he's got, you know, a whole website with, hundreds of videos across, a dozen or so languages and other topics he's teaching about. It's much more polished, and so it's a nice, resource for learners.
And my last pick, this is a non Python, non programming pick, is a webcomic called, Lunar Baboon. It's 1 of my favorite webcomics. It's about the intersection between parenthood and nerdom, I guess. I live at that intersection myself, so I find it very relatable. And it's just a fun look at this, nerdy dad and his 2 little his wife and 2 little kids. And so this is just a fun pick.
[00:42:34] Unknown:
I'm definitely gonna have to take a look at that 1 because I'm a parent as well, so I always appreciate some of that humor. So for anybody who wants to keep in touch with you and follow what you and software and data carpentry organizations are up to, what would be the best way for them to do that?
[00:42:50] Unknown:
Okay. So to contact us, me personally, I'm on Twitter at Manisha Sani, all 1 word, and, occasionally, blog. My website is manisha sani.com. But what I really wanna push push is, of course, contacting Software Carpentry and Data Carpentry. So each organization's website, software carpentry.org, That actually has a hyphen in it, software hyphen carpentry, and data carpentry.org without a hyphen. And then you can also find, you know, you can find email addresses and, forms to request workshops and more information and and things like that there. And then both organizations, or both programs are also on Twitter.
Software carpentry is sw carpentry, and data carpentry is, data carpentry. No hyphens or anything like that. Excellent.
[00:43:49] Unknown:
Well, we definitely appreciate you taking the time out of your day to join us and tell us more about those organizations. I'm sure our audience will appreciate learning more about them.
[00:43:57] Unknown:
Great. Thanks so much. Thanks. Bye bye.
Introduction and Podcast Information
Interview with Manisha Sanneh
Manisha's Introduction to Python
History of Software and Data Carpentry
Structure of Carpentry Workshops
Background of Instructors
Choosing Python for Workshops
Differences Between Software and Data Carpentry
Key Lessons for Scientists
Focus on Procedural Development
Target Audience for Data Carpentry
Precoding Design Methods
Revelatory Aspects of Boot Camps
Scientific Domains Represented
Support from the Python Community
Common Challenges for Students
Supporting Software and Data Carpentry
Funding for Workshops
Picks and Recommendations
Contact Information and Closing