Here is a list of my favorite programming languages: C# - simple, great design, very easy to do GUI. Disadvantages include small amount of libraries. Visual Studio Community is free and anyone with windows can download it and code. Python - it has some quirks, but overall simple language with huge support of community and massive amount of libraries. Easy to make nice graphs as well. Easy to run on linux, including Ubuntu. Python is used in TensorFlow and PyTorch . C++ - amazing language if you care about performance (you want to optimize memory usage or you want to make things as fast as possible). Now with STL , things got even easier. C++ Builder used to be my favorite coding environment for developing apps. CUDA and OpenCL (for GPGPU computing) both use C++. Matlab - high level language, which makes testing math ideas extremely easy. Many useful packages, but those come at extra costs. If you can't afford Matlab, you can try Scilab or Octave , which are free.