আপনি যখন যাচ্ছেন তখন কি আপনার কোডটি সংকলন করার কোনও সুবিধা আছে?


183

আমার সম্প্রতি একটি কাজের সাক্ষাত্কার হয়েছিল যাতে তারা আমাকে কিছু বাস্তব কোড লেখার জন্য একটি ঘন্টা দিয়েছিল। এটি কোনও বিশাল পরিমাণ নয়, সম্ভবত ১০০ লাইনের চেয়ে কম। প্রায় 45 মিনিটের পরে, আমি এটি সংকলন করেছি, এটি চালিয়েছি এবং এটি কাজে লাগিয়েছি। আমি 5-10 মিনিট সংকলন ত্রুটিগুলি এবং দু'টি ছোট ছোট বাগগুলি ব্যয় করতে ব্যয় করেছি, তবে সামগ্রিকভাবে এটি খুব মসৃণ ছিল। (ঘটনাচক্রে, আমি তাদের কাছ থেকে অফার পেয়েছি))

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

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

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

কেন এটি প্রাসঙ্গিক? আমার মতে এবং আমার অভিজ্ঞতার সাথে, সেমিকোলনগুলি অনুপস্থিত রয়েছে কি না, এবং অন্তর্নিহিত প্রোগ্রামটির যথাযথতার সাথে সামান্য কিছু করার সাথে জড়িত কিছু কোড সংকলনগুলি মূলত এলোমেলো কিনা তা নয়। (আমার কাছে, সংকলনের উপর ফোকাস করা ব্যাকরণ যাচাইয়ের জন্য প্রুফরিডিং ছাড়াই বানান-চেকের মাধ্যমে নিবন্ধ চালানোর মতো))

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

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

সুতরাং আমার প্রশ্নটি হ'ল: আমি এখানে কিছু মিস করেছি? আপনি যখন যাচ্ছেন তখন কম্পাইল করার আসলে কি কোনও উপকার আছে? বা এটি সফ্টওয়্যার সম্প্রদায়ের দ্বারা প্রচারিত কোনও রূপকথার মধ্যে যা আপনার ঘন ঘন আপনার কোডটি সংকলন করতে হবে?


54
হয় বা তা হয় বা আমার অভ্যাসগুলি খারাপ অভ্যাস বলে অভিহিত করা হয় যাদের বিভিন্ন অভ্যাস রয়েছে।
ক্যাপ্টেন কোডম্যান

9
@ ডকব্রাউন যদি শেষ লক্ষ্যটির সঠিক পণ্য থাকে তবে তুলনাটি বৈধ। একটি প্রোগ্রাম যা "রান করে" ভুলভাবে চালিত প্রোগ্রামের চেয়ে ভাল নয়। আপনার ব্যাকরণের ভুলগুলি সংশোধন করার জন্য বানান-চেকের প্রত্যাশার চেয়ে আপনি কমপাইলটি আপনার কোড পরীক্ষা করে দেখতে পারবেন না।
ক্যাপ্টেন কোডম্যান

7
আপনার কর্মপ্রবাহকে সঙ্কলন করা খুব সাবজেক্টিভ এবং ভাষা, পরিবেশ, আকার / প্রকল্পের জটিলতা ইত্যাদির উপর নির্ভর করে আইএমও বৃহত্তর উত্তরাধিকার প্রকল্পগুলির সমস্যা হওয়ার সম্ভাবনা বেশি।
pjc50

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

