प्रोग्रामिंग को पीछे की ओर जानें, या "इसलिए मैंने FizzBuzz परीक्षण विफल कर दिया। अब क्या? ”[बंद]


94

एक छोटी पृष्ठभूमि

मैं आज 28 साल का हूं, और मैंने कभी भी सॉफ्टवेयर डेवलपमेंट का कोई औपचारिक प्रशिक्षण नहीं लिया है, लेकिन मेरे पास पब्लिक रिलेशन में बीए के बराबर दो उच्च शिक्षा की डिग्री है और एक कार्यकारी एमबीए प्रोजेक्ट मैनेजमेंट पर केंद्रित है। मैंने उन क्षेत्रों पर लगभग 6 साल तक काम किया है, फिर 2,5 साल पहले मैंने नौकरी छोड़ दी और दिशाओं को बदलने का फैसला किया।

एक महीने के बाद चीजों के बारे में सोचने के बाद मैंने वर्डप्रेस को विकसित करने का फैसला किया। मैंने इसमें अपने तरीके को आत्म-सीखा और आज मैं कह सकता हूं कि मैं अपने ग्राहकों के लिए स्क्रैच से एक विनम्र लेकिन सफल कैरियर के विकास के विषय और प्लगइन्स चला रहा हूं - ज्यादातर एजेंसियां ​​मध्यम / बड़ी वेबसाइटों के लिए अपने कुछ देव कार्यों की आउटसोर्सिंग कर रही हैं।

लेकिन कभी-कभी मुझे लगता है कि पर्याप्त गणित का अध्ययन नहीं करना, या चीजों की औपचारिक समझ नहीं होना वास्तव में मेरे पीछे है जब मुझे अधिक अनुभवी डेवलपर्स के साथ प्रतिस्पर्धा या काम करना पड़ता है। मैं लगातार और अधिक जानने के तरीकों की तलाश कर रहा हूं, लेकिन मुझे मूलभूत बातों की कमी लगती है।

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

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

टी एल; डॉ

इसलिए, मेरी वर्तमान स्थिति यह है: मैं मूल रूप से PHP (Google और कुछ किताबों की मदद से) में किसी भी संपूर्ण प्रणाली को लिखने में सक्षम हूं, जो अजाक्स, एसक्यूएल और व्हाट्सन को एकीकृत करता है, और एक अनुभवी देव की तुलना में शायद थोड़ा धीमा होगा। शामिल सभी शोध के कारण।

लेकिन मैं कल फजीहत से बचने के लिए (गूगल नहीं) फिज़बजट परीक्षण का हल निकालने की कोशिश कर रहा था क्योंकि मेरे पास if($n1 % $n2 == 0) विधि मापांक ऑपरेटर याद नहीं था।

आप इस दुविधा को हल करने के लिए एक अच्छे तरीके के रूप में क्या सुझाव देंगे? मुझे किन विषयों / पुस्तकों का अध्ययन करना चाहिए जो मुझे समस्याओं को तेजी से हल करने में मदद करेंगे और शायद "प्रोग्रामर तरीके से"?

EDIT - लगता है कि FizzBuzz को हल करने के लिए मुझे जो नहीं पता था उसके बारे में कुछ भ्रम था।

शायद मैंने खुद को सही नहीं बताया: मैं समस्या को हल करने के लिए आवश्यक कदम जानता था। क्या मैं याद नहीं था मापांक ऑपरेटर था। समस्या बुनियादी गणित को कार्यक्रम में स्थानांतरित करने में थी, बुनियादी गणित को जानने में नहीं।

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

मैंने इसे एक उदाहरण के रूप में इस्तेमाल किया है कि कंप्यूटर के माहौल में गणित से कैसे निपटना है, इससे पहले कि मुझे सरल समस्याओं को हल करने में सक्षम होने के लिए मापांक संचालकों जैसी बुनियादी चीजों को देखने में समय गंवाना पड़ता है।


63
जब मैं इसे पढ़ता हूं: I'm basically capable of writing any complete system in PHP (with the help of Google and a few books)और इसे आपके साथ न जोड़ते हुए जानता if($n1 % $n2 == 0)हूं, तो मुझे आश्चर्य होता है कि आपके द्वारा PHP में लिखी गई चीजों के संपर्क में आने के बारे में। मुझे लगता है कि ज्यादातर चीजें जो आप करते हैं वे एक साधारण मोड्यूलो गणना से परे हैं। क्या आप सोच सकते हैं कि आप क्या कर सकते हैं?
प्रेत ०

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

56
stuck b/c I didn't memorize %समस्या से संबंधित , यह ध्यान देने योग्य है कि ऐसा करने के अन्य तरीके हैं: ($ n2! = 0) if (is_int ($n1 / $n2))या if (($n1 / $n2) == (int) ($n1 / $n2))कीवर्ड जानना एक बात है, और अंतर्निहित समाधान की अनुपस्थिति में अंतर्निहित विचारों को व्यक्त करना जानते हैं। एक और।
ग्रोवेलेल

18
@grossvogel बिल्कुल! फ़िज़बज़ जैसे लोगों का एक कारण यह है कि इसे हल करने के बहुत सारे तरीके हैं। यह देखने के लिए सिर्फ एक चाल नहीं है अगर आप मापांक ऑपरेटर को जानते हैं। एक प्रमुख प्रोग्रामिंग कौशल एक समस्या को उस रूप से अनुवादित करने की क्षमता है जिसमें इसे उस रूप में कहा गया है जो आपके ज्ञान / उपकरण / संसाधन / आदि के लिए सबसे अच्छा है
ऑक्टर्न

