"तेज" प्रोग्रामर कैसे बनें?


142

मेरे अंतिम नौकरी मूल्यांकन में केवल एक कमजोर बिंदु शामिल था: समयबद्धता। मैं पहले से ही कुछ चीजों के बारे में जानता हूं जो मैं इसे सुधारने के लिए कर सकता हूं लेकिन जो मैं देख रहा हूं वह कुछ और हैं।

क्या किसी के पास इसकी गुणवत्ता के त्याग के बिना अपने उत्पादन की गति बढ़ाने के लिए सुझाव या सलाह है?

आप समयसीमा का अनुमान कैसे लगाते हैं और उनसे चिपके रहते हैं? कम समय अवधि में अधिक काम करने के लिए आप क्या करते हैं?

किसी भी प्रतिक्रिया बहुत सराहना की है, धन्यवाद,


96
यदि आप ऐसा करते हैं तो काम पर एसओ पर कम समय बिताएं।
सैन जैसिंटो

52
यदि आप इसे पढ़ रहे हैं, तो यह पहले ही बहुत देर हो चुकी है

32
मैंने पढ़ा "कैसे एक प्रोग्रामर बनने के लिए"। मुझे Laught बनाया
marcgg

13
मैं आपसे एक अनुवर्ती प्रश्न पूछूंगा। क्या आपके खुद के खराब प्रदर्शन (एकेए) के परिणामस्वरूप "तेज प्रोग्रामर" बनने की आपकी इच्छा है, आपको अपने कौशल को सुधारने की आवश्यकता है, आपको ध्यान केंद्रित करने और ध्यान भंग (जैसे एसओ), आदि को खत्म करने की आवश्यकता है, या एक विकास से खराब योजना है दृष्टिकोण (AKA), आपको ऐसा करने के लिए 1 सप्ताह का समय दिया गया था जो किसी भी समझदार व्यक्ति को ज्ञात होता है 1 महीने का समय। प्रत्येक आइटम के बहुत अलग समाधान हैं।

3
कोई एकल सही उत्तर संभव नहीं है, इसलिए इसे एक समुदाय विकि प्रश्न में बनाएं या आपके पास प्रश्न बंद हो।
डोनाल्ड फेलो

जवाबों:


190

कंप्यूटर बंद कर दें। एक पेंसिल और कुछ कागज पकड़ो। अपने डिज़ाइन को स्केच करें। अपने साथियों के साथ इसकी समीक्षा करें। फिर कोड लिखें।


9
या आप अपने कंप्यूटर को चालू रख सकते हैं, और खुल सकते हैं यानी MS Visio
sshow

208
पेंसिल और कागज या एक व्हाइटबोर्ड मेरे द्वारा उपयोग किए जाने वाले अधिकांश अनुप्रयोगों से तेज है।
थॉमस ओवेन्स

24
इसे कागज़ पर करने से मन केंद्रित होता है।

100
मैं विज़िओ की टिप्पणी को कम क्यों नहीं कर सकता? विज़ियो का उपयोग नहीं करना विकास को गति देने का एक निश्चित तरीका है!

52
ऊग .... विसियो। जब भी मुझे "अपने डिज़ाइन दस्तावेज़ में Visio का उपयोग करने के लिए" कहा जाता है, तो मैं इसे पहले पेपर पर स्केच करता हूं, फिर अगले दो दिनों को Visio की सभी लाइनों को सही करने के लिए लड़ते हुए बिताता हूँ।
राबर्ट फ्रेजर

149

कुछ विचार...

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

7
पहिए को फिर से नहीं लगाने के लिए +1। पुन: प्रयोज्य कोड का उत्पादन करना सीखें, जो दूसरे कोड में प्लग इन कर सकता है और छोटे री-राइट के साथ काम नहीं कर सकता है। (पूर्व .: कड़ी मेहनत से कोडिंग के बजाय मानकों के साथ काम करता है,)

34
+1 के लिए "गोल्ड प्लेटिंग से बचें" - यह मेरे पूर्णतावादी / गुदा-प्रतिगामी प्रवृत्ति के कारण बहुत अधिक समय सीमा में गुम होने का कारण रहा है।
दीना

7
टाइपिंग - महत्वपूर्ण बिंदु। मैं हमेशा उन कोडरों की संख्या से चकित होता हूं जो मुझे टाइप करने के लिए नहीं सीखे ...
धान

2
+1 विक्षेपों को दूर करता है। जैसा कि मैंने देखा, वे प्रमुख समय खाने वाले हैं।

2
+1 माइक्रो-सुधार के सुझावों के लिए (नियोजन परियोजनाओं के संदर्भ में मैक्रो-सुधार के बजाय)।

132

अपने आप से एक "तेज" प्रोग्रामर बनने की आपकी इच्छा प्रशंसनीय है। हालांकि, समय पर डिलीवरी न करने का मतलब यह नहीं है कि आप धीमे हैं, इसका मतलब है कि परियोजना की योजना खराब थी। "तेज़" प्रोग्रामर होने से मदद नहीं मिलेगी; इसका मतलब सिर्फ इतना है कि आप अंतिम समय सीमा को तेजी से पार करेंगे।

