JavaRush /Java Blogu /Random-AZ /Kay Horstmann və onun daha yaxşı Java proqramçısı olmaq h...

Kay Horstmann və onun daha yaxşı Java proqramçısı olmaq haqqında 1500 sözləri

Qrupda dərc edilmişdir
Çox güman ki, Cay S. Horstmann adını artıq eşitmisiniz . O, Java dünyasında kifayət qədər görkəmli şəxsdir və sevimli dilimiz haqqında bir çox kitabın müəllifidir. Onların arasında klassik “Core Java” kursu (rus dilində ikicildlik “Java. Peşəkar Kitabxana” kitabında nəşr olunub) və “Səbirsizlər üçün Java”nın (rus dilində nəşr olunan “Java SE” ) mahiyyətinin qısa xülasəsi olan silsilə var. 8. Giriş kursu”“Java SE 8. Əsas kurs” ). O, “Java Çempionu” fəxri adını daşıyır. Və bu linkdə onun köhnə məktəb vebsaytını maraqlı məlumatlarla tapa bilərsiniz.
Kay Horstmann və onun daha yaxşı Java proqramçısı olmaq haqqında 1500 sözləri - 1
İnformIT resursu üçün məqalənin tərcüməsini diqqətinizə çatdırırıq , burada Kay yeni başlayan və davam edən proqramçılara öz peşələrində daha yaxşı olmaq üçün bir neçə məsləhət verir. Bir gün InformIT-in redaktor direktoru Jennifer Bortel məndən daha yaxşı Java proqramçısı olmaq üçün bir sıra yazmağımı istədi. O, mənə, “Səbirsizlər üçün əsas Java” kitabının müəllifi, bu barədə nəsə bilməyimi təklif etdi. “Asan heç nə yoxdur, sadəcə kitab al” deyə düşündüm. Ancaq bu cavab işləmədi, çünki mən onu 1500 sözə sığdırmalıyam və bu vaxta qədər onlardan yalnız 62-si var * ( əlbəttə ki, məqaləni tərcümə edərkən sözlərin sayını saxlamağa çalışmadıq - təqribən tərcümə ). Bu yaxınlarda bir tərtibatçı dostumdan bir e-məktub aldım və ondan müsahibə zamanı soruşdular ki, aşağıdakı kodun niyə mövzu təhlükəsiz olmadığı soruşuldu:
class ThreadSafeClass extends Thread
{
     private static int count = 0;

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

