প্রযুক্তিগত সাক্ষাত্কারে ওও ডিজাইন সম্পর্কিত প্রশ্নগুলি [বন্ধ]


14

আমি সম্প্রতি বেশ কয়েকটি সাক্ষাত্কারে অংশ নিয়েছি এবং সংস্থাগুলি "কয়েকবারের চেয়ে" [একটি সন্নিবেশ মডেল] "প্রশ্নের উত্তর দেওয়ার জন্য বলেছে।

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

কেভিনের প্রতিক্রিয়ার জন্য সম্পাদনা করুন *

উদাহরণস্বরূপ: একটি সম্পূর্ণ প্রশ্ন হতে পারে "একটি পার্কিং লট ম্যানেজমেন্ট সিস্টেম ডিজাইন করুন যা শূন্য স্লটগুলি সন্ধান করতে ব্যবহার করা যেতে পারে"

আমি 2 শ্রেণীর সঙ্গে সম্পন্ন করা যেতে পারে, ParkingLotএবং Slotঅথবা আমি যোগ করতে যেতে পারে IVehicleএবং Vehicleএবং Carএবং Motorcycleক্লাস। আমি রেখাটি কোথায় আঁকবো?

public class ParkingLot
{
   IVehicle Vehicle {set; get;}

   List<Slot> GetEmptySlots() { };
}

public class Vehicle : IVehicle
{
  Slot SlotNum {set; get;}
}

public class Slot
{
  int Row {set; get;}
  int Column {set; get; }
}

"একটি নকশা যাই হোক না কেন সমস্যা বলছেন কয়েক দশকের যান"।
blrfl

সর্বদা জিজ্ঞাসা করুন - আপনি কি এই সমস্যার জন্য একটি নির্দিষ্ট, সাধারণ উত্তর চান? অথবা আপনি জেনেরিক সমস্যার আরও দৃ answer় উত্তর চান?
ক্রিস চুদমোর

উত্তর:


10
  1. কিছুটা হলেও হ্যাঁ যে কোনও সমাধানের মাধ্যমে সিনট্যাক্স আবৃত্তি করতে বা তাদের উপায় অনুলিপি / অনুলিপি করতে পারে। আমরা এমন লোকদের নিয়োগ করতে চাই যারা সমস্যার সমাধান করতে পারে।

  2. তারা আশা করে যে আপনি নকশাটি পর্যাপ্তভাবে ডকুমেন্ট করবেন যাতে তারা এটি বুঝতে পারে (এবং এর চেয়ে বেশি কিছু নয়)।

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

এটা আমার জন্য সহায়ক হয়েছে। আমি কোড বানর চাই না, আমি চাই সফটওয়্যার ইঞ্জিনিয়ারদের।


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

1
@ নিক - ডুনো অনলাইন পরীক্ষাগুলি প্রথম স্থানে সন্দেহজনক উপকারী। ব্যক্তিগতভাবে, এটি দক্ষতার নকশা করার জন্য কিছু অন্তর্দৃষ্টি সরবরাহ করে।
তেলস্তিন

6

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

class ParkingLot {
 boolean isFull();
 void carEntered();
 void carExited();
}

এটি একটি স্পষ্ট ব্যবহারের কেস সন্তুষ্ট করে।


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

2
আমি প্রস্তাব দিচ্ছি যে কোনও কিছু ডিজাইনের আগে আমি সাক্ষাত্কারকারীর সাথে ব্যবহারের ক্ষেত্রে সম্মত হব।
কেভিন

1
এটি একটি নির্বোধ প্রশ্ন তোলে না। বিপরীতে, এটি কোনও প্রার্থী অস্পষ্ট প্রয়োজনীয়তা পরিষ্কার করতে সক্ষম কিনা তা আবিষ্কার করতে সহায়তা করে। এটি একটি প্রয়োজনীয় দক্ষতা।
ক্যামেরন স্কিনার

1
ইন্টারভিউওয়ালা যদি জানেন যে কোনও কিছুর নকশা শুরু করার জন্য পর্যাপ্ত তথ্য নেই It's
কেভিন ক্লাইনে

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

