मैं अधिक प्रोग्रामिंग अनुभव कैसे प्राप्त कर सकता हूं [बंद]


9

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

एक प्रोग्रामर के रूप में मुझे अनुभव कैसे मिल सकता है? क्या मेरे पास एक ओपन सोर्स प्रोजेक्ट में शामिल होने का कौशल है या क्या मुझे php, mySQL या किसी अन्य भाषा को सीखने की आवश्यकता है। मुझे प्रोग्रामिंग और कंप्यूटर विज्ञान सामान्य रूप से पसंद है, हालांकि कुछ कक्षाएं अत्यंत कठिन (सैद्धांतिक कंप्यूटर विज्ञान) हो सकती हैं। मैं c ++ में भी गुरु बनने की योजना बना रहा हूं, लेकिन यह जल्द ही कभी नहीं होगा।


1
क्या आपने कोई प्रोग्राम लिखा है जिसका उपयोग अन्य करते हैं? यदि नहीं, तो एक ऐसा लिखें जो एक परिवार के सदस्य को चाहिए, और उसे या उसके लिए उपयोगी बना सकते हैं (कई पुनरावृत्तियों को ले सकते हैं)। अंतिम भाग वह है जहाँ सच्चा पाठ होता है।

कार्नेगी हॉल कैसे पहुँच सकते हैं?
jfrankcarr

1
मैं एक दूसरे के लिए एक गधे की तरह लग रहा हूँ, लेकिन ... अनुभव - घटनाओं या गतिविधियों में सक्रिय भागीदारी, ज्ञान या कौशल के संचय के लिए अग्रणी। इसलिए प्रोग्रामिंग में सक्रिय रूप से भाग लेना शुरू करें।
स्टीवन एवर्स

1
BTW, StackOverflow और Programmers के बीच क्या अंतर है? क्या प्रोग्रामर को केवल एक और स्टैकऑवरफ्लो बनाने के लिए प्रश्नों को बंद करने का पैटर्न है? फिर क्या है - बस दोनों को मिला दो। हम प्रोग्रामर पर गूढ़ प्रश्न पूछने में सक्षम थे, जो कि हम StackOverflow में नहीं कर सकते थे।
שגינתיא אבישנת

जवाबों:


11

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

कुछ परियोजनाएं जिन्होंने अतीत में मेरे लिए वास्तव में अच्छी तरह से काम किया है: कुछ भाषा, रे ट्रेसर, पीईजी पार्सर जनरेटर, एचटीटीपी हेडर पार्सर, सरल इको क्लाइंट / सर्वर, ट्विटर बॉट के लिए एक दुभाषिए के लिए स्वचालित रूप से एक कतार से ट्वीट पोस्ट करने के लिए, अमेज़न उत्पाद सौदों के लिए देखने के लिए खुरचनी।


+1 आपने कुछ वास्तव में दिलचस्प परियोजनाओं का उल्लेख किया, धन्यवाद।
एंथनी

8

