I have an Apple trackpad which I use to give my hand a break from the mouse, but I find that if I use it heavily for a day or two I get sore fingers. I use a mechanical keyboard. That too tends to cut up my fingers, and I’m on the lookout for a better one, or at least better keycaps.
I’ve been doing this for 45 years now, since age 19. Along the way I’ve used punchcards, line mode editors, TECO itself and two TECO-inspired full screen editors, various full-screen editors like DEC’s EDT, and emacs. I know vi, and will by habit drop into it when editing config files and so on, but don’t subscribe to the view that it solves the RSI problem. So I do know how to edit efficiently using keyboard shortcuts, but now think it’s the wrong thing to do.
I went through a stage where I used emacs and a Happy Hacking Keyboard, and was very sore at the end of it.
I am not slow with my mouse. I can churn out ~2000 lines of good C++ in a day. (But I am not a fan of the language from a typing point of view!)
I use a tenkeyless keyboard, which doesn’t have the calculator block at the right. The ones which have it I find put the mouse too far off to my right. It’s very important to me that there are OPTION and COMMAND keys on both sides of the keyboard, so that the opposite hand is doing the shifting; I’m never pressing two keys at once with fingers from the same hand. I’ve never used an ergonomic keyboard.
I've used a traditional mouse and keyboard since I was around 7 and can easily spend a whole day in front of my computer.
Lately I've been wondering if it's simply just my inability to sit still which has helped me so far. I feel like I always need to change my sitting position. I can sink down in my chair, put my legs up on something, move my feet, lean on my desk in awkward positions, stretch and twist my body and so on. Not because anything hurts, but because I just feel restless.
But sometimes when I've been intensely in the zone while programming, I don't move as much and then I might start to feel some stiffness in my arms, fingers, etc. I would also notice my eyes get sore, maybe because I don't blink as much?
Only thing that helps is excercise.
I go to the gym at least 2x a week.
When gyms were closed during lockdowns I did not excercise or had much of movement anyway. Then I got my back hurting and other stuff.
Now I am back at the gym and all issues went away. Also I don’t lift super heavy but moderately like I don’t bench press 100kg so I finish at 70kg usually. So it more important to move than lift heavy. All gym bros will tell you to put on more weights but you don’t have to if it is not your goal. My goal is to be healthy.
Switching chairs is another one for me. I do have a HAG Capisco at my fully ergonomic standing desk setup but also work from the couch or kitchen table in between.
But yes, exercise is the main pillar; and AFAIR ergonomics basically means no repetitive or same posture or movement over longer stretches of time; body wants to change position and move about.
Lastly, breaking habit of overwork if current work phase allows (always questioning if the case / if working efficiently).
Ergonomics are a reasonably complex topic that’s its own speciality and there’s not much in the way of one size fits all solutions.
- Lower than normal desk height is more comfortable.
- Lower than normal chair height is more comfortable.
- Using a laptop is tiring unless it's on a desk.
- Using a laptop on my lap in a couch gives me neck pain.
- I should preferably not have to tilt my neck to look at the center of a screen.
- Using a macbook trackpad over extended periods of time can give me some wrist discomfort. I find myself often twisting and cracking my wris if I don't use a mouse because of the discomfort.
- Some chairs work better than others but I'm not sure what it is. Price does not seem to correlate at all.
Somewhat related:
- Sleeping on a pillow that is too tall gives me neck pain and headache. (from staying in hotels, friends, family, etc)
- Sleeping on very hard mattresses is preferable over soft. (seems more common in asia)
I get a bit of pain from long typing, especially writing prose, but it usually resolves itself pretty quick. However I knew a guy during my PhD who was like 30, used arm braces, a standing desk, ergonomic keyboard and mouse and took regular break on a timer AND was under lots of pain. That's bad genetic luck.
I've written more details about it here:
Win - Alt - Ctrl - Space - Ctrl - Alt - Win
This is so that I can use my thumbs for Ctrl and index fingers for Alt. I taught myself to use the opposite side modifiers every time (using the right control for Ctrl-S).
This got rid of the vast majority of unergonomic keystrokes for me.
This is one of those trades where you can do amazing shit on the first day, but you’re still a work in progress just decades in.
I love this shit.
I certainly know a lot more than 20 years ago. But I always feel like there's more and more layers. Just browsing this site I find something every few days to add to my reading list.
In a way that's good, not feeling like I've hit some experience ceiling.
There’s more elite stuff (RenTech, CERN, the Equation Group?), but that’s pretty elite man.
If that’s not hyper-competent I shudder to think what is.
Stenography is a mapping of some combination of keys to some output.
A particular mapping is called a "theory".
One such mapping is phonetics, or the sounds of words. Let one key represent the "Kuh" sound, another "ah", and a third "tuh". Press them all down and when released, you get "cat". "Al" "Guh" "Or" "If" "Um" "Algorithm". 5 strokes instead 8. And that's not even trying to be efficient.
Another mapping is to use shapes. Three keys in the top row and one in the middle on the bottom looks like a "T". So, map that to something you associate with T.
A theory can be any mapping you want. Stenography is based on shorthand which was invented in the late 1800s. There are plenty of theories that already exist. You don't need to make your own.
When you write, you use some words or phrases frequently. Map those to convenient keys. Such mappings are called "briefs". Go crazy with them and you can reach 370 words per minute of real-time dictation.
You obviously don't have to be that good. I find that 30 wpm is sufficient to be productive at work. You can reach 70 wpm by practicing 15 minutes a day for a few months. You're a programmer. You can do it.
Expecting a lifetime of computer input? Don't optimize for easy key-to-output mappings such as QWERTY or Dvorak. Learn stenography.
See Plover and Javelin.
On a similar note, though, I have amassed a "dictionary" of 50+ bash aliases, 1-, 2-, or 3-characters long.
Some "theories" emerged as well - I have groups of aliases whose names follow a pattern and depend on what subcommand (e.g. in git or kubectl) or options are included in the alias. This is good for mnemonics.
For extremely common commands, I ditch mnemonics and just choose a 1- or 2-character name that has no connection to the name of the command. For example r='cd -'. I chose "r" simply because it's on the opposite side of Enter, and I get to alternate my hands. (I guess this is a "brief".)
What got me into the alias hoarding business was the discovery of complete-alias[1] and, later, the progcomp_alias bash option. Turned out, you don't have to choose between aliases and programmable completion, you can have both.
My keyboard is a macro-keyboard by default, "input" is a specific mode of the keyboard, that's vi but for whole desktop.
I type 120+ wpm, most of the keys I can type is an abstraction, the rest are characters.
All of that said, I do think there's no better thing as a split keyboard for controlling ergonomically your computer.
I was interested in stenography, but that's too much work to probably never reach the velocity and comfort I have right now.
(Early on in my career someone I worked with had one of those "spend a whole week testing things and then emit a one character change" times, and that left an impression on me)
Then there's the APL programmers, who are all like "what do you mean 'a word'"?
It makes no sense to have your most important key where it is nowadays.
The reason the back to normal mode key is ESC is because that key used to be much closer from the home row.
My personal preference is to use Caps Lock because each OS has an easy solution for this simple remap and since it's system wide you can use vim modes elsewhere too (zsh and gdb for me mostly). Also in general it's quite convenient to have escape so close.
Do what you will but please don't suffer uselessly for stupid historical reasons.
For those who don’t use vim, just switching caps lock and control is probably better so you can copy and paste with less contortion.
For vim users, I highly recommend remapping caps lock to be control when held, and escape when tapped.
Ooh, nice! How do you map it in Vim? Or in MacOS?
I always remap caps lock to control because, Vim or not, I still need control-something all the time. But I always wanted to remap esc to something closer to the home row, but never did since caps lock was already taken :) How do you map the held/tapped keys separately?
Insert mode (i.e. i): space
Exit insert mode (i.e. esc): shift+space
Some terminals have issues with modifiers on keys like space but if you're a vim user on only 1-2 machines and can use something like Kitty then you should be OK.
I used to have RSI and what solved it (over 15 years ago) was taking more care to hit the precise center of the key. Using my sense of touch to sense the key's exact location before even trying to activate the key helps me do that. When the key is on left edge of the keyboard, it is easier to do the determination of the exact location (of the left edge of the key I want) because I don't have to worry about accidentally activating the key to the left of the key I want. Caps Lock of course is also on the left edge of the board, just like ESC is, but ESC is also on the top edge, which is an additional help: the easiest keys to type in my experience are the ESC key and the left control key because they are in corners of the board. (The other two corner keys, "pause/break" and the right arrow key, are harder because of how far they are from the home row.)
I never understood the desire many writers on this site have of moving the hands as little as possible. More precisely, I understand the rationale, but I consider the rationale to be misinformed. If you don't move your hands (i.e., because you have a keyboard with only 36 keys or something), you still have to use your arm muscles to hold your hands over the board, and the human brain is better at movement than at using the muscles to statically counteract gravity like that. That is part of it, but there is more. When hitting a ball with a tennis racket, it is ergonomic to take a back swing, i.e., to move the part of the racket that will hit the ball in the direction opposite the direction you want the ball to go, before starting the swing. Very quick back swings are important in typing, too, for preventing RSI (for reasons I don't fully understand). And I think moving my hands around the board (i.e., in the 2 horizontal dimensions) makes it less likely my brain will put the relevant muscles in "freeze mode", which makes RSI more likely. Or something like that.
I like to use different kinds of keycaps on the same keyboard to give myself tactical hints for this reason. It's common to have `f` and `j` differentiated, but I also have different textures for differentiating the alpha keys from their neighbors and for what I consider "home" for my thumbs.
I don't know about RSI yet but I do know one thing : Vim workflow is to make a quick edit and then go back to normal mode as quickly as you can. This prevent accidental inserts and you are always back at the command center for your next edit. The same way some people understood most of the time is spent reading code rather than writing, vim's insight is that more time is spent doing edits than actually inserting text. So maybe strecthing your pinkie to the far (but admittedly easily locatable) corner of your keyboard is good RSI exercise I don't know but the Caps lock is just as easy for your finger to locate and don't require strechting. It's just better.
Why use such a convenient tool as vim if you have to make a weird combination for the single most important key in your editor ?
I know one gets used to anything but still.
(I personally believe it doesn't make you that faster but it does take away the dullness/repetitiveness out of editing)
Combining Ctrl + Esc is even better no doubt but it takes a bit more work
The jk solution is great but it won't be available in other vim modes elsewhere
I realized that esc was difficult in vim when I was forced to change due to the original MacBook Pro Touch Bar.
It's not bad, but not all that comfortable on my left hand pinky finger.
:)
Why I like my solution : It takes three seconds to activate in any OS and it's available system-wide
I've seen a lot of people recommend jj, but that's part of something I type a lot, so I had to choose another. jk works okay too, because I don't use that acronym.
One of the things that matters for me when seated at a desk (I also do standing desk) is that I like to be able to have my feet flat on the floor when seated, and then for the keyboard height to be lower than most desks.
If you're similar, and you're considering those powered height-adjustable desks, note the minimum height in the specs of a desk (and that the actual minimum height might be an inch or two higher, due to the top thickness and/or leveling). Importantly, the "3-stage" ones on Amazon go lower than the "2-stage" ones.
You can also occasionally find rare low fixed-height desks. I also once realized that the legs of a university lab's white laminate desks were interchangeable with the legs of matching shorter white laminate side tables. (I quietly swapped a set, under the cover of night.)
On chairs, I don't like armrests in any case, and also, note that, if you have a lower desktop or keyboard shelf, armrests on chairs might bump into it.
If you want to remove arms from a chair that has them, check how well that works before you spend a lot of money. Aerons with arms look like they can come off pretty cleanly. I've had good luck with some more conventional commercial-grade office task chairs. I've also seen office chairs that leave unsafe heavy-duty welded steel frame protrusions out the sides, with corners that could rip into someone's leg someday. Steelcase Leap V2 arms can come off, but not cleanly, so it looks kinda dumb for how much money you spent.
Some of my other tricks include walking a lot (during my commute for example) and generally getting up regularly. I have some mini life hacks like getting a glass of water and not using things like water bottles or tea pots that "allow" you to stay at your desk longer. Anything that forces you to get up is a good thing. A simple stroll to the kitchen is a good thing. Standing desks are great too.
Also, because I figured out that a lot of my issues are shoulder related I do some simple exercises to loosen those once in a while. That's also why walking helps. Swimming is also great. If you sit still for extended periods of time, shoulders tend to cramp up and the nerves to your wrists and hands go through there. Where you feel pain and where the problems are are not necessarily the same thing.
Reading all these comments from people about what they do/don't do. Nobody seems to address the giant stinking pachyderm: are you right or left handed?
Left handers have to exercise their right hands, because of all the kit made for the right-handed majority. Almost all these fancy vertical mice are right-hand only. In fact most mice are RH only. I sometimes use a cheap 2nd hand gamer mouse I bought for when my main one's batteries die: it's RH-only.
Digital cameras? All RH only. Most mobile phones? Mainly for RHers.
We sinister types must use our right. Most right handers barely use their left.
20Y ago, in my mid-30s, I switched to mousing right-handed at home. I'm a leftie, but I worked in support for 15-20 years and I had to use customers' machines the way they were configured. Usually that means mouse on the right. I could but didn't on my own because they're mine.
An ex suggested switching and it really balanced my hand usage. Gave my tired sore left a rest, made my under-utilised right pick up the slack.
I also trained myself to clean my teeth with my right, to practice my coordination.
Never mind rock climbing or whatever. Nobody needs to climb a wall to get to work. But pretty much everyone needs to clean their teeth.
Learn to use your left hand for more. Learn to mouse with it, or use your touchpad or whatever. Learn to clean your teeth with it.
Spread that load out. Even the workload on your hands and wrists, and they'll thank you for it over the decades.
What's interesting is that it's not as hard as it sounds. You basically just reverse your left/right click settings and your brain picks it up very quickly.
I didn't have that option as I was born shortly before Douglas Engelbart did the "mother of all demos". Mice hadn't really been invented yet.
https://en.wikipedia.org/wiki/The_Mother_of_All_Demos
Sadly for me I crippled my right arm in a bicycle crash in April and now it's quite painful to use it for a mouse, so I use it in my left hand mainly now... but I am working on it.
I've also been a pretty avid WASD + Mouse gamer for a long time as well, and I think gaming probably causes me more issues than programming.
I am a rock climber, however, so I have some significant muscular development in my forearms. And the thought of that reminds me that from time to time I have had problems with my knees, which started when I was a child. My knees become painful and collapse under me. And the solution has been to do weighted leg extensions to strengthen the push/kick muscles.
So I wonder whether these wrist problems can be overcome by strengthening exercises.
EDIT: and then I scroll down and see that Fabien is a climber. So I guess that refutes my theory.
So, why do I think that relates to my lack of RSI problems? Because with my seven(ish) finger method my hands constantly rove over the keyboard. What they don't do is stay in one fixed location, with the wrists in the same (usually somewhat awkward) position as only the fingers move. That maximizes repetition - the R in RSI. Minimizing hand motion this way is bad. If you want your hands and wrists to stay healthy you have to keep them moving, just like any other muscle/tendon/ligament complex in any other part of your body. It's silly to think that the general rules of exercise and flexibility don't apply to hands.
What I'd recommend is varying everything as much as possible, I found always being in the same position and using the exact same movements day in day out is what seemed to cause problems.
I've got a mouse, a trackball and a trackpad all connected. Trackpad is on the left, others on the right. Trackball is a Kensington Orbit (fingers, not thumb, on ball). When adding a new input method take away the old ones for a week or so in order to create new instincts, or you'll just always reach for the mouse.
Keyboard is just a standard mechanical TKL (the trackball goes where the numpad would) - in my experience programming involves a lot more thinking than typing, and I avoid editors/IDEs which encourage constant hand-contortions to use hotkeys. For me, at least, optimising for keyboard efficiency would be a waste of time.
My 43" 4K monitor set at 100% scaling is perfect. I can see a lot of code side by side. A second 28" monitor in portrait mode usually contains slack, a tiling terminal and the UI (browser/emulator) of whatever I'm working on. On a laptop I'll use multiple workspaces and get by OK, but more pixels are better.
I gave up on ordinary office chairs, I've always had a slightly dodgy back ever since I was a teenager and it got fairly bad a few years ago. I switched to an ergonomic "wobbly stool" and that's worked well - I'm forced to move around because it's never totally stable. Sometimes I stand, but if I'm trying to focus I do still need to "sit and think".
I've been developing as long as the author, but lucky enough to not have any serious forearm/hand pain during that time. There was a time a decade ago where I had some mild pain, but taking frequent breaks helped tremendously. And like the author, I started investigating other keyboards as well.
Today I use a Moonlander Mark I and Apple Trackpad on one system, and a Lenovo TrackPoint II and Logitech MX Master 3 on my other system. Both configurations have their merits, and are equally good in my opinion. It's also surprisingly easy to move between them.
Instead of holding the modifier key(s) when activating a shortcut, you can press and release each modifier sequentially.
It does come with some of the fancy keyboards' firmware, but is also a built-in feature of all major OS-es. You can get it without spending a single dollar.
Adopting this policy has kept RSI problems at bay, at least in my case. I have 3 or 4 favourite keyboards and I just switch them around ... giving my hands a chance to re-train on different weights/resistances of keys, etc.
I started programming pretty early, but I didn’t have a desk until my first job after college. I pretty-much made do with whatever situation was available to me. I also started working pretty early, doing physical jobs. I bucked hay for local farmers at about 12 and started shearing Christmas trees at about 15. The latter doing a lot of damage to my shoulders over the next few years. In college I rowed crew, which didn’t make things better as far as my arms went.
After college I started programming and I’ve been doing it professionally for going over 30 years now. It’s never really been physically comfortable. Even back then I was good for like an hour-long sit at most before I had to get up and move around and “get the blood flowing“ so to speak. That’s never changed. I still don’t like working at a desk. I stand, I sit on the floor, I sit in comfortable chairs, I lay down on the sofa, I’ve been known to steer a sailboat with one hand and program with the other.
I feel like this is why it still works for me - I don’t repeat my posture much. I have a really, really low bar for my programming “situation” and take full advantage of that.
My left hands fingers are way more flexible and nimble than my right hand, even though I'm right dominant.
I do basically all typing with all my left hand's 5 fingers, accompanied by just two fingers on the right hand.
I have looong fingers so it works out on standard keyboards without any need to stretch.
But yes, never ever put weight on your wrists while typing, same advice as when playing a violin.
I'm sure there are some other people who share my interests who have been the victims of misfortune when it comes to RSI injuries, but I think for the bulk of us who do anything repetitive, it's not incredibly difficult to avoid these issues if you just pay attention to what you feel.
For example, on Friday I noticed that, after pretty much a solid week of intense editing of code (I wrote a large thing and then realized I had gotten it all wrong and needed to move a lot of stuff into different files), I kept noticing that my elbows were killing me because they were grinding into the armrests of my chair. It didn't dawn on me until the end of the week that the reason I don't usually have that elbow discomfort is that years ago I took the armrests off my chair, or as the case with my current chair, I folded them backward and out of the way. I had put them down to clean them or something and forgot about it.
If I mind myself, I'll notice the stuff that makes me uncomfortable. If I try doing whatever that is less and I feel better, then I've learned something. If I stop doing the thing that I've learned makes me uncomfortable, that's great. If I did it too long and I need to visit a doctor or a therapist to help me undo the damage, that's great too.
So long story short, pay attention to how you feel, recognize that however you feel is probably a result of the choices you've made, intentionally or not, and treat your body as a machine that needs maintenance and either find a good technician or learn to do it yourself when it makes sense.
I’m now a big fan of my keybordio model 100.
If you’re young and you plan to do this for a living, a good ergo keyboard with firmware you can customize is one of the best investments you can do for your hands’ (and arms) health.
now any fine motion where I need any kind of pinching motion for more than 30 seconds is super painful and by thumb pretty much gives up (using my thumb to tap the spacebar on the keyboard is fine though).
Since learning about RSI about 30+ years ago, I regularly exercise and stretch my hands, so I think that has helped a lot.
Otherwise it's also Ergodox for me. I switched to Colemak at the same time, also have a programming layer ()[]{} etc. In addition I have a layer for cursornavigation and selection, word wise/char wise/start&ens of line/page wise, comparable to vim mode, but using the default shortcuts for Windows and macos (with the help of Karabiner)
It took a few weeks to get up to speed but I couldn't be happier.
https://www.logitech.com/en-eu/products/mice/mx-ergo-wireles...
Note that the tilt only has one level (flat and tilted), the animation might make you think otherwise. I use it in tilted mode.
It is highly customizable using the Logitech options software which I am using on both macOS and Windows. For example you can assign actions to all the buttons that are dependent on the running program, and even involve custom key combinations.
The only downside of the trackball is that you have to clean it once in a while, when the pointer appears to be moving very slowly - simply eject the ball by poking a screwdriver into the hole at the bottom of the mouse, clean out the accumulated dust and push the ball back.
It’s a very intuitive and customizable voice coding tool, and even if you don’t need it at all times, you can use it to lower the strain on your hands. It’s surprisingly productive, too.
- Fish oil.
- Getting enough protein.
- Yoga. Especially for tight forearms and shoulders.
With a keypress, I can switch between fullscreen workspaces. Or place two windows side-by-side when needed. My desk is free of clutter, and I never have to deal with configuring multiple displays.
I believe multiple monitors are less elegant and less effective (though a giant workstation full of monitors is perhaps impressive to family and friends).
A similar topic: I also don't understand why some fellow programmers need syntax highlighting. Some programmers have never even tried programming without it! And to them it might feel weird to go without at first, but I think it quickly becomes clear that syntax coloring is noisy and superfluous (and you might end up wasting time picking colors, etc.). Imagine if we did that for natural language (verbs are green, nouns are red, etc.), or math notation (numbers are blue, variables are pink, operators are orange, etc.). The silliness becomes clear quickly.
I've found that, for me anyway, one centered large monitor with enough real estate for your daily tasks is better than N smaller monitors. This is even if "total number of pixels" is larger on the N-monitor setup.
It's one less decision to make 1000 times a day (which monitor should this thing be on?), and reduces neck strain resulting from switching your focus between monitors.
But, it can be nice to have one for output; plots or something.
I assume folks who work in a corporate environment would want one for slack, outlook, or whatever.
Every now and again I use them as a reference screen against something I'm doing, but my neck starts hurting pretty quick. Alt-tabbing rocks. They tend to be mostly empty.
Alt-tabbing means improved focus "one thing at a time" too.
I'm thinking to keep a large 32" screen in front of me, ditch the side 32" and get a "portable LCD" to put "under" as if my keyboard is a laptop and I'd have a laptop screen below my main screen. That should be hopefully useful as a reference screen.
Having 2 or 3 of the exact same screen makes no sense to me anymore. We're not with 19" CRT Sony trinitron anymore :)
I'm surrounded by a wall of screens and I don't know what to do with them (that is useful and not distracting).
Both the portrait displays get a good amount of use. The central one is most important of course but the one to the side is useful too as I don't have to turn my head much to look at it. Its usual use is documentation or similar but using it for actual work is no hardship.
The landscape display is mainly there because I work in video games, so I kind of need one. I usually use only about half of it at most, though, to avoid having to turn my head too much. If I was in some other line of work I'd probably have a 3rd portrait display instead.
(I did use the large monitor + laptop below arrangement for a while, and that was good too, but one day I knocked my drink over and it destroyed my laptop. So that prompted a rethink.)
I used to have three 1080p screens. Now I just have one 4K screen, and I still have more screen space :)
I personally like to use Divvy to chop my screen into sections but mostly I do 2/3 for my IDE (affords me 3 less-than-full-width columns for source) and 1/3 for the browser. I have wanted to have an iPad for displaying docs but haven’t gone there yet.
Legend.
Also: the part about rock climbing because you can't think about anything else resonates. I run for the same reason.
trackballs are possible to use without fatigue. mice, less so.
Talking about elephants in the room here... I don't think it's the keyboard or mouse, dude! ;)
I've done rock climbing myself. Obviously, it's a huge burden on the ligaments of the upper body. It's also very fun (not in the least because it's a bit scary), but you will feel those wrists a shoulders a bit the next day. Small price to pay, until it because really painful.
I would recommend to the author to try and mix in in some other fun sports like kite-surfing or mountain biking etc. Or dancing (salsa I can recommend if you're open to the latin music). And limit mouse-mileage-heavy gaming a bit maybe? There's a lot of other options (try Return of the Obra Dinn).
Finally, I don't know if other have experienced this, but reflecting a bit on how you do programming can also help. Thinking more, resisting that urge to start typing away did a lot for me personally wrt my wrists and shoulders starting to loving me again. But that may be just me, of course.
Is that Pierre-Chauve in the background? Nicely climbing the Rocher du Roi Gros Nez then! I can never get enough of the vistas you get from that crest line..
what is it that one can do without spending too much or making overly drastic changes in how we work?
If you are reading this post and thinking, "oh I don't have these problems, I'm going to read something else", I encourage you to pause.
Having been in this industry for a while, I have seen RSI-type injuries happen to HUGE portions of my colleagues. I've met many people who have changed careers over this.
The reality is that spending 8-10+ hours a day in front of a keyboard is grueling on the hands, wrist, and arms (not to mention it can be for your back and neck as well).
It isn't a matter of "if", but "when". For some the result is more impactful on their daily life than others, but it does affect nearly everyone to some extent.
So I encourage anyone who is still young, thinking this is a post for "old people", to consider applying some of these principals today in hopes of pushing these problems further down the road or maybe even to put you in the minority of people who never have to deal with them in their career. The apple mighty-mouse thing (whatever they call it now) is horrible for your wrists and hands, throw it in the trash. Consider investing in some of these tools now, so you don't suffer later.
In a similar vein, take care of your posture which can save you from back problems and neck or spine injuries later. Sit/stand desks are great options and readily available now (and relatively affordable). Consider an ergonomic chair as well, and don't be afraid to spend good money on it. You spend 8-10+ hours a day in it. It's worth spending $1,000 on a desk and $1,000 on a chair that will save you thousands in medical bills and a priceless amount of avoided pain down the road. It's funny to me how many engineers making $150k or more a year and won't spend $2,000 on a good desk setup (which lasts for many many years). If you have a work-from-home budget, spend it on ergonomic tools, not a fancy monitor with a higher refresh rate.
But yeah now, I NEED breaks. Walk around, get a snack, go for a quick walk outside. Really anything to break it up. The impact is better on you mentally as well as physically.
I'm 44 myself, and fortunately haven't had that sort of pain in my hands/wrists/forearms. Have had back pain though, and that sucks.
The best thing I ever did was get a really good ergonomic chair after this for A$700.
Rather than focused on quantity let's focus on quality. 1 good year of experience is worth 10 bad ones.
In 1981 (so when I was 5) my parents bought me a Sinclair ZX81. It came with literally nothing except a BASIC interpreter in ROM and a manual. The manual explained how to program in BASIC and had a bunch of listings that you could type in for rudimentary games etc. So when we got our computers at that era all we could do is "program". Was it hardcore software engineering? No. Did we understand it at that age at any meaningful level? No. But it was programming, of a sort.
In the next few years I experimented more and more until I started to grasp higher level concepts.
My point is there was a particular window in time that met these criteria:
- affordable personal computer.
- no (or very few) games available, you had no choice but to write programs.
This was around 1980-1983. Before 1980 most people didn't have access to personal computers. After 1983 you could get computers that could easily read games from tapes or floppies.
So I guess there were a bunch of 5 year olds in that era who were almost forced to program.
I'd also say that era (88-92) was great for being able to pick up cheap used computers. Commodore 64s could be found at garage sales, and I was fortunate that my father would bring home old IBM PC XT/AT boxes from work that were destined for the dumpster.
I started programming a few years later, maybe at 8 or so, but I would absolutely call that programming. I still have the note pads somewhere. It's nothing to be ashamed of, it's a beginner's first steps on a computer that does not exist.
Well, he does call programming whatever he did.
In '83 they have sold 5 million computers according to the wikipedia[1], I am sure tens of thousands of 6 year olds started programming on them.
[1] https://en.wikipedia.org/wiki/Market_share_of_personal_compu...
More relevant to the post, I have had some pain in the past, mostly neck/shoulder from the monitor not being high enough, but some finger pain too (tendinitis - even before mice use was prevalent), switching to a vertical mouse has helped to reduce it quite a bit. The mouse I use currently
https://www.logitech.com/en-ca/products/mice/lift-vertical-e...
Likely the only reason it wasn't earlier is I didn't have access to a computer until then. My parents didn't buy one until around that age, and I was already bugging them about it because my friend had one and was showing me these cool Q-Basic games he found on Compuserve. I started programming almost immediately after we got a computer in the household.
Now granted 5 is pretty young, I didn't even really know how to read then. But I probably would have by 7 years old if there was a computer in the house at that point.
I was also making Hypercard programs on the school library Macintosh (the original Macintosh) around that time, mainly images I drew with clickable portions to navigate to new screens, like navigating a maze.
My more serious programming was when I got a TI-85 calculator in 7th grade, though, so when I was around 12 years old. I started making text-based games on there, then action based games like Breakout, and at that point I was using plenty of for and while loops and checking keyboard inputs and creating menus and slinging variables around and calling functions and everything else.
I've also learnt Z80 assembly at the same time, coz the "4th Forth by Fébert Csaba for ZX Spectrum" had built-in assembly too.
I've seen my father designing and building a ZX Spectrum clone from scratch. He did explain the process too, so I got to know how a CPU+ALU+RAM+BUS+IO made up a computer.
So I very much consider those years part of my programming career, because they were very much formative and it was a continuum as programming became my career.
Also, don't forget, that all this was cutting edge shit, because there wasn't anything better available for affordable prices for everyday ppl!
even access to the ZX Spectrum was only possible for me, because my father could bring it home from work for the weekends and I could use it a little bit after school, at the University he worked at. my classmates never even saw any kind of computer up close, other than LCD wrist watches...
I'm 42 and started programming in BASIC at 9 thanks to a ZX Spectrum my father bring home one day. During a lot of years my programs were all absolute crap by any standards, but I really enjoyed programming little shenaningans and crappy games. I didn't grew up by any engineering measure, but enjoyed the ride a lot.
That's programming too, if you ask me.
I don’t know if it’s made me a better programmer, but it’s made me realize the importance of focusing on fundamentals and learning the ephemeral stuff just in time.
So I guess I've been programming for longer than him, despite starting several years later in life. What "programming" means has changed a lot over the years though, I'll say that much.
The author is not uninteresting. His experience is far greater than most. You should browse his blog and you'll find you'll learn plenty.
Not every post has to be about something extraordinary. We're all aging together. He wasn't boasting his programming experience onto the viewers.
"I've been programming since I was six years old so listen to me when I say we should use mongoDB".