आप (आपकी टीम) निम्नलिखित गलतियों में से एक कर रहे हैं (या उनमें से सभी):

  • जिस काम को करने की आवश्यकता है उसे कम करके आंका ;
  • योजना के दौरान एक बड़ी आवश्यकता या वास्तुकला का टुकड़ा गायब होना ;
  • कैलेंडर अनुमानों के साथ भ्रमित करने वाले कार्य अनुमान और मीटिंग / फोन / अन्य ओवरहेड जैसी चीजों के लिए लेखांकन नहीं;

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

मैं इसे फिर से दोहराऊंगा - कोड लिखने में धीमा होने के कारण समय सीमा याद नहीं होगी , यदि आपने उस तथ्य को ध्यान में रखते हुए ठीक से योजना बनाई है।


47
कुछ देव वास्तव में बहुत धीमी हैं। यह एक समस्या हो सकती है।

12
हां, यह एक समस्या हो सकती है, लेकिन यह एक व्यक्तिगत समस्या है। यह एक परियोजना या टीम की समस्या नहीं बननी चाहिए। दूसरे शब्दों में, यह किसी के कारर को प्रभावित कर सकता है, लेकिन यह परियोजना अनुसूची को प्रभावित नहीं करना चाहिए।
फ्रैंकी पेनोव

12
'समय पर वितरित नहीं होने का मतलब यह नहीं है कि आप धीमे हैं, इसका मतलब है कि परियोजना खराब तरीके से बनाई गई थी' - यह एक अमान्य तर्क का एक टेक्स्टबॉक्स विवरण है। कई अन्य कारण हैं कि आप समय पर क्यों नहीं पहुंच सकते हैं, जिनमें से एक अच्छी तरह से हो सकता है क्योंकि आप धीमे हैं।
मांस

15
@ मांस - यदि आप जानते हैं कि आप धीमे हैं, तो आप उस तथ्य के लिए अपने कार्यक्रम की योजना क्यों नहीं बनाएंगे? दूसरे शब्दों में, यदि आप जानते हैं कि आप उसेन बोल्ट के रूप में तेजी से नहीं चला सकते हैं, तो क्या आप 9.7 में 100 मीटर चलाने की योजना बना सकते हैं?
फ्रैंकी पेनोव

5
@ रिबन - इस स्थिति में आप सुविधाओं में कटौती करते हैं। आप निश्चित समय में कुछ काम करने का वादा नहीं कर सकते जब आप जानते हैं कि यह नहीं किया जा सकता है और एक चमत्कार की उम्मीद है।
फ्रैंकी पेनोव

89

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


3
यह वास्तव में कभी-कभी उत्पादकता बढ़ा सकता है
sshow

6
वास्तविक कोड लिखना सिर्फ एक देव के काम का हिस्सा है। पूर्णता के लिए आईडीई सीखने के लिए समय बिताना एक बिंदु अनुकूलन है; और आप जानते हैं कि वे अनुकूलन के बारे में क्या कहते हैं, क्या आप नहीं? - "पहले उपाय करें और फिर बाधाओं को अनुकूलित करें"।
फ्रैंकी पेनोव

1
मैं यह सब नहीं देख रहा हूँ। अगर मैं अपने टाइपिंग टाइम से 50% कम है, तो मुझे एक दिन में कितना समय बचाना है? अपने अनुभव में, मैं ज्यादातर समय सोच-विचार / परीक्षण / मूल्यांकन / थोड़ा-थोड़ा / आदि कोड का खर्च कर रहा हूं, क्योंकि वास्तव में इसे लिखने की तुलना में, मुझे लगता है कि यह अंत में एक जीत के रूप में ज्यादा नहीं होगा।

4
यह IDE को बिना सोचे समझे कुछ करने के लिए नेविगेट करता है। किसी भी चीज़ के लिए किसी भी शंकनीय प्रयास की आवश्यकता होती है, जैसे कि छोटे ग्रे बटन पर जाने से कुछ या अन्य सभी छोटे ग्रे बटन के आगे आपकी सोच को बाधित करके आपको धीमा कर देता है। बिना किसी गति के मेरी उंगलियों के नीचे ctrl-n होना एक प्रमुख शुद्ध जीत है।
पॉल मैकमिलन

5
समान पंक्तियों के साथ: सामान्य 'हॉट' कुंजी सीखें। उदाहरण के लिए, कई विंडोज़ कार्यक्रमों में ... कॉपी: Ctrl + c कट: Ctrl + x ('x' कैंची की खुली जोड़ी की तरह दिखता है) चिपकाएँ: Ctrl + v ('c' और 'x' के ठीक ऊपर) लाइन के प्रारंभ में जाएं: होम लाइन के अंत में जाएं: एंड को कर्सर ले जाएं शब्द (चरित्र नहीं): [Shift] + Ctrl + बाएं या दाएं ऊपर जाएं doc: Ctrl + Home डॉक के अंत में जाएं: Ctrl + End आदि

38

"क्या किसी के पास इसकी गुणवत्ता की बलि दिए बिना अपने उत्पादन की गति बढ़ाने के लिए सुझाव या सलाह है?"

बहुत से, बहुत से लोग किसी चीज़ की कीमत पर "अंतिम" गुणवत्ता के लिए प्रयास करते हैं जो (ए) सरल है, (बी) विश्वसनीय और (सी) सही है।

अपने विकास को गति देने का सबसे महत्वपूर्ण तरीका यह है कि आप जो कर रहे हैं उसे सरल बनाएं ताकि यह बिल्कुल सरल हो।

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

मैंने सुना है कि बहुत से लोग मुझे बताते हैं कि ग्राहक क्या "उम्मीद करता है"। यह एक खराब नीति है।

