Thursday, June 3, 2021

Googles Salary

#GooglesSalary অনেকেই আমাকে বলেছিলেন, ভাইয়া গুগল এর বেতন নিয়ে একটা পোস্ট করবেন..? অনেকেই এটা নিয়ে কনফিউজড। তবে আমি জানি না, আপনারা কেন গুগল এর বেতন নিয়েই পড়ে আছেন। যায় হোক, আজকেই শেষ এই ব্যপারে আমি আলোচনা করবো। সাধারণত বড় বড় মাল্টি ন্যাশনাল কোম্পানিতে তাদের বেতন নিয়ে কথা বলতে মানা করা হয়। যদি কেউ বেতন নিয়ে পাব্লিকলি কিছু বলে তাহলে তাদেরকে বাদ করে দেওয়া হয় কিংবা তাদের বিরুদ্ধে কঠিন পদক্ষেপ নেওয়া হয়। ঠিক এই রকম প্রতিষ্ঠান কোরা ও। যায় হোক, এই জন্যই গুগল এর বেতন নিয়ে অনেক জটিলতা থাকে। কেউ নির্ভরযোগ্য ভাবে আপনাকে বলবে না। আর তাছাড়া গুগল এর বেতন নির্ভর করে অনেকটা দেশ ভেদেও একই সাথে লেভেল ভেদে। যেমন, আপনি যদি সুইজারল্যান্ড জব করেন, তাহলে সেটা কাউন্ট করা হয় ভিন্ন ভাবে। সবথেকে বেশি বেতন সুইজারল্যান্ডকে দেওয়া হয়। এর এভারেজ প্রতিবছরে বেতন 1,44,000$। এর পর আছে আমেরিকা যার এভারেজ বেতন প্রতিবছরে, 1,34,000$, এর পরে যথাক্রমে স্পেন, ব্রাজিল, UK, কানাডা এর অবস্থান। এদের বেতনের ক্রম প্রতি বছরে এভারেজ 1,19,000$ , 1,18,000$ , 88,000$ , 87,000$ হাজার ডলার। তারমানে সহজেই বুঝে গেছেন, এইখানে দেশটা কতোটা ভ্যারিফিকেশন হয়। সেই সাথে আপনার কাজ, অভিজ্ঞতা, কমিশন এই গুলাও প্রতিবছর বেতন বৃদ্ধির কারণ হয় ( base + bonus + stock )। আপনি কোন স্তরে রয়েছেন তা নির্ভর করে। আপনার কত বছর অভিজ্ঞতা থাকতে পারে বা আছে সেটা প্রভাব ফেলে। যেমন :--> L3 এন্ট্রি স্তর। এই লেভেল এ আপনাকে প্রতিবছর ১,২২,০০০ ডলার দিবে। এর সাথে যুক্ত হবে স্টক প্যাকেজ এর ৪০,০০০ হাজার ডলার আর বোনাস ২০,০০০ হাজার ডলার। তাহলে মোট, প্রতি বছরে আপনি L3 তে ইনকাম করবেন সব মিলে ১,৮২,০০০ ডলার। সেই সাথে আপনার লেভেল যতো উপরে উঠবে যেমন, L4, L5 কিংবা ........... ততো আপনার টাকার পরিমাণ বাড়বে সেই সাথে স্টক, প্যাকেজ এবং বোনাসও বৃদ্ধি পাবে। তবে এটার সাথে অবশ্যই দেশটাও ইনক্লুয়িড হবে। এভারেজ এ একজন সফটওয়্যার ইঞ্জিনিয়ার এর বেতন 129K। তার মানে এটাকে আপনি ১২ দিয়ে ভাগ করলে, 10.75k আসবে। যা বাংলাদেশী টাকায়, প্রতিমাসে ৮০ টাকা করে ডলার রেট ধরলে, ৮ লাখ ৬০ হাজার টাকা। আর প্রতি বছর এ আপনার বেজ, বোনাস, স্টক এই গুলা দিয়ে ক্যালকুলেট করলে ( ১,৮২,০০০ ÷ ১২ ) = ১৫,১৬৬ ডলার। একে ৮০ টাকা রেট দিয়ে গুণ করলে দাঁড়ায়, ১২,১৩,৩৩৩ টাকা। এটা শুধুমাত্র সফটওয়্যার ইঞ্জিনিয়ার এর ক্ষেত্রে। এইছাড়াও গুগলে একাধিক পদ ও পজিশান আছে সেখানে বার্ষিক ৫৫,০০০ হাজার ডলার থেকে 1M++ পর্যন্তও আছে। তবে সেটা পদ আর লেভেল এর উপরে নির্ভর করে থাকে। আশাকরি সবাই বুঝে গেছেন। গুগল এর বেতন নিয়ে আশাকরি আর কনফিউশন থাকার কথা নয়। সেই সাথে গুগল আছে, এইখানেও সার্চ করে অনেক ইনফরমেশন আরও জেনে নিতে পারেন। ধন্যবাদ

Wednesday, June 2, 2021

গুগল এর জব নিয়ে মানুষের করা সেরা ৯টি বাছাইকৃত বিস্তারিত প্রশ্নের উত্তর

