কখনও কখনও কোনও বাগ সম্পর্কে ভাবনা কেন এটি সমাধান করতে সহায়তা করে না? [বন্ধ]


12

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

তাই আমি বাড়িতে গিয়ে কুকুরটিকে হেঁটেছিলাম, একটু টিভি দেখেছি এবং ঘুমাতে যাওয়ার ঠিক আগে, আমি বুঝতে পেরেছিলাম যে আমি যে স্পষ্টত ভুল করছি। আজ সকালে এটি ঠিক করতে 10 মিনিট সময় নিয়েছে।

আমি বাড়িতে থাকাকালীন, আমি সক্রিয়ভাবে সমস্যাটি নিয়ে ভাবছিলাম না। তবুও নিজেকে পরিস্থিতি থেকে বাইরে নিয়ে যাওয়া আমাকে এটি সমাধান করতে সক্ষম করে।

এটি প্রথমবারের মতো ঘটেনি, এবং আমি জানি যে এটি কোনও প্রোগ্রামিং সমস্যা সমাধানের জন্য মোটামুটি সাধারণ উপায়। এমনকি আমি উত্তরগুলি স্বপ্ন দেখে শুনেছি।

কেন এই কাজ করে?

সম্ভবত আরও গুরুত্বপূর্ণভাবে, কোনও সমস্যা থেকে আপনার বিরতি নেওয়া উচিত, ব্রেকটি কতদিন হওয়া উচিত এবং কতক্ষণ পরে সমস্যাটি ছেড়ে দেওয়া কার্যকর হওয়া বন্ধ করে দেয় সে সম্পর্কে কোনও ভাল গাইড রয়েছে কি?

আমি মনে করি আমি এই অবচেতন প্রক্রিয়াকরণটিকে (বা যা কিছু চলছে) কীভাবে অনুকূল করা যায় সে বিষয়ে কাজ করার চেষ্টা করছি


3
আমি নিশ্চিত নই যে এটি কেবল প্রোগ্রামিংয়ের সাথে সম্পর্কিত, আপনি অনেক ক্ষেত্রে একই প্রশ্ন জিজ্ঞাসা করতে পারেন।
ozz

1
যদি কেবল জ্ঞানীয় বিজ্ঞানের স্ট্যাক এক্সচেঞ্জ হত বিটাতে!
ম্যাট এলেন

1
কারণ চিন্তাভাবনা একটি রহস্যময় প্রক্রিয়া।
davidk01


4
এই প্রশ্নটি অফ-টপিক হিসাবে উপস্থিত বলে মনে হচ্ছে কারণ এটি সাধারণ সমস্যা সমাধানের চিন্তার প্রক্রিয়া সম্পর্কিত এবং প্রোগ্রামিং বা প্রযুক্তি ক্ষেত্রে অনন্য নয়।

উত্তর:


22

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

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

এ কারণেই প্রায়শই, একজন সহকর্মী সুযোগমতো, আপনার কাঁধটি দেখতে পারেন এবং কয়েক সেকেন্ডের মধ্যে সমস্যাটি (এবং সমাধান) নির্দেশ করতে পারেন।

তারা আপনার মতো মানসিক অবস্থায় নেই

আমি প্রায়শই একটি নির্দিষ্ট সময়ের দেখাশোনা বন্ধ করার চেষ্টা করি এবং কয়েক ঘন্টা পরে শান্ত মন নিয়ে ফিরে আসি।

কিন্তু সবচেয়ে শক্তিশালী কৌশল মাত্র ... হয় সাহায্যের জন্য জিজ্ঞাসা


9
+1 আপনি যখন সাহায্যের জন্য জিজ্ঞাসা করছেন তখন সমস্যাটিকে অন্যভাবে বোঝার প্রবণতাটি বোঝাতে ঝুঁকছেন তাই এই প্রক্রিয়াটিতে আপনি আরও বোঝা পেতে পারেন। যেমন আপনি যখন কোনও প্রশ্নোত্তর সাইটে অথবা ফোরামে কোনও বিষয় পোস্ট করেন তখনই আপনি কীভাবে এগিয়ে যেতে পারেন একটি ধারণা পেয়ে যান ..
আদিত্য পি পি

1
@ আদিত্যগেমপ্রগ্রামের জন্যও +1 এবং +1: সমস্যাটি বর্ণনা করা এতটা সহায়ক যে এমনকি এটি কোনও কল্পিত ব্যক্তির কাছে বর্ণনা করা - বা কোনও ক্রিয়াকলাপ বা উদ্ভিদ বা যা কিছু - প্রায়শই একই নতুন চিন্তাকে ট্রিগার করে (অনেকের বর্ণনা অনুযায়ী) ।
ম্যাথু ফ্রেডরিক

6

আপনি যদি কিছু সময়ের জন্য কোনও সমস্যা নিয়ে কাজ করে থাকেন তবে আপনার মন বিকাশের সময় আপনি যে নকশাগুলি সেটআপ করেন তা অনুসরণ করে। অন্য কথায়, আপনি যে মানসিক ফ্রেম সেট আপ করেছেন তার বাইরের জিনিসের জন্য আপনি অস্থায়ী "কালো দাগ" বিকাশ করেন।

