Бүгдийг захирч чадах нэг хэл

Кодын давхаргын дор нуугдаж буй хэл нь сурахыг эрмэлздэг.

Бүгдийг захирч чадах нэг хэл

Үүнийг бичиж байх үед "аль хэлийг эхлээд сурахыг програмчлах" гэсэн асуулт нь 517 сая хайлтын үр дүнг харуулж байна. Эдгээр сайт бүр тодорхой нэг хэлийг магтах бөгөөд 90% нь Python эсвэл JavaScript-ийг санал болгох болно.

Олон зүйл нуршилгүйгээр би энэ 517 сая вэб сайт бүгд буруу бөгөөд хамгийн түрүүнд сурах ёстой хэлийг хэлмээр байна. үндсэн логик.

Хэрхэн кодлохыг мэдэх нь хангалтгүй юм. Зах зээл нь дээд сургууль, курс төгсөгчдөөр дүүрсэн тул бага албан тушаал бараг байхаа больжээ*. Өнөөгийн ертөнцөд амжилтанд хүрэхийн тулд та кодлож, дэвшилтэт суурь логик сэтгэлгээтэй байх ёстой.

*цаашид, энэ бол орчуулга бөгөөд зохиогчийн болон танай улсын хөдөлмөрийн зах зээл дээрх нөхцөл байдал өөр (мөн бусад нюансууд) байж магадгүй гэдгийг санаарай, гэхдээ энэ нь өөрөө эх нийтлэлийг дордуулахгүй - ойролцоогоор. орчуулга

Миний анхны компьютерийн хичээл

Компьютерийн шинжлэх ухаанд анх орсон зүйл бол 10-р ангидаа сонгон суралцах хичээл байсан. Ангидаа орж ирсэн эхний өдөр л миний өмнө баахан хувин зайрмаг, төрөл бүрийн амтлагч байхыг хараад баярласан. Бүгд суусны дараа багш хэлэв:

“Өнөөдөр бид өөрсдөө бэлдсэн зайрмаг амтлах болно. Гэхдээ нэг болзолтой: чи амттанг хэрхэн бэлтгэх талаар тодорхой зааврын жагсаалтыг гаргах ёстой, би тэдгээрийг дагаж мөрдөх болно."

"Ямар ч асуудалгүй" гэж би бодлоо, "энэ хичээл удаан үргэлжлэхгүй." Нэг минутын дотор би мөрөөдлийнхөө зайрмагны төгс жорыг тэмдэглэв.

  1. Гурван халбага бөөрөлзгөнөтэй зайрмагийг халбагаар аяганд хийнэ
  2. Шоколадны соусыг нээж, нэг аяганд хоёр халбага нэмнэ
  3. Саванд цөцгий нэмнэ
  4. Бүгдийг нь элсэн чихэрээр цацаж, дээр нь интоор тавь

Тэр хөөрхөн зүйрлэл дэх “компьютер” багш маань урьд өмнө нь харж байснаас ч илүү ёжтой, үгийн утгаар тоглов. Тэр зайрмагны хувингаа таглаа ч хүрэлгүй утгуураар шургуу хийж эхлэв.

"За, зүгээр, гэхдээ эхлээд нээх хэрэгтэй!" - Би амттанг аль болох хурдан авахыг хичээн хашгирав.

"Чи үүнийг зааварт бичээгүй, би чамд зайрмаг хийж чадаагүй. ДАРААЧИЙН!"

#2 оролдлого руу хурдан урагшилцгаая

  1. Бөөрөлзгөнөтэй зайрмагийг тагийг нь авч нээнэ
  2. Гурван халбага бөөрөлзгөнөтэй зайрмагийг халбагаар аяганд хийнэ
  3. Шоколадны соусыг нээж, нэг аяганд хоёр халбага нэмнэ
  4. Саванд цөцгий нэмнэ
  5. Бүгдийг нь элсэн чихэрээр цацаж, дээр нь интоор тавь

За, одоо ямар ч асуудал гарах ёсгүй. Ямар ч тохиолдолд би өөрийн хоолны шилдэг бүтээлийг хийх бүх орцууд нээлттэй байгаа эсэхийг шалгасан.

