प्रोग्रामिंग के लिए एक आदर्श कीबोर्ड लेआउट [बंद]


89

मैं अक्सर शिकायतें सुनता हूं कि प्रोग्रामिंग भाषा जो संक्षिप्तता के लिए प्रतीकों का भारी उपयोग करती है, विशेष रूप से C और C ++ (मैं एपीएल को छूने नहीं जा रहा हूं), टाइप करना मुश्किल है क्योंकि उन्हें शिफ्ट कुंजी के लगातार उपयोग की आवश्यकता होती है। एक या दो साल पहले, मैं खुद से थक गया, माइक्रोसॉफ्ट के कीबोर्ड लेआउट क्रिएटर को डाउनलोड किया , मेरे लेआउट में कुछ बदलाव किए, और एक बार भी पीछे मुड़कर नहीं देखा। गति का अंतर आश्चर्यजनक है; इन कुछ सरल परिवर्तनों के साथ, मैं C ++ कोड को लगभग 30% तेजी से टाइप करने में सक्षम हूं, यह इस बात पर निर्भर करता है कि यह कितना बालों वाला है; सबसे अच्छा यह है कि साधारण चल रहे पाठ में मेरी टाइपिंग की गति से समझौता नहीं किया जाता है।

मेरे प्रश्न ये हैं: प्रोग्रामिंग के लिए कौन से वैकल्पिक कीबोर्ड लेआउट मौजूद हैं, जिन्होंने लोकप्रियता हासिल की है, क्या उनमें से कोई अभी भी आधुनिक उपयोग में है, क्या आप व्यक्तिगत रूप से किसी भी परिवर्तित लेआउट का उपयोग करते हैं, और मेरे लेआउट को और कैसे अनुकूलित किया जा सकता है?

मैंने एक मानक QWERTY लेआउट में निम्नलिखित बदलाव किए। (मैं ड्वोरक का उपयोग नहीं करता , लेकिन एक प्रोग्रामर ड्वोरक लेआउट का उल्लेख करने लायक है।)

  • शीर्ष पंक्ति में प्रतीकों के साथ स्वैप संख्या , क्योंकि लंबे या बार-बार शाब्दिक संख्याओं को आमतौर पर नामित स्थिरांक के साथ बदल दिया जाता है;
  • टिल्ड के साथ स्वैग बैकक्वाओ, क्योंकि बैककॉट कई भाषाओं में दुर्लभ हैं, लेकिन विनाशकारी सी ++ में आम हैं;
  • अंडरस्कोर के साथ स्वैप माइनस करें, क्योंकि पहचानकर्ताओं में अंडरस्कोर आम हैं;
  • चौकोर कोष्ठक के साथ घुंघराले ब्रेसिज़ स्वैप करें, क्योंकि ब्लॉक सदस्यता से अधिक सामान्य हैं; तथा
  • सिंगल कोटे के साथ डबल कोट्स को स्वैप करें, क्योंकि स्ट्रिंग्स , चरित्र शाब्दिकों की तुलना में अधिक सामान्य हैं।

मुझे लगता है कि यह अंतिम शायद सबसे विवादास्पद होने जा रहा है, क्योंकि यह आम संकुचन टाइप करने के लिए शिफ्ट के उपयोग की आवश्यकता से चलने वाले पाठ के साथ सबसे अधिक हस्तक्षेप करता है। इस लेआउट ने C ++, C, Java, और पर्ल में मेरी टाइपिंग की गति को काफी बढ़ा दिया है और इसे LISP और पायथन में कुछ हद तक बढ़ा दिया है।


32
शायद यह सिर्फ इतना है कि मैं बहुत धीमी गति से सोच रहा हूं - लेकिन सॉफ़्टवेयर को विकसित करते समय कच्चे टाइपिंग की गति आमतौर पर मेरा सीमित कारक नहीं है। अगर ऐसा होता, तो मैं शायद सोचता कि मैं कुछ गलत कर रहा हूं।
ल्यूकोरो

