Аливаа програмчлалын үндэс нь ... оньсого байдаг

Сайн байцгаана уу, Хабровскийчүүд!

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

Эхлээд өөрийнхөө тухай бага зэрэг.
Би 2016 онд тус сургуулийг автоматжуулсан системийн мэдээллийн аюулгүй байдлын чиглэлээр онц дүнтэй төгссөн. Суралцах хугацаандаа эрдэм шинжилгээний өгүүлэл бичиж, уралдаан тэмцээн, шагнал гардуулах зэргээр өөрийн боломжоо олон удаа ухаарсан. 2015 онд би бүх Оросын залуу эрдэмтдийн "УМНИК" уралдаанд түрүүлсэн. 2016 онд сургуулиа төгсөхөөсөө өмнө хотын томоохон байгууллагад "Мэдээллийн аюулгүй байдал, криптограф, шифрлэлтийн мэргэжилтэн"-ээр ажилд орсон.
Товчхондоо нэг иймэрхүү. Надад програмчлалын талаар ямар нэгэн ойлголт байсан гэж та төсөөлж болно.

Тэгээд 2017 он. Төгсөлтийн сургууль. Намайг коллежид С++ хэлээр нэг семестр заахыг хүссэн бөгөөд үүний төлөө намайг төгсөх ангийн оюутны ачааллыг хөнгөвчлөх өгөөмөр урамшуулал амласан, өөр юу ч биш.

Үнэнийг хэлэхэд би энэ итгэл үнэмшлээр өөрийгөө сорих сонирхолтой байсан.

Эхний хос
Есдүгээр сар. Сургуулийн эхний долоо хоног. Оюутнууд над дээр ирэв. "Хамгийн дуулгаваргүй бүлэг" - тэднийг ингэж нэрлэдэг байв.
23 хүн. "Программистууд".

Хүлээгдэж байсанчлан би өөрийгөө танилцуулж эхлэв. Би тэдэнд "Эхлээд миний тухай" хэсгийн агуулгыг чимээгүйхэн хэлэв...
Дараа нь аймшиг эхэлсэн. "Чи юу хийж чадах вэ?" Оюутнууд (бид одооноос тэднийг ингэж дуудна) юунаас ч илүүг мэддэггүй гэж хариулсан (энэ нь тэдний зарим нь MS Visual Studio ямар байдгийг мэдэж, "Сайн уу ертөнц" төслийг бий болгож чадна гэсэн үг юм) ... Програмистууд. Тэдний сүүлийн жил...

Дараа нь тэд өөрсдөд нь юу ч заагаагүй, ерөнхийдөө програмчлалд урам хугарах болсон тухайгаа дэлгэрэнгүй, тод томруунаар тайлбарлав...

Дараагийн хичээл хүртэлх бараг бүх өдрүүд миний хувьд ийм байдлаар өнгөрөв.
Аливаа програмчлалын үндэс нь ... оньсого байдаг

...гэхдээ өмнөх өдөр нь эдгээр залуусын оюун ухаан, ухамсар дахь өнөөгийн нөхцөл байдлыг засахын тулд хүчин чармайлт гаргах санаа төрсөн. Дараа нь "Остап сэтгэл хөдөлсөн."

Програмчлалын танилцуулга
Дараагийн хичээлд би нэг оньсого авчирсан.
Тийм, тийм. Оньсого. "Луугаа хэрхэн сургах вэ?" Дүрэм нь энгийн байсан. Бүлэг гурван багт хуваагдсан. Баг бүр өөрийн гэсэн хэсгийг цуглуулав. Зарим нь ой, зарим нь газар, зарим нь зургийн голд байгаа луу байв. Тэднийг оньсого дээр ажиллаж байхад би үүнийг тайлбарлав Оньсого эвлүүлэх нь бас програмчлал юм, програмистууд ихэвчлэн бусдын кодыг ашигладаг, төсөл бүр хэд хэдэн өөр өөр тушаал, функц, модулиудтай байдаг ...
Аажмаар хамгийн хойрго оюутнууд ч энэ үйл явцад нэгдсэн.
Би бизнесийн үзэл баримтлал, үйл явц, ... оньсого болгон програмчлах санаагаа бодож дуусгасны дараа сурах дүрмийг тогтоох цаг болжээ.
Анги болгонд сурагч бүр дэвтэртээ мэдээллийн технологийн 10 нэр томьёо бичих ёстой байв. Ямар ч. Хүн бүр өөрийн гэсэн байсан. Нэг оюутны дэвтрийг аваад бүх нэр томьёо дотроос нь олъё гэсэн санаа байсан. аль болох практик мөн өөр нэг сурагчаас тэдний талаар асуув. Өөр нэг оюутан "Би тэр нэр томьёог бичээгүй" гэж хэлэхэд энэ нь шийтгэл хүлээхгүй (эрүүл ухаанаар) гэхдээ тэр оюутан "дутуу" нэр томьёог (тэдгээр нь байхгүй бусад хүмүүсийн адил) бичээд дараагийн ангидаа хайж олох ёстой байв.

