JavaRush /Java blogi /Random-UZ /Kay Horstmann va uning qanday qilib yaxshi Java dasturchi...

Kay Horstmann va uning qanday qilib yaxshi Java dasturchisi bo'lish haqidagi 1500 so'zlari

Guruhda nashr etilgan
Ehtimol, siz Cay S. Horstmann ismini allaqachon eshitgansiz. U Java olamida juda taniqli shaxs va bizning sevimli tilimiz bo'yicha ko'plab kitoblar muallifi. Ular orasida klassik kurs "Core Java" (rus tilida "Java. Professional's Library" ikki jildlik kitobida nashr etilgan ) va "Sabrsizlar uchun Java" (rus tilida nashr etilgan "Java SE") ning qisqacha mazmuni bilan bir qator mavjud. 8. Kirish kursi” va “Java SE 8. Asosiy kurs” ). U “Java chempioni” degan faxrli unvonga ega. Va bu havolada siz uning eski maktab veb-saytini qiziqarli ma'lumotlar bilan topishingiz mumkin.
Kay Horstmann va uning qanday qilib yaxshi Java dasturchisi bo'lish haqidagi 1500 ta so'zi - 1
Biz sizning e'tiboringizga InformIT resursi uchun maqolaning tarjimasini taqdim etamiz , unda Kay boshlang'ich va davom etayotgan dasturchilar uchun o'z kasbida qanday qilib yaxshiroq bo'lish bo'yicha bir nechta maslahatlarni aytadi. Bir kuni InformIT muharrir direktori Jennifer Bortel mendan qanday qilib yaxshi Java dasturchisi bo'lish bo'yicha qatorni tashlashimni so'radi. U menga, sabrsizlar uchun Java-ning asosiy muallifi, bu haqda biror narsa bilishim mumkinligini aytdi. "Osonroq narsa yo'q, faqat kitob sotib oling", deb o'yladim boshida. Ammo bu javob ish bermadi, chunki men uni 1500 ta so'zga sig'dirishim kerak va shu paytgacha ularning atigi 62 tasi bor * ( albatta, maqolani tarjima qilishda biz so'zlar sonini saqlashga harakat qilmadik - taxminan tarjimasi ). Men yaqinda dasturchi do'stimdan elektron pochta xabarini oldim, u intervyuda quyidagi kod nima uchun xavfsiz emasligi so'raldi:
class ThreadSafeClass extends Thread
{
     private static int count = 0;

     public synchronized static void increment()
     {
         count++;
     }