18
मॉडुलस ऑपरेटर को न जानना FizzBuzz के विफल होने का एक कारण नहीं है। जब आपको कोई चीज याद आती है तो आपको उसके आसपास काम करने में सक्षम होना चाहिए।
लोरेन Pechtel

जवाबों:


144

आपके मामले में, जैसा कि आप स्व-सिखाया जाता है और पहले से ही सीखने के लिए एक अच्छा, स्वस्थ और नो-बीएस दृष्टिकोण प्रतीत होता है। फिर भी कुछ सुझाव ...

अभ्यास परिपूर्ण बनाता है

मुझे लगता है कि आपको अभ्यास की तरह अभ्यास करना चाहिए:

यहां तक ​​कि अपने आसपास के ज्ञात विश्वविद्यालयों, या स्थानीय (या दूरस्थ) प्रोग्रामिंग प्रतियोगिताओं के पिछले परीक्षा प्रश्नों को भी पकड़ लें। उदाहरण के लिए, हमारे पास हाईस्कूल प्रोग्रामर बनने की ख्वाहिश के लिए फ्रांस में एक अच्छा है, जिसे प्रोग्लिन कहा जाता है , और यह हर साल सिर को खरोंचने वाली पहेलियों की एक अच्छी श्रृंखला प्रदान करता है (शायद फ्रेंच केवल हालांकि, क्षमा करें, लेकिन इस तरह की चीजों का मेरा मतलब है )।

अधिक के लिए: मैं प्रोग्रामिंग पहेलियाँ और चुनौतियाँ कहाँ से पा सकता हूँ?

क्लासिक किताबें और संदर्भ

हम आश्चर्यजनक पुस्तकों की एक लंबी सूची की भी सिफारिश कर सकते हैं , लेकिन मैं कहूंगा कि ज़ेन का जवाब है कि ज्ञानोदय का कोई एक सही तरीका नहीं है।

आपको यह बताना मुश्किल होगा कि कौन से लोग सूची में सबसे ऊपर हैं। इसलिए सामान्य अभ्यास से बचने के लिए और सर्वोत्तम प्रथाओं का पालन करने के लिए एक टन सामान को पढ़ते रहें, जैसा कि आप अभी ठीक से कर रहे हैं।

अधिक जानकारी के लिए:

सीमाओं से अधिक जाना

इसके अलावा, सिर को खरोंच करने वाली सामग्री की तलाश करें, जैसे:

जरूरी नहीं कि आजकल की जाने वाली चीजों के उदाहरण के रूप में लिया जाए, लेकिन यह जानने की कोशिश की जाए कि वहां क्या हो रहा है।

पीयर सिस्टम मोटिवेशनल हैं

आप अन्य लोगों से टकराकर अपने कौशल को बेहतर बनाने के लिए निम्नलिखित समुदायों को घेरना (और शामिल करना) चाहते हैं।

अंशकालिक शिक्षा

यदि आपके पास एक और 4 साल के पाठ्यक्रम या कुछ इसी तरह से संलग्न होने का समय या प्रेरणा नहीं है (जो कि किसी भी तरह से आवश्यक या पुरस्कृत नहीं हो सकता है, और महंगी), तो आप ऑनलाइन शिक्षण सामग्री की तलाश कर सकते हैं। बेशक, ये कंप्यूटर विज्ञान तक सीमित नहीं हैं।

मूल एमआईटी ओपनकोरेवेयर प्रयास के लिए धन्यवाद , अब कई विश्वविद्यालय हैं जो सूट का पालन करते हैं , और आप बहुत सारे विश्वविद्यालय-स्तरीय पाठ्यक्रम सामग्री मुफ्त में पा सकते हैं। यह हमेशा नेविगेट करने और अपने दम पर पढ़ने के लिए आसान नहीं है, लेकिन कुछ बहुत अच्छी तरह से किया जाता है। जमीन से शुरू करने और बहुत ऊपर जाने के लिए, खान अकादमी को देखने पर भी विचार करें ।

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

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

यदि आप कुछ ऐसा चाहते हैं जो "वास्तविक" विश्वविद्यालय के लिए एक निकट अनुभव प्रदान करता है, तो आप दूरस्थ विश्वविद्यालयों पर विचार कर सकते हैं, जो आपको अंशकालिक काम करने की भी अनुमति देते हैं, लेकिन आपको गति का पालन करने की आवश्यकता होती है, और आत्म-मूल्यांकन और कुछ का अंत करने के लिए वर्ष परीक्षा (कभी-कभी साइट पर), जैसे OpenUniversity और इसके अंतर्राष्ट्रीय संस्करण।

जुनून तुम जा रहा रखता है

  • एक पालतू परियोजना खोजें: अपना स्वयं का बनाएँ या एक या एक से अधिक मौजूदा सॉफ़्टवेयर परियोजनाओं में शामिल हों और योगदान करें।
  • कोड, कोड, कोड। और फिर कुछ और कोड करें।

(और आपकी आलोचना करने के लिए आपके कोड को देखने के लिए पर्याप्त नेत्रगोलक प्राप्त करें और विभिन्न दृष्टिकोणों को देखें)