सरलतम संभव बात का निर्माण करें। यदि ग्राहक को अधिक की आवश्यकता होती है, तो अधिक निर्माण करें। लेकिन पहले सबसे सरल संभव चीज़ का निर्माण करें।


"बहुत से, बहुत से लोग" परम "गुणवत्ता के लिए किसी चीज़ की कीमत पर प्रयास करते हैं जो (ए) सरल है, (बी) विश्वसनीय और (सी) सही है।" आप इसे उस पर छोड़ सकते थे और मैंने इसके लिए मतदान किया होगा।
corymathews

"सरलीकृत करें, सरल करें।" ~ हेनरी डेविड थोरो

2
हाँ ... इसका मतलब समय से पहले अमूर्तता भी है। यदि कोई चीज केवल एक कार्यान्वयन के लिए जा रही है, तो इसे एक इंटरफ़ेस न बनाएं।
रॉबर्ट फ्रेजर

3
मेरे पसंदीदा उद्धरणों में से एक इस स्थिति में उपयुक्त है "जितना संभव हो उतना सरल बनाएं, लेकिन कोई भी सरल नहीं है" ~ पैराफेरेस, अल्बर्ट आइंस्टीन
नेमी

यह सरल रखें कि कई प्रोग्रामर ठीक से नहीं मिलते हैं: वे "समय से पहले अनुकूलन सभी बुराई की जड़ है" में आसानी से फंस जाते हैं। आम तौर पर सबसे सरल कार्यक्रम सबसे तेज़ या उच्चतम गुणवत्ता में से एक है।

32

अपने कोड को पूर्णता में चमकाने से बचें, बस इसे काम करें। यही व्यवसाय उम्मीद करता है।

लेकिन अक्सर, बढ़ती गति का मतलब है कि गुणवत्ता का त्याग करना।


10
मेरा सुझाव है कि "इसे काम करना" और अगर समय इसे पूरा करने की अनुमति देता है!
15

28
-1: गुणवत्ता का त्याग करने का कोई कारण नहीं है। आप हमेशा सुविधाओं का त्याग कर सकते हैं।
S.Lott

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

3
अक्सर, बढ़ती हुई गुणवत्ता का अर्थ है बढ़ती हुई गति। यदि आप इसे पहली बार में ठीक करने में थोड़ा समय लेते हैं, तो आप परीक्षण और डीबगिंग में अधिक समय बचा सकते हैं।
डेविड थॉर्नले

2
यदि आप एक सुविधा में फंस गए हैं, तो कुछ अलग काम करें।

29

पुन: उपयोग - मैं पिछले परियोजनाओं से किसी भी चतुर बिट्स को बाहर करने की कोशिश करता हूं, इसलिए मैं उन्हें भविष्य के उपक्रमों में फिर से उपयोग कर सकता हूं। यह हमेशा अपने आप से पूछने के लायक है "क्या मैं किसी दिन फिर से इसका उपयोग कर सकता हूं?"


लंबे समय में तेज प्रोग्रामिंग के लिए बिल्कुल सही मन की स्थिति, हालांकि पहले तो इसमें अधिक समय लग सकता है।

8
+1: हालांकि खबरदार, मैंने खुद को सामान्य करने और कुछ को अमूर्त करने के लिए पकड़ा है ताकि मैं इसे एक और दिन फिर से उपयोग कर सकूं ... और उस दिन की समय सीमा को याद किया या उस समय को दोगुना कर दिया, जिसे बग को ठीक करने के लिए लिया जाना चाहिए ... ताकि मैं कर सकूं "शायद" बाद में समय बचा सकता है।
स्टीवन एवर्स

2
"ट्रिक्स का बैग" होना प्रमुख है। यदि यह आपके लिए एक नौकरी का मुद्दा बन रहा है, तो अपने खुद के कुछ समय को पुन: प्रयोज्य टुकड़ों में विकसित करने के लायक होगा (यह मानकर कि आप जिस क्षेत्र में काम करते हैं वह कोड पुन: उपयोग के लिए उत्तरदायी है)।

24

इसे सरल रखें।

यदि आप TDD का उपयोग करते हैं, तो आपको " लाल, हरा, रिफलेक्टर " का पालन करना चाहिए :

  1. एक असफल परीक्षण ( लाल ) लिखें । (अक्सर कार्यक्षमता के लिए आपका कोड अभी तक नहीं होता है।)
  2. अपने परीक्षणों को पास ( हरा ) प्राप्त करने के लिए भयानक कोडिंग अपराध करें । यदि आवश्यक हो तो हार्डकोड।
  3. रिफैक्टर , शायद थोड़ी देर के लिए परीक्षण तोड़ रहा है, लेकिन समग्र रूप से डिजाइन में सुधार कर रहा है।

3
टीडीडी करते समय, आपके पास एक परीक्षण धावक होता है जो प्रति परीक्षण एक लाल / हरी रिपोर्ट का उत्पादन करता है ताकि यह इंगित किया जा सके कि वे पास हैं।

2
@Konstantin: TDD का उपयोग करके कुछ कोड लिखने में 20% अधिक समय लग सकता है, लेकिन यह बेहतर कोड भी देता है और लंबे समय में, जब सिस्टम बढ़ता है, परिवर्तन करने की गति उसी के बारे में रहती है। टीडीडी आपको तकनीकी ऋण से बचने में मदद करता है जो आपको धीमा कर देता है।

