Хичээлийг заах болсон шалтгаан

Их сургуулийн CS хөтөлбөрүүд үйлдлийн систем, програмчлалын хэл, машин сургалт гэх мэт гүнзгий сэдвүүдийг сайн заадаг. Харин developer хүний өдөр тутмын ажлыг хурдан, цэвэрхэн болгодог tool-уудаа яаж ашиглахыг ихэнхдээ “өөрөө сурчих” гээд орхидог.

Бид MIT-д олон жил хичээл заахад туслахдаа нэг зүйлийг байнга анзаарсан: оюутнууд өөрт нь аль хэдийн байгаа tool-уудын боломжийг бүрэн мэддэггүй. Компьютер гэдэг уг нь давтагддаг ажлыг автоматжуулах машин шүү дээ. Гэтэл хүмүүс нэг ижил үйлдлээ гараар давтаад, version control, текст редактор зэрэг өдөр тутмын tool-уудынхаа жинхэнэ давуу талыг ашиглаж чаддаггүй. Үр дүнд нь цаг алдана, бүтээмж унана, заримдаа бүр өгөгдлөө алдах эсвэл даалгавраа дуусгаж чадахгүйд хүрнэ.

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

Компьютерийн ухааны боловсролын орхигдсон семестр

Тиймээс бид сайн CS мэргэжилтэн, сайн programmer болоход зайлшгүй хэрэгтэй гэж үзсэн сэдвүүдээр энэ хичээлийг бэлтгэсэн. Агуулга нь практик талдаа: өдөр тутамд шууд хэрэглэх tool, арга барилыг жишээгээр үзнэ. 2026 оны шинэчилсэн хувилбар нь MIT-ийн IAP (Independent Activities Period) буюу 1-р сарын богино семестрээр орсон. Лекцүүд MIT-ийн оюутнуудад зориулагдсан ч материал, бичлэгүүдийг бүгдийг нь олон нийтэд нээлттэй тавьж байна.

Энэ хичээл танд хэрэг болох эсэхийг мэдэхийн тулд доорх жишээнүүдийг харна уу:

Command shell

Alias, script, build system ашиглаад байнга давтагддаг ажлуудаа автоматжуулж сурна. Текст файлаас command хуулж буулгах, “энэ 15 command-ыг яг энэ дарааллаар ажиллуул”, “нэг алхмаа мартчихлаа”, “энэ аргументыг өгөөгүй байна” гэх асуудал багасна.

Жишээ нь shell history дотроос хурдан хайж чаддаг байх нь их цаг хэмнэнэ. Доорх бичлэгт convert command-уудаа хайж, history дундуур хурдан шилжиж байна.

Хувилбар хяналт

Version control-ийг зөв ашиглаж, алдаанаас сэргийлэх, бусадтай хамтрах, “яг аль change эвдчихэв?” гэдгийг хурдан олох аргуудыг үзнэ. rm -rf; git clone гэж дахин эхлэх, merge conflict-тэй байнга ноцолдох, том блок код comment болгож үлдээх, ажиллаж байсан кодоо санамсаргүй устгачих вий гэж айх хэрэггүй болно. Мөн бусдын төсөлд pull request-ээр яаж хувь нэмэр оруулахыг сурна.

Доорх жишээнд бид git bisect ашиглан аль коммит тест дээр алдаа гаргасныг олж, улмаар git revert ашиглан засаж буйг харууллаа.

Текст редактор

Локал машин болон remote server дээрх файлуудаа CLI-ээс үр дүнтэй засварлаж, editor-ийн ахисан боломжуудыг ашиглаж сурна. Файлаа нааш цааш хуулж зөөх, нэг ижил үйлдлийг гараар давтах шаардлага багасна.

Vim макро нь түүний хамгийн шилдэг боломжуудын нэг бөгөөд доорх жишээнд бид давхарласан (nested) Vim макро ашиглан HTML хүснэгтийг CSV формат руу хурдан хөрвүүлж байна.

Алсын машинаар ажиллах

SSH key болон terminal multiplexer ашиглаад remote server-тэй аюулгүй, тасралтгүй ажиллаж сурна. Хоёр command зэрэг ажиллуулах гэж олон terminal нээхгүй, холбогдох бүрдээ password бичихгүй, интернэт тасрах эсвэл laptop sleep хийхэд хийж байсан ажлаа алдахгүй.

Доорх жишээнд бид tmux ашиглан алсын сервер дээрх сессийг идэвхтэй хадгалж, сүлжээ тасрахад mosh ашиглан холболтоо хэрхэн хэвийн үргэлжлүүлж байгааг харууллаа.

Файл хайх

Хайж буй файл, кодоо хурдан олж сурна. Project-ийн folder бүрээр орж товшоод хайх шаардлагагүй.

Доорх жишээнд бид fd ашиглан файлуудыг, rg ашиглан кодын хэсгүүдийг хурдан хайж байна. Мөн fasd ашиглан хамгийн сүүлд болон хамгийн их ашигласан файл, folder руу хурдан cd хийж, vim-ээр нээж байна.

Өгөгдөл боловсруулах

Command line-ээс өгөгдөл, файлуудыг хурдан өөрчлөх, харах, задлах, график болгох, тооцоолох аргуудыг үзнэ. Log файлаас мэдээлэл хуулж буулгах, статистикаа гараар бодох, график зурах гэж заавал Excel нээх хэрэггүй болно.

Кодын чанар ба тасралтгүй интеграци

Formatter, linter, test, code coverage ашиглаад кодын чанараа тогтвортой барьж сурна. Уншихад хэцүү, style нь холилдсон код багасна. Өмнө нь ажиллаж байсан зүйл дахин эвдрэхээс сэргийлж, “миний machine дээр ажиллаж байсан” гэдэг асуудлыг эрт барина.

Кодоос гадна

Сайн documentation бичих, open-source maintainer-уудтай ойлгомжтой харилцах, issue сайн нээх, merge болохуйц pull request илгээх талаар үзнэ. Ингэснээр хэрэглэгчид танай програмыг яаж ажиллуулахаа ойлгоно, maintainer-ууд ч таны contribution-д хариу өгөхөд амар болно.

Дүгнэлт

Эдгээр болон бусад сэдвийг 9 лекцээр үзнэ. Лекц бүр өөрөө хийж турших дасгалтай. 2026 оны 1-р сар хүртэл хүлээхгүйгээр төстэй олон сэдэвтэй өмнөх оны хичээлүүд-ийг үзэж болно.

Тантай 1-р сард биечлэн болон цахимаар уулзана гэж найдаж байна!

Танд амжилт хүсье,
Anish, Jon, болон Jose