Dasturlashni qanday o'rgandim?

Salom. Dasturlashni o‘rganamiz — qanday? maqoladagi izohlardan kelib chiqib o'zim dasturlashni qanday o'rganganim haqida yozmoqchiman. Chunki kimdir MATEMATIKA juda kerak desa yana kimdir MATEMATIKA dasturlashga umuman aloqasi yo'q deydi.

Shu har xil gaplardan kelib chiqib man o'zimning dasturlashga bag'ishlagan 12 yilim haqida gapirmoqchiman. Balki shunda MATEMATIK kerakmi? yo'qmi? degan savolga javob topilib qolar.

Matematika — ochig'ini etaman mani eng yaxshi ko'rgan fanlarimdan bittasi, bulardan keyin Astronomiya, Fizika, Ximiya va Biologiya (ozgina bo'lsada xabarim bor). Tarix, Falsafa kabi fanlar umuman yoqmaydi :).

Dasturlashga kirib kelgan paytim (litseyda, 8-sinf) QuickBasic ni o'rgatishgan. Shu paytlar manga haqiqatda ham matematikaning juda foydasi tekkan. Chunki deyarli 11-sinfgacha bo'lgan barcha dasrlikda: ikki sonning kattasini toping, qaysi son katta, 1 dan N gacha bo'lgan sonlar yig'indisini toping, agar x > 0 bo'lsa y1, aks holda y2 ni qiymatini toping degan misollar yechganman faqat.

Bulardan ko'rinib turibdiki ko'paytirish, tenglama yechishni, shunga o'xshagan matematik misollarni yechishda matematikani bilmagan odam juda qiynaladi.

Demak 1-hulosa: Matematika — dasturlashga endi kirib kelayotgan odamga juda foydasi tegadi. Chunki dasturlashni o'rganayotgan har qanday dasturchi 2 ta sonni qo'shishdan boshlaydi. Man MATEMATIKA ni bilishi shart demadim, foydasi tegadi dedim. Chunki oddiy matematik misollarni yechishda dasturlash tili standard funksiyalarni ham o'rganishni boshlaysiz, ya'ni sin/cos/tan/max/min… kabi funksiyalarni ishlatasiz. Bu sizga keyinchalik funksiya, prosedura tushunchalarida ast qotadi. Chunki o'zingizning my_sin funksiyangizni yaratishga imkon beradi.

Shu yergacha matematika haqida gapirdim. Endi keling shu 4 yilda man nimalar qilganman. 8,9-sinflarda basicda sonlar bilan ishlaydigan dasturlar tuzardim faqat, o'rtada fayllar bilan ishlash va grafika bilan ishlashlar bilan birga. Bularning ichida fayldagi so'zlar soni, fayldagi eng uzun so'z, fayldagi eng ko'p ishlatilgan harf, fayldagi harflar soni, fayldagi ikkita sonni qo'shadigan ..., grafikada uchburchak chizishdan boshlab to mini o'yinlargacha.

10-sinfda: VisualBasic ni komputerdan topil olganman va shunga qiziqib VisualBasic da oynali dastur tuzishga o'tdim. Ochig'i bitta:
My.Caption = "Salom";

shu kod formani sarlavhasini o'zgartirishini bilishimga 10 oy vaqtim ketgan. Ungacha har xil narsalar qilganman, lekin umuman tushunmaganman. 10 oyda har xil dasturlar hatto ScreenSaver ham yozib ko'rganman. Shu bir qator kodni tushunganimdan keyin Event larni ham tushunib qolganman. Lekin funksiyar haqida tushuncha bo'lmagan. Shunday bo'lsada 10,11-sinflarda quyidagi dasturlarni tuzganman. Ochig'ini etaman man uchun bu dasturlar haqligacha qadrli.

Dasturlarni ko'chirish.
Bitta dasturda parol bor «111». Faylda saqlanadi. Bulardan tashqari 2 html sahifa ham bor. Alisher Navoiyni 11-sinfda tuzganman. 2-sini 1 yoki 2-kursligimda tuzgandim.

kodni ko'rsam kulaman, hozi shuni qilsam o'zim yozgan kodimni 80% qisqartirsam kerak :).