কিছুক্ষণের জন্য আপনার মনকে সমস্যা থেকে দূরে সরিয়ে এই ফিল্টারটি সরিয়ে ফেলাতে সহায়তা করে এবং আপনাকে ফিল্টার ছাড়াই জিনিসগুলি স্থির করতে দেয়।

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

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


1
আমি একজন নির্দিষ্ট প্রফেসর সম্পর্কে পড়েছিলাম যিনি তার অফিসের বাইরে একটি টেডি বিয়ার রাখবেন। ছাত্ররা তাকে সাহায্য চেয়েছিল আগে তারা প্রথমে ভাল্লুককে তাদের সমস্যাটি ব্যাখ্যা করবে explain
মাইকেল কে

জেফ অ্যাটউড এখানে তার ব্লগে ব্লগ কোডিং কোডিংহরর.কম / রবার-ডেস্ক-প্রব্লেম-সলভিংয়ের মতো যা লিখেছেন তার সাথে বেশ মিল দেখান । আমি আসলে মনে করি এটি খুব খারাপ সহায়তা করতে পারে। আপনি কত সময় এসও-র কাছে অর্ধেক লিখিত প্রশ্ন করেছিলেন এবং তারপরে উত্তরটি উপলব্ধি করেছেন? আমি এই বেশ কিছু সময় :) ছিল
Rémi

5

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

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

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


4

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

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

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


3

আমার অনুমান যে আপনার মস্তিস্ক পেশির মতো ক্লান্ত হয়ে পড়েছে। বিরতি নেওয়ার ফলে এটি বিশ্রাম নিতে পারে, অক্সিজেন / জ্বালানী ইত্যাদি দিয়ে উপরে উঠে আবার কাজ শুরু করে।

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


3

আমি একে ধারণা এবং সমস্যাগুলির উপর জ্বালানীর সময় বলতে চাই ।

আপনার উপ-বিবেক এখনও অ-রৈখিক পদ্ধতির মাধ্যমে আপনার সচেতনতার বাইরে সমস্যার প্রক্রিয়া চালিয়ে যাচ্ছে। এটি যখন আপনি নতুন কিছু নেওয়ার আগে নতুন কিছু শিখেন তখন যা ঘটেছিল তার সাথে এটি খুব মিল। আপনার মনের আরও বেশি স্বাচ্ছন্দ্যের সাথে যোগাযোগ করা যেতে পারে এমন উপায়ে তথ্য 'ডিফ্রেগমেন্ট' করার সময় রয়েছে।

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

এই মানসিক লিঙ্কগুলি দেখুন: সৃজনশীলতার টিপস এবং ন্যাপিংয়ে সমস্যা


2

"আমরা সমস্ত একটি দ্বারা খুবই দুঃখিত হল পেতে গোলাপ কখনও কখনও। দুঃখজনকভাবে আমরা যখন মনোযোগ দিয়ে এত ব্যথা আমরা ভুলবেন সম্পর্কে সৌন্দর্য গোলাপ এর।"


2

আমি আমার কেরিয়ারে, ঝরনার সময় বেশ কয়েকটি সমালোচনামূলক বাগগুলি স্থির করেছিলাম।

আমি মনোবিজ্ঞানী নই তবে আমার ধারণা পার্থক্যটি হ'ল:

  • কম্পিউটারের সামনে বসে, আমি উত্স কোডগুলি, ব্রেকপয়েন্টগুলি, printfআউটপুটগুলি দেখতে পাচ্ছি ...

  • বাথরুমে, কোডগুলি মনে মনে চলে।


1

আমি একই ঘটনাটি অভিজ্ঞতা পেয়েছি এবং সমস্যাটিকে অন্য দৃষ্টিকোণ দিয়ে দেখার জন্য এটিকে দায়ী করেছি কারণ আমি এ থেকে দূরে সময় ব্যয় করি (আরও বেশি সময় দূরে একটি আরও দূরবর্তী দৃষ্টিভঙ্গি বোঝায়, প্রায়)।

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


1

আমি সম্প্রতি এই সাইটের কোনও ব্যক্তির পরামর্শের জন্য পমোডোরো কৌশলটি ব্যবহার করেছি এবং মনে করি এটি সময় এবং দীর্ঘ বিরতির বিষয়ে আপনার প্রশ্নের উত্তরের উত্তর সরবরাহ করে। মূলত, এটি আপনি 25 মিনিটের জন্য কোনও সমস্যার উপর দৃষ্টি নিবদ্ধ রেখে কাজ করেছেন, তারপরে একটি 3-5 মিনিটের সংক্ষিপ্ত বিরতি, তারপরে এর প্রতি 4 চক্রের পরে আরও দীর্ঘ বিরতি। তারা এটির ব্যাক আপ করার জন্য কিছু অধ্যয়ন উদ্ধৃত করেছে, তবে উপাচার্যভাবে আমি এই অন্তরগুলি খুব কার্যকর পেয়েছি।

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

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