Recommended Software Tools
-
Operating system: Linux.
No need to explain, right?
If you are interested in the latest developments especially concerning the kernel reading LWN is a must. -
Linux Distribution: I’m currently shifting from Ubuntu to Fedora, since Ubuntu takes too many lonely decision like Unity and Mir. But I’ll also have a look at the next version of Scientific Linux, which has a much longer maintenance period than Fedora. That means no need to do an upgrade every 6 months.
-
Editor: vim
The vi editor is installed on every platform from embedded to high end server. Vim is the most common vi clone. If you type with ten fingers, vim is the fastest editor you can imagine. -
Version control system: git
Distributed version control systems have just too many advantages.
Since many high-profile projects like the Linux kernel use git one can trust its reliability. The day-to-day commands are easy to learn. But sometimes you need a git-expert in your team. -
Programming language: C++
Again a software which is available on all platforms from embedded to high end server.
If you don’t want to write Assembler, C++ is the language which reaches the highest processing speed. But at the same time one can use all the object oriented goodies for non-performance critical parts. I like especially templates which allow to write generic code which run as fast as if it was hand optimized. -
Script language: Python
If it is not about processing speed but about development time, a script language comes in handy. I don’t like all aspects of Python, but it is very common and has a huge number of libraries available. For scientific development have a look at SciPy. -
Text processing: Latex
Writing directly a document markup language instead of using a WYSIWYG-editor allows using a version control system for the documents (including solving merge conflicts!). Ever tried this with Word?