]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add to the resources for programmers mentioned in step-1. 14527/head
authorWolfgang Bangerth <bangerth@colostate.edu>
Sat, 3 Dec 2022 03:40:52 +0000 (20:40 -0700)
committerWolfgang Bangerth <bangerth@colostate.edu>
Sat, 3 Dec 2022 03:40:52 +0000 (20:40 -0700)
doc/doxygen/references.bib
examples/step-1/doc/intro.dox

index 550aafab7c961df09c1c34b4e3476f546933c831..4e381b41c577ead08cc95df5917a60fef736935b 100644 (file)
@@ -1717,6 +1717,28 @@ numpages = {15}
   edition =   {second}
 }
 
+@book{Refactoring,
+  author = {Martin Fowler},
+  title = {Refactoring: Improving the Design of Existing Code},
+  publisher = {Addison-Wesley},
+  year = {2018},
+  edition =   {second}
+}
+
+@article{Comellas_2023,
+        doi = {10.1016/j.euromechsol.2022.104845},
+        url = {https://doi.org/10.1016/j.euromechsol.2022.104845},
+        year = 2023,
+        month = {jan},
+        publisher = {Elsevier {BV}},
+        volume = {97},
+        pages = {104845},
+        author = {E. Comellas and J.-P. Pelteret and W. Bangerth},
+        title = {I'm stuck! How to efficiently debug computational solid mechanics models so you can enjoy the beauty of simulations},
+        journal = {European Journal of Mechanics - A/Solids}
+}
+
+
 @article{gottlieb2001strong,
   author =    {S. Gottlieb and C.-W. Shu and E. Tadmor},
   title =     {Strong stability-preserving high-order time discretization methods},
index 42a52dff3621875913c06532629cee21e70142be..ead99932b8021002aecc69e223240c52c1835d58 100644 (file)
@@ -172,7 +172,7 @@ with code written by others, that you may have to think about documenting your
 own code because you may not remember what exactly it is doing a year down the
 road (or because others will be using it as well), or coming up with ways to
 test that your program is doing the right thing. None of this is something
-that we typically train mathematicians, engineers, or scientists in but that
+that we typically train mathematicians, engineers, or scientists to do but that
 is important when you start writing software of more than a few hundred
 lines. Remember: Producing software is not the same as just writing code.
 
@@ -187,12 +187,17 @@ are worthwhile browsing through before you start any large-scale programming:
 
 - You will benefit from becoming a better programmer. An excellent
   resource to this end is the book
-  [Code Complete](https://en.wikipedia.org/wiki/Code_Complete)
+  [Code Complete](https://www.oreilly.com/library/view/code-complete-2nd/0735619670/)
   by Steve McConnell @cite CodeComplete . It's already
   a few years old, with the last edition published in 2004, but it has
   lost none of its appeal as a guide to good programming practices,
   and some of the principal developers use it as a group reading
-  project with every generation of their research group members.
+  project with every generation of their research group members. Another
+  good programming book is
+  [Refactoring: Improving the Design of Existing Code](https://martinfowler.com/books/refactoring.html)
+  by Martin Fowler that is a great introduction and resource for how
+  to continuously transform existing code to make it fit for future
+  extension @cite Refactoring .
 
 - The <a href="http://software-carpentry.org/">Software Carpentry project</a>
   that provides introductions to many topics that are important to dealing
@@ -210,6 +215,14 @@ are worthwhile browsing through before you start any large-scale programming:
   that site are recorded tutorials and webinars that cover many
   interesting topics.
 
+- An article a few of us wrote, called <a
+  href="https://doi.org/10.1016/j.euromechsol.2022.104845">I'm stuck!
+  How to efficiently debug computational solid mechanics models so you
+  can enjoy the beauty of simulations</a> @cite Comellas_2023 .
+  This article discusses in
+  great detail what you do if a code doesn't work. It is also
+  available on <a href="https://arxiv.org/abs/2209.04198">arXiv</a>.
+
 - An article on <a href="http://arxiv.org/abs/1210.0530">Best
   Practices for Scientific Computing</a> that gives an introduction to
   many of the ways by which you can make sure you are an efficient

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.