9
এটিও উল্লেখ করা উচিত যে নির্দিষ্ট ভাষা এবং আইডিই (জাভা / [এক্সলিপস | নেটবিয়ানস ইত্যাদি।), সি # / ভিজ্যুয়াল স্টুডিও, ...) এর জন্য, আইডিই ইতিমধ্যে টাইপ করার সাথে সাথে রিয়েল টাইমে পটভূমিতে সমস্ত কিছু সংকলন করছে in আপনি কোনও ভুল করেছেন কিনা তা সম্পর্কে আপনাকে তাত্ক্ষণিক প্রতিক্রিয়া লুপ প্রদানের প্রভাব। কেউ আশা করবেন যে আইডিই বিকাশকারীরা আপনার কাছে যাওয়ার সময় এই সংকলনটি সমর্থন করে কিছু গবেষণা করেছে।
ওগ্রে গীতসংহিতা 33

উত্তর:


223

আপনি যখন যাচ্ছেন তখন কম্পাইল করার আসলে কি কোনও উপকার আছে?

এখানে. এটি আপনাকে একটি সংক্ষিপ্ত প্রতিক্রিয়া লুপ দেয় - যা সাধারণভাবে ডিজাইন করার সময় (ইউআই, লেখার সফটওয়্যার, ভিজ্যুয়াল ডিজাইন ইত্যাদি ...) খুব ভাল জিনিস।

একটি সংক্ষিপ্ত প্রতিক্রিয়া লুপটির অর্থ এটি ঠিক করা আরও ব্যয়বহুল হয়ে ওঠার আগে আপনি খুব শীঘ্রই ত্রুটিগুলি দ্রুত ঠিক করতে পারেন।

আপনার উদাহরণ ধার করার জন্য, বলুন যে আপনি সি-জাতীয় ভাষায় কোডিং করছেন এবং }প্রোগ্রামের মাঝামাঝি কোনও জায়গা ভুলে গিয়েছিলেন ।

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

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


এখন, হ্যাঁ, শেষ ফলাফলটি একই, তবে সংশ্লেষ সংক্রান্ত বিষয়ে আপনার যথেষ্ট পরিমাণ সময় নষ্ট হয়েছে যে সংকলকটি আপনাকে সহায়তা করার জন্য রয়েছে - আপনি যখন যাচ্ছিলেন তেমন সংকলন করলে আপনি পরিমাণ সংক্ষিপ্ততর হতে পারেন।


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

12
@ ক্যাপিটেনকোডম্যান - আমি বলব যে কয়েকটি সংকলন ত্রুটি রয়েছে যার জন্য আপনাকে বেশ কয়েকটি কোডের মাধ্যমে খনন করতে হবে। বৃহত্তর কোডবেস এবং বৃহত্তর পরিবর্তন সেটগুলির ক্ষেত্রে এটি আরও সত্য।
ওডে

29
কখনও কখনও সংকলক আপনাকে ইঙ্গিতের পরিবর্তে ধাঁধা দেয় যেমন জিসিসি টেম্পলেট ত্রুটি।
pjc50

14
@ পিজেসি 50: একেবারে (পরবর্তী সংকলনের আগে একবারে অনেকগুলি পরিবর্তন না করে পরিচালনা করা সহজ, যাতে আপনি শেষ মুহূর্তে কী পরিবর্তন করেছেন তা সঠিকভাবে জানেন)।
ডক ব্রাউন

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

108

সংকলন হ'ল পরীক্ষার এক প্রকার, বিশেষত ভাষাগুলিতে যা হাস্কেল বা এমএল এর মতো প্রকারের ব্যাপক ব্যবহার করে । অন্যান্য ভাষায় এটি একটি সিনট্যাকটিক স্ক্যান যা আপনাকে খুব কম বলে।

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

সমস্ত বিল্ড সিস্টেম দ্রুত নয়। আমি (সি ++) প্রকল্প যেখানে কাজ মেক 30 সেকেন্ড মাত্র ব্যয় করবে পরিসংখ্যান 'Ting সবকিছু কিনা তা নির্ধারণ করতে এটি নির্মাণ বা না করা প্রয়োজন, এবং অধিকাংশ ফাইল কয়েক মিনিট সময় নিতে গড়ে তুলতে আপনি পরিবর্তনগুলি করেছিল হবে। আমরা প্রতি 10-15 মিনিটের চেয়ে ঘন ঘন এটি করতে অনিচ্ছুক ছিলাম। আপনার পাঞ্চ কার্ডের ডেক নিয়ে এবং কোনও পৃথক ভবনে নিয়ে যাওয়ার ক্ষেত্রে জড়িত সংকলন করার সময় কারও সন্দেহ নেই তার কোনও উপাখ্যান সরবরাহ করবে ...