#গুগল_এর_জব নিয়ে মানুষের করা সেরা ৯টি বাছাইকৃত বিস্তারিত প্রশ্নের উত্তর :--> প্রশ্ন ১. ভাইয়া #গুগল এর সফটওয়্যার ইঞ্জিনিয়ার হতে গেলে কি কি করতে হবে..? উত্তর :--> গুগল ওয়ার্ল্ড ওয়াইড একটা প্লাটফরম। সারাবিশ্বের প্রায় সবাই ই এই প্লাটফরম এ নিজেকে নিয়ে যেতে চায়। তবে এটার জন্য অনেক পরিশ্রম + অধ্যবসায় এর প্রয়োজন পড়ে। যারা ছোটবেলা থেকেই প্রোগামিং এ ভালো বা যাদের কোডিং করতে অনেক ভালো লাগে তারা এই প্রতিযোগিতায় অন্যদের থেকে একটু বেশীই এগিয়ে থাকে। আসলে আমরা গুগল এর জব বলতে সাধারণত সফটওয়্যার ইঞ্জিনিয়ারকেই বেশি জানি। কিন্তু গুগল এ সফটওয়্যার ইঞ্জিনিয়ার ছাড়াও আরও ২০০++ জব আছে। আমরা সেইসব ব্যাপারে অনেকেই জানি না বা জানতেও চাই না। তবে এই ব্যাপারে কথা বলতে গেলে পোস্টটা অনেক বড় হয়ে যাবে। যদি তুমি কোডিং এ অনেক পাকা হয়ে থাক, তাইলে গুগল তোমাকেই প্রিফেয়ার করবে। প্রশ্ন ২. গুগল এ আ্যপ্লাই করার জন্য মিনিমাম যোগ্যতা কি...?? উত্তর ২ : গুগল সহ বিশ্বে যতো বড় বড় জব প্লেস আছে, সেইগুলাতে সার্টিফিকেট কোন ভেরিফাইড করে না। করে শুধু মাত্র তোমার ভিতরে কতোটুকু মেধা আছে সেটা। গুগল এ জব করার জন্য যে তোমাকে CSE বা Software Engineer বা বিভিন্ন ইঞ্জিনিয়ারিং ডিপার্টমেন্ট এর হতে হবে তেমন টাও না। তুমি যদি SSC বা HSC পাশ করেও কোডিং খুব ভালো ভাবে করতে পার তাইলে তারা তোমাকেই ডেকে নিবে। তাই বলা যেতেই পারে গুগল সহ বিশ্বের বড় বড় জব প্লেস গুলাতে সার্টিফিকেট এর থেকে ক্রিয়েটিভিটি দেখে। তারা তোমাকে যাচাই করে নিবে আসলে তোমার মধ্যে কতোটুকু মেধা আছে কিছু সৃষ্টি বা কিছু বানানোর জন্য আর সেই সাথে তোমার বেসিক কতোটা স্টং। যদি তুমি সেইদিক থেকে কোয়ালিফাই হও তাইলে তুমি কোয়ালিফাইড। প্রশ্ন ৩। ভাইয়া গুগল এর জন্য কোন কোন প্রোগ্রামিং ল্যাংগুয়েজ জানা খুব বেশী দরকার..?? উত্তর ৩. এটা অনেক সহজ সেইসাথে জটিল একটা প্রশ্ন। তার কারণ গুগল এর ইন্টার্ভিউ বোর্ড এ প্রশ্ন করা হয়, তুমি প্রোগ্রামিং ল্যাংগুয়েজ এর কোন ল্যাংগুয়েজ টা সবথেকে ভালো জানো। তখন কেউ C টা ভালো পারে আবার কেউবা C++ আবার কেউ জাভা আবার কেউ জাভা স্কিপ্ট আবার কেউ বা পাইথন যেটাই হোক না কেন, ধরো তুমি জাভাটা ভালো পার। তাইলে তারা তোমাকে জাভা থেকেই প্রশ্ন করবে, কখনো অন্য কোন প্রোগ্রামিং ল্যাংগুয়েজ থেকে প্রশ্ন করবে না। তবে সেই প্রশ্ন গুলা এমন টাইপ এর হবে ঠিক যেমন, একটা খড়ের গাদার মধ্যে একটা সুঁই খোঁজার মতো অবস্থা। তারমানে তোমাকে সেই প্রোগ্রামিং ল্যাংগুয়েজ এতোটাই ভালো জানতে হবে যে সেটার মধ্যে কোন প্রকারের খুঁদ থাকা যাবে না। প্রশ্ন ৪ :--> গুগল এর ইন্টারভিউ বোর্ডটা কেমন...?? উত্তর ৪ : গুগল এ সবমিলে ৫টা স্টেপ থাকে। ( ১. সিলেকশন ২. ফোন ইন্টারভিউ ৩. ফোন ইন্টার্ভিউ ২ ৪. মক টেষ্ট ( ৫ ) ৫. লাস্ট সিলেকশন )। প্রথম দুইটা ফোন ইন্টারভিউ এর সময় ৩০-৪৫ মিনিট এর হয়ে থাকে। গুগল ইঞ্জিনিয়ার রাই এই ভাইভা গুলা নিয়ে থাকে। ৩-৪ জন গুগল ইঞ্জিনিয়ার থাকে। আর মক টেষ্টটা প্যাকটিকেল। তোমাকে ৫টি মক টেষ্ট দিতে হবে, এই টেস্ট এর ও সময় ৩০-৪০ মিনিট। নিজের হাতে সাদা একটা বোর্ড এ তাদের সামনে কোডিং লিখে দিতে হয় বা ডক ফাইল এ কোডিং লিখতে হয়। এটা তোমার উপর ভ্যারি করবে যে তুমি কোনটাতে লিখতে পছন্দ করো। অনেক এক্সপার্ট প্রোগ্রামাররা সারাজীবন কম্পিউটার এই প্রোগ্রাম করে এসেছে, কিন্তু কখনোই তারা প্রোগ্রাম নিজের হাতে লিখে নাই। এই ক্ষেত্রে এটা অনেক বড় ভূমিকা পালন করবে। এই ক্ষেত্রে পাইথন এ কোড করা অনেক সহজ হবে কারণ পাইথন এ array ba symbol তেমন নেই বললেই চলে। যে কোড গুলা পাইথন এ আছে, সেইগুলা হাতে লিখা অনেক সহজ অন্যান্য প্রোগ্রামিং ল্যাংগুয়েজ এর থেকে। এই জন্য আমার মতে পাইথন বেস্ট। দ্যান লাস্ট সিলেকশনটা টিম ম্যানেজমেন্ট এর উপর ভ্যরি করবে যেটা তাদের নিজস্ব ডিসকাশন। প্রশ্ন ৫. ভাইভা বোর্ড এ কি কি প্রশ্ন বেশী করা হয়ে থাকে..?? উত্তর ৫. ভাইভা বোর্ড গুলোতে সবথেকে বেশী প্রশ্ন করা হয়ে থাকে, ডাটা স্টার্কচার, ফ্লো চার্ট, এলগরিদম ( ৬৫% প্রশ্নগুলাই এই ৩টা টাইপ এর মধ্যে করা হয়ে থাকে. এই ছাড়াও আমি আমার ইন্টারর্ভিউ প্রশ্ন বা সফটওয়্যার ইঞ্জিনিয়ার ( https://m.facebook.com/story.php?story_fbid=295326392315927&id=106611787854056&_rdr ) সেই সাথে সফটওয়্যার ইঞ্জিনিয়ার বাদে অন্যান্য সেক্টর এর ইন্টারর্ভিউ কোশ্চেন ( https://m.facebook.com/story.php?story_fbid=243097754205458&id=106611787854056&_rdr ) সবার সুবিধার্থে দিয়ে দিলাম। প্রশ্ন ৬. আমি কি গুগল এর সফটওয়্যার ইঞ্জিনিয়ার হবার স্বপ্ন দেখতে পারি..?? উত্তর ৬ : কেনো নয়। যদি তোমার মধ্যে স্কিল থেকে থাকে তাইলে তুমিও হতে পারবা একজন গুগলার। আমরা সবাই যেমন ভাবি যে, গুগল এর সফটওয়্যার ইঞ্জিনিয়ার হতে গেলে মনে হয়, এলিয়েন টাইপ এর কিছু হতে হয়। এটা ভূল চিন্তা-ভাবনা। আসলে এতোটাও জটিল কোন কিছুই না। আসলে আমি নিজেও সর্ব প্রথম এর দিকে এটাই ভাবতাম তবে, গুগল জব এ ইন্টার্ভিউ দেবার পরের থেকে আমার এই চিন্তাটা বাদ হয়ে গেছে। তাই যেহেতু এটা আমি নিজেই ফেইস করেছি তাই এই ব্যাপারে আমার অনেক ধারণা হয়ে গেছে। সেইদিক থেকে বলতেই পারি, এটা কঠিন তবে এতোটাও কঠিন কিছু না ঠিক যেমনটা আমরা ভাবি। আর একটু লক্ষ্য করলেই দেখতে পাবে, বাংলাদেশ থেকে প্রতি বছর অনেক মানুষ এখন গুগলে জব করছে বা পাচ্ছে। আর সব থেকে বড় কথা গুগল প্রচ্চুর পরিমাণে ফ্রেন্ডলি। তাদের ইন্টারর্ভিউ প্রসেস থেকে শুরু করে সবকিছু এতোটা পরিমাণে ফ্রেন্ডলি যা তোমাকে সাহস ও মনোবল বৃদ্ধি করতে হেল্প করবে। প্রশ্ন ৬. গুগল এর সফটওয়্যার ইঞ্জিনিয়ার হবার ক্ষেত্রে আমার পরামর্শ টা কি..?? 6. বস হয়ে যেতে হবে প্রোগ্রামিং এ। চোখ কান বন্ধ করে দিনের মধ্যে ৬-৭ ঘন্টা শুধু প্রোগ্রামিং করে যেতে হবে আর সেই সাথে জটিল জটিল প্রব্লেম গুলার সমাধান এর ওয়ে খুঁজতে হবে আর সেই সাথে করতে হবে। যদি তুমি এইভাবে করতে থাক,তাইলে নিজের মধ্যেই অন্যরকম একটা শক্তি আবিষ্কার করে ফেলবে। আর যখন সবকিছু করতে আনন্দ লাগবে, বোরিং না লেগে তখন ই ধরে নিবে তুমি এখন স্কিলড। যে কোন একটি প্রোগ্রামিং ল্যাংগুয়েজ এ বস হয়ে যাও, সেই সাথে অন্যান্য প্রোগ্রামিং ল্যাংগুয়েজ বেসিক জানো, প্রজেক্ট করো, অনলাইন জাজ এ মিনিমাম ৬০০-১০০০ প্রব্লেম স্লভিং করো, তাহলে এটা তোমাকে আত্ববিশ্বাস দিবে। ভালো একটি CV বানাও, যেটা সবথেকে বেশি ইম্পরট্যান্ট। CV নিয়ে আমার এই লেখাটা ফলো করতে পার ( https://m.facebook.com/story.php?story_fbid=180333427148558&id=106611787854056&_rdr ) যা তোমাদের ভালো কাজে দিবে। কোথাও ইন্টার্নি বা জব করো। এটা + পয়েন্ট। গুগল এর সফটওয়্যার ইঞ্জিনিয়ার এর ইন্টার্নি নিয়েও আমার লেখা পোস্ট আছে ( https://m.facebook.com/story.php?story_fbid=145308647317703&id=106611787854056&_rdr ) চাইলে এটাও ফলো করতে পার। সেই সাথে চাইলে গুগলের হার্ডওয়ার ইঞ্জিনিয়ার ( https://m.facebook.com/story.php?story_fbid=299559588559274&id=106611787854056&_rdr ) এর জন্যও আবেদন করতে পার কিংবা কোন সফটওয়্যার কোম্পানিতে জব করতে পার। সেই সাথে গুগলে এক সাথে কয়েকটি অফিস এ অ্যাপ্লিকেশান করো। ইনশা-আল্লাহ হয়ে যাবে, যদি সবকিছু ঠিক মতো ফলো করো। প্রশ্ন ৭. ভাইয়া আমি তো EEE তে পড়ছি বা অন্যান্য ডিপার্টমেন্ট এ পড়াশুনা করছি, আমি কি গুগল বা নাসা বা অন্য কোথাও সফটওয়্যার ইঞ্জিনিয়ার হতে পারবো.? উত্তর : অবশ্যই কেনো নয়। তুমি যদি গুগল বা মাইক্রোসফট বা অন্যান্য বড় বড় জব প্লাটফরম প্লেস গুলোর দিকে তাকাও তাইলে দেখতে পারবে সেইখানকার বেশীর ভাগ ইঞ্জিনিয়ার গুলোই অন্যান্য ডিপার্টমেন্ট এর। আসলে এই সব প্লাটফরম গুলোতে সার্টিফিকেট বা তুমি কোন ডিপার্টমেন্ট থেকে পড়াশুনা শেষ করেছ সেইগুলা দেখার থেকে তারা দেখে থাকে তোমার মধ্যে কি স্কিল আছে সেটা। তুমি প্রোগ্রামিং সমন্ধে আসলে ঠিক কতোটুকু জানো, তোমার ব্যাসিক কতোটা স্টং আর সেইসাথে তোমার ক্রিয়েটিভিটি কতোটা হাই। তারা শুধু এইগুলাই দেখে থাকে, এর বাইরের কিছুই তারা দেখে না। যদি তারা দেখে তুমি তাদের কাজগুলো করার উপযুক্ত তারা তোমাকেই সিলেক্টেড করে নিবে তাই এইগুলা নিয়ে না ভেবে যদি তোমাদের সত্যিই ইচ্ছা থাকে এমন কিছু করার বা হওয়ার, তাইলে আমার মতে তোমাদের এখন থেকে মনোযোগ হওয়া উচিৎ। এখন থেকে নিজেকে ওইভাবে গড়ে তোলো তাহলে দেখবে তুমি পারবে তাদের একজন হতে। প্রশ্ন ৮. ভাইয়া গুগল এ জব করার জন্য কোন নির্ধারিত বয়স আছে কি..?? উত্তর : আমার জানা মতে নেই। তার কারণ আমার দেখা + জানা মতে গুগল এ এমন অনেকেই আছেন, যাদের বয়স ৬০++। ইভেন আমি এমন কয়েকজন কেও দেখেছি যে গুগল এ সফটওয়্যার ইঞ্জিনিয়ার হয়েছে কিন্তু তার বয়স মাত্র ১৩। এইরকম অনেক এই আছে। এই থেকেই বুঝা যায়, গুগল বা এই লেভেল এর প্লাটফরম গুলোতে বয়স, সার্টিফিকেট, ডিপার্টমেন্ট কোন ফ্যাক্ট করে না। ফ্যাক্ট করে যোগ্যতা। প্রশ্ন ৯. ভাই আপনি তো বলেছিলেন, গুগল বা ওয়ার্ল্ড ওয়াইড জব গুলোতে সার্টিফিকেট তেমন দেখে না তাইলে এই ক্ষেত্রে ভিসা পেতে কি কোন প্রব্লেম হবে.? উত্তর : যদি আপনি গুগল এর মক টেষ্ট এ সিলেক্টেড হন, তাইলে তারা আপনাকে সামনা সামনি ইন্টার্ভিউ নেওয়ার জন্য কল করবে। যেহেতু আমরা বাংলাদেশি সেহেতু এটা ইন্ডিয়া বা এর আশেপাশের কোন দেশ এ হবে। তারমানে আপনার আশেপাশের যে দেশগুলোতে গুগল এর অফিস আছে সেইখানে দিতে পারবেন বা আপনি ইচ্ছাকরলে কোন কান্টি নিজের থেকেই সিলেকশন করে নিতে পারবেন। আর এর জন্য ভিসা থেকে শুরু করে সবকিছুই গুগল কর্তৃপক্ষ দিবে তাই এইখানে টেনশান এর কিছুই নেই। আশাকরি এই পোস্ট এ গুগল নিয়ে অনেক বিস্তারিত কিছু আমি তুলে ধরেছি, যা প্রতিটা মানুষকে হেল্প করবে।

