কী ভুল হতে পারে তার বর্ধিত জ্ঞানের কারণে ধীর সমস্যার সমাধান করা [বন্ধ]


450

এটি কিছু সময়ের জন্য আমাকে কষ্ট দিচ্ছে, এবং আমি অন্যান্য পেশাদারদের ইনপুটটির সত্যই প্রশংসা করব।

সংক্ষিপ্ত পটভূমি: আমি যখন প্রোগ্রামিং শুরু করি যখন আমার বাবা-মা 1988 সালে আমাকে আমার প্রথম কম্পিউটারটি কিনেছিলেন (14 বছর বয়সে, এখন আমার বয়স 39)। শেষ পর্যন্ত 1997 সালে পেশাদার প্রোগ্রামার হওয়ার আগে আমি বেশ কয়েকটি ক্যারিয়ারের পথ অনুসরণ করেছিলাম L লেট ব্লুমার, সম্ভবত, তবে এটিই ছিল। আমি এখনও আমার পছন্দ নিয়ে খুশি, আমি প্রোগ্রামিং পছন্দ করি এবং আমি যা করি তাতে নিজেকে ভাল বলে বিবেচনা করি।

ইদানীং, আমি লক্ষ্য করছি যে আমি যত বেশি অভিজ্ঞতা অর্জন করব তত বেশি সময় আমাকে প্রকল্পগুলি সম্পূর্ণ করতে, বা কোনও প্রকল্পের কিছু নির্দিষ্ট কাজগুলি লাগবে। আমি এখনও বুদ্ধিমান না। এটি ঠিক যে আমি অনেকগুলি বিভিন্ন উপায়ে দেখেছি যাতে জিনিসগুলি ভুল হতে পারে। এবং আমি যে সম্ভাব্য সমস্যাগুলি এবং গ্যাটাচসগুলি সম্পর্কে জানি এবং মনে রাখি সেগুলি আরও বেশি করে পাচ্ছে।

তুচ্ছ উদাহরণ: এটি কেবল "ঠিক আছে, এখানে একটি ফাইল লিখুন" ব্যবহৃত হত। এখন আমি অনুমতি, লকিং, কনক্যুরেন্সী, পারমাণবিক ক্রিয়াকলাপ, ইন্ডিয়ারেশন / ফ্রেমওয়ার্কস, বিভিন্ন ফাইল সিস্টেম, একটি ডিরেক্টরিতে ফাইল সংখ্যা, অনুমানযোগ্য টেম্প ফাইলের নাম, আমার পিআরএনজিতে এলোমেলো মানের গুণমান, বিদ্যুতের ঘাটতি যে কোনওর মধ্যে অপারেশন, আমি যা করছি তার জন্য একটি বোধগম্য এপিআই, সঠিক ডকুমেন্টেশন ইত্যাদি ইত্যাদি etc

সংক্ষেপে, সমস্যাগুলি দীর্ঘকাল থেকেই "আমি এটি কীভাবে করব" থেকে "এটি করার সর্বোত্তম / নিরাপদতম উপায়" এ চলে এসেছি।

ফলশ্রুতিটি হ'ল নবজাতকের চেয়ে প্রকল্প শেষ করতে আমার বেশি সময় লাগে। আমার সংস্করণটি রক শক্ত হতে পারে, এবং এটি কীভাবে তৈরি করতে হয় তা আমি জানি তবে এটি আরও বেশি সময় নেয়।

উপরের "ফাইল তৈরি করুন" উদাহরণটি কেবল এটিই ছিল। বাস্তব কাজগুলি স্পষ্টতই আরও জটিল, তবে এই জাতীয় জেনেরিক প্রশ্নের জন্য কম উপযুক্ত। আমি আশা করি আপনি বুঝতে পেরেছেন আমি এই কোথায় যাচ্ছি। দক্ষ অ্যালগরিদম নিয়ে আসতে আমার কোনও সমস্যা নেই, আমি গণিত পছন্দ করি, আমি জটিল বিষয় উপভোগ করি, ঘনত্ব নিয়ে আমার কোনও অসুবিধা নেই। আমি মনে করি অভিজ্ঞতার সাথে আমার সমস্যা আছে এবং ফলস্বরূপ ত্রুটির একটি ভয় (অন্তর্নিহিত বা বহির্মুখী) আছে।

আমি প্রতিদিন প্রায় দুই ঘন্টা নতুন উন্নয়ন, নতুন কৌশল, ভাষা, প্ল্যাটফর্ম, সুরক্ষা দুর্বলতা ইত্যাদি পড়তে ব্যয় করি। কনড্রামটি হ'ল আমি যত বেশি জ্ঞান অর্জন করব ততই প্রকল্পগুলি সম্পন্ন করতে আমি ধীর।

এটার সাথে তুমি কিভাবে চুক্তি করলে?


126
মূল পাঠটি হ'ল: প্রয়োজনীয়তার সাথে আঁকুন, আরও বেশি নয় । এইভাবে আপনি এমন বৈশিষ্ট্যগুলি প্রয়োগ করার চেষ্টা করবেন না যা প্রয়োজন হয় না।
mouviciel

19
আপনি জলপ্রপাতের মডেলের পরিবর্তে বিকাশের চতুর পদ্ধতিটি বিবেচনা করুন। প্রথমে বড় জিনিস বিতরণ করুন এবং পুনরায় পুনরুদ্ধার করুন deliver এটি নতুন ধারণা তবে ঝুঁকি এবং ব্যয় হ্রাস করতে সহায়তা করে।
সতীশ

23
দৃষ্টিভঙ্গিগুলির সংক্ষিপ্তসার এবং আমার যোগ করা (আপনি যদি মিস হন): আপনার এমন প্রকল্পগুলি বিবেচনা করা উচিত যা বেশি মিশন-সমালোচক (ব্যবসায়িক ভিত্তিক, সুরক্ষা অনুসারে নয়), বা বৈশিষ্ট্যের nessশ্বর্যের চেয়ে মানের (নিম্ন-ত্রুটি) জন্য উচ্চতর প্রয়োজনীয়তা রয়েছে। অন্য কথায়, এমন প্রকল্পগুলির সন্ধান করুন যেখানে আপনার সর্বোত্তম দক্ষতা সর্বাধিক মূল্যবান।
rwong

13
আপনি যখন কোড কোয়ালিটি সম্পর্কে যে কোনও বই পড়েন তবে প্রথমে ভাল কোড তৈরি করতে আরও বেশি দাম পড়তে পারে যখন আপনি রক্ষণাবেক্ষণের ক্ষেত্রে ফ্যাক্ট করেন একবার দীর্ঘমেয়াদে এটির জন্য কম খরচ হয়।
জেমস স্নেল

6
"সবচেয়ে সহজ কাজটি করুন যা সম্ভবত কাজ করতে পারে" " একবার আপনি এটি সম্পন্ন করার পরে, আপনি অন্য কোনও বিষয়ে উদ্বিগ্ন হওয়ার দরকার আছে কিনা তা স্থির করুন।
ওয়েইন ওয়ার্নার

উত্তর:


268

আপনি প্রকল্পগুলি সম্পন্ন করতে কোনও ধীর গতির নন। পূর্বে, আপনি ভেবেছিলেন যে আপনার আধ্যাত্মিক প্রকল্পগুলি সত্যই যখন ছিল না done আপনার এই গুণটি ক্লায়েন্টদের কাছে বিক্রি করা উচিত।

"এই সংস্থাটি এটি দ্রুত এবং সস্তার হয়ে উঠতে পারে, তবে এটি কি সত্যিই সম্পন্ন হয়েছে? বা আপনি বছরের পর বছর ধরে বাগের শিকার করবেন?"

এর বাইরে, আপনাকে পুরানো প্রথাটি জানতে এবং গ্রহণ করতে হবে: "পারফেক্ট হ'ল শত্রু" "


112
আমাকে 'ভাল, দ্রুত, সস্তা, দুটি বাছাই'র কথা মনে করিয়ে দেয় - যখন আপনি কম জানতেন আপনি' ভাল 'এর উপর বলি দিচ্ছিলেন, এবং এখন যে আপনি আরও জানেন, আপনি' রোজা'র উপর কোরবানি দিচ্ছেন।
সেভেনসিয়াট