फ्रांसीसी कहते हैं:

C'est en जालिम कतार l'on devient forgeron।

आप जो कर रहे हैं उसे करते रहें, और अंततः आप एक विशेषज्ञ होंगे। समय और काम लेता है।

यह भी देखें कि मुझे अधिक सुझावों के लिए सीखने में परेशानी हो रही है


पुनश्च: हालांकि यह साक्षात्कार के लिए एक बहुत ही विवादास्पद उपकरण है, और अच्छे उम्मीदवारों की पहचान करने में मदद नहीं करता है, मैं अक्सर फ़िज़बज़ का उपयोग कम से कम अविश्वसनीय रूप से "बुरे लोगों" के लिए करता हूं। तो इस प्रैक्टिकल बात पर क्रेंकिन पाएं '! :)


3
C'est सुपर ça! :) सूची के लिए धन्यवाद। प्रोजेक्ट यूलर और पहेलियां बहुत अच्छी लगती हैं। और मैं पहले से ही कुछ अन्य एसई साइटों का उपयोग करता हूं। इसमें डुबकी लगाएंगे।
मनोबलिदा

@ मोरेलीडा: खुशी है कि आपको जवाब पसंद आया। आपका स्वागत है।
जाइलम

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

4
+1 सिर्फ़ इस लिए कि फ़िज़बज़्ज़ का उपयोग आखिर में क्यों किया जाता है ... बहुत बार मैं यहाँ टिप्पणियों पर या ब्लॉग पर लोगों की आलोचना करते हुए देखता हूं क्योंकि वे मानते हैं कि कंपनियां सुपर-कोडर्स की पहचान करने के लिए इसका उपयोग कर रही हैं। (उन कंपनियों के लिए: आप इसे गलत कर रहे हैं!)
इज़काता

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

60
I didn't have the if($n1 % $n2 == 0) method memorized.

मैं बहुत लंबे समय से कोडिंग नहीं कर रहा था (लगभग 27 महीने पहले खुद को एसक्यूएल पढ़ाना शुरू किया था और लगभग 20 महीने पहले पर्ल में कोडिंग शुरू की थी), लेकिन ऊपर बोली कुछ चीजों की तरह लगती है जो मैंने पूर्व छात्रों से सुनी है:

हर समस्या के लिए मुझे किस एकीकरण तकनीक का उपयोग करना चाहिए?

मुझे यह याद नहीं था कि मुझे संभावनाओं को जोड़ना या गुणा करना चाहिए, या "एन चॉइस के" का उपयोग करना चाहिए या फैक्टोरियल का उपयोग करना चाहिए।

एक मिनट रुकिए! आपने कहा कि x कल 2 के बराबर हो गया! अब यह शून्य के बराबर है ?!

ठीक है, कि पिछले एक शायद थोड़ा कठोर था ... लेकिन मैं जो मुद्दा बनाने की कोशिश कर रहा हूं वह यह है कि समस्या को हल करना याद नहीं है । अगर ऐसा होता, तो कुछ प्रतिभाएं हर समस्या को हल करने के लिए एक कंप्यूटर प्रोग्राम कर सकती थीं, और हममें से किसी को भी फिर से सोचने की ज़रूरत नहीं होगी (जो एक नारकीय दुनिया होगी ...)।

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

फिर, जब आप एक समस्या का सामना करते हैं, तो समस्या का उपयोग करके संदर्भ प्रदान करें कि आपको किन उपकरणों की आवश्यकता है। FizzBuzz के लिए, आपको यह बताने की आवश्यकता है कि कोई संख्या 3, 5, या 15. से विभाज्य है या नहीं। ठीक है, इसलिए हम संख्याओं के साथ काम कर रहे हैं .... क्या मूल उपकरण हमें यह बताने की अनुमति देते हैं कि जब एक पूर्णांक दूसरे से विभाज्य होता है? ठीक है, मापांक ऑपरेटर। तो, का उपयोग करें। (बेशक, यदि आपकी संख्या है $n, तो आप फैंसी हो सकते हैं और देख सकते हैं कि अंतिम अंक $n0 या 5 है, और / या यदि $n3 से विभाज्य कुछ जोड़ने के अंक हैं, लेकिन मुझे पता है ...) 1 और 100 के बीच प्रत्येक संख्या के लिए ऐसा करें, ताकि कार्पल टनल प्राप्त करने से बचें, एक foreachलूप का उपयोग करें ।

कहानी का मनोबल यह है कि यदि एक तरफ आप कहते हैं "मैं मूल रूप से PHP में किसी भी पूर्ण प्रणाली को लिखने में सक्षम हूं" और दूसरी तरफ आप FizzBuzz को कोड नहीं कर सकते हैं, तो पहला दावा गलत है। मेरे कुछ पूर्व कैलकुलस छात्रों ने ऊपर और नीचे की कसम खाई थी कि वे अवधारणाओं को समझ गए थे, लेकिन वे सिर्फ परीक्षा पर समस्याओं को नहीं कर सकते थे ... या होमवर्क की समस्याएं ... या प्रश्नोत्तरी समस्याएं। वे अपनी समझ के बारे में भी गलत थे।

बहाने बनाना बंद करो और मूल बातें सीखो।


