Project

General

Profile

Wiki » History » Version 18

Nicolas Aunai, 01/01/2017 03:10 PM

1 2 Nicolas Aunai
# LPP dev guide
2
3 13 Nicolas Aunai
4 18 Nicolas Aunai
## Efficient scientific coding
5 13 Nicolas Aunai
6 17 Nicolas Aunai
You will find here material to help you get started with your coding. Depending on whether you mostly do data analysis or numerical modeling, you'll need slightly different tools and methods. the advice we give you will help to be efficient, rigorous and to write code than you'll be able to use, maintain and share in the long run. Now remember, **If you're a PhD or a post-doc**, following these advice will not only help you improving the quality and reproducibility of your science, but also will make all your coding efforts **reusable** for your future you and by people in the lab once you're gone. More importantly, it will give you the basic knowledge you need to legitimately claim for a data science / computing science position in the private sector.
7 13 Nicolas Aunai
8
9
* [[kickstartercommandments| The commandments of programming]]
10
* [[kickstartercommon| Common tools and methodology]] you'll need to get started.
11
12
Now, what are **you** doing?
13
14 17 Nicolas Aunai
* I'm mostly coding for [[dataanalysiskickstarter| data analysis]]
15
* I'm mostly coding for [[numericalmodelingkickstarter| numerical modeling]]
16 13 Nicolas Aunai
17 17 Nicolas Aunai
18
19 14 Andrea Ciardi
## Code review and analysis
20 15 Andrea Ciardi
### Review
21 13 Nicolas Aunai
22 15 Andrea Ciardi
[Code Review for Teams Too Busy to Review Code] (https://www.youtube.com/watch?v=1m3eRFeCInY) (youtube video)
23
[Nice tutorial on code review with Rhodecode](https://docs.rhodecode.com/RhodeCode-Enterprise/code-review/code-review.html)
24 14 Andrea Ciardi
25 15 Andrea Ciardi
### Analysis
26 14 Andrea Ciardi
27 15 Andrea Ciardi
[CPP Check](http://cppcheck.sourceforge.net)
28 14 Andrea Ciardi
29
### Performance
30
31 15 Andrea Ciardi
Videos
32 14 Andrea Ciardi
33 1 Alexis Jeandet
[Modern C++](https://www.youtube.com/watch?v=TJHgp1ugKGM)
34 14 Andrea Ciardi
35
Optimizations
36
37
[Instruction tables](http://www.agner.org/optimize/instruction_tables.pdf)
38 17 Nicolas Aunai
39 13 Nicolas Aunai
40 5 Alexis Jeandet
## Setting up a clean Python environment
41
42
* [[Python_and_virtualenv| Python and virtualenv]]
43
44 1 Alexis Jeandet
45
## C++ development
46
47
*  [[cpplanguage| The C++ language]]
48
* [[designpatterns| Design Pattern]] in general and in C++
49
* [[CppGurus| C++ Gurus]]
50
51 15 Andrea Ciardi
52
## Courses
53
54
These are useful links to check out regularly
55
56
PRACE training: https://events.prace-ri.eu/category/2/
57
58
Catalogue of courses: http://formation-calcul.fr/
59
60
Formation IDRIS: https://cours.idris.fr/php-plan/affiche_planning.php?total
61 6 Nicolas Aunai
62 11 Nicolas Aunai
## Code Design and Architecture
63 7 Nicolas Aunai
64 8 Nicolas Aunai
* [[solidprinciples| The S.O.L.I.D. principles]]
65 7 Nicolas Aunai
66
67 2 Nicolas Aunai
## Writing code
68
69 3 Nicolas Aunai
* [[codereview| Code review]]
70 4 Alexis Jeandet
* [[Useful_resources| Useful resources]]
71 6 Nicolas Aunai
72
73
## Documentation
74
75
* [[hyb-par: Documentationtools| Documentation Tools]]
76 16 Nicolas Aunai
77
## Dev Dej games
78
79
1 - show me your snippet
80
2 - explique à ton voisin
81
3 - montre nous ton blog préféré
82
4 - pull me quizz
83
5 - sell me (some features of ) your editor 
84
6 - critic my code
85
7 - show me a youtube video
86
8 - optimize my snippet
87
9 - translate my code 
88
10 - Ze lib of Ze Week