जैसा कि टीच योरसेल्फ प्रोग्रामिंग इन टेन ईयर्स में अच्छी तरह से समझाया गया है , आपको अगले चरणों का पालन करना चाहिए:

  • प्रोग्रामिंग में रुचि लें, और कुछ करें क्योंकि यह मजेदार है। सुनिश्चित करें कि यह पर्याप्त मज़ेदार हो रहा है ताकि आप अपने दस वर्षों / 10,000 घंटों में डालने के लिए तैयार रहें।

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

  • अन्य प्रोग्रामर के साथ बात करें; अन्य कार्यक्रम पढ़ें । यह किसी भी पुस्तक या प्रशिक्षण पाठ्यक्रम से अधिक महत्वपूर्ण है।

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

  • अन्य प्रोग्रामर के साथ प्रोजेक्ट्स पर काम करें । कुछ परियोजनाओं पर सबसे अच्छा प्रोग्रामर बनें; कुछ अन्य लोगों पर सबसे बुरा हो। जब आप सबसे अच्छे होते हैं, तो आपको एक परियोजना का नेतृत्व करने के लिए, और अपनी दृष्टि से दूसरों को प्रेरित करने के लिए अपनी क्षमताओं का परीक्षण करने के लिए मिलता है। जब आप सबसे खराब होते हैं, तो आप सीखते हैं कि स्वामी क्या करते हैं, और आप सीखते हैं कि उन्हें क्या करना पसंद नहीं है (क्योंकि वे आपको उनके लिए ऐसा करते हैं)।

  • अन्य प्रोग्रामर के बाद परियोजनाओं पर काम करें । किसी और द्वारा लिखे गए प्रोग्राम को समझें। मूल प्रोग्रामर के आसपास नहीं होने पर इसे समझने और इसे ठीक करने के लिए देखें। इस बारे में सोचें कि अपने कार्यक्रमों को कैसे डिजाइन करना है जो उन लोगों के लिए आसान बनाते हैं जो आपके बाद उन्हें बनाए रखेंगे।

  • कम से कम आधा दर्जन प्रोग्रामिंग भाषाएं सीखें। क्लास एब्स्ट्रैक्शन (जैसे जावा या C ++) को सपोर्ट करने वाली एक भाषा को शामिल करें, एक जो कार्यात्मक एब्स्ट्रैक्शन (जैसे लिस्प या एमएल) का समर्थन करती है, एक जो सिंथैटिक एब्स्ट्रेक्शन (लिस्प की तरह) का समर्थन करती है, एक जो डिक्लेक्टिव स्पेसिफिकेशन्स (जैसे प्रोस्पेक्टस या सी ++ टेम्प्लेट) को सपोर्ट करती है, एक जो कोरटाइन्स (जैसे चिह्न या योजना) का समर्थन करता है, और एक जो समानता (जैसे सिसल) का समर्थन करता है।

  • याद रखें कि "कंप्यूटर विज्ञान" में एक "कंप्यूटर" है। जानें कि किसी निर्देश को निष्पादित करने में आपके कंप्यूटर को कितना समय लगता है, मेमोरी से एक शब्द (और कैश के बिना) प्राप्त करें, डिस्क से लगातार शब्द पढ़ें, और डिस्क पर एक नए स्थान की तलाश करें। (यहाँ उत्तर)

  • भाषा मानकीकरण प्रयास में शामिल हों। यह एएनएसआई सी ++ समिति हो सकती है, या यह निर्णय ले सकती है कि क्या आपकी स्थानीय कोडिंग शैली में 2 या 4 स्थान इंडेंटेशन स्तर होंगे। किसी भी तरह से, आप इस बारे में सीखते हैं कि अन्य लोगों को किसी भाषा में क्या पसंद है, वे कितनी गहराई से ऐसा महसूस करते हैं, और शायद थोड़ा सा भी महसूस करते हैं कि वे ऐसा क्यों महसूस करते हैं।

  • भाषा के मानकीकरण के प्रयास को जल्द से जल्द पूरा करने के लिए अच्छी समझ रखें।


3

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

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


2

कभी-कभी sourceforge जैसी जगहें पहले थोड़ी कठिन होती हैं। कुछ करने के लिए वास्तव में एक अच्छा तरीका है, परियोजनाओं के मुद्दे ट्रैकर के माध्यम से ट्रॉल किया जाता है और फिक्सिंग की आवाज़ की तरह आपको बग / मुद्दा मिल जाता है।

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


1

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

वास्तविक परियोजनाओं पर काम करना

लेकिन एक वास्तविक परियोजना के अनुभव के बिना, आप उन चीजों को भूल जाते हैं जिन्हें आपने सीखा था।

समस्याएं यह दिखाने का अवसर हैं कि आप क्या कर सकते हैं

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


-1

क्या मुझे php, mySQL या किसी अन्य भाषा को सीखने की आवश्यकता है।

हां सर, कृपया वर्ल्ड वाइड वेब की भाषाओं पर विचार करें। HTML5, CSS3 और जावास्क्रिप्ट।

यहाँ क्यों है:

  1. वे सीखने के लिए जल्दी हैं, और तेजी से लागू करने के लिए अमीर हैं।

  2. वे अब केवल वेब, लेकिन ओएस, सर्वर और डेटाबेस ही नहीं लिखते हैं।

  3. सबसे महत्वपूर्ण बात *

    अब उन्हें कंप्यूटर साइंस 101 को फिर से परिभाषित करने के लिए इस्तेमाल किया जा रहा है - jQuery के निर्माता, जॉन रेजिग द्वारा।

दूत को गोली मत मारो, बस खान स्कूल अकादमी के लिए इस लिंक की जाँच करें ।

c / c ++ / c # डिज़ाइन पैटर्न जेएस को वहाँ स्थानांतरित करता है।

उम्मीद है की वो मदद करदे।


+1 - इतना गलत कि यह डाउनवोट हो गया। जानकारी मान्य है। लिंक विश्वसनीय है। स्रोत jQuery का जीनियस जॉन रेसिग है, जो जावास्क्रिप्ट के साथ एक प्रोग्रामिंग 101 पाठ्यक्रम शुरू कर रहा है, और यह काम करेगा। खान अकादमी की जाँच करें। शिक्षा को आगे बढ़ाने की क्षमता के लिए उन्नति; कम से कम में। धन्यवाद।
जैक स्टोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.