Monday, May 31, 2021

C programming Interview Question

আজকে আপনাদের একটা লিস্ট দিলাম C প্রোগ্রামিং এর উপরে। এইখানে যে প্রব্লেম গুলা দেওয়া আছে, সেই প্রব্লেম গুলোই বিভিন্ন #চাকরীতে ইন্টার্ভিউতে প্রশ্ন করা হয় সেই সাথে এটা শুধুমাত্র ইন্টার্ভিউ এর জন্য না, ভার্সিটিতে প্রোগ্রামিং এর উপরে এক্সাম কিংবা বিভিন্ন প্রতিযোগীতামূলক প্রোগ্রামিং এর ক্ষেত্রেও এই উদাহরণ এর টাইপ গুলোই আসে। তাই বলা যেতেই পারে C প্রোগ্রামিং এর জন্য এই প্রশ্ন গুলো অনেক বেশী ইম্পরট্যান্ট, সেই সাথে এইখানে যে প্রব্লেম গুলা দেওয়া আছে তার ৯৮% প্রব্লেম গুলায় কাজে লাগবে। Program examples, #Interview Complete List. Frequently asked C programs in interview : 1. Write a c program to check given number is perfect number or not. 2. Write a c program to check given number is Armstrong number or not. 3. Write a c program to check given number is prime number or not. 4. Write a c program to check given number is strong number or not. 5. C program to check a number is odd or even. 6. Write a c program to check given number is palindrome number or not. 8. Write a c program to check given string is palindrome number or not. 7. Write a c program to solve quadratic equation. 8. Write a c program to print Fibonacci series of given range. 9. Write a c program to get factorial of given number. 10. Write a c program for Floyd’s triangle. 11. Write a c program to print Pascal triangle. 12. Write a c program to generate multiplication table. 13. Write a c program to print ASCII value of all characters. 14. C program to print hello world without using semicolon 15. Write a c program which produces its own source code as its output C program with numbers : 1. Write a c program to reverse any number. 2. Write a c program to find out sum of digit of given number. 3. Write a c program to find out power of number. 4. Write a c program to add two numbers without using addition operator. 5. Write a c program to subtract two numbers without using subtraction operator. 6. Write a c program to find largest among three numbers using binary minus operator. 7. Write a c program to find largest among three numbers using conditional operator 8. Write a c program to find out generic root of any number. 9. Write a c program to find out prime factor of given number. 10. Write a c program to find out NCR factor of given number. 11. How to convert string to int without using library functions in c 12. Program in c to print 1 to 100 without using loop 13. C program for swapping of two numbers 14. Program to find largest of n numbers in c 15. Split number into digits in c programming 16. C program to count number of digits in a number Recursion : Example of recursion in c programming L.C.M and H.C.F. : 1. Write a c program to find out L.C.M. of two numbers. 2. Write a c program to find out H.C.F. of two numbers. 3. Write a c program to find out G.C.D. of two numbers. Swapping : 1. Write a c program to swap two numbers. 2. Write a c program to swap two numbers without using third variable. 3. Write a c program for swapping of two arrays. 4. Write a c program for swapping of two string. Conversion ( Number System ) : 1. Write a c program to convert decimal number to binary number. 2. Write a c program to convert decimal number to octal number. 3. Write a c program to convert decimal number to hexadecimal number. 4. Write a c program to convert octal number to binary number. 5. Write a c program to convert octal number to decimal number. 6. Write a c program to convert octal number to hexadecimal number. 7. Write a c program to convert hexadecimal number to binary number. 8. Write a c program to convert hexadecimal number to octal number. 9. Write a c program to convert hexadecimal number to decimal number. 10. Write a c program to convert binary number to octal number. 11. Write a c program to convert binary number to decimal number. 12. Write a c program to convert binary number to hexadecimal number. 13. C program for addition of binary numbers . 14. C program for multiplication of two binary numbers. 15. C program fractional binary conversion from decimal. 16. C program for fractional decimal to binary fraction conversion. 17. C program to convert decimal number to roman. 18. C program to convert roman number to decimal number. 19. C program to convert each digits of a number in words 20. C program to convert currency or number in word. Conversion ( Unit ) : 1. C program for unit conversion. String : 1. Write a c program to convert the string from upper case to lower case. 2. Write a c program to convert the string from lower case to upper case. 3. Write a c program to delete the all consonants from given string. 4. Write a c program to count the different types of characters in given string. 5. Write a c program to sort the characters of a string. 6. Write a c program for concatenation two strings without using string.h header file. 7. Write a c program to find the length of a string using pointer. 8. Write a c program which prints initial of any name. 9. Write a c program to print the string from given character. 10. Write a c program to reverse a string 11. Reverse a string using recursion in c 12. String concatenation in c without using strcat 13. How to compare two strings in c without using strcmp 14. String copy without using strcpy in c 15. Convert a string to ASCII in c Matrix : 1. Write a c program for addition of two matrices. 2. Write a c program for subtraction of two matrices 3. Write a c program for multiplication of two matrices. 4. Write a c program to find out sum of diagonal element of a matrix. 5. Write a c program to find out transport of a matrix. 6. Write a c program for scalar multiplication of matrix. 7. C program to find inverse of a matrix 8. Lower triangular matrix in c 9. Upper triangular matrix in c 10. Strassen's matrix multiplication program in c 11. C program to find determinant of a matrix File : 1. Write a c program to open a file and write some text and close its. 2. Write a c program to delete a file. 3. Write a c program to copy a file from one location to other location. 4. Write a c program to copy a data of file to other file. 5. Write a c program which display source code as a output. 6. Write a c program which writes string in the file. 7. Write a c program which reads string from file. 8. Write a c program which writes array in the file. 9. Write a c program which concatenate two file and write it third file. 10. Write a c program to find out size of any file. 11. Write a c program to know type of file. 12. Write a c program to know permission of any file. 13. Write a c program to know last date of modification of any file. 14. Write a c program to find size and drive of any file. Complex number : 1. Complex numbers program in c 2. Write a c program for addition and subtraction of two complex numbers. 3. Write a c program for multiplication of two complex numbers. 4. Write a c program for division two complex numbers. Series : 1. Write a c program to find out the sum of series 1 + 2 + …. + n. 2. Write a c program to find out the sum of series 1^2 + 2^2 + …. + n^2. 3. Write a c program to find out the sum of series 1^3 + 2^3 + …. + n^3. 4. Write a c program to find out the sum of given A.P. 5. Write a c program to find out the sum of given G.P. 6. Write a c program to find out the sum of given H.P. 7. Write a c program to find out the sum of series 1 + 2 + 4 + 8 … to infinity. Array : 1. Write a c program to find out largest element of an array. 2. Write a c program to find out second largest element of an unsorted array. 3. Write a c program to find out second smallest element of an unsorted array. 4. Write a c program which deletes the duplicate element of an array. 5. Write a c program for delete an element at desired position in an array. 6. Write a c program for insert an element at desired position in an array. 7. C program to find largest and smallest number in an array Sorting : 1. Write a c program for bubble sort. 2. Write a c program for insertion sort. 3. Write a c program for selection sort. 4. Write a c program for quick sort. 5. Write a c program for heap sort. 6. Write a c program for merge sort. 7. Write a c program for shell sort. Recursion : 1. Write a c program to find factorial of a number using recursion. 2. Write a c program to find GCD of a two numbers using recursion. 3. Write a c program to find out sum digits of a number using recursion. 4. Write a c program to find power of a number using function recursion. 5. Write a c program to reverse any number using recursion. Size of data type : 1. Write a c program to find the size of int without using sizeof operator. 2. Write a c program to find the size of double without using sizeof operator. 3. Write a c program to find the size of structure without using sizeof operator. 4. Write a c program to find the size of union without using sizeof operator. Using pointer : 1. Write a c program for concatenation two string using pointer. Searching : 1. Write a c program for linear search. 2. Write a c program for binary search. 3. Write a c program for binary search using recursion. Area and volume : 1. Write a c program to find the area of circle. 2. Write a c program to find the area of any triangle. 3. Write a c program to find the area of equilateral triangle. 4. Write a c program to find the area of right angled triangle. 5. Write a c program to find the area of rectangle. 6. Write a c program to find the area of trapezium. 7. Write a c program to find the area of rhombus. 8. Write a c program to find the area of parallelogram. 9. Write a c program to find the volume and surface area of cube. 10. Write a c program to find the volume and surface area of cuboids. 11. Write a c program to find the volume and surface area of cylinder. 12. Write a c program to find the surface area and volume of a cone. 13. Write a c program to find the volume and surface area of sphere. 14. Write a c program to find the perimeter of a circle, rectangle and triangle. C program with very large numbers : 1. Write a c program to find factorial of 100 or very large numbers 2. Write a c program to multiply the two very large number (larger the long int) 3. Write a c program for division of large number (larger than long int) 4. C code for modular division of large number. 5. C code for division of large number. 6. C code for power of large numbers. Other : 1. C program for ATM transaction. 2. Write a c program which passes one dimension array to function. 3. Write a c program which passes two dimension array to function. 4. Write a c program which takes password from user. 5. Write a scanf function in c which accept sentence from user. 6. Write a scanf function in c which accept paragraph from user. 7. Write a c program to print the all prime numbers between 1 to 300. 8. Write a c program which passes structure to function. 9. Palindrome in c without using string function 10. How to get the ASCII value of a character in c 11. C program to get last two digits of year 12. C program without main function.