9
@ ल्यूकोरो: कुल मिलाकर , नहीं, लेकिन जब मैंने (अंत में!) यह पता लगाया कि मुझे क्या करना चाहिए, तो जितनी तेजी से और अधिक आराम से मैं इसे टाइप कर सकता हूं, उतना बेहतर होगा। एक बार जब आप अपनी सारी कठिन सोच पूरी कर लेते हैं, तो कभी-कभी कोड पीस करने के लिए बहुत कुछ करना पड़ता है ... :-)
टीजे क्राउडर

3
@Jon: व्यक्तिपरक के रूप में बंद होने से पहले इसे एक सीडब्ल्यू बनाने की जोरदार सलाह देते हैं (जो, आखिरकार, यह है)।
टीजे क्राउडर

20
@ टीजे: सीडब्ल्यू बनाया। एक अच्छा लेआउट कच्चे प्रदर्शन का मुद्दा नहीं है, क्योंकि यह आराम से एक है- लेकिन प्रदर्शन के लिए आराम बहुत महत्वपूर्ण है।
जॉन पूर्डी

3
यह मजेदार है कि आप काफी कम लोगों द्वारा कैसे पटक दिए गए हैं, मैं उन्हें अनदेखा करने का सुझाव दूंगा। यह केवल गति नहीं टाइपिंग है (जो है एक कारक आप "के रूप में आपको लगता है कार्यक्रम 'करने में सक्षम हो करने के लिए पर्याप्त टाइप कर सकते हैं तो), ergonomy कि श्रेष्ठ माना जाता। लेकिन गति और एर्गोनॉमी एक साथ चलते हैं: चालें जो आपके हाथों को प्रदर्शन करने के लिए धीमी होती हैं, थकान त्रुटियों की ओर जाता है और उन करों को आपके हाथों को ठीक करना और भी अधिक। और लंबी अवधि में, अपनी आवश्यकताओं से मेल खाने के लिए अपने कीबोर्ड लेआउट को ट्विट करना आरएसआई या आरएसआई के बीच अंतर हो सकता है।
बस किसी को

जवाबों:


32

मैं अभी भी मानता हूं कि किसी परियोजना को पूरा करने में लगने वाले समय में टाइपिंग की गति मुख्य कारक नहीं है। यदि यह है, तो एक बड़ी समस्या है (कोडिंग का सप्ताह हमें योजना बनाने के घंटे बचाता है)।

आपके प्रश्न के बारे में मैं मानक लेआउट का उपयोग करना पसंद करता हूं क्योंकि इसका मतलब है कि मानक कीबोर्ड लेआउट के साथ प्रस्तुत करते समय मुझे बेवकूफ दिखने वाले पहले 10 मिनट खर्च करने की आवश्यकता नहीं है।

आपके द्वारा सुझाए गए प्रतिस्थापनों में से कुछ, जैसे कि विशेष वर्णों के साथ शीर्ष पंक्ति में कोई अंतर नहीं है, क्योंकि दूसरी ओर बाहर की उंगली उसी समय शिफ्ट में जा रही है।

IMHO एक चीज जो लेआउट को चेंज करने में मदद करती है वह केवल कीबोर्ड शॉर्टकट का उपयोग कर रही है। विम और एमएसीएस की सिफारिश की जाती है। यह पाठ को तेजी से चारों ओर घुमाता है।


22
ओह, नहीं, टाइपिंग की गति किसी भी तरह से एक अड़चन नहीं है, लेकिन एक ही समय में, एक कीबोर्ड के रूप में मूर्खतापूर्ण तरीके से कुछ क्यों दें? मुझे अपने लेआउट और अन्य के बीच आगे और पीछे स्विच करने में कोई परेशानी नहीं हुई, क्योंकि मैं अक्सर दोनों का उपयोग करता हूं; मैं बस मेरा पसंद करता हूं। और मुझे स्वीकार करना चाहिए, एमएसीएस प्रोग्रामिंग को तेज करता है जैसा कि हो सकता है - जब मुझे एक महत्वपूर्ण अनुक्रम नहीं देखना है।
जॉन पूर्डी

4
ओह, और बाएं और दाएं हाथ के आंदोलनों की एक साथता से भी कोई फर्क नहीं पड़ता: कुंजी के टूटने से पहले ही संशोधक को उदास होना पड़ता है। मिलीसेकंड का एक अंतर, निश्चित रूप से, लेकिन फिर से, अपने आप में बाधा क्यों? आपके लिए काम न करने वाले लेआउट के साथ प्रोग्रामिंग करना एक चिपचिपे कीबोर्ड पर प्रोग्रामिंग करने जैसा है।
जॉन पूर्डी

7
मैं यह याद रखता हूं कि कई कीबोर्ड लेआउट को स्मृति में रखकर आप अपनी मांसपेशियों-मेमोरी को तोड़ रहे हैं और इस तरह से अपने टाइपिंग को धीमा बना रहे हैं।
जेस्पर

1
शिफ्ट कुंजी के साथ दूसरा मुद्दा अनुक्रम है जहां आप बारी-बारी से कर रहे हैं, इसलिए दोनों हाथ शीर्ष पंक्ति से अपनी शिफ्ट कुंजी और वापस कूद रहे हैं। मैं यह नहीं कह रहा हूं कि यह चिंता करना आम है, लेकिन "(! X)" जैसी चीजें चिढ़ के रूप में योग्य हो सकती हैं।
स्टीव 314

2
-1: चर्चा में कुछ भी योगदान नहीं करता है ("बेवकूफ दिख रहा है" तर्क अनुभव से एक भी डेटा द्वारा समर्थित नहीं है, यह एक आगे की चिंता है) और तय नहीं किया जा सकता है।
इवगेनी सर्गेव

19

मैं निम्नलिखित तरीके से आपके प्रश्न का उत्तर दूंगा। कार्य इस तरह से एक कीबोर्ड को व्यवस्थित करना है जैसे कि दिए गए पाठ के लिए कुंजी स्ट्रोक और हाथ आंदोलन को कम करना।

एक संभव समाधान की ओर कदम। एक कार्यक्रम बनाएं जो:

  1. स्रोत कोड के साथ एक पाठ फ़ाइल लेता है। (बड़ा बेहतर और विभिन्न स्रोतों से!)
  2. प्रत्येक प्रतीक के उपयोग की आवृत्ति (पाठ में इसकी उपस्थिति) की गणना करता है।
  3. (वैकल्पिक) चरण 2 के आधार पर: कार्यक्रम प्रत्येक प्रतीक के लिए कुंजी स्ट्रोक गणना उत्पन्न करता है और साथ ही हाथ को केंद्रीय स्थिति से कितनी दूर जाना है। परिणामस्वरूप आपके पास एक उपाय होगा कि आपका कीबोर्ड लेआउट कितना प्रभावी है।

अब मैन्युअल रूप से या एक प्रोग्राम लिखकर अपने लेआउट को निम्नलिखित तरीके से फिर से परिभाषित करें। अपने मजबूत हाथ के करीब केंद्रीय स्थिति में सबसे अधिक बार उपयोग किए जाने वाले प्रतीक को रखें। दूसरा प्रतीक केंद्रीय स्थिति में आपके कमजोर हाथ में जाता है। तीसरा प्रतीक आपके मजबूत हाथ पर वापस जाता है ... और इसी तरह। फिर आप धीरे-धीरे हाथों की केंद्रीय स्थिति से कीबोर्ड के अधिक "दूर" क्षेत्रों में चले जाते हैं। जब सभी कीबोर्ड फुल हो जाते हैं तो आप कुंजी असाइन करने की प्रक्रिया जारी रखते हैं लेकिन इस बार Shift कुंजी दबाए रखें। दूसरा अंतर यह होगा कि शिफ्ट डाउन होने पर आप प्रत्येक प्रतीक के लिए मजबूत और कमजोर हाथ नहीं घुमाते हैं। नीचे शिफ्ट की के साथ पहले आप कीबोर्ड पर केंद्रीय पदों को भरें और फिर अधिक दूर की स्थिति में जाएं।

जब आप वह सब करते हैं जो नए लेआउट के लिए चरण 3 को फिर से करता है, तो यह देखने के लिए कि लेआउट में सुधार कैसे किया गया था।

आपको हर समय अपने कीबोर्ड को अपने साथ रखना होगा। चमकदार पक्ष पर कोई भी आपके कंप्यूटर को नहीं छूएगा। यह आपको एक प्रो की तरह दिखेगा।

अंत में, अपने निष्कर्षों को साझा करना न भूलें।


मैं वास्तव में इस जवाब को पसंद करता हूं: पी
पीजिंज़

अगर कोई चीज़ों को और अधिक जटिल बनाना चाहता है, तो कोई चरित्र संयोजन में कारक हो सकता है और हाथों को वैकल्पिक बनाने या एक ही उंगली के स्ट्रोक से बचने की कोशिश कर सकता है (जैसे QWERTY पर "किलो")
विस्मयकारी

15

मैं इस समय प्रतीकों के भारी बदलाव के साथ कोलेमक लेआउट के एक संस्करण के साथ खेल रहा हूं:

बिना SHIFT:

`- {} []; <> () _ =
qwfpgjluy * / # \ _
arstdhneio '
zxcvbkm। !

SHIFT के साथ:

~ 1 2 3 4 5 6 7 8 9 0 & +
QWFPGJLUY @ ^ $ |
ARSTDHNEIO "
ZXCVBKM%:?

शायद मैं / कुंजी को पुनर्स्थापित करूँगा ...

लेकिन यह किसी भी ध्वनि अनुसंधान पर आधारित नहीं है, और मैं एक लेआउट को अनुकूलित देखना पसंद करूंगा (ऑप्टिमाइज़ेशन जैसे सामान को हाथ में फेरबदल करना आदि, ZXCV संरक्षण, ...) एक सोर्सकोड आधारित कॉर्पस के साथ, क्योंकि ये सभी लेआउट लगते हैं केवल गद्य के लिए अनुकूलित किया जाए। उदाहरण के लिए, 'f' C (यदि, के लिए) में एक बहुत ही सामान्य अक्षर है।

अद्यतन: मैं वर्तमान में उपयोग कर रहा हूँ

`- {} [] @ <> () _ =
qwkrgyulp *; #
asftdhneio '\
\ zxcvbjm, /

SHIFT के साथ:

~ 1 2 3 4 5 6 7 8 9 0 ^ +
QWKRGYULP &! $
ASFTDHNEIO "|
| ZXCVBJM%:?

यह सामान्य कट / कॉपी / पेस्ट / पूर्ववत शॉर्टकट के संरक्षण के साथ कार्पलक्स से लिए गए 6-की-स्वैप आंशिक अनुकूलन पर आधारित है और सामान्य प्रोग्रामिंग पात्रों को बेहतर पहुंच प्रदान करने के लिए संशोधित किया गया है।


1
मुझे वर्णों को संख्याओं पर डिफ़ॉल्ट बनाने का विचार पसंद है। यानी: शिफ्ट + 1 एक पाने के लिए, और 1 दबाने से आपको मिलता है!
रे

14

एक साधारण कुंजी लकड़हारा बनाओ, फिर प्रत्येक कुंजी को दबाए जाने की संख्या की गणना करें। इसे एक या दो दिन के लिए चलाएं, फिर आउटपुट को टेक्स्ट फ़ाइल में सहेजें। ऐसा हर एक बार और थोड़ी देर बाद करें। इससे कोई फर्क नहीं पड़ता कि आप किस लेआउट का उपयोग कर रहे हैं, जैसा कि आप देख रहे हैं कि किस कुंजी का सबसे अधिक उपयोग किया जा रहा है।

यदि आप एक अच्छा लेआउट बनाना चाहते हैं, तो आप आदर्श से दूर जाने से डर नहीं सकते। मैं घरेलू पंक्ति के साथ शीर्ष 11 कुंजियाँ डालने का सुझाव दूंगा, फिर शीर्ष पंक्ति के रूप में अगली शीर्ष 11 कुंजियाँ (कम से कम उपयोग की गई कुंजियों के रूप में वापसी कुंजी के ऊपर 2 कुंजियाँ छोड़ें), फिर नीचे पंक्ति के रूप में 3 शीर्ष 11 कुंजियाँ । अभी 4 चाबियां बची होनी चाहिए। उन ले लो और उन्हें - = और] \ स्लॉट में डाल दिया। बधाई! आपने अब अपने उद्देश्यों के लिए एक शानदार कीबोर्ड लेआउट बनाया है! = D