Үүнийг л бид хийсэн. Анги бүр хоёроос гурван оюутныг санамсаргүй байдлаар сонгож эхэлсэн. Хүүхдүүд энэ үйл явцад сэтгэл хангалуун байсан.

Хичээлийн сэдвүүд
Сургалт эхлэхдээ оюутнуудыг сайн уран зохиолоор хангах нь маш чухал юм. Миний бодлоор хамгийн тохиромжтой эх сурвалж бол энэ ном байсан.
Аливаа програмчлалын үндэс нь ... оньсого байдаг

Нэг удаа би Microsoft Visual Studio-г тэврэн удаанаар унших хэрэгтэй болсон. Дараа нь би програмчлалыг эхнээс нь ойлгох чадвартай болсон. Хамгийн тохиромжтой.

Та оюутнуудад даруухан хандаж, "Программист болохын тулд энэ номыг уншиж, туршиж үзэхэд л хангалттай" гэж хэлээд номыг ширээн дээр шидээрэй. Гол нь үүргэвчиндээ хийсэн номнуудыг хольж хутгахгүй байх хэрэгтэй...

Сэдэв бүрийн өмнө би маш их судалгаа хийх шаардлагатай байсан. Би Лафорет болон бусад сонирхолтой онлайн эх сурвалжуудыг уншсан.
Тайлбарыг бараг эхнээс нь хийх ёстой байсан. Мөн оюутнуудын анхан шатны мэдлэг хаана дутсаныг дедуктив аргаар тодорхойлох шаардлагатай байв.
Массив -> Санах ойтой ажиллах (Бүтээгчид) -> Лавлагаа -> Санах ой хэрхэн ажилладаг вэ -> Хадгалах -> Физик хадгалалт гэж юу вэ -> Өгөгдлийн хоёртын дүрслэл...
Аливаа програмчлалын үндэс нь ... оньсого байдаг

Програмчлалын үндсэн баримтуудын талаарх миний мэдлэгийг шалгах маш хүнд сорилт. Би программист байхаа больж, түүхч болсон!

Тиймээс эдгээр түүхэн тулаан хэд хэдэн ангиудаар үргэлжилдэг. Нэгэн удаа нарийн бичгийн дарга индэр дээрээс манай оффис руу шагайж, бүлгийг хараад нүдээ томруулан дотогш харан хаалгаа хаалаа. Сүүлд надад хэлсэнчлэн ЭНЭ бүлэг чимээгүйхэн суугаад миний яриаг маш анхааралтай сонссонд тэр маш их цочирдсон ... Өө, амархан.

Лабораторийн ажил
Эхний практик мэдээлэл - анхны "лаборатори". Семестрийн хугацаанд тус бүлэг нийт 10 лаборатори хийсэн. Эхнийх нь тэд энгийн консол хийсэн a+b, мөн сүүлийн үед тэд консол дээр суурилсан ч гэсэн нэлээд сонирхолтой программуудыг бичсэн, тухайлбал, гурван аргын аль нэгийг ашиглан дур мэдэн өгөгдсөн зарим функцийн интегралын утгыг тооцоолох - эцсийн баталгаажуулалтад ойролцоогоор ижил даалгаварууд байсан - курсын ажил.

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

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

- ... Хэн нэгэн таны ажлыг зүгээр л хүлээлгэж өгөхийн тулд хийхийг харах сонирхолгүй байна. Та програмист биш байж болох ч миний ангийн хүмүүс байж болно. байх ёстой.

Энэ нь иймэрхүү харагдаж байв.

case отличник

Нэг оюутан ажлаа хүлээлгэн өгөхөөр надтай хамт суудаг.
-Та өөрөө хийсэн үү?
- Тийм ээ.
- Энэ юу вэ?
- *зөв хариулна*.
*Би дахиад хэдэн зүйлийн талаар асууж байна. Тэр зөв хариулдаг*
-Хүлээн зөвшөөрсөн. Маш сайн.

case болтун

-Та өөрөө хийсэн үү?
- Тийм ээ.
- Энэ юу вэ?
— *БУРУУ хариулдаг / хариулдаггүй*.
*Би дахиад хэдэн зүйлийн талаар асууж байна. Ижил үр дүн*
-Хүлээн авахгүй. БҮТЭЭЛГҮЙ. Би дахин шалгалт өгөхийг хүлээж байна.

case хорошист

-Та өөрөө хийсэн үү?
- Тийм ээ.
- Энэ юу вэ?
— *зөв хариулдаг, гэхдээ итгэлтэй биш, хөвж байна*.
*Би дахиад хэдэн зүйлийн талаар асууж байна. Ижил үр дүн*
-Хүлээн зөвшөөрсөн. Сайн байна.

case ровныйТроечник

-Та өөрөө хийсэн үү?
- Үгүй.
- Яагаад?
-Хэцүү байна. Надад тусалсан... *бүлгийн шилдэг оюутныг шударгаар хэлэх*
- Та үүнийг ойлгосон уу?
-Тийм ээ, би бараг бүгдийг ойлгосон.

- Энэ юу вэ?
- *зөв хариулна*.
*Би дахиад хэдэн зүйлийн талаар асууя. Түүний хариултууд нь 50/50 зөв эсвэл буруу байсан ч заримдаа бүрмөсөн тасардаг.*
-Хүлээн зөвшөөрсөн. Сайн байна.

Бусад бүх тохиолдлыг тайлбарлах нь утгагүй юм. Тиймээ, "В" оюутан "С" оюутан үнэнч шударга байдалд найдаж, ижил үнэлгээ авсанд сэтгэл дундуур байж магадгүй юм. Дараа нь бүх зүйл сэтгэлийн байдлаас хамаарна. Эсвэл би "Б" ангийн сурагчийг шалан дээр харахыг хүсэх болно, учир нь "бид чимх мэргэн ухааныг унагах гэж байна" гэж хэлье, дараа нь би арга барилын мөн чанарыг тайлбарлаж, амьдралд юу илүү үнэ цэнэтэй болохыг тайлбарлаж, "С" оюутан шалгалт өгөх нь түүнээс илүү хэцүү байсан, "В" сурагч гэх мэт ...
...эсвэл би нэг удаа профессор шигээ тэр дургүйцсэн оюутны хажууд дэвтрийн талбай дээр жаахан шүд зураад дараагийн удаа түүнд тусгайлан лабораторийн даалгавраа гүйцэтгэнэ. Учир нь. Тиймээс тэр ангийнхаа хүүхдүүдийг "бууруулдаггүй".

Аливаа програмчлалын үндэс нь ... оньсого байдаг

Үнэлгээ
Боловсролын үйл явц дэлхийн бусад орнуудын нэгэн адил үнийн шошго, зэрэглэлд живж байна.
Оюутнууд ч гэсэн хүмүүс шүү дээ, гэхдээ миний бодлоор "хүрээ" энд бас "сэгсрэх" хэрэгтэй байсан.
Улирлын туршид бүгдэд нь урамшууллын даалгавар өгсөн. -д бүртгүүлнэ үү Github.com, хоосон C++ төслийг байршуулж, хоёр шинэчлэлт хийж, тэдгээрийг хийж, түлхэнэ үү. Эдгээр үйлдлийнхээ төлөө би 15 оноо авсан. Тийм ээ, 4 биш, 5 биш, харин 15. Бид гурав үүнийг ойлгосон. Энэ нь оюутны зан чанарын хувьд тодорхой хэмжээгээр ойлгомжтой байсан ч дараа нь өөр зүйл болсон.
Нэг удаа манай ангийн хуваарь солигдсон тул хамгийн сүүлийн анги болж, хичээлийн цонхны дараахан хичээлээ. Гэсэн хэдий ч 15 хүн ирсэн хэвээр байна. Бид аль хэдийн сэдвүүдээ сайн ахиулсан, дараагийн сэдэв нь бидний ядарсан оюун ухаанд (миний болон оюутнуудын аль аль нь) сорилт тулгарсан тул ийм баатарлаг байдлыг хүндэтгэн шинэ сэдэв тайлбарлахыг хүссэнгүй. Тиймээс би философийн талаар ярихаар шийдсэн.

