Recent

Author Topic: work place ergonomics for productive code?  (Read 3912 times)

Weiss

  • Full Member
  • ***
  • Posts: 219
work place ergonomics for productive code?
« on: August 15, 2025, 05:17:40 am »
I spent some time building a decent desk and buying a good chair, and all, but what drives my wife nuts is that I almost never really work there. Somehow comfort for writing code, and thinking mostly, is somewhere in different dimension, outside of comfy chair. Desktop computer is against the wall, and I want window. When I have window, I need to manage the lighting and bring blinds down. When I make a quiet place for productive work, it turns out that a bit of environment sounds (wind, birds etc) make me enjoy work better.

Asking Google does not help, as it brings the usual office workspace ergonomics. What do you folks think, what works for you? Or better, what kind of environment helps you think and write code?

440bx

  • Hero Member
  • *****
  • Posts: 5819
Re: work place ergonomics for productive code?
« Reply #1 on: August 15, 2025, 07:55:21 am »
I guess I'm easy to please as far as that stuff goes...

1. A comfortable chair that doesn't wobble
2. A solid desk that doesn't wobble or flex under load
3. 2 or 3 reasonably large monitors with min res 1920x1080 (higher is better as long as the monitor is larger so things don't get too small) and most definitely _no_ glare.  glare = immediate trash can.
4. not too hot and not too cold.  prefer slightly cold (dissipates energy better)
5. reasonably silent workspace.  a little background noise is ok as long as it's low pitched white noise.
6. hardware that works.  I want to spend the time programming, not repairing hardware.

For the physical stuff, the above is pretty much it but, that's not everything needed to make a programmer productive.  The other things, non-physical, that are needed and must be present to make the programming experience pleasurable and productive:

1. a fast compiler.  C/C++ are intellectual torturing devices.  Paraplegic turtles move faster than those things.  Maybe some people were blessed with infinite patience.... I am not one of them.  FPC is fast enough.

2. A good debugger... I don't need Christ's second coming... I need SoftICE's resuscitation and second coming to stay, roughly 28 years ago.  Unfortunately, that's not going to happen but, fortunately, FpDebug, in user mode and at the source level, is a capable debugger and it keeps getting better with time.  Assembly level debugging is the only thing that occasionally drives me back to VS C/C++ and WinDbg (I know how Galileo felt when they showed him the torture devices they were going to use on him if he kept saying that Earth wasn't the center of the universe.)

3. A good editor.  Fortunately, I am blessed with one of those even though it is now a defunct product. 

That's all that comes to mind as really important.
FPC v3.2.2 and Lazarus v4.0rc3 on Windows 7 SP1 64bit.

Jonax

  • New Member
  • *
  • Posts: 29
    • Jonax stuff
Re: work place ergonomics for productive code?
« Reply #2 on: August 15, 2025, 08:11:21 am »
I'm a big fan of fanless computers. Makes you hear the outdoor bird song better. Though at the moment it's rather some dog barking.  O:-)

LV

  • Sr. Member
  • ****
  • Posts: 359
Re: work place ergonomics for productive code?
« Reply #3 on: August 15, 2025, 08:40:10 am »
To be productive while coding, I need to ride my bike first. 🚴

Thaddy

  • Hero Member
  • *****
  • Posts: 18356
  • Here stood a man who saw the Elbe and jumped it.
Re: work place ergonomics for productive code?
« Reply #4 on: August 15, 2025, 09:09:37 am »
What do you folks think, what works for you? Or better, what kind of environment helps you think and write code?
One of my employers at PerfectView (1997..2000 ) recommended the beach at Scheveningen and encouraged us to join him when it was the kind of weather we have now in the Netherlands (over 25 Celsius). So off to the beach with the laptops and free ice-cream.
At least everybody pretended to be productive...
But seriously, climate control is a must for me and I am most productive around 18 to 21 degrees, at the cool side of comfortable.
« Last Edit: August 15, 2025, 09:17:18 am by Thaddy »
Due to censorship, I changed this to "Nelly the Elephant". Keeps the message clear.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12535
  • FPC developer.
Re: work place ergonomics for productive code?
« Reply #5 on: August 15, 2025, 11:33:26 am »
For me, the situation is roughly echoes 440bx's remarks.

Good office chair (preferably one that attaches the bottom to the back in a rigid way using the arm handles (lasts longer wrt wobbling IMHO). I don't do adjustable armrests for that reason. Wobbliness is worse than exact tuning IMHO.   Fairly high sturdy table (from Ikea, 1990s still doesn't wobble).

Two monitors 1920x1080, one of which is 90degree pivoted to 1080x1920. This portrait mode mostly used for code writing and PDF reading.  _Effective_ vertical resolution is everything, and pivot is a practical way to obtain it. Effective I mean in lines of code, so function(resolution,fontsize).

Treasure the walks to the coffee machine and in between walks in general. When I work at home I can walk through the garden with my coffee, or go to shop at noon, more to break the work. (this is partially of course also because I work a lot at  home alone, and don't have diversion of colleagues during breaks. Even when going to the office, only one person, my boss is there). In general, take regular small breaks, preferably every 2hrs.

Computer is not really loud (no game machine), but nothing extreme.  I find that if you silence everything, the level of noise that distracts you also goes down. Some white noise is preferable to silence. Windows are insulated so do reduce outside noise somewhat, which helps, even on this relatively quiet street.

Office is small room in the front. In front of windows, but the windows (and whole front) are shaded somewhat by oaks so it doesn't warm up too quickly in summer.

As for IDE, I use Delphi, Lazarus and an netbeans derived IDE called MP Lab X for embedded work.   For the non embedded work, I second 440bx praise of debugger capabilities, but still think Delphi is better than Lazarus. Besides that also runtime bug finding (basic traceback, preferably loggable to file, memory leak analysis and, for rarer occasions, valgrind and fastmm4's memory corruption checks)

The embedded work (mostly signal generation like camera triggers,rejectors signals, monitoring sensors and maintain simple shift registers) has alternate pins that can be monitored with a fairly cheap (Eur70) logic analyser. Saves trips to the office for basic development and allows for last minute changes.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 11817
  • Debugger - SynEdit - and more
    • wiki
Re: work place ergonomics for productive code?
« Reply #6 on: August 15, 2025, 02:12:26 pm »
When I have window, I need to manage the lighting and bring blinds down. When I make a quiet place for productive work, it turns out that a bit of environment sounds (wind, birds etc) make me enjoy work better.

Bit of general noise is probably preferable. Voices (people talking) is a high risk of distraction.

Sunlight (Window) can be a problem. It needs to be reduced sufficiently. Don't turn up your screen brightness to counter it. Your room needs to be well lit, but no direct sun glare. Monitors should be set to reduced brightness (depends on monitor, but quite a few, including many better ones, come in "movie" settings, with an extreme high brightness).
Ideally you have a window facing north (depends where you are on the globe), so the sun never shines directly on it.

About the window, it depends whats outside of your window. Looking out on a busy road... again distracting. Even if you don't notice, movements outside will catch your eye.

If this is at home, ensure you make clear boundaries between work and play.
- Different account to log into your pc, so you don't have any distracting items on your desktop
- clear non-work items of your physical desk / surroundings.
- ....

Also regular breaks to move/stretch. And if it helps, differ the routines for doing this during work or play. For some people setting out specific routines can act as a trigger to get/keep the brain into the one or other mode.
Of course, you may not need that (But since you generally ask, how to make work effective...)

BeniBela

  • Hero Member
  • *****
  • Posts: 947
    • homepage
Re: work place ergonomics for productive code?
« Reply #7 on: August 15, 2025, 11:44:56 pm »
Don't do what I was doing

I don't know exactly what I was doing, but last year I spent all day typing on a laptop keyboard.

Now I have tendonitis and can't type anymore. Now I need a quiet place for the speech recognition to work.

Weiss

  • Full Member
  • ***
  • Posts: 219
Re: work place ergonomics for productive code?
« Reply #8 on: August 16, 2025, 02:24:37 am »
coffee, walks, breaks, good monitor or two, portrait orientation...  interesting. I need second monitor, for looking up documentation without having to switch windows all the time. Simple thing but I never thought about it. But the biggest challenge is in separation work space from resting . Right now the entire home is my zen garden, resting machine.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 11817
  • Debugger - SynEdit - and more
    • wiki
Re: work place ergonomics for productive code?
« Reply #9 on: August 16, 2025, 11:40:26 am »
Below is from my experience. I am no expert, not a medical adviser, or anything similar.

Somehow comfort for writing code, and thinking mostly, is somewhere in different dimension, outside of comfy chair.

"writing code" and "thinking" can be 2 different processes. I spend many a morning without even touching the keyboard. Just letting my brain do its work, and figure out how to best write the code.

There is that often found advice, that when you don't find the answer, then go an talk to the wall. What also may work well, is open your email and start writing down the problem, as if you want to sent the question to someone. Good chance you don't need to sent it ever. The process of putting the issue into words (including describing what is needed, what exists, ...) often gets you the answer.
That and learning design patterns, design principles, refactoring methods...

Also some space to scribble down thoughts, notes, todos. Preferences for that vary from notepad, some sticker-note-app, or old fashion paper (advantage: when the paper is full, you have a reason to sort it out / good for limiting todos)

I spent some time building a decent desk
Ergonomically, hydraulic is good, so you can spent half the time standing at your desk. But, that cost is only worth it, when you got all the other equipment right, and spent long enough hours. (And maybe even also have a risk of back problems...).

Much more important is the chair and how you sit.
- chair should swivel, so the angle of your back isn't static (and you back/leg angle should be greater 90)
- feet should touch / rest on floor (legs straight down)
- monitor must be high enough, so you don't look down all the time.
- keyboard must be at correct height (if need put some stands below the desk, to adjust it / or if the chair must go up, you need something to rest your feet on)). Check relevant pages online / make sure there is no strain on your shoulders (pushing up/ pulling down)
- Repeat: stretch / light exercise once or twice per hour...

And then
- if you need glasses, check if you will benefit from some made specially for the distance to the screen / that differs from reading glasses) / You should notice if you have troubles or not...
- 10 finger typing reduces stress for you neck (no need to look down at the keyboard) / looking down a lot, is a stress factor for the neck/spine.
- Also pitcher/bottle of water at hand (drink plenty)

My opinion: Set you screen down to maybe 70% brightness (or contrast) and use a light theme (easier for the eye to keep focus / especially with big or multi monitor, unless they are curved, but even then...). However, less screen brightness needs perfect room lightning, including dimming any sunlight so it does not cause any glare at all).
If you are used to a dark theme, it takes some time for the brain to come around. Also there are some medical conditions that benefit from dart themes.


