For a lot of programmers, having a good keyboard can significantly improve workflow. Spending countless hours typing requires a keyboard that's comfortable to type on, switches that feel light and responsive, and features such as programmable keys. Some of our recommendations are primarily gaming keyboards, but as it turns out, gamers and programmers have very similar needs.
We've reviewed over 60 keyboards and below are our top recommendations for the best keyboards for programming. Also see our recommendations for the best keyboards, the best wireless keyboards, and if you type more than you program, check out the best keyboards for writers.
The best keyboard for programming we've tested so far is the Razer BlackWidow Elite. Our unit features Razer's proprietary Orange mechanical switches, but you can get it with clicky or linear switches. The Orange switches have a light tactile bump that feels a lot like Cherry MX Browns, and they provide an excellent typing experience that won't tire you out.
If you work long hours and need extra support for your wrists, the keyboard comes with a nice plushy wrist rest that attaches magnetically. This keyboard also has dedicated media controls to adjust the volume, play, pause, or skip tracks. It's compatible with Razer's Synapse 3 software, where you can set macros, reprogram keys, or customize its full RGB backlighting. Profiles can be saved within the software or using the keyboard's onboard memory if you need to move to another computer.
Unfortunately, Synapse 3 is only available for Windows, and not macOS or Linux. Additionally, the keyboard has a USB passthrough to let you connect another peripheral or to charge a mobile device, and there's a 3.5mm headphone jack for convenience. On the whole, although this keyboard was designed for gaming, its performance and features should satisfy most programmers.
If you're looking for a smaller keyboard for programming, then the Obinslab Anne Pro 2 is an excellent alternative. Without a wrist rest, it doesn't have as good ergonomics as the Razer BlackWidow Elite, but it's a wireless keyboard, so your desk will be a bit cleaner without the extra wires. The unit we tested offers an outstanding typing experience with the Gateron Brown switches, but it's available with a variety of switches, so you can get the switch you feel most comfortable with. It has an amazing build quality with durable double-shot PBT keycaps, but unfortunately, the small size may cause some fatigue when typing. However, it has full RGB lighting and every key is macro-programmable through the ObinsKit software, which is compatible with Windows, macOS, and Linux computers.
If you're looking for the best keyboard for programming, then the Razer is a great choice, but if you prefer something smaller, the Obinslab is an excellent alternative.
The best ergonomic keyboard for programming is the Kinesis Freestyle Edge RGB. It's a split keyboard that comes with a comfortable, detachable wrist rest and it's available in a few different Cherry MX switches, although our unit has the Cherry MX Brown switches.
This keyboard is great for programming because all keys are macro programmable through the RGB SmartSet software. You can even set different actions to each key if you simply press it or hold it down. It has full RGB backlighting and you can control the brightness directly on the keyboard. The Cherry MX Brown switches offer some tactile feedback, don't take a ton of force to press, and offer good overall typing quality. Also, since this is a truly split keyboard, you can place the two halves how you like, and even though this keyboard doesn't have incline settings, you can buy a 'Lift Kit' separately if you like having your keyboard on an incline.
It's going to take some time to get used to its unique style, and even though it's a TKL keyboard with a NumPad, it has eight dedicated macro keys on the left side, giving you an extra set of keys you can reprogram. It's fully compatible with both Windows and Linux, and only the 'Pause' key doesn't work on macOS, so you can use this keyboard with whichever operating system you work with. All in all, it's a great programming keyboard, making it the best keyboard for coding with an ergonomic design we've tested so far.
If you want an ergonomic keyboard with even more customization options, then check out the ErgoDox EZ. It's more expensive than the Kinesis Freestyle Edge RGB, but it's one of the most customizable keyboards we've tested so far. You can purchase it in a wide variety of switches, with RGB backlighting, or without a lift kit or the wrist rests. Our unit comes with a ton of blank keycaps, so you can set them to do whatever function you want, but when you first get this keyboard, it's going to take some time to adapt to its truly unique design and layout. The companion software isn't your typical software, as you need to export a .hex file and reset the keyboard every time you want to install a different layout, which isn't convenient for everyone. However, this keyboard is fully functional on Windows, macOS, and Linux.
Overall, if you're looking for the best keyboard for programmers with an ergonomic, split design, check out the Kinesis, but if you don't mind spending more and getting a highly customizable option, check out the ErgoDox.
The best programming keyboard with macro keys we've tested so far is the Corsair K95 RGB PLATINUM XT. Although it's mainly designed to be a gaming keyboard, the six dedicated macro keys and the ability to reprogram every key make it favorable for programmers too.
This keyboard is available in different switches, including Cherry MX Speed (linear), Cherry MX Blue (clicky), and Cherry MX Brown (tactile), so you can get the switches you prefer the most. The unit we reviewed has the Blue switches, which are too loud for an office environment but offer great tactile feedback. The typing quality is excellent and the double-shot PBT keycaps feel stable and help minimize typos. The keys require a fair amount of actuation, so it might get tiring typing on this keyboard, but it comes with a comfortable wrist rest. Each key is individually lit, which is fantastic for those late-night programming sessions, and the overall build quality of the keyboard is amazing.
Unfortunately, the iCUE software isn't available on Linux, so the extra macro keys are disabled by default. If you program on Linux, you're going to have to set your macros on Windows or macOS, save it to the keyboard's onboard memory, then work on Linux. Besides this little issue, this is the best keyboard for programming with macro keys that we've tested so far.
If you prefer having a wireless keyboard with extra macro keys, the Logitech G915 LIGHTSPEED is a good choice. The typing quality isn't nearly as good as the Corsair K95 RGB PLATINUM XT, it has multi-device pairing with up to two devices, and it's easy to switch between devices. Each key is individually lit and you can customize the RGB lighting on a per-key basis through the user-friendly G HUB software. Unfortunately, you can't set macros to any key, but rather just the five dedicated macro keys on the left side. However, it has great build quality and the whole keyboard feels solid.
If you're looking for the best programming keyboard with macro keys, consider the Corsair, but if you prefer a wireless one, look into the Logitech.
The best keyboard for coding in the budget category is the Razer BlackWidow Lite. It's a mechanical keyboard with white backlighting, ideal for those programming sessions at night in dark rooms. It's available in either a black or white frame, and our unit is white, so the backlighting stands out a bit more with this keyboard.
This keyboard comes with proprietary Razer Orange switches, which have a low pre-travel distance and offer good tactile feedback, similar to Cherry MX Brown switches. It comes with O-rings you can add to reduce the noise, making the keyboard very quiet if you work in an office environment. The overall typing quality is excellent, but without a wrist rest and due to the higher profile of the keys, it could get tiring typing on this keyboard. There aren't any dedicated macro keys on this keyboard, but you can still set macros to any key through the Razer Synapse software, which is only available on Windows.
Unfortunately, even though this keyboard is fully compatible with Linux, the software isn't and there's no onboard memory, so you can't use this keyboard with macros on this operating system. A few keys don't work on macOS either, but it's fully compatible with Windows. All in all, this is a keyboard that won't cost you much and most programmers should be happy with it.
07/21/2020: Added the Kinesis Freestyle Edge RGB and removed the Logitech K860; replaced the SteelSeries Apex 3 with the Razer BlackWidow Lite; moved the Ergodox EZ to ergonomic alternative.
05/15/2020: Minor changes to text for clarity; updated notable mentions.
04/27/2020: Moved the ErgoDox EZ to the main ergonomic pick, and put the Logitech K860 as the alternative.
Our recommendations above are what we think are currently the best keyboards for programming for most people. We factor in the price, feedback from our visitors, and availability.
If you would like to do the work of choosing yourself, here is the list of all our keyboard reviews. Be careful not to get too caught up in the details. While no keyboard is perfect for every use, most are good enough to please almost everyone, and the differences are often not noticeable unless you really look for them.