2009-02-06 8 views
7

मेरी प्राथमिक भाषा PHP है, लेकिन मैंने अन्य भाषाओं में कुछ (बहुत ज्यादा नहीं) प्रोग्रामिंग की है।सी सीखना सी ठीक से: हाँ या नहीं?

मैंने सी में अपाचे के लिए 2 मॉड्यूल लिखे हैं, मैंने उन्हें सी में लिखा क्योंकि यह उन चीजों में से एक था जहां प्रदर्शन महत्वपूर्ण था। (फ्लाई और आउटपुट को .png पर दुनिया के अनुमानित मानचित्र उत्पन्न करना)।

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

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

मेरे सवाल यह है:
मैं पहली बार ठीक से कार्यक्रम के लिए सी में (एक प्रति The C Programming Language प्राप्त) सीखना चाहिए या आप एक और दृष्टिकोण की सिफारिश करते हैं।

ध्यान दें:
मैंने वर्तमान में अन्य सी प्रयोग करने के लिए कोई योजना नहीं है कि अपाचे मॉड्यूल के लिए

उत्तर

10

यदि आप प्रोग्रामिंग के बारे में गंभीर हैं, तो मुझे लगता है कि सीखना सी वास्तव में महत्वपूर्ण है। यह कई भाषाओं की नींव है और आपको सी में लिखे गए बहुत से स्रोत कोड का सामना करना पड़ेगा। हालांकि, हम जावा, सी ++, आदि के बारे में बता सकते हैं ..

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

-2

आप कुछ और के लिए सी का उपयोग किया जा करने के लिए नहीं जा रहे हैं, मैं जावा का उपयोग करने जा करने के लिए, के रूप में सलाह देते हैं यह समेकन बहुत आसान है (कम से कम मेरी राय में)।

इसमें एक बहुत बड़ी मानक लाइब्रेरी भी है जो काम करने में बहुत आसान है और शायद आपके विकास को काफी तेज़ी से बढ़ाएगी।

+0

Concurrency बहुत मुश्किल है, और समस्याओं को हल करने वाली भाषा पर जाकर हल नहीं किया जा रहा है। मैं सुझाव दूंगा कि ओपी के अनुभव के स्तर वाले किसी से भी दूर रहें। –

2

मैं उस पुस्तक की अत्यधिक अनुशंसा करता हूं। यहां तक ​​कि यदि आप भविष्य में सी का उपयोग करके स्वयं को नहीं देखते हैं, तो आप कभी भी नहीं जानते कि आपको क्या करना पड़ सकता है और यह सी के लिए कुछ और अनुभव/ज्ञान हासिल करने के लिए एक आदर्श पुस्तक है।

और ऊपर उल्लिखित सी कई अन्य लोकप्रिय भाषाओं की नींव है, इसलिए यदि आप सी का उपयोग करके समाप्त नहीं होते हैं तो भी आप इसे उत्तराधिकारी का उपयोग कर समाप्त कर सकते हैं।

4

लगता है जैसे आप पहले से ही काफी अच्छा कर रहे हैं। उन मॉड्यूल को खोलने और समुदाय से प्रतिक्रिया मांगने के बारे में क्या?

+0

अब डरावना लगता है! :) – Jacco

0

मैं कहूंगा कि यह कुछ ठीक से सीखने के लिए कभी दर्द नहीं होता है। और सी की ठोस समझ निश्चित रूप से प्रोग्रामिंग की आपकी समझ को आगे बढ़ाएगी।

इससे कोई फर्क नहीं पड़ता कि आप भविष्य में भाषा का उपयोग करेंगे, लेकिन समझने के लिए कि हुड के नीचे क्या हो रहा है, यह अनमोल है।

1

आप भविष्य में सी में प्रोग्राम करने की कोई योजना नहीं है यहां तक ​​कि अगर, या आप भी सुनिश्चित करें कि आप कुछ ग से संबंधित भाषाओं में विकसित करने की आवश्यकता नहीं कर रहे हैं, मैं वैसे भी सिफारिश करेंगे ऐतिहासिक कारणों से कश्मीर & आर पुस्तक: यह है अपनी कला के ज्ञात स्वामी से सीखने के लिए एक अच्छा अभ्यास।

0

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

0

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

भाषा में आपको पेश करने के लिए एक पुस्तक का उपयोग करें, लेकिन इसे व्यावहारिक रूप से सीखें।

4

केवल उतना ही सीखें जितना आपको चाहिए।

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

+0

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

+1

बस इस पोस्ट पर ठोकर खाई, और बोल्ड हिस्सा मुझे बुरी सलाह के रूप में मारता है। इसे "जितना संभव हो उतना सीखें" होना चाहिए। जितना अधिक सीखता है, विशेष रूप से सॉफ्टवेयर विकास में नई चीजें सीखना आसान होता है। सीखने के बारे में आलसी होने से सफल मानसिकता नहीं हो सकती है। – SirDarius

0

