importance - what is natural resources




हर प्रोग्रामर को पढ़ने के लिए एकल सबसे प्रभावशाली पुस्तक कौन सी है? (20)

यदि आप समय पर वापस जा सकते हैं और खुद को एक डेवलपर के रूप में अपने कैरियर की शुरुआत में एक विशिष्ट पुस्तक पढ़ने के लिए कह सकते हैं, तो यह कौन सी पुस्तक होगी?

मैं उम्मीद करता हूं कि यह सूची विविध होगी और चीजों की एक विस्तृत श्रृंखला को कवर करेगी।

खोज करने के लिए: ऊपरी-दाएं कोने में खोज बॉक्स का उपयोग करें। वर्तमान प्रश्न के उत्तर खोजने के लिए, पूछताछ का उपयोग inquestion:this । उदाहरण के लिए:

inquestion:this "Code Complete"

@ पेटर कूल्टन - आप नूथ को नहीं पढ़ते, आप इसका अध्ययन करते हैं।

मेरे लिए, और मेरे काम के लिए ... विशुद्ध रूप से कार्यात्मक डेटा संरचनाएं मन में कार्यात्मक भाषाओं के साथ सोचने और विकसित करने के लिए महान हैं।


जबकि मैं मानता हूं कि ऊपर दी गई कई पुस्तकें अवश्य पढ़ें (व्यावहारिक प्रोग्रामर, पौराणिक मानव-महीना, आर्ट ऑफ कंप्यूटर प्रोग्रामिंग और SICP तुरंत दिमाग में आते हैं), मैं थोड़ा अलग दिशा में जाना चाहता हूं और एक अनुशासन की सिफारिश करना चाहता हूं। Edsger Dijkstra द्वारा प्रोग्रामिंग करना भले ही यह 32 साल पुराना हो, लेकिन "वेरिफ़ेबिलिटी के लिए डिज़ाइन" पर जोर अत्यधिक प्रासंगिक है (भले ही "वेरिफ़िबिलिटी" का अर्थ "यूनिट टेस्ट" के बजाय "सबूत" हो)।


निश्चित रूप से सॉफ्टवेयर शिल्प कौशल

alt text http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg

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


पायथन भाषा मेरे लिए बहुत प्रभावशाली थी, काश मैंने ये किताब सालों पहले पढ़ी होती। पायथन भाषा की सुंदरता और सरलता ने वास्तव में प्रभावित किया कि मैंने अन्य भाषाओं में कोड कैसे लिखा।


प्रोग्रामिंग का अभ्यास। ब्रायन डब्ल्यू। कर्निघन, रॉब पाइक द्वारा।

शैली यहाँ दिखाया गया है उत्कृष्ट है - कोड सिर्फ खुद के लिए बोलती है, और पूरी किताब KISS सिद्धांत इस प्रकार है। व्यक्तिगत रूप से मेरी पसंद की भाषाएं नहीं हैं, लेकिन फिर भी मेरे लिए प्रभावशाली है।


प्रोग्रामिंग भाषाओं के आधारों की गहन समझ के लिए बेंजामिन सी पियर्स द्वारा प्रकार और प्रोग्रामिंग भाषा।


मार्टिन फाउलर की रीफैक्टरिंग: इम्प्रूविंग द डिज़ाइन ऑफ़ एक्सिस्टिंग कोड पहले ही सूचीबद्ध हो चुका है। लेकिन मैं इसका विस्तार करूंगा कि इसने मुझे क्यों प्रभावित किया है।

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


मुझे लगता है कि "द आर्ट ऑफ यूनिक्स प्रोग्रामिंग" एरिक एस रेमंड के रूप में एक उत्कृष्ट हैकर / शानदार दिमाग द्वारा एक उत्कृष्ट पुस्तक है, जो हमें सॉफ्टवेयर डिजाइन (मुख्य रूप से सादगी) के कुछ सिद्धांतों को समझने की कोशिश करती है। यह पुस्तक उन हर प्रोग्रामिंग के लिए जरूरी है जो यूनिक्स प्लेटफॉर्म के तहत एक परियोजना शुरू करने वाली है।


यहां एक उत्कृष्ट पुस्तक है जो व्यापक रूप से सराहना नहीं है, लेकिन गहरी अंतर्दृष्टि से भरा है: एजाइल सॉफ्टवेयर डेवलपमेंट: द कोऑपरेटिव गेम , एलिस्टेयर कॉकबर्न द्वारा।

