Project

General

Profile

Wiki » History » Revision 18

Revision 17 (Nicolas Aunai, 01/01/2017 11:18 AM) → Revision 18/19 (Nicolas Aunai, 01/01/2017 03:10 PM)

# LPP dev guide 


 ## Efficient Kick Starter for efficient scientific coding 

 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. 


 * [[kickstartercommandments| The commandments of programming]] 
 * [[kickstartercommon| Common tools and methodology]] you'll need to get started. 

 Now, what are **you** doing? 

 * I'm mostly coding for [[dataanalysiskickstarter| data analysis]] 
 * I'm mostly coding for [[numericalmodelingkickstarter| numerical modeling]] 



 ## Code review and analysis 
 ### Review 

 [Code Review for Teams Too Busy to Review Code] (https://www.youtube.com/watch?v=1m3eRFeCInY) (youtube video) 
 [Nice tutorial on code review with Rhodecode](https://docs.rhodecode.com/RhodeCode-Enterprise/code-review/code-review.html) 

 ### Analysis 

 [CPP Check](http://cppcheck.sourceforge.net) 

 ### Performance 

 Videos 

 [Modern C++](https://www.youtube.com/watch?v=TJHgp1ugKGM) 

 Optimizations 

 [Instruction tables](http://www.agner.org/optimize/instruction_tables.pdf) 


 ## Setting up a clean Python environment 

 * [[Python_and_virtualenv| Python and virtualenv]] 


 ## C++ development 

 *    [[cpplanguage| The C++ language]] 
 * [[designpatterns| Design Pattern]] in general and in C++ 
 * [[CppGurus| C++ Gurus]] 


 ## Courses 

 These are useful links to check out regularly 

 PRACE training: https://events.prace-ri.eu/category/2/ 

 Catalogue of courses: http://formation-calcul.fr/ 

 Formation IDRIS: https://cours.idris.fr/php-plan/affiche_planning.php?total 

 ## Code Design and Architecture 

 * [[solidprinciples| The S.O.L.I.D. principles]] 


 ## Writing code 

 * [[codereview| Code review]] 
 * [[Useful_resources| Useful resources]] 


 ## Documentation 

 * [[hyb-par: Documentationtools| Documentation Tools]] 

 ## Dev Dej games 

 1 - show me your snippet 
 2 - explique à ton voisin 
 3 - montre nous ton blog préféré 
 4 - pull me quizz 
 5 - sell me (some features of ) your editor  
 6 - critic my code 
 7 - show me a youtube video 
 8 - optimize my snippet 
 9 - translate my code  
 10 - Ze lib of Ze Week