The first thing I would suggest doing is to take your existing Windows machine and configure it for dual booting into Linux. If you want to make a clean break from Windows, just install Linux.
If you still want to buy a new machine for Linux…
Linux will run on almost anything.
An Intel/AMD-based PC? Sure. There may be some driver problems if you are using obscure or bleeding-edge hardware like newer video cards or other custom cards. But most devices have drivers that work find out-of-the-box. If you have a choice, I would recommend getting a large SSD and lots of memory over a gargantuan spinning hard drive or a gamer-level video card.
A Mac? Same deal as above.
A $5 Raspberry Pi Zero? It comes with Linux pre-installed. Nearly useless as a development machine, but it’s a Linux computer.
An older, PowerPC-based Mac? You’ll have to search around for a distribution that will support it (Debian is a good choice), but it’s a fine choice.
An even older, 68050-based Mac? I strongly suspect so.
Old Sun Workstations? Yep, got you covered.
You get the idea. If there’s some piece of hardware out there that is physically capable of running Linux, someone has probably made a port of it.
My advice is to get a top-of-the-line machine made last year. Linux is not a heavy-weight system, so it’ll run like a charm on even low-end hardware. By getting last year’s best machine, you save a bunch of money. For a development machine, you want to max out your memory if you can afford to, and get a decent sized SSD. An SSD and lots of memory will speed up your system better than any processor.
Other suggestions all depend on the style of development you are doing. If you are doing graphics development, get a top-nothc video card you are going to be developing for. If you are doing web development, you don’t need a top-notch graphics card, a $30 cheapy with HDMI output is more than sufficient (or use the integrated video on your motherboard). If you are doing something processor-intensive, it may make sense to splurge on a faster processor, but in general development is limited by how fast you can think, not by how your processor is.
You have several choices. If I were you, I’d start at the top of the list - then work down as your Linux expertise grows.
You can install Linux on a USB memory stick and boot your existing computer from that. This gives you a GREAT way to try Linux without having to mess up your existing computer or buy a new one. Many of the Linux distributions support this - and give you instructions on how to make a “bootable” USB stick. Then you change your BIOS settings to tell the computer to try booting from USB before it tries to boot from the hard drive.You can make your existing computer “dual boot” into either windows or Linux.
The instructions for doing this come with all of the good Linux distributions. What happens is that when you boot up your computer, there is a text menu popped up on the screen that lets you choose which operating system you want.
Generally, you set up a default so if you don’t choose one within (say) 10 seconds, it’ll boot into your default choice.Once you get to the point where you like Linux, you may find that you wake up one day and realize that you haven’t booted into Windows for a month and don’t forsee ever needing to do that!
But if you feel that you still need both OS’s - it’s unlikely that you’ll be running things like video games on your Linux machine - and having a fancy modern computer is really overkill for software development. I would go to a used computer store - or look in (say) Craigslist) for a used computer that’s for sale cheap. I go to places like “Discount Electronics” who have older machines for $100. Linux works great on older machines - and spending a lot of money on a fancy new computer shouldn’t be done until you know that you like/need Linux.
If you must buy a fancy new computer - then it probably doesn’t matter which PC you get. Linux works well on almost all PC’s that can run Windows. When you find a computer you like - just Google around and see if you can find anyone who has gotten Linux running on it. Most Linux people are more than happy to get a newbie up and running.
A few tips for people who use both Linux and Windows:
Download a piece of software called “Synergy” on both your Linux and Windows computers. I believe there’s a free download and you don’t really need the “pro-” version of it - but buy it anyway because the author wrote a VERY useful piece of software here - and deserves to earn some $$$ from it.
Synergy allows you to use the mouse and keyboard of one machine to control the other in a way that seems utterly natural and “seamless”! You set it up so that you place the two computer’s monitors side-by-side - with (say) the Linux computer on the left and the Windows machine on the right. If you slide the mouse off of the lefthand edge of the Windows machine’s display, it magically appears on the righthand edge of the Linux machine’s display - and vice-versa…you can share the keyboard and mouse - and you can even do “CUT” and “PASTE” between windows on the two different computers!Another neat thing to do is to set up the drive on your Windows machine to be an “SMB” shared drive - and then you can tell your Linux computer to access that drive as well as it’s own.
Now you can save files into that space on one computer and they’ll appear on the other one too!You can use “network printers” to share printers - or just tell the Windows machine to share it’s printer.
With those two things in place, you can smoothly work between the two computers as if they were almost like one machine!