10
@ নিল কিছুই বাগ মুক্ত হতে পারে না। সর্বদা একটি সমস্যা থাকবে, তারা কেবল আরও ছোট বা আরও জটিল হবে। আদর্শভাবে ওপিতে এমন একটি চিহ্ন পাওয়া উচিত যেখানে তিনি পর্যাপ্ত পরিমাণে সম্পন্ন করছেন এবং তার গুণমান নিয়ে খুশি হওয়ার জন্য কয়েকটি যথেষ্ট ত্রুটি
রেখেছেন

10
@ নীল "সময়মতো। বাজেটে। মঙ্গল গ্রহে। দু'জনকে বাছাই করুন।"
ড্যান নীলি

5
@ লিওনার্দো: না, টেলাস্টিনের ফর্মটি সঠিক (এবং এটি বেশ পুরনো একটি বক্তব্য । এছাড়াও YAGNI দেখুন এবং "এটি যদি কাজ করে তবে এটি ঠিক করবেন না"
মিকোয়াক

3
এই উত্তর বুলশিট। এগিয়ে যান, চেষ্টা করুন এবং একটি সম্ভাব্য ক্লায়েন্টকে বলুন যে আপনি এটি 20K এর পরিবর্তে 40K এর জন্য করবেন তবে আরও 10 গুণমানের মান এবং নির্ভরযোগ্যতার সাথে। তারা আপনাকে এটি বলবে: "আমার বাজেট 20 কে এবং আমার সেই মানের দরকার নেই"। এক পর্যায়ে আপনাকে মেনে নিতে হবে যে 99% ক্লায়েন্ট সত্যই গুণমানের বিষয়ে চিন্তা করে না এবং যে কোনও মানের রয়েছে তা আপনার ব্যক্তিগত বিনিয়োগ হবে।
মর্গ

179

মনে হচ্ছে আপনার অন্ধকার পক্ষের সাথে যোগ দেওয়ার সময়: ম্যানেজমেন্ট।

আমি আপনাকে প্রোগ্রামিং ছেড়ে ম্যানেজার হওয়ার পরামর্শ দিচ্ছি না। তবে মনে হচ্ছে আপনি যে অভিজ্ঞতাটি উদ্ধৃত করেছেন এখন অবধি প্রযুক্তিগত প্রকৃতির been কোনও ফাইল লেখার সহজ ক্রিয়াকলাপে, আপনি 10 টি বিভিন্ন দিক সম্পর্কে ভাবতে পারেন যা কম পরিপক্ক বিকাশকারী কখনই বিবেচনা করবেন না। অগত্যা খারাপ জিনিস নয়, তবে ...

অন্ধকার দিকটি বর্তমান মান সম্পর্কে সমস্ত। এটি সর্বোচ্চ লাভের জন্য সর্বনিম্ন বিনিয়োগ করা (ব্যয়-বেনিফিট বিশ্লেষণ) সম্পর্কে। ব্যবসায়ের সমস্ত কিছুতে এটি আমার কতটা ব্যয় করতে পারে তা সাফল্য, সাফল্যের সম্ভাবনা, ব্যর্থতার সম্ভাবনা, দর্শনীয় ব্যর্থতার সম্ভাবনা এবং সম্ভাব্য লাভ ils অংকটি কর; সেই অনুযায়ী কাজ.

এটি যখন আপনি একজন বিকাশকারী হন ঠিক তেমন কাজ করে: অনুমতি এবং নামের সংঘর্ষকে অগ্রাহ্য করে একটি অস্থায়ী ফাইল তৈরি করুন - 5 মিনিট। নেট লাভ, দলের বাকি অংশগুলি ফাইলের উপস্থিতির উপর নির্ভর করে যে কোনও কোডে কাজ শুরু করতে পারে। এটি কি নিখুঁত সমাধান? একেবারে না. এটি কি আপনাকে 99%, 95%, সম্ভবত 90% পাবে? হ্যাঁ, এটা সম্ভবত হবে।

আরও একটি প্রশ্ন জিজ্ঞাসা করুন: প্রযুক্তিগত aboutণ সম্পর্কে আপনি কেমন অনুভব করেন? কিছু লোক মনে করে এটি অবশ্যই নির্মূল করা উচিত। আমি মনে করি people লোকেরা ভুল। ব্যবসায়ের মতো, প্রযুক্তিগত debtণ আপনাকে তাড়াতাড়ি কিছু সরবরাহ করার জন্য "নগদ" বা "সময়" ধার নিতে দেয়। আরও ভাল কি: 2 বছরের মধ্যে একটি নিখুঁত সমাধান বা একটি গ্রাহক 4 মাসের মধ্যে ব্যবহার করতে এবং কিনতে পারে এমন একটি সম্পূর্ণ হ্যাক? প্রতিটি পরিস্থিতি আলাদা, তবে কিছু পরিস্থিতিতে যদি আপনি 2 বছর অপেক্ষা করেন তবে আপনার গ্রাহক ইতিমধ্যে আপনার প্রতিযোগিতায় সাইন আপ করবেন।

মূলটি হ'ল প্রযুক্তিগত debtণ একইভাবে পরিচালনা করা, যাতে একটি ভাল পরিচালিত ব্যবসা আর্থিক debtণ পরিচালনা করে। আপনি যদি যথেষ্ট পরিমাণে গ্রহণ না করেন তবে আপনি বিনিয়োগের ক্ষেত্রে সর্বোত্তম রিটার্ন পাচ্ছেন না। আপনি যদি খুব বেশি গ্রহণ করেন তবে আগ্রহ আপনাকে মেরে ফেলবে।

সুতরাং আমার পরামর্শ: আপনি নিজের সার্বিকতা সর্বাধিক না করে নিজের মানকে সর্বাধিকতর করছেন কিনা তার উপর ভিত্তি করে আপনার কাজের মূল্যায়ন শুরু করুন। এবং আপনি যদি এটি অনুশীলন করেন তবে আপনি একই প্রযুক্তি ব্যবহার করবেন যা আপনি ইতিমধ্যে আপনার প্রযুক্তিগত ক্ষেত্রে বিকাশ করেছেন।

পার্শ্ব নোট হিসাবে, আমি সম্প্রতি পমোডোরো কৌশলটি করা শুরু করেছি এবং এটি অনেক সহায়তা করেছে। কোনও স্পর্শকের স্পর্শকর্তা না গিয়ে, স্বল্প সময়ের ব্যবধানে মনোনিবেশ করুন এবং তারপরে ভবিষ্যতের কাজ / গবেষণার জন্য পোমোডোরোস বরাদ্দ করুন। আমি আশ্চর্যজনক যে আমি কতবার একটি বিষয় নিয়ে গবেষণা করার জন্য একটি নোট দিয়েছিলাম তবে সময়টি আসার এক ঘন্টা পরে আমি মনে মনে বলেছিলাম, "আমার সময়কে নিয়ে আমি আরও কমপক্ষে আরও তিনটি জিনিস করতে পারি যা এখন আরও মূল্যবান।"


9
সুতরাং আপনার মতে, ইচ্ছাকৃতভাবে ততক্ষণ বিরল হওয়ার পরে ততক্ষণে বাগ তৈরি করা গ্রহণযোগ্য?
স্কাই

87
@ এসএসই - আপনি আপনার যুদ্ধ বাছাই। আমি এই শিল্পে 15 বছর ধরে আছি এবং আমি আজ পর্যন্ত কাজ করা 3 টি সংস্থায় একটি রিলিজ দেখিনি, এটি 0 টি বাগ সহ প্রেরণ করা হয়েছে। এটি কেবল আসল বিশ্বে ঘটে না। আমি বলছি না আপনি ইচ্ছাকৃতভাবে ভাঙা কোডটি প্রবর্তন করেছেন তবে এখানে
পর্যাপ্ততা

25
"ইচ্ছাকৃতভাবে" একটি বাগ তৈরি করার অর্থ বাগটি নিজেই ইচ্ছাকৃত ছিল - যা সম্ভবত কোনও বাগ বা অসঙ্গতির সামঞ্জস্যতা বা নির্দিষ্ট অস্তিত্ব সম্পর্কে সচেতন হওয়ার মতো বিষয় নয়। আমার একটি এইচটিএমএল 5 অ্যাপ্লিকেশন রয়েছে যা আইআই 6 এ ঠিক কাজ করে না, আমি এটি সম্পর্কে অবগত রয়েছি, এমনকি আমি সন্দেহ করেছিলাম যে এটি তৈরির সময় এমনটি ঘটবে - এটি ঠিক "এই বিষয়গুলি যারা আপত্তি করে না, এবং যারা মনে করেন তারা কিছু যায় আসে না "। আপনি জেনেশুনে এমন একটি সেতু তৈরি করতে পারেন যা পারমাণবিক আক্রমণকে প্রতিহত করবে না এবং এটি ঠিক আছে।
ব্রায়ানএইচ

27
প্রযুক্তিগত onণ গ্রহণের জন্য +100। ওপি-র মতো আমিও সমস্ত প্রযুক্তিগত debtণ দূর করার চেষ্টা করছি been প্রযুক্তিগত debtণ জরিমানা না হওয়া পর্যন্ত আমি কখনই এই ধারণাটি বিবেচনা করি নি, যতক্ষণ না সুদ আপনাকে হত্যা করতে শুরু করে। এখন আমি দেখতে পাচ্ছি যে theণটি হ্রাস করার চেয়ে পরিচালনা করা আরও গুরুত্বপূর্ণ। আমি আগে এই শর্তে এটি কখনই ভাবিনি। (বিটিডব্লিউ আমি
পমোডোরো কৌশলটিও

6
এই উত্তরটি আমার নিজের অভিজ্ঞতার ঘনিষ্ঠভাবে আয়না দেয় এবং প্রযুক্তিগত onণ গ্রহণ করে। ইচ্ছাকৃতভাবে এটি তৈরির চেয়েও সহজ, জুনিয়র কর্মীদের হাতে কাজ অর্পণ করার মাধ্যমে, আপনি প্রাকৃতিকভাবে technicalণ নিয়ে শেষ করেন, যা পরে ঠিক করা উচিত, প্রক্রিয়াটিতে তাদের শিক্ষিত করে তোলা। মূলত আপনি এই পর্যায়ে পৌঁছানোর পরে, আপনার অবশ্যই ট্রেডঅফস সম্পর্কে শেখার জন্য বিনিয়োগ করা উচিত, এবং debtণ গ্রহণের শর্তে ভাবেন যা পরে অবশ্যই পরিশোধ করতে হবে। এটি কেবলমাত্র আপনার একমাত্র জুনিয়র কর্মীদের হাতে কাজ করা উচিত, এবং আপনি যা পান তা নিম্নমানের হলেও আপনি একাই আপনার পক্ষে অসম্ভব বলে পৌঁছে দিতে পারেন।
স্প্লিনটারলেলিটি

94

আমার অনেক বছর আগে (সম্ভবত) একই সমস্যা ছিল, এটি কয়েক বছর ধরে স্থায়ী হয়েছিল এবং আমি এটি অতিক্রম করেছি। সুতরাং আমি কীভাবে তা অর্জন করেছি তা জানার জন্য আপনার আগ্রহের বিষয় হতে পারে, এমনকি আমার উপায়টি আপনার ক্ষেত্রেও প্রযোজ্য হবে তা নিশ্চিত না হলেও।

আপনার এখানেও একবার নজর রাখা উচিত: সফটওয়্যার ইঞ্জিনিয়ারিংয়ের দক্ষতার সাতটি পর্যায় এটি দেখায় যে উত্পাদনশীলতা দক্ষতার স্তরের একটি পার্শ্ব প্রতিক্রিয়া great এটি সম্ভবত আপনি বর্তমানে যে প্রযুক্তি ব্যবহার করছেন তার উপর পর্যায়ে 3 এবং 4 ম স্তরের মাঝে এখনও রয়েছেন (দক্ষতার দক্ষতা প্রযুক্তির উপর নির্ভর করে, আপনি এখনও অন্য কিছু শিখতে গিয়ে কিছু প্রযুক্তিতে দক্ষ হতে পারেন)।

এখন আমি জীবনী সাক্ষ্য দিয়ে শুরু করি।

কিছুটা প্রসঙ্গে। আমি 47. আমি 80 এর দশকে 12 এ প্রোগ্রামিং শুরু করি। হাই স্কুলে থাকাকালীন আমি খণ্ডকালীন পেশাদার গেম প্রোগ্রামার হিসাবেও কাজ করেছি। মূলত এটি আমাকে এত টাকা পেল না, হার্ডওয়্যার কিনতে কেবল যথেষ্ট, তবে আমি এটি উপভোগ করেছি এবং অনেক কিছু শিখেছি। 18-এ আমি কম্পিউটার বিজ্ঞানের একটি আনুষ্ঠানিক শিক্ষা শুরু করি।

ফলস্বরূপ যখন আমি 20 বছর বয়সী হয়েছিলাম, যখনই কোনও প্রোগ্রামিংয়ের কাজ শুরু করি তখন প্রদত্ত সমস্যাগুলি সমাধান করার অনেকগুলি উপায় আমি জানতাম এবং হাতে থাকা অনেকগুলি পরামিতি এবং সমস্যাগুলি এবং কোনও পদ্ধতির ত্রুটিগুলি এবং সীমা সম্পর্কে খুব সচেতন ছিল।

কিছু পয়েন্টে (প্রায় 26 বছর বয়সী বলুন) কোনও প্রোগ্রাম লিখতে আমার পক্ষে সত্যিই কঠিন হয়ে পড়েছিল। এমন অনেকগুলি সম্ভাবনা খোলা ছিল যে আমি তাদের মধ্যে আর পছন্দ করতে পারিনি। কয়েক বছরের জন্য (এটি 6 তৈরি করুন) এমনকি আমি প্রোগ্রামিং বন্ধ করে দিয়েছিলাম এবং প্রযুক্তিগত সংবাদ-লেখক হয়েছি।

তবুও আমি কখনই প্রোগ্রাম করার চেষ্টাটি পুরোপুরি বন্ধ করিনি। এবং এক পর্যায়ে এটি ফিরে এসেছিল। আমার কাছে চাবিকাঠিটি ছিল চরম প্রোগ্রামিং, আরও সুনির্দিষ্ট সরলতার নীতি: "সর্বাধিক জিনিসটি লিখুন যা সম্ভবত কাজ করতে পারে"।

মূলত আমি নিজেকে কোডের দক্ষতা (এটি আমার প্রধান রোডব্লক ছিল, অদক্ষ নকশাগুলি এড়ানো) সম্পর্কে যত্নবান না হওয়ার জন্য জোর করেছিলাম, তবে কেবল সহজতম পথে যেতে পারি। ত্রুটি উত্থাপনের পরীক্ষাগুলি লেখার পরে আমি ত্রুটি সম্পর্কে কম যত্ন নিতে এবং পরবর্তী সময়ে ত্রুটি পরিচালনা করতে বিলম্বিত করেছিলাম (আসলে এটি টিডিডি)।

লেখার সময় আমি এমন কিছু শিখেছি। আমি কখন লিখতে জানি না, বা আমি জানতাম যে আমি কী লিখছি তা খারাপ । শুধু যাও. আসলে খারাপ জিনিস লিখুন। আমি শেষ পর্যন্ত এটি সংশোধন করব। বা যদি এটি সত্যিই খারাপ হয় তবে এটি মুছে ফেলুন এবং এটি আবার লিখুন, তবে দু'বার এমন জিনিস লেখা দ্রুত হয় যে কোনও কিছু প্রথমবারের মতো নিখুঁত লেখায়।

সত্যই এটি খুব সম্ভবত যে আপনি বিশ্বাস করেন যে কোডটি প্রথম লেখার ক্ষেত্রে ভাল তা সত্যই খারাপ হিসাবে তত উন্নতি প্রয়োজন।

আপনি যদি সরলতার পথ অনুসরণ করেন তবে আপনি একটি যুক্ত বোনাসও পাবেন। আপনি সহজেই প্রাথমিক ডিজাইন / কোডিং সরিয়ে / পরিবর্তন করতে স্বীকার করেন। আপনি আরও নমনীয় মন পেতে।

আমি কোডে একটি অস্থায়ী মন্তব্য করার অভ্যাসেও অভ্যস্ত হয়েছি, আমি এখন কী করছি না তা ব্যাখ্যা করে এবং কোডটি যখন ব্যবহারের ক্ষেত্রে কার্যকর হবে তখন পরে করার ইচ্ছা নিয়েছিলাম।

আমি এক্সপি অনুশীলনগুলিকে অভ্যন্তরীণ করতে অন্যান্য প্রোগ্রামারদের সাথে একটি এক্সপি ডোজোতে একটি অনুশীলিত কোড কাটাসেও উপস্থিত হয়েছি। এটা সাহায্য করেছিল. এটি উপরোক্ত আনুষ্ঠানিক পদ্ধতিগুলি সহজাত করে তোলে। জুড়ি প্রোগ্রামিংও সহায়তা করেছিল। তরুণ প্রোগ্রামারদের সাথে কাজ করা কিছুটা গতি দেয়, তবে অভিজ্ঞতার সাথে আপনিও দেখতে পাবেন যে তারা কী করে না। উদাহরণস্বরূপ, আমার ক্ষেত্রে আমি প্রায়শই তাদের অত্যধিক জটিল ডিজাইনে জড়িত থাকতে দেখি এবং আমি জানি ডিজাইনের দুঃস্বপ্ন যা হতে পারে। যেভাবে চলে গেছে। ওটা করেছিলাম. সমস্যা ছিল।

আমার জন্য প্যারামাউন্ট পয়েন্টটি প্রবাহকে রাখছে। দ্রুত হওয়া সত্যিই প্রবাহ বজায় রাখতে সফল হয়।

এখন আমি একজন পেশাদার প্রোগ্রামার হিসাবে ফিরে এসেছি এবং আমি বিশ্বাস করি যে আমি কী করছি তার আরও গভীর বোঝার সাথে আমি আরও উন্নত এবং দ্রুত। টিডিডি অনুশীলন করা আমি যখন অল্প বয়স্ক ষাঁড় ছিলাম তখন থেকে আমি কিছুটা ধীর হতে পারি (তবে কিছুই পরীক্ষা করা হয়নি) তবে আমারও কোনও ভয় আশ্রয় নেই এবং অবশ্যই ডিবাগিংয়ের জন্য অনেক কম সময় ব্যয় করতে হবে (প্রায় কোনও সময় নেই, এটিকে 10% এর চেয়ে কম করুন )।

সংক্ষেপে: আমি চটজলদি পদ্ধতিগুলি (এক্সপি) ব্যবহার করে আমার কোডব্লকটি অতিক্রম করেছি, সরলতার জন্য যাচ্ছি তারপর রিফ্যাক্টরিং এবং সেই স্বভাবজাত করার জন্য অনুশীলন করছি। এটা আমার জন্য কাজ করে। এটি অন্য কারও কাছে জেনারালাইজড হতে পারে তা নিশ্চিত নয়।

দক্ষতা অর্জনের স্তরের ক্ষেত্রে, আমি বেশিরভাগই গ্রহণ করতে শিখেছি যখনই আমি প্রযুক্তি পরিবর্তন করি (নতুন ভাষা, নতুন কাঠামো ইত্যাদি শিখি) আমি যখন ধীর হয়ে যাচ্ছি তখন আমি একটি পর্যায়ে যাব। এটি স্বাভাবিক এবং শেষ পর্যন্ত এটি অতিক্রম করবে। আমি ভাল পদ্ধতি এবং সাধারণ উদ্দেশ্যে প্রোগ্রামিং দক্ষতার সাথে এর জন্য ক্ষতিপূরণও দিতে পারি এবং এটি ততটা সমস্যা হবে না।


22
"প্রথমবারের মতো নিখুঁত কিছু লেখার জন্য দু'বার জিনিস লেখার পক্ষে এটি আরও দ্রুত"
ব্রেন্ডন লং

2
একটি ব্যক্তিগত গল্প ভাগ করার জন্য +1, যা আমি প্রত্যাশা করি যে এটি প্রশ্নকারীদের পক্ষে স্বীকৃত এবং কার্যকর হবে।
আর শেরুর্স

আমি সম্মত, আপনি কোডার ব্লক (লেখকের ব্লকের মত) এর সম্মুখীন হতে পারেন। আপনি জটিলতা পরিচালনা করতে পারবেন না, তাই আপনি dally। নিরাময়ের বিষয়টি লেখকের ব্লকের মতো; কিছু লিখুন । আপনার পর্দায় কিছু শীঘ্রই এটি আপনাকে কীভাবে এগিয়ে যেতে হবে তার ধারণা দেয়। "সম্ভবত দক্ষতা / ত্রুটিগুলি / যা কিছু নিয়ে চিন্তা করবেন না, কেবল কিছু দ্রুত করুন" as ঠিক আছে, উত্তর অর্ধেক। অন্য অর্ধেকটি হ'ল একবার খালি স্ক্রিনটি পার হয়ে গেলে, আসল ত্রুটি পরিচালনা, দক্ষ আলগো বা যা কিছু সোজা is
সিয়াটেলক্লপ্লসপ্লাস

@ সিটেল সিপ্লাসপ্লাস: আমি সম্মত হলাম এটি সহজ সমস্যার জন্য সম্ভবত বেশিরভাগ অ্যালগরিদমিক কোডের জন্য সোজা। আপনি কিছু ভাল শ্রেণীর কাঠামো পেতে চাইলে এটি এত সহজ নয়। রিফ্যাক্টরিং বিধিগুলি সম্পূর্ণ অকেজো নয়।
ক্রিশ করুন

41

প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ হ'ল জটিলতা পরিচালনা করা এবং নিয়ন্ত্রণ করা এবং ব্যক্তিগতভাবে আমার কাছে এটি শীর্ষ সমস্যাগুলির মধ্যে একটি। যদি তা অগ্রাহ্য করা হয় তবে হয় ঘাটতির ফ্রিকোয়েন্সি বাড়াতে বা আপনার ক্ষেত্রে যেমন সমাপ্ত সফ্টওয়্যারটির ইটিএ নাটকীয়ভাবে বৃদ্ধি পায়।

হয় ঘাটতি বৃদ্ধি বা ইটিএ হ্রাস

সফ্টওয়্যার জটিলতা বিভিন্ন স্তরের এবং বিভিন্ন উপায় থেকে নিয়ন্ত্রণ ও পরিচালনা করা যায় তবে কিছুটা দৃষ্টিভঙ্গি পাওয়ার জন্য থাম্বের একটি ভাল নিয়ম হ'ল: "যে কোনও সফ্টওয়্যার প্রকল্পের শীর্ষ অগ্রাধিকার গ্রাহক সন্তুষ্টি যা তাদের প্রত্যাশার একটি কাজ" "

অন্য কথায়, সফটওয়্যার জটিলতা আপনি আপনার গ্রাহকের প্রত্যাশা নিয়ন্ত্রণ করতে কতটা দক্ষ তার উপর একটি দুর্দান্ত বিষয় নির্ভর করে।

যখন কেউ সেই দৃষ্টিভঙ্গি গ্রহণ করে, তখন দুটি গুরুত্বপূর্ণ বিষয় সুস্পষ্ট হয়ে যায়:

  1. গ্রাহকের প্রত্যাশাগুলি অবশ্যই স্পষ্ট করে তুলতে হবে (যে কোনও আকারে);
  2. গ্রাহকের প্রত্যাশা সর্বদা সংশোধন করা যায় এবং এটি আলোচনার শিল্পের মাধ্যমে সম্পন্ন হয়।

আপনার উদাহরণটি খুব ভাল একটি, "এটি" বনাম "অন্যান্য বিবেচনার ক্ষেত্রে হাজার" লিখুন। এটি সম্পর্কে চিন্তা করুন - যদি কেউ উভয় রূপের জন্য সম্পূর্ণ প্রয়োজনীয়তাগুলি লিখতে থাকে তবে বর্ণিত বৈশিষ্ট্যগুলির মধ্যে কোনও সমতা থাকতে পারে কি না?

উভয়টি উড়তে পারলেও এফ 16 তৈরি করা সেলিনা তৈরির চেয়ে আলাদা।


24

সহজ উত্তর: এটি গ্রহণ করুন।

সমস্ত সিস্টেমে নির্ভরযোগ্যতা, দৃust়তা, সুরক্ষা, গতি, হার্ডওয়্যার ব্যয়, বিকাশের ব্যয়, বাজারে যাওয়ার সময়, এর মধ্যে আপনি ট্রেড-অফ করতে পারেন you গ্রাহকরা কীভাবে এই বাণিজ্যগুলি বন্ধ করে দেয় সে সম্পর্কে আপনি সর্বদা একমত হবেন না, তবে আপনি সেই সিদ্ধান্তগুলিই নিচ্ছেন না। আপনি যা করতে পারেন তা হ'ল একটি বিবেচিত মতামত প্রদান। সফ্টওয়্যার বিকাশ "আমার ব্যক্তিগত ওয়েব পৃষ্ঠা" থেকে শুরু করে "পারমাণবিক চুল্লী চালানো" পর্যন্ত সম্পূর্ণ কৌতুককে কভার করে এবং সেই অনুযায়ী কোডটি লিখতে হবে। যদি কোনও ক্র্যাশ মানেই "আমার ব্যক্তিগত ওয়েব পৃষ্ঠাটি পুনরায় লোড করুন" তবে এমনটি ঘটলে সত্যিই কে যত্ন করে? তবে যদি ক্র্যাশটির অর্থ "চেরনোবিল" হয় তবে শক্ত কোডের জন্য আপনার পছন্দটি যদি আমার পছন্দ অনুসারে কিছুটা নৈমিত্তিক হয়।

কিছু ক্লায়েন্ট রয়েছেন যারা আনন্দের সাথে "কনসেপ্টের প্রুফ" লেভেল কোডটি গ্রহণ করবেন এবং এটি তাদের লাইভ সিস্টেমে চালিত করবেন এবং প্রায়শই তাদের সিস্টেম অ্যাডমিনিস্ট্রেটররা থাকবেন যারা এর সাথে ভাল ব্যবহার করেন। আইএমই তাদের সিস্টেমগুলি সাধারণত মধ্যরাতে এক ঘণ্টা বা তার জন্য অনুপলব্ধ থাকে যখন বেশ কিছু সময় নির্ধারিত পুনরায় সূচনা ঘটে। তবে তারা ব্যবসায়ের সিদ্ধান্ত নিয়েছে যে তারা এভাবেই রোল করতে চায়। আদর্শভাবে যেহেতু তাদের ক্ষেত্রটি এত দ্রুত গতিশীল যে উচ্চ-মানের কোডটি কখনই প্রস্তুত হয় না, তবে প্রায়শই তারা মানটি দেখতে না পারায় (যদি কোনও সিস্টেম "কেবলমাত্র কাজ করে" তারা এটিকে কখনও লক্ষ্য করে না, তাই সিস্টেমটি এর জন্য মানটির প্রতিনিধিত্ব করে না টাকা)। এটি যদি আপনাকে খুব বিরক্ত করে তবে এই ক্লায়েন্টদের এড়াতে চেষ্টা করুন।

আপ টু ডেট রাখার সময়টি আমাদের সবারই ব্যয় করতে হবে, বা কমপক্ষে ব্যয় করা উচিত। কখনও কখনও এটি আপনাকে কাজ করবে, অন্য সময় এটি আপনার মনকে ভাল আকারে রাখে। যেভাবেই হোক, এটি উপভোগ করার চেষ্টা করুন।


4
আপনার চেরনোবিলের তুলনায় "আমার পছন্দ অনুসারে এটি কিছুটা নৈমিত্তিক" কিছুটা আমার দিনকে পরিণত করেছিল। আমি আসলে উচ্চস্বরে হেসেছিলাম :)
জিলক

16

মনে হচ্ছে আপনার দক্ষতাগুলি খুব উচ্চমানের মিশন সমালোচনামূলক সিস্টেম বিকাশের জন্য যেমন অর্থ / ব্যবসায় সম্পর্কিত অ্যাপ্লিকেশন, সম্প্রচার, মহাকাশ, প্রতিরক্ষা জন্য খুব কার্যকর হবে ...

এই ধরণের অ্যাপ্লিকেশনগুলিতে ত্রুটিগুলি খুব ব্যয়বহুল এবং তারা এমন সমস্ত লোককে নিযুক্ত করে যারা আপনার মতো চিন্তা করে আপনি সমস্ত কেস কভার করতে পারেন।


15

সত্যটি হচ্ছে আধুনিক ব্যবস্থা ক্রমশ জটিল হয়ে উঠছে। কম্পিউটারটি এখন সেই খেল "জেনগা" এর সাথে সমান, যেখানে আপনারা এই সমস্ত টুকরো অন্য অনেকের উপর নির্ভর করে। ভুল টুকরো টানুন এবং আপনার একটি ত্রুটি রয়েছে, একটি সঠিক / প্রয়োজনীয় টুকরো টানুন এবং আপনি এখনও ত্রুটি তৈরি করতে পারেন। আপনার কোডটি আরও মজবুত করার উপায়গুলি নিয়ে ভাবতে আপনার যত বেশি সময় লাগবে সিস্টেমটি আরও জটিল এবং আশাকরিও আরও সুরক্ষিত। গতিটি দুর্দান্ত লাগবে তবে আমি মনে করি আজকাল যখন আপনি "এক্সওয়াইজেড" সংস্থাটি হ্যাক হয়ে গেছে এবং 6 মিলিয়ন গ্রাহকের ক্রেডিট কার্ডের নম্বর চুরি হয়েছে এমন সংবাদ আপনি শুনেছেন তখন গতি অনেকটা পিছনের সিট নিয়েছে।

আপনার ক্লায়েন্টরা শুনতে পাচ্ছেন না যে তাদের প্রোগ্রামটি সুরক্ষিত, শক্তিশালী ইত্যাদি হওয়া দরকার But কেন?

যদি আপনি অতিরিক্ত চিন্তা-ভাবনা করে থাকেন তবে আপনি জিনিসগুলি সঠিকভাবে নিয়ে যাচ্ছেন, কেবল "কংক্রিট" বলে মনে হচ্ছে এমন একটি কৌশল বাছাই করা এবং কেবল এটির সাথেই চলতে হবে except


9

মনে হচ্ছে আপনি ভুল হতে পারে এমন সমস্ত কিছু সম্পর্কে ভাবার প্রবণতা সম্পর্কে আপনি সচেতন।

অভিজ্ঞ সতর্ক বিকাশকারীরা প্রায়শই মন্ত্র অনুসরণ করতে শিখেন YAGNI, আপনার প্রয়োজন হবে না, যখন তারা ব্যর্থতা-মোড-অ্যানালাইসিস-অ্যামোকের আগাছাগুলিতে খুব দমবন্ধ হয়ে যাওয়ার পরে কোনও চিকন, চটচটে এবং উত্পাদনশীল কর্মপ্রবাহে ফিরে যাওয়ার চেষ্টা করেন।

যাইহোক, আপনি যদি এমন কোনও ডোমেইনে সত্যিই কিছু লিখছেন যেখানে পেশাদারিত্বের তুলনায় সেই স্তরের যত্ন কম নয়, তবে আপনার বুঝতে হবে যে আপনার "বেগ", আপনার "উত্পাদনশীলতা", নিখরচায় পরিমাপযোগ্য, কতটা ভাল ( বা ক্ষতি) আপনি নিজের সংস্থা বা আপনার গ্রাহকদের এবং সফ্টওয়্যার স্যুট, বা আপনি যে পণ্য পরিবার তৈরি করছেন বা রক্ষণ করছেন তাতে করছেন to

মনে রেখ:

  • আপনি যখন আপনার পদ্ধতির পরিবর্তনগুলি বিবেচনা করেন তখন রক্ষণাবেক্ষণের মোট ব্যয়, মালিকানার মোট ব্যয় এবং সমাধান স্থাপন এবং বজায় রাখার মোট ব্যয় অন্তর্ভুক্ত করুন। দ্রুত যেতে এবং আরও ভুল করা জিনিসগুলি আরও ভাল করতে পারে বা নাও করতে পারে।

  • আপনি যদি একটি ভাল সংস্থায় কাজ করেন তবে আপনি সম্ভবত এটি নিজের ক্যারিয়ার সীমাবদ্ধকরণ পদক্ষেপ না করে নিজের দলে এবং নিজের সুপারভাইজারের সাথে আলোচনা করতে পারেন। যদি আপনি না পারেন তবে এটি সন্ধান করার জন্য এবং একটি নতুন কাজ সন্ধানের জন্য এখনই সময় ভাল।


আমি যখন এই পর্যায়ে যাচ্ছিলাম তখন ইয়াজিএনআই আমাকে বাঁচিয়েছিল। এই উত্তরের আরও বেশি অগ্রগতি প্রয়োজন। "আমি অত্যন্ত ধীর আছি" সমস্যা না নিছক গৃহীত হবে; সেখানে হয় বার যখন এটি একটি নিখুঁত স্থাপত্য বলিদান এটি দরজা দ্রুত দেওয়া ঠিক।
রোমান স্টারকভ

7

কেবলমাত্র আমি দেখতে পাচ্ছি: "আপনি আরও বেশি মূল্যবান হয়ে উঠছেন"।

আপনি যখন আরও অভিজ্ঞতা অর্জন করেন তখন আপনি যে বিষয়গুলি এড়ানো উচিত সেগুলি সম্পর্কে শিখবেন এবং এটিই আপনাকে অন্যের চেয়ে ভাল করে তোলে।

একটি জিনিস আপনি লক্ষ্য করেছেন যে আপনার কোডটি এখন নিরাপদ এবং আরও রক্ষণাবেক্ষণযোগ্য হবে।

  • আপনাকে কেবলমাত্র যা করতে হবে তা হল আপনার ক্লায়েন্টকে কেন সময় লেগেছে এবং কীভাবে এটি তাদের জন্য কার্যকর হবে তা বোঝানো।
  • আপনার তাদের জ্ঞানের গভীরতা প্রদর্শন করা দরকার।
  • আপনি কেন তাদের কাজটি করেছেন, আপনি কী করেছেন এবং কীভাবে এটি তাদের এবং তাদের ব্যবসায়ের বিষয়ে গুরুত্বপূর্ণ হবে তা তাদের জানাতে হবে।

আমার পরামর্শ এই অংশে মনোনিবেশ করা হবে।


7

সন্দেহ যখন নূথকে খারাপভাবে উদ্ধৃত করে তখন সন্দেহ হয় ...

"অকালীন অপটিমাইজেশন হ'ল সমস্ত অশুভের মূল"।

আমি এখানে যা পরামর্শ দেব তা মনে হচ্ছে, আপনার কাছে মনে হচ্ছে যে আমার কাছে সময়ে সময়ে সমস্যা আছে ...

আমার জন্য আসলে কী কাজ করে ...

  1. ইউনিট পরীক্ষাগুলি লিখুন, যেন সমস্ত কোড হয়ে গেছে।
  2. ইন্টারফেস নথি।
  3. ইন্টারফেস বাস্তবায়ন।

আপনি সত্যিই কি করেছেন:

  1. মডেল স্তর প্রয়োজনীয়তা মাধ্যমে কাজ
  2. সত্যই কাজের বিভাজন স্থাপন করে, কোন বস্তুগুলি তার জন্য দায়ী
  3. যখন আপনি বাস্তবে ওয়ার্কিং কোডের মাধ্যমে পদক্ষেপ নিতে পারেন এমন একটি পরিবেশে কাজ করুন, যা জিনিসগুলিকে এত দ্রুততর আরও নির্ভুল করে তোলে ...

প্রারম্ভিক বিকাশের দৃser়তার উপরও নির্ভর করুন ... তারপরে কোন প্রতিকারগুলি প্রয়োগ করা দরকার তা নির্ধারণ করুন এবং আপনি যে কোডটি পৌঁছনীয় না, বা পরীক্ষা করা শক্ত তা লিখবেন না।


চাচা বব এর মত শোনাচ্ছে, সলড লোক।
ওয়ারেন পি

6

আমি মনে করি আপনার কোডিং মানগুলিতে অটল থাকা উচিত, তবে নিশ্চিত হয়ে নিন যে আপনি আপনার ক্লায়েন্টদের সাথে আছেন। অনেক ক্লায়েন্ট জানেন না যে ভাল সফ্টওয়্যার তৈরি করতে এটি কীভাবে খরচ করে। তাদের শিক্ষিত করা পেশাদার বিকাশকারীদের কাজের অংশ।

আপনি চটপটে বা জলপ্রপাত যাই হোক না কেন, ক্লায়েন্টের কাছ থেকে তারা অ্যাপ্লিকেশনটি কী প্রত্যাশা করবে সে সম্পর্কে আপনি এক ধরণের চুক্তি পাবেন। অনেকগুলি বিকাশকারী (ঠিক আছে আরও বিক্রয়কর্মী) স্যান্ডব্যাগিংয়ের জন্য দোষী । "তারা বলেনি যে তারা একটি উচ্চ সুরক্ষিত ওয়েবসাইট চায়" " বেশিরভাগ ক্ষেত্রে, কারণ তাদের জিজ্ঞাসা করা হয়নি it's "আপনার ইকমার্স সাইট হ্যাক হয়ে গেলে কি আপত্তি আছে?" অবশ্যই তারা যত্নশীল এবং আপনি কাউকে সুরক্ষা letোকার জন্য কেন এটি তৈরি করবেন? আপনি তাদের শিক্ষিত করতে হবে।

খালি ক্লায়েন্ট আপনাকে প্রদানের জন্য কেবল যা করছেন তা নিশ্চিত করুন। আপনার পরিষেবা অংশ আপনার অভিজ্ঞতা। ক্লায়েন্টরা তাদের জিজ্ঞাসা না করেই আপনি সমস্যাগুলি জানতে পারবেন বলে আশা করছেন। প্রয়োজনীয়তা অন্তর্ভুক্ত করা তাদের উপর নির্ভর করে। আপনি যে ক্লায়েন্টকে সস্তা কিছু চান তা পাস করতে পারেন।


প্রকৃতপক্ষে আপনি সবচেয়ে খারাপের উদাহরণটি নিয়েছেন: ওয়েব সফ্টওয়্যার, যেখানে পিএইচপি নুবস সরকারীভাবে প্রতিযোগিতা। দাম একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান, এবং যখন আমি উচ্চ মানের সফ্টওয়্যার সরবরাহ করি তখন আমার ক্লায়েন্টরা সফ্টওয়্যারটির জন্য অর্থ প্রদান করে এবং আমি উচ্চ মানের জন্য অর্থ প্রদান করি।
মর্গ

6

অন্যান্য সমস্ত সমস্যার সমাধানের প্রয়োজনের তুলনায় বাগের ব্যবহারিক পরিণতি সম্পর্কে চিন্তা করুন।

একটি দুর্বল লিখিত কোডের টুকরো তৈরি করার নিম্নলিখিত পরিণতিগুলি বিবেচনা করুন:

  1. সমস্ত ডাটাবেস প্রতি অন্যান্য মাসে ফেলে দেওয়া হয়। ব্যাকআপগুলি পুনরুদ্ধার করার সময় 48 ঘন্টা ডাউনটাইম।
  2. গ্রাহক রেকর্ডগুলি ক্রস লিঙ্কযুক্ত হয়। প্রতি মাসে 200 ডলারের অর্ডার ভুল গ্রাহকদের কাছে প্রেরণ করা হয়।
  3. একটি আদেশ সপ্তাহে একবার একটি ভুল স্থিতিতে আটকে যায়। জাহাজের অর্ডার করুন তবে গুদামে প্রতিবার এটি হেল্পডেস্কে কল করতে হবে।
  4. খুব দু'সপ্তাহ বা তার পরে একবার, অ্যাপটি ক্র্যাশ হয়ে যায় এবং ব্যবহারকারীকে 2 মিনিটের মূল্যবান ডেটা আবার প্রবেশ করতে হয়।
  5. মাসে একবার অ্যাপ্লিকেশনটি স্টার্টআপে স্থির থাকে। ব্যবহারকারীকে প্রক্রিয়াটি শেষ করে আবার শুরু করতে হবে।

প্রথমটি অবশ্যই গ্রহণযোগ্য নয়। # 2 - # 5 ব্যবসায়ের প্রকৃতির উপর নির্ভর করে বা নাও হতে পারে। # 2 - # 5 টি ব্যবসায় যে অন্যান্য সমস্যার মুখোমুখি হচ্ছে তার প্রসঙ্গে মূল্যায়ন করা দরকার।

আদর্শভাবে, # 2 - # 5 কখনই ঘটবে না। বাস্তব জীবনে, দ্বন্দ্বমূলক অগ্রাধিকার সহ, আপনার বেতন যাচাইয়ে স্বাক্ষরকারী লোকেরা চাইবে আপনি নিখুঁত কোড লেখার চেয়ে অন্য কিছুতে কাজ করছেন যা কখনও কখনও সমস্যা হয় না। যদি কোনও প্রোগ্রামে আরও গুরুতর ত্রুটি সংশোধন না করার ব্যয়ে # 5 ঠিক হয়ে যায় তবে তারা মুগ্ধ হবেন না।


5

সমাধানটি হ'ল সাধারণভাবে ব্যবহৃত ফাংশনগুলির সাথে গ্রন্থাগারগুলির একটি সংগ্রহ তৈরি করা যা আপনি প্রকল্পগুলির মধ্যে পুনরায় ব্যবহার করতে পারেন। উদাহরণস্বরূপ আমার কাছে একটি স্ট্রিংফিউশনস.ডিল। এনইটি লাইব্রেরি রয়েছে যা এনকোডিং, এনক্রিপশন, ডিক্রিপশন, নিয়মিত প্রকাশের মূল্যায়ন ইত্যাদির মতো জিনিসগুলি করে This

ফাইল তৈরির কাজের জন্য একটি মোড়ক রাখার বিষয়টিও প্রচুর অর্থবোধ করে। আপনার গ্রন্থাগারটি getFile () নামে একটি পদ্ধতি উন্মোচন করতে পারে যা আপনার জন্য সমস্ত চেক করে এবং নাল বা একটি ফাইল (বা আপনি যেটাকে দরকারী মনে করেন) ফিরিয়ে দেন।


4

আমি মনে করি কোন প্রকল্পের জন্য কতটা করা দরকার তা সিদ্ধান্ত নিতে আপনার শিখতে হবে। কিছু প্রকল্প তুচ্ছ হতে পারে এবং সত্যই আপনার এটি পুরোপুরি পুরোপুরি ব্যয় করার প্রয়োজন নেই। প্রতিটি কিছুর জন্য রক-সলিড এনক্রিপশন প্রয়োজন হয় না বা মিলিয়ন ব্যবহারকারীদের কাছে সমস্ত কিছু স্কেলিং হবে।

এমন একটি প্রোগ্রাম লিখতে যা মিলিয়নেরও বেশি ব্যবহারকারীদের জন্য ভাল স্কেল করতে পারে আপনার এখন সময় এবং অভিজ্ঞতা নিতে হবে, তবে আপনি যদি জানেন যে আপনার অ্যাপ্লিকেশন সর্বাধিক 1000 এর বেশি ব্যবহারকারী ব্যবহার করতে পারবেন না, সমস্ত ব্যয় করার কোনও মানে নেই এই সময় এটি নিখুঁত।

আমি মনে করি এটি আপনার প্রোগ্রামিং ক্যারিয়ারের একটি গুরুত্বপূর্ণ পর্যায় এবং এখন আপনার পরবর্তী স্তরের গোটো দরকার যা প্রোগ্রামিংয়ের সাথে পরিপক্কতার সাথে করতে হবে। কোনও নির্দিষ্ট প্রকল্পের জন্য আপনার সময় এবং কোডের পরিমাণ কতটা উচিত তা সঠিকভাবে সিদ্ধান্ত নিতে আপনার প্রয়োজন need

এবং অন্য কিছুর মতো, আপনি অনুশীলনের মাধ্যমে এটি অর্জন করতে পারেন। সুতরাং আপনি কোনও প্রকল্প শুরুর আগে এটি সিদ্ধান্ত নেওয়ার চেষ্টা করুন, আপনি ইতিমধ্যে এটির কাজ করার সময় এমনকি অভিজ্ঞতার সাথে আপনি এটিও অতীতের হয়ে উঠবেন। শুরুতে কয়েকটি হিট এবং মিস হতে পারে তবে সময়ের সাথে আপনি এটি নিখুঁত করবেন (সিদ্ধান্ত গ্রহণ, কোড নয়)।


3

@ জিল্ক, আমি দুর্দান্ত প্রোগ্রামার নই এবং আমি 1998 সাল থেকে প্রোগ্রামিং করছি Even এমনকি আমি এখন এই সমস্যার মুখোমুখি হয়েছি। তবে আমি যা বুঝতে পেরেছি তা চূড়ান্ত মানের বিষয়। আমি যদি আজ মরে যাই, আমি যেখান থেকে চলে এসেছি সেখান থেকে এখনই আমি যা করছি তা কারওর কাছে নেওয়া উচিত। প্রোগ্রামিং (ইউনিভার্সাল) এর মান হওয়া উচিত।

আমি নিজেকে এখন বিকাশকারী থেকে আর্কিটেক্টে স্থানান্তরিত করেছি। পরিচালনায় সরানো লাইন পরিবর্তন করছে। আপনি যদি নিজের আবেগকে সাথে চালিয়ে যেতে চান তবে আপনি স্থপতি হয়ে উঠতে পারেন।

প্রাথমিকভাবে প্রযুক্তিগত স্থপতি হিসাবে -> সমাধান আর্কিটেক্ট -> এন্টারপ্রাইজ আর্কিটেক্ট -> চিফ আর্কিটেক্ট ইত্যাদি।

স্থপতি হিসাবে আপনি সাফল্যের জন্য লোকদের গাইড করবে। আপনার মতো লোকেরা যারা কয়েক দশক ধরে প্রোগ্রাম করে যাচ্ছেন সেই বছরের অভিজ্ঞতা আপনি অন্যকে গাইড করতে ব্যবহার করতে পারেন।

পাখির মতো এটি আরও জমি উড়ে যায় এটি দেখতে পারে এটি আপনার অভিজ্ঞতা।

আমি আপনাকে এও বলি যে ভুল বাস্তবায়নের দ্রুত প্রোগ্রামিং করার চেয়ে প্রোগ্রামিং সঠিক বাস্তবায়ন গুরুত্বপূর্ণ। সম্প্রতি আমার এক জুনিয়র কিছু ভুল প্রোগ্রাম করেছে এবং এতে অনেক বেশি অর্থ ব্যয় হয়েছে। অবশ্যই আমরা আগে সময় সরবরাহ করেছিলাম কিন্তু এটি কোনও কাজে লাগেনি! আমি কি একই জুনিয়রকে কোড করে দিলে গাইড হওয়ার জন্য ভূমিকাটি দেওয়া হয়েছিল সমস্যাটি ঘটত না। আমি চাপের জন্য এই উদাহরণটি দিচ্ছি যে ভাল দিকনির্দেশনা দেওয়াও গুরুত্বপূর্ণ। কেউ কেউ এই কাজকে পরামর্শ হিসাবে ডাকে।


3

অন্য বিকল্পটি হ'ল কোড লেখা বন্ধ করুন, পরিবর্তে সমস্যাগুলি আগে থেকেই চিহ্নিত করতে আপনার দক্ষতা বিক্রি করুন।

অন্য কথায়, পরামর্শদাতা হন

কোড তৈরির ক্ষেত্রে কয়েক মাস ব্যয় করার আগে কারও সমস্যা সমাধানের জন্য অনেক সংস্থা ব্যয়বহুল ডলার (শীর্ষে ডলার না হলে) প্রদান করে খুশি । এটি সুপরিচিত যে ডিজাইনে একটি বাগ সংশোধন করা, কোডিং, পরীক্ষা করা এবং মোতায়েন করার পরে এটি ঠিক করার চেয়ে বিশালার অর্ডার / সস্তার চেয়ে সহজ orders

আপনি খুব বেশি কোড লিখবেন না, এবং আপনি সম্ভবত এটি মিস করতে পারেন তবে তারপরে মনে হবে কোডের আসল লাইনগুলি আপনার মূল শক্তি নয়, তবে কোডের কোন রেখাগুলি লিখতে হবে তা জেনে - এবং কোনটি নয়।

আপনার শক্তি উপর ফোকাস।
(ভাল, যদি আপনি এটি উপভোগ করেন তবেই ...)


2

আপনার জন্য আমার সেরা সুপারিশটি হ'ল: বিল্ডিং ব্লক।

এমন একটি ফাইল বিল্ডিং ব্লক তৈরি করুন যা আপনি সর্বদা বিশ্বাস করতে পারেন, আপনার API এর জন্য একটি তৈরি করুন, একই জিনিস বারবার লিখতে আপনার অপচয় করা বন্ধ করুন। প্রতিটি সমস্যা সম্পর্কে একবার চিন্তা করুন এবং একবার এবং সর্বদা এটি সমাধান করুন।

নুন কেউ তা ধরবে না, অবশ্যই যে নবজাতক তাদের সময় ডিবাগিং কোডের ৮০% ব্যয় করে যা তারা বুঝতে পারে না এমন কোণার ক্ষেত্রে ব্যর্থ হয়।

সর্বোপরি, সমস্যাগুলির সমাধান না করে যা ঘটতে পারে না, যেমন ভুল অনুমতি।

যদি অনুমতিগুলি ভুল হয় তবে কিছু ইতিমধ্যে ভুল এবং আপনার প্রোগ্রামের বুলেট প্রুফ তৈরির পরিবর্তে এটি ঠিক করা উচিত।

কোনও সময়ে আপনাকে সর্বদা আপনার পায়ে গুলি করতে হবে না আপনি যা করেছেন কিনা তা সর্বদা পরীক্ষা করার পরিবর্তে the

ডকুমেন্টেশনে সময় ব্যয় করার পরিবর্তে আপনার কোডটি স্ব-ডকুমেন্টিং এবং যতটা সম্ভব সংক্ষিপ্ত করতে সময় ব্যয় করুন। এই সমস্ত সদৃশ-ইশ ফাংশন প্রতিস্থাপন করুন। আপনার গ্রন্থাগার সঙ্কুচিত করুন, নির্ভুলতার সাথে জিনিসগুলির নাম পরিবর্তন করুন।


1

নিজেকে নিয়ে খুব কষ্ট করবেন না। আপনি জটিলতা বাড়ানোর একটি পেশায় কাজ করছেন, এর জন্য আগের চেয়ে আরও বেশি মানুষের বুদ্ধি, জ্ঞান এবং অভিজ্ঞতা প্রয়োজন।

কম্পিউটার প্রসেসিং শক্তি ধীর হয়ে যাচ্ছে - সম্ভবত শীঘ্রই স্টলিং - মাল্টি-কোর চিপস, জিপিইউ চালিত সংখ্যাসমূহ, সমান্তরালতা ইত্যাদি প্রবর্তনের প্রয়োজনীয়তার দিকে পরিচালিত করছে সেখানে কেবলমাত্র অনেকগুলি ট্রানজিস্টর রয়েছে যা একটি চিপের উপর স্থাপন করা যেতে পারে।

অতএব বর্তমানে এবং ভবিষ্যতে বড় অগ্রগতি প্রোগ্রামারদের থেকে আসতে চলেছে - উন্নত অ্যালগরিদম এবং আরও কার্যকর কোড।

আপনি জিটিএ 4 এবং জিটিএ 5 দেখুন তবে পার্থক্য চমকপ্রদ। তবে তারা উভয়ই একই হার্ডওয়্যারে চালিত হয়। এটি বেশ কিছু বুদ্ধিমান এবং উন্নত প্রোগ্রামিং অনুশীলনের ফলাফল যা 10 বছর আগে কেবল প্রয়োজন ছিল না বা উপলভ্য ছিল না।

এটির অর্থ এইও হতে পারে যে অভিজ্ঞ প্রোগ্রামাররা ভবিষ্যতে আরও মূল্যবান হয়ে উঠতে পারে - যেমন ইঞ্জিনিয়ারিংয়ের মতো অন্যান্য পেশাগুলির মতো যেখানে পিক আয় সাধারণত ক্যারিয়ারের শেষের দিকে ঘটে।


1

আপনার মতো, আমি 14 বছর বয়সে প্রোগ্রামিং শুরু করেছি, যখন আমি আমার প্রথম কম্পিউটার পেয়েছিলাম (যদিও আমি এই মুহুর্তে কয়েক মাস ধরে পড়াশোনা করেছি)। তবে, আমি এখন "কেবল" 33। :-)