VisualBasic ga o'tganimda MATEMATIKA manga faqat oddiy hisob kitoblarda kerak bo'lib qoldi, nechta, nechchi foiz, qanchasi to'g'ri, keyingisi kabi oddiy hisob kitoblar uchun ishlatilardi. Buni hozirda deyarli barcha biladi.

Demak 2-hulosa: Matematika qo'yilgan maqsadga qarab sizdan x% bilib talab qiladi. Ya'ni agar fayldagi ma'lumotni ekranga chiqaradigan dastur tuz desa man bu yerda MATEMATIKANI umuman ko'rmayapman. Bundan kelib chiqadiki, matematikani sizga qo'yilgan talabdan va sizning bilimingizdan kelib chiqib dasturingizda qo'llaysiz.

TATU dagi davrim ning 2 yili o'qish bilan va shu paytgacha bo'lgan 6 yili esa ishlash bilan o'tdi. Ko'p narsalarni ishlash davrida o'rganganman, ya'ni har xil muammolarni hal qilguncha. Shu jumladan o'zim ham vaqt bo'ldi deguncha internetdan o'zim bilmagan narsani topaman va shuni o'rganishni boshlayman. Misol uchun RSA ni ham shu opennet ga yozguncha o'rganganman.

Keling endi quyidagicha holatni etsam: Web dasturlashda man deyarli matematikani ishlatmiman, chunki u yerda asosan manga SQL va PHP ni bilganim ko'proq foydasi tegadi MATEMATIKA ga nisbatan.

Yana quyidagiga o'xshagan misollar mavjud: 1 dan N gacha bo'lgan sonlar yig'indisini toping. Bu holatda 2 xil yechim qilsa bo'ladi:
1. Arifmetik progressiya
2. Oddiy FOR/WHILE lar orqali

o'zi o'zidan ma'lumki 1-holatda ishlashi tezligi juda yuqori bo'ladi, FOR/WHILE larga nisbatan. Demak matematikani kompyuterda hisoblashda ko'p vaqtni oladigan jarayonlarni osonlashtirish maqsadida ishlatsa bo'ladi.

Lekin HAFVSIZLIK da faqat matematika ishlatiladi. Matematikasiz iloji yo'q, bundan tashqari deyarli barcha HASH funksiyalar, tarmoqdagi jarayonlar, shifrlashlarda matematikasiz iloji yo'q. Lekin bularni bizgacha tayyorlab yozib qo'yishgan shuning uchun bizga xuddi matematika keramasday tuyiladi. Aslida hamma yoqda faqat hisob-kitob bo'lib yotibdi.

Keling oddiy faktni ko'rsak: Nimaga barcha matematiklar dasturchi emas? Agar 50% qiziqmaydi desak, qolgani nimaga bo'lmaydi. Chunki dasturlashda faqat MATEMATIKA mas, LOGIKA ham kerak. Ya'ni masalaga qanday yondashish.

Kelin maqolamni ko'p cho'zmayda oxirgi bitta misol bilan tugatsam, chunki bu haqida yozaman desam juda ko'p yozadiganga o'xshiman.

Aslida MATEMATIKA boshqa yo'nalish, DASTURLASH boshqa yo'nalish. Kosmosda uchub yurgan aparatlar misolida ko'rsak. Matematiklar — hisob kitob qilib qachon qaysi tezlikda, qayerda to'xtashi kerak, qachon qayerga qarashi kerak va qaysi traektoriya bo'yicha yurishi kerak deb DOC yozib beradi. Dasturchilar esa — kosmosdagi temir tersakka matematiklarning qog'ozidan kelib chiqib buyruq beradi ya'ni jon kiritadi.

Shunda qilib dasturchi bo'laman desangiz nafaqat matematikani bilishingiz kerak, sizdan kuchli iroda, sabrga qo'shib yana faqat dasturchilarda ko'p uchraydigan LOGIKA ham bo'lishi kerak. Matematikani bilganingiz bu sizga foyda, lekin matematikani bilmaydigan dasturchini — dasturchi emas deb yozmanglar.

Manimcha yaqinda qidirish tizimlarida «matematika» degan so'z bo'yicha 1-o'rinda chiqsak kerak.

14 комментариев

