सबसे पहले, आप जो कुछ भी अभी तक नहीं जानते हैं उसमें अपनी बुनियादी सैद्धांतिक पृष्ठभूमि बढ़ाएं। सिद्धांत का अध्ययन करें और कुछ छोटे उदाहरण लिखें।
उदाहरण मूल सैद्धांतिक पृष्ठभूमि में शामिल हैं:
- एल्गोरिदम और डेटास्ट्रक्चर
- सॉफ्टवेयर डिजाइन (UML, डिजाइन पैटर्न, OOP)
- ऑपरेटिंग सिस्टम और समानांतर प्रोग्रामिंग
फिर, एक अतिरिक्त भाषा सीखने पर विचार करें (उदाहरण के लिए जावा या सी #)। - अतिरिक्त भाषाओं का अध्ययन करने से आप जो भाषा का उपयोग कर रहे हैं उसके पेशेवरों और विपक्षों के तहत बेहतर मदद मिलती है और आपको उन सर्वोत्तम प्रथाओं को सीखने में मदद मिलती है जिनके बारे में आप नहीं जानते होंगे।
अगला एक नया डोमेन (वेब प्रोग्रामिंग, कंप्यूटर ग्राफिक्स, इमेज प्रोसेसिंग, कंप्यूटर विजन, डेटा एक्सेस, ...) चुनें। सिद्धांत का अध्ययन करें और कुछ छोटे उदाहरण लिखें।
अगला एक बड़ा उदाहरण बनाते हैं, जिसने एक बहु-स्तरित एप्लिकेशन को एनकैप्सुलेट किया, डेटा एक्सेस, यूआई और आपके द्वारा चुने गए एक विशिष्ट डोमेन को संभालता है। एप्लिकेशन के आर्किटेक्चर पर जोर दें (सुनिश्चित करें कि इसके हिस्से यथासंभव ढीले हैं)।
उम्मीद है, आप सीखेंगे कि नए दृष्टिकोण और तकनीक कैसे सीखें और उन्हें एक अच्छी वास्तुकला के साथ एकीकृत करें।
विशेष रूप से गेम प्रोग्रामिंग के लिए मैं निम्नलिखित डोमेन / प्रौद्योगिकियों को चुनने की सलाह देता हूं:
- छवि प्रसंस्करण मूल बातें
- कोई विशिष्ट UI तकनीक
- कंप्यूटर ग्राफिक्स मूल बातें
- कोई भी विशिष्ट ग्राफिक्स इंजन (जैसे DirectX, OpenGL, OGRE, ODG, Java3D, ...)
- यांत्रिक भौतिकी मूल बातें
- कोई विशिष्ट भौतिकी इंजन (जैसे PhysX, ...)
- कोई विशिष्ट गेम इंजन (जैसे XNA, ...)
- मल्टी थ्रेडेड प्रोग्रामिंग
- वितरित प्रोग्रामिंग
संपादित करें:
कैसे सीखे:
- कोडप्रोजेक्ट से उदाहरण पढ़ें और चलाएं।
- किताब / ई-पुस्तक पुस्तकालय या स्टोर में कुछ पुस्तकों के माध्यम से ब्राउज़ करें जब तक कि आपको कुछ ऐसी पुस्तकें न मिलें जो आपकी पसंद की हों (जो आपकी पढ़ने की शैली से मेल खाती हों + उन विषयों को कवर करें जिन्हें आप पढ़ना चाहते हैं)।
- ब्लॉग पढ़ें।
- चीजों को आज़माएं और अटक जाने पर StackOverlow पर पूछें।