क्या आप कभी चिंता करते हैं कि आप इस बात से अधिक चिंतित हैं कि वास्तव में आप जो निर्माण कर रहे हैं उसके बजाय कुछ कैसे बनाया गया है?


11

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

हालांकि, हाल ही में मुझे लगता है कि मैं वास्तव में उन साधनों के बारे में अधिक जानता हूं जो मैं उपयोग करता हूं कि वास्तव में सफल सॉफ़्टवेयर को कैसे लागू किया जाए।

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

  • पारस्परिक प्रभाव वाली डिज़ाइन
  • प्रयोगकर्ता का अनुभव
  • विपणन

मुझे यह थोड़ा सा मिल गया है कि मैंने उन लोगों से सीखा है, जिनके साथ मैंने काम किया है और जिन परियोजनाओं पर मैंने काम किया है, लेकिन मुझे ऐसा नहीं लगता है कि मैं इन कौशलों का "मालिक" हूं।

क्या मैं सही हू? क्या मुझे इन कौशलों को और विकसित करने की कोशिश करनी चाहिए, या ये उन लोगों के लिए छोड़ देना चाहिए जो करियर के लिए ऐसा करते हैं?

आप यह कैसे सुनिश्चित करते हैं कि आप किसी चीज में बहुत अधिक बंधे नहीं हैं और आप यह सुनिश्चित करते हैं कि आप "अपने उपयोगकर्ताओं को भयानक बनायें"?

क्या किसी को प्रोग्रामिंग के दृष्टिकोण से इन कौशल को सीखने के लिए अच्छे संसाधनों का पता है?


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

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

2
यह मुझे लगता है कि आप एक परिणाम-उन्मुख कार्यकर्ता के बजाय एक प्रक्रिया-उन्मुख कार्यकर्ता होने की राह पर हैं। आप इस प्रक्रिया पर ध्यान केंद्रित करते हैं क्योंकि आप इससे परिचित हैं। प्रक्रिया को जाने देना और परिणामों पर ध्यान केंद्रित करना सीखें। जैसा कि आपने कहा, डिज़ाइन पैटर्न और सामान केवल उपकरण हैं: आपकी मुख्य चिंता इस बात पर होनी चाहिए कि आप जो उत्पाद बना रहे हैं वह किस समस्या का समाधान करेगा।
whatsisname

1
@whatisname, यह इतना आसान नहीं है, निश्चित रूप से "परिणाम" ऐसा लग सकता है कि इस तरह के और अनुप्रयोग कुछ के लिए बहुत अच्छा काम करता है 1.0 कुछ एड-हॉक कोड के साथ एक साथ हैक किया गया था, लेकिन फिर 2.0 के लिए एक बड़े बदलाव की आवश्यकता है, अच्छी तरह से आप अभी भी हैं पिछले प्रयास के एक "परिणाम" के साथ अटक जाना जो फिर से काम करने की आवश्यकता होगी .. मुझे लगता है कि यह वास्तव में एक ऐसी स्थिति है जहां एक उपयोगकर्ता के दृष्टिकोण से एक आवेदन की कार्यक्षमता केवल हिमशैल का टिप है और आप कर सकते हैं ' t "परिणाम" के लिए बस इतना ही विवश करें
प्रोग्राममेव

@whatisname यदि यह एक उत्तर होता है तो मैं इसे स्वीकार कर लेता, लेकिन मैं आपसे रिक भी सहमत हूँ। मैं जो करने की कोशिश कर रहा हूं वह एक ऐसा बिंदु है जहां कौशल के 2 सेटों में से एक संतुलन में है, इसलिए मैं सबसे अच्छा उपकरण और तकनीकों का उपयोग करते समय एक महान उपयोगकर्ता अनुभव को डिजाइन करने में सक्षम हूं। यह अभी लगता है कि एक या दूसरे पीड़ित है। मुझे दोनों कौशल सेट दूसरी प्रकृति बनाने की आवश्यकता है।
रोब स्टीवेन्सन-लेगेट

जवाबों:


5

मेरी थोड़ी सी सलाह: जितना संभव हो अपने उपयोगकर्ताओं के साथ बात करें। मुझे नहीं पता कि आप एक बड़ी कंपनी में हैं और अपने उपयोगकर्ताओं की तुलना में एक अलग महाद्वीप पर हैं, या यदि आप एक फ्रीलांसर-टाइप स्थिति में हैं, लेकिन यदि संभव हो तो, बस अपने उपयोगकर्ताओं के साथ बात करें।

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