Багш тагийг нь авч, утгуур авч, аяганд гурван халбага зайрмаг хийв. "Эцэст нь миний сайхан зайрмаг биелж эхэллээ!" Дараа нь тэр шоколадны соусыг нээж, аяганд хоёр хоолны халбагыг нэмэв. Тэр "хоёр хоолны халбаган дээр шоколадны соус нэмээгүй" - тийм гэж битгий бодоорой - тэр халбагаа өөрөө аяганд хийв. Тэдэнд соус байхгүй. Дахин хэлэхэд би бүх зүйлийг яг таг бичих гэж санаа зовсонгүй. Үлдсэнийг нь ижил сэтгэлээр хийж дууссаны дараа би нэг аяга зайрмаг, хоёр хоолны халбагыг хүлээн авсан нь ташуурдуулж буй цөцгийн дор бараг анзаарагдахгүй байв. Дээрээс нь чихрийн хос саваа байв.

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

Миний эцсийн үр дүн бол урт боловч шаардлагатай цуврал туршилт, алдааны үр дүн байв.

  1. Хэрэв та үүнийг хийж амжаагүй бол дараах багц бүрийг нээнэ үү: бөөрөлзгөнө зайрмаг, шоколадны соус, ташуурдуулж тос, чихрийн савх.
  2. Савыг гаргаж ирээд урд нь тавь
  3. Зайрмагны халбага аваад гурван халбага бөөрөлзгөнөтэй зайрмагийг нэг нэгээр нь саванд хийнэ. Зайрмагны халбагаа буцааж байранд нь тавь.
  4. Шоколадны соустай лонхтой авч, соусыг хусаад, халбаганы агуулгыг аяганд хийнэ. Цутгах, цутгах үйл явцыг дахин нэг удаа давтана. Халбага, савыг буцааж байранд нь тавь.
  5. Цөцгийн савлагааг дээш доош нь авч, аяган дээр бариад 3 секундын турш зайрмаг дээр асгаж, дараа нь буцааж байрандаа хийнэ.
  6. Чихрийн савны савыг аваад, дөчин саваа саванд хийж, савыг буцааж тавь.
  7. Интоорын аяганаас нэг интоор аваад зайрмагны дээр тавь.
  8. Оюутанд бэлэн зайрмагтай аяга, халбага өг.

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

Гэхдээ энэ бол програмчлал юм. Компьютерт зориулсан нарийн зааварчилгааг бий болгоход стресс. Үндсэндээ энэ нь програмчлалын хэл болгонд ирдэг зүйл юм - бичих заавар.

Програмчлалын карьер

“Программист” гэдэг ганц үгийг ажлын байрны тодорхойлолт болгон ашиглахад хүндрэлтэй байдаг шиг програмчлалын асуудлыг нэг салбар гэж ярихад хэцүү байдалд хүрчихлээ. Хоёр хөгжүүлэгч нь огт өөр хэл мэддэг тул зах зээлд ижил эрэлт хэрэгцээтэй байж болох бөгөөд энэ нь тодорхой хэлний мэдлэгээс илүү хөгжих чадвар чухал гэсэн үг юм. Бүх амжилттай хөгжүүлэгчдийн хуваалцдаг нийтлэг шинж чанар юм үндсэн логик.

Шилдэг програмист бол кодыг шинэ өнцгөөс харж чаддаг хүн юм. Мөн энэ нь үндсэндээ чухал, учир нь ихэнх програм хангамжийн бүтээгдэхүүн нь муу кодын баримтжуулаагүй хэсгүүдийн цуглуулга юм. Тэдгээрийг байнга нэгтгэж, шаардлагатай бол цоорхойг дүүргэх шаардлагатай байдаг. Ялгаатай цэгүүдийг нэг шугамаар холбож чадахгүй байгаа хүмүүс үүрд хажууд байх ёстой.

Энэ бүхэн намайг энэ удаад тодоор бичсэн өөр тунхаглалд хүргэж байна. Програмист хүний ​​хувьд суурь мэдлэг үргэлж чухал байсаар ирсэн бөгөөд байх болно.

Хэл орж ирдэг. Хүрээнүүд хуучирч, компаниуд өөрсдийн ашигладаг технологийн стекийг өөрчилснөөр эрэлт хэрэгцээнд хариулж байна. Хэзээ ч өөрчлөгдөхгүй нэг зүйл бий юу? Тиймээ - бүх зүйлийн үндэс суурь болдог тул суурь мэдлэг гэж нэрлэгддэг суурь мэдлэг!

Суурь мэдлэгийг хэрхэн сайжруулах вэ

Бүгдийг захирч чадах нэг хэлГэрэл зургийг Кристофер Жешке тухай Unsplash

Хэрэв та үндсэн логик сэтгэлгээгээ сайжруулах эхлэлийн цэгийг хайж байгаа бол эндээс эхлүүлээд үзээрэй.

Хөтөлбөрийн нарийн төвөгтэй байдлыг мэдэж аваарай

Мөн нэрлэдэг Том O "Алгоритмын нарийн төвөгтэй байдал" гэдэг нь програмыг гүйцэтгэхэд шаардагдах хугацаа нь түүний оролтын өгөгдлийн хэмжээнээс хамаарахыг хэлнэ. (n). Ашиглаж буй алгоритмын импульс дээр хуруугаа барих нь чухал алхам юм.

Өгөгдлийн бүтцээ мэдэх

Мэдээллийн бүтэц нь орчин үеийн програм бүрийн гол цөм нь байдаг. Ямар тохиолдолд ямар бүтцийг ашиглахаа мэдэх нь өөрөө сахилга бат юм. Өгөгдлийн бүтэц нь ажиллах цагийн нарийн төвөгтэй байдалтай шууд холбоотой бөгөөд буруу бүтцийг сонгох нь гүйцэтгэлийн үндсэн асуудалд хүргэж болзошгүй юм. Массив дахь элементийг олох нь O (N), энэ нь массивыг оролтын өгөгдөл болгон ашиглахад өндөр өртөгтэйг харуулж байна. Хэш хүснэгт хайх − O (1), энэ нь энэ тохиолдолд утгыг хайх хугацаа нь элементийн тооноос хамаарахгүй гэсэн үг юм.

Хүмүүс над дээр ярилцлага авахаар ирсэн бөгөөд массиваар хайх нь хэш хүснэгтээр хайхаас илүү хурдан байдаг гэж мэдэгдэв. Энэ бол та тэднийг ажилд авах ёсгүй гэсэн хамгийн найдвартай шинж тэмдэг байсан - өгөгдлийн бүтцээ мэдэж аваарай.

Унших / үзэх / сонсох

дуртай сайтууд UdemyPluralsight и CodeAcademy - Шинэ програмчлалын хэл сурах маш сайн сонголт. Гэхдээ үндсэн ойлголтуудын хувьд кодчиллын ерөнхий зарчим, дадал, хэв маягийн талаархи номноос лавлана уу. Хамгийн их санал болгож буй ном бол “Дизайн загвар”, “Рефакторинг. Одоо байгаа кодыг сайжруулах, "Төгс код", "Цэвэр код", "Прагматист программист". Эцэст нь, хөгжүүлэгч бүр "хуулбарыг хадгалах ёстой.Алгоритмууд" гарт.

Дасгал хий!

Өндөг хагалахгүйгээр шарсан өндөг хийж болохгүй. дуртай сайтууд HackerRankCodeWarsCoderByte програм, ТопКодер и LeetCode өгөгдлийн бүтэц, алгоритмын талаарх мэдлэгээ шалгах олон мянган сонирхолтой оньсого санал болго. Таалагдсан асуудлаа шийдэхдээ азаа сорьж, шийдлээ Github дээр нийтэлж, бусад хүмүүс үүнд хэрхэн хандсаныг хараарай. Энэ нь биднийг сүүлчийн цэг рүү авчирдаг:

Бусад хүмүүсийн кодыг уншина уу

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

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

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх