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 we've tested so far is the ErgoDox EZ. As the name suggests, it's one of the best ergonomic keyboards we've seen, as you can place it however you like with endless incline settings, and it has good programming features.
This keyboard comes with lots of blank keycaps, so you can program every key how you like and save up to 32 different layouts on a single profile. There are a ton of customization options and it's available in a wide variety of Cherry MX and Kailh switches. The keyboard has PBT keycaps which feel great to type on, and you can easily replace them if needed. The build quality is excellent, so it should last you a while, and although the whole keyboard feels solid, the rubber wrist rest is comfortable to use.
Unfortunately, there's no backlighting, which might be disappointing for those who program in dark environments. However, with its incredible customization options, this is the best ergonomic keyboard for programming we've tested so far.
If you're looking for a wireless ergonomic keyboard for programming, the Logitech ERGO K860 Wireless Split Keyboard is a decent alternative. It doesn't have the same customization options as the ErgoDox EZ, but it's an extremely ergonomic keyboard that has negative incline settings, which could relieve some stress on your wrists. It also offers a great typing quality, but unfortunately, it doesn't have any macro-programmable keys, although some keys can be customized to a list of preset commands.
If you're looking for the best ergonomic keyboard for programming, then check out the ErgoDox, but if you want a wireless ergonomic keyboard and don't mind losing some programming features, then look into the Logitech.
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 SteelSeries Apex 3 is the best budget keyboard for programming that we've tested so far. It's a full-size keyboard with great build quality, and it comes with a nice magnetic wrist rest for extra support. Every key on this keyboard can be reprogrammed using SteelSeries' Engine software, where you can also customize the RGB backlighting, though it's zone-lit instead of per-key.
The downside is that it uses rubber dome switches, which feel rather mushy and don't have satisfying tactile feedback. Also, although you can save profiles within the software, the keyboard doesn't have onboard memory, making it harder to switch to another computer. There's a cloud sync option available, but it requires the software to be installed on the computer as well as an account.
If you work on Linux, all keys function properly, however, you won't be able to customize the keyboard in any way. If you're shopping on a budget and you don't mind the rubber dome switches, this keyboard is a good option that won't break the bank.
If you want a wireless budget keyboard for programming, consider the Microsoft Bluetooth Keyboard. It doesn't have RGB lighting like the SteelSeries Apex 3, but it's a simple keyboard that won't take up much space on your desk. It's not exactly designed to be a programming keyboard, but if you're on a budget, it gets the job done. You can set the F4-F7 keys to a macro and it has a good overall typing experience as the rubber dome switches offer tactile feedback, but might feel heavy to type on. It's compatible with all the common operating systems, but some keys don't work depending on which OS you're on. Unfortunately, it doesn't have a wrist rest or any incline settings, but since it's a low-profile board, this shouldn't be a problem for most people.
The best budget keyboard for programming we've tested so far is the SteelSeries, but if you want a wireless keyboard, look into the Microsoft.
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.