Friday, May 28, 2021

Google Foobar

 গুগল ইন্টার্ভিউ পেতে আশা করি এই পোস্টটা আপনাদের কাজে লাগবে।

হয়তোবা আজকে আমার এই পোস্টটা অনেক কেই গুগল এ যাবার স্বপ্নে নিজেকে এগিয়ে রাখবে। হয়তোবা এই পোস্ট পড়ে অনেক এই আজ থেকে ২/৩ বছর কিংবা তার থেকেও বেশী সময় পড়ে #গুগল_ইন্টার্ভিউ এর জন্য ডাকও পেতে পারে। কারণ আজকে আমি সবার সাথে এমন একটা ব্যাপারে শেয়ার করতে চাচ্ছি যেটা একসাথে অনেক বেশী ইন্টারেস্টিং সেই সাথে অনেক রোমাঞ্চকর একটা অনুভূতি। তাহলে শুরু করা যাক.......

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

প্রশ্ন ১. গুগল ফুবার টা আসলে কি..??

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

প্রশ্ন ২. আমি কিভাবে এই গুগল ফুবার চ্যালেঞ্জটি পেতে পারি..??

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

প্রশ্ন ৩: ফুবার চ্যালেঞ্জটা পাওয়ার জন্য আসলে কি কি ফলো করা যেতে পারে..??

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

প্রশ্ন ৪: গুগল থেকে ফুবার অনুরোধ পাবার পরের ধাপ গুলো..?

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

ধাপ ২ : দুই নাম্বার ধাপ, প্রথম ধাপ থেকে হাই। এইখানে প্রশ্ন থাকবে দুইটি, যার সময় থাকে প্রতিটি প্রশ্ন এর জন্য ৩ দিন। এই খানে একটা মজার ট্রিক হলো, আপনি এই ধাপ থেকে আপনার কোন বন্ধুকে হায়ার করার সুযোগ পাবেন 😛 তারা আপনাকে একটা লিংঙ্ক দিবে, সেই লিংঙ্ক আপনার বন্ধুকে সেন্ড করলে সেও আপনার সাথে যুক্ত হতে পারবে। এই ধাপে সাধারণত প্রশ্ন করা হয়ে থাকে, অ্যালগরিদম, স্ট্যাকওভার ফ্লোতে প্রোগ্রামিং, রৈখিক বীজগণিত।

ধাপ ৩: আপনাকে অবশ্যই মাথায় রাখতে হবে, গুগল এর প্রতিটি ধাপ বা ফুবার চ্যালেঞ্জ এর প্রতিটি ধাপ, প্রতিটি ধাপ এর থেকে বেশী চ্যালেঞ্জিং। তাই আপনাকে এখন থেকে কঠিন প্রোগ্রামিং বা প্রতিযোগিতামূলক প্রোগ্রামিং এর জন্য আগে থেকেই প্রস্তুত হয়ে থাকতে হবে। এই ধাপ এ সাধারণত প্রশ্ন করা হয়ে থাকে, Number theory, dynamic programming, state machine এর উপরে। ভয় পাবেন না, যদি কেউ প্রতিযোগীতামূলক প্রোগ্রামিং করে থাকে তাইলে এই ধাপে এসে এই প্রশ্ন গুলা তাদের কাছে সহজ বলে মনে হবে। এই ধাপে ৩টা প্রশ্ন থাকবে, প্রতিটি প্রশ্ন এর জন্য ৭ দিন করে সময় তারা দিবে। সব থেকে মজার ব্যাপার হলো, আপনি এই ধাপ এ জিতার পর পর ই স্বয়ং গুগল কর্তৃক একটা ফর্ম দিবে, যে খানে আপনি আপনার সব ইনফরমেশন দিবেন। যেখানে গুগল পরে আপনার সাথে তাদের রিক্রুয়েটার এর মাধ্যমে আপনার সাথে যোগাযোগ করবে।

ধাপ ৪: এই ধাপ এ এসে তারা আপনাকে সময় দিবে ২ সপ্তাহ তাদের প্রশ্নের উত্তর দেবার জন্য। এই ধাপ এ সাধারণত প্রশ্ন গুলা থাকে, multiple concepts, number theory to grap। এই ধাপটা ৩ নাম্বার ধাপ এর থেকে কঠিন হবে তবে যদি আপনার প্রোগ্রামিং সমন্ধে অনেক ভালো জানা থাকে তাইলে আপনি সমধান করে দিতে পারবেন। সাধারণত ৪টা ধাপ পার করতে পারলেই গুগল থেকে ইন্টার্ভিউ এর জন্য কল করে থাকে।

ধাপ ৫: এই ধাপ এ প্রশ্ন গুলো পুরাই ম্যাথমেটিক্যাল রিলেটেড। আপনাকে তাদের প্রশ্ন এর জন্য ৩ সপ্তাহ সময় দিবে তারা। এই খানে সাধারণত প্রশ্ন গুলা এই রিলেটেড থাকে, permutation, polya counting theorems, group theory. প্রশ্ন গুলা জটিল থাকে তবে চেষ্টা + চিন্তা করলেই প্রশ্ন গুলার উত্তর দেওয়া যায়। যদি আপনার মধ্যে ক্রিয়েটিভিটি থেকে থাকে আর সেই সাথে চিন্তা করার শক্তি তাইলে আপনি এই রাউন্ড এও জিততে পারবেন। আর জিতার সাথে সাথেই আপনার সাথে যোগাযোগ করবে গুগল এর একজন রিক্রুয়েটার, যদি আপনি গুগল এ ইন্টার্ভিউ দিতে আগ্রহী থাকেন তাইলে তারা আপনাকে ইন্টার্ভিউ এর জন্য কল করবে।

প্রশ্ন ৫: তাহলে ভাইয়া ধরে নিব কি, যদি আমি প্রোগ্রামিং রিলেটেড কিছু গুগল সার্চবারে সার্চ করে থাকে প্রতিদিন তাইলে কি আমি এই অফার পাব..?

উত্তর : যদি আপনার ভাগ্য ভালো থাকে তাইলে অবশ্যই পাবেন। যারা সফটওয়্যার ইঞ্জিনিয়ার বা যারা ডেভোলপার তারা মেক্সিমাম সময় ই তাদের কাজ এর জন্য তাদের কম্পিউটার এর উইন্ডো খোলা রাখে কারণ তাদের মেক্সিমাম টাইম এই জটিল জটিল জিনিষ সমাধান করতে হয়। তাই তারা বাধ্য হয়ে সমাধান এর ওয়ে খুঁজার জন্য গুগল বা অন্যকিছুতে সার্চ করে। যেটা জুলকারনাইন ও করেছিল। গুগল তাদের সমস্যা + এক্টিভিটিস গুলা দেখে আসলে তাদের সিলেক্ট করে। তবে সবসময় সবার জন্য এটা খাটবে না তার কারণ প্রোগ্রামিং প্রব্লেম এর লেভেল দেখেই গুগল বুঝে যায় তাদের টার্গেটদের কে। তাই সসবসময় করলে শুধু করাই হবে, তবুও এটার ও একটা সহজ ট্রিকস আছে যেটা আপনাদের সাথে শেয়ার করছি। চলে যান এই লিংঙ্কে ( foobar.withgoogle.com ) এই লিংঙ্কে গিয়ে আপনার ইমেইল দিয়ে অ্যাক্সেস করে রাখুন। যেটা আপনাকে ভবিষ্যৎ এ ভালো কাজে দিবে।

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