Or better, what kind of environment helps you think and write code?
Thinks that may also help are triggers / repetitive actions.
- Have your "work only" coffee mug.
- Put your mobile on a work dedicated space (some feet away from your desk)
- turn over some picture on the wall (also may reduce distraction by it)
- find your own ...
Eventually those act as trigger for your brain.


LV

  • Sr. Member
  • ****
  • Posts: 359
Re: work place ergonomics for productive code?
« Reply #10 on: August 16, 2025, 12:28:49 pm »
"writing code" and "thinking" can be 2 different processes.

Oh yeah, that reminds me of a joke. An assistant in the laboratory of noted physicist Ernest Rutherford was a very hard worker. Rutherford noticed this and one evening asked, “Do you work this hard in the mornings, too?” “Yes,” the assistant proudly answered, expecting to be commended. “But then when do you think!” Rutherford exclaimed.

Thaddy

  • Hero Member
  • *****
  • Posts: 18356
  • Here stood a man who saw the Elbe and jumped it.
Re: work place ergonomics for productive code?
« Reply #11 on: August 16, 2025, 02:07:55 pm »
“But then when do you think!” Rutherford exclaimed.
Well, from my own experience I often solved logic problems that keep bugging me outside of work. You rarely get payed for that mr. Rutherford....
Reaching a certain level of insight is not tied to work-time. That's how brains work. You can't quantify that.
"Working" long hours is usually not a good idea. Walking away from it and reflect is more productive.
« Last Edit: August 16, 2025, 02:22:24 pm by Thaddy »
Due to censorship, I changed this to "Nelly the Elephant". Keeps the message clear.