6
मुझे याद नहीं है, मैं मेटाबोलाइज़ करता हूं और इन चीजों को अपने अंतर्ज्ञान का हिस्सा बनाता हूं। हमेशा उस का विस्तार करना चाहते हैं।
ncmathsadist

@ncmathsadist - हां, अंतर्ज्ञान का विस्तार करना महत्वपूर्ण है, लेकिन यहां तक ​​कि अंतर्ज्ञान को बहुत ही मूल अवधारणाओं और तथ्यों की एक छोटी संख्या के संस्मरण पर निर्भर रहना पड़ता है।

रिकॉर्ड के लिए, आपको एक संख्या को 3 से गुणा करना होगा और फिर अंकों को जोड़कर देखना होगा कि क्या इसका 3 से विभाज्य है, आप केवल संख्या जोड़ सकते हैं। उदाहरण के लिए, ,६४, 6 + ६ + ४ = १
div

@ पत्ती 68 - दुह! [थप्पड़ माथे] आप बिल्कुल सही हैं ... lemme edit!

27

आप सोच सकते हैं कि FizzBuzz एक खिलौना समस्या है; जब मुझे किसी वास्तविक कार्यक्रम में मापांक ऑपरेटर का उपयोग करने की आवश्यकता होगी। लेकिन वास्तव में आप हर समय इसका उपयोग करते हैं। तीन सामान्य उदाहरण:

  1. आप एक तालिका प्रदर्शित कर रहे हैं और आप अलग-अलग पंक्तियों के लिए पृष्ठभूमि रंग वैकल्पिक करना चाहते हैं। आप जांचें कि क्या एक पंक्ति भी है ( row_number % 2 == 0) और पंक्तियों के लिए एक रंग और विषम पंक्तियों के लिए एक रंग प्रदर्शित करें।
  2. आपके पास उन वस्तुओं का एक संग्रह है जिनके माध्यम से आप लूप कर रहे हैं और आप प्रति पंक्ति एन ऑब्जेक्ट्स के साथ एक टेबल प्रिंट करना चाहते हैं; तब एक लाइन ब्रेक जोड़ने के लिए मानदंड (आइटम_नंबर% एन == 0) है। मैं वास्तव में इस सटीक व्यवहार पर एक SO प्रश्न था, हालांकि उस अस्थायी भाषा में स्थिति if item_number % N == 0को समकक्ष ( if item_number|divisbleby: N) के रूप में लिखा गया था ।
  3. आप कई ऑपरेशन कर रहे हैं जिन्हें आप एक लेनदेन में समूह बनाना चाहते हैं जो केवल तब ही प्रतिबद्ध हो जाता है जब समूह दक्षता कारणों से एक निश्चित आकार में हो जाता है। हो सकता है कि आप Google डेटा API का उपयोग कर रहे हों और आप प्रत्येक ऑपरेशन के लिए एक नया लेनदेन बनाने के लिए HTTP हेडर / ऑथेंटिकेशन ओवरहेड नहीं चाहते हैं, इसलिए आप उन्हें 50 ऑपरेशनों के समूहों में एक साथ बैच रहे हैं। या आप अपने डेटाबेस में रिकॉर्ड सहेज रहे हैं और उचित आकार होने पर लेनदेन करना चाहते हैं। कुछ इस तरह if cur_item_number % 50 == 0 then commit_data

यकीन है कि इन सभी चीजों को करने के अन्य तरीके हैं। लेकिन आप मापांक संचालक का उपयोग किए बिना या फ़ेज़र डिवीजन की तुलना पूर्णांक डिवीजन से कर सकते हैं। उदाहरण के लिए, FizzBuzz के लिए आप निम्नलिखित छद्म कोड जैसा कुछ कर सकते हैं।

div_by_3_rem = 0
div_by_5_rem = 0
for(i = 0; i< 50; i++) {
    if(div_by_3_rem == 0 && div_by_5_rem == 0) {
       print "FizzBuzz"
    } elif(div_by_3_rem == 0) {
       print "Fizz"
    } elif(div_by_5_rem == 0) {
       print "Buzz"
    } else {
       print i
    }
    div_by_3_rem += 1
    div_by_5_rem += 1
    if(div_by_3_rem == 3) {
       div_by_3_rem = 0
    }
    if(div_by_5_rem == 5) {
       div_by_5_rem = 0
    }
}

निष्कर्ष निकालने के लिए, यदि आप किसी दिन एक महान प्रोग्रामर बनना चाहते हैं , तो भाषा की पुस्तकों को सीखने में कूदें नहीं। हां, एक PHP / Java पुस्तक में आपको Google / stackoverflow और आधे-काम करने वाले कार्यक्रमों के उत्तर किसी भी चीज़ से बहुत तेज़ी से मिलेंगे। लेकिन वास्तव में यह जानने में सक्षम हो सकता है कि गुणवत्ता इष्टतम कार्यक्रम कैसे लिखें और प्रोग्रामर की तरह सोचें कि आपको वास्तविक सीएस पुस्तकों के लिए कुछ जोखिम की आवश्यकता है।

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