इसमें क्या खास है? खैर, स्पष्ट रूप से सभी ने "एजाइल" शब्द सुना है, और ऐसा लगता है कि इन दिनों सबसे अधिक विश्वासियों हैं। आप मानते हैं या नहीं, हालांकि, चुस्त आंदोलन क्यों मौजूद है इसके पीछे कुछ गहरे सिद्धांत हैं। यह पुस्तक इन सिद्धांतों को सटीक, वैज्ञानिक तरीके से उजागर करती है और कलाकृत करती है। कुछ सिद्धांत हैं (btw, ये मेरे शब्द हैं, एलिस्टर के नहीं):

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

वहाँ भी बहुत कुछ है। अब मैं चुप हो जाऊंगा, लेकिन मैं अत्यधिक इस पुस्तक की सलाह देता हूं!


हैकर्स, स्टीवन लेवी द्वारा।

व्यक्तित्व और जीवन का तरीका पहले आना चाहिए। बाकी सब सीखा जा सकता है।


द न्यू ट्यूरिंग ओम्निबस http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg

वास्तव में अच्छी किताब। कंप्यूटर विज्ञान के सबसे महत्वपूर्ण क्षेत्रों का उच्च स्तर का स्वाद है। हां, सीएस! = प्रोग्रामिंग, लेकिन यह अभी भी हर प्रोग्रामर के लिए उपयोगी है।





चरम प्रोग्रामिंग समझाया: केंट बेक द्वारा गले लगाओ बदलें । जबकि मैं एक हार्डकोर XP-or-the-Highway की वकालत नहीं करता, वह सॉफ्टवेयर डेवलपमेंट को ले रहा है, काश मैं अपने करियर में बहुत पहले इस किताब के सिद्धांतों से परिचित हो चुका होता। यूनिट परीक्षण, रीफैक्टरिंग, सरलता, निरंतर एकीकरण, लागत / समय / गुणवत्ता / गुंजाइश - इनसे मैंने विकास को देखने के तरीके को बदल दिया। एजाइल से पहले, यह सभी डिबगर और परिवर्तन अनुरोधों के डर के बारे में था। एजाइल के बाद, उन राक्षसों के रूप में बड़े नहीं थे।




Systemantics: कैसे सिस्टम काम करते हैं और विशेष रूप से वे कैसे विफल होते हैं । इसे सस्ते में इस्तेमाल करें। लेकिन जब तक आप कुछ विफल परियोजनाओं पर काम नहीं करते, तब तक आपको हास्य नहीं मिल सकता है।

पुस्तक की सुंदरता कॉपीराइट वर्ष है।

संभवतः पुस्तक में प्रस्तुत सबसे गहरा "कानून":

मौलिक विफलता-मोड प्रमेय (एफएफटी): कॉम्प्लेक्स सिस्टम आमतौर पर विफलता मोड में काम करते हैं।

यह विचार कि सॉफ़्टवेयर के किसी भी टुकड़े में विफल भाग हैं जो अन्य भागों में विफलताओं या अन्य भागों में मान्यताओं द्वारा नकाबपोश हैं। थेरैक -25 विकिरण मशीन पर एक वास्तविक दुनिया का उदाहरण देखें, जिसके सॉफ्टवेयर की खामियों को हार्डवेयर विफलताओं द्वारा मुखौटा किया गया था। जब हार्डवेयर विफलताओं को हटा दिया गया था, तो सॉफ्टवेयर दौड़ की स्थिति जो उन सभी वर्षों में अनिश्चित रूप से चली गई थी, जिसके परिणामस्वरूप मशीन ने 3 लोगों को मार डाला।



पिछले साल मैंने कई कक्षाएं लीं। मैंने पढ़ा

द इनोवेटर की दुविधा (विघटनकारी तकनीक)
पौराणिक मानव माह (सॉफ्टवेयर का प्रबंधन)
चैस (स्टार्टअप) को पार करना
डेटाबेस प्रबंधन प्रणाली, गाय पुस्तक
प्रोग्रामिंग सी #, द ऑस्ट्रिक बुक
शुरुआत आईफोन डिवेलपर्स ने की, GRAPEFRUIT बुक

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