1
बहुत अच्छा जवाब: कीबोर्ड को मालिक के लिए taylored होना चाहिए
Julien__

2
कीबोर्ड उपयोग के आंकड़ों के लिए, पहले से ही अच्छे कार्यक्रम हैं जो हीटमैप दिखा सकते हैं, जैसे एक: व्हाट्सपल्स
मिहाई

[पुरानी पोस्ट टिप्पणियों पर जाना] यह वास्तव में एक अच्छा (या गर्म?]) विचार है। मुझे खुद उसमें जाँच करनी होगी!
Tgwizman

10

कुल मिलाकर, मुझे लगता है कि एक अच्छा टेक्स्ट एडिटर होना और यह जानना कि इसका उपयोग करना आपकी टाइपिंग स्पीड को बेहतर बनाने की कोशिश से बेहतर है। मैक्रोज़ को रिकॉर्ड करने और फिर से खेलना करने में सक्षम होने के नाते, कभी-कभी एक लाइफसेवर होता है, और शॉर्टकट-असाइन किए गए कोड स्निपेट का चयन आसान हो सकता है क्योंकि लाइब्रेरी में क्या बदल सकता है, इस पर सामान्य रूप से भाषा-थोपा गया सीमाएं हैं।

आम तौर पर, मुझे लगता है कि वास्तविक उत्पादकता बढ़ाने वाले सभी ज्ञान के बारे में हैं ...

  • यह जानते हुए कि कौन से उपकरण और पुस्तकालय उपलब्ध हैं और उनका उपयोग कैसे करना है।
  • आप जिस कोड पर काम कर रहे हैं, उसकी समग्र संरचना के बारे में जानना, न कि केवल आपका थोड़ा सा।
  • कुंजी एल्गोरिदम, डिज़ाइन पैटर्न और मुहावरों को जानना, ताकि आपको उन्हें पुनः स्थापित न करना पड़े।
  • नियमों को अच्छी तरह से जानना कि आप लचीले हो सकते हैं - आप जानते हैं कि उन्हें कब तोड़ना है।
  • अपने सहकर्मियों और उनकी ताकत, कमजोरियों आदि के बारे में जानना - यानी यह जानना कि कब खुद को आंकना है, लेकिन यह भी कि कब और किसे पूछना है।

एफडब्ल्यूआईडब्ल्यू, मैं उन सभी पर मजबूत होने का दावा नहीं कर रहा हूं। मैं हमेशा समस्याओं को हल करने की दिशा में बहुत अधिक पक्षपाती रहा हूं, और पहिया और भव्य वास्तुशिल्प योजनाओं को सुदृढ़ करने की दिशा में बहुत मजबूत प्रवृत्ति के साथ।

वैसे भी, मुझे सिर्फ यह संदेह है कि कीबोर्ड लेआउट को बदलने और सीखने में समय बिताना अधिक महत्वपूर्ण मुद्दों से ध्यान भटकाना होगा।


1
मैं आपके साथ सभी मामलों पर सहमत हूँ! औजारों और मुहावरों का अच्छा उपयोग करना सिर्फ अच्छी प्रोग्रामिंग है। लेकिन यह एक बहुत ही विशिष्ट बात के बारे में एक सवाल है, और हे, पंद्रह मिनट पहले दो साल ने मुझे उचित मात्रा में निराशा से बचाया है।
जॉन पूर्डी

@ जौन - मुझे यह बात समझ में आती है, लेकिन मुझे लगता है कि मेरी टाइपिंग की आदतें अब तक बहुत मजबूत हो चुकी हैं।
स्टीव 314

