कौन प्रोग्राम करना सीख सकता है? [बन्द है]


17

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

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

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

मैं लंबे समय से इस सवाल से जूझ रहा हूं, ज्यादातर इसलिए क्योंकि मुझे नहीं लगता कि कोई जवाब है। लेकिन मुझे लगा कि मैं यह देखने के लिए कहूंगा कि क्या किसी को किसी भी शोध के बारे में पता है जो वास्तव में उस पर किया गया है।

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


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

2
@job: एक मनोविज्ञान प्रमुख के रूप में बोलते हुए, अब एनएमआर मशीनों की प्रोग्रामिंग, मैं उस पर ध्यान दे सकता हूं।
मैट एलेन

जवाबों:


33

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


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

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

1
भी, जीव विज्ञान जाओ!
जॉक

11

जबकि मुझे लगता है कि अय्यूब का जवाब ध्यान में रखना महत्वपूर्ण है, वही उत्तर एक डिग्री मिल पर भी लागू किया जा सकता है। "मैंने अपना $ 199.95 का भुगतान किया, अब मुझे अपनी सीएस की डिग्री दें।"

"वास्तविक प्रोग्रामर" जो वास्तव में आपका काम नहीं है, के एक मानक के अनुसार छात्र निकाय को जीतना। छात्रों को शिक्षण कैसे प्रोग्राम / डिज़ाइन करना है (संभवतः?)। यदि आपने कॉलेज में अपने सोचने के तरीके को नहीं बदला, तो आपने अपना समय बर्बाद किया। आपका लक्ष्य किसी भी छात्र को दिखाना है जो रुचि दिखाता है कि प्रोग्रामर बनने से बेहतर के लिए उनके सोचने का तरीका बदल जाता है। आप उन्हें दिखाते हुए अप्रत्यक्ष रूप से ...

  1. क्या प्रोग्रामिंग वास्तव में है और ...
  2. कि वे कर सकते हैं।

हम इसे गलत करते हैं

वहाँ व्यापक शोध है जो दिखाता है कि जिस तरह से हमारे कॉलेज के कार्यक्रमों में 95% प्रोग्रामिंग / सीएस सिखाते हैं वह भयानक है। औसत सीएस कार्यक्रम के साथ शुरू होता है

  • C ++ / Java / C # में बुनियादी प्रोग्रामिंग का एक सेमेस्टर, जो 16 सप्ताह कुछ चीजों को "यह एक पाश के लिए" की तुलना में अधिक उन्नत शिक्षण में खर्च करता है। एक सादृश्य हो सकता है अगर भौतिकी विभाग ने कीनेमेटिक्स शुरू करने से पहले ग्रीक वर्णमाला का अध्ययन करने वाला एक सेमेस्टर खर्च किया।
  • दूसरा फ्रेशमैन सेमेस्टर बुनियादी डेटा संरचनाओं में हो जाता है और आमतौर पर 1/3 से आधे छात्रों को पीछे छोड़ देता है।
  • सोफोमोर वर्ष को विधानसभा, डेटा संरचनाओं, एल्गोरिथम विश्लेषण, एक नैतिक पाठ्यक्रम और शायद आपके पहले सामयिक पाठ्यक्रम के कुछ संयोजन में खर्च किया जाता है। आप इस वर्ष के दौरान अपने आने वाले छात्रों का एक और आधा खो देते हैं।
  • जूनियर्स और सीनियर्स "ग्राफिक्स", "नेटवर्किंग I और II", "ऑपरेटिंग सिस्टम" जैसे नामों के साथ कक्षाओं में आते हैं, और यह वास्तव में पहली दिलचस्प सामग्री है जो छात्रों को देखने के लिए मिलती है।

लगभग कुछ भी बेहतर है

लगभग किसी भी प्रयोग से स्थिति में सुधार होता है, विषय और कार्यक्रम नामांकन और स्नातक दरों की छात्र समझ के संदर्भ में मापा जाता है। एसीएम सीएसई की पत्रिकाओं में मैंने जो प्रयोग देखे हैं उनमें से कुछ हैं ...

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

इन प्रयोगों में से हर एक में छात्र प्रारंभिक ब्याज, ज्ञान हस्तांतरण, और स्नातक होने तक प्रतिधारण में भारी सुधार देखा गया। कुछ दूसरों की तुलना में कॉलेज के कुछ वातावरण के लिए अधिक उपयुक्त हैं, लेकिन यदि आप ऊपर दिए गए पैराग्राफ में वर्णित संरचना का पालन कर रहे हैं, तो अपने आप से पूछें, "क्या मैं इस कार्यक्रम के पहले दो वर्षों के लिए आसपास रहना चाहूंगा?"


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

2

कार्यक्रम के लिए तार्किक तरीके से निर्देश देना है ताकि कुछ वांछित आउटपुट प्राप्त हो सकें। दूसरे शब्दों में यह कंप्यूटर को कुछ कार्य करने के लिए कह रहा है। आगे बढ़ने का एकमात्र तरीका अभ्यास है।

