जवाबों:
हमेशा अपना कोड लिखने का एक बेहतर तरीका है।
कोई फर्क नहीं पड़ता कि आप कितना उत्कृष्ट कोड लिखते हैं, आपको आश्चर्य होगा कि यह कितना बुरा है यदि आप इसे कुछ वर्षों में समीक्षा करते हैं। सिर्फ इसलिए कि कुछ साल पहले, आप उन कुछ पैटर्नों से अनजान थे जिन्हें आप आज जानते हैं, या कुछ भाषा सुविधाएँ जिन्हें आपने सीखा है, आदि।
कोडिंग शुरू करने से पहले सोचें।
अस्थायी समाधान की तुलना में अधिक स्थायी कुछ भी नहीं है :)
यदि किसी समस्या को हल करने के लिए भयानक रूप से कठिन है, तो सबसे अधिक संभावना है कि समस्या शुरू से ही खराब है।
आपका सॉफ्टवेयर आपके द्वारा लिखे गए उस समय के हिसाब से काफी लंबे समय तक जीवित रहेगा।
मैंने 80 के दशक में अपना करियर शुरू किया था। मैंने सॉफ्टवेयर पर शुरुआत की थी जो 70 के दशक में शुरू हुआ था और अभी भी 90 के दशक में उपयोग किया जा रहा था (शायद अब, मुझे इसके भाग्य के बारे में कुछ पता नहीं है)। अपने स्वयं के खुले स्रोत कोड में से कुछ अपने दूसरे दशक के माध्यम से आधा रास्ता है।
दूसरों के साथ अच्छा काम करना बहुत महत्वपूर्ण है।
"मुझे अपना 'गो टू गो' दिखाओ और मैं तुम्हें अपनी समस्या दिखाऊंगा"
स्लैपडश हीरो कोडर्स - जो लोग सिर्फ सम्मेलन, पठनीयता या किसी और के लिए किसी भी संबंध में कोड को क्रैंक करते हैं, जो अच्छे से अधिक नुकसान पहुंचा सकते हैं।
यह कहते हुए नहीं कि जो लोग अच्छी गुणवत्ता वाले कोड लिख सकते हैं, वे बुरी बात हैं। बस दुर्लभ है।
नई भाषाएँ सीखना नौकरी का हिस्सा है
मैंने 80 के दशक में स्कूल में चार प्रोग्रामिंग लैंग्वेज सीखीं, लेकिन उनमें से एक को नौकरी में इस्तेमाल किया। मेरे पास चार नौकरियां हैं, जहां मुझे उस भाषा का भी पता नहीं था जिसे मैं उपयोग करने के लिए किराए पर लिया गया था।
कुल मिलाकर, मैंने अपने करियर में संभवतः एक दर्जन भाषाओं को सीखा और इस्तेमाल किया है, जिनमें फोरट्रान, सी, सी ++, सी #, जावा, पर्ल, टीएलसी, रूबी, ग्रूवी, ऑक, पायथन, श, बैच, डीसीएल, जावास्क्रिप्ट, और ए शामिल हैं। कुछ छोटे डी.एस.एल. थोड़ा सा गणित करते हुए, मुझे लगता है कि हर दो साल में एक नई भाषा का औसत आता है, हालांकि इसमें बहुत अधिक ओवरलैप है।
अगर मेरे करियर में कुछ भी स्थिर रहा है, तो यह बदल गया है।
सॉफ्टवेयर कभी पूरा नहीं होता है।
आवश्यकताओं, सुधार, बग फिक्स में हमेशा कुछ परिवर्तन होते हैं जिन्हें आपको संभालने के लिए तैयार रहना होगा। इस प्रकार, लचीला बनें और इस तथ्य को स्वीकार करें कि "software is never complete"
और हमेशा सुधार के लिए जगह है।
हर दिन पढ़ाई करते रहें। आज का ज्ञान कल अप्रचलित है।
विडंबना यह है कि यह उत्तर कल अप्रचलित होना चाहिए। लेकिन वास्तव में, कठिन एक या दो सामान का अध्ययन करें और प्रमाणित करें यदि यह संभव है, तो उस चीज़ों के भगवान बनें (शायद प्रोग्रामिंग भाषा या सिस्टम / नेटवर्क / डेटाबेस प्रशासन) और हमेशा अन्य छोटी चीज़ों पर नज़र रखें, जैसे अन्य भाषाओं को महत्व दिए बिना आप।
उदाहरण के लिए मेरा मतलब है, जावा और ओरेकल डीबी प्रशासन का एक शानदार पेशेवर होना चाहिए, लेकिन पायथन, पीएचपी, सी ++, एचटीएमएल 5, जावास्क्रिप्ट का थोड़ा अध्ययन करें, हालांकि प्रमाणन स्तर तक नहीं। मौजूद प्रत्येक वेब या भाषा की रूपरेखा का अध्ययन करें। SQL सर्वर, MySQL, Cassandra, HBase, PostgreSQL, और MongoDB और CouchDB जैसे संपूर्ण No-SQL दुनिया की तरह मौजूद प्रत्येक डेटाबेस के साथ कुछ (मूल) अनुभव का अध्ययन या प्रयास करें। लिनक्स के प्रशासन और वर्चुअलाइजेशन के साथ कुछ अनुभव रखने की कोशिश करें।
यह सबसे बड़ा सबक है जो मैंने अपने 16 साल के अनुभव से सीखा है। मैं लगभग 10 वर्षों से एक मोनो-भाषा प्रोग्रामर था, अपने युग में पास्कल का उपयोग कर रहा था, और मिलेनियम की शुरुआत में विजुअल बेसिक 6, और 9 साल पहले से एक PHP डेवलपर। लेकिन तब से मुझे पता है कि डेवलपर्स को कम से कम सब कुछ जानने की जरूरत है।
मैं सीख लिया है कि सबसे अच्छा डिजाइन सिद्धांत KISS है (यह आसान बेवकूफ रखें,!) ।
मैंने सीखा है कि आपके कोड को सरल और साफ रखना प्राथमिक चिंता होनी चाहिए, और प्रत्येक टीम के सदस्य को यह समझना चाहिए कि आपके पास कोड क्या है। The KISS principle
कहा गया है कि अधिकांश प्रणालियां सबसे अच्छा काम करती हैं अगर उन्हें जटिल बना दिया जाता है, इसलिए सादगी को डिजाइन में एक महत्वपूर्ण लक्ष्य होना चाहिए और अनावश्यक जटिलता से बचा जाना चाहिए।
कोशिश से काम नहीं चलेगा
कहते हैं कि आपके पास कार्यों का एक गुच्छा या गुच्छा है जो 4 दिनों तक लेने का अनुमान है। तब आपका बॉस या प्रोजेक्ट मैनेजर पूछता है कि क्या आप दो दिनों में किसी महत्वपूर्ण कारण से इसे करने की कोशिश कर सकते हैं। एक अच्छा, लचीला कर्मचारी बनना चाहते हैं, आपको यह कहने के लिए लुभाया जा सकता है: निश्चित रूप से, आप कोशिश कर सकते हैं। इस से सबसे अधिक संभावना परिणाम यह है कि आप या तो समय सीमा को याद करते हैं, या आप इसे प्राप्त करने के लिए आधा-गधा हैक करने जा रहे हैं। और यह आपके बॉस की गलती नहीं है कि आप इसे करने के लिए कहें, यही उनका काम है। यह आपकी गलती है कि नहीं, जो आपका काम है, वह नहीं है।
आप समय के साथ मोलभाव नहीं कर सकते। आप गुंजाइश के साथ सौदा कर सकते हैं। पेशेवर बनें और खुद को कम न बेचें।
"ऐसा कभी नहीं होगा" वास्तव में इसका मतलब है "उत्पादन में पहले दिन तक ऐसा कभी नहीं होगा"
कोड लिखना आसान है। कोड पढ़ना मुश्किल है। भले ही कोड आपका है। इसलिए, जब भी संभव हो, पठनीय दृष्टिकोण के लिए जाएं।
आप दूसरों की तुलना में अधिक स्मार्ट नहीं हैं। कभी मत सोचो कि तुम दृष्टिकोण कर रहे हो सिर्फ इसलिए सबसे अच्छा है क्योंकि यह तुम्हारा है।
WHAT पर ध्यान दिया जाता है, BY WHOM द्वारा ऐसा कहा जाता है। शानदार विचार सबसे अप्रत्याशित स्रोतों के लिए आ सकते हैं।
आलसी मत बनो। अपना समय अच्छा कोड लिखने के लिए ले लो। आपको इसे उच्च लागत पर वैसे भी ठीक करना होगा।
फैंसी ओओपी सुविधाओं का उपयोग न करें क्योंकि आप कर सकते हैं! - YAGNI (आपको इसकी आवश्यकता नहीं है)
Use fancy OOP features
क्योंकि उनके पास उस समस्या का विशिष्ट, लाभकारी लाभ है जिसे आप हल करने का प्रयास कर रहे हैं । आप हंसते हैं, लेकिन मैं हर समय यह देखता हूं। अधिकांश प्रोग्रामर एक ऐसी वस्तु से कभी नहीं मिले जो उन्हें पसंद नहीं थी। मुझे लगता है कि यह दूसरी तरह के आसपास होना चाहिए: इन तकनीकों दोषी हैं की अदालत में निर्दोष साबित होने तक KISS ।