मैं निश्चित रूप से सी प्रोग्रामिंग भाषा (के आर) प्राप्त करने की अनुशंसा करता हूं। यह सी के लिए एक बहुत संक्षिप्त और उपयोगी संदर्भ है। यदि आप के & आर से थोड़ा सा सीखना चाहते हैं तो मैं भाषा पर एक gentler किताब पाने में संकोच नहीं करता, लेकिन K & आर वह पुस्तक है जिसे आप वापस आ रहे हैं जब कुछ ऐसा होता है जिसके बारे में आप निश्चित नहीं हैं।

इसके अलावा, यह इंगित करने योग्य है कि थ्रेडेड प्रोग्रामिंग संभावित समस्याओं की एक पूरी नई दुनिया खोलती है, इसलिए मैं निश्चित रूप से यह सीखने की सलाह दूंगा कि यह ठीक से कैसे किया जाए।

+0

थ्रेडेड प्रोग्रामिंग पर एक अच्छी किताब के लिए कोई सुझाव? (शायद यह एक नया नया सवाल होना चाहिए?) – Jacco

0

पुस्तक पढ़ें। आप खुश होंगे कि आपने किया था। यह आपको बहुत सी चीजों से पेश करेगा जो आप अन्यथा नहीं आते हैं। जब आपको लगता है कि आपको उनकी आवश्यकता है तो आपको उन सभी पर ठोकर खाने की बजाय, भाषा की सभी विशेषताओं के साथ पेश किया जाएगा।

1

मुझे लगता है कि असली मुद्दों तुम यहाँ का सामना कर रहे हैं:

1) कार्य आप कर रहे हैं के लिए C उचित है?
2) क्या आप सी भाषा के बारे में अपना ज्ञान बढ़ा सकते हैं क्योंकि आवश्यकताएं बदलती हैं?

प्रश्न 1 के लिए, शायद आपके आवेदन के लिए सी के विकल्प हैं। आपको .png छवियों को आउटपुट करने की आवश्यकता है, और आपको थ्रेडिंग प्रबंधित करने की आवश्यकता है: शायद जावा या पायथन सी के लिए बेहतर विकल्प हैं (.png आउटपुट दोनों भाषाओं में कुछ पंक्तियां हैं, जबकि मुझे लगता है कि आपको बाह्य पुस्तकालयों की आवश्यकता है और ऐसे में सी। थ्रेडिंग के लिए

प्रश्न 2 के लिए, यदि आप सी का उपयोग करने में बने रहते हैं, तो शायद आप गहराई से भाषा का अध्ययन करना बेहतर कर सकते हैं, अगर आप जटिलता बढ़ने के रूप में नुकसान से बचना चाहते हैं (विशेष रूप से कम स्तर की भाषा जैसे सी)।

+0

जटिलता .png outputting में नहीं है। नक्शा-अनुमान वास्तव में गणना गणना भारी हैं, इसलिए मैं निम्न स्तर की भाषा चुनता हूं। – Jacco

3

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

  • भाषा का उपयोग करें।आपने पहले ही ऐसा किया है :)
  • भाषा को जानना। "बाइबल" के & आर कुछ ऐसा है जो आपको कम से कम कुछ ज्ञान होना चाहिए - आपको पुस्तक के हर हिस्से को जानने की आवश्यकता नहीं है, लेकिन आपको इसका उपयोग उस भाषा की विशेषताओं के बारे में कम से कम एक विचार रखने के लिए करना चाहिए जो ' टी अक्सर इस्तेमाल किया जाता है। यह एक दिन उपयोगी हो जाएगा।
  • दूसरों के साथ सहयोग करें। दूसरों के साथ अन्य लोगों को अपना कोड पढ़ने और उनके कोड को पढ़ने के लिए एक परियोजना में शामिल हों। ओपन सोर्स आमतौर पर ऐसा करने का एक अच्छा तरीका है, हालांकि अन्य विकल्प भी हैं।

मेरे "करियर" से बात करते हुए मैंने PHP के साथ भी शुरुआत की और सी पढ़ना किताबें (मैं पीटर वैन डेर लिंडेन द्वारा "विशेषज्ञ सी प्रोग्रामिंग" की अत्यधिक अनुशंसा कर सकता हूं, जो दुर्भाग्य से प्रिंट से बाहर है) आप भाषा के शिष्टाचार की गहरी समझ रखते हैं और इस प्रकार आपको एक बेहतर प्रोग्रामर बनाते हैं। मुझे K& आर के प्रत्येक पृष्ठ को नहीं पता है, लेकिन मैंने इसका उपयोग करके कभी भी खेद नहीं किया और इसके साथ सहज महसूस किया (मुझे लगता है कि मैंने इसे पढ़ने के बजाय इसका इस्तेमाल किया - यह एक पाठ्य पुस्तक नहीं है बल्कि मेरी राय में एक संदर्भ है)।

0

शायद मैं एक आधुनिकतावादी हूं लेकिन यदि आप सी को सही तरीके से सीखने जा रहे हैं तो मैं के & आर से शुरू करने की अनुशंसा नहीं करता हूं। एक पुरातन मानक का अध्ययन क्यों करें? एक पुस्तक उठाओ जो आपको सी 99 मानक सिखाती है और उससे सीखती है। चूंकि आप पहले से ही थोड़ा परिचित हैं सी सी प्राइमर प्लस या कुछ इसी तरह से।

संबंधित मुद्दे