-1: ऐसा नहीं लगता कि यह वैकल्पिक कीबोर्ड लेआउट के साथ अनुभव पर आधारित है; उनके साथ मेरे अनुभव के खिलाफ जाता है। विषय से परे रास्ता। ठोस कार्रवाई आइटम प्रदान नहीं करता है। तय नहीं किया जा सकता।
इवगेनी सर्गेव

-4

कीबोर्ड लेआउट को बदलना एक बुरा विचार है क्योंकि यह (शायद) एक कीबोर्ड पर आपकी टाइपिंग की गति को बढ़ाएगा, लेकिन अन्य कीबोर्ड या कंप्यूटर पर आपकी टाइपिंग की गति को गंभीर रूप से नुकसान पहुंचाएगा जहां आपके पास अपना विशेष कीबोर्ड लेआउट नहीं है। मैंने पाया है कि अपने आप को चूक के साथ समायोजित करने के लिए अक्सर बेहतर होता है, कि उन्हें हर जगह बदलना होगा। (व्यक्तिगत रूप से, मेरी उंगलियां बहुत अधिक Emacs- पक्षपाती हैं, जिसके कारण हर जगह बहुत अधिक टाइपिंग घर्षण होता है।)


7
मैं खुशी से दो लेआउट के बीच स्विच करता हूं। जॉन की रिपोर्ट है कि यह "एक या दो साल" रहा है और उसे आगे और पीछे जाने में कोई परेशानी नहीं है। YMMV, मूल रूप से।
टीजे क्राउडर