जिस तरह अंग्रेजी या किसी अन्य भाषा को सीखने के लिए आपको सिंटैक्स (वर्णमाला) सीखकर शुरू करना होगा और फिर व्याकरण और अन्य निर्माणों की ओर बढ़ना होगा। भाषा की जटिलता के आधार पर आवश्यक समय की मात्रा भिन्न होती है। SQL, Python जैसी उच्च स्तरीय भाषाओं में कोडिंग लगभग अंग्रेजी लिखने की तरह है।


2

कुछ पहलुओं से मदद मिलेगी, मुझे लगता है -

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

  • विभाग समर्थित इंटर्नशिप। यदि विभाग तकनीकी कंपनियों के साथ भुगतान किए गए काम के कम से कम 2 गर्मियों की गारंटी दे सकता है, तो चारों ओर छड़ी करने के लिए एक महान प्रोत्साहन है।

सच कहूँ तो, आधुनिक कंप्यूटर विज्ञान के छात्रों को 5-10 साल पहले रहने वाले लोगों की तुलना में बहुत अधिक धन्य हैं। एक कम-एंड सिस्टम खरीदने की क्षमता, और फिर एक वीएम को स्थापित करना, और कई भाषाओं, ऑपरेटिंग सिस्टमों आदि को सीखना, क्योंकि यह एक एनाब्लर है, इसे ओवरस्टैट करना मुश्किल है।

बेशक, हॉपर और नुथ जैसे सेमिनल लोगों ने शिनियों के बिना खुद को सिखाया। प्रतिभा निकल जाएगी।


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

@ बिटऑफ: मैंने कभी भी एक अवैतनिक सीएस इंटर्नशिप के बारे में नहीं सुना है।
पॉल नाथन

मजाक नहीं? यह एक स्थानीयकृत चीज़ होनी चाहिए।
बेथ व्हाइटजेल

1

जोखिम को कम करने के लिए अपने डिग्री प्रोग्राम के बाहर संभावित, सफल छात्रों के लिए एक मंचन क्षेत्र बनाएं। इसमें मुख्य रूप से गेहूँ को झाडियों से अलग करने के लिए स्थानीय हाई स्कूलों में AP CompSci कक्षाओं को प्रायोजित करना शामिल हो सकता है। यदि यह बहुत मुश्किल हो जाता है, तो हाई स्कूल या कॉलेज डिवीजनों में सीएस उन्मुख कार्यक्रम के साथ स्थानीय डीईसीए अध्यायों (या एक नया निर्माण) में घुसपैठ करने का प्रयास करें। इसके विपरीत, आप उद्यमी छात्रों को प्रबंधन कौशल की तलाश कर रहे होंगे, जो संभवत: आपके शैक्षणिक माध्यम से अपने व्यवसाय की आकांक्षाओं को पूरा करने के लिए एक नए मार्ग के साथ, अप्रतिबंधित सीएस क्षमता के साथ।


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

1

मेरा तर्क है कि कुंजी ऐसे कार्यक्रमों के विभिन्न स्तरों को समझने में है:

विश्वविद्यालय - यह वह जगह है जहाँ कोई भी अध्ययन के लिए बस अध्ययन कर सकता है। इस मामले में कार्यक्रम बनाने और उन्हें समायोजित करने के संदर्भ में एक बहुत ही अलग मानक मौजूद हो सकता है क्योंकि यह काफी सैद्धांतिक हो सकता है, या कम से कम मुझे अपने ऊपरी वर्ष के पाठ्यक्रमों में कंप्यूटर विज्ञान का अध्ययन करने से याद है।

कॉलेज - ये अधिक करियर ओरिएंटेड होते हैं जो उद्योग से प्रतिक्रिया और कॉलेजों के साथ कंपनियों को जोड़ना एक महत्वपूर्ण बिंदु है। स्नातक होने के 6-12 महीनों के बाद प्लेसमेंट को देखते हुए, यह देखने के लिए एक मीट्रिक का उपयोग किया जा सकता है कि लोग स्नातक होने के बाद कितना अच्छा कर रहे हैं क्योंकि महत्वपूर्ण सवाल यह है कि क्या किसी ने अपना समय और पैसा उस शिक्षा को प्राप्त करने के लायक है या नहीं। कार्यक्रम को अद्यतन करने की संभावना अक्सर अधिक होगी क्योंकि यहां कार्यक्रम थोड़ा छोटा हो सकता है, जैसे विश्वविद्यालय ऑनर बैचलर कार्यक्रम को 4 साल और जबकि कॉलेज डिप्लोमा कार्यक्रम 18-24 महीने का हो सकता है। इस प्रकार, यह चुनौती कंपनियों के साथ संबंध रखने के लिए इस भाग को प्राप्त करने के साथ अधिक है ताकि लोग काम से अवगत हो सकें और देखें कि उनके लिए क्या काम करता है या क्या काम नहीं करता है।

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