"Би урьд өмнө хэзээ ч байгаагүй өгөөмөр сэтгэлийг татахыг зарлаж байна. Хүн бүр түүнд өнөөдрийн хичээлд ямар үнэлгээ өгөхийг хэлж байна."
Хүн бүр "тав" авахыг хүсч байсан.
"Үүнийг аль хэдийн байгаа гэж үз" гэж би хэлэв. Бүгд баяртай байсан.
Чимээгүй.
-Яагаад хэн ч хүсээгүй юм бэ? 7-ку эсвэл 10-ку?
Бүгдийн нүд томрон тэнэг инээж эхлэв.
"Чи үнэхээр тэмдэглэлдээ оруулах гэж байна уу?!" гэж ангийн ардаас хоолой сонсогдов.
"Энэ амархан!" гэж би хэллээ. "Би нэр томъёоны блиц зарлаж байна. Миний 10 асуултанд хариулсан хүн ялах болно." 20-ку сэтгүүлд, ямар ч барих, хэн хариулахгүй байна - тэр нэг -10 (хасах арав).

"Багийнхан сэргэж, маргаан өрнөв." Бүгд л шаргуу олсон оноогоо авсан. Хоёр сайн дурын ажил хийсэн. Хэдхэн жижиг сажиг бэрхшээлийн улмаас тэд стек, дараалал, бүтээгч, устгагч, хог цуглуулагч, капсулжуулалт, полиморфизм, хэш функцүүдийн тухай 10 асуултанд ээлжлэн хариулав.
Тус бүр сэтгүүл дээр зурсан зурагтай байв 20-ка...гэхдээ сэтгүүлийн ач холбогдол, дүн нь хүн бүрийн нүдэнд багассан. Одоо хэн нэгэнтэй дүнгээ "хуваалцах" эсэхийг асуугаагүйдээ харамсаж байна. Тэд тэгэх байсан гэж бодож байна... Одооноос эхлэн хүн бүр мэдлэгтэй, үнэнч шударгаар "лаборатори"-г давсан.

Энэ мөчөөс эхлэн өөр төрлийн лабораторийн шалгалт гарч ирэв.


case честноНеЕгоНоОнПытался

-Та өөрөө хийсэн үү?
- Үгүй.
- Яагаад?
-Хэцүү байна. Надад тусалсан... *бүлгийн шилдэг оюутныг шударгаар хэлэх*
- Та үүнийг ойлгосон уу?
- Сергей Николаевич, үнэнийг хэлэхэд би юу ч ойлгохгүй байна. Би өөрөө мөр бүрийн хажууд сэтгэгдэл бичсэн. "За, энэ бол миний хэрэг биш, би тракторын жолооч болно."
- Энэ юу вэ?
— *мөрийн эсрэг талын тайлбарыг унших*.
- ...
- ...
— Беларусь МТЗ ба Дон 500, К700 хоёрын ялгаа юу вэ?
— ?!.. Эхнийх нь Минск хотод үйлдвэрлэсэн дугуйт трактор бөгөөд ихэвчлэн хөнгөн болон дунд зэргийн ачааны хөдөө аж ахуйн хэрэглээнд ашиглагддаг. Мөн урд талдаа жижиг дугуйтай, хойд талдаа том дугуйтай. Дон 500 нь үндсэндээ комбайн, К-700 Кировец бол ЗХУ-ын үеийн дугуйтай ерөнхий зориулалтын трактор бөгөөд 5-р зэрэглэлийн зүтгүүртэй.
-Хүлээн зөвшөөрсөн. Сайн (!!!).
- Баярлалаа, Сергей Николаевич!!!

Манай нутагт тракторын цаанаас чатлах нь энд хатуу юм ярьж байгаатай адил юм.

Агуу хүн
Манай ангид нэг суут хүн байсан. Тэр эхний ангиасаа хоцорсон бөгөөд бусадтай нэгдэж оньсого эвлүүлээгүй. Тиймээс би түүнээс дараагийн хичээл дээр бусад бүх хүмүүст зориулж төлөвлөж байсан зүйлээ хийхийг хүссэн бөгөөд түүний юу сонирхож, юунд дуртай байсан талаар цаасан дээр бичээрэй. "Суут ухаантан"-ын төгсгөлд "Оршихуйн дэмий юмыг би ойлгож байна" гэх мэт хоёр гурван мөр бичжээ.

… Бурхан минь, миний бүлэгт хоёр дахь Лао Цзу, Кожима нар бүгд нэг дор цугларсан…
Аливаа програмчлалын үндэс нь ... оньсого байдаг