3
टाइपिंग कभी भी प्रोग्रामिंग का धीमा हिस्सा नहीं रहा है। भले ही आपको टीडीडी के साथ अधिक टाइप करने की आवश्यकता है, लेकिन यह आपको धीमा नहीं करता है। यह आपको गति भी दे सकता है, क्योंकि पहले एक परीक्षण लिखने से आपको इस बात पर ध्यान केंद्रित करने में मदद मिलती है कि इसे कैसे लागू किया जाए, यह सोचने से पहले आवश्यक है।

1
यदि प्रबंधन कुछ मुख्य अवधारणा को नहीं समझता है, तो आपको उन्हें यह समझाना चाहिए। उदाहरण के लिए martinfowler.com/bliki/TechnicalDebt.html

3
@ कॉन्स्टेंटिन, यदि आप "विकास" को कोड स्टेटमेंट लिखने का कार्य मानते हैं, तो मैं आपसे सहमत हो जाऊंगा। हालाँकि, यदि आप पैकेजिंग को शामिल करने के लिए "विकास" पर विचार करते हैं, तो बिल्ड नोट्स तैयार करना, तैनाती करना, परीक्षण करना, दोष रिपोर्ट तैयार करना, दोषों की समीक्षा करना और प्राथमिकता देना, कार्य असाइनमेंट, जांच, डिबगिंग और फिक्सिंग और प्रक्रिया को फिर से शुरू करना - फिर 15 मिनट। यूनिट टेस्ट लिखने के दिनों और ग्राहकों के विश्वास की हानि 1000x से अधिक हो जाती है।

22

अपने सभी भाषाओं / पुस्तकालयों के दस्तावेज़ों को स्थानीय रूप से अपने कंप्यूटर पर डाउनलोड करें, फिर अपने नेटवर्क केबल को अनप्लग करें / वाई-फाई बंद करें ।

यहां मजाकिया बनने की कोशिश नहीं की जा रही है। यह वास्तव में मेरी मदद करता है!


मैं भी ऐसा ही करता हूं।

ऑनलाइन प्रलेखन और समस्या निवारण खोज वैसे भी बहुत अधिक हैं।

फ़ायरवॉल स्थापित करें और इसे लगभग सभी वेब एक्सेस को ब्लॉक करने के लिए कॉन्फ़िगर करें (मेरे पास कुछ डोमेन के लिए अपवाद हैं, जैसे MSDN)
finnw

मैं वास्तव में ऐसा करने पर विचार कर रहा हूं (तथ्य यह है कि मैं इस टिप्पणी को पर्याप्त रूप से छोड़ देता हूं)
इकके

और एसओ खो? नरक नं

20

जब आप बहुत लंबे समय से स्टैक ओवरफ्लो पढ़ रहे हैं तो ध्यान दें। "संकलन" बहाना केवल इतने लंबे समय तक काम करता है। :)


15
इस बात पर निर्भर करता है कि आपका कंपाइलर कितना तेज है। तो शायद "समाधान" धीमी संकलक को खोजने और पेंटियम 2 डब्ल्यू / 128 एमबी मेमोरी पर चलाने के लिए है? :-)
फ्रैंकी पेनोव

@Franci, शायद एक फ्लॉपी डिस्क पर स्वैप स्पेस भी डाल रहा है। या RAID में दो।

20

बहुत बार स्विचिंग कार्यों से बचें। विचलित और कार्य स्विचिंग एक दिन को मार सकता है, भले ही आप अपने कार्यों को प्रबंधित करने के लिए माइलिन जैसे उपकरण का उपयोग करें।

एक ग्रैन्युलैरिटी (जैसे, 30 मिनट) का चित्र बनाएं और केवल हाथ में कार्य से संबंधित चीजों पर काम करें। कुछ भी हो (नई बग रिपोर्ट, अन्य मुद्दों के बारे में ईमेल, प्रक्रियात्मक मामले जो असंबंधित हैं) कम से कम "अगले चेकपॉइंट" तक देरी हो रही है। सुनिश्चित करें कि ईमेल नोटिफिकेशन पॉप अप करने के लिए अक्षम करें ताकि आपको चूसा न जाए।

यह विशेष रूप से प्रभावी है यदि आपके पास आपकी टीम में एक दोस्त है जो आपको बताएगा कि क्या चीजें वास्तव में पिघल जाती हैं और आपके तत्काल ध्यान की आवश्यकता होती है।


यदि आपके पास एक बॉस है जो 10 मिनट के भीतर ई-मेल पर प्रतिक्रिया की अपेक्षा करता है तो यह काम नहीं करेगा।
फिन

यह वास्तव में बहुत प्रासंगिक है। जहां तक ​​संभव हो सके, अपने आप को ध्यान खींचने वालों के शिकार होने और अपने मूल कार्य से चिपके रहने की अनुमति न दें। यदि आप अपने आप को विभिन्न दिशाओं में खींचने की अनुमति देते हैं, तो अंतिम परिणाम यह है कि आप कुछ के बजाय कुछ भी हासिल नहीं करते हैं।
एंडयूके

14

यह सही है, सबसे अच्छा तरीका है, पहली बार। यदि इसका मतलब है कि आपको रुकना है और इसके बारे में सोचना शुरू करने से पहले कुछ समय के लिए है, तो इसे करें। 90% समय काम करता है।