যখন আপনি মনে করেন যে আপনি আপনার মাথায় একটি সম্পূর্ণ ধারণা ইউনিট করেছেন এবং এটি বৈধতা পেতে প্রস্তুত Comp এক মিনিট বা সপ্তাহে একবার কর্মপ্রবাহের উপর নির্ভর করে।


25
আপনি যখন আপনার পাঞ্চ কার্ডগুলি লোড করার জন্য সিস্টেমে নিয়ে যান, তখন নিশ্চিত হন যে আপনি কখনই এগুলিকে ফেলেছেন না কারণ এগুলি সঠিক ক্রমে ফিরিয়ে দেওয়া সত্যিকারের পিটা! আহ, সেই দিনগুলির জন্য যখন একটি প্রয়োজনীয় ডিবাগিং সরঞ্জাম ছিল একটি ইলাস্টিক ব্যান্ড।
gbjbaanb

3
আমি যখন প্রথম প্রোগ্রামিং শুরু করি তখন আমি আমার কোডটি সংকলন না করে কতটা কোড লিখতে পারি তা দ্বারা আমার অগ্রগতি পরিমাপ করেছিলাম - মূলত আমার মানসিক সংকলকটির গুণমান দ্বারা। প্রথমে এটি কয়েকটি চরিত্র ছিল, তারপরে কয়েকটি লাইন। এখন আমি এটি সম্পর্কে যত্ন নেই। আমি ছোট পরিবর্তনগুলির জন্য অনেকগুলি সংকলন করি আমি কেবল এর প্রভাবগুলি দেখতে চাই, প্রকল্পের কাঠামোগত বিন্যাসটি করার সময় আমি খুব কম সংকলন করি।
ফিল

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

2
আমি যখন চলে গেলাম তখন 1.5 মিলিয়ন এলওসি ছিল। নোট করুন যে লিনাক্স সি নয় সি ++; টেমপ্লেটগুলি গিসি-তে ধীর বলে মনে হচ্ছে এবং আপনি যদি এমন কিছু চালাক এবং দরকারী কাজ করেছেন যা সংকলন করতে ধীর হতে পারে, তবে এটি কী তা তৈরি করার জন্য কম্পাইলারটি প্রোফাইল করার সহজ উপায় নেই।
pjc50

21
@gbjbaanb আমি মনে করি যে " সোর্স কন্ট্রোলটি একটি ইলাস্টিক ব্যান্ড ছিল সেদিনগুলি" বলাই ভাল হবে । ;)
জেসনমারচার

35

সুতরাং আমার প্রশ্নটি হ'ল: আমি এখানে কিছু মিস করেছি?

হ্যাঁ: আপনার মন সংকলক নয়। একটি সংকলক প্রতি সেকেন্ডে এন প্রসঙ্গে সুইচ তৈরি করতে পারে, আপনার মন পারে না mind আপনার মন একদিনে কতগুলি প্রসঙ্গে পরিবর্তন করতে পারে তা কোড ভিত্তির সাথে অভিজ্ঞতা / পরিচিতি, কোডটিতে আপনি কতটা মানসিকভাবে নিমগ্ন, কোডটি কতটা পরিষ্কার, আপনি যে সমস্যাটি মোকাবেলা করছেন তা কতটা জটিল তা নির্ভর করে factors আপনি কতটা ক্লান্ত, যদি আপনি প্রায়শই বাধা পান বা কোনও শোরগোলের পরিবেশ এবং এই জাতীয় কিছু।

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

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

আপনি যখন যাচ্ছেন তখন কম্পাইল করার আসলে কি কোনও উপকার আছে?