     public synchronized void decrement()
     {
         count--;
     }
}
Do'stim ushbu misoldagi kodni ip xavfsiz deb qaror qildi va men u bilan rozi bo'ldim, staticikkinchi usulda bitta kalit so'z etishmayotganligini va u kiritilgandan so'ng kirish sinf ob'ektining o'rnatilgan blokirovkasi orqali boshqarilishini ta'kidladim. Men ham bu intervyu uchun yaxshi savol emasligini aytdim, chunki agar sizga ip hisoblagichi kerak bo'lsa, dan foydalanganingiz ma'qul AtomicInteger. Ammo yarim tunda men uyg'onib ketdim va hayron bo'ldim: agar bu so'z biron staticbir sababga ko'ra qoldirilsa-chi? Ehtimol, ba'zi bir hiyla-nayrang suhbatdoshi ataylab bu misolni nomzodlarni chalg'itadigan tarzda tuzgandir? Shunday qilib, men savol bergan dasturchiga javob yozdim va avvalroq xato qilganimni aytdim: intervyu savollari deb nomlangan parallel koinotda bu savolga javob: "Ikkinchi usul ob'ektni blokirovka qilishni o'z ichiga oladi". Bu javobdan so'ng, yigit mendan YouTube kanalini yuritishimni so'radi, u erda men intervyu bilan bog'liq bunday muammolarni qanday hal qilishni o'rgataman. Afsuski, men buni qilmayman. Men informatika fanidan dars beraman va kitoblar yozaman, lekin mening asosiy maqsadim “intervyu muammosini hal qiluvchilarni” yaxshiroq qilish emas, balki talabalarimni yaxshi dasturchi qilishdir. Bir paytlar Piter Norvig ( sun'iy intellekt sohasidagi amerikalik olim, Google tadqiqot direktori - taxminan trans. ) o'z blogida ajoyib maqola yozgan. Uning ta'kidlashicha, sizga Java tilini 24 soat yoki 21 kun ichida o'rgatishni va'da qilgan kitoblar shunchaki kulgili. Uning fikriga qo‘shilmaslik qiyin: har qanday sohada mutaxassis bo‘lish uchun 10 yil yoki balki 10 000 soat kerak bo‘ladi. Va ma'lumki, mutaxassislar yangi boshlanuvchilardan farqli ravishda ma'lumotni qayta ishlaydilar. Klassik eksperimentda tajribali va yangi boshlanuvchi shaxmatchilarga bir necha soniya davomida donalarning ma’lum joylashuvi bo‘lgan shaxmat taxtasi ko‘rsatildi, so‘ng uni yashirib, donalarni qanday bo‘lsa, shunday joylashtirishni so‘rashdi. Yangi boshlanuvchilar vazifani juda yaxshi bajara olmadilar, ammo mutaxassislar hech qanday muammoga duch kelmadilar. Lekin faqat bitta muhim shart ostida: qismlarning joylashishi haqiqiy o'yinga mos kelishi kerak . Agar qismlar tasodifiy joylashtirilgan bo'lsa, mutaxassislar yangi boshlanuvchilardan ko'ra taxtani qayta qurishda yaxshiroq emas edi.
Kay Horstmann va uning qanday qilib yaxshi Java dasturchisi bo'lish haqida 1500 ta so'zlari - 2
Shuning uchun ham maktubdagi savolga aynan o‘zim aytgandek javob berdim. Mening ma'lumotim intervyu emas, balki haqiqiy dasturlashda, shuning uchun men instinktiv ravishda etishmayotgan kalit so'zni qo'shib, "noto'g'ri" xulosa chiqardim. Men nima bo'lganini va nima uchun men qo'shimchasiz hech qachon misol kabi kod yozmasligimni tushuntirganimdan keyin ham ishga olinadi deb o'ylamoqchiman. Ehtimol, agar bunday javob ularni qoniqtirmasa, men o'zim ular bilan ishlashni xohlamagan bo'lardim.
Endi, menimcha, sertifikatlash imtihonlari yoki suhbatlarda o'qish sizni yaxshi dasturchiga aylantirmaydi. Ishonchim komilki, dasturlash bo'yicha ko'p sonli kitoblarni sotib olib, keyin ularni boshidan oxirigacha o'qib chiqish ham ish bermaydi (garchi men aynan shu kitoblarning muallifi sifatida buni tan olishni istamayman!). Darhaqiqat, yaxshi dasturchi bo'lishning eng yaxshi yo'li iloji boricha ko'proq dasturiy ta'minot yaratishdir . Vaqti-vaqti bilan men universitetimda informatikaga kirish kursidan dars beraman. Bu men o'rgatgan eng qiyin kurs. Bu magistratura kursidan ham qiyinroq. forMen yosh professor sifatida birinchi marta ish boshlaganimda, men talabalarga astoydil ma'ruzalar o'qidim, ularda men dasturlash masalalarini, masalan, tsikl va whiletsikl o'rtasidagi farqni o'rgandim do. Keyin men talabalarga uch haftalik to'rtta loyihani topshirdim. Va bu fan barcha universitetlarda azaldan beri shunday o'qitiladi. Birinchi urinishmdan so'ng, ikkinchi semestr kursining o'qituvchisi mening sobiq talabalarimning aksariyati dasturlashning birinchi semestridan keyin oddiy halqalarni ham tushunmasligidan shikoyat qildi. Va bunday natijalar ham azaldan beri sodir bo'ldi. "FizzBuzz yoki nega dasturchilar dasturlay olmaydilar" maqolasini eslaysizmi ? Chet tilini o'rganganingizda, ko'pchilik vazifalar nazariya emas, balki mashqlar va amaliyotdir. Bilimni ong ostiga "surish" juda muhimdir. Burilish nuqtasi endi har bir tsikl yoki (frantsuz tilida) har bir tartibsiz fe'l haqida faol o'ylash kerak bo'lmaganda keladi. Agar bu daqiqa kelgan bo'lsa, unda siz keyingi bosqichga o'tishga tayyormiz. Va bu g'oyada inqilobiy narsa yo'q.
Kay Horstmann va uning qanday qilib yaxshi Java dasturchisi bo'lish haqida 1500 ta so'zlari - 3
Hamma narsaning kaliti - bu tezkor fikr-mulohaza. Ba'zi psixologlarning fikriga ko'ra, biz kompyuterga asoslangan o'rganish bilan tezkor fikr-mulohazalar bilan ko'proq narsani qilishimiz mumkin. Misol uchun, yana bir klassik eksperimentda, stajyor uchuvchilar o'quv mashg'ulotidan o'tdilar, unda ular asboblar paneliga qayta-qayta qarashlari va samolyotning harakatini tasvirlashlari kerak edi. Shu bilan birga, ular buni to'g'ri yoki yo'qligini ko'rsatadigan tezkor fikr-mulohazalarni oldilar. Ikki soatlik mashg‘ulotlardan so‘ng ular tajribali uchuvchilarni ortda qoldirdi. Albatta, bu ularni darhol haqiqiy reysga jo'natish mumkin degani emas edi, lekin ular endi asboblar panelidagi xilma-xil va ko'p sonli terishlardan asabiylashmadilar. Shunday qilib, agar siz Java tilini endigina o'rganishni boshlayotgan bo'lsangiz, mashq qilish uchun ko'plab amaliy mashqlarni bajarish eng yaxshi g'oyadir. Kodning to'g'riligini avtomatik ravishda tekshiradigan ko'plab veb-saytlar va onlayn kurslar mavjud. Gobbledygook o'rniga haqiqiy qiyinchiliklarni taklif qiladigan birini tanlang. Axir, siz ongsizligingiz amalda yozadigan kodni yaxshi bilishini xohlaysiz. Shuning uchun men uydirma vaziyatlardan foydalanadigan dasturlash misollarini, masalan, miyovlash va po‘stlash usullari bilan hayvonlar sinflarini unchalik qiziqtirmayman. Biroz vaqt o'tgach, siz dasturlash asoslarini o'zlashtirasiz. Keyingi bosqichga o'tish uchun siz bir nechta loyiha yozishingiz mumkin. Bir necha yil oldin InformIT portali tajribali dasturchilarga savol berdi: “Dasturchi uchun yangi tilni o‘rganishning eng yaxshi usuli qanday?”. Agar ularning javoblarini umumlashtirsak, quyidagi xulosaga kelishimiz mumkin: "Joriy loyihangizda ushbu tildan foydalaning." Shunday qilib, har doim amalga oshirishni xohlagan narsangiz haqida o'ylab ko'ring - va davom eting. Yigirma yil oldin, Java hali juda yosh bo'lganida,mening do'stim va bir paytlar hammuallif Gari Kornell menga qo'ng'iroq qilib, "Kay, biz Java haqida kitob yozamiz", dedi. Javobim shu ediki, u ham, men ham ushbu Java haqida hech narsa bilmaymiz, u javob qaytardi: “Xo'sh, nima? Bizda allaqachon kitob shartnomasi bor." Qiladigan ish yo'q. Biz shoshilishga majbur bo'ldik, chunki kimdir "24 soat ichida o'zingizni Java qo'g'irchog'i bo'lishga o'rgating" kitobining yaqinda nashr etilishini e'lon qildi ... Menimcha, u shunday nomlangan edi ( Kay "Dummylar uchun" turkumidagi kitoblarni masxara qiladi. , "Dummy" so'zini "dummy" deb tarjima qilish mumkin - tarjimonning eslatmasi ). Yangi tilni o'rganish uchun men loyihalardan boshladim - pensiya rejalashtirish uchun foydalanuvchi interfeysini yaratadigan dastur yozish, keyin esa ob-havo saytiga ulangan va ob-havo hisobotini ko'rsatadigan dastur. Undan keyin - avtomagistralda avtomobillarning harakatini taqlid qiluvchi dastur. O'sha paytda bu dasturlar shunchaki ajoyib edi!java.awtjava.netva iplar ( threads). Va men hujjatlarda aytilgan narsalarni emas, balki bu ishni qanday qilishni o'rganishim kerak edi. O'sha paytda bu butunlay boshqa narsalar edi. Shuning uchun Core Java [1] hit bo'ldi: bu qo'g'irchoqlar uchun emas edi.
Kay Horstmann va uning qanday qilib yaxshi Java dasturchisi bo'lish haqida 1500 ta so'zlari - 4
O'sha paytda Java tilini o'rganish ancha qiyin edi. Bizda Stack Overflow kabi saytlar yo'q edi ( va bizda JavaRush ham yo'q edi - muharrirning eslatmasi ). Shu nuqtada, men sizning dasturlash "mahoratingizni" yaxshilash bo'yicha quyidagi maslahatlarni shakllantirishga o'taman. Shunday qilib, siz o'zingizning loyihangiz ustida ishlaganingizda, siz biron bir joyda qotib qolasiz. Bunday holda, ixtisoslashgan forumga o'ting va javoblarni topishga harakat qiling. Ishoning, bu ajoyib fikr . Birinchidan, siz allaqachon ko'p marta berilgan savollarni berasiz. Ammo tez orada siz bilimga ega bo'lasiz va savollaringiz yanada noyob bo'ladi. Bu o'rganishning ajoyib usuli! Albatta, bu shunchaki kod bo'lagini nusxalash va "Endi bu bilan nima qilishim kerak?" Deb so'rash haqida emas. Siz uning tubiga kirishingiz kerak, tiqilib qolmasdan oldin muammoni hal qilish uchun qanday urinishlar qilganingizni tushuntiring. Aytgancha, ko‘p hollarda savolni yozma shaklda tuzayotganda, men javobni o‘zim topaman va faqat savolni yuborishdan oldin o‘zimga: “Bu yerda nima muammo bor, bu aql bovar qilmaydi”, deb aytishim kerak. . Ammo bu sodir bo'lmasa ham... Ishoning, o'ylangan savollar o'ylangan javoblarni o'ziga jalb qiladi. Boshqa odamlarning o'ylangan savollariga javob berish orqali ijtimoiy ne'matni qaytarishni unutmang. Savol berish va o'ylangan savollarga javob berish sizni yaxshi dasturchi qiladi. "Xo'sh, kitoblar haqida nima deyish mumkin? - deb so'rayapsiz. "Ular haqiqatan ham Google va Stack Overflow tufayli butunlay va qaytarib bo'lmaydigan darajada eskirganmi ?" Qachonki men yangi texnologiya bilan shug'ullansam, men jasur odam ekanligimga va barcha qiyinchiliklarni yolg'iz o'zim yengishimga ishonaman. Ammo bir soatlik ma'nosiz azob bir soatlik aql-idrokka o'tadi - va men kitob sotib olaman. Texnik kitoblar bugungi kunda ajoyib savdogardir. Agar elektron kitob uchun 40 dollar to‘lab, faqat bitta savolga tezda javob olsam, pulimni qaytarib bergan bo‘laman. Men yozuvchi hamkasblarimni xafa qilishni yomon ko'raman, lekin men hech qachon texnik kitobni boshidan oxirigacha o'qimaganman. Men muammom va uning yechimi yozilgan deb o'ylagan joydan boshlayman va uni qanday hal qilishni tushunmagunimcha o'qiyman. Shu sababdan hozirda shu tarzda o‘qiladigan kitoblar yozishga harakat qilyapman. Ushbu yondashuv "Sabrsizlar uchun" seriyasini keltirib chiqardi. Va shu nuqtada men to'xtashim kerak - 1500 so'zdan iborat tahririyat chegarasidan oshib ketdim. Yana shuni qo'shimcha qilamanki, yaxshi dasturchi bo'lish uchun bilimning ko'p darajalari borligini tan olishdan boshlang.
  1. Birinchidan, asosiy til tuzilmalarini o'zingizning ongingizga "torting", ya'ni ko'p sonli mashqlarni hal qilish orqali ularning bilimlarini avtomatlashtirishga olib boring.

  2. Sizni qiziqtirgan real loyihalar ustida ishlashni imkon qadar tezroq boshlang.

  3. Keyin savollar berishingiz va javob berishingiz mumkin bo'lgan hamjamiyatga qo'shiling.

  4. Buni qilganingizdan so'ng, siz intervyularda bilim va tajriba bilan gaplasha olasiz. Va siz o'ylab topilgan jumboqni hal qilishingiz muhim emas.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION