যদি আপনার অ্যালগরিদমটি সঠিক হয় তবে এটি লিখতে আপনাকে কতক্ষণ সময় লাগবে তা বিবেচনা করে? [বন্ধ]


11

আমি সম্প্রতি জানতে পেরেছি যে ফেসবুকের একটি প্রোগ্রামিং চ্যালেঞ্জ ছিল যে সঠিকভাবে সম্পন্ন হলে আপনি স্বয়ংক্রিয়ভাবে একটি ফোন সাক্ষাত্কার পাবেন।

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

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

আমি এর সমাধান করতে পারে এমন কোনও কিছুর গণিত সমাধান সম্পর্কে জানতাম না, এবং আমি প্রতারণা করব বলে যেহেতু আমি এটির সন্ধান করতে চাইনি। তাই আমি চ্যালেঞ্জটি নিজের থেকে সেরাভাবে সমাধান করার চেষ্টা করেছি।

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

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


12
এটি এখানে গুরুত্বপূর্ণ - এটি কি আপনার পক্ষে যথেষ্ট সত্য?

2
আপনি কেন বিশ্বাস করেন যে কোনও বড় .com নামের জন্য কাজ না করা থেকে বোঝা যায় যে আপনি নিজের আকাঙ্ক্ষাগুলি হ্রাস করেছেন?
mouviciel

@ মউভিসিএল আমি আমার বৃহত্তর .com নামের সাথে কাজ করার আকাঙ্ক্ষাকে হ্রাস করতে চাইনি বরং আরও এমন একটি সংস্থার জন্য কাজ করার মতো যেখানে রিটার্নের মতো অন্য কিছু করে এমন একটি কোম্পানিতে কাজ করা প্রাথমিক ভূমিকা যেখানে আপনি কী করেন তা কেউই বোঝে না।
জেডি আইজ্যাকস

5
ফগ ক্রিক সফটওয়্যারটিতে এলওএল ফেসবুক এবং গুগলের সাথে অন্তর্ভুক্ত রয়েছে।
জর্জিসিসি

উত্তর:


42

বাস্তবে এটা করে ব্যাপার কতদিন এটা প্রদর্শিত হবে। যেটি 45 মিনিটের মধ্যে সমস্যার সমাধান করতে পারে তা হ'ল - অন্য সব সমান - 4 ঘন্টা সময় লাগে তার চেয়ে পাঁচগুণ বেশি উত্পাদনশীল, এবং তাই কোনও নিয়োগকর্তাকে আরও আকর্ষণীয় করে তোলে।

এটি বলেছিল, আপনি কেন এই সমস্যাটি সমাধান করতে চার ঘন্টা সময় নিয়েছিলেন তা বলবেন না ।

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

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


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

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

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

@ জনআইস্যাক্স প্রোগ্রামিং অনেকটা পিয়ানো বাজানোর মতো - আপনি নিজেরাই ভাল করতে পারেন তবে সত্যিই ভাল হওয়ার জন্য আপনাকে অভিজ্ঞ শিক্ষকের মাধ্যমে কীভাবে জিনিসগুলি ঠিক করা যায় তা শেখানো দরকার। কীভাবে আপনি ধাঁধাটি সমাধান করতে পারেন তবে কী "হার্ডটি এটি অনুকূল" অংশটি কঠিন তা কী আপনি ব্যাখ্যা করতে পারেন?

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

13

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

আমি পাঁচটি বিভিন্ন ধরণের সমস্যা সমাধানকারীদের সম্পর্কে ভাবতে পারি:

যারা...

  1. ... একটি পরিষ্কার এবং দক্ষ সমাধান দিয়ে সমস্যাগুলি দ্রুত সমাধান করতে পারে ।
  2. ... সমস্যাগুলি দ্রুত সমাধান করতে পারে তবে একটি নোংরা এবং অদক্ষ সমাধান দিয়ে।
  3. ... ধীরে ধীরে সমস্যাগুলি সমাধান করতে পারে তবে একটি পরিষ্কার এবং দক্ষ সমাধান দিয়ে শেষ করতে পারে।
  4. ... ধীরে ধীরে সমস্যাগুলি সমাধান করতে পারে তবে একটি নোংরা এবং অদক্ষ সমাধানের সাথে শেষ হয় ।
  5. ... হয় দ্রুত বা ধীরে ধীরে সমস্যাগুলি সমাধান করতে পারে না

একটি ফেসবুক শৈলীর পরীক্ষাটি স্পষ্টভাবে # 3, # 4, এবং # 5 পরীক্ষার্থীদের আগাছা করে কারণ এর একটি সময়ের সীমাবদ্ধতা রয়েছে, তাই আমরা জানি যে এই পরীক্ষাটি নিয়োগকারীদের জন্য যারা নির্ধারিত করেছেন যে তাদের কেবল # 1 বা সম্ভাব্য # 2 প্রার্থী নিয়োগ করা উচিত ( আরও স্ক্রিনিং উপর নির্ভর করে)।

কিছু উদাহরণ:

  • ফেসবুকের মতো নিয়োগকর্তা কেবল # 1 প্রোগ্রামারদের সন্ধান করতে পারেন, যেহেতু তারা সুপার-স্টার প্রোগ্রামারদের জন্য বিশাল বেতন বহন করতে পারে।
  • এমন কোনও নিয়োগকর্তা যা উচ্চ-পরিমাণে এক-বিক্রয় বিক্রয় রয়েছে (কিছু ওয়েব ডিজাইনের দোকানগুলির মতো) কেবলমাত্র একটি # 2 বিকাশকারী চাইবে , যারা সমান কার্যকর # 1 বিকাশকারীদের তুলনায় সস্তা।
  • একজন নিয়োগকর্তা একটি আছে যা বিশেষ সমস্যা ডোমেইন (যেমন ঋণ ভব সফ্টওয়্যার লেখার হিসাবে), একটি গ্রহণ পারে # 3 একটি ওভার ডেভেলপার # 1 ডেভেলপার, যেহেতু একটি দ্বৈত-ডিগ্রী প্রতিভা ডেভেলপার সুপার ব্যয়বহুল হতে পারে, অথবা তারা খুঁজে পাওয়া কঠিন হতে পারে।
  • এমন কোনও নিয়োগকর্তা যা বিভিন্ন কারণে যত্ন নেন না বা বাজেটের সীমাবদ্ধ নেই এটি একটি # 4 বিকাশকারীকে ঠিক থাকতে পারে ।
  • # 5 বিকাশকারী সংস্থাগুলি নিযুক্ত হন যা তারা জানেন না কী জানেন এবং সেই আবেদনকারীদের স্ক্রিন করতে ব্যর্থ হন।

5

হ্যানয়ের টাওয়ার? বিশ্ববিদ্যালয়ে আমার নতুন প্রশিক্ষণ কোর্সে আমার প্রথম প্রোগ্রামিং দায়িত্ব ছিল (ফিবোনাকির ঠিক পরে - হ্যাঁ, আমি সেই ফাংশনাল প্রোগ্রামিং ফ্রিক্সের সাথে ক্লাস করেছি :)। এবং আমি এমনকি কম্পিউটার বিজ্ঞানে নেই, আমি কম্পিউটার ইঞ্জিনিয়ারিংয়ে আছি।

এবং এখনও, বেশিরভাগ তথাকথিত 'প্রোগ্রামাররা' এই ধরণের অ্যালগরিদম সঠিকভাবে লিখতে পারে না, কারণ বেশিরভাগ প্রোগ্রামাররা ভয়ঙ্কর। (যুক্ত মজাদার জন্য ফিজবজ অনুসন্ধান করুন)

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

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

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


3

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

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


0

সময় মেটার্স তবে আপনি যদি বেশি সময় নিচ্ছেন তবে আপনি বোকা হয়ে উঠবেন এমন ধারণাটি পাবেন না। অনেক লোকের কাছে "মুখস্থ" জিনিস থাকে। তারা পুনরাবৃত্তির মতো কৌশল প্রয়োগ করার অনুশীলন করে যাতে এটি 2 সিডি প্রকৃতি হয়ে যায়। এটি তাদের চৌকস নয়, তারা কেবল 2 সিডি প্রকৃতির বিন্দুতে অনুশীলন করেছে এবং আপনিও পারেন!

নিম্নলিখিত গণিত সমস্যা বিবেচনা করুন: 2 + 2 =?

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


-1

আপনি কিছু করতে কতটা সময় ব্যয় করেছেন তা মানুষ সত্যিই যত্ন করে না; শুধু আপনার সময়সীমা এবং সব ভাল পূরণ।


7
সুতরাং যখন সময়সীমাটি "এখন থেকে 45 মিনিট" হয় এবং আপনি চার ঘন্টা পরে শেষ করেন, লোকেরা যত্ন নেয়।

1
মেহরদাদের অর্থ হ'ল সময়সীমাটি পূরণ করতে আপনি ওভারটাইম কাজ করতে পারেন: ডি
কোয়ান্ট_দেব

1
যদি আপনাকে অতিরিক্ত সময় কাজ করতে হয় তবে অন্যান্য দেবদের জন্য অতিরিক্ত সময়ের প্রয়োজন হবে না - যখন
পোপটি সত্যই পাখায়

-1

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

যাইহোক, এটি বৃহত্তম কোম্পানীর একটি, যাতে তারা যা খুশি করতে পারে। তবে সময়সীমা আইএমএইচও-র সবথেকে খারাপ কারণ, আমি সবসময় চাপা মনে করি, তাড়াহুড়ো করি, সবকিছু পরিষ্কার করতে পারি না, এবং সমস্ত বিবরণে মনোনিবেশ করতে পারি না যা আসলে কাজ করার সময় খুব গুরুত্বপূর্ণ। :) অবশ্যই আপনি সমাধানগুলি দ্রুত সমাধান করতে পারবেন, যেমন, অ্যাডমিনের অ্যাক্সেস সেট করুন যাতে সবকিছু কাজ করে + 'SELECT * FROM pass WHERE usr == ' + user_input, তবে যে কোনও সুরক্ষিত এবং ভালভাবে লিখিত কাজের জন্য আমি গর্বিত হব, আমার কিছুটা সময় লাগবে এবং 45 মিনিট সত্যিই বেশ তীব্র।


1
আমি তাদের মনে করি যে তারা এমন লোকদের চায় যারা কেবল হ্যানোয়ের টাওয়ার সমস্যাটি স্মরণ করে (এটি একটি সর্বোত্তম)।
কোয়ান্ট_দেব

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

এই জাতীয় পরীক্ষায় তারা প্রয়োজনীয়ভাবে "ভাল ইন্টারফেস ডিজাইন" এবং "নদীর গভীরতানির্ণয়" খুঁজছেন না - আমি আশা করব যে তারা সমস্যাটি বোঝার জন্য এটি বোঝার এবং এটি সমাধানের জন্য একটি অ্যালগরিদম গঠনের দক্ষতা দেখতে চায়। ভাষা যদি কোনও সীমাবদ্ধতা না ছিল, জাভা এবং অ্যাকলিপসের মতো কিছু ব্যবহার করা আমি শেষ কাজ করতাম। আমি পাইথন এবং একটি সর্বনিম্ন পাঠ্য সম্পাদক / কমপ্যাক্ট আইডিই ব্যবহার করব। (আপনি নিজে জাভা ব্যবহার করবেন বলে বলছেন না; কেবল বলুন '...)
9:30
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.