আপনি আপনার যে পরিবর্তনগুলি তৈরি করছেন তার প্রভাব এবং পার্শ্ব প্রতিক্রিয়াগুলিতে আরও ফোকাস করার মঞ্জুরি দিয়ে আপনার মনকে যে প্রসঙ্গটি তৈরি করেছে তা হ্রাস করুন। এটি আপনাকে কম ক্লান্ত করে তোলে (এবং ভুলগুলির দিকে কম প্রবণতাও দেয়) এবং আপনার আউটপুটটির গুণমানকে বাড়িয়ে তোলে (যেমন আপনি একবারে একটি ফাইল পরিবর্তন এবং সংকলন করার সময় আপনি দশটি সংকলন ও পরিবর্তন করার চেয়ে কম পার্শ্ব প্রতিক্রিয়াগুলি নিশ্চিত করতে পারবেন)।

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

বা এটি সফ্টওয়্যার সম্প্রদায়ের দ্বারা প্রচারিত কোনও রূপকথার মধ্যে যা আপনার ঘন ঘন আপনার কোডটি সংকলন করতে হবে?

এটি সফ্টওয়্যার কম্যুনিটি দ্বারাও প্রচারিত হয় তবে এর পিছনে এটির ভাল কারণ রয়েছে।

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

আমার কাছে মনে হচ্ছে আপনার মাঝারি থেকে বৃহত লিগ্যাসি কোড ঘাঁটি (কয়েকশো বা কয়েক হাজার উত্স ফাইল) রক্ষণাবেক্ষণের অভিজ্ঞতা (কম) নেই have এই মনোভাবটি (যেমন "আপনি যেমন যান" সংকলন ") সর্বাধিক সহায়তা করবে এবং আপনি এই ধরণের অভ্যাস গঠন করেন this

আমি কল্পনা করব যে আপনার সাথে যারা লোকেরা পর্যবেক্ষণ করেছিল তারাও একইরকম উপসংহার টানেছে ("বড় কোড বেসগুলিতে আপনার কোনও অভিজ্ঞতা নেই")।


1
"দশটি সংকলন এবং পরিবর্তন করুন" - প্রচুর পরিমাণে পরিস্থিতি যেখানে এটি চেষ্টা করার জন্য ক্ষুদ্রতম অর্থবোধক ইউনিট; যেমন কোনও ফাংশনে এবং এর সমস্ত কল সাইটে নতুন প্যারামিটার যুক্ত করা।
pjc50

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

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

1
@ জেনসজি যা একটি যৌক্তিক ত্রুটি বলে মনে হচ্ছে: এটি সংকলিত কোড এবং শিট কোডের মধ্যে নির্বাচন করার বিষয়ে নয় বরং একাধিকবার সংকলনের কোনও সম্ভাব্য সুবিধা সম্পর্কে about
জর্জি

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

26

আমি মনে করি এখানে আরও কিছু পেশাদার স্নোববেরি রয়েছে। এর প্রভাবটি মনে হয় "যদি আপনার নিয়মিত সংকলন করার প্রয়োজন না থাকে তবে জটিল কিছু নিয়ে আপনি কখনই কাজ করেননি - আরও কিছু অভিজ্ঞতা পান এবং আপনি ঠিক যেমনভাবে কাজ করতে শিখলেন তখন ফিরে আসুন।"

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

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

আপনি যদি ধ্রুবক পুনঃসংশোধনের ভক্ত না হন তবে আপনি ভাল সংস্থায় রয়েছেন। ডোনাল্ড নথ:

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


এই সমস্ত বলা হচ্ছে ... আপনি যদি এমন একটি প্রসঙ্গে কাজ করছেন যেখানে সংকলন একটি মুক্ত ক্রিয়া, আপনি কেন করবেন না? বাড়িতে, ব্যক্তিগত প্রকল্পগুলিতে, আমি প্রতি 30 সেকেন্ডের মধ্যে একবার ctrl-S হিট করি এবং একটি আইডিইতে প্রায়শই প্রায়শই প্রায়শই "সংকলন" শর্টকাটটি রিয়েল-টাইম ত্রুটি হাইলাইট করার জন্য নিয়মিতভাবে কম্পাইলারের সামনের প্রান্তটি দিয়ে কোড চালায়। একটি বিনামূল্যে মধ্যাহ্নভোজন কেন পাস?


আমি একমত নই যে সংকলনটি নিখরচায়, বিভ্রান্তি ব্যয়বহুল! তবে অন্যথায়, ভাল উত্তর, ধন্যবাদ :)
ক্যাপ্টেন কোডম্যান

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

