Ачааллж байна...
Хэсэг зогсоод буцаж хараарай.
Курс 1-ийн эхний хичээлд та ийм мөр бичсэн:
python
print("Сайн байна уу")Тэр үед print гэдэг үг юу гэсэн үг болохыг мэдэхгүй байсан. Хаалт яагаад хэрэгтэйг мэдэхгүй байсан. Хашилт яагаад байх ёстойг мэдэхгүй байсан. Та зөвхөн бичээд, Enter дараад, дэлгэц дээр үг гарч ирэхийг харсан.
Тэр мөч бага зэрэг ид шид мэт санагдсан байх. Та бичсэн зүйл машин ойлгож, хариулсан.
Одоо та юу бичдэг вэ? Өгөгдлийн сангийн хүснэгтийг тодорхойлдог class. Хүсэлт хүлээж авдаг endpoint. Хамгаалалтын шалгалт хийдэг dependency. Бизнесийн дүрмийг хэрэгжүүлдэг логик.
Ид шид алга болсон. Гэхдээ тэр нь алдагдал биш. Ид шид нь ойлголтоор солигдсон. Та одоо юу яагаад ажилладгийг мэднэ. Тэр нь илүү сайн.
Аяныг бүхэлд нь хэмжье. Заримдаа өөрийн явсан замыг хэмжих нь хэр хол явснаа ойлгуулдаг.
Курс 1: Анхны алхмууд
Тэнд та программ гэж юу болохыг сурсан.
Хувьсагч — утга хадгалах шошготой хайрцаг. Төрөл — тоо, текст, үнэн/худал. Нөхцөл — замын салаа. Давталт — давтагдах ажил. Функц — нэрлэсэн, дахин ашиглагдах кодын хэсэг.
Дараа нь өгөгдлийн бүтэц: жагсаалт, dictionary. Алдаа боловсруулах: try/except. Файл унших, бичих. Модуль импортлох. Class-ийн үндэс.
Тавин есөн хичээл. Тэдгээрийн эцэст та программ бичиж чаддаг болсон — жижиг, гэхдээ жинхэнэ программ. Тоо таах тоглоом. Хийх ажлын жагсаалт. Харилцагчийн дэвтэр.
Тэр үед "программист" гэдэг үг танд хамааралгүй мэт санагдаж байсан байх.
Курс 2: Мэргэжлийн суурь
Тэнд та бусдын кодтой ажиллахад бэлдсэн.
Virtual environment — төсөл бүрд тусдаа өрөө. pip — package суулгах. Comprehension — жагсаалтыг нэг өгүүлбэрээр захиалах. Type hint — хайрцган дээрх шошго. Tuple, set — өөр төрлийн цуглуулга. JSON, CSV — өгөгдөл солилцох хэл.
Дараа нь OOP гүнзгийрсэн: inheritance, special method, dataclass. Decorator — бэлгийг боох цаас. HTTP болон API — зочин ба зөөгч. requests сан. Олон файлтай төсөл. Generator, context manager. Async уншиж таних түвшинд.
Тэр курсын capstone дээр та жижиг FastAPI программ ажиллуулж, /docs хуудсыг анх удаа харсан. Тэр мөч бол энэ сургалтын эхлэл байсан.
Курс 3: Backend хөгжүүлэгч
Тэнд та ширээний нөгөө талд суусан.
Endpoint, path parameter, query parameter, validation. Status code, HTTPException. Pydantic — хатуу шаардлагатай маягт. POST, PUT, DELETE — бүрэн CRUD. Response model — гарцын шүүлтүүр.
Дараа нь бүтэц: router, олон файлт төсөл, tag. Depends — нийтийн бэлтгэл станц. API key — ажилтны үнэмлэх. Environment variable, exception handler.
Дараа нь өгөгдлийн сан: SQLite, SQL уншиж таних, SQLModel, session, transaction. Тэмдэглэлийн API v1-ээс v3 хүртэл төлөвшсөн.
Эцэст нь: async, CORS, pagination, болон Номын сангийн API — арван гурван endpoint, гурван нөөц, бодит бизнесийн логиктой.
Тодорхой байя. Дараах зүйлсийг та өнөөдөр хийж чадна.
Бодит вэб API бүтээх. Эхнээс нь дуустал. Model зохион байгуулж, endpoint бичиж, өгөгдлийн сан залгаж, хамгаалалт нэмж, баримтжуулах.
Өгөгдлийн сантай ажиллах. Хүснэгт зохиох, холбоо тогтоох, асуулт бичих, транзакц ойлгох.
Бусдын API ашиглах. Курс 2-ын requests мэдлэг, одоо API дотроос нь ойлгосон байдал.
Асуудал оношлох. Алдааны мессеж уншиж, 422 болон 404-ийн ялгааг мэдэж, SQL хараад юу болж байгааг ойлгож, зөв газар хайх.
Албан ёсны баримт бичиг унших. FastAPI, SQLModel, Pydantic-ийн баримт бичгийг нээхэд танил үгс харагдана. Та тэдгээрийг ойлгож, хэрэглэж чадна.
Кодоо зохион байгуулах. Нэг файлд бүх зүйлийг шахахгүй. Хариуцлагыг хуваарилж, давталтыг арилгаж, өсөх бэлтгэлтэй бүтэц барих.
Шийдвэрийн үндэслэл өгөх. Яагаад энэ status code вэ? Яагаад энэ нээлттэй, тэр хаалттай вэ? Яагаад session нь dependency вэ? Та зөвхөн "яаж" биш, "яагаад" гэдгийг мэднэ.
Энэ жагсаалт бол junior backend хөгжүүлэгчийн ур чадварын жагсаалт юм. Илүү ч биш, дутуу ч биш.
Шударга байх нь энэ сургалтын турш баримталсан зарчим тул төгсгөлд ч түүнийг зөрчихгүй.
Та бүх зүйлийг мэдэхгүй. Өмнөх хичээлд бид тэдгээрийг жагсаасан: auth, migration, тест, frontend, Docker, олон зүйл.
Мөн та туршлагагүй. Мэдлэг болон туршлага хоёр өөр. Та зээлийн логик бичиж чадна — гэхдээ мянган хэрэглэгчтэй систем ажиллуулж үзээгүй. Та алдаа засаж чадна — гэхдээ шөнө дунд production унасныг зассан туршлагагүй.
Тэр нь хэвийн. Туршлага бол зөвхөн цаг хугацаа болон ажлаар олдох зүйл. Хэн ч түүнийг сургалтаас авдаггүй.
Гэхдээ энд чухал зүйл байна: та одоо тэр туршлагыг олж авах чадвартай болсон. Танд суурь байна. Шинэ зүйлтэй тааралдахад "энэ юу вэ" гэж эргэлзэхээ болиод, "аа, энэ нь миний мэддэг тэр зүйлтэй төстэй юм байна" гэж бодох болно.
Тэр бол суурь боловсролын жинхэнэ утга.
Хэрэв та энэ гурван сургалтаас ганц зүйл авах ёстой бол — тэр нь синтакс биш, framework биш.
Тэр нь асуудлыг задлан үзэх чадвар юм.
Бодоод үзээрэй. Бүлэг 14-т та зээлийн логик бичихээсээ өмнө юу хийсэн бэ? Дүрмээ жагсаасан. Зургаан шалгалт, дараалалтай, тус бүр тодорхой. Дараа нь тэдгээрийг кодонд хөрвүүлсэн.
Тэр бол программчлалын мөн чанар юм. Хэл, framework, хэрэгсэл — бүгд өөрчлөгддөг. Гэхдээ "том асуудлыг жижиг, тодорхой алхмуудад хуваах" гэсэн чадвар хэзээ ч хуучирдаггүй.
Та Курс 1-т if бичихдээ түүнийг эхлүүлсэн. Курс 2-т функц болон class-аар үргэлжлүүлсэн. Курс 3-т бүхэл систем зохион байгуулж дуусгасан.
Хэрэв та маргааш огт өөр хэл сурвал — Go, Rust, JavaScript — синтакс шинэ байх болно, гэхдээ сэтгэлгээ ижил хэвээр. Тэр л жинхэнэ хөрөнгө юм.
Энэ сургалтын турш бид маш олон алдаа зориудаар үүсгэсэн. Route ordering занга. commit мартах. where дотор is None. Хаалттай Depends. Хагас арав орчим.
Тэр нь санамсаргүй биш байсан.
Учир нь программ бичих гэдэг нь ихэвчлэн алдаа засах явдал юм. Кодыг эхнээс нь төгс бичдэг хүн байдаггүй. Туршлагатай хөгжүүлэгч ба шинэ хөгжүүлэгчийн ялгаа нь "алдаа гаргадаггүй" биш, харин "алдаагаа хурдан олж, засдаг".
Тиймээс алдааны мессеж харахад айх хэрэггүй. Тэр бол таны эсрэг биш, талд байгаа зүйл. Тэр танд юу буруу байгааг хэлж байна. Уншиж сур, ойлгож сур, зас.
Хэдэн жилийн дараа та ямар нэг алдааны мессеж хараад, хэсэг эргэлзээд, дараа нь "аа, тийм ээ" гэж хэлэх болно. Тэр мөч бүрд та жаахан илүү сайн болно.
Энэ сургалтын гэрчилгээ нь хичээлүүдийг үзэж дуусгаснаар олгогдоно.
Шалгалт байхгүй. Оноо байхгүй. Тест байхгүй.
Энэ бол Курс 1-ээс хойш баримталсан шийдвэр бөгөөд түүнд тодорхой шалтгаан бий. Шалгалт нь сурсан эсэхийг хэмждэггүй — цээжилсэн эсэхийг хэмждэг. Мөн тэр нь айдас төрүүлдэг, айдас нь сурахад саад болдог.
Таны жинхэнэ гэрчилгээ бол цаас биш. Таны бүтээсэн код юм.
Танд Тэмдэглэлийн API байна — гурван хувилбараар төлөвшсөн. Номын сангийн API байна — арван гурван endpoint-той, бодит логиктой. Тэдгээрийг та бичсэн, ажиллуулсан, туршсан.
Тэр бол ямар ч гэрчилгээнээс илүү үнэ цэнэтэй. Хэрэв хэн нэгэн "та юу хийж чадах вэ?" гэж асуувал — та кодоо үзүүлж чадна.
Хамгийн түгээмэл асуулт: "одоо би юу хийх ёстой вэ?"
Хариу нь энгийн: ямар нэг зүйл бүтээ.
Сургалт дуусмагц юу ч хийхгүй бол мэдлэг аажмаар бүдгэрдэг. Харин ямар нэг зүйл бүтээвэл — жижиг ч гэсэн — мэдлэг бэхжинэ.
Юу бүтээх вэ? Танд өөрт хэрэгтэй зүйл.
Тэр нь хамгийн сайн шалгуур юм. Хэрэгтэй зүйл бүтээхэд та түүнийг дуусгах хүсэлтэй байна; дасгал бол хагас дунд орхигддог.
Санаанууд:
Танд байнга хэрэгтэй жагсаалт байна уу? Зардлын бүртгэл, номын жагсаалт, дасгалын хөтөлбөр? Тэдгээрийг API болго.
Ямар нэг зүйл автоматжуулах хэрэгтэй юу? Өгөгдөл цуглуулах, тайлан үүсгэх?
Найз, хамт олонд хэрэгтэй зүйл байна уу? Багийн жижиг хэрэгсэл?
Эсвэл зүгээр л байгаа төслөө сайжруул. Номын сангийн API-д тест нэм. Auth нэм. PostgreSQL руу шилжүүл. Frontend хий.
Аль нь ч байсан — эхэл. Төгс төлөвлөгөө хүлээх шаардлагагүй. Эхний хувилбар муу байх нь хэвийн; сайжруулах нь дараагийн ажил.
Төгсгөлд хэдэн зүйлийг хэлмээр байна. Эдгээр нь техникийн биш, гэхдээ чухал.
Та удаан явсан бол зөв явсан. Хэн нэгэн энэ гурван сургалтыг гурван сард дуусгасан байж болно. Өөр хүн гурван жил зарцуулсан байж болно. Хоёулаа адилхан дууссан. Хурд бол чанарын хэмжүүр биш.
Мартах нь хэвийн. Хэдэн сарын дараа та зарим зүйлийг мартсан байх болно. Тэр нь та муу сурсан гэсэн үг биш. Хөгжүүлэгчид байнга буцаж хайдаг. Чухал нь юу хайхаа мэдэх — түүнийг та мэднэ.
Өөрийгөө бусадтай бүү харьцуул. Интернэтэд гайхалтай зүйл бүтээж байгаа хүмүүс байнга харагддаг. Тэдний олон жилийн зам харагддаггүй. Таны харьцуулах ёстой цорын ганц хүн бол өчигдрийн та юм.
Хангалттай мэдэхгүй гэсэн мэдрэмж хэзээ ч алга болдоггүй. Энэ бол мэргэжлийн байнгын хамтрагч. Хорин жилийн туршлагатай хүн ч мэдэрдэг. Түүнийг зогсох шалтгаан болгож болохгүй.
Асуух нь сул тал биш. Ойлгоогүй зүйлээ асуух нь ойлгоогүй мэт дүр эсгэхээс дээр. Хамгийн сайн хөгжүүлэгчид хамгийн олон асуулт асуудаг.
Гурван сургалтын турш би таныг "та" гэж дуудсан. Тэр нь хүндэтгэлийн үг бөгөөд зориудаар сонгосон.
Курс 1-ийн эхэнд та ямар нэг зүйл сурах гэж ирсэн хүн байсан. Одоо та ямар нэг зүйл бүтээж чаддаг хүн байна.
Тэр хооронд юу болов? Та хэдэн зуун хичээл уншсан. Хэдэн мянган мөр код бичсэн. Тоолж баршгүй алдаа гаргаж, тэдгээрийг заасан. Ойлгохгүй мөчүүд байсан, дараа нь ойлгосон мөчүүд байсан. Зогсох гэсэн үе байсан байх — гэхдээ зогсоогүй.
Тэр тэсвэр нь ямар ч синтаксаас илүү үнэ цэнэтэй.
Одоо та шинэ эхлэгч биш. Та бүрэн эзэмшсэн ч биш — хэн ч биш. Гэхдээ та суурьтай боллоо. Тэр суурин дээр юу барихаа та өөрөө шийднэ.
Хэрэв та энэ мөрийг уншиж байгаа бол — та гурван сургалтыг дуусгасан хүн байна. Тэр нь бага зүйл биш. Олон хүн эхэлдэг; цөөхөн нь дуусгадаг.
Баяр хүргэе.
Ажил тань бүтэмжтэй болж, кодыг тань хүмүүс ашиглаж, дараагийн алдаа тань хурдан засагдах болтугай.
Замд тань амжилт хүсье.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.