2
+1 यह सच है। इसका मतलब यह नहीं है कि आपको "संपूर्ण" होना चाहिए; हम सभी लोग गलतियाँ करेंगे। लेकिन अगर हम चीजों को पहली बार संभव तरीके से करते हैं, तो उन गलतियों का परिणाम बहुत छोटा होगा।

+1 - मुझे कहीं न कहीं यह याद आता है कि अच्छे प्रोग्रामर और बुरे प्रोग्रामर के बीच अंतर गति में नहीं है। अंतर यह है कि अच्छे प्रोग्रामर अपना कोड अधिक रखेंगे।
जेसन बेकर 14

यह मेरा मकसद है, इसे सही तरीके से, पहली बार करना। हमेशा वापस जाने और अपना कोड ठीक करने की आदत न डालें, क्योंकि आपने चश्मा के अनुसार इसे सही तरीके से नहीं किया।

"यदि आपके पास इसे सही करने का समय नहीं है, तो आप इसे करने का समय कैसे निकालेंगे?"
एलेक्स फीमैन

आपको वास्तविक सॉफ़्टवेयर से अनुभवों की आवश्यकता हो सकती है ताकि यह निर्धारित किया जा सके कि सबसे अच्छा तरीका क्या है । उस स्थिति में आप इसे पहली बार सही नहीं कर सकते।

14

2
यह एक अच्छा बोनस है ... लेकिन मुझे नहीं लगता कि इसका समग्र प्रभाव होगा। टाइपिंग कोड शायद कम से कम समय लेने वाला हिस्सा है। (हां, मैंने लिंक का अनुसरण किया और पढ़ा। मैं सिर्फ उसके साथ सहमत नहीं हूं।)

यदि आपके कोडिंग का सीमित कारक कितनी तेजी से आप सामान टाइप करते हैं, तो आप शायद अमूर्त के गलत स्तर पर काम कर रहे हैं।
पीट किरकम

+1। एक बढ़िया लिंक, इसे पढ़ने वालों के लिए एक शानदार लेख;) मैं अच्छी तरह से टाइप कर रहा था, लेकिन इसने मुझे प्रोग्रामर ड्वोरक कीबोर्ड लेआउट en.wikipedia.org/wiki/Dvorak_Simplified_Krboard पर स्विच करने के लिए प्रेरित किया (लेकिन मैंने 'स्विच' कर दिया) और -_) Microsoft कीबोर्ड लेआउट निर्माता के साथ कुंजी है, और मुझे यकीन है कि जल्द ही मैं बहुत तेजी से टाइप हो जाएगा हूँ :) यह भी देखें: typematrix.com/dvorak
रोमन Boiko

12

मैं इसे कल करता हूं ।

चीजें हासिल करना भी काफी मददगार होता है।

मेरे पास वैसे भी कम ध्यान देने की अवधि है, इसलिए ये पुस्तकें मुझे अपना ध्यान केंद्रित रखने में मदद करती हैं ... मैं फिर से क्या कर रहा था?


12

अभ्यास और कड़ी मेहनत।

आपको समय और प्रयास लगाने की आवश्यकता है। जैसा कि आप अपने उपयोग, गति और रचनात्मकता के साथ जो भी उपकरण चाहते हैं, उनके साथ अधिक सहज और आश्वस्त हो जाते हैं।

यदि आप किसी विशेष कौशल में सुधार करना चाहते हैं, तो यह उन अभ्यासों को डिजाइन करने में भी मदद कर सकता है जो आपको उस पर विशेष रूप से काम करने देंगे। यदि आपकी सुस्ती डिज़ाइन चरण में है, तो ऑनलाइन काम करने के लिए डिज़ाइन समस्याओं को खोजने का प्रयास करें। एक ही व्यायाम को फिर से करने से आप इसे तेजी से पूरा करेंगे और गति का अभ्यास करेंगे। मैं व्यक्तिगत रूप से सरासर प्रोग्रामिंग गति का अभ्यास करने के लिए TopCoder के एल्गोरिदम अभ्यास पसंद करता हूं । उनके पास डिजाइन चुनौतियां भी हैं, लेकिन मैंने उनकी कोशिश नहीं की है।


प्रोग्रामिंग में अक्सर अभ्यास को कम करके आंका जाता है। यह शीर्ष 5 उत्तरों में से एक होना चाहिए था।

वाह। निश्चित नहीं है कि यह अधिक क्यों नहीं है। मैं वास्तव में कभी यह कोशिश नहीं की है। मैं इसे एक शॉट देता हूँ!
डेविड

11

ज़ोन के बारे में जानें, अपने आप को उसमें लाने के बारे में जानें और जब आप इसमें नहीं होते हैं तो पहचानना सीखें।

एक बार जब मैं "ज़ोन में" होता हूं, तो मैं बहुत उत्पादक होता हूं और कोड बस मेरे से बाहर निकलता है, अक्सर मुझे 1 दिन में 2 या 3 दिन कोडिंग मिल सकती है। लेकिन मुझे लगता है कि अक्सर उस जगह को पाने के लिए मुझे मुश्किल होती है, मैं अपने आप को विरासत में पाता हूं, अन्य चीजों से विचलित हो रहा हूं (उदाहरण के लिए स्टैक ओवरफ्लो)।

क्या-क्या-क्या- से -उपयोग-प्राप्त-अपने-आप-में-क्षेत्र


और दोपहर का भोजन छोड़ें यदि आप ज़ोन में हैं ... या देर से रहें ... MMMmm ज़ोन। drool