आपको अंततः एक अच्छा एल्गोरिदम पुस्तक पढ़ने की आवश्यकता है, सबसे अच्छा CLRS का एल्गोरिदम (मुफ्त नहीं), हालांकि यह मुफ्त एल्गोरिथम पुस्तक हैकम लागत वाला प्रतिस्थापन हो सकता है (हालाँकि यदि आप सिर्फ CLRS खरीद सकते हैं)। एल्गोरिदम पुस्तक आपको सिखाएगी कि कंप्यूटर की समस्याओं को कैसे हल किया जाए और आपको विभिन्न प्रकार की डेटा संरचनाओं (Arrays / Linked Lists / Heaps / Binary Trees / B-Trees / HashTables) और महत्वपूर्ण एल्गोरिदम से परिचित कराना है, जो आपको यह जानने के लिए ज़रूरी हैं कि कैसे उपयोग करें । आपको हर प्रमाण को याद करने या यह जानने की आवश्यकता नहीं है कि हर एल्गोरिथम को कैसे लिखना है (जो कभी एक फाइबोनैचि हीप का उपयोग करता है); लेकिन आपको सहजता से पता होना चाहिए कि लूप के लिए दो नेस्टेड हैं ओ (एन ^ 2); तुलना प्रकार सर्वोत्तम O (N lg N) पर हैं, बाइनरी खोज O (lg N) है, O (N) में माध्यिका ढूँढ सकते हैं, हार्ड डिस्क डेटाबेस B-Trees, आदि का उपयोग क्यों करते हैं)। एल्गोरिदम पुस्तक के एक न्यूनतम, मजबूत ज्ञान से आपको Google / facebook विविधता के तकनीकी प्रोग्रामिंग साक्षात्कार में मदद मिलेगी। प्रोग्रामिंग किताबें पढ़ते समय, केवल स्किम / पढ़ें नहीं; आप'

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


4
सर्वश्रेष्ठ टिप्पणी अभी तक; जब मैं बहुत से लोगों को कहता हूं कि अभ्यास, अभ्यास, अभ्यास, यह जाने का तरीका नहीं है। अभ्यास उन्हें सही कहता है लेकिन यह केवल बुरे व्यवहार को लागू करता है। ओपी करने के लिए: अपने आप को अन्य अवधारणाओं के लिए उजागर करें, जानें कि क्विकॉर्ट्स को एक बुलबुले के ऊपर क्यों पसंद किया जाता है। केवल सही अभ्यास ही सही बनाता है। उस सीएस कोर्स को प्राप्त करें।
पीटर बी

2
उस उदाहरण कोड को पोस्ट करने के लिए धन्यवाद, मैंने पहले ही सोचा था कि मुझे इसे स्वयं करना होगा। - हम अकेले NAND गेट्स का उपयोग करके किसी भी जटिल लॉजिकल सर्किट का निर्माण कर सकते हैं; हमारे पास बहुत कम सरल ऑपरेशन वाली भाषाएँ हैं जो ट्यूरिंग पूर्ण हैं; हम समस्याओं को हल करने के लिए उन फैंसी ऑपरेटरों की जरूरत नहीं है। किसी समस्या को हल करना केवल सही साधनों को जानना नहीं है, किसी समस्या पर काम करने में सक्षम होना, एक ऐसे समाधान का पता लगाना जो आपके स्वयं के ज्ञान के लिए काम करता है, जो एक प्रोग्रामर बनाता है।
प्रहार करें

22

लेकिन मैं कल फजीहत से बचने के लिए (गूगल नहीं) फिजबुक टेस्ट का हल निकालने की कोशिश कर रहा था क्योंकि मेरे पास ($ n1% $ n2 == 0) विधि याद नहीं थी।

कोई भी उस चीज को याद नहीं करता है। आप इसे अपने साथ लेकर आने वाले हैं। यदि आप मापांक ऑपरेटर को जानते हैं और आप जानते हैं कि यह क्या करता है, तो यह तुच्छ रूप से FizzBuzz समस्या के लिए एक महान फिट है।

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

वर्तमान में मैं जावा के लिए प्रोग्रामर के लिए अपना अतिरिक्त समय व्यतीत कर रहा हूं (किसी भाषा पर पकड़ रखने के लिए हर कोई कहता है कि यह मुश्किल है / मांग है)

जावा अस्तित्व में सबसे आसान और सबसे खराब भाषाओं में से एक है। इसमें केवल एक ही चीज है: कचरा-एकत्रित मैनुअल विरासत। यदि आपके मित्र या सलाहकार कहते हैं कि जावा कठिन है, तो नए मित्र खोजें। C ++ एक कठिन भाषा है जिसमें बहुत सी अवधारणाएँ शामिल हैं, और यह कि कोई भी विवाद नहीं करेगा। आप C # भी कर सकते हैं, जिसमें कम से कम कुछ जेनरिक और लंबोदा हैं।

आप कोड कैसे सीखना चाहते हैं, जब आपकी भाषाओं को उन लोगों द्वारा डिज़ाइन और कार्यान्वित किया जाता है जो कोड नहीं कर सकते हैं, और आप जो कुछ भी करते हैं उसके लिए आप फ्रेमवर्क पर निर्भर हैं?


14
@ मॉरेलिडा: एक ऑपरेटर के लिए सिंटैक्स देखने में कोई शर्म नहीं है जिसे आपने उपयोग करने का कारण नहीं बनाया है।
17-16 बजे डेडएमजी

