10 ms·
Forty years of programming
- rldjbpin 3y agoi am early in my journey and would like to take preventative measures before i have to overcompensate with fancy equipment when it is too late. what is it that one can do without spending too much or making overly drastic changes in how we work?
- gpspake 3y agoHa, I was having wrist pain and I got that same wrist rest. I've recommended it to a lot of people. (Although I've never thought about cutting one in half for my mouse :)
- moron4hire 3y agoI've found that changing keyboards between a flat mechanical and a Microsoft wave keyboard every 6 months keeps the pain away. Don't need anything fancy, just gotta change the exact factors of the repetitive motion.
- deleted 3y ago[deleted]
- angarg12 3y agoAm I the only one who finds these "I've been programming since 6" posts silly? I mean, I used to mess up with computers since I was a child, but I wouldn't call that "programming". In fact if I'm completely honest, it wasn't until 5 years ago when I truly started to learn and grow as an engineer, more than the rest of my career combined. Rather than focused on quantity let's focus on quality. 1 good year of experience is worth 10 bad ones.
- mlhpdx 3y agoI started programming in 3rd grade when a teacher kept me in during recess because I was being bullied, and was first paid for programming in 7th grade when I ported a program from BASIC to C and used the money to buy my first computer). Silly? Didn’t feel that way.
- bcrosby95 3y agoI'm not sure why it would be silly. I started playing baseball when I was 6, and if I continued to this day I would say I've been playing for 38 years.
- booleandilemma 3y agoI almost always see it as a red flag. When I hear someone irl say it I interpret it as a sort of clout hack. "I've been programming since I was six years old so listen to me when I say we should use mongoDB".
- jongjong 3y agoIt can be meaningful but it depends on how they've been using that time. If they stayed at one company working on one project on a specific feature for 40 years straight, they may be a world class grandmaster in a very specific area which is only relevant for like 5% of all projects but have narrow experience and be incapable of providing advice on most coding topics that affect 95% of projects.
- a96 3y agoThere's also a critical difference in the causality flow. Time alone will teach nothing but cynicism. But a lot of things take a long time to learn. Age and time is not a useful predictor by itself, but it's often correlative.
- spacedcowboy 3y agoMmm. I've been programming since 11. When I built my first computer (back then), it was soldering components to a PCB, not plugging a thing-that-only-goes-in-one-way into slots/sockets #1, #2, #3 etc. 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.
- saulpw 3y agoThe post is about his environment and computing setup. It has nothing to do with programming. The title and first sentence only mention that he's been programming since he was 6 to give context for his long-term computing use and how his life and computing setup have evolved.
- meiraleal 3y agoHave you had the opportunity to compare two 20 years old developers one with 10 years of experience and another with 2?
- nemetroid 3y agoIt's an extremely small part of the post.
- dboreham 3y agoSome people actually did program when children, as opposed to "messing around".
- actuallyalys 3y agoI mean, I also mostly “messed around” at that age and didn’t really consistently program so I probably wouldn’t say that either. But I wouldn’t rule out the possibility that Fabien Sanglard did.
- xorcist 3y agoThe one sentence that isn't meaningful to the text, and that's the one you wish to comment on? 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.
- xelxebar 3y agoWait. You started out by scribbling down programs on a notepad and no computer? That's both adorable and inspiring. Were you working with BASIC? I'm super curious what this was like for you.
- jslabovitz 3y agoI did this too! Not on a notepad, but on a Royal typewriter, age 10. My dad had a telecommunications consulting business, based on a remote Univac mainframe he rented time on. He'd bring his Texas Instruments Silent 700 printer-terminal home from work, and I'd sometimes get to play Adventure and what-not if he wasn't using it. I vividly remember typing my first BASIC program on the typewriter, one afternoon after school, and then waiting excitedly for him to get home so I could actually type the program into the terminal. (Pretty sure the program was: 10 PRINT "HELLO" / 20 GOTO 10.) EDIT: This would have been ~1976.
- xdennis 3y agoI did that too. I thought it was common. I learned programming by reading my older sister's Computer Science manual from high school in preparation for me starting high school (2004, Romania). All school work was on paper so it was a necessity. But it was fun too. In pointless classes like French, there was nothing better to do. It was worthwhile to work on my personal programs on paper and type them out when I got home. You had to think about the approach before starting to write it down. I would leave a lot of vertical space in case I needed to put something above. In some cases I would write the code afterwards, draw a rectangle around it, and point to where it needed to move. It was a bit messy sometimes.
- bmacho 3y ago> I mean, I used to mess up with computers since I was a child, but I wouldn't call that "programming". 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_computer_vendors#Worldwide_(1975–1995) https://en.wikipedia.org/wiki/Market_share_of_personal_compu...
- vhodges 3y agoI've been coding for 42 years (since the age of 13), about 33 years as a professional developer. I do tend to downplay the stuff I did on my own for the first 9-10 years because a lot of my peers started then too, but the stuff since late '89/early '90 counts. 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-ergonomic-mouse.910-006466.html https://www.logitech.com/en-ca/products/mice/lift-vertical-e...
- keyle 3y agoI don't think it's silly, I like to see "how" people work. 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.
- deleted 3y ago[deleted]
- rco8786 3y agoFeels like weird gatekeeping. Doesn’t count as “quality” unless you’re doing it full time as a career?
- fiddlerwoaroof 3y agoI’ve been programming and reading programming-adjacent books since I was about six. It definitely has shaped my views about hyped technologies since I remember the same sort of rhetoric used to promote OOP and XML and Java as is being used today to promote Crypto, AI and Rust. 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.
- shric 3y agoThis might be particular to the age of the OP. I just turned 47, so I'm one year older than him. 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.
- briHass 3y agoAs someone 4 years younger, I'd argue the 'good times' carried on until the early 90s, at least for a kid that didn't have any money to buy new games all the time. The games back then were all simple enough that a devoted kid with lots of free time would get bored/beat the game in a day or two, and then you have to find something else to do. Now, there are millions of free games on the internet, not counting pirate/emulation, and also plenty of other media content distractions. 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.
- shric 3y agoAgree, I did program on the Commodore 64 and later Amiga extensively and I too couldn't afford many games. However I'm not sure if I was the typical kid -- in the late eighties and nineties many of my friends had consoles and I had no interest in them because I couldn't program them.
- onetom 3y agoI've also spent breaks between classes in primary school, at age 6-7, by writing BASIC programs on graph paper. Within a year or 2 I've transitioned to writing in Forth for XZ Spectrum. I used a Roland DX 80 plotter to "print" my source code. I've even sold plotted images from AutoCAD 1.0 for DOS. 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...
- antod 3y agoExcept the article is about 40 years of typing/mouse injuries and how they dealt with them, rather than 40 years of quality engineering output.
- cableshaft 3y agoI was coding in Q-Basic when I was about 9 years old. It wasn't much more than colored text on the screen and some inputs for a text based choose your own adventure for a little while but I was doing it. I was also playing other Q-Basic games and then reading their code to learn how to do certain things, then tweaking certain aspects of the code to change things, like what was said in messages and the hud and how much the score went up, etc. 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.
- luismedel 3y agoI'm sure there's a lot of ways to enjoy programming other than "grow as an engineer". 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.
- StopHammoTime 3y agoSame on the wrist. I have one of those mice with a trackball on top that you use by running your hand over it. Absolute game changer and not at all difficult to work (probably even more sensitive tbh).
- bobobob420 3y agoOnly 1 monitor for 40 years? p impressive
- mjoin 3y agoi'm the same. i don't understand why some fellow programmers need multiple monitors: one is already plenty enough for me. (i'm using a tiling window manager, switching back and forth between different workspaces, having another monitor would require moving my head while i can instantly switch to another workspace from my fingertips)
- srazzaque 3y ago+1 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.
- bee_rider 3y agoI usually like 1. 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.
- vivab0rg 3y agoYou don't need to "move your head around" if you use TWMs like xmonad or spectrwm.
- beautron 3y agoI'm the same too. Having multiple monitors makes no sense to me. 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.
- wly_cdgr 3y agoDoesn't even mention what a legend he is one time, just straightforward useful clearly presented info. Legend. Also: the part about rock climbing because you can't think about anything else resonates. I run for the same reason.
- pugworthy 3y agoI too have been programming for 40 years, am in early 60's, and amazed that I have no real wrist issues from all that time of typing, etc. 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.
- unnouinceput 3y agoSame here, same setup as his 1st step. No need for fancy standup mouse, ergonomic keyboard or all that crap. This guy deserves a "your weakness disgust me" gif on his blog.
- cmpalmer52 3y agoThat’s a bit harsh. 57 here and my forearms, elbows, and wrists are f…ouled up without an ergonomic split keyboard and some other accommodations. Bodies are different, and if this guy is a rock climber, that might have something to do with it. But flat, tight keyboards give me tendinitis in as little as a day. I can’t even use my laptop without an external keyboard, which kinda defeats the purpose, but it’s what work gave me and it’s more powerful than my current, out of date, PC.
- zingababba 3y agoI climb and the typical position at workstation of hands pronated + shoulders forward sucks for postural health. I currently am dealing with bilateral proximal bicep tendonitis from excessive climbing and even being at the computer for a few minutes aggravates it. I wonder if it's possible to rig something up to be able to type in a supinated hand position and if it would be not super infuriating.
- tom_ 3y agoHahah, oh dear, and you claim to be early 60s too? And yet here you are still acting like a teenager on the internet. It's fun to be young, but you have to put it behind you at some point.
- naruhodo 3y ago
- Taniwha 3y agoI went tough much of the same in my 30s, and essentially went through the same steps and came to essentially the same conclusion, except in my case it means living on laptops with a trackpad
- yosef123 3y agoIt’s crazy to think that even a rock climber can suffer from RSI. Goes to show it can happen to anyone.
- paulryanrogers 3y agoI suspect they are especially at risk. Guy I worked for used to climb and switched to a track ball. When I got into chin ups in a big way within a few months I had some new hand pain. Also heard rock climbing is a young person's game, not that many gray beards, likely because of the toll.
- polishdude20 3y agoI find that using the trackpad my wrist is always working to keep my hand over the trackpad without touching it.
- apitman 3y agoI started experiencing similar forearm pain a few years ago. The split keyboard seemed to help a ton. I also programmed[0] an Arduino with two foot pedals. Left pedal for CTRL, right for SHIFT, both for ALT. Worked wonders. I mostly have the pain manageable now, but it still flares up sometimes, and it was really scary there for a while wondering if I might have to stop programming. To you young guns out there, an ounce of prevention truly is worth a pound of cure. Invest in an ergonomic setup and stretches/exercises now, and don't push yourself into pain while typing. Take more breaks. Once you push your body over the edge it may never quite be the same. [0]: https://github.com/anderspitman/ergo-pedals https://github.com/anderspitman/ergo-pedals
- thewakalix 3y agoWhat if you need to press all three "keys" simultaneously?
- devinprater 3y agoHe probably doesn't use Emacs. :)
- dingnuts 3y agowow you woke up today and chose violence, didn't ya?
- yetanotherasian 3y agoI know what you mean. I was forced to use emacs for a year. I found it an interesting coincidence the person who forced emacs on us had the worst carpal tunnel syndrome and couldn't type on a standard keyboard without extreme pain. I know you can remap your keys but there's inertia to just go with what you're given. I've also noticed myself switching between Mac, Windows, and Linux, that Cmd-C on my Mac is way less stressful on my hand than Ctrl-C on the other 2 machines. I should probably figure out how to remap those. PS: If you're curious how emacs was forced, it was because the lead built the project's IDE/build/debugging system into emacs
- city41 3y agoI am also 46 and can not do much of anything physical with my hands anymore, such as sand, paint, use a screwdriver, etc. Years ago I switched to an ergonomic keyboard (Kinesis Advantage 2) and a vertical mouse. Neither bother me at all, I can type and use the mouse just fine all day. Unsure if the two are related. Does the pain I feel from sanding indicate I'd feel similar pain with a non ergonomic setup? Not sure. But I am glad I made the switch, just in case.
- hnthrowaway0315 3y agoI can confirm that the vertical mouse (exactly same brand) fixes my wrist issue. I used to feel some pain after playing diablo 2 a few days, a few hours each but now this doesn't bug me anymore.
- 000ooo000 3y agoI took the opportunity to learn an alternate KB layout (Workman) and I think that has been beneficial for my hands, which are average to slightly smaller than average, so QWERTY movements like T are a slight stretch. Have also got the split KB (Kinesis Freestyle Edge, which is OK. Would like something that can run QMK or similar). Also paying attention to the little nags and working them out is definitely valuable. For, e.g. I run 'g sta' (git status) often, as well as 'g lscm' (git log -20 --pretty etc); now I use Bash bindings to run both with Ctrl+j, and 'cls' with Ctrl+l. I've even started using the KB's 'action keys' (I.e. those ones that aren't part of the standard ANSI/layout) for Winkey+1..n to spare my left hand the awkward chord from winkey to the number row. I also run a trackball for dev and a mouse for gaming so that I split my use over different muscles. Hoping it all keeps any kind of injury at bay.
- jacurtis 3y agoA WARNING for anyone who thinks this article doesn't apply to them: 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.
- polishdude20 3y agoAlso take frequent breaks! Get out of your chair often. If you're literally sitting 8-10 hours a day, you're doing it wrong.
- jacurtis 3y agoGood advice. When I was young I used to just "plug in" for one constant (more or less) session all day long. I don't know how I did it to be honest. 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.
- svennidal 3y agoAfter less than a decade of programming around 8-10 hours every day, I could barely use my hands anymore. My forarms and shoulders were like marbles. I even stopped playing musical instruments because moving my finders was torture. Vim and split keybord (Dygma Raise) was my solution. I could feel the difference right away now, almost a year later, I don’t feel any pain at all. I feel lucky because I know people who have had to have surgery.
- nope96 3y agoI've been using computers since I was a pre-teen, it wrecked both my forearms (and later, my neck) in my early 30's. There was NO WARNING, the issues just happened out of nowhere. I always thought RSI, if it happened to me, would happen gradually and I'd know to stop/rest. The neck stuff has taken a decade to heal and it's still not back to normal.
- gooseyard 3y agoim a little older than the author. I also play a musical instrument that I guess you would say is physically demanding, and I have a hobby that is sort of hard on the hands. On the forums I inevitably follow about those activities, there is a sort of background of paranoia about how if you don't do everything perfectly all the time, your hands will be ruined, you will never have seen it coming, and you should base all your decision-making regarding practice time around avoiding catastrophic injury. 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.
- cassepipe 3y agoDear Vim beginner, before getting a fancy keyboard, do remap Esc to some other key. 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.
- hcs 3y agoAfter using a keyboard with Esc even further away than usual, I've found myself using Ctrl-[ more often. I should look into remapping capslock.
- cassepipe 3y agoPlease do that, it's a simple option in the settings of any OS. 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)
- jfdi 3y agoinoremap kj <Esc> :)
- neilv 3y agoLong-time programmer here who is a typing machine, without discomfort, thanks in part to heeding Internet warnings about RSI circa 1990, and to finding what works for me. 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.
- edvinbesic 3y agoI can echo this myself, however what made the biggest difference for me was having my elbows resting on something taking the weight off of my shoulders. Whether standing or sitting if I have to keep my elbows “up in the air” it becomes very uncomfortable very fast, otherwise I have no problem doing 12-14 hours sessions.
- jillesvangurp 3y ago+1 on arm rests. I hate those. They box you in and lift your elbows uncomfortably high thus cutting off nerves in shoulders and arms. The word arm rest implies that these somehow are about resting your "tired" arms. I've never experienced any form of arm fatigue while using a chair. Just not a thing. Complete anti feature. I don't need them. They come off if I have the choice. I won't buy chairs that have them. 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.
- mlhpdx 3y agoAfter a lifetime of programming I feel like I still have a pretty-good “keyboard stamina”. I attribute this to not having any habits, let alone bad ones. Or maybe they’re all bad. I’ll explain. 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.
- rr808 3y agoAt least he has a desktop. I cringe every time I see someone spend all day on a laptop.
- apatry 3y agoAnother thing that made a difference for me regarding wrist pain was to switch my keyboard layout to Colemak.
- jasoneckert 3y agoWhile everyone is different, it's nice to read about other's journey and the hardware they recommend along the way. 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.
- notacoward 3y agoI didn't quite make it to forty years, but I think I could say I made it to 37 (1983-2020). I've also spent more time than the average programmer writing on a computer, and I've never had any significant RSI-type issues. This might be a bit controversial, but I think part of the reason is that I'm not a traditional touch typist. That's not to say I'm slow, either. I've probably worked with well over a thousand other programmers, and the only person I'm sure was faster wasn't any of them. It was my mother, who was a professional typesetter longer than I was a professional programmer. Only a handful of other programmers have even seemed close. 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.
- h2odragon 3y agoThe advice given to pianists is valuable for PC keyboard users: "wrists up!" trackballs are possible to use without fatigue. mice, less so.
- pugworthy 3y agoI'm curious if typing speed is any indicator of problems, or lack of problems. Per previous comment, I've been "typing" for over 40 years, no real problems, and am a really, really fast typer. My hands don't spend a lot of time locked in one particular position, and my fingers are moving all kinds of ways constantly when typing. Just a thought.
- keithnz 3y agoI've been programming (and gaming) 40+ years now, and weirdly, the main RSI injury I have is actually from when I was a kid using the Atari joystick as a left hander (this one https://upload.wikimedia.org/wikipedia/commons/3/33/Atari-2600-Joystick.jpg https://upload.wikimedia.org/wikipedia/commons/3/33/Atari-26... ) 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.
- fipar 3y agoI’m about the same age as the author and also tried the freestyle as my first ergonomic keyboard. 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.
- jasfi 3y agoSome things that have worked for me: - Fish oil. - Getting enough protein. - Yoga. Especially for tight forearms and shoulders.
- jasfi 3y agoJust to add, yoga should really be done using a variety of stretches for your whole body. A professional trainer can also show you how to do the stretches properly. I often go straight to what I know works for me though.
- CapsAdmin 3y agoI'm only 33 but never had any issues with joint pains or anything like that whereas my peers, some younger and some older struggle with this and use various methods like ergonomic keyboards, massage sessions, stretching, etc to help ease the pain. 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?
- CapsAdmin 3y agoSome additional notes from reading other comments. I feel the way I wrote the post make it sound as if I'm fine with any setup which is not true. - 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)
- ozim 3y agoI am 36 and I subscribe to notion that no desk or ergonomic chair will help. 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.
- porridgeraisin 3y agoI am somewhat of an edge case 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.
- karmakaze 3y agoI have experienced shooting pains along the backs of my hands. I had to lay off typing/mousing for a few days for it to subside whenever I tried typing. After that experience, I learned an alternate keyboard layout (customized-NIRO) and I haven't had any issues since. I don't believe my typing speed changed much if at all, it was all about reducing strain and improving comfort.
- spit2wind 3y agoStenography is the most ergonomic method of computer input I am aware of. 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.
- d-lisp 3y agoWhen I program I write words with two or three strokes thanks to lsp, company, yasnippets and <return> or <tab>. On my keyboard tab and return are accessible with my thumbs. I can perform any task related to my window manager, manage multiple monitors and windows with two fingers of the same hand, without moving my hands from the keyboard. 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.
- pjc50 3y agoDo you find that you have a particularly document-heavy workflow? Because I find I spend far more time navigating code than writing new code, and I try to let Intellisense do most of the letters. I've never felt that a higher WPM would help me in programming. (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'"?
- TurboHaskal 3y agoStanding desks, split keyboards, photos of outdoor adventures... I see these everywhere. Is this the modern developer's midlife crisis at 40?
- marhee 3y agoHa! Experiences forearm and shoulder pain. Proceeds to mention casually he's into rock climbing. DisplayS photos of games where (jerky) mouse mileage is, to put is mildly, excessive. 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.
- thomasfl 3y agoLower back pain is probably the worst problem for many developers. I have ended up doing one minute dead hang every morning.
- fransje26 3y ago> Meditation in motion 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..
- benreesman 3y agoForty years is just a crazy amount. I’ve been doing it for 30 and getting paid for 20, and I know my stuff: but not to that level. Fabien is just a demigod. Given the long ass hours I’m pushing 100k hours in this trade, and I feel like I’m really finding my feet in the last 1-3 years. 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.
- lordnacho 3y agoI don't know, I don't think I'll ever feel hyper competent, the way I think of some of these people you come across. 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.
- benreesman 3y agoI mean, there’s always a next level, but I’ve seen your comments over the years and IIRC you’re like an extreme low-latency prop shop pro with serious quant chops too? 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.
- lordnacho 3y agoWell no matter how extreme, it always seems like other people are smarter. For me personally I don't like playing where it's all about latency either.
- benreesman 3y agoInteresting! I did some low latency stuff (mikes not ns, this wasn’t HFT) and I loved it. Trade you jobs! :)
- boffinAudio 3y ago40 years of development here, too .. my solution to the RSI problem, which I discovered in the 80's, is quite simple: change my keyboard and mouse setup regularly - simply don't use the same keyboard/mouse for longer than 6 months, maximum. 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.
- _TwoFinger 3y agoJust want to mention sticky keys[1], as it seems often overlooked. 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. [1]: https://www.emacswiki.org/emacs/StickyModifiers https://www.emacswiki.org/emacs/StickyModifiers
- SulphurCrested 3y agoThis is going to be controversial, but what saved me was abandoning a keyboard-intense environment (emacs + command line) for Apple’s Xcode. I do still build much of the time at the command line, but editing code and switching between windows is mouse-heavy.(You can use Xcode as just a text editor if you like.) I cut and paste by selecting with the mouse where possible. I have a gaming mouse with a button programmed for macOS’s “Exposé” so I can find windows back – and I use a single screen, a 27″ iMac. 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!)
- phero_cnstrcts 3y agoHaving to use the mouse frustrates me. Have you tried an ergonomic keyboard?
- SulphurCrested 3y agoAsk yourself why it frustrates you. Perhaps you can’t see exactly where the click will be – a high res screen makes a difference. Perhaps you haven’t learned all the mouse shortcuts. Two on macOS are: triple-click to select a whole line; and click, scroll down using PGDOWN or mouse actions, then SHIFT-click to select everything between the two. Perhaps it’s just a bad mouse. 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.
- sanitycheck 3y agoI'm not a rockstar, but I've been sitting in front of a computer for most of most days for the past 20-something years. 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".
- cube2222 3y agoI recommend checking out Talon Voice[0] if you’re experiencing any wrist (or similar pain). 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. [0]: https://talonvoice.com/ https://talonvoice.com/
- Clubber 3y agoI found using a gel pad in front of the keyboard and mouse cured my issues. I was having wrist problems where I got a lot of pain doing bench press or pushups or any pressure against my hands. I discovered this around 10 years ago.
- lproven 3y agoThere's an elephant in this room. Are you all ignoring it deliberately? 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.
- packetlost 3y agoI'm left handed, but I very early on (ie. like around age 5-6) I switched to using my right hand with a mouse. Since getting wrist pain in my right hand, I've purchased a magic trackpad which I keep to the left of my keyboard and I alternate between left w/ touchpad and right w/ mouse. It's worked very well for me!
- lproven 3y agoGood plan! 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 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.
- MailNerd 3y agoI have found a trackball to be even better than a vertical mouse. Only your thumb moves. 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.
- ftcHn 3y agowhat trackball are you using?
- MailNerd 3y agoLogitech MX Ergo https://www.logitech.com/en-eu/products/mice/mx-ergo-wireless-trackball-mouse.910-005179.html 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.
- notthatoldguy 3y agoWell, I doubt that an ergonomy is the reason here. Going gym consistently benefits much more, rather than switch devices. I have never seen healthy programmers over 30 who avoided physical activity. But I saw how people from constant switching of ergonomic devices and clinics visits just in several months were able to forget about most of the pain in wrists and back just by consistent increase in their physical activity and adding some resistant training. Their back CT looks the almost same, but their lives are significantly improved. I work on any devices and sit on various chairs for almost 25 years, and never experienced any significant pains. Just visiting gym and having some massages. In my case the most significant factor that affects back health is stress, but massages is what help to maintain it.