10

अपनी आईडीई और रूपरेखा को अच्छी तरह से जानना। हर छोटी चीज़ के लिए Google की ओर रुख करने में समय लगता है।


लेकिन यह भी एहसास है कि जब आपको Google की आवश्यकता होती है और इसे जल्दी से करने में सक्षम होना महत्वपूर्ण है।

9

1
कृपया इसे संपादित करें ताकि मैं इसे बढ़ा सकूं, यह वर्तमान में "बहुत पुराना" है।
12

1
हालांकि आप इसके लिए इसका उपयोग करने की आवश्यकता पर दृढ़ता से निर्भर हैं।

8

इससे पहले कि आप विकसित करना शुरू करें:

  • अपने मेलबॉक्स से लॉग आउट करें
  • किसी भी IM क्लाइंट को बंद करें
  • विनम्रता से साथियों से पूछें कि आपको ध्यान केंद्रित करने का समय दिया जाए
  • बेशक, इंटरनेट पर सर्फिंग बंद करो

हर बार जब आप बाधित होते हैं, तो आप अपने विचारों को ट्रैक पर वापस लाने के लिए अपने दिमाग के समय को धीमा कर देते हैं। मैंने आंकड़े सुना है कि प्रत्येक रुकावट के लिए, यह व्यवधान से पहले मानव दिमाग को उस विचार प्रक्रिया में वापस लाने में 5-10 मिनट लगते हैं। उस रुकावट के प्रति अधिक समय के साथ, पूरे दिन को बर्बाद करने में ज्यादा समय नहीं लगता है।

हमारी कंपनी के लोगों ने वास्तव में अपने कैलेंडर में समय को अवरुद्ध करने के लिए लिया है और फिर प्रत्येक दिन कुछ घंटों के लिए एक खाली सम्मेलन कक्ष में चले जाते हैं।


7

अपने विकास IDE को अंदर और बाहर जानें। शॉर्टकट कीज सीखें। माउस का कम उपयोग करना सीखें। मुझे लगता है कि यह मेरे लिए बहुत समय बचाता है।


7

क्या आप अपने सहकर्मियों की तुलना में धीमे हैं, या आपके अनुमान अधिक अपनाने वाले हैं?


7

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

जहाँ तक अनुमान है, अनुभव के साथ आता है। आप अनुमान लगाने वाले सॉफ़्टवेयर का उपयोग कर सकते हैं ताकि आपको बेहतर अनुमान लगाने में मदद मिल सके।

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

अक्सर बार, सवाल यह नहीं है कि क्या आपका अनुमान गलत था। यह सभी सही चीजों के लिए आपका अनुमान खाता है? क्या आप कोडिंग के प्रयास के संदर्भ में या कैलेंडर समय के संदर्भ में अपना अनुमान और समय दे रहे हैं? अपने दिन के सभी समय के बारे में सोचें और यह कितना वास्तविक है, उत्पादक कोडिंग बनाम मीटिंग, सीखना, डिबगिंग, आदि।


3
"... इसे 2 से गुणा करें, फिर इसे दोगुना करें।" चूंकि आप समय बचाने में रुचि रखते हैं, इसलिए मुझे आपके लिए एक गणित की टिप मिल गई है जिसे आप उपयोग करने में सक्षम हो सकते हैं ...

LOL - मुझे पता है कि तुम क्या कह रहे हो। लेकिन आप अक्सर इस बात से अचंभित रह जाएंगे, क्योंकि यह "4 से गुणा" करने के विरोध में है।

7

दो चीजें जो निहित हो सकती हैं, लेकिन मैंने यहां जवाबों के बीच अभी तक नहीं देखा है कि उत्पादकता बढ़ती है:

  • किसी प्रकार की निर्माण और परिनियोजन स्क्रिप्ट का उपयोग करें। ऐप-सर्वर को संकलित करना, तैनात करना, पुनः आरंभ करना और ऐसे समय या ध्यान को चूसना नहीं, यह एक तरह की बात होनी चाहिए।

  • संस्करण नियंत्रण के कुछ प्रकार है। कोड को वापस रोल करने में सक्षम होने के बिना एक बदलाव होना अंडे पर चलने की कोशिश करने जैसा है


7

विचारों की एक जोड़ी दिमाग में आते हैं:

  1. अपने अनुमानों पर अन्य राय प्राप्त करें - क्या अन्य डेवलपर हैं जो आप कुछ पूछ सकते हैं जैसे "अरे, क्या आपको लगता है कि आप इस तरह की सुविधा इस समय सीमा में प्राप्त कर सकते हैं?" यह विचार कि अन्य लोगों का इनपुट कुछ मामलों में सटीकता के साथ मदद कर सकता है क्योंकि कोई व्यक्ति अनुमान लगाने में आपके द्वारा याद की गई चीजों का एक गुच्छा नोट कर सकता है।

  2. अपने आकलन कौशल को सुधारें - अनुमानों पर नज़र रखना शुरू करें कि आप अनुमानों पर कितने दूर हैं और आप क्यों बंद हैं: क्या अन्य कार्य आइटम समय सीमा पूरी नहीं कर रहे हैं? क्या आप लगातार कम आंक रहे हैं कि कुछ कितना जटिल है? क्या यह व्यावहारिक नहीं होने पर आप एक संपूर्ण समयरेखा दे रहे हैं, जैसे कि जो पूछा गया है वह पर्याप्त अस्पष्ट है कि केवल एक प्रोटोटाइप प्राप्त करने में कुछ हफ्तों का समय लगेगा और फिर क्या होना है इसका पुनर्मूल्यांकन होना चाहिए? ऐसा करने से उस कौशल को बनाने में सबसे अधिक मदद मिल सकती है ताकि अगर आप कहें कि कुछ करने में x घंटे लगेंगे, तो आपको उस पर भरोसा हो सकता है क्योंकि आपने इसे बार-बार किया है। यह बताने का एक वैकल्पिक तरीका केवल अभ्यास, अभ्यास, अभ्यास है।