2
I hit ctrl-S about once every 30 seconds। আমি সম্ভবত প্রায়শই দ্বিগুণ সংরক্ষণ করি। এটা সত্যিই খারাপ অভ্যাস। কখনও কখনও আমি কোডের একটি লাইনের মাঝখানে সংরক্ষণ করব এবং তারপরে আবার সংরক্ষণ করব। যখনই আমি টাইপ না করে এক সেকেন্ডের জন্য ভাবতে থামি, আমি সংরক্ষণ করি।
ক্রંચার

21

আপনি যেতে যেতে সংকলন করার যোগ্যতা আছে। তবে আমি খুব সম্মত হই যে কার্যক্রমে থাকা একটি ঠিক কোডিং কৌশল।

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

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


5
শব্দার্থক এবং সিনট্যাকটিক ত্রুটির মধ্যে সংযোগটি হাইলাইট করার জন্য +1
ডক ব্রাউন

15

আপনার কোডটি পরীক্ষা করার সুবিধাগুলি আমি বুঝতে পারছি পাশাপাশি আপনি কেন সংকলন করছেন?

আপনি যখন সেই সাথে সংকলন করবেন না তখন আপনি কীভাবে আপনার কোডটি পরীক্ষা করবেন?

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

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


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

@ ক্যাপিটেনকোডম্যান: আমি মনে করি 100 টি লাইন কোড লেখার সময় প্রায় সবসময়ই ছোট ছোট প্রচুর অংশ থাকা উচিত যা স্বতন্ত্রভাবে এটির জন্য পরীক্ষা করা যেতে পারে। 100 লাইনের কোডের অর্থ সাধারণত 4 থেকে 15 ফাংশন (বা> 20, আপনি বব মার্টিনের স্টাইলে কোড করেন) এর মধ্যে কিছু বোঝায়।
ডক ব্রাউন

5
@ ক্যাপিটেনকোডম্যান: টিডিডিতে পরীক্ষার জন্য "অর্থপূর্ণ কিছুই" থাকে না। ক্লাসিক উদাহরণটি হ'ল আপনি একটি নতুন ক্লাস লিখতে চান (এটিকে ফু বলতে পারেন) তারপরে আপনি প্রথম কাজটি করুন একটি ইউনিট পরীক্ষা তৈরি করা এবং লিখুন new Foo();যা স্পষ্টতই ক্লাস সংজ্ঞাটি লেখেনি বলে সংকলন করতে ব্যর্থ হবে। টিডিডিতে এটি একটি সংকলক চালনার একটি বৈধ কারণ - এটি প্রমাণ করে যে আপনার ইউনিট পরীক্ষাটি (ব্যর্থ হয়ে) কাজ করছে।
slebetman

@ স্লেবেটম্যান: সেই সহায়ক মন্তব্যের জন্য ধন্যবাদ। আমি যুক্ত করতে চাই যে আইএমএইচও এটি টিডিডির মধ্যে সীমাবদ্ধ নয়। কোডের 100 টি লাইন লেখার সময়, আপনি যদি টিডিডি করেন বা না করেন তবে এর মধ্যে মাঝে মাঝে পরীক্ষা করার জন্য অর্থপূর্ণ কিছু থাকে।
ডক ব্রাউন

14

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

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

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

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


8

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

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

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


মজার বিষয় হল, সংকলনটি ধীরে ধীরে হলেও নিয়মিত সংকলনের এটি একটি ভাল কারণ । ভাল যুক্তি.
সলেসকে