আমার পরামর্শ হ'ল, কোনও কিছুর বিকাশ করার সময়, আপনি সেই উদ্বেগগুলির প্রত্যেকটি (ফাইলের অনুমতি, ডিরেক্টরিতে ফাইলের সংখ্যা ইত্যাদি) নিয়ে যান এবং তারপরে আপনার সমস্ত বিস্তৃত অভিজ্ঞতা সম্পর্কে কয়েকটি প্রশ্নের উত্তর দেওয়ার জন্য, এই আত্মায়:

  • আপনার কোডটিতে সমস্যাটি সঠিকভাবে পরিচালনা করতে কতক্ষণ সময় লাগবে?
  • আপনি যদি এটি সঠিকভাবে পরিচালনা করেন না, তবে সম্ভবত এই জিনিসটি আপনাকে কখনই কামড় দেবে?
  • যদি এটি আপনাকে কামড়ায় তবে এর পরিণতিগুলি কী হবে?

এই উত্তরগুলির সাথে সজ্জিত, এই জাতীয় অভিজ্ঞ ব্যক্তির বুদ্ধিমান সিদ্ধান্ত নিতে সমস্যা হবে না। ;-)

আপনার মতো "প্রবীণদের" দায়িত্ব এই ধরণের প্রয়োজনীয়তা নিয়ে আসা এবং এটি কোনটি ভুল হতে পারে তা চিহ্নিত করা এবং আপনার কোন সম্ভাব্য সমস্যার দিকে নজর দেওয়া উচিত তা সিদ্ধান্ত নেওয়া উভয়ের মধ্যেই জড়িত।