Weiss

  • Full Member
  • ***
  • Posts: 219
Re: work place ergonomics for productive code?
« Reply #12 on: August 19, 2025, 05:40:57 pm »
... Walking away from it and reflect is more productive.

I value my time reflecting, but I still learn what works and what not. Novice as I am, I need to code ideas and run the code, and spend time "walking" my code line-by-line and fix logic errors. This takes hours of deep immersion into code, in front of monitor. This is the hard part which goes beyond comfortable chair. I need ideas about environment which is conducive to mental stamina.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 11817
  • Debugger - SynEdit - and more
    • wiki
Re: work place ergonomics for productive code?
« Reply #13 on: August 19, 2025, 10:57:30 pm »
and spend time "walking" my code line-by-line and fix logic errors. This takes hours of deep immersion into code, in front of monitor. This is the hard part which goes beyond comfortable chair. I need ideas about environment which is conducive to mental stamina.

First of all, the "best approach" differs for each person. So you need to find yours, not ours...
But, there are some points that are as close to generally true as can be.

If you spent to much time on the same issue, you are likely getting slower.

If you have a "hard to solve problem" to which the answer seems hard to find...
Write a letter/email about it (don't need to send it). Seriously! Explain to someone else (who knows nothing about what you have coded) what you have done, what you expected, and what happens. Make sure you explain it, so someone else could understand it.
I myself, and many other that I know, have done that countless times. And often, at the end of it, the correct idea came on its own.
If it helps you, read it out loud. Make sure its actually ready to be read out.

If you force yourself to explain what another person would not know, you will look at all the details again, and that helps very often.




Of course the above is for logic errors. Explaining (to another human, even if it is just an email that you will never sent) helps.

If you are hunting down a typo/syntax error, that differs. => learn your tools.

E.g. (one of many) In your code make sure that everything is always as you expect it.
Let's say you will use a value as minimum for some calculation => start with some asserts. If you know the value should be between 1 and 100 then start with "assert((v>=1) and (v<=100));"
And so on.

You called a function and got a result? Assert(res is as expected).
....

1) you get the errors much earlier
2) when you read your code you have a reminder what you thought it should be.

Learn other tools, compiler checks, compiler hints and warnings, debugger, heaptrc, valgrind, ....

Also, rename your variables to be meaningful, and you will better spot if you done something wrong.

Nicole

  • Hero Member
  • *****
  • Posts: 1271
Re: work place ergonomics for productive code?
« Reply #14 on: October 04, 2025, 05:42:46 pm »
Keep in mind: Your grand-grand-grand-.... fathers would have died, if they would not have the ability to find water.
This ability is still in most of us. I was surprised as I found it in my own spirit.

Dowsing for water works for nearly everybody. Mankind is like this.
The places on earth do not feel the same. There IS energy.
And more than those of water.

This means for you: Check the places in your surrounding for their energy. Go there, stand there and find you, what you feel. Do you feel good? Do you feel safe? And so on.

I like to work in a corner with one window to the right wall and one to the left.
This means, that my screen is shadowed by the corner. Some hours a day a curtain helps. My lamp is a very special one without reflections.

My desk is able to change its heigth.
My chair moves with me and does not allow to sink down in any position.

Have a productive time at the place you feel fine - or changing it every hour, if you enjoy.

 

TinyPortal © 2005-2018