दी, आप शायद पहले से ही इन पर विचार कर रहे हैं, लेकिन मैंने सिर्फ उन लोगों के लिए यह कहना उचित समझा, जो इन विचारों पर विचार नहीं कर सकते थे।


7
  1. अंदर और बाहर की तकनीक को जानें।
  2. रुकें! सोच! जाओ!
  3. जो कुछ भी उत्पन्न हो सकता है, उसके लिए वास्तुकार, लेकिन केवल वही लागू करें जो वास्तव में पूछा जाता है।
  4. चुंबन - यह सरल बेवकूफ रखें
  5. यदि यह बहुत जटिल हो रहा है, तो शायद, यह अच्छी तरह से सोचा नहीं गया है। (2 और 4 पर वापस जाएं)
  6. 5. में फंस मत करो। यह अक्सर खरोंच से शुरू करने के लिए भुगतान करता है (2 और 4 पर वापस जाएं)
  7. 1 पर वापस जाएं।

7

मुझे लगता है कि वे यहाँ मुख्य शब्द "समयबद्धता" है। उन्होंने यह नहीं कहा कि आप बहुत धीमे थे, बल्कि यह कि आप समय पर नहीं थे।

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

अपनी समयबद्धता में सुधार करने के लिए, आप यह समझने में अधिक समय व्यतीत करना चाह सकते हैं कि आपके कौशल, अनुभव और डोमेन को देखते हुए किसी विशेष कार्य को पूरा करने में आपको कितना समय लगेगा। इससे आप अपने प्रोजेक्ट मैनेजर को बेहतर अनुमान दे सकेंगे। यहाँ कुंजी "बेहतर" है ... आप एक ठग कारक के साथ सब कुछ पैडिंग करके समय पर अधिक बार वितरित कर सकते हैं, लेकिन आप वास्तव में जिस चीज के लिए प्रयास करना चाहते हैं वह अधिक सटीक अनुमान है।

मैं आपके प्रबंधक के साथ इस पर चर्चा करूंगा कि क्या यह वास्तव में मुद्दा है। अन्यथा, आप प्रोग्रामिंग को दो बार तेजी से समाप्त कर सकते हैं, आधे समय में होनहार चीजें, जो आप करते थे, और अभी भी आपकी समयबद्धता के लिए आलोचना हो रही है क्योंकि आपके अनुमानों में अभी भी एक ही त्रुटि कारक होगा।


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

यह आपके प्रबंधक को अपने आस-पास के लोगों को अच्छा दिखने में भी मदद करेगा - यह सहायक सामग्री जैसे विपणन को आपकी परियोजना के साथ सिंक में पूरा करने की भी अनुमति देता है।
टॉम

7

स्थिर हो जाओ, स्थिर रहो।

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

तर्क यह है कि हर बार मैंने किसी को 2 सप्ताह के कोड के साथ देखा है जो कभी स्थिर नहीं हुआ था, इसे स्थिर होने में हमेशा 2 सप्ताह लगते हैं

यदि आप रहने स्थिर, तो आप उस अनिश्चितता को दूर, और यह भी अपने आप को यदि आवश्यक हो तो गुंजाइश के लिए एक रास्ता नीचे की समय सीमा के पास दे।

स्पष्ट प्रतिवाद यह है कि ऐसा करने में केवल एक बार लिखने से अधिक समय लगेगा, क्योंकि आप गैर-अंतिम कोड को स्थिर करने के लिए अतिरिक्त काम करेंगे। मैं इसे एक सेकंड के लिए नहीं खरीदता। जब आपके पास कोड होता है जो काम करता है , तो आप 5 लाइनें बदलते हैं, और कुछ टूटता है, आपको पता है कि ब्रेक कहां हुआ होगा।

यदि आपके पास १०,००० लाइनें हैं जो कभी काम नहीं करती हैं , और आपको एक ब्रेक ढूंढना पड़ता है, तो आपके पास खोज करने के लिए एक टन कोड होता है।

एक प्रणाली पर छोटे, वृद्धिशील परिवर्तन जो लगातार स्थिर FTW है। तेजी से जाने के लिए धीमी गति से जाएं।


7

मेरे लिए, अच्छी उत्पादकता प्राप्त करने के बारे में एक स्पष्ट विचार है कि आप क्या हासिल करने की कोशिश कर रहे हैं, और आप कैसे प्राप्त करेंगे।


1
नॉर्वेजियन देहात के माध्यम से काम करने के लिए मेरी 30 मिनट की साइकिल की सवारी भी दिमाग को साफ करने और रचनात्मक प्रक्रियाओं को प्राप्त करने में बहुत अच्छी है।

6

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

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