1
ওপি'র প্রতিক্রিয়া হ'ল সমস্ত পর্যবেক্ষিত সম্ভাব্য সমস্যাগুলির প্রতিরোধের প্রয়োজন। এটি সত্য হতে পারে যখন তিনি জুনিয়র প্রোগ্রামার হিসাবে যাত্রা শুরু করেছিলেন (কারণ তারপরে চিহ্নিত সম্ভাব্য সমস্যাগুলি সাধারণত একটি প্রচুর মানের উন্নতি বোঝায়), সম্ভবত এটি আর সত্য নয়: @ আইজিওররা যেমন ব্যাখ্যা করেছেন: স্বয়ংক্রিয়ভাবে সিদ্ধান্ত নেবেন না যে প্রতিটি আপনি যে সম্ভাব্য সমস্যা দেখছেন তা অবশ্যই প্রতিরোধ করতে হবে - আপনার প্রয়োজন হলে সচেতনভাবে সিদ্ধান্ত নিন। এটা সুবিধা আপনি জুনিয়র প্রোগ্রামারদের উপর আছে: তারা শুধুমাত্র প্রতিরোধ করতে পারি তারা যা দেখতে পারেন, যেহেতু আপনি আসলে প্রতিরোধ প্রয়োজন আটকাতে পারে।
অ্যাস্ট্রোট্রেন