Тэр эхний хоёр хичээлийн үеэр нэр томъёоны талаархи асуултуудад гайхалтай хариулсан боловч үр нөлөө нь удаан үргэлжилсэнгүй. "Суут ухаантан" хичээлдээ суухаа больж, дараагийн удаад л анхны лабораторийн даалгавраа амжилттай гүйцэтгэсэн. бүтэлгүйтсэн объектив шалтгаанаар. Дараа нь ажил тасалсаны улмаас тэрээр аяндаа өр хуримтлагдсан бөгөөд энэ нь түүний үзэж байгаагаар Би зүгээр л "ах дүүгийн байдлаар" үүнийг тоолох хэрэгтэй болсон..
Хичээлд оролцохгүй байх, өөрийгөө хүндлэх мэдрэмж нь миний хичээлд суух тогтсон зарчимтай зөрчилдсөн. "Суут ухаантан"-д хоёрхон сонголт байсан: өөрийгөө нөхөн сэргээх (хүлээгдэж буй зам) эсвэл хичээлээ орхиж, сул дорой байдлаас ангижрахын тулд деканаас "С" авна гэж найдах.
За энэ бол "Суут ухаантан"... Энд ямар нэгэн "гоц" хэрэгтэй байна. Энэ залуу ВК группын ерөнхий хэлэлцүүлэгт (би болон бусад бүлгийн оюутнууд байсан) намайг уурласан хараал, доромжлолыг бичихээс өөр юу ч бодож чадахгүй байв.

Хмм... Сэтгэл дундуур байна.
Коллежийн захиргаа шийтгэх ажиллагаа дуусаагүй байхад тэр надаас уучлалт гуйхаар шийдсэн нь надад хамгийн их таалагдсан. Юуны төлөө? Үнэнийг хэлэхэд би ойлгохгүй байна. Тэр үед би шүүмжлэл, ялангуяа ийм тэнэг шүүмжлэлээс аль эрт дархлаатай болсон. Миний зан чанарт нөлөөлөөгүй ч үйл явц бол үйл явц бөгөөд багшийн хувьд би үүнийг мэдээлэхээс өөр аргагүй байсан. Суралцаж байх хугацаанд нь түүний эсрэг маш олон гомдол хуримтлагдсан нь сүүлийнх нь байсан юм. Түүнийг хөөсөн. Мэргэжлийн сургуулийн сүүлийн жилээс.
Тэр намайг мэргэн буудагч бууны дурангаар удаан харж байсан байж магадгүй ч үнэнийг хэлэхэд надад хамаагүй.
Өө, суут ухаантан, чи үнэхээр сэтгэлгүй юм ...

Эпилог
Миний хувьд багшлах нь хамгийн гэгээлэг туршлага байсан. Энэ нь надад коллеж төгссөний дараа програмчлалын үндсэн мэдлэгээ бэхжүүлэхэд тусалсан. Би сонгосон мэргэжлээрээ (мөн боломжит мэргэжлүүдийн хүрээ) итгэлтэй байсан. "Хамгийн тэрслүү бүлэг" намайг хүндэлж, нөхөрсөг хандсан нь маш чухал байсан - энэ бол үнэлж баршгүй зүйл юм. Би тэдний дотоод шинийг санаачлагчидтай холбогдож, тэдгээр томьёолсон тэргүүлэх чиглэлээс илүү бодит байдлын мэдрэмжийг бий болгохыг хичээсэн. Хүн бүр код бичих ёстой, бүх хэсгүүдийг нэг дор нэгтгэснээр бид илүү том, ажиллах программтай болох байсан кодчиллын "таавар"-ын цэгт хүрч чадаагүй нь харамсалтай...
Хэзээ нэгэн цагт тэд бүгд үүнийг мэдрэх болно гэж найдаж байна ... гэхдээ одоохондоо 2 жилийн дараа хэд хэдэн оюутнуудын сэтгэгдлийг агуулсан дэлгэцийн агшинг доор харуулав.

Аливаа програмчлалын үндэс нь ... оньсого байдаг

Энэ бүлгийн ихэнх нь одоогоор их сургуульд суралцаж байгаа тул тэдний хэн нэг нь программист амжилтанд хүрсэн талаар дүгнэлт хийхэд эрт байна. Цаг хугацаа харуулах биз ээ.

Энэ нийтлэл хэрэг болсон гэж найдаж байна. Уншиж байгаад баярлалаа!
Бүтээлч амжилт, эерэг сэтгэл хөдлөл, хамт олон!

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

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster