Sunday, May 3, 2015

Энэ сард хийх зүйлүүдийн төлөвлөгөө

Мэдээлэл зүйн олон улсын олимпиадад сонгогдож байсан бүх бодлогыг Монголоор орчуулж бүтэн тесттэй нь www.spoj.pl/DUNNO дээрээ тавихаар шийдлээ. Мөн бодлого бүрийг тавих болгондоо би анализыг нь блогтоо давхар оруулж, тухайн бодлогонд гарч байгаа бүх санаа, өгөгдөлийн бүтэц алгоритм мөн хэрэгтэй бол холбоотой ижил санаагаар бодогдох бодлогуудыг давхар оруулж байх болно. Би код тавихгүй, гэхдээ зарим тохиолдолд магадгүй ихэнх тохиолдод бичихэд төвөгтэй хэсгүүдийг бичиж зааж өгнө. Чадахгүй гэж өөрийгөө битгий голоорой, гол нь чи өөрөө дуртай мөн тууштай шударгаар оролдоорой. Өдөрт дунджаар 4н цагийн бэлтгэл хийвэл өөрийгөө шагнаад сэтгэл тэнэгэр гарч сагс, хөл бөмбөг юу байдаг юм тоглоорой, охид хөвгүүдтэй ч уулзаж болзож болох юм кк.





АНХААРУУЛГА: Эхлээд би бодлогыг сайт дээрээ оруулна тэгээд бараг давхар шахуу шууд анализыг нь блогтоо тавина. Гэхдээ бодлогыг эхлээд өөрөө уншаад ядаж 2 цагийг бодох гэж оролдож зарцуулаарай, мэдээж амархан бодлогууд байгаа зарим тохиолдолд 30-н минут суугаад бодчиж болох юм кк. Би аль болох хамгийн амархануудаас нь эхлэж оруулна. 






Бие биедээ амжилт хүсээд хамтдаа хөгжицгөөе.



FAILED!! SORRY

Sunday, February 1, 2015

FAQ-1


Ask нээж үзтэл дараах асуулт шурххххх гээд л ороод ирлээ.


Software engineer-iin interview-g sain uguhiin tuld ymr bodloguud bodoh we. Programming contest-uud ihenh n tegeed toonii medleg ntr orood bdg bolhoor hackerrank bodood nemer baihu?


Сайхан асуулт байна, баярлалаа. Би дараах байдлаар хариулах юм байна. 





Математик бол миний бодлоор зөвхөн тоо бодох, теоремтой тоглох биш. Оюун ухааныг хөгжүүлж, логик сэтгэлгээ, эмх цэгцтэй сэтгэх, баталгаатай зүйл дээр тулгуурлаж хамгийн үнэн бодит дүгнэлтийг гаргахад тань туслах хүмүүжлийг олгодог. Одоохондоо энэнээс цаашаа өөр юм ярихгүй ээ. Багаасаа тоо бодож өссөн хүүхдүүд шаал өөр байдаг юмдаа кк. 





Яагаад матын бодлого тэмцээнүүдэд их орж ирээд байгаа вэ?


Алгоритм бол математик яг ч биш. Одоо топкодер, кодфорсес, хакерранк зэрэг онлайн тэмцээний сайтууд дээр сардаа хамгийн багадаа 10-аад тэмцээн болж байгаа. Энэ олон тэмцээнүүдийг тасартгүй амжилттай явуулахын тулд асар олон бодлого хэрэгтэй болно. Тиймээс математикын аль нэг төрөл, тооны онол ч юмуу эсвэл алгебраас энгийн зүгээр бодлого авахаас өөр аргагүй санагдсан. Гэхдээ хамгийн амархан эхний бодлогууд л математикийн бодлого байгаа, байх ёстой байх бас. Яагаад гэхээр матийн тодорхой нэг теорем, онол шууд тавьж болохгүй, үүнийг бүгд мэдэх албагүй, тодорхой тооны оролцогчидын хувьд давуу тал болчино. Тиймээс, уучлаарай, нэг зүйлийг хэлэхэд тэр амархан бодлогуудыг бодож чадахгүй байгаа бол чухал чухал алгоритм, өгөгдөлийн бүтцүүдийн онолыг сайн ойлгож эзэмшихэд хэцүүдээ, ядаж л их цаг хугацаа шаардагдана. 





Ажлын ярилцлагуудын тухайд


Би Америкийн програм хангамж, мэдээлэл технологийн компаниудын тухай л мэдэх болохоор эдгээрийн тухай л бичье. Миний бодлоор компаниудын ажил горьлогчидоос хардаг зүйлүүд бол алгоритм, програмчлалын бодлого бодох, багаар ажиллах чадвар мөн өмнөх 2оос дутахааргүй нэн чухал зүйл нь харилцааны чадвар. Ихэвчлэн ажлын ярилцлагууд утсаар тухайн компаний хүний нөөцийн ажилчин нь, recruiter, утсаар холбогдож өөрөөс чинь ямар зорилготой ямархуу хүн бэ гэдэгийг тандах зорилготой холбогдно. Дараагаас нь 3аас 4н инженертэй утсаар болон тухайн компан дээр очиж ярилцлага хийдэг. Ингэж ярилцлага хийхэд гарах зардал онгоц, буудал, хоолны мөнгө зэргийг бүгдийг тухайн компани гаргадаг. 





Бодлогууд, асуултуудын хувьд мөн ярилцлагын үеэр танаас ажигладаг зүйлүүд


Бодлогууд хүнд, хөнгөний тухайд бол топкодерын div2-н хүнд, хөнгөн, амархан бодлогууд орж ирдэг. Кодфорсесоос бол div2 эхний 4н бодлого. Ярилцлага эхлээд инженер нь танаас бодлого асуулаа, таныг бодлогоо бодож чадаж байна уу, чадахгүй байна уу гэдэг тийм ч чухал биш. Ярилцлагын үеэр та тухайн инженертэй хэр холбогдож, харилцан яриа өрнүүлж тухайн бодлогыг бодож байна вэ гэдэг хамгийн чухал. Өөрөөр хэлбэл тухайн танаас асуусан бодлого бол та 2н дунд, инженертэй, тулгарсан асуудал, түүнийг хамтдаа шийдэх гээд байгаа юм. Тэгэхээр та толгой дотроо юу бодогдож байна, санаа оноогоо зөвөөр илэрхийлээд явах хэрэгтэй. Ийм чадамж танд хэр байна вэ гэдэг л ихэнх компаниудын хувьд хайдаг зүйл. Мэдээж хэдий идэвхтэй сайн ярилцаад байлаа ч ярьж байгаа, санал болгож байгаа шийдлүүд маш их учир дутагдалтай, таны мэдлэг дутуу нь харагдаж байвал мэдээж бас тэнцэхгүй. 




Тэгэхээр танд хэрэгтэй зүйл ерөнхий онолын мэдлэг сайтай, алгоритмын бодлого, асуудлыг сайн шийддэг, толгой доторхоо зөв энгийнээр сайн илэрхийлчихдэг багаар болон бусадтай харьцах чадвар сайтай байх. 





Яаж бэлдэх вэ?


Энэ ер нь бол их миний хувьд сонин асуулт. Би хувьдаа нээх ярилцлага хийхээсээ өмнө тухайн компанид зориулж бэлтгэл хийж барьдаггүй. Өөрөө байгаагаараа л өөртөө тохирсон ажилдаа орохыг боддог. Яагаад гэвэл би өөрийхөө дуртай зүйлээр сурч байгаа, өөрийн сонирхсон зүйлийг барьж аваад түүндээ хэнээс ч дутахааргүй мэргэжилтэн болох хүсэлтэй явдаг. Миний эзэмшсэн зүйл, чадвар хэрэгтэй газараа хэрэгтэй. Тэр газар нь л би ажиллана. Яахав, тухайн компанийг сайн судлаад онцлогоос нь хамаараад ямархуу бодлого асуудаг зэргийг нь судлаад бэлдэж ороод тэнцчих л байх. Жишээ нь фэйсбүүк динамик програмчлал, модны төрлийн өгөгдөлийн бүтэц их асуудаг ч гэх юмуу, quora бол string-тэй ажиллах бодлого их асуудаг гэх байдлаар бэлдэж болно. Гэхдээ үнэхээр өөрийн чинь хийж чадах зүйл, дурыг чинь хөдөлгөх зүйлээ та тэнд хийхүү? тухайн компаний нэр хүнд таны хийх зүйлээс чухал уу?




Ерөнхийдөө бол байнгийн дээр дурдсан тэмцээнүүдэд байнга орж, бодлогуудыг нь байнгын бодож байгаарай. Эцэст нь хэлэхэд дээр бичсэн зүйлүүд бүгд зөвхөн миний л бодол, өдий хүртэл анзаарч харсан зүйлүүд шүү, бусад хэн нэгний хувьд эдгээр бичсэн зүйл учир дутагдалтай л байгаа.





P.S. удахгүй зарим нэг хүмүүстэй хамтарч байгаад нилээн дэлгэрэнгүй бичнээ. Одоохондоо маш товч бичлээ.







Амжилт хүсье.