0

অ্যাপ্লিকেশন বিকাশের সময় সম্ভাব্য সমস্ত মানদণ্ডগুলি জানা একটি মানের পণ্য বিকাশের ক্ষেত্রে সবচেয়ে গুরুত্বপূর্ণ বিষয়। আপনি এই ভাল করছেন। আপনি যা করতে পারেন তা হ'ল, আপনি প্রয়োজনীয়তাটিকে মানের স্তরে শ্রেণিবদ্ধ করতে পারেন তবে প্রদত্ত সময়সীমার সাথে স্তরটি মানচিত্র করুন। এই পথে আপনি প্রকল্পের সময়সীমা ইজিলি পূরণ করতে পারেন।


0

এডজার ডিজস্ক্রার কথায়: "যদি ডিবাগিংটি সফ্টওয়্যার বাগগুলি অপসারণের প্রক্রিয়া হয় তবে প্রোগ্রামিং এগুলি অবশ্যই রাখার প্রক্রিয়া হতে হবে” "আপনি কেবল সামান্যই করছেন তাই আপনাকে পূর্বের তুলনায় কম কাজ করতে হবে। এটি ঠিক কোডিংয়ে সময় ব্যয় করা শেখার একটি প্রশ্ন। আমি এখনও একটি তুলনামূলকভাবে তরুণ প্রোগ্রামার (20 টি পড়ুন) এবং আমি একবারে পুরোপুরি কোনও কোড কোড করতে সক্ষম হওয়ার আকাঙ্ক্ষা করি। পরিকল্পনার এক ঘন্টা এবং 10 মিনিটের কোডিং 10 মিনিটের পরিকল্পনার চেয়ে এক ঘন্টা ভাল কোডিং এবং তিনটি ডিবাগিংয়ের চেয়ে ভাল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.