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