2
@moraleida: इस मामले में मैं सहमत हूँ कि कोई वास्तविक समस्या नहीं है। मुझे नहीं लगता कि किसी भी पेशेवर, साक्षात्कारकर्ता या अन्यथा, आपको यह सोचना चाहिए कि क्या आप अपनी उंगली को अलग भाषा के लिए सटीक वाक्यविन्यास पर नहीं डाल सकते हैं, जब तक कि आप स्पष्ट रूप से व्यक्त कर सकते हैं कि आपका इरादा क्या है।
haylem

5
अधिकांश बिंदुओं पर सहमत, लेकिन आप जावा को 'अब तक की सबसे खराब भाषा' क्यों मानते हैं? मैं जावा का बहुत बड़ा प्रशंसक नहीं हूं, लेकिन यह बहुत ही मतलबी है।
केसी कुबाल

7
-1 घुटने-झटका bash PHP के लिए एक बहाने के रूप में सवाल का उपयोग करने के लिए जब यह शून्य संबंध है जो पूछा गया था।
StasM

1
@ डार्थफेट: मैं उस पर एक निबंध लिख सकता था। SO C ++ चैट पर आएं और आप इसे पढ़ सकते हैं: P
DeadMG

11

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

प्रोग्रामिंग में दो चीजें हैं जो आपको सीखने की जरूरत है।

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

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


1
"और इन समस्याओं को हल करने की आवश्यकता के बारे में पढ़ें" - वास्तव में, एक ही समस्या के लिए अलग-अलग समाधान देखें। उनमें से प्रत्येक को समझने की कोशिश करें, उनकी तुलना आम में है और वे अलग-अलग क्या करते हैं। उन चीजों को समझें और आप अपने आप को उसी समस्या के इर्द-गिर्द सोचने के अलग-अलग तरीके निकाल लेंगे।
प्रहार करें

