JavaRush /Java блогы /Random-KK /Кей Хорстман және оның жақсы Java бағдарламашысы болу тур...

Кей Хорстман және оның жақсы Java бағдарламашысы болу туралы 1500 сөзі

Топта жарияланған
Сіз Cay S. Horstmann есімін естіген боларсыз . Ол Java әлеміндегі өте танымал тұлға және біздің сүйікті тіліміз туралы көптеген кітаптардың авторы. Олардың арасында классикалық курс «Core Java» (орыс тілінде «Java. Professional's Library» екі томдық кітабында жарияланған ) және «Сабырсыздыққа арналған Java» (орыс тілінде жарияланған «Java SE» ) мазмұнының қысқаша мазмұны бар сериясы бар. 8. Кіріспе курс» және «Java SE 8. Негізгі курс» ). Ол «Java чемпионы» деген мақтаныш атағына ие. Ал мына сілтемеден оның ескі мектеп сайтын қызықты ақпаратпен таба аласыз.
Кей Хорстман және оның жақсы Java бағдарламашысы болу туралы 1500 сөзі - 1
Біз сіздердің назарларыңызға InformIT ресурсына арналған мақаланың аудармасын ұсынамыз , онда Кей бастаушы және жалғастырушы бағдарламашыларға өз мамандығын қалай жақсартуға болатыны туралы бірнеше кеңес береді. Бір күні InformIT-тің редакторлық директоры Дженнифер Бортел менен Java-ның жақсы бағдарламашысы болуға болатынын сұрады. Ол маған, шыдамсыздыққа арналған Java-ның авторы, бұл туралы бірдеңе білуі мүмкін деп ұсынды. «Оңай ештеңе жоқ, тек кітап сатып ал», - деп ойладым басында. Бірақ бұл жауап жұмыс істемеді, өйткені мен оны 1500 сөзге сыйғызуым керек, және осы уақытқа дейін олардың тек 62-сі бар * ( әрине, мақаланы аударған кезде біз сөздер санын сақтауға тырыспадық - шамамен аударма ). Жақында мен әзірлеуші ​​досымнан электрондық хат алдым, ол сұхбатта келесі code неге қауіпсіз емес екенін сұрады:
class ThreadSafeClass extends Thread
{
     private static int count = 0;

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

     public synchronized void decrement()
     {
         count--;
     }
}
Менің досым бұл мысалдағы code ағынды қауіпсіз деп шешті, мен онымен келісіп, екінші әдісте бір кілт сөздің жетіспейтінін staticжәне ол енгізілгеннен кейін кіру сынып нысанының кірістірілген құлпы арқылы басқарылатынын атап өттім. Мен сондай-ақ бұл сұхбаттың жақсы сұрағы емес екенін айттым, өйткені сізге жіп санауышы қажет болса, оны пайдаланған дұрыс AtomicInteger. Бірақ түн ортасында оянып кеттім де, ойланып қалдым: егер бұл сөз staticбір себеппен қалып қойған болса ше? Мүмкін, қандай да бір жасырын сұхбат беруші бұл мысалды үміткерлерді адастыру үшін әдейі құрылымдады ма? Сондықтан мен сұрақ қойған әзірлеушіге жауап жаздым және мен бұрын қателескен шығармын деп айттым: сұхбат сұрақтары деп аталатын параллель әлемде бұл сұраққа жауап: «Екінші әдіс нысанды құлыпты қамтиды». Осы жауаптан кейін жігіт менің YouTube арнасын басқаратынымды сұрады, онда мен сұхбат беру мәселелерін шешуді үйретемін. Өкінішке орай, мен мұны істемеймін. Мен информатикадан сабақ беремін және кітап жазамын, бірақ менің басты мақсатым «сұхбат мәселесін шешуді» жақсарту емес, студенттерімді жақсы бағдарламашы ету. Бір кездері Питер Норвиг ( жасанды интеллект саласындағы американдық ғалым, Google зерттеу директоры – шамамен транс. ) өз блогында тамаша мақала жазды. Ол сізге Java тілін 24 сағат немесе 21 күнде үйретуге уәде беретін кітаптар жай ғана күлкілі екенін айтты. Онымен келіспеу қиын: кез келген саланың маманы болу үшін 10 жыл, мүмкін 10 000 сағат қажет. Ал мамандар ақпаратты жаңадан басқаша өңдейтіні белгілі. Классикалық тәжірибеде тәжірибелі және жаңа бастаған шахматшыларға бірнеше секунд фигуралардың белгілі бір орналасуы бар шахмат тақтасын көрсетті, содан кейін оны жасырып, фигураларды сол күйінде орналастыруды сұрады. Жаңадан бастағандар тапсырманы өте жақсы орындай алмады, бірақ сарапшыларда қиындықтар болмады. Бірақ бір ғана маңызды шарт бойынша: фигуралардың орналасуы нақты ойынға сәйкес келуі керек . Егер бөліктер кездейсоқ орналастырылса, сарапшылар тақтаны қайта құруда жаңадан келгендерге қарағанда жақсы болмады.
Кей Хорстман және оның жақсы Java бағдарламашысы болу туралы 1500 сөзі - 2
Сондықтан мен хаттағы сұраққа дәл солай жауап бердім. Менің білімім сұхбат емес, нақты бағдарламалауда, сондықтан мен инстинктивті түрде жетіспейтін кілт сөзді қосып, «дұрыс емес» қорытынды жасадым. Мен не болғанын түсіндіргеннен кейін мен әлі де жұмысқа алынады деп ойлағым келеді және неге менің қоспамсыз мысал сияқты codeты ешқашан жазбаймын. Мүмкін, мұндай жауап оларды қанағаттандырмаса, мен олармен жұмыс істегім келмейтін шығар.
Енді, мен сертификаттау емтихандарына немесе сұхбатқа оқу сізді жақсы бағдарламашыға айналдырады деп ойламаймын. Бағдарламалау бойынша көптеген кітаптарды сатып алып, содан кейін оларды басынан аяғына дейін оқу да нәтиже бермейтініне сенімдімін (бірақ мен дәл осы кітаптардың авторы ретінде мұны мойындағым келмейді!). Шындығында, жақсы бағдарламашы болудың ең жақсы жолы - мүмкіндігінше көп бағдарламалық жасақтаманы жасау . Ара-тұра мен университетімде информатиканың кіріспе курсынан сабақ беремін. Бұл мен үйреткен ең қиын курс. Бұл магистратура курсынан да қиын. forМен алғаш рет жас профессор ретінде жұмыс істей бастағанда мен студенттерге лекцияларды мұқият оқыдым, оларда циклдар мен whileцикл арасындағы айырмашылық сияқты бағдарламалау мәселелерін мұқият қарастырдым do. Содан кейін мен студенттерге үш апталық төрт жобаны тағайындадым. Ал бұл пән барлық университеттерде басынан бері осылай оқытылып келеді. Менің бірінші әрекетімнен кейін екінші семестр курсының нұсқаушысы менің бұрынғы студенттерімнің көпшілігі бағдарламалаудың бірінші семестрінен кейін қарапайым циклдарды түсінбейтініне шағымданды. Ал мұндай нәтижелер де басынан бері орын алып келеді. «FizzBuzz немесе неге бағдарламашылар бағдарламалай алмайды» мақаласын есте сақтаңыз ба ? Шетел тілін үйренгенде, тапсырмалардың көпшілігі теория емес, жаттығулар мен тәжірибе болып табылады. Білімді санаға «итеру» өте маңызды. Бұрылыс нүктесі әр цикл немесе (француз тілінде) әрбір тұрақты емес етістік туралы белсенді түрде ойлаудың қажеті болмаған кезде келеді. Егер бұл сәт келсе, сіз келесі деңгейге өтуге дайынсыз. Және бұл идеяда революциялық ештеңе жоқ.
Кей Хорстман және оның жақсы Java бағдарламашысы болу туралы 1500 сөзі - 3
Барлығының кілті - жедел кері байланыс. Кейбір психологтар біз жылдам кері байланыс арқылы компьютерлік оқыту арқылы көп нәрсені жасай аламыз деп санайды. Мысалы, тағы бір классикалық экспериментте ұшқыш-тәжірибеден өтуге ұмтылатындар аспаптық панельге қайта-қайта қарап, ұшақтың қозғалысын сипаттау керек болатын жаттығу сабағынан өтті. Сонымен бірге олар мұны дұрыс немесе дұрыс орындамағаны туралы жылдам кері байланыс алды. Екі сағаттық дайындықтан кейін олар тәжірибелі ұшқыштардан басым түсті. Әрине, бұл оларды бірден нақты рейске жіберуге болатынын білдірмеді, бірақ олар аспап тақтасындағы әртүрлі және көптеген нөмірлерге алаңдамады. Сонымен, егер сіз Java тілін енді ғана үйрене бастасаңыз, тәжірибе жасау үшін көптеген жаттығулар жасау - ең жақсы идея. Кодыңыздың дұрыстығын автоматты түрде тексеретін көптеген веб-сайттар мен онлайн курстар бар. Gobbledygook емес, нақты қиындықтарды ұсынатын біреуін таңдаңыз. Ақыр соңында, сіз өзіңіздің санаңыздың іс жүзінде жазатын codeты жақсы меңгергенін қалайсыз. Сондықтан мен мияулау және үру әдістері бар жануарлар класы сияқты ойдан шығарылған жағдайларды пайдаланатын бағдарламалау мысалдарын онша ұнатпаймын. Біраз уақыттан кейін сіз бағдарламалау негіздерін меңгересіз. Келесі деңгейге өту үшін бірнеше жоба жазуға болады. Бірнеше жыл бұрын InformIT порталы тәжірибелі бағдарламашыларға сұрақ қойды: «Бағдарламашы үшін жаңа тілді үйренудің ең жақсы жолы қандай?» Егер олардың жауаптарын қорытындылайтын болсақ, келесі қорытынды жасауға болады: «бұл тілді ағымдағы жобаңызда қолданыңыз». Сонымен, сіз әрқашан іске асырғыңыз келген нәрсе туралы ойланыңыз және алға қарай жүріңіз. Жиырма жыл бұрын, Java әлі өте жас болған кезде,менің досым және бір кездері бірлескен автор болған Гари Корнелл маған қоңырау шалып: «Кэй, біз Java туралы кітап жазамыз» деді. Менің жауабым: ол да, мен де бұл Java туралы ештеңе білмейміз, ол жауап берді: «Сонымен не? Бізде кітап туралы келісім бар ». Ештеңе жоқ. Бізге асығуға тура келді, себебі басқа біреу «24 сағат ішінде өзіңізді Java манекасы болуға үйретіңіз» кітабының жақын арада шығарылатынын хабарлады... Менің ойымша, ол осылай аталды ( Кэй «Манекелер үшін» кітаптар сериясын күлдіреді. , «Муляж» сөзін «манелек» деп аударуға болады – аудармашының ескертпесі ). Жаңа тілді үйрену үшін мен жобалардан бастадым - зейнеткерлік жоспарлау үшін пайдаланушы интерфейсін жасайтын бағдарламаны жазу, содан кейін ауа райы сайтына қосылып, ауа райы туралы есепті көрсететін бағдарлама. Одан кейін - тас жолда көліктердің қозғалысын имитациялайтын бағдарлама. Ол кезде бұл бағдарламалар таңқаларлық еді!java.awtjava.netжәне жіптер ( threads). Мен құжаттамада айтылған нәрсені ғана емес, бұл жұмысты қалай жасау керектігін үйренуім керек болды. Ол кезде бұл мүлдем басқа нәрселер еді. Сондықтан Core Java [1] хит болды: ол манекендерге арналмаған.
Кей Хорстман және оның жақсы Java бағдарламашысы болу туралы 1500 сөзі - 4
Ол кезде Java тілін үйрену әлдеқайда қиын болатын. Бізде Stack Overflow сияқты сайттар болған жоқ ( және бізде JavaRush да болған жоқ - редактордың ескертпесі ). Осы кезде мен сіздің бағдарламалау «шеберлігіңізді» жақсарту үшін келесі кеңестерді тұжырымдауға көшемін. Сонымен, сіз өзіңіздің жобаңызбен жұмыс істегенде, сіз бір жерде тұрып қалуыңыз мүмкін. Бұл жағдайда мамандандырылған форумға барып, жауап табуға тырысыңыз. Маған сеніңіз, бұл тамаша идея . Біріншіден, сіз бұрын бірнеше рет қойылған сұрақтарды қоясыз. Бірақ көп ұзамай сіз білім аласыз және сұрақтарыңыз ерекше болады. Бұл үйренудің таңғажайып тәсілі! Әрине, бұл жай ғана codeтың бір бөлігін көшіріп қою және: «Онымен қазір не істеуім керек?» Деген сұрақ емес. Сіз оның түбіне жетуіңіз керек, сіз кептеліп қалғанға дейін мәселені шешу үшін қандай әрекеттер жасағаныңызды түсіндіріп беріңіз. Айтпақшы, көп жағдайда мен сұрақты жазбаша түрде құрастырған кезде мен жауапты өзім табамын және мен сұрақты жібермес бұрын өзіме: «Бұл жерде не мәселе бар, бұл ақылсыз» деп айту керек. . Бірақ бұл орын алмаса да... Маған сеніңіз, ойластырылған сұрақтар ойластырылған жауаптарды тартады. Басқа адамдардың ойластырылған сұрақтарына жауап беру арқылы әлеуметтік жақсылықты қайтаруды ұмытпаңыз. Сұрақ қою және ойластырылған сұрақтарға жауап беру сізді жақсы бағдарламашы етеді. «Сонымен, кітаптар ше? - сен сұрадың. «Олар шынымен Google және Stack Overflow арқасында толығымен және қайтымсыз ескірді ме ?» Мен жаңа технологияны шарлаған сайын, мен батыл адаммын және барлық қиындықтарды жалғыз жеңе алатыныма сенемін. Бірақ бір сағаттық мағынасыз азап бір сағаттық ақыл-ойға ауысады - мен кітап сатып аламын. Техникалық кітаптар бұл күндері таңқаларлық мәміле. Егер мен электронды кітап үшін 40 доллар төлеп, бір ғана сұраққа тез жауап алсам, мен ақшамды қайтарып қойғанмын. Мен әріптестерімнің көңілін қалдыруды жек көремін, бірақ мен ешқашан техникалық кітапты басынан аяғына дейін оқыған емеспін. Мен өз мәселем мен оның шешімі жазылған жерден бастаймын және оны шешу жолын түсінгенше оқимын. Осы себепті мен қазір осылай оқуға болатын кітаптар жазуға тырысамын. Бұл тәсіл «Шыдамсыздар үшін» сериясын тудырды. Осы кезде мен тоқтауым керек - мен 1500 сөзден тұратын редакциялық шектеуден асып кеттім. Жақсы бағдарламашы болу үшін білімнің көптеген деңгейлері бар екенін мойындаудан бастаңыз.
  1. Біріншіден, негізгі тілдік құрылымдарды өзіңіздің санаңызға «тартыңыз», яғни көптеген жаттығуларды шешу арқылы олардың білімін автоматтандыруға әкеліңіз.

  2. Сізді қызықтыратын нақты жобаларды мүмкіндігінше тезірек бастаңыз.

  3. Содан кейін сұрақтар қойып, жауап беретін қауымдастыққа қосылыңыз.

  4. Мұны істегеннен кейін сіз сұхбатта білім мен тәжірибемен сөйлей аласыз. Ойдан шығарылған басқатырғышты шешкеніңіз де маңызды емес.
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION