Image from Mashable; (Facebook SG office entrance) |
အခု ၂၀၁၆ ကုန်တော့မည် ဖြစ်သည်။ ရက်ပိုင်းသာလိုတော့သည်။ နှစ်ဟောင်းကုန်၍ နှစ်သစ်ရောက်တော့မည် ဖြစ်၍ နှစ်ဟောင်းမှာ မိမိ လုပ်ခဲ့သော အလုပ်များကို ပြန်လည် သုံးသပ်ပြီး၊ နှစ်သစ်အတွက် ပြင်ဆင်ရပေမည်။ ၂၀၁၆ အတွင်း ကျွန်တော် လုပ်ခဲ့သမျှကို သတိရစရာများစွာတွင် Facebook နှင့် အလုပ် အင်တာဗျူးသည်မှာလည်း တစ်ခု အပါအဝင် ဖြစ်သည်။ ၂၀၁၆ တွင် သမီးဦး မွေးဖွားမည် ဖြစ်ရာ၊ မိန်းမကို စင်ကာပူတွင် ထား၍ အဆင်မပြေ၊ အဓိက အကြောင်းမှာ စိတ်မချသည်လည်း ပါသည်။ ထို့ကြောင့် စင်ကာပူတွင် ရှိသည့် နာမည်ကြီး ကုမ္ပဏီများကို အလုပ်လျှောက်ခဲ့သည်။ Google (နောက်တွင် ထပ်ရေးအုံးမည်) နဲ့ အင်တာဗျူး ရခဲ့သည်။
(၁) Facebook တွင် အလုပ်လျှောက်ခြင်း
ပထမဆုံးပိုင်းတွင် Facebook အလုပ်ကို စိတ်မဝင်စားပါ။ အကြောင်းရင်းမှာ မိမိသည် Google တွင်သာ အလုပ်လုပ်ချင်သောကြောင့် ဖြစ်သည်။ အလုပ်မှ သူငယ်ချင်းတစ်ယောက်က Facebook SG တွင် အလုပ်ခေါ်နေကြောင်း ပြောသောကြောင့် အလုပ်မှ အိမ်အပြန် ကားမှတ်တိုင်တွင် အလုပ်တစ်ချို့ကို ရသည်ဖြစ်စေ၊ မရသည် ဖြစ်စေ လျှောက်ခဲ့သည်။ ထို့နောက် မေ့မေ့ပျောက်ပျောက်ပင် ဖြစ်သည်။ ထိုစဉ်က ဖေဖော်ဝါရီလ ထဲတွင် ဖြစ်သည်။
(၂) Facebook မှ ဆက်သွယ်ခြင်း
Facebook မှ Recruiter တစ်ဦး ဖြစ်သူ အမေရိကန်ရုံးမှ အီးမေးဖြင့် ဆက်သွယ်လာပါသည်။ အီးမေးတွင် တယ်လီဖုန်းဖြင့် ဆက်သွယ်လိုကြောင်း၊ အလုပ်နှင့် ပတ်သတ်၍ ရှင်းပြလိုကြောင်း ပြောပါသည်။ အီးမေးတွင် မိမိ လိုချင်သော အလုပ်တာဝန်နှင့် ပုံစံ၊ တတ်ကျွမ်းသည့် အရည်အချင်း၊ ဘာသာစကားကို မေးထားပါတယ်။ ထိုအပြင် ဖုန်းဖြင့် မေးခွန်းများ မေးမည် ဖြစ်ကြောင်း၊ အဓိက web technology ပတ်သတ်သော အမေးများ ဖြစ်ပါကြောင်း ရှင်းပြပါသည်။ ကျွန်တော် အနေဖြင့် ဒီ အီးမေးရသည့် အချိန်မှ စ၍ အင်တာနက်ထဲတွင် web နှင့် ပတ်သတ်၍ မေးလေ့ရှိသော အင်တာဗျူး မေးခွန်းများကို ၂ ရက်အတွင်း ပြန်လေ့ကျင့်ပါသည်။
ဥပမာ. HTML သည် (၁) Compile Language (၂) Markup Language (၃) တစ်ခုမှ မဟုတ်။
ဒီလို မေးခွန်းမျိုးသာ ဖြစ်ပါသည်။ သို့သော် ကျွန်တော်မှာ စိတ်လှုပ်ရှားသည်က တကြောင်း၊ ဖုန်းအသံက ကြည်လင်မှု အားနည်းသည်က တကြောင်း၊ အမေရိကန် အသံထွက်ကို ၈၀% မျှသာ နားလည်နိုင်တာကြောင့် အစပိုင်းတွင် မေးခွန်းကို ပြန်ပြန် မေးပါသည်။ နောက် အားနာလာသည်နှင့် တဖြေးဖြေး သူ့အသံကို ပိုနားလည်လာသည်ကြောင့် နောက်ပိုင်း ပြန်မမေးတော့ပါ။ (၁၀)ခု မေးပြီးသောအခါ သူက ဝမ်းသာကြောင်း ပြောပါသည်။ ကျွန်တော် (၁၀)ခုတွင် (၈)ခု မှန်သည်ဟု ပြောပါသည်။ မှားနေသည့် မေးခွန်းနှင့် အဖြေမှန်ကို ရှင်းပြပါသည်။ (မေးခွန်းက မခက်ပါ။ ရှမ်းပြီး ဖြေသော အဖြေကို ဖမ်းသော မေးခွန်းမျိုးပါ။) ထိုနောက် နောက်တဆင့်ကို အီးမေးဖြင့် ဆက်သွယ်မည် ဖြစ်ကြောင်း ပြောပါသည်။
Tips:
စင်ကာပူမှ လူက တရုတ်ပြည်သား ဖြစ်သည်။ ဒူဘလင်က အဖြူကောင် ဖြစ်သည်။ သာကြောင်း မာကြောင်း ပြောပြီးသည်နှင့် မေးခွန်းစပေးသည်။ CoderPad Online Editor ဖြစ်သည်။ Programming Language ကို ထောင့်မှ ရွေးလိုက်ရင် code ကို အရောင်ပြောင်းပေးသည်။ ဖတ်ရ လွယ်သည်။ သို့သော် Auto Complete မပါ။ Compile လုပ်၍ မရ။ Notepad++ လိုမျိုးသာ ဖြစ်သည်။ သူတို့ ရေးနိုင်သလို ကျွန်တော်လည်း ရေးနိုင်သည်။ သူက မေးခွန်း ရေးပြသည်။
သိပ်မခက်ပါ။ Java ArrayList သုံး၍ whitespace ကို ကြည့်ကာ သိမ်းလိုက်ပါသည်။ ပြီးမှ ArrayList ကို နောက်မှ ရှေ့သို့ ပြန်ပြီး for-loop ဖြင့် ပြန်ထုတ်ပါသည်။
ပထမ stack သုံး၍ char တစ်လုံးချင်းစီကို stack ပေါ်တွင် မတွေ့ပါက push လုပ်ပါသည်။ တွေ့ရှိပါက pop လုပ်ပါသည်။ နောက်ဆုံး stack size ကို သုည ဖြစ်မဖြစ် စစ်ကာ return true/false လုပ်ပါသည်။ အင်ဂျင်နီယာများ ကျွန်တော် code ရေးနေစဉ် ဘာမှ မပြောသေးပါ။ ပြီးမှ ကျွန်တော်ကို input = abcba လို့ ပြောပါသည်။ ကျွန်တော် ရေးသော Code မှာ အလုပ်လုပ်တော့မည် မဟုတ်။ နောင်ကို သင်ခန်းစာ ဖြစ်ပါသည်။ ကျွန်တော် အနေဖြင့် ကြိုမြင်ဖို့ သင့်ပါသည်။ ဘာမေးခွန်းမှ မမေးပဲ code တန်းရေးမိသည့် အမှားပါ။ တော်သေးသည်။ အဖြူကောင်က O(n/2) ရေးနိုင်သော အဖြေမျိုးလို့ ပြောပါသည်။ ကျွန်တော် သဘောပေါက်မိ၍ input ကို i=0 မှ n အစား မစစ်တော့ပဲ၊ ရှေးဆုံး char နှင့် နောက်ဆုံး char တိုက်စစ်ပါသည်။ အဖြေထွက်၍ တော်ပါသေးသည်။ ထိုနောက် team နှင့် ပတ်သတ်၍ မေးခွန်းများ မေးပြီး ပြီးသွားပါသည်။ ရင်ထဲက အလုံးကြီးလည်း ကျသွားပါသည်။
ဒီတခါ အင်တာဗျူးသည့် သူက မေးခွန်းတစ်ခုသာ မေးမည်။ သို့သော် အဖြေကို အဆင့်ဆင့် ပိုပို ကောင်းလာအောင် ပြင်ပါဟု ဆိုသည်။
(၁) ပထမဆုံး အနေဖြင့် for-loop ၂-ခု သုံး၍ အပေါင်းအဖြေ သုညကို ရှာပါသည်။ O(n*n) ကြာမည် ဖြစ်သည်။
(၂) ပိုမြန်စေလိုရင် အရင် array ကို sorting လုပ်မည်။ [-1,0,1,2,3,5] ထိုနောက် pointer#1 ကို array[0]၊ pointer#2 ကို array[n-1] ထောက်မည်။ နှစ်ခုကို ပေါင်း၍ အဖြေပေါ် မူတည်ကာ pointer ကို လိုသလို ပြောင်းမည်။ ပထမဆုံး (-1+5 = 4) အဖြေသည် သုညထက် ကြီး၍ pointer#2 ကို ရှေ့တစ်နေရာ ရွှေ့သည်။ (-1+3=2) သည် သုညထက် ကြီးနေသေး၍ pointer#2 ကို ရှေ့ထပ်ရွှေ့ရမည်။ ထိုသို့ pointer ၂-ခု သုံး၍ လိုသလို ရွှေ့သည့် နည်းသုံးပါက ပိုမြန်မည်။ O (n log n) ကြာမည်။
(၃) သူထက် ပိုမြန်နိုင်သော နောက်တနည်းမှာ HashTable သုံးခြင်း ဖြစ်သည်။ ထိပ်ဆုံးမှ နေ၍ သုည ဖြစ်စေမည့် ကိန်းကို HashTable တွင် သိမ်းသည့် နည်း ဖြစ်သည်။ ဥပမာ - (-1) ကို သုည ဖြစ်စေနိုင်သော တွဲဘက်ကိန်းမှာ +1 ဖြစ်သည်။ ထို ကိန်းကို HashTable ထဲ သွင်းထားသော အားဖြင့် ပြန်ရှာရာတွင် O(1) သာ ကြာမည် ဖြစ်၍ ပိုပြီး ထိရောက်သော၊ မြန်သော နည်းလမ်း ဖြစ်သည်။
အစတွင် အလွန်လွယ်ကူပါသည်။ ထိုနောက် public holiday ရှိသောအခါ၊ စနေ တနဂ်နွေ ရှိသောအခါ စသဖြင့် အခြား constraits များကို ပေါင်းထည့်ပါသည်။ သိပ်ပြီး အားမရပါ။ ၄၅ မိနစ်အတွင်း မပြီး။ ပြီးတော့ မိမိက ခေါင်းဆောင်ပြီး အဖြေရှာရန် ဖြစ်သော်လည်း အင်ဂျင်နီယာ (၂)ယောက်စလုံးနှင့် ပြောရသဖြင့် အချိန်မကြာသင့်သည်ထက် ကြာသွားသည်ဟု ထင်မိသည်။ မိမိကိုယ်ကိုလည်း သိပ်အားမရပါ။ အပြင်တွင် မန်နေဂျာ ရပ်စောင့်နေ၍ အချိန်စေ့ပြီ ဖြစ်ပေသည်။ အင်ဂျင်နီယာ (၂)ယောက်စလုံးက ပြုံး၍ လက်ဆွဲနှုတ်ဆက်သွားသည်။
ရုံးခန်းထဲကို နေ့လည် ၂ နာရီ ရောက်ပြီး၊ ၆ နာရီမှ ပြန်ထွက်လာခဲ့ပါသည်။ ၄ နာရီမျှ တောက်လျှောက် စကားပြောလာရသဖြင့် အလွန် ပင်ပန်းပါသည်။ မိမိကိုယ်ကို အခြေအနေ ကောင်းသည်၊ ဆိုးသည်ကို ပြောရန် အလွန်ခက်ပါသည်။ သို့သော် အထဲမှ လူများနှင့် တိုက်ရိုက် စကားပြောခွင့် ရသဖြင့် အလုပ်ကို ကြိုပြီး ခန့်မှန်းလို့ ရ၍ ဝမ်းသာသည်။ အမေရိကန်မှ ဝမ်းကွဲအကိုမှလည်း ဒီလိုဆို အခြေအနေ မဆိုးပါဟု ပြောသည်။ မိမိကိုယ်ကိုလည်း ရနိုင်လောက်မည်ဟု ယူဆမိပါသည်။
အကြိမ်ကြိမ်ကို နားထောင်မိသည်။ သူ့မိန့်ခွန်းမှာ အင်မတန် ဝမ်းနည်းစရာကောင်းသည်။ စိတ်ဓာတ်ကျနေသူကို အားပြန်သွင်းပေးစေသည်။ ဘဝတွင် အတက်ရှိသလို၊ အကျလည်း ရှိသည်။ အဆိုးထဲမှ အကောင်းကို ပြန်ရယူရန်နှင့် ဇွဲရှိရန် တိုက်တွန်းပေးသည်။
(၃) Phone Screening
အင်တာဗျူးမည့် သူမှာ အမေရိကန်မှ ဖြစ်၍ အချိန်က တကယ်ကို စကောစက နိုင်ပါသည်။ သူ ခေါ်မဲ့ အချိန်မှာ စင်ကာပူ မနက် ၇:၃၀ ဖြစ်၍၊ ကျွန်တော်မှာ စောစောထပြီး အိမ်မှာ ကော်ဖီကြမ်း သောက်ရင်း ဖုန်းစောင့်ပါသည်။ ပုံမှန် အလုပ်သွားချိန် ဖြစ်သော်လည်း လမ်းပေါ်မှာ အင်တာဗျူးရန် မဖြစ်နိုင်၍ တမင် အလုပ်နောက်ကျသွားပါသည်။ ဖုန်းဝင်လာသော အချိန်မှာ ၁၀ မိနစ်ခန့် နောက်ကျပါသည်။ ပထမ ကျွန်တော် ဖုန်းက ပျက်နေလို့လား ဆိုကာ မကြာခဏ စမ်းမိပါသေးသည်။ အလွန် စိတ်လှုပ်ရှားမိပါသည်။ ဖုန်းဝင်လာပါသည်။ နောက်ကျသည့် အတွက်လည်း တောင်းပန်စကား စပြောပါသည်။ ထိုနောက် မေးခွန်း (၁၀)ခု မေးမည် ဖြစ်ကြောင်း၊ မကြားရပါက ပြန်မေးနိုင်ကြောင်း၊ အဖြေ (၃)-(၄) မှ အမှန်ရွေးရမည် ဖြစ်ကြောင်း ပြောပါသည်။ မေးခွန်းတော်တော်များများမှာ အလွန်လွယ်ပါသည်။ဥပမာ. HTML သည် (၁) Compile Language (၂) Markup Language (၃) တစ်ခုမှ မဟုတ်။
ဒီလို မေးခွန်းမျိုးသာ ဖြစ်ပါသည်။ သို့သော် ကျွန်တော်မှာ စိတ်လှုပ်ရှားသည်က တကြောင်း၊ ဖုန်းအသံက ကြည်လင်မှု အားနည်းသည်က တကြောင်း၊ အမေရိကန် အသံထွက်ကို ၈၀% မျှသာ နားလည်နိုင်တာကြောင့် အစပိုင်းတွင် မေးခွန်းကို ပြန်ပြန် မေးပါသည်။ နောက် အားနာလာသည်နှင့် တဖြေးဖြေး သူ့အသံကို ပိုနားလည်လာသည်ကြောင့် နောက်ပိုင်း ပြန်မမေးတော့ပါ။ (၁၀)ခု မေးပြီးသောအခါ သူက ဝမ်းသာကြောင်း ပြောပါသည်။ ကျွန်တော် (၁၀)ခုတွင် (၈)ခု မှန်သည်ဟု ပြောပါသည်။ မှားနေသည့် မေးခွန်းနှင့် အဖြေမှန်ကို ရှင်းပြပါသည်။ (မေးခွန်းက မခက်ပါ။ ရှမ်းပြီး ဖြေသော အဖြေကို ဖမ်းသော မေးခွန်းမျိုးပါ။) ထိုနောက် နောက်တဆင့်ကို အီးမေးဖြင့် ဆက်သွယ်မည် ဖြစ်ကြောင်း ပြောပါသည်။
(၄) ကြောက်စရာ အီးမေး
ကျွန်တော် စင်ကာပူတွင် အင်တာဗျူးတော်တော် သွားဖူးပါသည်။ တချို့ လေ့ကျင့်ခန်း ကြိုပေး၍ လုပ်ခိုင်းတတ်ပါသည်။ နောက် လူတွေ့၍ မေးမြန်းပါသည်။ ယခု fb မှ လာသော အီးမေးမှာ အတော်ကို ရှည်ပါသည်။ နောက်လာမည် အင်တာဗျူးမှာ အိုင်ရာလန်နိုင်ငံ ဒူဘလင်မြို့မှ အင်ဂျင်နီယာနှင့် စင်ကာပူမှ အင်ဂျင်နီယာမှ အင်တာနက်မှ တဆင့် ဗျူးမှာ ဖြစ်သည်လို့ ဆိုပါသည်။ ထိုအင်တာဗျူး မတိုင်ခင် အင်တာဗျူးနှင့် ပတ်သတ်၍ fb မှ ကျွန်တော်အတွက် Online Course တစ်ခု တတ်ဖို့ မှတ်ပုံတင်ရန် လင့်တစ်ခု ပေးထားပါသည်။ နောက် အင်တာဗျူးမှာ Coding ability နှင့် Technical Communication ability ကို စမ်းမည် ဖြစ်ကြောင်း။ တစ်နာရီ ကြာမည် ဖြစ်ကြောင်း၊ ကွန်ပြူတာနှင့် အင်တာနက် လိုကြောင်း။ စကားပြောရင် မိုက်ခရိုဖုန်း လိုကြောင်း။ fb နှင့် ပတ်သတ်သော မေးခွန်းများ၊ ဘာကြောင့် fb တွင် အလုပ်လုပ်လိုကြောင်း စဉ်းစားဖို့ ပြင်ဆင်ရန် လင့်တွေ ပေးထားပါသည်။ Tips အချို့ကိုလည်း ပေးထားပါသေးသည်။Tips:
- You should be prepared to code on a laptop.
- Be prepared for technical questions involving coding algorithms and data structures in your best language (pick one of the core languages we use i.e. C/C++/Java/Javascript/Python/
PHP etc), design patterns etc. - Practice solving these problems on a whiteboard or a piece of paper in front of a friend who can help you with any bugs. This will help you get used to this style of interviewing
- It may also help to review core CS concepts as well as subjects pertaining to the scale of our environment
- For coding questions, you will be asked to produce clean, compilable, efficient code in a reasonable amount of time
- Think out loud if you are working through a technical solution you are presented with as the Engineer will want to know how you approach and troubleshoot problems
- If the interviewer gives you hints to improve your code, take them and run with them. It is good to adjust and work through the problems with the interviewer to show your thought process and problem solving ability
- When you are mentally working through a solution, think out loud as the engineer wants to know how you approach and troubleshoot problems
- You should also check for edge cases and test your code to ensure it is as bug free as possible
- You may be asked about memory constraints, the complexity of algorithm that you are writing and running time O(N^2) to O(N), etc and whether your solution can be improved and optimised
- New ideas? Think about what you would like to do in the role or see on the platform/products to wow your interviewers with your innovative ideas
(၅) Technical Interview I (Interviewer: Engineer from SG; Engineer from Dublin)
ကျွန်တော် ထိုအချိန်များကို တသက်တာ မေ့မည် မထင်ပါ။ ဘဝမှာ အလုပ်အလုပ်ဆုံး အချိန်ဖြစ်ပါသည်။ ထမင်းစားချိန်တွင်တောင် Computer Science နှင့် ပတ်သတ်သော စာများကို ပြန်နွေးရပါသည်။ အထူးသဖြင့် ကျွန်တော်က Electronic Engineering မှ လာသူ ဖြစ်ပြီး၊ Degree မှာ Security ဦးစားပေးသူ ဖြစ်၍ Algorithm နှင့် ပတ်သတ်၍ ပိုင်နိုင်မှု အားနည်းပါသည်။ စင်ကာပူကျောင်း တော်တော်များများတွင်လည်း ထိုနည်းတူ ဖြစ်သည်။ အားနည်းကျသည်။ ထို့ကြောင့် Online Course (စကားစပ် - သင်ကြားသူမှာ Cracking for Coding Interview စာအုပ်ရေးသူ ဖြစ်သည်၊ အရင် Google မှ Engineer ဖြစ်သည်။) အပြီး ကျွန်တော် Algorithm အားနည်းကြောင်း လုံးဝ သိလိုက်သည်။ Big O notation ကို ပထမဆုံး ကြားဖူးချင်း ဖြစ်သည်။ အင်မတန် အားငယ်မိသည်။ ထိုကြောင့် ညတိုင်း ၂-၃ နာရီမျှသာ အိပ်၍ ကျန်အချိန်များတွင် Algorithm နှင့် ပတ်သတ်သော လေ့ကျင့်ခန်းများကို LeetCode မှ စမ်းသပ် လေ့ကျင့်သည်။ အရင် Code Editor တွင် Auto Complete ကြောင့် အလွယ်ပြီးနိုင်သော အရာများက စပြီး ဒုက္ခပေးသည်။ Google Search မှ သူများ code များ ကူးယူသောအကျင့်ကြောင့် ကိုယ်တိုင်ရေးရန် မဝံ့တော့။ ဘယ်က စရမှန်းလည်း မသိတော့။ မတတ်နိုင်။ လုပ်ရသည်။ လုပ်လေ ပိုပြီး ရင်းနီးလာလေ ဖြစ်သည်။ အင်တာဗျူး လာတော့မည်။ ဘုရားတပြီး ကွန်ပြူတာဖွင့်ကာ သူတို့ကို စောင့်နေပါသည်။စင်ကာပူမှ လူက တရုတ်ပြည်သား ဖြစ်သည်။ ဒူဘလင်က အဖြူကောင် ဖြစ်သည်။ သာကြောင်း မာကြောင်း ပြောပြီးသည်နှင့် မေးခွန်းစပေးသည်။ CoderPad Online Editor ဖြစ်သည်။ Programming Language ကို ထောင့်မှ ရွေးလိုက်ရင် code ကို အရောင်ပြောင်းပေးသည်။ ဖတ်ရ လွယ်သည်။ သို့သော် Auto Complete မပါ။ Compile လုပ်၍ မရ။ Notepad++ လိုမျိုးသာ ဖြစ်သည်။ သူတို့ ရေးနိုင်သလို ကျွန်တော်လည်း ရေးနိုင်သည်။ သူက မေးခွန်း ရေးပြသည်။
For the given sentence “Done is better than perfect” return the reversed sentence
“Perfect than better is done”
သိပ်မခက်ပါ။ Java ArrayList သုံး၍ whitespace ကို ကြည့်ကာ သိမ်းလိုက်ပါသည်။ ပြီးမှ ArrayList ကို နောက်မှ ရှေ့သို့ ပြန်ပြီး for-loop ဖြင့် ပြန်ထုတ်ပါသည်။
For a given string, check to see if it is a Palindrome.
(Within/Without the reverse function.)
input = abba; return true
(၆) Technical Interview II (Dublin Senior Engineer)
ဒုတိယမြောက် အွန်လိုင်း အင်တာဗျူး ထပ်စစ်ရန် ချိန်းပါသည်။ ဒီတစ်ခေါက်တွင် အင်ဂျင်နီယာ တစ်ယောက်ချင်း စစ်မည် ဖြစ်ပါသည်။ အရင် အင်တာဗျူး ပြီးနောက်ပိုင်း ကျွန်တော်မှာ မနားနိုင်သေးပါ။ ညတိုင်း ၂-၃နာရီသာ အိပ်၍ အပြင်လည်း မထွက်တော့။ အင်တာဗျူးတစ်ခုနှင့် တစ်ခုကြား အနည်းဆုံး ၁ ပတ်မှ ၂ပတ် တမင်ခြားပြီး လုပ်ထားပါသည်။ ကျွန်တော် ပြင်ဆင်နိုင်ရန် အချိန်ရဖို့ တမင်ဆွဲထားသည်။ fb ဘက်မှလည်း အလုပ်များပုံ ရသည်။ သူတို့ဘက်မှ ရက်နောက်ဆုတ်တာလည်း ရှိသည်။ ပထမဆုံး ဖုန်း အင်တာဗျူးမှာ တိုက်တိုက်ဆိုင်ဆိုင် ကျွန်တော်မွေးနေ့ မတ်လ ၉ရက် ဖြစ်သည်။ ခု ဒုတိယ Technical Interview မှာ ဧပြီလ ၄ ရက် ဖြစ်သည်။ ထိုနေ့တွင် ပုံမှန်အတိုင်း ကော်ဖီကြမ်းသောက် (မိန်းမက ဉာဏ်ပွင့်အောင် ဆိုသည်)၊ စိတ်ထဲ ဘုရားရှိခိုးပြီး အင်တာဗျူးရန် စောင့်သည်။ဒီတခါ အင်တာဗျူးသည့် သူက မေးခွန်းတစ်ခုသာ မေးမည်။ သို့သော် အဖြေကို အဆင့်ဆင့် ပိုပို ကောင်းလာအောင် ပြင်ပါဟု ဆိုသည်။
Given an array of integers, find two numbers which addition will result in zero.
input = [-1, 0, 1, 3, 2, 5]; output: -1 1
(၁) ပထမဆုံး အနေဖြင့် for-loop ၂-ခု သုံး၍ အပေါင်းအဖြေ သုညကို ရှာပါသည်။ O(n*n) ကြာမည် ဖြစ်သည်။
(၂) ပိုမြန်စေလိုရင် အရင် array ကို sorting လုပ်မည်။ [-1,0,1,2,3,5] ထိုနောက် pointer#1 ကို array[0]၊ pointer#2 ကို array[n-1] ထောက်မည်။ နှစ်ခုကို ပေါင်း၍ အဖြေပေါ် မူတည်ကာ pointer ကို လိုသလို ပြောင်းမည်။ ပထမဆုံး (-1+5 = 4) အဖြေသည် သုညထက် ကြီး၍ pointer#2 ကို ရှေ့တစ်နေရာ ရွှေ့သည်။ (-1+3=2) သည် သုညထက် ကြီးနေသေး၍ pointer#2 ကို ရှေ့ထပ်ရွှေ့ရမည်။ ထိုသို့ pointer ၂-ခု သုံး၍ လိုသလို ရွှေ့သည့် နည်းသုံးပါက ပိုမြန်မည်။ O (n log n) ကြာမည်။
(၃) သူထက် ပိုမြန်နိုင်သော နောက်တနည်းမှာ HashTable သုံးခြင်း ဖြစ်သည်။ ထိပ်ဆုံးမှ နေ၍ သုည ဖြစ်စေမည့် ကိန်းကို HashTable တွင် သိမ်းသည့် နည်း ဖြစ်သည်။ ဥပမာ - (-1) ကို သုည ဖြစ်စေနိုင်သော တွဲဘက်ကိန်းမှာ +1 ဖြစ်သည်။ ထို ကိန်းကို HashTable ထဲ သွင်းထားသော အားဖြင့် ပြန်ရှာရာတွင် O(1) သာ ကြာမည် ဖြစ်၍ ပိုပြီး ထိရောက်သော၊ မြန်သော နည်းလမ်း ဖြစ်သည်။
(၇) အင်တာဗျူး မာရသွန်
နောက်ဆုံး တစ်ခေါက်ပြီးတော့ ထူးထူးခြားခြား fb ဘက်မှ အသံတိတ်သွားသည်။ အရင်တွေက အင်တာဗျူးပြီး တစ်ပတ်အတွင်း ဆက်သွယ်လေ့ ရှိသော်လည်း၊ ခုအခါ ၁၀ ရက်မျှ ဘာအသံမှ မကြားရ။ ကျွန်တော် နောက်ဆုံး အင်တာဗျူးတွင် ဘာတွေ မှားမိလို့များလည်း စပြီး အတွေးဝင်လာသည်။ ဒီလို အခွင့်အရေးမျိုး ရဖို့ ဆိုသည်မှာ မလွယ်။ ဒါကြောင့် အရမ်းလိုချင်မိသလို အရမ်းစိတ်ဖိစီးမှုဒါဏ် ခံရသည်။ နောက်ဆုံး recruiter ဆီမှ သတင်းကောင်း ကြားရသည်။ စင်ကာပူရုံးကို လူတွေ့ အင်တာဗျူးလာရန် ဖြစ်သည်။ ဒီတစ်ခေါက်တွင် နေ့တစ်ဝက်ကုန်မည် ဖြစ်သည်။ ကြိုတင်ပြင်ဆင်ရမည်မှာကိုလည်း မှာထားသည်။ စင်ကာပူ fb ရုံးကို တစ်ခါမှ မရောက်ဘူးပါ။ အင်မတန် လှသော၊ ကျယ်သော ရုံးပါပေ။ ပင်လယ်ပြင်ကို လှမ်းမြင်နေရသည်။ လှေကြီး လှေငယ်များဖြင့် ရုတ်ရှပ်နေသော ဆိပ်ကမ်းကိုလည်း မြင်နေရသည်။ အလွန်လှသည့် မြင်ကွင်း နေရာပင် ဖြစ်သည်။ ရုံးထဲသို့ HR မှ လူတစ်ယောက်က ခေါ်လာသည်။ Canteen ဖြတ်စဉ် ရေဘူးတစ်ဘူး လှမ်းယူပေးသဖြင့် ယူထားလိုက်သည်။ နောက်ထပ် ၄ နာရီ နီးပါး နေရမည် ဖြစ်၍ ရေသောက်ရန် လိုသည်။(က) Presentation (15mins to present; 15mins for Q&A)
fb နှင့် ပတ်သတ်သော ခေါင်းစဉ်တစ်ခု ရွေးပြောရပါသည်။ ပထမ facebook developer နှင့် ပတ်သတ်ရာ ပြောမည် ကြံသောလည်း fb developer tool အကြောင်းအရာများနှင့် မရင်းနှီးသည်က တစ်ကြောင်း၊ အချိန်မပေးနိုင်တော့သည်က တစ်ကြောင်း၊ လတ်တလော မြန်မာနိုင်ငံတွင် ငလျှင်အကြီးအကျယ် လှုပ်ရာ facebook မှ Safety Check ဖွင့်သည့် အကြောင်းများကြောင့် Safety Check အကြောင်းကို ပြောပါသည်။ အခန်းထဲတွင် အင်ဂျင်နီယာ (၂)ဦး၊ မန်နေဂျာနှင့် အိုင်ယာလန်မှ အသင်းခေါင်းဆောင် စုစုပေါင်း (၄)ဦး ရှိပါသည်။ သူငယ်ချင်းများထံမှ တောင်းယူထားသည့် Safety Check Screenshot များကို သုံး၍ ကိန်းဂဏန်းများဖြင့် လက်ရှိ အသုံးဝင်ပုံနှင့် လိုအပ်နေသည်များကို ရှင်းပြပါသည်။ အိုင်ယာလန်က ခေါင်းဆောင်က စိတ်ဝင်စားသော်လည်း ကျန်သူများမှာ အားတတ်သရော မရှိသလို ခံစားရပါသည်။ ကျွန်တော် ရွေးသည့် ခေါင်းစဉ်က သိပ်၍ ယေဘုရဆန်မည် ထင်မိပါသည်။ နားထောင်သူ အများစုမှာ အင်ဂျင်နီယာများ ဖြစ်၍၊ သိပ်မကိုက်ဟု ထင်ပါသည်။(ခ) Leadership Interview (30 mins)
ပထမ စီစဉ်ထားမှုအရ ဒီ အင်တာဗျူးမှာ နောက်ဆုံး အစီအစဉ် ဖြစ်သည်။ သို့သော် အိုင်ယာလန်မှ အသင်းခေါင်းဆောင်က သူ့ အလုပ်တစ်ချို့ ရှိသေးသဖြင့် သူအရင် စလိုကြောင်း ပြောသည်။ ထိုအခါ အခန်းတွင်းရှိ အင်ဂျင်နီယာများနှင့် မန်နေဂျာတို့က အပြင်ထွက်သွားကြသည်။ မေးခွန်းများမှာ အဖွင့်မေးခွန်း များသည်။ ဥပမာ အသင်းတွင် အားနည်းသည့် အသင်းသား ရှိပါက မည်ကဲ့သို့ ကိုင်တွယ်ဖူးသနည်း။ ဘဝတွင် လူ (သို့) အချိန်နှင့် ပတ်သတ်၍ အခက်ခဲဆုံး အကြောင်းအရာ တစ်ခုခုကို ပြောပြပါ။ မည်ကဲ့သို့ ကိုင်တွယ်ပြီး သူ့ထက် ကောင်းမွန်အောင် မည်ကဲ့သို့ ပြောင်းလွဲ ကိုင်တွယ်မည်ဟု ကြံရွယ်သနည်း။ တော်တော်များများမှာ မှန်သည်၊ မှားသည် မရှိပါ။ မိမိ အတွေ့အကြုံနှင့် ခံယူချက်များကို စစ်ဆေးသော မေးခွန်းမျိုး ဖြစ်ပါသည်။(ဂ) Technical & Coding Interview (45 mins)
အင်ဂျင်နီယာ (၂)ဦး အခန်းထဲ ပြန်ဝင်လာပါသည်။ တစ်ယောက်က အင်ဒိုမှ ဖြစ်ပြီး၊ ပိုရင်းရင်းနှီးနှီး ဆက်ဆံပါသည်။ နောက်တစ်ဦးမှာ အရှေ့ ဥရောပ (သို့) ရုရှား ဖြစ်ဟန် တူသည်။ ပိုထက်သလို ရှိသော်လည်း လူနှင့် ရင်းရင်းနှီးနှီး မပြော။ အလုပ်ဆန်ဆန်သာ ဖြစ်သည်။ နောက်ခံ culture ကြောင့်ဟု ထင်သည်။ မေးခွန်းမှာ သိပ်မခက်လှပါ။Write a function to check if support ticket is closed before expiry.
for example. if the support ticket has to be closed within 3 working days.
အစတွင် အလွန်လွယ်ကူပါသည်။ ထိုနောက် public holiday ရှိသောအခါ၊ စနေ တနဂ်နွေ ရှိသောအခါ စသဖြင့် အခြား constraits များကို ပေါင်းထည့်ပါသည်။ သိပ်ပြီး အားမရပါ။ ၄၅ မိနစ်အတွင်း မပြီး။ ပြီးတော့ မိမိက ခေါင်းဆောင်ပြီး အဖြေရှာရန် ဖြစ်သော်လည်း အင်ဂျင်နီယာ (၂)ယောက်စလုံးနှင့် ပြောရသဖြင့် အချိန်မကြာသင့်သည်ထက် ကြာသွားသည်ဟု ထင်မိသည်။ မိမိကိုယ်ကိုလည်း သိပ်အားမရပါ။ အပြင်တွင် မန်နေဂျာ ရပ်စောင့်နေ၍ အချိန်စေ့ပြီ ဖြစ်ပေသည်။ အင်ဂျင်နီယာ (၂)ယောက်စလုံးက ပြုံး၍ လက်ဆွဲနှုတ်ဆက်သွားသည်။
(ဃ) Analytical & Team Fit (30 mins)
ခုနက မန်နေဂျာ ပြန်ဝင်လာသည်။ စင်ကာပူ နိုင်ငံသားဖြစ်သည်။ အမေရိကန် နာမည်ကြီး ကျောင်းဆင်းဖြစ်သည်။ အရင် ဟာလာပ၊ သာလာပများ ပြောပြီး၊ လက်ရှိ အလုပ်အကြောင်း မေးသည်။ ဘာကြောင့် fb တွင် အလုပ်လုပ်ချင်သည့် အကြောင်း၊ ဘာ plan များ ရှိကြောင်း မေးသည်။ နောက်ဆုံး ဘာ အသစ်အဆန်းများကို လေ့လာနေသနည်း စသည်တို့သာ ဖြစ်သည်။ ထိုနောက် လက်ရှိ အသင်းအကြောင်း၊ အလုပ်တာဝန် အကြောင်း၊ fb အလုပ်စဝင်သူတိုင်း တတ်ရောက်ရမည့် bootcamp အကြောင်း ရှင်းပြသည်။ အလုပ်စဝင်သလိုပင် ခံစားရသည်။(င) Cross Function/ Business Interview (30 mins)
နောက်ဆုံး ဝင်လာသူမှာ Partnership Engineering မှ Sale Executive တစ်ဦး ဖြစ်သည်။ သူ့ ကြည့်ရသည်မှာ အင်မတန် ပင်ပန်းနေပုံ ရသည်။ မိတ်ဆက်ပြီးနောက် သူ့၏ အလုပ်အကြောင်းနှင့် ကျွန်တော်အလုပ် မည်ကဲ့သို့ ပတ်သတ်နိုင်ကြောင်းကို ရှင်းပြသည်။ ထို့နောက် ကိုယ်ရေးရာဇဝင်ကိုကြည့်၍ မေးနေကျ မေးခွန်းများကို မေးပါသည်။ သင့် အားသာချက်က ဘာလဲ။ အားနည်းချက်က ဘာလဲ။ အရင်က ဘာအလုပ်တွေ လုပ်သလဲ။ ထိုနောက် သူ့အား မေးခွန်းအချို့ ပြန်မေး၍ တနေ့တာ အင်တာဗျူး အဆုံးသတ်ပါသည်။ရုံးခန်းထဲကို နေ့လည် ၂ နာရီ ရောက်ပြီး၊ ၆ နာရီမှ ပြန်ထွက်လာခဲ့ပါသည်။ ၄ နာရီမျှ တောက်လျှောက် စကားပြောလာရသဖြင့် အလွန် ပင်ပန်းပါသည်။ မိမိကိုယ်ကို အခြေအနေ ကောင်းသည်၊ ဆိုးသည်ကို ပြောရန် အလွန်ခက်ပါသည်။ သို့သော် အထဲမှ လူများနှင့် တိုက်ရိုက် စကားပြောခွင့် ရသဖြင့် အလုပ်ကို ကြိုပြီး ခန့်မှန်းလို့ ရ၍ ဝမ်းသာသည်။ အမေရိကန်မှ ဝမ်းကွဲအကိုမှလည်း ဒီလိုဆို အခြေအနေ မဆိုးပါဟု ပြောသည်။ မိမိကိုယ်ကိုလည်း ရနိုင်လောက်မည်ဟု ယူဆမိပါသည်။
(၈) နောက်ဆုံး အဖြေ
ဧပြီလ (၁၄) ရက် - အလုပ်ထဲမှ သူငယ်ချင်းတစ်ယောက်မှ နောက်ဆုံး အလုပ်ရက်။ fb အင်တာဗျူးပြီး ၁၁ ရက် အကြာ။ နံနက် ၁၁ နာရီ ပတ်ဝန်းကျင်တွင် ဖုန်းထဲသို့ ဖေ့ဘုတ်မှ အီးမေးတစ်ဆောင် ဝင်လာသည်။ ရင်အခုန်ဆုံး အချိန်တစ်ခုပင် ဖြစ်သည်။ ၂လ တာမျှ အအိပ်ပျက်၊ အစားပျက် စိတ်ဖိစီးမှု ခံပြီး ကြိုးစားခဲ့သမျှ သဲထဲ ရေသွန် ဖြစ်ရသည်။ အီးမေးမှာ တိုတိုလေးပင်။ အချိန်ပေးသည့်အတွက် ကျေးဇူးတင်ကြောင်း၊ လောလောဆယ်တွင် fb မှ ဆက်လက်၍ သင်ကို အင်တာဗျူးတော့မည် မဟုတ်ကြောင်း ပြောသည်။ ကျွန်တော် အီးမေးဖြင့် မည်သည်အကြောင်းကြောင့် ငြင်းပယ်သည်ကို မေးမြန်းရာ၊ အင်တာဗျူးသည့် အသင်းမှ ဘာ တစ်စုံတစ်ရာ အပြစ်အကြောင်း မဖော်ပြ ဟုဆိုပါသည်။ အဲဒီနေ့က ကျွန်တော် အစားစားချင်စိတ် မရှိပါ။ အင်မတန်လည်း ဝမ်းနည်းမိပါသည်။ သမီးလေး မမွေးခင် နောက်ဆုံး အခွင့်အရေးတစ်ခု ဆုံးရုံးသွားရသည်ဟု ထင်မိပါသည်။ ဒီ ၂လ အတွင်း ကျွန်တော်ကို အထူးဂရုစိုက် စောင့်ရှောက်သည့် ကိုယ်ဝန်လွယ်နေရသည့် မိန်းမအပေါ်လည်း မိမိ တာဝန်မကျေဟု ခံစားရသည်။ ဘာဆို ဘာမှ လုပ်ချင်စိတ်မရှိတော့ပါ။ မျက်ရည်ကျမိပါသည်။ အဲဒီနေ့ တိုက်တိုက်ဆိုင်ဆိုင်ပင် facebook COO Sheryl Sandberg မှ UC Berkley တွင် မိန့်ခွန်းပြောပါသည့် စကားကို နားထောင်မိသည်။အကြိမ်ကြိမ်ကို နားထောင်မိသည်။ သူ့မိန့်ခွန်းမှာ အင်မတန် ဝမ်းနည်းစရာကောင်းသည်။ စိတ်ဓာတ်ကျနေသူကို အားပြန်သွင်းပေးစေသည်။ ဘဝတွင် အတက်ရှိသလို၊ အကျလည်း ရှိသည်။ အဆိုးထဲမှ အကောင်းကို ပြန်ရယူရန်နှင့် ဇွဲရှိရန် တိုက်တွန်းပေးသည်။