3

পর্যাপ্ত অভিজ্ঞ প্রোগ্রামারের জন্য সংকলন কোড কখনও বাধা নয়।

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

আমি নিয়মিত সংকলন না করে সারাদিন কোড লিখি, তারপরে আমি আমার কোড দেওয়ার আগে সংশ্লেষের প্রতিবেদনগুলি কী সংশ্লেষের ত্রুটি এবং সতর্কবার্তা সংকলন করব এবং ঠিক করব ( "পরীক্ষা করার দরকার আছে এমন নোট সহ ) " । মাত্র কয়েক মিনিটের মধ্যে আমার 1000+ লাইন সি বা সি ++ কোড পরিষ্কার করতে কোনও সমস্যা নেই।

অন্যদিকে ডিবাগিং এবং পরীক্ষা করাতে কিছু সময় লাগে। লজিক ত্রুটিগুলি বিভিন্ন কারণে দেখা দেয় এবং আমার এখনও একটি সংকলক দেখা যায়নি যা আমাকে লিখতে সম্পূর্ণ ভুলে গিয়েছিল এমন সাব্রোটাইন সম্পর্কে বলবে বা খেয়াল করবে যে আমার বাইনারি গাছটি কাজ করে না কারণ node->leftএটি যখন করা উচিত ছিল তখন আমি আটকানো হয়েছিল node->right

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

পিএস - যদি আপনি এটি পড়ে কোডটি পর্যালোচনা পর্যবেক্ষণ করে দেখছিলেন তবে আমি আপনাকে ঘটনাস্থলে ভাড়া করতাম। একজন প্রো প্রতিটি সময় এটিই করে।


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

@par আপনার উত্তরের জন্য ধন্যবাদ; এটি জেনে রাখা ভাল যে আমি এই জাতীয় কোডগুলিই একমাত্র নই!
ক্যাপ্টেন কোডম্যান

3
@ ক্যাপিটেনকোডম্যান আমি ভাল করেই জানি যে সংকলক ত্রুটির চেয়ে যুক্তি ত্রুটিগুলি আরও कपटी। তবে কোনও সংকলক আপনাকে অনুপস্থিত কোড সম্পর্কে যেটি আমি বিতর্ক করতে চেয়েছিলাম সে সম্পর্কে আপনাকে বলতে না পারার বিষয়ে তাঁর দৃ his় বক্তব্য ছিল। আপনি যদি ইচ্ছাকৃত ভুল (বা অসম্পূর্ণ) কোডটি সংকলন করেন না ... তবে এটি বরং যুক্তিটিকে পরাস্ত করে যে সংকলকটি যে ত্রুটিগুলি ভুল করতে পারে না তা হ'ল আসল সমস্যা আইএমও। হেক, আমি ক্যারেটটি লাইনে যেখানে সন্নিবেশ করিয়েছি সেখানে আমাকে আরও কিছু কোড লিখতে হবে বলে সংকলকটিও ব্যবহার করি। তবে আমি খুব অলস।
ইয়ান গোল্ডবি

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

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

3

না, যতক্ষণ না আপনি পর্যাপ্ত পরিমাণ কোড (এবং একটি 'পর্যাপ্ত পরিমাণ' কোডার এবং কোড লেখা হচ্ছে তার উপর নির্ভর করে) না করা পর্যন্ত সংকলন বন্ধ রাখা অযৌক্তিক নয়।

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

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

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


আপনার দ্বিতীয় অনুচ্ছেদটি অস্পষ্ট; "অসাধারণ কোডার" নিয়মিত সংকলন করা উচিত কিনা তা আপনি পরিষ্কার করতে পারেন, আপনি এটি সম্পাদনা করতে চাইতে পারেন। (আপনি কি "টি" যুক্ত করেছেন এবং "না" "" নয় "তে পরিবর্তন করেছেন?)
ডগএম

@ ডাওগএম - তা অনেকটা।
gbjbaanb

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

2

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

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


1

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

আমার অভিজ্ঞতা খুব আলাদা: কম্পাইল ত্রুটি আমি পেতে কম 5% চলেছেন সিনট্যাক্স । আমি ভাষাটি ভালভাবে জানি, যখন আমি ত্রুটিগুলি পাই তখন বেশিরভাগ টাইপ ত্রুটি হয়, আমাকে বলে যে শব্দার্থবিজ্ঞানগুলি সঠিক নয়।

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

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

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

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

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

প্রসঙ্গ-স্যুইচিং আপনার মস্তিষ্কের জন্য ব্যয়বহুল, অতএব আপনি ছোট লেখার সাথে সাথে ছোট ত্রুটিগুলি ঠিক করা আরও কার্যকর হতে পারে।

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

আপনি বলছেন যে আপনি আপনার পাঠ্যের নীচে লাল রেখার মতো জিনিস অক্ষম করেছেন। কোনও ইমেল টাইপ করার সময় বা কোনও প্রযুক্তিগত নথি লেখার সময় আপনি কি তা করেন? তারপরে আপনাকে ভুলগুলি স্থির করার পরিবর্তে সমস্ত পৃষ্ঠা পুনরায় প্রুফ-পড়তে হবে।

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

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


1
আমি সাধারণত বিরক্তিকর সংকলক "বৈশিষ্ট্যগুলি" যেমন অটো-ফর্ম্যাটিং, আপনার পাঠ্যের নীচে লাল রেখাগুলি আঁকা ইত্যাদি বন্ধ করি কারণ আমি দেখতে পাচ্ছি যে এই বোকার মতো বৈশিষ্ট্যগুলি ছাড়াই আমি আরও উত্পাদনশীল।
ক্যাপ্টেন কোডম্যান

1

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

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

তারপরে একটি সংক্ষিপ্ত পরিমাণে সময় লেখার কোডটি আসে।

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

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


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

1

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

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


এই কি পূর্বে 16 উত্তর পোস্ট করা হয়েছে কিছুর উপর সারগর্ভ প্রস্তাব বলে মনে হচ্ছে না
মশা

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

@ ক্যাপিটেন কোডম্যান: এটি সংস্থাগুলিকে আরও ভাল বোধ করে এবং এটি "বীমা" এর একটি রূপ। এটি এমন কিছু যা অর্থ ব্যয় করে তবে বেশিরভাগ লোককে (পরিচালক সহ) "রাতে ভাল ঘুমায়।"
টম আউ

@ গ্যানাট: আমি যে বিষয়টি তৈরির চেষ্টা করছিলাম সেটি হ'ল বেশিরভাগ সুবিধাগুলি "কর্পোরেট" স্তরের সুবিধাগুলি এবং এটি এমন কিছু যা প্রোগ্রামের করণ করা উচিত কারণ বস তাকে বলেছিল, কারণ প্রোগ্রামার মনে করেন এটি সঠিক বা ভুল।
টম আউ

"সংক্ষিপ্ত প্রতিক্রিয়া লুপ" এর পক্ষে ভাল পয়েন্টগুলি ইতিমধ্যে এখানে তৈরি করা হয়েছে এবং এখানে খুব প্রথম উত্তরে ভালভাবে ব্যাখ্যা করা হয়েছে; আমি সত্যই দেখছি না যে "আজকালকার সংস্থাগুলি" সম্পর্কে খালি অনুমান করা কীভাবে ইতিমধ্যে যা বলা হয়েছিল তার চেয়ে উপযুক্ত কিছু যুক্ত করে
gnat

1

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

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

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

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


0

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

এই ছোট ছোট টুকরা পরীক্ষা করার জন্য, আপনাকে সংকলন করতে হবে।

এটি হতে পারে যে ইন্টারভিউয়ার এই পরিস্থিতিটিকে একটি ছোট প্রোগ্রামের সাথে বিভ্রান্ত করে যা এই পদ্ধতিতে ডিজাইন করা হয়নি।


0

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

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


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