Google নিয়ে আমার গুরুত্বপূর্ণ লেখার লিংঙ্ক

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


১. https://m.facebook.com/story.php?story_fbid=1352289275145600&id=100010936206356

২. https://m.facebook.com/story.php?story_fbid=1198718670502662&id=100010936206356

Google Interview Question - Software Engineering

আজকে আমি #গুগল সহ, ফেসবুক, মাইক্রোসফট, ইনটেল এ আসা কিছু ইন্টার্ভিউ প্রশ্ন সোর্স সহ দিয়ে দিলাম। এই প্রশ্ন গুলোর ৮০% ই গুগল এর। আর এই প্রশ্নগুলোই মেক্সিমাম ক্ষেত্রে ইন্টার্ভিউতে গুগল জিজ্ঞাস করে থাকে। ইভেন এইখানে যে লিস্ট আমি দিয়েছি এই লিস্ট এই ৩টা question অ্যাড আছে, যা গত বছর ইন্টার্ভিউতে গুগল আমাকে করেছিল। আমার এখন পর্যন্ত জানা নেই, গুগল এর ইন্টারর্ভিউ এর প্রশ্ন কেউ কখনো শেয়ার করেছে কি না, তবে আমি জানি এইগুলাতে নিষেধ আছে তবুও আমি সবার সাথে শেয়ার করলাম কারণ আমি স্বপ্ন দেখি অন্য একটা বাংলাদেশ গড়ার। সবার জন্য শুভ কামনা ❤


#Google_Interview_Questions: Software Engineer


1. Why are manhole covers round?

2. What is the difference between a mutex and a semaphore? Which one would you use to protect access to an increment operation?

3. A man pushed his car to a hotel and lost his fortune. What happened?

4. Explain the significance of “dead beef”.

5. Write a C program which measures the the speed of a context switch on a UNIX/Linux system.

6. Given a function which produces a random integer in the range 1 to 5, write a function which produces a random integer in the range 1 to 7.

7. Describe the algorithm for a depth-first graph traversal.

8. Design a class library for writing card games.

9. You need to check that your friend, Bob, has your correct phone number, but you cannot ask him directly. You must write a the question on a card which and give it to Eve who will take the card to Bob and return the answer to you. What must you write on the card, besides the question, to ensure Bob can encode the message so that Eve cannot read your phone number?

10. How are cookies passed in the HTTP protocol?

11. Design the SQL database tables for a car rental database.

12. Write a regular expression which matches a email address.

13. Write a function f(a, b) which takes two character string arguments and returns a string containing only the characters found in both strings in the order of a. Write a version which is order N-squared and one which is order N.

14. You are given a the source to a application which is crashing when run. After running it 10 times in a debugger, you find it never crashes in the same place. The application is single threaded, and uses only the C standard library. What programming errors could be causing this crash? How would you test each one?

15. Explain how congestion control works in the TCP protocol.

16. In Java, what is the difference between final, finally, and finalize?

17. What is multithreaded programming? What is a deadlock?

18. Write a function (with helper functions if needed) called to Excel that takes an excel column value (A,B,C,D…AA,AB,AC,… AAA..) and returns a corresponding integer value (A=1,B=2,… AA=26..).

You have a stream of infinite queries (ie: real time Google search queries that people are entering).

19. Describe how you would go about finding a good estimate of 1000 samples from this never ending set of data and then write code for it.

20. Tree search algorithms. Write BFS and DFS code, explain run time and space requirements. Modify the code to handle trees with weighted edges and loops with BFS and DFS, make the code print out path to goal state.

21. You are given a list of numbers. When you reach the end of the list you will come back to the beginning of the list (a circular list). Write the most efficient algorithm to find the minimum # in this list. Find any given # in the list. The numbers in the list are always increasing but you don’t know where the circular list begins, ie: 38, 40, 55, 89, 6, 13, 20, 23, 36.

22. Describe the data structure that is used to manage memory. (stack)

23. What’s the difference between local and global variables?

24. If you have 1 million integers, how would you sort them efficiently? (modify a specific sorting algorithm to solve this)

25. In Java, what is the difference between static, final, and const. (if you don’t know Java they will ask something similar for C or C++).

26. Talk about your class projects or work projects (pick something easy)… then describe how you could make them more efficient (in terms of algorithms).

27. Suppose you have an NxN matrix of positive and negative integers. Write some code that finds the sub-matrix with the maximum sum of its elements.

28. Write some code to reverse a string.

29. Implement division (without using the divide operator, obviously).

30. Write some code to find all permutations of the letters in a particular string.

31. What method would you use to look up a word in a dictionary?

32. Imagine you have a closet full of shirts. It’s very hard to find a shirt. So what can you do to organize your shirts for easy retrieval?

33. You have eight balls all of the same size. 7 of them weigh the same, and one of them weighs slightly more. How can you fine the ball that is heavier by using a balance and only two weighings?

34. What is the C-language command for opening a connection with a foreign host over the internet?

35. Design and describe a system/application that will most efficiently produce a report of the top 1 million Google search requests. These are the particulars:


1) You are given 12 servers to work with. They are all dual-processor machines with 4Gb of RAM, 4x400GB hard drives and networked together.(Basically, nothing more than high-end PC’s)

2) The log data has already been cleaned for you. It consists of 100 Billion log lines, broken down into 12 320 GB files of 40-byte search terms per line.

3) You can use only custom written applications or available free open-source software.


36. There is an array A[N] of N numbers. You have to compose an array Output[N] such that Output[i] will be equal to multiplication of all the elements of A[N] except A[i]. For example Output[0] will be multiplication of A[1] to A[N-1] and Output[1] will be multiplication of A[0] and from A[2] to A[N-1]. Solve it without division operator and in O(n).


37. There is a linked list of numbers of length N. N is very large and you don’t know N. You have to write a function that will return k random numbers from the list. Numbers should be completely random.


Hint: 1. Use random function rand() (returns a number between 0 and 1) and irand() (return either 0 or 1)

2. It should be done in O(n).


38. Find or determine non existence of a number in a sorted list of N numbers where the numbers range over M, M>> N and N large enough to span multiple disks. Algorithm to beat O(log n) bonus points for constant time algorithm.


39. You are given a game of Tic Tac Toe. You have to write a function in which you pass the whole game and name of a player. The function will return whether the player has won the game or not. First you to decide which data structure you will use for the game. You need to tell the algorithm first and then need to write the code.

Note: ( Some position may be blank in the game। So your data structure should consider this condition also ).


40. You are given an array [a1 To an] and we have to construct another array [b1 To bn] where bi = a1*a2*…*an/ai. you are allowed to use only constant space and the time complexity is O(n). No divisions are allowed.

How do you put a Binary Search Tree in an array in a efficient manner.

Hint :: ( ( If the node is stored at the ith position and its children are at 2i and 2i+1(I mean level order wise)Its not the most efficient way )).