मैं मानसिकता पर पूरी तरह सहमत होगा। एक बार जब आप मानसिकता और अवधारणाओं को समझ लेते हैं, तो अंतर्निहित भाषा निर्माणों को सीखना बहुत आसान हो जाता है, और आप निश्चित रूप से चीजों को करने के वैकल्पिक तरीकों के बारे में सोचना शुरू कर देंगे। (जैसे कि fizzbuzz के लिए, 5 से विभाज्य सभी संख्याएं 5 या 0 में समाप्त हो जाएंगी, इसलिए उस हिस्से पर मापांक
संचालक

9

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

इस अभ्यास को करने के दौरान, आप सीखेंगे कि आपको कितनी अतिरिक्त गणितीय / सैद्धांतिक पृष्ठभूमि की आवश्यकता हो सकती है। यदि आप उन अवधारणाओं से टकराते हैं जिन्हें आप अपने सिर के चारों ओर लपेट नहीं सकते हैं, तो उनके बारे में और उनकी पूर्व-ज्ञान को पढ़ें और केस के आधार पर एक केस का फैसला करें यदि आप अपना विस्तार करने के लिए एक कोर्स करना चाहते हैं या क्या है सैद्धांतिक पृष्ठभूमि।


1
यह कोड काटा भी भयानक लगता है!
मोरेलिडा

8

... क्योंकि मेरे पास ($ n1% $ n2 == 0) विधि याद नहीं है।

मैं इस बात की व्याख्या कर रहा हूं कि आप के बारे में नहीं जानते थे और / या मापांक ऑपरेटर को याद नहीं था। यदि यह मामला है, तो शुरू करने का स्थान उस भाषा के निर्माण की समीक्षा करना है, जिस भाषा का आप उपयोग कर रहे हैं। ऐसी किसी भी चीज़ की समीक्षा करें जिसे आप 'ठंडा नहीं जानते', और कुछ भी सीखें जो आप अभी नहीं जानते हैं।


4
+1। जबकि अन्य उत्तर एक बेहतर शिल्पकार बनने के बारे में बात करते हैं, यह संभवतः यह जानना और भी महत्वपूर्ण है कि वास्तव में कौन से उपकरण मौजूद हैं। कभी एक आसान बाहर के बिना एक टूटी हुई पेंच को हटाने की कोशिश करें ? इसके बारे में जाने के अन्य तरीके हैं, लेकिन यह एक माथे-थप्पड़ है जब आप अंततः उस उपकरण को सीखते हैं जो इसके लिए बनाया गया है। मैं कहता हूं कि ओपी को PHP ऑपरेटरों की किसी भी सूची में बहुत पहले ही शामिल होना चाहिए था और जो अपरिचित थे, उनके साथ खेला।
टिम लेहनर

5

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

बस कोड लिखना जारी रखें, परियोजना के विचारों के साथ आ रहे हैं, और शोध कर रहे हैं।


4

क्या मैं जावा, सी ++ से पहले जावास्क्रिप्ट सीखने की सलाह दूंगा? आपके लिए कारण:

  1. फ्रंट-एंड डिज़ाइन (jQuery, आपके कुछ वर्डप्रेस प्लग इन, ट्विटर फीड्स, आपके ब्राउज़र में JSON के माध्यम से लोड करने वाले डेटाबेस के साथ थोड़ा-बहुत बैक-एंड काम नहीं करता है, फॉर्म सत्यापन, आदि)
  2. Node.js के माध्यम से सर्वर-साइड का उपयोग किया जा सकता है
  3. IOS, Android, Win8, आदि के लिए हाइब्रिड ऐप्स बनाने के लिए इस्तेमाल किया जा सकता है
  4. जेएस का अध्ययन आपको विभिन्न ब्राउज़रों और उपकरणों में वेबपेज प्रदर्शन को बेहतर ढंग से समझने में मदद करेगा
  5. जेएस को अधिक नौसिखिया अनुकूल बनाया गया था
  6. आप पहले से ही HTML और CSS जानते हैं (मुझे उम्मीद है;), जिससे JS को मदद मिलती है

नि: शुल्क नौसिखिया संसाधन

http://www.codecademy.com/tracks/code-year
https://stackoverflow.com/tags/javascript/info
मेरे पास लगभग 10 और लिंक थे, लेकिन एसई मुझे तब तक पोस्ट नहीं करने देगा, जब तक मैं 10 प्रतिनिधि नहीं मार देता।

C ++, Java, आदि सीखना भी मददगार है, लेकिन IMHO का वेब प्रोग्रामिंग पर अधिक प्रभाव नहीं पड़ता जैसा कि JS करता है, क्योंकि आप इसे फ्रंट और बैक एंड दोनों पर इस्तेमाल कर सकते हैं। मज़े करो!


tutsplus.com/course/30-days-to-learn-jquery ### उन्नत और नि: शुल्क डीप लर्निंग थ्योरीविटामिन. com/ code/ tips- on- learning- javascript netmagazine.com/tag/javitcript?ct=tutorial ब्लॉग. boyet .com / ब्लॉग / javascriptlessons nczonline.net/blog/tag/javascript javascriptweekly.com jsperf.com/popular मुझे यकीन है कि आप SitePoint आदि के बारे में जानते हैं। ### shop.oreilly.com/product/0636920023982.do " जानने के लिए भुगतान करें " पीएचपी डेवलपर के लिए जावास्क्रिप्ट ";) teamtreehouse.com/library/search?q=javascript
tomByrer

1
और जब आप एक नौकरी पाने के लिए तैयार हैं: jobety.com
imns

3

आप पाते हैं और अन्य लोगों की सहायता जैसे सकता giving.code (प्रकटीकरण: मेरी साइट) या अमेरिका के लिए कोड या जो कुछ भी। यह गैर-पीएचपी-वेब-पेज बनाने की समस्याओं के लिए और अधिक एक्सपोजर प्राप्त करने और अच्छा महसूस करने का एक शानदार तरीका है।

जब आपको हल करने में समस्या होती है - या हल करने में मदद मिलती है, या बस समझते हैं - कोड उठाते हुए स्वाभाविक रूप से रास्ते में आता है। एक लक्ष्य होना कुछ सीखने का सबसे अच्छा तरीका है।


1
बहुत बढ़िया! यह वास्तव में अध्ययन करने का एक अच्छा तरीका है!
मनोबलिदा

0

इसलिए आप FizzBuzz समस्या को हल नहीं कर सके। बड़ी बात। अब आप कर सकते हैं, और मैं शर्त लगा सकता हूँ कि आप सभी असंख्य तरीके कभी नहीं भूलेंगे। अपने आप को एक बुरा प्रोग्रामर ब्रांड बनाने के लिए इतना उत्सुक न होने की कोशिश करें क्योंकि आप अपने सिर के ऊपर से एक बेवकूफ समस्या को हल नहीं कर सकते।

यह एक मुद्दा है। दूसरा यह है कि आप प्रोग्रामिंग लर्निंग कर्व के पीछे थोड़ा महसूस करते हैं। जैसा कि दूसरों ने कहा है, कोडिंग करते रहें और पढ़ते रहें। जितना अधिक आप करेंगे, उतना ही बेहतर होगा। यह इतना सरल है। जो भी आपको लगता है कि आपकी पृष्ठभूमि में सबसे बड़ा छेद है और वहां से आगे बढ़ें।


(यह उत्थान ध्वनि करने के लिए था। निश्चित रूप से मैं वहां सफल नहीं हुआ। lol।)
निक स्प्रीट्ज़र

0

मुझे नहीं लगता कि मैं किसी को किराए पर लेने की सिफारिश करने से इनकार कर दूंगा क्योंकि उन्हें नहीं पता था कि यह मापदण्ड ऑपरेटर था जो प्रदान किया गया था:

  1. वे जानते थे कि यह किसी प्रकार का एक ऑपरेटर था।
  2. वे मुझे बता सकते थे कि "मापांक" एक बार मुझे क्या संकेत देता है।

यह हमेशा (हालांकि आमतौर पर)% नहीं है, और कुछ भाषाएं अजीब हैं। और नरक, एक दशक के बाद मैं ईमानदारी से यह नहीं कह सकता कि मैं सभी पर्ल ऑपरेटरों को जानता हूं (और स्पेसशिप एक बार फिर क्या करता है?) और न ही मैं हमेशा बिटवाइज ऑपरेटरों को पूरी तरह से याद रख सकता हूं। यह कुछ साल हो गए हैं जब मैंने कुछ भी किया है, जो उन लोगों की भी आवश्यकता होगी।

किसी को यह सलाह देने में मुझे क्या संकोच हो सकता है कि अगर ऐसा होता तो उस प्रश्न / परीक्षा को याद करने पर कुछ घबराहट होती। इससे मुझे आभास हो सकता है कि वे थोड़े बहुत हरे थे (जब तक कि यह बहुत प्रवेश स्तर की स्थिति नहीं थी)। किसी को किसी की जरूरत नहीं है जो उन चीजों को याद करता है (या करने की आवश्यकता महसूस करता है)। आपको किसी ऐसे व्यक्ति की आवश्यकता है जो दूर की अवधारणाओं को समझता हो। यदि आप Google पर देखते हैं तो किसी की परवाह नहीं की जाएगी, लेकिन आपको साक्षात्कार में आश्वस्त होना होगा कि% जानना कोई बड़ी बात नहीं थी और यह भी कि आप "ऑपरेटर" को एक कीवर्ड के रूप में उपयोग करना जानते हैं जब आप एक त्वरित Google करते हैं। खोज।

इसके अलावा, यह केवल एक विचार है ... लेकिन अगर आपके स्थानीय सामुदायिक कॉलेज में एक compsci कार्यक्रम है, तो आपके अन्य क्रेडिट सभी हस्तांतरण होंगे, और आपको 2 साल की डिग्री के लिए केवल 20 क्रेडिट की आवश्यकता होगी। एक सेमेस्टर में लगभग समाप्त कर सकता है। वे आपको एक डेटा स्ट्रक्चर्स कोर्स करेंगे, उम्मीद है कि एल्गोरिदम भी ... आपको थोड़ा मजबूत बना सकते हैं।


-1

यहाँ एक नमूना पाठ्यक्रम है: http://www.ox.ac.uk/admissions/under स्नातक_courses/ courses/ computer_science/ computer_science_.html

मेरा सुझाव है कि पहले निम्नलिखित पर पढ़ें: ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (बहुत सामान्य, कभी इस्तेमाल किया गया, यह वह जगह है जहाँ जावा आता है) कंसीडर (जावा प्रोग्राम लिखने के लिए जो वास्तविक दुनिया में रहस्यमय तरीके से दुर्घटना नहीं करते हैं, गतिरोध के बारे में जानें) (अधिकांश एप्लिकेशन को डेटा को बचाने की आवश्यकता है, सिद्धांत यहां महत्वपूर्ण है) प्रोग्रामिंग प्रतिमान (अपनी सोच का विस्तार करने और नई चीजें सीखने के लिए, कम से कम एक गैर-उफ़ भाषा, अधिमानतः कार्यात्मक के बारे में पढ़ें)

जब मैं 4 साल के विज्ञान शिक्षा को देखता हूं, तो मुझे लगता है कि मुझे लगता है कि केवल कुछ ही पाठ्यक्रम हैं जिन्हें आपको गंभीरता से लेने की आवश्यकता है।

डेटा संरचना और एल्गोरिदम (और आपको वास्तव में अच्छा पाने के लिए और अन्य प्रोग्रामर द्वारा गंभीरता से लिया जाना चाहिए) के लिए गणित की आवश्यकता है, कंप्यूटर नेटवर्किंग और ऑपरेटिंग सिस्टम सबसे महत्वपूर्ण के रूप में ध्यान में आते हैं। अन्य विषय जो निचले स्तर के कोड से निपटते हैं, जैसे कि विधानसभा में कोड करने में सक्षम होना यकीनन आपके लिए इतना महत्वपूर्ण नहीं है। सॉफ्टवेयर इंजीनियरिंग और परीक्षण आपको उन अवधारणाओं के बारे में बताते हैं जो उपयोगी हैं और आप समय के साथ उन्हें उठा सकते हैं।

बस एक पीडीएफ डाउनलोड करें जो इन अवधारणाओं को सहज तरीके से समझाए और आप अपने रास्ते पर रहेंगे।

कुछ COMP विज्ञान पाठ्यक्रमों में, कम से कम मेरा, प्रथम वर्ष मैकेनिकल, इलेक्ट्रिकल, सिविल आदि जैसे इंजीनियरिंग के सभी क्षेत्रों के लिए एक परिचय है, जटिल गणित बहुत है, आप, जो फिर से प्रासंगिक हो सकता है या नहीं हो सकता है। आज अधिकांश आवेदन प्रोग्रामर के लिए। इसलिए, आज के आसपास के कई इंजीनियरों के पास वास्तव में केवल 3 साल का वास्तविक कंप्यूटर विज्ञान शिक्षा है (आशा है कि यह आपको बेहतर महसूस करता है :)

जवाब का क्रूज़: आप हर रोज अध्ययन करने के लिए कुछ समय ले सकते हैं, एक या दो घंटे कह सकते हैं, और समय के साथ एक बहुत सुंदर प्रोग्रामर बन सकते हैं। बस सीखते रहो। और हर रोज़ कुछ कोड लिखना याद रखें।


-3

मेरे लिए, मेरी रणनीति यह है कि मैं केवल उस समस्या पर हमला करता हूं जो कि मैं जो काम कर रहा हूं, उसके लिए प्रासंगिक है, इसलिए मेरी सलाह है कि आपको यह सब सीखने की जरूरत नहीं है, बस उन चीजों को पढ़ें जो आपके लिए काम कर रही हैं, क्योंकि यदि आपने एक बार में यह सब सीखने की कोशिश की तो एक प्रवृत्ति है कि आप साष्टांग प्रणाम करते हैं और नफरत करने वाली प्रोग्रामिंग समाप्त कर देते हैं।

शांति

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