Linux-based operating systems are designed by programmers, for programmers.... Well, I mean - technically they're for everybody really. But seeing as it's free - programmers really get a great deal more value for their money out of Linux than regular users.
For starters - you have ALL of the tools you need for creating virtually ANY type of software, using virtually ANY programming language you can imagine.
You have Text editors, Compilers, Debuggers, IDE's, Interpreters for scripted languages, lint-tools, test-suites, code profilers, multiple version control systems (svn,git, bazaar etc), language bindings for thousands of libraries - to allow you to add support for all kinds of neat things - and most of the well known libraries have bindings for multiple languages. Lots of different GUI/application frameworks, game engines, graphics libraries.
You have a fully featured terminal, with a ton of powerful tools built-in and thousands more tools available.
If you are a web developer - there are http servers like apache, httpd, Nginx, tomcat etc etc. So you can install and set up a test server and run/test your website/web-app locally before deploying it to a real server.
If you are into web security/penentration testing, or malware analysis - Linux has entire distros loaded with tools for that.
You can even set up a cross-compiler to allow you to build software for other OSes and architectures.
e.g. build software for Windows, for systems using other processor types - like ARM, or other embedded devices.
All major programming languages are supported - along with a ton of less known/less used languages and even older legacy languages.
You can literally do anything!
And the best part is - it's all completely free!
The only real price is a bit of a learning curve and the time taken to learn how to use the toolchain for the type of development you want to do.
But you have an entire world of possibilities open to you. Seriously, what's not to like?!