2010-12-12 7 views
10

Where should a veteran C programmer start in order to master Java? की शैली में, मैं आपको रिवर्स प्रश्न पूछता हूं। मेरे पास जावा और प्रोग्रामिंग में सामान्य रूप से बहुत अनुभव है, लेकिन मैं कुछ सी चुनना चाहता हूं (कुछ परियोजनाओं के लिए जो हैकिंग में दिलचस्पी रखते हैं)। क्या पिछली सीएस पृष्ठभूमि वाले लोगों के लिए एक "त्वरित और गंदे" मार्गदर्शिका बनाई गई है? मैं मुफ्त ऑनलाइन संसाधनों को प्राथमिकता दूंगा लेकिन किसी भी सुझाव की सराहना करता हूं।सी मास्टर मास्टर करने के लिए एक अनुभवी जावा प्रोग्रामर कहां से शुरू होना चाहिए?

+0

क्या आप वास्तव में सी चाहते हैं? सी ++ नहीं है? वैसे भी इसे यहां छोड़कर: http://www.horstmann.com/ccj2/ccjapp3.html http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B –

उत्तर

6

थोड़ी देर पहले, जोएल स्पॉल्स्की ने घोषणा की कि सी प्रोग्रामिंग all software developers के लिए महत्वपूर्ण थी। उस लेख में, वह Kernighan and Ritchie पुस्तक का संदर्भ देता है, जो सभी समय क्लासिक सी पुस्तक स्वीकार किया जाता है। हालांकि, उस पुस्तक का उपयोग कर सी प्रोग्रामिंग सिखाते हुए, यह आरामदायक छात्र के लिए एक ड्रैग है।

उसने कहा, यदि आप पहले से जावा में अनुभव कर चुके हैं, तो आप नहीं हैं।

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

This tutorial थोड़ा ले जाता है (खासकर जब एएनएसआई सी की तुलना में) लेकिन, आप वाक्य रचना पर सबसे तेजी से ब्रश-अप के लिए देख रहे हैं, यह भयानक नहीं है।

थोड़ा बुनियादी वाक्यविन्यास (जो आपको बहुत परिचित होगा) को देखते हुए, आपको सीधे C libraries पर जाने में सक्षम होना चाहिए। यही वह जगह है जहां आपको जिस वास्तविक कार्यक्षमता की आवश्यकता होगी, वैसे भी वैसे भी होगा। मुझे लगता है कि आप पाएंगे कि "मास्टर" सी के लिए आवश्यक अधिकांश सामग्री वास्तव में उन सहायक पुस्तकालयों में होगी।

पूर्णता के लिए, यदि आप एक वास्तविक संकलक की जरूरत है:

मेरा दिन काम में, मेरा विकास के वातावरण लिनक्स (फेडोरा 14) और Windows 7 के बीच विभाजित है दोनों ही मामलों में, मैं पर gcc का उपयोग अवसर जब मुझे सी कोड लिखने की जरूरत है। जबकि जीसीसी फेडोरा इंस्टॉलेशन में स्वीकार्य मानक है, विंडोज पक्ष पर आप MinGW या Cygwin चाहते हैं, इनमें से कोई भी आपको जीसीसी दे सकता है।

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

+1

"... आकस्मिक छात्र के लिए": मैं नहीं करता यह नहीं लगता कि सी आरामदायक छात्र, आकस्मिक प्रोग्रामर, या आरामदायक कुछ और के लिए सही भाषा है।सी आपके हाथ नहीं पकड़ता है, आपको हर समय गेंद पर होना होगा। –

+2

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

+0

मैं शायद ही जावा या डेडलॉक्स को रोमांचक कहूंगा। –

0

शायद एक अनुभवी डेवलपर के लिए मूल पक्ष पर थोड़ा सा, मुझे KN. द्वारा "C Programming - A Modern Approach" मिला। राजा काफी अच्छा होना है। यह भाषा के लिए एक सभ्य लेकिन पूर्ण परिचय है और आपको आवश्यक कुछ प्रमुख पुस्तकालयों की आवश्यकता है। मैंने पुस्तक के पहले संस्करण को पढ़ा; प्रदान किया गया लिंक दूसरे संस्करण के लिए है।

0

हालांकि यह पहले बहुत ही प्रारंभिक होगा, K&R पढ़ें और उदाहरण अभ्यास करें। वे थोड़ी देर के बाद बहुत चुनौतीपूर्ण हो जाते हैं और आपको संकेतक, structs और सी के अन्य पहलुओं का एक अच्छा समझ प्रदान करेंगे जो जावा से अलग हैं। हर अभ्यास के लिए समाधान ऑनलाइन मिल सकते हैं।

अपनी कक्षा CS107, प्रोग्रामिंग पैराडाइम्स के लिए स्टैनफोर्ड यूट्यूब व्याख्यान भी देखें। सभी व्याख्यान online, साथ ही असाइनमेंट और अन्य पाठ्यक्रम सामग्री उपलब्ध हैं।

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