Skip to 0 minutes and 10 secondsWhen writing code, it is quite important to keep in mind the entire life cycle of your project. Typically for scientific software things start out small, it's just a quick hack to solve a single problem. So, good quality is not that important. But of course, over time your code base will grow. Also, it will get more complex. More importantly, others will start using your code, either just to verify your results or even as the basis for their own research as building blocks.
Skip to 0 minutes and 49 secondsNo doubt, you've had the following experience: You open a source file, you stare at it for minutes and you think, "What the heck?" Clearly, the author of that piece of code really failed to convey his intentions to you. Perhaps that can serve as motivation to try and create a clean code that is easy to read.
Skip to 1 minute and 21 secondsPerhaps you can think of coding as storytelling. It's not just about telling a piece of hardware what to do, it's actually more like writing a novel. So, it should be pleasant to read. We'll learn best practices to write clean code that's easy to understand. When you're using software, documentation is also quite important. Good quality documentation makes using software a lot less problematic and so, having documentation as a part of your release is quite important. Documentation can be written at various levels. For instance, at a level of your functions, classes and methods. For that API documentation you will learn about Doxygen, a tool that really generates beautifully looking documentation.
Skip to 2 minutes and 21 secondsAt the level of the application as a whole you will also require documentation, a manual, if you will. And you'll learn about MkDocs which will generate that for you. Of course, you'll also learn about best practices and do's and dont's in writing documentation.
Introduction to Week 1
Week 1 learning goals
During this week, you’ll learn about:
- Code style,
- Best coding practices,
- Error handling,
- Writing API documentation,
- Writing application documentation.