मेरा उत्तर सरल है: गुणवत्ता सॉफ्टवेयर में समय लगता है ! आप केवल दूसरे (गुणवत्ता / गति) के लिए एक व्यापार कर सकते हैं। लेकिन हाँ, हम सभी जानते हैं कि हालाँकि हम उस डिग्री के बारे में ईमानदार नहीं हैं जिसके कारण ट्रेड-ऑफ अक्सर पैमाने के गति अंत पर समाप्त होता है। और हम परियोजनाओं पर जल्दी झूठ बोल रहे हैं!

मैं कहता हूं कि आप यहां गलती नहीं कर रहे हैं। समस्या यह है कि लोगों को यह धारणा है कि सॉफ्टवेयर की गुणवत्ता कितनी लंबी होनी चाहिए। हम अपने आप को विश्वास करने में मूर्ख बनाते हैं कि हम अपने प्रबंधकों या यहाँ तक कि हम गुप्तचर के प्रकारों के साथ गुणवत्ता सॉफ्टवेयर बनाने में सक्षम हैं। हम क्वालिटी सॉफ्टवेयर नहीं बनाते हैं । हम सॉफ्टवेयर लिखते हैं जो कभी-कभी किसी एप्लिकेशन के कुछ कोनों में गुणवत्ता की चमक के साथ काम करता है।

तो हम इस बारे में क्या कर सकते हैं? हम अपने मालिकों को सिर्फ यह नहीं समझा सकते हैं कि हमें अपनी प्रत्येक परियोजना में निवेश को दोगुना या तिगुना करना होगा। मैं कहता हूं कि उदाहरण के द्वारा नेतृत्व करें। साइड प्रोजेक्ट के रूप में वास्तव में एक बेहतरीन सॉफ्टवेयर बनाएं। इसमें अपना समय लगाएं और समझौता न करें। जब आप प्रगति करते हैं तो सभी ध्यान देते हैं। स्पष्ट रूप से असंबंधित कार्यों पर ध्यान दें, आपको अप्रत्याशित समय देना पड़ा है और देखें कि क्या आप इसे सही ठहरा सकते हैं। आपके द्वारा काम की गई अन्य सभी परियोजनाओं के साथ इसका विरोध करें। क्रूरतापूर्वक ईमानदार रहेंअपने आप को और इस विश्लेषण के सभी पहलुओं के साथ। क्या आपके गुणवत्ता सॉफ़्टवेयर के साथ आपके द्वारा की गई अतिरिक्त चीजें "वास्तविक" परियोजनाओं में काम में उपेक्षित हो सकती हैं? लेकिन शायद आपकी कोशिश नाकाम रही। क्या कारण था? क्या आप ऊब गए हैं और सिर्फ कोर फीचर्स पाने के लिए दौड़ पड़े हैं? मैंने अभी तक खुद ऐसा कुछ नहीं किया है, यही वजह है कि मैंने इस विचार को कुछ संदेह के साथ समाप्त किया है - लेकिन मैं इसे वास्तविक रूप देने का इरादा रखता हूं। मैं तुम्हें तैनात रखेंगे :)।

अंत में, मुझे लगता है कि सबसे (यदि सभी नहीं) प्रदर्शन मूल्यांकन मुड़ और असाधारण जोड़ तोड़ कर रहे हैं। आप गुणवत्ता और गति को 100% से कम नहीं कर सकते। आपका बॉस आपको एक मानक के खिलाफ स्कोरिंग होना चाहिए जो संगठन द्वारा निर्धारित किया गया है। गुणवत्ता और गति के बीच व्यापार-बंद पर संगठन का मानक। चलो कल्पना करते हैं कि OrangeSoft Inc. को 33% गुणवत्ता और 66% गति की उम्मीद है। इसलिए यदि आप ऐसा कोड लिख रहे हैं जिसमें शायद इकाई का एक तिहाई परीक्षण है, लेकिन इसे गति और कम प्रसव के समय के साथ बनाना चाहिए, तो आपको अपनी समीक्षा पर 100% के करीब स्कोर करना चाहिए! (ये बहुत कठिन उपमाएं हैं, लेकिन आपको यह बात समझ में आती है)। लेकिन इसके बजाय, ऐसा क्या होता है कि बॉब कोड को बहुत तेजी से लिखता है, लेकिन यह बहुत ही छोटी गाड़ी है। तो अपने प्रदर्शन की समीक्षा पर वह गुणवत्ता के लिए 3/5 और गति के लिए 5/5 स्कोर करेंगे। दूसरी ओर कैरल कोड को बहुत धीमा लिखता है लेकिन काफी कम कीड़े पैदा करता है। उसने गुणवत्ता के लिए 5/5 स्कोर किया लेकिन गति के लिए 3/5। किसी भी तरह बॉब और कैरल उनकी परवरिश पर डॉक हो जाते हैं। क्या किसी भी कर्मचारी के लिए एक पूर्ण स्कोर प्राप्त करना संभव है? क्या यह उचित है?


5

मैं जिस तकनीक का उपयोग करता हूं वह विकासवादी प्रोटोटाइप है

आप अधिक जानकारी के लिए Google कर सकते हैं - लेकिन यदि आवश्यकता कुछ जल्दी उत्पन्न करने की है, तो यह जाने का एकमात्र तरीका है। साथ ही, इसका यह लाभ है कि जब उपयोगकर्ता कहता है कि वह इसे पसंद करता है, तो आपका काम हो गया है ... (और प्रलेखन करना शुरू कर सकता है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.