मैं एक छोटी सी (~ 50 व्यक्ति) कंपनी में काम करता हूं, और मुझे किसी के घन तक चलना और उनके द्वारा बनाई गई नवीनतम चीज़ के बारे में बात करना पसंद है। अपनी नौकरी से मुझे जो सबसे अच्छी अनुभूति हुई है, वह यह है कि जब मैं उन्हें उनके काम के बारे में बात करते हुए सुन पाऊंगा, और कुछ ऐसा सुझाऊंगा जिससे एक ऐसी समस्या का समाधान हो जाए जिसके बारे में उन्हें कभी पता ही नहीं चला कि तकनीकी समाधान भी मौजूद हो सकता है। यह संभव नहीं होगा यदि मैं उनके व्यवसाय को नहीं समझता था और उनके साथ आकस्मिक बातचीत नहीं कर सकता था।


उपयोगकर्ताओं के साथ बात करने के लिए +1 - एक उपयोगी उत्पाद बनाने के लिए महत्वपूर्ण
गैरी रोवे

5

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

छोटी कंपनियों के साथ, आप कई टोपी पहन सकते हैं (हालांकि मुझे यकीन नहीं है कि विपणन इस सूची में क्यों है जब तक आप अपना खुद का उत्पाद बेचने का इरादा नहीं रखते)।

बड़ी कंपनियों में, वे ऐसे लोग होते हैं जो इन चीजों पर विशेष रूप से ध्यान केंद्रित करते हैं।

तो वास्तव में, यह सब आपके बारे में है जहाँ आप खुद को जाते हुए देखते हैं, और संभवतः अपने लिए और अधिक दरवाजे खोलते हैं।


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

2

कोड की प्रत्येक पंक्ति के लिए आप लिखते हैं कि आप एक बग का मौका देते हैं।

तो, सबसे अच्छे डिजाइन शुरू किए गए कोड की मात्रा को कम करते हैं - शायद DRY (डोंट रिपीट योरसेल्फ) सिद्धांत के माध्यम से। हालाँकि, स्टार्टअप्स YAGNI (You Ain’t Gonna Need It) दृष्टिकोण का पक्ष लेते हैं , जो MVP (न्यूनतम व्यवहार्य उत्पाद) की ओर जाता है।

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

कुछ पठन सामग्री

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


1

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

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


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

1

मैं एक तकनीकी युक्ति लिख सकता हूं जो आपके मोज़े को उड़ा देगा जिसमें मैं निचोड़ सकता हूं।

यह कथन मुझे विश्वास दिलाता है कि आपको सॉफ्टवेयर विकास के अन्य पहलुओं पर काम करने की आवश्यकता है।


उस में विडंबना की मात्रा थी :) शायद सवाल में बहुत अच्छी तरह से नहीं आया था।
रोब स्टीवेन्सन-लेगेट

@ रब, ख़ुशी से आपने कहा कि, मेरे पास बड़ी लाल चमकती पैटर्न की गालियाँ थीं जो सभी जगह बंद थीं।
ओदोदो

1

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

यदि आपको अपनी नौकरी पर कुछ क्षेत्रों में पर्याप्त चुनौती नहीं मिल रही है, तो कुछ दिलचस्प करने के लिए घर पर अपना प्रोजेक्ट शुरू करें। या किसी ओपन सोर्स प्रोजेक्ट से जुड़ जाएं।


1

नहीं, मैं अपने काम के बारे में चिंता नहीं कर रहा हूँ कि मैं क्या निर्माण कर रहा हूँ, बल्कि इसे बनाने के लिए अपने ग्राहक / नियोक्ता द्वारा निर्धारित की गई युक्ति के लिए। वे पहले से ही जानते हैं कि वे क्या चाहते हैं और इसे ठीक से लागू करने के लिए मेरे ऊपर निर्भर है। मौका मिलने पर मैं सलाह दूंगा कि क्या मैं बता सकता हूं कि वे सॉफ्टवेयर में फीचर डालने के सबसे अच्छे तरीके के बारे में सुनिश्चित नहीं हैं

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


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