4
मुझे कीबोर्ड और कीबोर्ड लेआउट के बीच बदलाव करना आसान लगता है / विभिन्न भाषाओं में बोलने के बीच बदलना आसान है - यदि आप उन्हें अच्छी तरह से जानते हैं, तो कुछ मिनटों के बाद आप विचार की पूरी गति प्राप्त कर लेते हैं।
लियोरी

1
@ लियोरी: अच्छी तरह से कहा, हालांकि यह मिनटों या सेकंडों के क्रम पर है या नहीं, यह पूरी तरह से इस बात पर निर्भर करता है कि मैं कितना थका हुआ हूं। : पी
जॉन पूर्डी

2
@ जैसन डी: मान्य अंक, लेकिन मुझे खुशी है कि वे मेरे लिए लागू नहीं हैं ... मैं शायद ही कभी अन्य लोगों के कंप्यूटरों का उपयोग करता हूं।
लोरी

2
@Liori। बहुत सी कंपनियों के साझा कंप्यूटरों के साथ सम्मेलन कक्ष हैं। और एक बहुत सारे डेवलपर्स किसी और को अपने कंप्यूटर को "ड्राइव" करने देंगे जब टैग एक कठिन मुद्दे को जोड़ देगा। यदि अन्य लोग आपके गैर-मानक लेआउट के कारण आपके कंप्यूटर को छूने के लिए सोचते हैं, तो आप सहकारी समस्या को सुलझाने में बाधा उत्पन्न कर सकते हैं। और आपके नियोक्ता के लिए, जो चुने हुए लेआउट के साथ आपके द्वारा लिए गए व्यक्तिगत लाभों के थोक को समाप्त करता है । याद रखें, विकास आमतौर पर दुनिया के खिलाफ एक आदमी नहीं है। यह आमतौर पर एक टीम के रूप में किया जाता है।
जेसन डी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.