     public synchronized void decrement()
     {
         count--;
     }
}
Dostum bu misaldakı kodun iplə təhlükəsiz olduğuna qərar verdi və mən onunla razılaşdım və qeyd etdim ki, ikinci üsulda bir açar söz çatışmadı staticvə o, daxil edildikdən sonra giriş sinif obyektinin daxili kilidi ilə idarə olunurdu. Mən də dedim ki, bu yaxşı müsahibə sualı deyil, çünki sizə mövzu sayğacı lazımdırsa, istifadə etmək daha yaxşıdır AtomicInteger. Amma sonra gecənin bir yarısı yuxudan oyandım və fikirləşdim: bu söz hansısa staticsəbəbdən kənarda qalıbsa, necə? Bəlkə hansısa hiyləgər müsahibə götürən şəxs bu nümunəni bilərəkdən namizədləri çaşdıracaq şəkildə strukturlaşdırıb? Beləliklə, sualı verən tərtibatçıya cavab yazdım və dedim ki, yəqin ki, əvvəllər səhv etmişəm: Müsahibə Sualları adlı paralel kainatda bu sualın cavabı belədir: “İkinci üsul obyekt kilidini ehtiva edir.” Bu cavabdan sonra oğlan soruşdu ki, mən bu cür müsahibə problemləri ilə necə məşğul olmağı öyrətdiyim YouTube kanalı işlədirəm. Təəssüf ki, mən bunu etmirəm. Mən kompüter elmlərini öyrədirəm və kitablar yazıram, amma əsas məqsədim daha yaxşı “müsahibə problemi həll edənlər” etmək deyil, tələbələrimi daha yaxşı proqramçılar etməkdir. Bir vaxtlar Piter Norviq ( süni intellekt sahəsində amerikalı alim, Google-un tədqiqat direktoru – təqribən trans. ) öz bloqunda gözəl məqalə yazıb. O, sizə Java dilini 24 saat və ya 21 gün ərzində öyrədəcəyini vəd edən kitabların sadəcə gülünc olduğunu müdafiə etdi. Onunla razılaşmamaq çətindir: hər hansı bir sahədə mütəxəssis olmaq üçün 10 il, bəlkə də 10 000 saat vaxt lazımdır. Və hamıya məlumdur ki, ekspertlər informasiyanı yeni başlayanlardan fərqli şəkildə emal edirlər. Klassik eksperimentdə təcrübəli və təcrübəsiz şahmatçılara fiqurların müəyyən düzülüşü ilə bir neçə saniyəlik şahmat taxtası göstərilib, sonra onu gizlədib fiqurları olduğu kimi yerləşdirməyi xahiş ediblər. Yeni başlayanlar tapşırığın öhdəsindən çox yaxşı gəlmədi, lakin mütəxəssislər heç bir problem yaşamadılar. Ancaq yalnız bir vacib şərtlə: parçaların düzülüşü real oyuna uyğun olmalıdır . Parçalar təsadüfi şəkildə yerləşdirilsəydi, mütəxəssislər lövhənin yenidən qurulmasında təcrübəsizlərdən daha yaxşı deyildilər.
Kay Horstmann və onun daha yaxşı Java proqramçısı olmaq haqqında 1500 sözləri - 2
Ona görə də məktubdakı suala elə cavab verdim. Mənim keçmişim müsahibə deyil, faktiki proqramlaşdırma ilə bağlıdır, ona görə də instinktiv olaraq çatışmayan açar sözü əlavə etdim və “yanlış” nəticə çıxardım. Düşünmək istərdim ki, nə baş verdiyini və niyə əlavə etmədən heç vaxt misal kimi kod yazmayacağımı izah etdikdən sonra hələ də işə götürüləcəkdim. Bəlkə də belə bir cavab onları qane etməsəydi, mən özüm də onlarla işləmək istəməzdim.
İndi düşünmürəm ki, sertifikat imtahanları və ya müsahibələr üçün oxumaq sizi daha yaxşı proqramçıya çevirəcək. Mən də əminəm ki, proqramlaşdırma üzrə çoxlu sayda kitab alıb, sonra onları başdan ayağa oxumaq da nəticə verməyəcək (baxmayaraq ki, mən bu kitabların müəllifi kimi bunu etiraf etmək istəməzdim!). Əslində, daha yaxşı bir proqramçı olmaq üçün həqiqətən yaxşı bir yol, mümkün qədər çox proqram yaratmaqdır . Zaman-zaman universitetimdə informatika üzrə giriş kursunu tədris edirəm. Bu, indiyə qədər öyrətdiyim ən çətin kursdur. Bu, magistratura kursundan daha çətindir. Gənc professor kimi ilk dəfə işə başlayanda tələbələrə mühazirələri diqqətlə oxudum, burada looplar forwhilelooplar arasındakı fərq kimi proqramlaşdırma məsələlərini ləyaqətlə əhatə etdim do. Sonra tələbələrə üç həftəlik dörd layihə təyin etdim. Və bu fənn yaranandan bəri bütün universitetlərdə belə tədris olunur. İlk cəhdimdən sonra ikinci semestr kursunun müəllimi şikayət etdi ki, mənim keçmiş tələbələrimin əksəriyyəti proqramlaşdırmanın birinci semestrindən sonra sadə ilmələri belə başa düşmürlər. Və belə nəticələr də zamanın əvvəlindən baş verib. “FizzBuzz və ya niyə proqramçılar proqramlaşdıra bilmirlər” məqaləsini xatırlayın ? Xarici dil öyrəndiyiniz zaman əksər tapşırıqlar nəzəriyyə deyil, məşqlər və təcrübədir. Bilikləri şüuraltına “itələmək” son dərəcə vacibdir. Dönüş nöqtəsi, hər bir dövrə və ya (Fransız dilində) hər bir qeyri-müntəzəm fel haqqında artıq fəal şəkildə düşünmək məcburiyyətində qalmadığınız zaman gəlir. Bu an gəlibsə, o zaman növbəti səviyyəyə keçməyə hazırsınız. Və bu fikirdə inqilabi heç nə yoxdur.
Kay Horstmann və onun daha yaxşı Java proqramçısı olmaq haqqında 1500 sözləri - 3
Hər şeyin açarı ani rəydir. Bəzi psixoloqlar hesab edir ki, biz ani geribildirimlə kompüter əsaslı öyrənmə ilə daha çox şey edə bilərik. Məsələn, başqa bir klassik eksperimentdə pilot olmaq istəyən stajçılardan alətlər panelinə təkrar-təkrar baxmaq və təyyarənin hərəkətini təsvir etmək tələb olunan bir məşq keçdi. Eyni zamanda, onlar bunu düzgün edib etmədiklərini göstərən ani rəy aldılar. İki saatlıq məşqdən sonra onlar təcrübəli pilotlardan üstün olublar. Əlbəttə ki, bu, onların dərhal həqiqi uçuşa göndərilə biləcəyi demək deyildi, lakin alətlər panelindəki müxtəlif və çoxsaylı siferblatlardan artıq əsəbi deyildilər. Beləliklə, əgər siz Java dilini yeni öyrənməyə başlayırsınızsa, təcrübə üçün çoxlu məşq etmək ən yaxşı fikirdir. Kodunuzun düzgünlüyünü avtomatik yoxlayan çoxlu sayda vebsayt və onlayn kurslar var. Gobbledygook əvəzinə real çətinliklər təklif edən birini seçin. Axı siz şüuraltınızın praktikada yazacağınız kodda yaxşı olmasını istəyirsiniz. Buna görə də mən uydurma vəziyyətlərdən istifadə edən proqramlaşdırma nümunələrinə, məsələn, miyavlayan və qabıqlayan üsullarla heyvan sinifləri kimi çox da həvəsli deyiləm. Bir müddət sonra siz proqramlaşdırmanın əsaslarına yiyələnəcəksiniz. Növbəti səviyyəyə keçmək üçün bir neçə layihə yaza bilərsiniz. Bir neçə il əvvəl InformIT portalı təcrübəli proqramçılara belə bir sual verdi: “Bir proqramçı üçün yeni dil öyrənməyin ən yaxşı yolu nədir?” Cavablarını ümumiləşdirsək, aşağıdakı nəticəyə gələ bilərik: "cari layihənizdə bu dildən istifadə edin." Beləliklə, həmişə həyata keçirmək istədiyinizi düşünün - və davam edin. İyirmi il əvvəl, Java hələ çox gənc olandadostum və bir zamanlar həmmüəllif Gary Cornell mənə zəng edərək dedi: “Kay, biz Java haqqında kitab yazacağıq”. Cavabım bu oldu ki, nə o, nə də mən bu Java haqqında həqiqətən heç nə bilmirik və o, cavab verdi: “Bəs nə? Artıq kitab müqaviləmiz var”. Etməli bir şey yoxdur. Biz tələsmək məcburiyyətindəydik, çünki başqası “24 saat ərzində özünü Java dummisi olmağı öyrət” kitabının tezliklə buraxılacağını elan etdi... Məncə, buna belə bir ad qoyulmuşdu ( Kay “Butaforlar üçün” kitablar seriyasını ələ salır. - "dummies üçün" "Dummy" sözü "dummy" kimi tərcümə edilə bilər - tərcüməçinin qeydi ). Yeni bir dil öyrənmək üçün layihələrlə başladım - pensiya planlaması üçün istifadəçi interfeysi yaradan proqram, sonra isə hava saytına qoşulan və hava hesabatını göstərən proqram yazmaq. Ondan sonra - magistral yolda avtomobillərin hərəkətini simulyasiya edən bir proqram. O zaman bu proqramlar sadəcə heyrətamiz idi!java.awtjava.netvə iplər ( threads). Mən sənədlərdə deyilənləri deyil, əslində bu işi necə edəcəyimi öyrənməli idim. O vaxt bunlar tamam başqa şeylər idi. Buna görə də Core Java [1] hit oldu: bu dummies üçün deyildi.
Kay Horstmann və onun daha yaxşı Java proqramçısı olmaq haqqında 1500 sözü - 4
O dövrdə Java dilini öyrənmək çox çətin idi. Stack Overflow kimi saytlarımız yox idi ( və JavaRush da yox idi - redaktorun qeydi ). Bu nöqtədə, proqramlaşdırma "bacarıqınızı" təkmilləşdirmək üçün aşağıdakı tövsiyələri formalaşdırmağa davam edirəm. Beləliklə, öz layihəniz üzərində işləyərkən, mütləq bir yerdə ilişib qalacaqsınız. Bu vəziyyətdə, ixtisaslaşmış bir foruma gedin və cavab tapmağa çalışın. İnanın, bu əla fikirdir . Birincisi, əvvəllər dəfələrlə soruşulan sualları verəcəksiniz. Ancaq tezliklə bilik əldə edəcəksiniz və suallarınız daha unikal olacaq. Bu öyrənmək üçün heyrətamiz bir yoldur! Əlbəttə ki, bu, sadəcə kodun bir parçasını kopyalayıb yapışdırıb soruşmaqdan getmir: “İndi bununla nə etməliyəm?” Bunun altına girməlisiniz, ilişib qalmazdan əvvəl problemi həll etmək üçün hansı cəhdləri etdiyinizi izah edin. Yeri gəlmişkən, əksər hallarda sualı yazılı formada tərtib edərkən cavabı özüm tapıram və etməliyəm ki, sualı göndərməzdən əvvəl öz-özümə: “Burada problem nədir, bu, ağılsızlıqdır” deməkdən ibarətdir. . Amma bu baş verməsə belə... İnanın, düşünülmüş suallar düşünülmüş cavabları özünə cəlb edir. Sadəcə digər insanların düşüncəli suallarına cavab verməklə sosial lütfü qaytarmağı unutmayın. Həm sual vermək, həm də düşünülmüş suallara cavab vermək sizi daha yaxşı proqramçı edir. “Yaxşı, bəs kitablar? - soruşursan. "Onlar həqiqətən GoogleStack Overflow sayəsində tamamilə və dönməz şəkildə köhnəlibmi ?" Hər dəfə yeni bir texnologiya ilə məşğul olsam, cəsarətli bir insan olduğuma və bütün çətinliklərin öhdəsindən tək gələ biləcəyimə inanıram. Amma bir saat mənasız işgəncə yerini bir saatlıq ağlı başından alır - mən də kitab alıram. Texniki kitablar bu günlərdə heyrətamiz bir bazarlıqdır. Elektron kitab üçün 40 dollar ödəsəm və yalnız bir suala tez cavab alarsam, artıq pulumu geri qaytarmışam. Mən yazıçı yoldaşlarımı məyus etməyə nifrət edirəm, amma əvvəldən axıra qədər heç vaxt texniki kitab oxumamışam. Problemimin və onun həllinin yazıldığını düşündüyüm yerdən başlayıram və onu necə həll edəcəyimi başa düşənə qədər oxuyuram. Bu səbəbdən hazırda bu şəkildə oxuna bilən kitablar yazmağa çalışıram. Bu yanaşma “Səbirsizlər üçün” serialının yaranmasına səbəb oldu. Və bu məqamda dayanmalıyam - redaksiya limitini 1500 sözlə keçdim. Onu da əlavə edim ki, daha yaxşı proqramçı olmaq üçün bir çox bilik səviyyələrinin olduğunu qəbul etməklə başlayın.
  1. Birincisi, əsas dil strukturlarını bilinçaltınıza “çəkin”, yəni çoxlu sayda məşq həll etməklə onların biliklərini avtomatlaşdırın.

  2. Sizi maraqlandıran real layihələr üzərində işləməyə mümkün qədər tez başlayın.

  3. Sonra suallar verə və cavab verə biləcəyiniz icmaya qoşulun.

  4. Bunu etdikdən sonra müsahibələrdə bilik və təcrübə ilə danışa biləcəksiniz. Uydurulmuş tapmacanı həll edib-etməməyinin heç bir əhəmiyyəti yoxdur.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION