Introducing Software Engineering for Scientists & Engineers
Share
Have you been using Python in your workflow for a few months, or even a few years, and you want to take your software development to the next level? Have you ever wondered how things should be named and organized in your code to make it easier to maintain? Did you ever wonder what "software maintenance" even means?
What about improving performance — where to start? How to measure it? What to do to actually make your code run faster? Or what about source control — have you ever tried to learn git and then gotten really confused or discouraged?
Or maybe testing is the thing that gives you heartburn. Either you don't know how to get started, or you did get started but then found that your tests slow you down more than they help, and you don't think it's actually worth it.
Maybe you used to be a solo developer and now find yourself in a small team and need help knowing how to coordinate efforts with other developers. Or maybe you're just curious about the "Agile" and "Waterfall" management styles and want an introduction to them.
If any or all of these ideas resonate with you, then Software Engineering for Scientists & Engineers is the class for you!
Overview
Software Engineering for Scientists & Engineers is the same class formerly taught in the Enthought Academy curriculum, but now taught under license by Diller Digital.
We also sometimes call this class "Software Craftsmanship"; in it we talk about improving your software development skills as a craft, and we take a somewhat different approach from the other classes in the Diller Digital curriculum. That is, this is a discussion-oriented class, more like a seminar, and we'll cover a range of topics by first hearing the experiences and ideas of the class members before learning a new tool, or a better way to use an old familiar tool. We've found that class members often have helpful experiences or anecdotes to share that enrich the instructor-led discussions. There is often more than one good way to solve a problem or accomplish a task, so be prepared to speak up with your questions, comments, and stories. If you've read our other blog posts, you'll know that at Diller Digital, we love good questions, and in this class, we want to hear your stories, too! This class was always a favorite among Enthought instructors, and it certainly is at Diller Digital as well.
What to Expect
On each day of this 5 half-day class, we'll cover two topics with a short break in between. Some of the sessions are more discussion focused, like the first one where we talk about the history of software engineering as a discipline, why it's important, why it is the way it is, and some of the surprising and inspirational stories it has produced. Other sessions are a bit more more hands-on, like the ones where we talk about logging, testing, profiling, and using source control. In all of them, though, we welcome your contributions in the form of questions, comments, or your own experiences.
Results
By the end of this course you'll have the confidence that comes with increased competence in crafting better software: software that's less buggy, easier to modify in the future, and more performant. You'll have a better understanding of the major management styles and how to perform (and receive) effective code reviews. And you'll have met new people and heard some interesting and helpful stories from different perspectives that will enrich your work life moving forward.
Testimonials
"Amazing course with lots of language agnostic guidance and plenty of python specific strategies and tactics."
- Stephen, Engineer at NASA
"This course is worth your time and investment. I highly recommend you take this course once you are finding that your code has grown to start to interface with others. It's a higher level course, but needed as soon as possible. Perhaps some repetition is warranted..."
- Anonymous, Research Engineer at NASA
"Tim was a fantastic teacher. I really was unsure about what I was going to be learning in the course and initially was worried there would be a lot of coding without much guidance. Tim instead lectured and provided a lot of insight and direction, making it easy to take notes and have a seamless learning experience each day."
- Anonymous, Engineer in IT Operations
"If you are doing anything more than a one-off scripting project, you should be thinking about software engineering. This class lays out the basic framework and all the considerations. The discussion helps to fill in the details and the course material serves as a good reference. Highly recommended."
- Sam, SAS Consultant
"The instructor did an excellent job of facilitating and encouraging meaningful discussion, which was the most impactful part of the course for me."
- Anonymous, R&D Scientists in Nuclear Engineering