bahriddin
Matematika va mantiq boshqa-boshqa narsalar degan fikringizga qo‘shilmayman. To‘g‘ri, abituriyent bo‘lib, o‘qishga kirishda unchalik kerakmasdir, lekin olimpiada masalalarini yechishda matematik hisob-kitob masalaning 10-15 foizini tashkil qiladi. Qolgan 80-85% esa mantiqqa to‘g‘ri keladi. Kuchli matematiklar 1434 karra 2354 ni og‘zaki hisoblaydiganlar emas, balki, Puankare, ming yillik masalalar, egizak tub sonlar kabi gipotezalarni ilmiy-mantiqiy isbotlab beradiganlardir.
Ana endi aniq matematika deb qidirsa, birinchi bo‘lib chiqamiz! :)
0
geniuz
1 kursda oliy matematikani tushunib ketayotgandim,qaerigadir keldiyu tormazlanib qoldim :)
xullas 1 kurs yarimi i 2 kursda matematikadan qolib kettim, «bir amallab» baholarimni oldim, chunki 2 semestrdan boshlab man uchun undan muhimroq, dasturlash (OOP,HTML,JS,...) degan narsalari boridi.
3 kursda matematika fanida asosan mantiq oqitildi, man odatdagiday qiziqmadim xam, lekin sessia paytida qandaydir qilib misollarni osongina echdim, huddi man bu narsalarni oldin o'qiganday, bular mantiqiy/binar misollar edi.
qissadan hissa: matematikani yotib turib o'rgangan bn odam programmist bulib qolmaydi :), matematikani kamroq bilgan odam (xech bulmasa kollej kursi) programmist bula oladi, albatta yuqorida aytilganday oldinroq yaratilib uje liblari tayyor velosipedlarni shifrovanielarni qaytadan yarata olmas, lekin qoyilgan masalani hal qila oladi deb o'ylayman.
fursatdan foydalanib aytib qolay, kupchilik bu narsani tan olmaydi. programmistda boshqalarda bulmagan qandaydir qobiliyat bulishi kerak, agar usha qobiliyat bulmasa 30 yil tuitda programmirovanieni urgansayam programmist bula olmaydi. oddiy misol, birinchi marta ishga kirgan joyimda bir bola ishlardi, man 2 yildan keyin bushab kettim, mandan keyin yana 2 yil ishlabdi. keyin kuchada kurib qoldim, «qale ishlar desam...», mandan programmist chiqmas ekan, 4-5 yillab programmistlarni yonida programmistday bulib yurdim, kod yozdim, ammo ohir oqibat mandan programmist chiqmasligini tushunib yettim dedi.
judayam chuzilib ketti :)
2
ruslanmedia
Sal kam maqola yozdiz :)
0
sultonsanjar
dasturlashda bo`lish uchun TUITni roli haqida gapirishni hojati yo`q, bo`lajak programmistlarga yillab elektr zanjirlar nazariyasiyu qayerdagi bo`lmag`ur gumanitar fanlar zarracha foydasi yo`q. xullas o`shanaqa…
0
sultonsanjar
Bir gap aytishardi: «Dasturlash bu ilm-fan emas, san'at». Qaysidir ma'noda jon bor. Dasturlashda bitta muammoni million xil usulda ishlash mumkin, programmistning eng yaxshishi mana shu usullardan eng optimalini tanlay olishi va qo`llay olishida. Kulol loyni o`zi xoxlagancha cho`zib, ezib mahsulotini tayyorlasa, dasturchi ham o`zi xoxlagandek kodni «cho`za olishi» kerak. Buning uchun san aytayotgan «qandaydir» iqtidor kerak. Afsuski hammada ham bunaqa bo`la olmaydi. Matematikaning, mantiqning roli katta, lekin 100% emas. Programmist bo`lish uchun miyaning qaysidir qismida chang bosib yotgan miya hujayralari ishlashi kerak, Puaroni tili bilan aytganda.
0
ruslanmedia
Hashtag yo‘qmi? :D Mani bir hayron qoladigan tomonim nega olimpiyadalarga faqat #matematika masalalarni o‘rtaga tashlab dastur tuz deb turvolishadi?
0
bahriddin
Mantiqingizni va algoritm bo‘yicha bilimingizni sinash uchun :D
0
geniuz
huddi shu narsa man ham bir marta olimpiadaga borganimda pand bergan, programma toppa togri yozilgan, ammo bitta joyida sqrt qolib ketibdi natija xato deb yiqitvorishgan, shu togrimi? olimpiada matematikadanmas dasturlashdan edi!
0
U2B3K
Xolivar uyushtirish niyatim yo'q. Bu mavzu shundoq ham juda ko'p «chaynalgan». Faqat bir gapni aytmoqchiman. Matematikani to'liq bilish haqida emas gap, ba'zi bo'limlari va tushunchalar haqida. Yana, busiz dasturchi bo'lib bo'lmaydi demadim, bo'lish mumkin. Bu shaxsiy fikr edi, ya'ni imho. Mantiqni ham haligi misolu, masalalar pishitadi. Matematik uzidan uzi dasturchi bo'lib qolmaydi albatta, lekin o'rgansa ancha tez va yaxshi tushunadi. Web, bd va prikladniy dasturlashda «matematika»ga ko'pam ehtiyoj tug'ilmasligi to'g'ri.
Lekin bu faqatgina kriptografiyada kerak bo'ladi degani emas!
OS yaratishda, kompilyatorlar, «tanuvchi» sistemalar, simulyasiya, ma'lumotlarni qayta ishlash, tahlil qilish, subd yaratish, tovushli ma'lumotlarni ishlash va yana anchagina narsalarda kerak.
Matematika deganda boshqa narsalar tushunilyapti shekilli, shuning uchun algoritmizasiya deb qo'ya qolaman.