41.How do you find out the fifth maximum element in an Binary Search Tree in efficient manner. Note: You should not use use any extra space. i.e sorting Binary Search Tree and storing the results in an array and listing out the fifth element.

42. Given a Data Structure having first n integers and next n chars. A = i1 i2 i3 … iN c1 c2 c3 … cN.Write an in-place algorithm to rearrange the elements of the array ass A = i1 c1 i2 c2 … in cn

43. Given two sequences of items, find the items whose absolute number increases or decreases the most when comparing one sequence with the other by reading the sequence only once.

44.Given That One of the strings is very very long , and the other one could be of various sizes. Windowing will result in O(N+M) solution but could it be better? May be NlogM or even better?

45. How many lines can be drawn in a 2D plane such that they are equidistant from 3 non-collinear points?

Let’s say you have to construct Google maps from scratch and guide a person standing on Gateway of India (Mumbai) to India Gate(Delhi). How do you do the same?

46. Given that you have one string of length N and M small strings of length L. How do you efficiently find the occurrence of each small string in the larger one?

47. Given a binary tree, programmatically you need to prove it is a binary search tree.

48. You are given a small sorted list of numbers, and a very very long sorted list of numbers – so long that it had to be put on a disk in different blocks. How would you find those short list numbers in the bigger one?

49. Suppose you have given N companies, and we want to eventually merge them into one big company. How many ways are theres to merge?

50. Given a file of 4 billion 32-bit integers, how to find one that appears at least twice?

51. Write a program for displaying the ten most frequent words in a file such that your program should be efficient in all complexity measures.

52. Design a stack. We want to push, pop, and also, retrieve the minimum element in constant time.

53. Given a set of coin denominators, find the minimum number of coins to give a certain amount of change.

54. Given an array,

i) find the longest continuous increasing subsequence. ii) find the longest increasing subsequence.


55. Suppose we have N companies, and we want to eventually merge them into one big company. How many ways are there to merge?

56. Write a function to find the middle node of a single link list.

57. Given two binary trees, write a compare function to check if they are equal or not. Being equal means that they have the same value and same structure.

58. Implement put/get methods of a fixed size cache with LRU replacement algorithm.

59. You are given with three sorted arrays ( in ascending order), you are required to find a triplet ( one element from each array) such that distance is minimum.

60. Distance is defined like this : If a[i], b[j] and c[k] are three elements then distance=max(abs(a[i]-b[j]),abs(a[i]-c[k]),abs(b[j]-c[k]))” Please give a solution in O(n) time complexity.

61. How does C++ deal with constructors and deconstructors of a class and its child class?

62. Write a function that flips the bits inside a byte (either in C++ or Java). Write an algorithm that take a list of n words, and an integer m, and retrieves the mth most frequent word in that list.

63. What’s 2 to the power of 64?

64. Given that you have one string of length N and M small strings of length L. How do you efficiently find the occurrence of each small string in the larger one?

65. How do you find out the fifth maximum element in an Binary Search Tree in efficient manner.

66. Suppose we have N companies, and we want to eventually merge them into one big company. How many ways are there to merge?

67. There is linked list of millions of node and you do not know the length of it. Write a function which will return a random number from the list.

68. You need to check that your friend, Bob, has your correct phone number, but you cannot ask him directly. You must write a the question on a card which and give it to Eve who will take the card to Bob and return the answer to you. What must you write on the card, besides the question, to ensure Bob can encode the message so that Eve cannot read your phone number?

69. How long it would take to sort 1 trillion numbers? Come up with a good estimate.


70. Order the functions in order of their asymptotic performance: 1) 2^n 2) n^100 3) n! 4) n^n


71.There are some data represented by(x,y,z). Now we want to find the Kth least data. We say (x1, y1, z1) > (x2, y2, z2) when value(x1, y1, z1) > value(x2, y2, z2) where value(x,y,z) = (2^x)*(3^y)*(5^z). Now we can not get it by calculating value(x,y,z) or through other indirect calculations as lg(value(x,y,z)). How to solve it?


72. How many degrees are there in the angle between the hour and minute hands of a clock when the time is a quarter past three?


73. Given an array whose elements are sorted, return the index of a the first occurrence of a specific integer. Do this in sub-linear time. I.e. do not just go through each element searching for that element.


74. Given two linked lists, return the intersection of the two lists: i.e. return a list containing only the elements that occur in both of the input lists.

75. What’s the difference between a hashtable and a hashmap?

76. If a person dials a sequence of numbers on the telephone, what possible words/strings can be formed from the letters associated with those numbers?

77. How would you reverse the image on an n by n matrix where each pixel is represented by a bit?


78. Create a fast cached storage mechanism that, given a limitation on the amount of cache memory, will ensure that only the least recently used items are discarded when the cache memory is reached when inserting a new item. It supports 2 functions: String get(T t) and void put(String k, T t).


79. Create a cost model that allows Google to make purchasing decisions on to compare the cost of purchasing more RAM memory for their servers vs. buying more disk space.


80. Design an algorithm to play a game of Frogger and then code the solution. The object of the game is to direct a frog to avoid cars while crossing a busy road. You may represent a road lane via an array. Generalize the solution for an N-lane road.

81. What sort would you use if you had a large data set on disk and a small amount of ram to work with?

82. What sort would you use if you required tight max time bounds and wanted highly regular performance.

How would you store 1 million phone numbers?


83. Design a 2D dungeon crawling game. It must allow for various items in the maze – walls, objects, and computer-controlled characters. (The focus was on the class structures, and how to optimize the experience for the user as s/he travels through the dungeon.)


84. What is the size of the C structure below on a 32-bit system? On a 64-bit?

struct foo {

char a;

char* b;

};


Sources

http://news.ycombinator.com/item?id=266663

http://tihomir.org/crazy-questions-at-google-job-interview/

http://www.drizzle.com/~jpaint/google.html

http://www.gamedev.net/community/forums/topic.asp?topic_id=299692

http://careers.cse.sc.edu/googleinterview

http://job-interview.blogspot.com/2005/02/google-interview-product-marketing.html

http://www.theregister.co.uk/2007/01/05/google_interview_tales/

http://money.cnn.com/2007/08/29/technology/brain_teasers.biz2/index.htm

http://blogs.lessthandot.com/index.php/ITProfessionals/EthicsIT/google-interview-questions

http://placementsindia.blogspot.com/2007/09/google-top-interview-puzzles.html

http://linkmingle.com/user/interview_questions/google_interview_questions

http://discuss.joelonsoftware.com/default.asp?interview.11.626758.33

http://mindcipher.com/puzzle/78-clock-works

http://www.glassdoor.com

http://bluepixel.ca/blog/?p=69

http://www.businessinsider.com/my-nightmare-interviews-with-google-2009-11

গুগল এর #ইঞ্জিনিয়ার হতে গেলে যে প্রাতিষ্ঠানিক শিক্ষা কোন ফ্যাক্ট নয়, এটা গুগল এর সফটওয়্যার ইঞ্জিনিয়ারিং এ চান্স প্রাপ্ত একজন গুগলার এর কাছেই জেনে নিন।

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

১. প্রথমে লক্ষ্য অর্জন কর। আগেই লাফায়ো না। লক্ষ্যে পৌঁছানোর আগ পর্যন্ত ভান ধরে থাক।

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

২ মাস পর আমি অনলাইনে গেমের একটা ডেমো রিলিজ দিলাম। খুব আহামরি কোন গেম ছিল না। সিম্পল top down space shooter গেম। ডেমো রিলিজ দেয়ার পর দেখা গেল CodeFire নামের একটা স্টার্টআপ কোম্পানী একই টাইপের একটা গেম নিয়ে কাজ করছে। তারা আমার সাথে যোগাযোগ করল। হিসাব-নিকাশ করে বললাম যদি তোমরা আমাকে এই কাজের জন্য হায়ার কর তাহলেই আমি এটার কাজ বন্ধ করে তোমাদের প্রোজেক্টে কাজ করব। তারা একটা অফার করল আমাকে। আমি রাজি হয়ে তাদের সাথে কাজ করলাম।

ওয়েট! ওয়েট!! ওয়েট!!! আমাকে চিটার-বাটপার বলা শুরু করো না প্লিজ! আমি আমার কোম্পানীর সাথে এই পুরো বিষয়টি বেশ সুন্দর ভাবে মিটমাট করেই গেছি। তারাও খুশি, আমিও খুশি! :)

২.এমন কারো বন্ধু হও যে তোমাকে একজন মেন্টর হিসেবে গাইড করবে

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

যাই হোক, Double Helix এ কাজ করার সময় আমার মেন্টর ছিলেন Nathan Hunt. তার মত ধৈর্য্যশীল আর নরম মনের মানুষ আমি আর দেখি নি। আমি অসংখ্য বার অনেক সাধারণ সাধারণ বিষয় জানতে এই চমৎকার মানুষটির অফিসে দৌঁড়িয়েছি। প্রশ্নগুলো হয়ত একদিনের ছিল এরকমঃ “how can I smoothly interpolate from one rotation matrix to another?” অথবা আরেক দিন জিজ্ঞেস করতামঃ “how should I implement moving capsule-to-cylinder collision detection?” তিনি প্রতিটি প্রশ্নের উত্তরই সুন্দর ভাবে আগ্রহ ভরে আমাকে বুঝিয়ে বলতেছ। এর এক বছর পর আমার গুগলে চাকরি হবার এক মাস পর তিনিও গুগলে যোগ দেন। :)

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

৩. শূণ্যস্থান পূরণ কর

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

তুমি যেভাবে নিজের ঘাটতি পূরণ করতে পারবে তার একটা লিস্ট দেয়ার চেষ্টা করছিঃ

এই ল্যাঙ্গুয়েজগুলোর যে কোন একটির উপর এক কথায় Master হয়ে যাওঃ C, C++, Objective-C, Java, PHP, Python বা Ruby. আর অন্য কোন একটাতে মোটামুটি fluency নিয়ে আসো। আর এই ল্যাঙ্গুয়েজগুলোর ব্যাপারেও টুকটাক ঘাটাঘাটি করে পরিচিত হওঃ Scala, Haskell বা Lisp.

Data structure-গুলো শিখ। যতগুলোর নাম জানতে পারো পারলে সবগুলো নিজে নিজে কোড করে implement করো। সেগুলোর Time complexity সম্পর্কে জানো। (কমেন্টে আবার জিজ্ঞেস কইরো না কোন কোন ডেটা স্ট্রাকচার শিখব? উইকিতে গিয়া সার্চ দাও। যত বেশি পারো শিখ। ভালোর কোন শেষ নাই।)

প্রচুর প্রবলেম সলভ কর। এই লিংকটা দেখো আর যতগুলো পারো সলভ করো।

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

৪. আত্মবিশ্বাস অর্জন কর

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

এর এক বছর পর আমি আবার এপ্লাই করি। এইবার “Education” এর পার্টটা পুরোপুরি চেপে যাই। একদিন হয়ত ঠাট্টা-বিদ্রুপ করার জন্যেই একজন ভদ্রমহিলা ফোন দিয়ে একটা technical phone-screen interview নেয়ার জন্য সময় চাইলেন!!! আমি তার কাছে প্রস্তুতি নেয়ার জন্য দুই সপ্তাহ সময় চাইলাম এবং তিনি রাজি হলেন। এরপর শুরু হল আমার প্রচন্ড প্রস্তুতি নেয়ার। এই দুই সপ্তাহের মধ্যে যত data structure আর algorithm একজন মানুষের পক্ষে মাথার মধ্যে গুজে দেয়া সম্ভব সেগুলো করতে লাগলাম। দিনের মধ্যে ১২-১৪ ঘন্টা কোড করতাম তখন। প্রতিদিন প্রায় ১০০ টার মত প্রবলেম সলভ করতাম। আমি রীতিমত চোখে অন্ধকার দেখা শুরু করলাম। আমি ততক্ষণ পর্যন্ত নিজেকে এরকম অমানসিক পরিশ্রম করা থেকে থামাতে পারছিলাম না যতক্ষন না পর্যন্ত গুগলের ইন্টারভিউয়ের ভয়টা আত্মবিশ্বাস বা উত্তেজনায় রূপান্তরিত হয়।

আমার মনে আছে ইন্টারভিউয়ের সময় ওদের প্রতিটা প্রশ্নের উত্তর একরকম ছুড়ে দিচ্ছিলাম। রীতিমত বোমা বিস্ফোরণের মত শোনাচ্ছিল আমার উত্তরগুলো। ইন্টারভিউ বোর্ডের লোকজন আমার সাথে বেশ মজা করছিলেন। আমার বিশ্বাস তারা বুঝতে পারছিলেন গুগলে যাওয়ার ব্যাপারে আমি কতটা উত্তেজিত আর তাদের দেয়া প্রবলেমগুলোকে আমি ঠিক কিভাবে welcome করছিলাম।

ইন্টারভিউ বোর্ড থেকে দেয়া কয়েকটা প্রবলেম নিচে উল্লেখ করছিঃ

1) Given a set of 2-dimensional points, compute a skyline. This was easy. I drew upon a common data structure known as a max heap. There are several solutions, here is a good one.

2) Design Microsoft Paint. This was by far the most fun problem. I started by drawing up interfaces and a class diagram. I made mention of a Paint Bucket and the interviewer asked me to implement it. Luckily, I knew how to implement an iterative, breadth-first traversal with my eyes closed thanks to TopCoder.

3) Describe your software virtues. This was an “open-ended” discussion interview. I talked about the types of testing and when they are valuable (e.g., unit, integration, acceptance). I talked about consistent style for maintainability of code. And so on. Things you would find in books like Code Complete or Effective Java.

গুগলের ইন্টারভিউয়ের প্রতিটা রাউন্ড আমি খুব উপভোগ করেছি। প্রতিটা প্রবলেম সলভ করে দারুণ ভাল লেগেছিল। ইন্টারভিউয়ের পর নিজের কাছেই বেশ ভাল লাগছিল। কিন্তু মনের মধ্যে ভয় থেকেই যাচ্ছিল ‘যদি ওরা না ডাকে?’ ভয়ে ভয়ে দিন কাটাচ্ছিলাম। একদিন Santa Clara-য় sushi দিয়ে lunch সারছিলাম। তখন আমার কাছে কল আসল। আমাকে সফটওয়্যার ইঞ্জিনিয়ার পদের জন্য একটা অফার করা হল। আর আমি অত্যন্ত আনন্দের সাথে তা গ্রহন করলাম। আর সেদিনই আমি নিশ্চিত হলাম যে, ইঞ্জিনিয়ার হবার জন্য আমাকে আর কলেজ/ইউনিভার্সিটিতে ফেরত যেতে হচ্ছে না!

Googles Salary

#GooglesSalary অনেকেই আমাকে বলেছিলেন, ভাইয়া গুগল এর বেতন নিয়ে একটা পোস্ট করবেন..? অনেকেই এটা নিয়ে কনফিউজড। তবে আমি জানি না, আপনারা কেন গুগ...