Өгөгдлийн бүтэц, алгоритмын чадвараа сайжруулах 7 алхам
өгөгдлийн бүтэц, алгоритм, өгөгдлийн бүтэц ба алгоритм, ярилцлагын бэлтгэл, ярилцлагын бааз. HackerEarth, өгөгдлийн бүтцийн практик
Технологийн ажилд авах дэлхийн гүнзгий нийтлэл авах. Таны ирсэн мэйлд шулуун.
Өгөгдлийн бүтэц, алгоритмын ур чадвараа сайжруулах алхам алхмаар төлөвлөгөө энд байна:
Алхам 1: Өргөн сүсэг гүн ойлгох
Бид бүгд 500 кодчиллын асуудлыг шийдсэн тэр найзтай. Тэд үүнийг хүндэтгэлийн тэмдэг болгон өмсөх дуртай. Харин ярилцлагын тухайд тэд алдаа дутагдал гаргадаг. Энэ бол маш түгээмэл хувилбар юм. Үүнийг бид “өргөн цар хүрээтэй” арга гэж нэрлэдэг. Тэд аль болох олон асуудлыг шийдэхэд л анхаарлаа хандуулдаг.
Өргөн цар хүрээтэй хандлага нь асуудалтай байдаг – та бат бөх суурийг бий болгодоггүй. Ярилцлага нь асуудал шийдвэрлэх гүнзгий мэдлэг, хурдан, үнэн зөв код бичих чадварыг шаарддаг. Та зөвхөн төвлөрсөн бэлтгэл эдгээр ур чадварыг хөгжүүлэх.
Энд илүү сайн ажилладаг эсрэг хялбар арга юм:
Илүү биш бага асуудал дээр анхаарлаа төвлөрүүл
Энэ бол тайвшрал юм, тийм үү? 100-д анхаарлаа төвлөрүүлж чадвал 500 асуудалд хэн анхаарлаа хандуулахыг хүсч байна вэ?
Гэхдээ энд түлхүүр юм-Та тэднийг гүнзгий сурахыг хүсч байна. Энэ нь гүн орж ирдэг хаана байна.
Асуудлыг гүнзгийрүүлэн шинжлэхэд энэ нь:
Та үүнийг хурдан бичиж болно
Та үүнийг зөв синтаксаар бичиж болно, энэ нь та хэл дээр сайн байна гэсэн үг юм
Та цэвэр кодыг нэг дор бичиж болно, учир нь энэ нь танд хоер дахь шинж чанар юм
Та хурдан шинэ асуудал ижил кодыг хэрэглэж болно
Та ашиглаж байгаа өгөгдлийн бүтцээ мэддэг бөгөөд асуусан тохиолдолд хэрэгжүүлэх боломжтой
Үүнд хүрэхийн тулд та хэд хэдэн төлөөллийн асуудалд анхаарлаа хандуулах хэрэгтэй (100 орчим нь сайн ажилладаг.) Тэдгээрийг хэд хэдэн удаа шийдэж, та хэв маягийг харж эхлэх болно. Та бас кодлох хэсэгт илүү сайн болж эхэлнэ.
Тиймээс та гүн хамрагдсан байна, баяр хүргэе! Та хатуу суурийг олж авсан.
Та одоо л гарч, хүссэнээрээ олон асуудлыг шийдэж чадна. Хамгийн сайн нь та тэдгээрийн ихэнхийг нь бичих шаардлагагүй болно. Шийдлийг олохын, бөгөөд энэ нь таны үндсэн асуудлуудын нэг нь төстэй юм бол (нь энэ нь ихэвчлэн байдаг), та хийж байна. Үнэндээ код бичих, дибаг хийх шаардлагагүй, учир нь та тэр үед аль хэдийн сайн байсан.
Алхам 2: Гүн эхлэх-эхний арга-үндсэн асуултын жагсаалтыг гаргах
~100 үндсэн асуудлын жагсаалтыг тодорхойлох. Олон сайтууд танд өгөх 100 олдвор асуудал.
Энд өөр нэг арга зам байна:
Энэ хоер номыг аваарай:
Програмчлалын ярилцлагын элементүүд
Кодлох ярилцлага хагарал.
Хамтдаа, тэд танд гар сонгосон асуудал нь сайн төрөл бүрийн өгөх. Хэрэв та энэ нь зохион байгуулалттай курс хүсэж байгаа бол, шалгаж InterviewCamp.io
Алхам 3: өгөгдлийн бүтэц бүрийг эзэмшинэ.
Одоо та өөрийн жагсаалтыг эцэслэн байна гэж, үндсийг эхлэх. Өгөгдлийн бүтэц бүрийг мэдэх.
Өгөгдлийн бүтэц бүрийг өөрийн хэл дээр хэрхэн ашиглаж сурах.
Мөн тэдгээрийг хэрхэн хэрэгжүүлэх талаар суралцана. Тийм ээ, тэдгээрийг гараар хэрэгжүүлээрэй. Олон хүмүүс үүнийг үл тоомсорлодог боловч энэ нь маш чухал юм. Ярилцагчид мэдээллийн бүтэц дотоод талаар танаас асууж болно. Олон асуудал өгөгдлийн бүтцийг өөрчлөх, эсвэл тодорхой ашиглах тохиолдолд тэднийг дахин инженер. Тэдгээрийг бүрэн ашиглахын тулд тэд хэрхэн ажилладагийг мэдэх хэрэгтэй.
Ярилцлага авагч: “Тиймээс та массив дээр тулгуурласан жагсаалтыг эхлүүлэв. Сайн байна. Одоо та түүний хүчин чадалд хүрнэ гэж хэлье, өөр элемент нэмэх гэж оролдох үед юу болох вэ?”
Энэ тохиолдолд нэр дэвшигч Python-г ашиглаж байсан бөгөөд жагсаалтын багтаамж гэсэн ойлголт байхгүй. Та зүгээр л элементүүдийг нэмж байх. Гэхдээ энэ нь хамар дор юу биш юм. Та жагсаалтыг буцааж ямар өгөгдлийн бүтэц мэдэх хэрэгтэй, Тэр хэрхэн ажилладаг талаар.
Энд бас нэг жишээ байна:
– Ын та зүгээр л яндан (алдартай асуулт) ашиглан дарааллыг хэрэгжүүлэх асуусан байна гэж үзье. Энэ бол өөрчлөгдсөн өгөгдлийн бүтэц юм. Хэрэв та өмнө нь аль нэгийг нь хэрэгжүүлээгүй бол эхлэхэд бэрхшээлтэй тулгарах болно.
Одоо энэ нь та бүр хэрэгжүүлэх кодыг мэдэх хэрэгтэй гэсэн үг биш юм. Зарим өгөгдлийн бүтцийг хэрэгжүүлэхэд нэлээд хэцүү байдаг-Жишээлбэл, хоертын хайлтын модноос зангилааг устгах нь код бичихэд хялбар биш юм. Гэхдээ энэ нь хэрхэн ажилладаг талаар та мэдэх естой.
Алхам 4: Зайтай Давтлага
Зүгээр. Та асуултын жагсаалтыг гаргаж, тэдгээрийг шийдэж эхлэв. Бидний олж авдаг нийтлэг асуулт энд байна:
“Би олон асуултыг шийддэг боловч долоо хоногийн дараа шийдэж чадахгүй! Би шийдлийг хэрхэн санаж байна вэ?”
Гол нь шийдлийг санахгүй байх явдал юм. Гол нь тэднийг дадлагажуулах хэрэгтэй. Асуудлыг хараад шууд задалж, шийдлийг нь дахин бий болгох боломжтой байх естой. Энэ нь цээжилсэн суралцах өөр байна. Та янз бүрийн бүрэлдэхүүн хэсгүүдийг хүлээн зөвшөөрч, тэдгээрийг задалж, асуудлыг шийдэж байна.
Бидний үзсэн хамгийн сайн техник – 3 өдрийн дотор асуудлыг дахин шийдээрэй. Дараа нь долоо хоногт. Дараа нь сард. Энэ нь танд хоер дахь шинж чанар болно.
Алхам 5: дахин ашиглаж байгаа техникийг тусгаарла. Бодит код блок тусгаарла.
Энэ бол гүнзгий анхны арга нь сэтгэл хөдөлгөм зүйл юм. Эдгээр асуудлыг шийдсэнээр та хэв маягийг анзаарч эхлэх болно.
Хоертын хайлтыг ашигласан 5 асуудлыг шийдсэн гэж үзье. Та хоертын хайлтын кодыг тусгаарлаж, дахин дахин дадлага хийж болно. Энэ нь ижил төстэй асуудлуудад ашиглагдах болно гэдгийг та мэднэ.
Мөн энэ нь та тусгаарлаж болох олон арга техник нэг юм. Энд зарим нэг нийтлэг хүмүүс байдаг:
Гүн Эхний Хайлт
Рекурсион + Мемоизаци
Хэш хүснэгт + Холбоотой жагсаалт хослол
Хоертын модыг хайх гэх мэт.
Одоо та шинэ асуудлуудад хэрэглэж болох техникүүдийн цуглуулгатай боллоо.
Алхам 6: Одоо, энэ нь өргөн цаг нь болсон.
Үндсэн асуудлаа эзэмшсэн гэдгээ хэлье. Нийтлэг өгөгдлийн бүтцийг ашиглах нь танд хоер дахь шинж чанар юм. Та одоо өөрийн үндсэн багц цааш харж болно. Хэрэв та аль хэдийн маш олон арга техникийг хэрэгжүүлж байсан учраас, та нар ч гэсэн бүх шинэ асуулт код байхгүй байна.
Энэ хугацаанд ярилцлагын бодит асуудлыг шийдэхийг хичээ. Нэгэнт сайн болчихвол үнэхээр хэцүү асуудал дээр төвлөрөх хандлага бий. Бодол үйл явц юм – ” Би эдгээр нь үнэхээр хэцүү асуудлыг шийдэж чадах юм бол, Дараа нь ярилцлага асуудал бялууг нэг хэсэг байх болно!”. Энэ нь ихэвчлэн тийм биш юм. Үнэхээр хэцүү асуудалд техник нь ихэвчлэн ярилцлага түвшний асуудал ямар ч хамаагүй байдаг.
Алхам 7: цаасан дээр дадлага хийх
Бид таны бэлтгэл зарим үед цаасан дээр дадлага зөвлөж байна. Хэрэв та IDE болон стек халих ямар код үед, энэ нь таны ая тухтай бүсээс хол таныг авдаг.
Энд цаасан дээр дадлага зарим ашиг тус байна:
Та бичихээсээ өмнө кодоо төлөвлөхөөс өөр аргагүй. Та зүгээр л буцаж, дахин оруулах боломжгүй.
Та хэлний зөв синтакс болон өгөгдлийн бүтцийн хэрэглээг сурч эхлэх болно. IDE-тэй бол код өөрөө бичдэг байсан.
Та дадлага хийх нь та хаана ч цаас, үзэг авч болно.
Хамгийн чухал нь самбарт ярилцлага хийх нь бодитой симуляци юм.