5

আপনি নিজের সম্পাদনায় এই প্রশ্নের একটি ব্যবহার প্রকৃতপক্ষে প্রদর্শন করেছেন, যেখানে আপনি কোনও কার্যক্ষম মডেল ডিজাইন করতে ব্যর্থ হন।

public class ParkingLot
{
   IVehicle Vehicle {set; get;}

   List<Slot> GetEmptySlots() { };
}

public class Vehicle : IVehicle
{
  Slot SlotNum {set; get;}
}

public class Slot
{
  int Row {set; get;}
  int Column {set; get; }
}

var parkingLot = new ParkingLot();
var v1 = new Vehicle();
v1.Slot = parkingLot.GetEmptySlots()[0];
parkingLot.Vehicle = v1; // WHAT!??

আপনি তৈরি Carএবং Motorcycleক্লাসের কথাও উল্লেখ করেছেন , যা আরও বিবেচনা না করে অনেক বোঝায় না। আপনার নকশা উপক্ল্যাশ করে কোনও লাভ হবে না Vehicle। আপনি যদি Motorcycleকোনও আচরণগত পার্থক্য ছাড়াই পরিচয় করিয়ে দেন তবে Vehicleআমি এটিকে ব্যর্থ বিবেচনা করব।

আপনি যদি একক Vehicleসমস্যাটি চিহ্নিত না করেন, তবে আমরা লাইভ সাক্ষাত্কারে বেশ কিছু করতে চাই। আপনি যদি এটি সংশোধন করে থাকেন (সম্ভবত এটি তৈরি করে List<IVehicle>), আমি এটি আপনার নকশার বিবর্তন দেখার জন্য একটি প্রাথমিক পয়েন্ট হিসাবে ব্যবহার করব। প্রয়োজনীয়তাগুলি মৌলিক হওয়ার একটি কারণ রয়েছে, এবং কোনও কার্যকর সংজ্ঞা ব্যবহারের কেস নেই - এটি বিশ্বরূপে কাজ করে।

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

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


3

আমি এগুলি জিজ্ঞাসা করতাম - যখন আমরা কোড তৈরির জন্য ক্লাস ডায়াগ্রাম তৈরি করি তখন ফিরে। আমি এখনও উপলক্ষে, কিন্তু নিয়মিত না। আমি প্রশ্নটি পছন্দ করি কারণ এটি আমাকে ব্যক্তিটিকে ভাবতে দেয়।

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


"আমি প্রশ্নটি পছন্দ করি কারণ এটি আমাকে সেই ব্যক্তিটিকে ভাবতে দেয়" -> আপনি যখন ব্যক্তির চিন্তাভাবনার দক্ষতা মূল্যায়ন করছেন তখন আপনি ঠিক কী খুঁজছেন? তারা কি সেই গতিতে সমস্যা সমাধান করে? এটা কি চূড়ান্ত সমাধান? তারা ক্লাস, ইন্টারফেস তৈরি করতে কত গভীর হয়? তারা কীভাবে ও.ও.পি ধারণা (উত্তরাধিকার, পলিমারফিজম ইত্যাদি) জানেন তা তারা কীভাবে প্রদর্শন করে?
নিক

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

3
  1. আমি কমপক্ষে 12 বছর আগে এই ধরণের সাক্ষাত্কার দেখেছি। এটিই আমি গত 6 বছর ধরে ব্যবহার করি। অভিজ্ঞতা দেখায় যে এটি 20 টি প্রশ্ন জিজ্ঞাসার চেয়ে 20 টির মধ্যে একটি স্কোর দেওয়ার চেয়ে কাজের জন্য আরও ভাল প্রার্থী নির্বাচন করে।

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

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


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

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

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

2

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

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

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

একটি লাইভ সাক্ষাত্কারে, আমি প্রার্থী যে আদর্শ পদক্ষেপ গ্রহণ করতে পারি তা হ'ল:

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

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


0

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

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


-1

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


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