Computer tools are indispensable during scientific work. Experience has taught me that the following criteria are helpful in making a tool selection out of many options:
- Cross-platform. I use Linux, others at RAM use MAC-OSX and some use Windows. It is a great benefit if the OS that you will use is a personal choice, and not enforced by a tool you depend on. However, in your research you will build on the work of others and you will usually also collaborate on a common product. This goes more efficiently if you use the same tools as those others. Cross-platform tools are therefore the way to go.
- Open File Formats-compliant. If your tool conforms to open standards, then the risk of vendor-lockin is much lower.
- Plain text files for storage. Amongst others, such files are handled better by version control systems like git, which enhance productivity and collaboration.
- Established Open Source Software. Such software has the great benefit of a helpful community. Furthermore, you can tweak it to conform to your particular needs, should you want to.
This has lead me to use the following softwares for common tasks:
- Documents and reports: Latex with TexMaker or ODF with OpenOffice / LibreOffice
- Presentations: Latex-Beamer with TexMaker or ODF with OpenOffice / LibreOffice
- Drawings: SVG with Inkscape
- Graphs: with yED / OpenOffice / LibreOffice
- Plots: scripts using Matplotlib with Spyder
- Programming: C++/Qml/C with Qt-Creator and gcc/mingw or python with Spyder
- Math and calculations: Scilab or NumPy/SciPy with Spyder
It is generally a good idea to start using a version control system right from the start of your assignment. I recommend to use git.
You can keep your local git repository (the thing that stores your versioned documents) synchronized with a git repository on a server. You are free choose between the git server of the RAM lab or the one at imotec. Please take note of the fact that your production is not automatically open for the public domain, so you are not allowed to use a free hosting service such as github unless I explicitly gave permission. The advantage of synchronizing with a server is that these are automatically backed up.
If you have also adapted the tools listed above, you will have the additional benefit of easy collaboration. Git has very nice functionality for merging text-based documents that have been modified concurrently.
Be sure to check out the RAM Wiki, it contains much useful info.