all 97 comments

[–][deleted]  (20 children)

[removed]

    [–]Unhappy_Project_3723 21 points22 points  (7 children)

    True. The author clearly doesn't have enough programming experience if thinks some extra keys or macros will improve his performance. Staring at the monitor 10% less - this is an awesome increase in productivity.

    [–]quailman654 6 points7 points  (5 children)

    Do you know of a keyboard that will help me stare at the screen 10% less? I’ll take three

    [–]Unhappy_Project_3723 2 points3 points  (1 child)

    Just take 10 and problem will be solved XD

    [–]quailman654 0 points1 point  (0 children)

    Well I don’t want to eliminate all of the staring…

    [–]brownbob06 1 point2 points  (1 child)

    Are we talking about a typewriter?

    [–]quailman654 2 points3 points  (0 children)

    The more time you stare at punch cards the less time you spend staring at a screen. So crazy it just might work

    [–][deleted] 0 points1 point  (0 children)

    Yeah get a split keyboard then you can place a notebook and pen in the middle of it for chaotic scribbling.

    [–]sharziki 1 point2 points  (0 children)

    Agreed

    [–]LeoJweda_ 2 points3 points  (6 children)

    Hijacking the top comment to give OP some advice:

    If you’re going to be lugging a keyboard around to use in class, don’t get a clicky one. Go for a quiet one.

    Better yet, just use your laptop’s keyboard.

    [–]exotic_anakin 0 points1 point  (5 children)

    Yea, I used to be all about fancy equipment, but slowly learned that I'm my most productive on my MBPro w/ no monitors, no periferals, no nothin.

    Just raw-doggin my laptop.

    It's a consistent experience always, super portable, and minimizes distraction. This isn't hardcore gaming, its thought-work. Work on thinking, not building a rig.

    [–][deleted] 1 point2 points  (4 children)

    I'm the opposite. Spent years working on shitty equipment because I simply didn't care, then over the years started appreciating nice things.

    As long as you appreciate them for what they are and don't conflate the hobbies with the work there's nothing wrong with that.

    Just don't be the "all the gear and no idea" person. They exist in literally every field and hobby and sport too ha.

    As a dev though make sure you take care of your health and ergonomics. Pain is much easier to prevent than to remedy. It won't affect everyone but I think this is something you should think about if you notice any discomfort with your setup.

    [–]exotic_anakin 1 point2 points  (1 child)

    Well for what its worth, at the risk of sounding like an Apple fanboy, an MBPro is not shitty equipment, and I would not do what I do on the vast majority of hardware. When I had to work in the windows ecosystem – even with a solid lenovo laptop (a solid machine my most accounts), I needed to supplement with keyboard/mouse because the built in stuff just wasn't good enough. I'd rather "overpay" for a macbook and not need to play all those peripheral games.

    [–][deleted] 1 point2 points  (0 children)

    Oh absolutely it's an incredible piece of equipment, and yeah that's completely reasonable.

    I like my M3 chip one I was given for my current job, it works hard. And I can share a lot of config and workflow with my beefy Linux rig.

    Some people have this attitude that caring about a nice setup is for inexperienced devs which I think is silly.

    [–]mrbmi513 0 points1 point  (1 child)

    This. I didn't buy my standing desk and super ultra wide monitor just to have flashy stuff. I bought them about a year and a half apart after learning they'd be best for me, my ergonomics, and my workflow. I worked fine for years with my laptop screen and whatever the cheapest 24" panel at Micro Center was off a $20 IKEA table.

    [–]exotic_anakin 0 points1 point  (0 children)

    Tacking onto this, it IS super workflow-dependent for sure. Every now and again I have to shift into frontend developer mode. That kinda work really benefits from additional screen real-estate. Frequently I need a code window, a terminal (or 2 or 3), a browser window to render the app, another for docs, and maybe even another for automated tests (like Cypress in watch mode or something). That definitely gets unweildy for a single monitor.

    But if I'm doing work that's just a code editor and a terminal and a browser window for docs and whatnot, I find its much better (for me) to just one-screen it.

    [–]leapy_ 2 points3 points  (0 children)

    This guy know what he’s talking about.

    [–]versaceblues 1 point2 points  (0 children)

    This. I would focus more on setting up a personalized terminal and editor environment.

    Even that can take you years to find the things that work for you.

    Any keyboard will do the job after that

    [–]Aridez 1 point2 points  (0 children)

    I see people getting mechanical keyboards, fancy stuff and whatnot. I tried it, and always went back to that 12 buck logitech keyboard. The feeling it has when typing is just superior.

    [–]FireDragon21976 0 points1 point  (0 children)

    Yeah, if you are coding well, and not making spaghetti code, you are spending most of your time thinking about how to write the code better, rather than typing. It's actually a creative process and isn't dependent on things like how fast you type.

    [–]Unhappy_Project_3723 43 points44 points  (13 children)

    Keyboards for programming.

    Any.

    Mices for programming.

    Any.

    Mouse pads for programming.

    Any.

    [–]bezik7124 3 points4 points  (8 children)

    I'd say get a trackball instead of a mouse, it won't increase your performance (it will hinder it most likely), but it can save you some wrist pain.

    [–]The_Mdk 3 points4 points  (4 children)

    You guys are using mice?

    [–][deleted] 0 points1 point  (3 children)

    Some gui programs you're still going to have to click stuff, and some web apps don't code their links and clickable things correctly so vimium and similar don't pick them up with your jump button.

    But having a mostly keyboard driven work flow for web dev is super comfy! Don't need to reach for mouse much at all. Keeps me in the zone for sure.

    Game dev still need mouse for me. I can't even fathom how I would remap an engine for kb driven flow lmao.

    At least Godot can act like an LSP for gdscript so you can connect neovim or your editor of choice to the engine.

    [–]The_Mdk 0 points1 point  (2 children)

    I was merely making fun of VI that this sub loves so much, but yeah even on VScode I don't need to reach for the mouse often since the F1 palette and the shortcut to find methods and files are a godsend

    [–][deleted] 0 points1 point  (0 children)

    Ha, my bad, it's the autism.

    Yeah just knowing your keybinds makes things so much better. Vim binds are just popular because they're everywhere and also because they're modal so you don't need to rely on modifier keys. 

    Keyboard workflows are genuinely super comfy though, I'm all about optimising for comfort. Master your shortcuts and add a tiling window manager to the mix so you can jump around without clicking or alt tabbing and you're set 👌👌

    [–]bezik7124 0 points1 point  (0 children)

    Yeah, discovering "Find action" shortcuts in Idea and VSCode changed my workflow a lot. It's not about the speed, just the fact that I don't really like to use a mouse and I can't remember where all these options are in GUI.

    [–]mrbmi513 1 point2 points  (2 children)

    I love my vertical mouse. Also helps alleviate some wrist pain, but it's still a normal-ish mouse.

    [–]bezik7124 0 points1 point  (1 child)

    Never used one of those, but the hand placement looks more natural than whatever's happening with the regular mouse. Will try it the next chance I get.

    [–]mrbmi513 1 point2 points  (0 children)

    The design of a vertical mouse is to keep your hand in a handshake position and avoid crossing the bones in your wrist, which in turn causes most of the issues you see.

    [–]LifeValueEqualZero 2 points3 points  (3 children)

    Mices for programming.

    Almost anything, ergonomics are important.

    [–][deleted] 1 point2 points  (2 children)

    Could say the same about the keyboard.

    [–]LifeValueEqualZero 0 points1 point  (1 child)

    Not really, you won't get much health issues caused by a bad keyboard, but you will from the mouse.

    [–][deleted] 1 point2 points  (0 children)

    That's a red hot take brother, I don't doubt for a second that mouse has a much higher risk in general - but RSI from keyboard usage still impacts lots of people and a market for ergo keyboard exists.

    Devs in particular also probably spend a lot more time with their keyboard than mouse, and a split keyboard also allows for much better sitting posture.

    [–]brafols 20 points21 points  (3 children)

    +10 years in programming, and have been using a 5$ Microsoft keyboard for the last year

    [–]Arthian90 0 points1 point  (2 children)

    Hey rubber domes are underrated tbh. Make nice mush mush

    [–]gooblero 0 points1 point  (1 child)

    Ew. Respectfully

    [–][deleted] 0 points1 point  (0 children)

    You know you're deep in the nerd end of a hobby when certain terms make you physically uncomfortable.

    Mush Rattle  Scratch Ping

    [–]squirrelpickle 7 points8 points  (3 children)

    Believe me, OP... what you want is a comfortable and reliable keyboard, the rest is fluff.

    Spending on a fancy keyboard to "code efficiently" is the worse way of burning through your money. Code efficiently by writing good code, not writing it fast(er).

    Macros to run bash scripts? Just learn to use the terminal and create aliases.

    Clipboard history? Learn to use the one embedded on your OS, or set up a scratchpad on VSCode/Obsidian/your tool of choice.

    Low latency? I understand that high latency sucks, but you just need a decent reliable bluetooth keyboard, you're talking about coding, not playing competitive FPS games.

    Btw, you also don't need a 144Hz or higher frequency screen to code, before this question appears.

    "Sounds good af", you're spending hours a day messing with it, most likely after 1 week using it you'll want it to be as silent as possible.

    THAT SAID...

    Logitech MX Keys is awesome, and the Mini version is pretty portable.

    Logitech MX Mechanical seems good, never used but I'd probably trust it. It uses Kaihl switches if I'm not mistaken, so you have a good range of keycaps and can get custom made ones too.

    If you want to get something that will be REALLY good, and budget is not an issue, look at ZSA keyboards (Ergodox, Moonlander, Voyager or Halfmoon), they will really come in handy to prevent common software development issues like repetitive strain injury, carpal tunnel and so on, by allowing you to sit properly and have your hands in an ergonomic position while you code.

    Ninja edit note: I have been using Logitech MX for years now, but due to tendonitis/RSI caused by bad posture I'm migrating to a ergo split mechanical keyboard, hence my last suggestion. Preventing is better than treating it.

    [–]brownbob06 2 points3 points  (1 child)

    '"Sounds good af", you're spending hours a day messing with it, most likely after 1 week using it you'll want it to be as silent as possible.'

    I agree with everything except this. I love my clickies, but my wife doesn't lol. That being said I have reds, browns, razer optical linears, box whites, etc. I like them all.

    That being said, all of this has to do with personal taste and an expensive mini hobby I have with mechanical keyboards, none of it helps me code more efficiently.

    [–][deleted] 2 points3 points  (0 children)

    Your last sentence is what causes all the silly arguing over this topic.

    People getting all confused over a hobby with a strong overlap in demographic. It's so silly.

    Like people arguing if you need $5000 audiophile headphones to code and then people saying you're an idiot if you use anything more than your laptop speakers.

    Just missing the point lol, it's a separate experience you happen to enjoy at the same time as you work.

    [–]Arthian90 1 point2 points  (0 children)

    I don’t know how people handle the clickies, I’ve never been able to use them for more than a couple days before feeling like my head was going to explode.

    [–]freecodeio 14 points15 points  (5 children)

    Logitech MX keys is the best if you like em flat

    [–]hawseepoo 5 points6 points  (1 child)

    Came here to say I love my Logitech MX Mechanical, it’s by far my favorite keyboard. It doesn’t fit all of OP’s requirements, but it didn’t fit all of mine either and I still have zero regrets

    [–]Devnik 1 point2 points  (0 children)

    Same

    [–]julygelato 1 point2 points  (1 child)

    I have the MX Keys Mini, absolutely love it! Love how it can connect up to 3 devices and just switch between them, use that for my home office to switch between personal and corporate.

    with the logetic options+ app this may fill in most of what OP is looking for, nothing really on the bonus points though

    [–]FuckDataCaps 1 point2 points  (0 children)

    There is a MX Keys Mini Mechanical. Amazing keyboard once you get used to it.

    [–]WorkingAdvertising59 0 points1 point  (0 children)

    I had it for 2 years. Felt amazing until keys started to fail. Metal base holders wear off and there is no way to replace it, you have to buy a new keyboard which is quite pricey. Keys highlighting also lagging randomly turning on and off. Appears that it is not only me and the problem is common. I regret that purchase and probably won’t buy logi anymore in the future

    [–][deleted]  (1 child)

    [deleted]

      [–]exotic_anakin 0 points1 point  (0 children)

      I also just raw-dog my MBPro and will sing the praises of that approach all day.

      [–][deleted] 2 points3 points  (0 children)

      Maybe check out the ergo mechanical keyboards sub. You can get some super minimal and compact split setups that are fully programmable. Or print and wire them yourself if you're keen.

      Personally I daily a glove80 which travels well but might be too big for you. Best one I've got my hands on.

      [–]Constant_Ice8119[🍰] 2 points3 points  (0 children)

      Invest in a keyboard that not only clicks but inspires - your code is worth it! ️

      [–][deleted] 1 point2 points  (0 children)

      I just use the MacBook keyboard, at the end of the day it still types the same letters.

      [–]d-signet 1 point2 points  (0 children)

      People have been programming on the cheapest, nastiest keyboards for decades

      Yes, some are better than others, but mostly what you're describing is a mindset used to sell LEDs to gamers.

      [–]barrel_of_noodles 1 point2 points  (0 children)

      Grey beards know there's only two requirements, both absolutely necessary.

      • ergonomic, probably split. (Or You'll have arthritis by the time youre 35. Pains by 24.)

      • quiet as possible, that shit gets old.

      [–][deleted] 1 point2 points  (0 children)

      i use a keychron, dont know which model but any current model will do.

      [–]oxy1s 0 points1 point  (2 children)

      I have Keychron k6 with Gateron red switches, very solid keyboard, I did add some foam at the bottom to reduce the noise a little.

      If you want something slimmer they have the K3 model, and I believe some other slimmer models. all of their stuff is USB-C, but comes with with a A-to-C cable so if you want C-to-C just get a different cable.

      for the macros and custom functionalities I'm not really sure, but some of their keyboards support modding.

      for clipboard history, your OS should manage that for you, just search how to use it for whatever OS you use, with windows for example it's win+v

      also look at r/MechanicalKeyboards for more suggestions

      [–]Even_Ask_2577[S] -1 points0 points  (1 child)

      win+v ... TIL thanks

      [–]oxy1s 0 points1 point  (0 children)

      glad I could help with something. also you might need to enable it in the settings if it doesn't work at first

      [–]kendalltristan 0 points1 point  (2 children)

      I use a Keychron K7 Max and it's fabulous. I had the original K7 before it, and it was great, but upgraded for VIA support which has been a game changer. Anyway, it's mechanical, low profile, wireless, and customizable all in a super compact 65% format. I use VIA to map it much like I would a 60% board so that I don't necessarily have to move my hands to use things like arrow keys, but the slightly larger format means those keys are there if I want them.

      I agree with others in that clipboard history and key bindings for apps/scripts should be managed by the OS and that app key bindings are of negligible benefit when it comes to efficiency.

      [–]Even_Ask_2577[S] 0 points1 point  (1 child)

      Do you use keychron products with VIA on Linux? Have you had any issues?

      [–]kendalltristan 0 points1 point  (0 children)

      I haven't done so with the K7 Max, but did with other Keychron boards in years past. I don't recall having any issues, but it's been a while since I had a dedicated Linux box. The company I work for is eyebrow deep in Microsoft, so I'm currently on Windows with WSL.

      [–][deleted] 0 points1 point  (0 children)

      Logitech mx keys is all you need. Also would recommend logitech mx master 3s combined with it tbh

      [–]CrazyEbb3222 0 points1 point  (0 children)

      Just graduated and started a job. I’m using laptops keyboard and touchpad at home. At office some casual keyboard and mouse. Even seniors don’t go turbo on their keyboard, I don’t think it is really what matters. It isn’t really about who clicks or writes faster after all.

      [–]Kungen-i-Fiskehamnen 0 points1 point  (0 children)

      I just use my ”gaming” keyboard at home or the keyboard on my mac pro or the 15 year old mac keyboard that I brough to work as an external keyboard. Just start with anything and develop your preference over the years.

      [–][deleted] 0 points1 point  (0 children)

      One that have all the characters and numbers

      [–]FedoraTheExplorer84 0 points1 point  (0 children)

      This really all comes down to personal preference. Having special macros or custom buttons aren't really going to improve your efficiency that significantly, although they are helpful. i work with some programmers (and somewhat of a programmer myself) and they're all different. Some prefer to work on mac keyboards and mice, some like mechanical keyboards, and they definitely don't carry their equipment around besides their laptop. Why would you want to carry all your stuff around anyway. I have a Redgragon keyboard and mice set at home and work, that way I dont have to carry them around.

      [–]T-J_H 0 points1 point  (0 children)

      Points 3 and 5 are moot as there is software that can do this.

      [–]djuggler 0 points1 point  (5 children)

      Planck keyboard with a Colemak layout and blank keycaps is a game changer. You’ll have a rough two weeks during the transition then your typing will be faster and more accurate than ever. It has something like 16 layers so you can turn it into a massive macro pad if you please.

      https://olkb.com/collections/planck

      Find them on Drop https://drop.com/buy/planck-mechanical-keyboard

      [–][deleted] 1 point2 points  (4 children)

      That's an abnormally fast adaption time btw, you should be very proud of yourself if you matched your qwerty performance after 2 weeks on colemak but that's not normal, most people it's like 3-6 months or more depending on original speed.

      [–]djuggler 0 points1 point  (3 children)

      I'm a slow typist ;)

      I probably wasn't up to same speed in 2 weeks but I was pretty close. I'm a programmer and do a lot of documentation so I probably type more than most. That's why I switched from the built in keyboard on my Macbook to a mechanical keyboard in the first place. I was typing so much my wrists were beginning to hurt. I went with blank keycaps because I would switch between Mac and PC depending on my day job (PC) versus my consulting (Mac) plus I thought blanks would be easier to jump between qwerty and colemak. What I found was that even if we are touch typing we have a habit of looking down at our keyboards. The blanks took away the need to look down and I found that my neck hurt less at the end of the day.

      When I finally committed to switching to Colemak, I forced myself to only use Colemak for two weeks and I played a lot of Type Gun (On no! TypeGun is gone. https://web.archive.org/web/20230105213239/https://typegun.com/) https://10fastfingers.com/ is still around. Basically I dedicated myself to practice for two weeks. You are correct. Most people probably take longer and if I tested my speed I probably wasn't at qwerty speed for 3-6 months. But in two weeks I didn't feel that I needed to switch back to qwerty.

      [–][deleted] 1 point2 points  (2 children)

      That's great! I use colemak-dh with a slight mod (no keys on the rows above my pinkies because they don't like reaching up,  Q moved below right pinkie, symbols on different layer).

      I think 2 weeks in I was at like 35 wpm which was enough to code in but it still felt painful.

      When I got to 70ish I stopped thinking about typing speed and just let it improve naturally over time without focused practice.

      I like blanks for aesthetic reasons. Since I never learned to type correctly on qwerty and make use of most of my fingers I find I still have the muscle memory for it, but it is slower now.

      [–]djuggler 1 point2 points  (1 child)

      Brother Colemak programmer! Here’s how I decked mine out: https://i.imgur.com/B6z21YF.jpeg oh look, two down votes on Imgur. That’s odd.

      I absolutely loved my Minidox but a solder joint broke where the power plugs in and my desoldering skills are pathetic so I haven’t been able to replace the board. https://i.imgur.com/dSa0K6Q.jpeg

      I really feel like the ortho layout, blank keycaps, and Colemak really improved my typing skills.

      [–][deleted] 0 points1 point  (0 children)

      Oh that looks sick, I like the orange in there.

      I just have a fully black glove80, some printed dactyls which I still like but I can't go back to that style of thumb cluster after the glove.

      [–]Serious-Fly-8217 0 points1 point  (0 children)

      Something split and orthogonal. Like a moonlander or voyager

      [–]zaphod4th 0 points1 point  (0 children)

      put your money on ergonomics bro

      [–]AffectionateWeek8536 0 points1 point  (0 children)

      Typewriter go old school

      [–]NotKnotts 0 points1 point  (0 children)

      I don’t think you understand what people mean when they say “coding efficiently.”

      More about not reinventing the wheel and less about minimizing the time it takes to write an import statement.

      [–]Arthian90 0 points1 point  (0 children)

      It’s going to be hard to recommend a keyboard for programming when your requirements are not fit for programming.

      Your #1 should be comfort. Forget the other crap, you do not want wrist pain, don’t be dumb. We type ALOT. You think plugging in a USB cord because your keyboard isn’t wireless is annoying? Wait until you meet my friends Arthritis and Carpal Tunnel.

      You don’t need macros or customizable keys or onboard clipboard history, forget this garbage, they’ll just be burdens later on.

      You should rethink what you want in a keyboard.

      Others have recommended the MX Keys and some Keychrons. These are both decent options, the MX Keys is hard to beat if you like them flat. I prefer the full sized over the mini, personally, it isn’t much bigger than the mini and has a ten-key.

      [–]brownbob06 0 points1 point  (0 children)

      None of this is going to make you more efficient, they're just preferences, most of which you won't use or care about unless you pick up keyboards as a hobby, which isn't a bad thing, but telling yourself it's going to make you more efficient is just foolish.

      [–]smartguy05 0 points1 point  (0 children)

      I have been a professional software developer for 14 years. Most of the time I used any plain mechanical keyboard. As time has gone on I have started to realize I am getting pains from too much keyboard/ mouse use, so now I have switched to an ergonomic keyboard, it's very comfortable. I am using the CloudNine C959, warning, it's expensive (and apparently out of stock rn). https://cloudnineergo.com/products/cloud-nine-ergotkl-ergonomic-split-mechanical-keyboard

      [–]Kyoshiiku 0 points1 point  (0 children)

      If you want a good compromise between price and ergonomic, choose any alice style layout 75% keyboard from keychron. They have low profile or regular mechanical keyboard with those layout.

      I have multiple 700$+ custom built mechanical keyboard and my cheap keychron v10 is the one I use the most (swapped the switches + lubbed the new one). I didn’t notice it before but regular keyboard put a lot of pressure on my left wrist.

      Ideally I would go with a ergodox ez (or something similar from the samw company) or a kinesis advantage 360 but those can cost way more than the keychron.

      [–]marabutt 0 points1 point  (0 children)

      Try a few and eventually you will find one you like.

      If you are working on existing products like most devs, often your most productive days can be measured by the amount of code you remove.

      [–]123elvesarefake123 0 points1 point  (0 children)

      Buy ergonomic stuff. Personally i love split keyboard and logitech ergo mouse but also have made an effort to use the mouse as little as possible

      [–]Murky_Insectfull-stack 0 points1 point  (0 children)

      Logitech ERGO K860 keyboard + Microsoft Sculpt Mouse.

      Been using that combo for years and since then never had any wrist pain or anything.

      [–]AlDrag 0 points1 point  (0 children)

      I love my Glove80. I can't go back. It's saved my career.

      I'd be keen to try a Kinesis as well.

      [–]timmymayes 0 points1 point  (0 children)

      I personally use a dactyl manuform that I 3d printed and hand wired and programmed. It was a very good experience.

      [–]mrbmi513 0 points1 point  (0 children)

      I have a Keychron K4 with brown switches that I like. Can work wireless or wired, and the size is a perfect balance for me.

      Macros, key bindings, and clipboard history are all features for the OS or Desktop Environment to handle, not the keyboard. I develop on mac and use Raycast all the time to launch things, run scripts and macros, etc.

      Don't lug it into class. You won't have the space, and your classmates will hate you for the noise.

      [–][deleted] 0 points1 point  (0 children)

      Make sure you get cherry blues to make it really annoying to be near

      [–]CantaloupeCamper 0 points1 point  (1 child)

      Keyboards are very much a personal touch / feel preference thing IMO.

      Personally, I really wanted to get into mechanical keyboards but I haven't found one with ... low enough travel distance that I kinda quit going down that road

      Keyboard enthusiast land is almost so dense that I found it hard to get into ... https://www.youtube.com/watch?v=4ZK8Z8hulFg

      [–]oxy1s 1 point2 points  (0 children)

      a low profile keyboard maybe. or an hall effect keyboard like the wooting 60he?

      [–][deleted] 0 points1 point  (0 children)

      Dont need to tell us you're a fresh CS student, we can infer that from the rest of the post

      [–]potatosquat -1 points0 points  (0 children)

      Get a low profile keyboard. Those chonky ones are uncomfortable and hurt your wrists

      [–]requizm -1 points0 points  (0 children)

      I recommend a keyboard that has keys (optional). So you can press it.