महत्वपूर्ण कोडिंग आदतें
(puppycoding.com)- कोडिंग में सबसे महत्वपूर्ण आदत सिर्फ़ readability, consistency और organization नहीं, बल्कि ऐसी स्वास्थ्य आदतें हैं जो कई वर्षों और दशकों तक development का आनंद लेते रहने में मदद करें
- लंबे समय तक कीबोर्ड के सामने झुककर बैठने से कमर पर दबाव जमा होता है, और disc protrusion spinal nerves पर दबाव डालकर पैरों में झनझनाहट, दर्द और नींद की दिक्कत तक पैदा कर सकता है
- अगर रोज़ body core और lower body की stretching की जाए, तो पेट और जांघों की मांसपेशियाँ शरीर को सहारा देने में मदद करती हैं, और strength training न होने पर भी नियमित stretching असरदार हो सकती है
- कम से कम हर एक घंटे में एक बार उठकर चलना या स्क्रीन से बाहर की कोई गतिविधि करना न सिर्फ़ शरीर को आराम देता है, बल्कि अटकी हुई coding समस्या से निकलकर नए प्रयासों के ideas भी दे सकता है
- देर रात coding कम करनी चाहिए और काम का माहौल बेहतर बनाना चाहिए, क्योंकि थकान बढ़ने पर code quality और posture दोनों साथ बिगड़ते हैं और लंबे समय तक झुकी हुई मुद्रा बने रहने की संभावना बढ़ जाती है
लंबे समय तक बैठकर coding करने पर होने वाला शारीरिक दबाव
- सबसे महत्वपूर्ण coding आदतें सिर्फ़ code को बेहतर बनाने वाली आदतें नहीं, बल्कि लंबे समय तक development जारी रखने में मदद करने वाली स्वस्थ working habits हैं
- लंबे समय तक कीबोर्ड के सामने झुकी हुई मुद्रा बनाए रखने के बाद slipped disc, spinal disc herniation से उबरने का अनुभव साझा किया गया है
- slipped disc का मतलब यह नहीं कि spinal disc अपनी जगह से निकल गई, बल्कि आम तौर पर रीढ़ के निचले हिस्से के पास की disc उभरकर spinal nerve को दबाने लगती है
- इससे सिर्फ़ कमर दर्द ही नहीं, बल्कि पैरों में झनझनाहट और दर्द भी हो सकता है, और स्थिति ऐसी हो सकती है कि चलना-फिरना या सोना भी मुश्किल हो जाए
- recovery में कई हफ्ते या कई महीने लग सकते हैं, और surgery भी एक विकल्प हो सकती है
रोज़ stretching करें
- लंबे समय तक बैठे रहने पर पेट और जांघों की मांसपेशियों का इस्तेमाल तुलनात्मक रूप से कम होता है, जिससे शरीर को सहारा देते समय कमर की मदद करने वाली ताकत घटती है और कमर पर अतिरिक्त दबाव पड़ सकता है
- strength training सबसे बेहतर है, लेकिन रोज़ body core और lower body की stretching करने भर से भी सकारात्मक असर की उम्मीद की जा सकती है
- जब मांसपेशियाँ ज़्यादा flexible होती हैं, तो वे शरीर को सहारा देने में बेहतर योगदान दे सकती हैं
- yoga में डूबने की ज़रूरत नहीं; सुबह या शाम गरम स्नान के बाद जैसे शरीर के relaxed होने पर नियमित stretching करना काफ़ी है
- शुरुआत में इस्तेमाल किया गया “chiropractor” शब्द बाद में “osteopath” से बदला गया, और यह नोट भी जोड़ा गया कि जापान के 接骨院 के लिए सटीक अंग्रेज़ी नाम 100% निश्चित नहीं है
नियमित रूप से break लें
- कम से कम हर घंटे में एक बार उठकर थोड़ी देर चलना या ऐसी कोई गतिविधि करना ज़रूरी है जिसमें स्क्रीन न देखनी पड़े
- यह आदत शरीर का ध्यान रखने का आसान तरीका है, और coding में भी मदद करती है
- जब किसी समस्या में फँस जाएँ, तो बिल्कुल अलग काम करके लौटने पर कुछ नया आज़माने का idea आ सकता है
- हर कोई इसकी ज़रूरत जानता है, लेकिन इसे अपनाना कठिन होता है, इसलिए इसे सचेत रूप से दोहराकर आदत बनाना पड़ता है
देर रात coding न करें
- “all-nighter मारा” जैसी बातों को शेख़ी की तरह देखने वाली संस्कृति को बदलने की ज़रूरत है
- बहुत ज़्यादा थकान की हालत में लिखा गया code और खराब, बल्कि नुकसानदेह भी हो सकता है
- थकने पर posture पर ध्यान भी स्वाभाविक रूप से कम हो जाता है, और कई घंटों तक कीबोर्ड पर झुककर बैठे रहने की नौबत आ सकती है
- एक तय समय के बाद मानसिक और शारीरिक रूप से काम बंद कर देने का नियम बनाना और उसे सख्ती से मानना ज़रूरी है
coding environment बेहतर करें
- laptop stand और ergonomic chair डेस्क पर बैठकर बिताया समय ज़्यादा आरामदायक बना सकते हैं
- फिर भी, ऐसे उपकरण होने पर भी कमर दर्द हो सकता है
- standing desk के बारे में बहुत सिफ़ारिशें सुनने के बाद बदलाव शुरू किया गया, और अभी डेस्क पर एक छोटी मेज़ रखकर अस्थायी setup इस्तेमाल किया जा रहा है
- खड़े होकर काम करने पर बैठने की तुलना में शरीर ज़्यादा हिलता-डुलता है, और ज़्यादा थकान महसूस किए बिना भी स्वाभाविक रूप से ज़्यादा बार break लिया जाता है
- अगर करियर की शुरुआत में ही ऐसी आदतें सुधार ली जाएँ, तो लंबे समय तक स्वस्थ तरीके से coding जारी रखी जा सकती है
1 टिप्पणियां
Hacker News की राय
असली बात दब गई है। सिर्फ लैपटॉप को पूरे दिन इस्तेमाल करना सेहत के लिए खराब है
ergonomic posture बनाने के लिए [0] नज़र लगभग सामने होनी चाहिए और कोहनियाँ नीचे की ओर चौड़े कोण पर मुड़ी होनी चाहिए, लेकिन सिर्फ लैपटॉप से यह संभव नहीं है। बाहरी keyboard·mouse·monitor जोड़कर उसे लगभग desktop की तरह इस्तेमाल करना पड़ता है
सिद्धांत रूप में laptop stand से बाहरी monitor की जगह ली जा सकती है, लेकिन लैपटॉप स्क्रीन का text छोटा होने के कारण अनजाने में गर्दन आगे निकालनी पड़ती है
बाहरी peripherals के बिना लैपटॉप इस्तेमाल करने का समय vibration·noise exposure की तरह सीमित होना चाहिए। आखिरकार कंधे या गर्दन, या दोनों, लगातार तनाव में रहते हैं
हैरानी की बात है कि इंटरनेट पर किसी भी ergonomics सामग्री में तुरंत उठने वाले इस मुद्दे को छोड़कर, standing desk जैसे niche product से शुरू किया जाता है। इससे “छोटी बातों में मत उलझो” वाली कहावत याद आती है
[0] https://www.nytimes.com/wirecutter/blog/7-things-you-need-fo...
और सामान्य बाहरी keyboard भी laptop keyboard से इतना ज़्यादा ergonomic नहीं होता। आम तौर पर वह बस थोड़ा चौड़ा होता है, इसलिए कलाई की स्थिति अब भी काफ़ी खराब रहती है
जब तक आप ergonomic keyboard तक नहीं जाते, सही ऊँचाई पर रखा बाहरी display keyboard से कहीं ज़्यादा असर डालता है
मैंने दोनों screens के ऊपरी हिस्से को थोड़ा पीछे झुकाया ताकि नज़र नीचे जाए, और खड़े रहने पर मैं थोड़ा पीछे हट सकता था, इसलिए कोहनियों को ज़्यादा बाहर फैलाने की ज़रूरत नहीं पड़ती थी। कलाई भी सीधी और आरामदायक रहती थी
Wirecutter लिंक देखकर लगा कि कुर्सी को छोड़कर मेरी setup उसकी सभी शर्तें पूरी करती है। अगर बीच-बीच में break लेता रहूँ, तो दिन में 8~12 घंटे भी काम कर सकता हूँ
परंपरागत रूप से डेस्क पर पढ़ते और लिखते समय हम सामने नहीं, नीचे देखते हैं। क्या वह ergonomic नहीं है? किताब को stand पर रखा जा सकता है, लेकिन लिखने के लिए भी क्या ऐसा कुछ होता है, यह जानना चाहता हूँ
उदाहरण के लिए Ikea FLISAT desk बच्चों के लिए है, लेकिन किशोरों के लिए भी अब तक ठीक बैठता है, और सच कहूँ तो कभी-कभी मुझे भी उस पर काम करना आरामदायक लगता है
लैपटॉप पर मैं बड़ी monitor की तुलना में screen resolution काफ़ी कम, यानी Retina scaling पर सेट करता हूँ। इससे workspace कम हो जाता है, लेकिन monitor के बिना इस्तेमाल करते समय आँखें सिकोड़नी नहीं पड़तीं
posture बहुत महत्वपूर्ण है। लेकिन इस लेख में पहले की तरह chiropractor पर भरोसा न करना भी उतना ही महत्वपूर्ण है। chiropractic एक quack medicine है, जो नुकसान न करने वाले लेकिन झूठे दावे वाले massage से लेकर खतरनाक, और कभी-कभी घातक, spinal manipulation तक फैली हुई है[1]
संपादन: संभवतः translation error को ध्यान में रखते हुए संशोधन किया
[1]: https://en.wikipedia.org/wiki/Chiropractic
[2]: https://web.archive.org/web/20100516074554/http://jrsm.rsmjo...
मैंने लेख को इसे दर्शाने के लिए update कर दिया है। मुझे फ़र्क पता नहीं था और मेरी research कम थी
निजी तौर पर मैंने किसी को holistic medicine करते नहीं देखा। व्यवहार में ज़्यादातर active release therapy (ART), Graston, cupping, और पारंपरिक physiotherapy का मिश्रण दिखता है, जो soft tissue·joint manipulation की प्रभावी तकनीकें हैं। पीठ चटकाना तो बस उसी package के साथ आता है
https://wikipedia.org/wiki/British_Chiropractic_Association_...
नतीजा उलटा पड़ा
“…मामला खत्म होने से पहले, British Chiropractic Association के एक-चौथाई सदस्य औपचारिक जाँच के दायरे में आ गए थे”
मैं orthopedic clinic गया, तो डॉक्टर ने literally सिर्फ इतना कहा, “दो पैरों पर चलने की कीमत,” और कोई मदद नहीं की
रात में भयानक कमर दर्द के कारण नींद नहीं आती थी, इसलिए मैंने chiropractor के पास जाना शुरू किया, और लगभग 10 लोगों के बाद जाकर एक अच्छा व्यक्ति मिला। वह DNFT (directional non force therapy) करता था, जिसमें पीठ या गर्दन नहीं चटकाई जाती थी, बल्कि रीढ़ की कई जगहों पर हल्का दबाव दिया जाता था
हैरानी की बात है कि उससे सचमुच बहुत फ़ायदा हुआ। अब मैं लगभग हर 5 साल में एक बार adjustment कराने जाता हूँ। यह काले जादू जैसा लगता है, लेकिन मेरे लिए काम किया
यहाँ एक धारणा है जिसे चुनौती दी जानी चाहिए। लैपटॉप बहुत व्यापक रूप से इस्तेमाल होते हैं, लेकिन coding environment के रूप में बेहतरीन नहीं हैं
इन्हें portability के लिए बनाया गया था, लेकिन लोग इन्हें जिस तरह इस्तेमाल करते हैं वह खराब आदतों, posture, हाथों की position और viewing angle—सबको बढ़ावा देता है। अगर चुन सकता, तो desktop चुनता और portability की सीमा स्वीकार करता
बेशक, यह विकल्प अब कम होता जा रहा है। दूसरा बेहतर तरीका है लैपटॉप को dock करके बंद रखना, और monitor, keyboard, mouse जैसे अलग peripherals इस्तेमाल करना
सच कहूँ तो मुझे desk/cubicle के बगल में vertical mount किया हुआ discontinued HP UltraSlim Dock इतना पसंद है कि मैं IT टीम के पास गया और उस dock के अनुकूल आख़िरी model विशेष रूप से मंगवाया। मेरा नया लैपटॉप 5 साल पुराना model है। यह उसके लायक था :)
कुंजी है स्क्रीन को ऊपर उठाकर अलग इस्तेमाल करना। स्क्रीन ऊँची रखें, Bluetooth keyboard इस्तेमाल करें, और नीचे की ओर न देखें
आदर्श रूप से setup ऐसा हो कि keyboard को लैपटॉप के नीचे रखा जा सके। मुश्किल है, लेकिन अगर इरादा हो तो soft drink के can और cardboard से भी हो सकता है। मैं आमतौर पर लैपटॉप को backpack के ऊपर रखता हूँ और keyboard को सामने या गोद में रखता हूँ
पहले मैं tablet-type 2-in-1 इस्तेमाल करता था और वह सच में बहुत अच्छा था। Tryone gooseneck arm जैसे product से स्क्रीन को मनचाही जगह पर रखा जा सकता है
ठीक-ठाक high-resolution 11~12-inch स्क्रीन को पास रखकर काम करना काफ़ी अच्छा था, लेकिन मैं हमेशा एक बड़ा, काम लायक 2-in-1 चाहता था। 2013 जैसा वह दौर याद आता है जब tablet को और बड़ा बनाने की कोशिश हो रही थी। वे फिर से थोड़ा बड़े हो रहे हैं, लेकिन उस समय के साहसी 18.4-inch दैत्य शायद बस थोड़ा जल्दी आ गए थे
आख़िर में मूल बात यही है: “अपने coding environment को बेहतर बनाओ”
keyboard को शरीर के क़रीब रखना, और desk की ऊँचाई बैठने पर जाँघों से बस थोड़ा ऊपर रखना ताकि कोहनियाँ शरीर से सटी रहें—यह मेरे लिए सबसे अच्छा ergonomics निकला। 20s और 30s में जो पीठ, गर्दन और कंधे का दर्द था, वह लगभग पूरी तरह गायब हो गया
एकमात्र समस्या यह है कि कुर्सी पर बैठे रहने से hips थक जाते हैं, लेकिन उसे break लेने का बहाना बनाया जा सकता है
पता नहीं यह posture सबके लिए सही होगा या नहीं; मैंने इसे प्रयोग करके खोजा। मैं सभी को अलग-अलग posture आज़माने और लंबे समय तक laptop इस्तेमाल करने से बचने की सलाह दूँगा। यह सच में बुरा है और कंप्यूटर के बाहर भी जारी रहने वाली खराब बैठने की आदतें बना सकता है
मुझे समझ नहीं आता कि लोग लैपटॉप को लंबे समय तक कैसे इस्तेमाल करते हैं। लैपटॉप को आराम से इस्तेमाल करने का एकमात्र तरीका है external monitor, keyboard, mouse जोड़ना
लेखक ergonomics की बात करता है, फिर भी अब भी laptop इस्तेमाल करता है। मेरे हिसाब से laptop का मतलब है flight में काम करना या यात्रा के दौरान hotel room में ले जाना, न कि peripherals के बिना रोज़ इस्तेमाल होने वाली मुख्य मशीन
laptop keyboard बहुत तंग होते हैं, स्क्रीन की ऊँचाई और angle ग़लत होते हैं, और trackpad तो आपदा है। 8 घंटे laptop इस्तेमाल करने के बाद ऐसा लगता है जैसे marathon के अगले दिन, और इसमें एक भी अच्छी बात नहीं है
मेरे लिए यह लगभग vertical mouse जितना ergonomic लगता है। हालाँकि vertical mouse हमेशा मेरे हाथ के लिए बहुत बड़े लगते हैं
Windows laptop trackpad के मामले में समझ आता है कि लोग क्यों नहीं चाहेंगे। Linux की तो बात ही छोड़िए, वहाँ trackpad support सच में बहुत जूझता हुआ लगता है
कभी catering area के पास वाले sofa पर, कभी बाहर balcony bench पर, meeting room में, या बाहर café में—मैं लगातार जगह बदलता रहता हूँ। मेरा मानना है कि बार-बार हिलना-डुलना और stretching breaks लेना, शानदार ergonomics setup से मिलने वाले फ़ायदों से बेहतर है
मुझे programming का यह बैठकर स्थिर रहने वाला स्वभाव कभी पसंद नहीं आया। समय के साथ मैंने खुद को हर 10 मिनट में spine सीधी करने, और हर 60 मिनट में थोड़ा लंबा walk लेकर दिमाग़ साफ़ करने और पीठ को recover करने के लिए मजबूर किया है
जिन मुश्किल समस्याओं या puzzles से सामना हुआ, वे आमतौर पर चलते समय ही हल हुए। दिमाग़ एक अलग अवस्था में चला जाता है और समस्या-समाधान बेहतर होता है
आप homelab के लिए ergonomic चीज़ें खरीद सकते हैं या कंपनी Herman Miller chair पर पैसा खर्च कर सकती है, लेकिन कोई भी ergonomic gadget बैठने की मूल समस्या को हल नहीं करता। pattern तोड़ना और बार-बार recovery breaks लेना ज़रूरी है
यह productivity बढ़ाने के लिए जाना जाता है। अगर आप 20s में हैं तो शायद बिना बड़ी समस्या के लंबे समय तक बैठ सकें, लेकिन समय के साथ अगर आप बीच-बीच में उठते, exercise करते और recover नहीं करते, तो बैठना ज़रूर असर डालेगा
उसके बाद अगर बैठा रहता, तो अक्सर यह टालमटोल शुरू हो जाती कि अगला क्या करना है, समझ नहीं आता
इसके उलट, चलते ही दिमाग़ अगले काम का फ़ैसला करने या अटकी हुई समस्या सुलझाने के मोड में चला जाता है
पीठ के लिए शानदार है, armrests को adjust करके कंधों पर दबाव कम किया जा सकता है, और seat tilt भी बढ़िया है। अब दूसरी कुर्सियों पर लंबे समय तक बैठना लगभग मुश्किल हो गया है
मुझे standing desk का आकर्षण कभी ठीक से समझ नहीं आया। बिना हिले-डुले खड़े रहना, बैठने से कम स्वाभाविक लगता है, और चलने-फिरने के विपरीत यह खास तौर पर स्वास्थ्यकर भी नहीं लगता
मैं व्यक्तिगत रूप से घंटों चल सकता हूँ, लेकिन कुछ मिनटों से ज़्यादा एक जगह खड़ा नहीं रह सकता। जिन ज़्यादातर नौकरियों में खड़े रहना पड़ता है, उनमें भी आमतौर पर कुछ न कुछ चलना-फिरना होता है। उदाहरण के लिए, कोई clerk काउंटर छोड़कर खरीदा गया सामान लाने भी जाता है
बेहतर बैठने की मुद्रा, नियमित walking breaks, और exercise जैसी सामान्य सिफारिशों में लंबे समय तक standing desk का उपयोग सबसे खराब विकल्पों में से एक लगता है। हाँ, बैठने और खड़े होने को बारी-बारी से करना अच्छा विचार लगता है
यह मुझे बैठे रहने की तुलना में कहीं ज़्यादा बार break लेने पर मजबूर करता है
[1] https://writings.stephenwolfram.com/2019/02/seeking-the-prod...
“chiropractor के अनुसार, लंबे समय तक बैठे रहने से पेट और जांघों की मांसपेशियाँ अपेक्षाकृत कम इस्तेमाल होती रहीं, इसलिए वे शरीर को सहारा देने में पीठ की मदद नहीं कर पाईं, और इससे पीठ पर अतिरिक्त भार पड़ा” — यह बात सुनने में ठीक लगती है
बार-बार उठकर चलना या stretching करना शरीर के लिए अच्छा है। लेकिन medical advice के लिए मैं chiropractor पर निर्भर नहीं रहूँगा
मैं Japan में रहता हूँ और 接骨院 जाता हूँ। मैं इसे chiropractor समझता था, लेकिन शायद osteopath इसका बेहतर अनुवाद होगा। पोस्ट करने से पहले मुझे यह जाँच लेना चाहिए था
हाथों को भी नहीं भूलना चाहिए। हम programmers को आमतौर पर “हाथ से काम करने वाले” नहीं मानते, लेकिन वास्तव में हम हैं। surgeons भी वैसे ही हैं
मैंने शुरुआत बहुत सख्त keyboard से की थी और दशकों तक keys को बहुत ज़ोर से दबाता रहा, जो उँगलियों के लिए अच्छा नहीं था। keys को ज़रूरत से ज़्यादा ज़ोर से नहीं दबाना चाहिए। जब इसे दशकों से गुणा करते हैं, तो joints और tendons पर पड़ने वाला झटका धीरे-धीरे damage के रूप में जमा होता है। अगर coding के एक दिन बाद उँगलियाँ दर्द करती हैं, तो इस पर ध्यान देना चाहिए
कलाई का कोण भी महत्वपूर्ण है। carpal tunnel syndrome बिल्कुल भी सुखद नहीं है। मैं अब तक इससे बचा रहा हूँ, लेकिन टाइप करते समय कलाई में तनाव बन रहा है या नहीं, यह देखना चाहिए। अगर तनाव है, तो layout और posture कैसे बदला जाए, इस पर सोचना चाहिए
मुझे laptop नापसंद होने की एक वजह यह है कि उसका keyboard मेरे हाथों के लिए बहुत छोटा होता है। गंभीर काम के लिए full-size keyboard चाहिए
ergonomics के बारे में सोचते समय हाथों को मत भूलिए। आँखों को भी मत भूलिए। नियमित रूप से monitor से नज़र हटानी चाहिए और कम से कम 20 feet दूर किसी चीज़ को कम से कम 20 seconds तक देखना चाहिए। सुझाया गया अंतराल हर 20 minutes है या हर 2 hours, यह मुझे याद नहीं, लेकिन यह नियमित रूप से करना चाहिए
https://workrave.org/
मेरे लिए सबसे अच्छा विकल्प floor desk है। शुरुआत में फर्श पर बैठना मुश्किल था, और मुझे ठीक से नीचे बैठना और फिर उठना भी दोबारा सीखना पड़ा
लेकिन समय के साथ, yoga और stretching करने से मेरा core मज़बूत हुआ, जोड़ों में भी बेहतर महसूस होने लगा, और मैं आराम से जितनी देर चाहूँ फर्श पर बैठ सकता हूँ। नीचे बैठने और फिर उठने की संख्या को हल्की exercise भी माना जा सकता है
लंबे काम के बाद भी मुझे कमर या किसी और तरह का दर्द बिल्कुल नहीं हुआ। फर्श पर आप स्वाभाविक रूप से posture बदलते रहते हैं, और यह भी अच्छा है कि chair की तुलना में बैठने या उकड़ूँ बैठने के कहीं अधिक तरीके होते हैं
इसका अक्सर ज़िक्र नहीं होता, लेकिन मेरे लिए यह बहुत तर्कसंगत है। बच्चे फर्श पर बैठना पसंद करते हैं, क्योंकि उन्होंने अभी mobility नहीं खोई होती। hunter-gatherer जनजातियाँ दिन का अधिकांश समय फर्श पर बैठकर बिताती हैं [0], और Japan सहित कई संस्कृतियों के बुज़ुर्ग भी बिना बड़ी परेशानी के फर्श पर बैठते हैं
[0] https://www.huffingtonpost.co.uk/entry/sitting-all-day-bad-f...
मैं लगभग 20 साल से programming कर रहा हूँ, और मैं chair के आगे वाले किनारे पर कूल्हे टिकाकर बहुत झुककर बैठने वाली मुद्रा अपनाता हूँ
यह posture बहुत आरामदेह और relaxed है, और पीठ पर बिल्कुल दबाव नहीं डालता। मैं monitor को ऊँचा रखता हूँ ताकि सिर ऊपर रहे। ज़रूरत पड़े तो मैं पूरे दिन 12 घंटे भी ऐसे रह सकता हूँ और शाम तक बिल्कुल भी असुविधा या दर्द नहीं होता
तथाकथित सही “ergonomic” posture की तरह डंडे की तरह सीधा बैठना मुझे तो आपदा को बुलावा देने जैसा लगता है। यह बहुत असुविधाजनक है और पीठ, बाँहों और गर्दन पर stress डालता है
रीढ़ सही तरह से “stacked” स्थिति में भी स्वाभाविक रूप से काफ़ी मुड़ी हुई होती है। “डंडे की तरह सीधा” जैसे लक्ष्य रखने से बात आसानी से बिगड़ सकती है और अनावश्यक तनाव पैदा हो सकता है