P.S. Yuqorida aytilgan dasturlash olimpiadalarida beriladigan masalalar man aytgan «matematika»ga misol.
2
Surayyo
Man Matematikani yoqtiraman dasam kam SEVAMAN! Fikrimcha matematika fikrlashni o'rgatadi, aqlni charxlidi. Fikrlashiz bumasa Dasturchi bo'lish qiyin deb o'yliman.
0
SardorDushamov
Hamma aktyor, qo'shiqchi, bakir… bo'lish mumkin, lekin hamma programmist bo'la olmaydi. :)
1
Phoenix
Matematikani bilgan odam logikasi kuchli bo'ladi, dasturlashni hammadan tez o'rganadi, o'rganishda qiyinchilik bo'lmaydi… bla bla bla… Bu gaplarni nima keragi bor? Dasturlashni qiyinchilik bilan o'rganmasa uni nima qiziqi bor?, o'rganishdan nima foyda? O'rganayotgan paytingda biror qiyinchilikka yo'liqmasang, soatlab mag'zini chaqmasang uni nima keragi bor? Dasturlash shunisi bilan qiziqarli emasmi? Shu narsani bilmaganidan keyin qidiradi, o'rganadi, kerak bo'lsa dasturlash jarayonida matematikani o'zlashtirib oladi. Masalan manga matematika darsida matematika haqida x1, y2 lar haqida eshitish yoki doskada ishlashni qiziqi yo'q, lekin aynan shu amallarni kompyuterda dasturlash algoritmi bilan buyruq berib ishlash yoqadi. Manimcha dasturlashda eng katta narsa qiziqish bo'lsa kerak IMHO.
1
jamic
Tatuda uqishga kirganimda, Bo`ldi man yetiib keldim dedimu, august oyida hamma uqigan yozgan daftarlarimni daraxni ostiga chiqarib yoqib yubordim. Bu yog`iga soxamni urganaman. Hamma fanlarga quyib quyib uzim nimani qiziqishim bo`lsam shuni urganishni boshladim. Boshida hammasi zo``r edi. Lekin bir kun, ECG ga qiziqib qoldim qanaqa ishlarkan deb, Juda bir «jodugarlik» joyi yuqdek tuyuldi. fikrimni bildirganidim project ham tayyor bo`ldi. ishlashni boshlagandan kegin muammolar oxiriga kelib boshlandi. Signallarni filterlash degan joyiga keldimu to`xtab qoldim. Uzimcha aldamoqchi bo`lib ubu klasslarni olib mix qildim, lekin bo`lmadi. 1 kursda oliy matematikani o`qimaganim pand berdi. Majbur fure qatorlarni o`rganiib 3 vaqtim ketdi AS bo`lgincha. Matematika kerak, lekin hamma vaqt ham emas. Dasturlash -san`at, yashash tarzi…
1