Dasturchi kim?
Sohamizda ko’p uchraydigan savollardan biri bu: “Dasturchi kim? Kimlarni dasturchi deyish mumkin?”. Bazan uchrab turadigan javoblar esa: “Dasturchilar mana bunday bo’ladi”, “Mana bu narsalarni bilsagina dasturchi bo’ladi”, “Mana bular aslida dasturchi emas” va hk.
Bu masalaga shaxsiy qarashimni bildirmoqchiman. Dasturlash o’zi nima? Shaxsan men uchun dasturlash bu insonlarning muammolariga IT vositalari orqali yechimlar topish, yani asosiy maqsad insonlarning muammolarini yechish (og’irini yengil qilish), yoki bor yechimlardan yaxshiroq yechim topish. Sinchiklab qaralsa, hamma muvaffaqiyatli proyektlar mana shu ishni to’gri yo’lga qo’ygan bo’ladi ko’pincha (albatta to’g’ri vaqt va to’g’ri zamon ham asosiy faktorlardan).
Insonlarga ularning muammolarini qaysi yo’l bilan yechganiz odatda uncha qiziq emas (qaysi til va texnologiyalarni ishlatasiz ular bilishni ham hohlashmaydi), ular uchun muhim faktorlar bor, masalan oddiylik (simplicity), tezlik (performance), erishuvchanlik (accessibility), narx (price), sifat (quality), havfsizlik (security) va hk. Albatta bu faktorlar har xil odamlar uchun har xil qiymat beradi, masalan bir guruh uchun narx asosiy faktor bo’lsa boshqasi uchun sifat yoki havfsizlik.
Muammoga to’gri yechim topish esa muammoni yaxshi tushunish bilan boshlanadi, yaxshi tushunilmasdan qilingan yechim ko’pincha boshqa muammo (yoki muammolarni) keltirib chiqaradi.
Muammoni to’liq tushunib olganimizdan keyingi muhim qadam esa bilim va tajribamizga asoslangan holda yechimlar to’plamlarini ko’zdan kechirib chiqish bo’ladi. Ko’p holatlarda muammoga birdan ko’p yechim bo’ladi va biz berilgan holatning talablaridan (requirements) kelib chiqib eng optimalini tanlashimiz (decision) va uni amalga oshirishimiz (implement) kerak.
Ilhomlanilgan trendlar:
- Frontend haqiqiy dasturlash emas
- Skriptli (yoki GCli) tillar haqiqiy til emas
- “C”ni (yoki low-levelni) bilmasdan dasturchi bo’lolmaydi
- Matematikani bilmasa dasturchi bo’lolmaydi
PS: postdan asl maqsad dasturchilarga masalani tushunishga koproq vaqt ajratishga targ’ib edi