JavaRush /Java blogi /Random-UZ /Yangi boshlanuvchilar uchun eng yaxshi 10 ta dasturlash k...
Max Stern
Daraja
Нижний Новгород

Yangi boshlanuvchilar uchun eng yaxshi 10 ta dasturlash kitoblari

Guruhda nashr etilgan
Mening bo'lajak Javaistlar uchun ko'plab texnik intervyular o'tkazgan hamkasbim bor. Bir marta men undan til bilimi taxminan teng bo'lgan odamlarni tanlashda haqiqiy tajribasi bo'lmagan abituriyentni yollash qaroriga nima ta'sir qilishini so'radim. Bozordagi vaziyatni hisobga olgan holda, menimcha, bu savol sizning ko'plaringiz uchun dolzarbdir. Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 1"Texnologiyaga ishtiyoq, muammoni hal qilishning eng yaxshi variantini tanlash qobiliyati, umumiy IT bilimi, ishda uni nima kutayotganini tushunish" - bu uning javobi edi. Men bir marta maqolada yangi boshlanuvchilar uchun Java tilini o'rganishga yordam bergan dasturlash kitoblarini tasvirlab berdim. Ushbu maqolada men yangi boshlanuvchi dasturchiga IT bilimini, kelajakdagi ishni tushunishga yordam beradigan, shuningdek, eng yaxshi echimni tanlash vazifasini soddalashtiradigan nashrlarga e'tibor qarataman. Ya'ni, ishga kirish va boshidanoq unda imkon qadar yaxshi ishlash. Men ushbu ro'yxatni o'z xohishimga ko'ra tuzdim, shuning uchun u biroz sub'ektiv bo'lishi mumkin. Talabalar uchun klassik dasturlash darsliklari va barcha avlod dasturchilari uchun ma'lumotnomalar mavjud.

Kod va mahsuldorlikni oshirish

Faqat kod yozishning o'zi etarli emas. Uni yaxshi yozish, uni takomillashtirish, shuningdek, umuman olganda qanday rivojlanganligini tushunish muhimdir. Boshlang'ich dasturchilar va boshqalar uchun quyidagi kitoblar bir necha avlod mutaxassislariga dasturiy ta'minotni ishlab chiqishning murakkab texnologik jarayonini engishga yordam berdi.

Pragmatist dasturchi. Ustaga sayohatchi (Endryu Xant, Devid Tomas)

Asl sarlavha: Endryu Xant va Devid Tomasning “Yo'lchidan ustagacha bo'lgan dasturchi” Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 2. Agar siz ushbu kitobni o'qimagan bo'lsangiz, forumlarda va maxsus manbalarda undan iqtiboslarga bir necha bor duch kelgan bo'lishingiz mumkin. Bu kitobdagi pragmatist dasturchi obrazi shunchalik aniq va ideallashtirilganki... qanchalik paradoksal tuyulmasin, uni romantik deyish mumkin. Shunga qaramay, kitobdagi maslahatlar, yoshi katta bo'lishiga qaramay, amaliy va dolzarbdir. Men dasturlash kitoblari dunyosida "Pragmatist dasturchi" ni nima bilan solishtirishni bilmayman. Bu dunyoning eng yaqin analoglari - "Eski Ahd" yoki ba'zi bir super-salqin ovqat kitobi. "Pragmatikada" hamma narsa juda aniq va amalda maksimal darajada qo'llanilishi mumkin. Ba'zida bu oddiylik darajasiga etadi (masalan, samarali muloqot bo'limida biznes odob-axloq qoidalarining asosiy qoidalari mavjud), lekin ba'zida kitobdagi maslahatlar o'rnini bosa olmaydi, ayniqsa yangi boshlovchining sabrli va ehtiyotkor murabbiyi bo'lmasa. Bular kodni takrorlash, prototiplash, baholash bo'yicha maslahatlar. Yoki mukammal dastur yaratishning iloji yo'qligi haqida eslatma. Shuningdek, foydali texnik nuqtalar mavjud, masalan, disk raskadrovka kodlari, birlik testlari yoki algoritmlar tezligi ... qisqasi, dasturchi sifatida martaba tayyorlash uchun nima qilish kerak.

Refaktoring Mavjud kodni takomillashtirish (Martin Fauler)

Asl sarlavha: Refaktoring: Mavjud kod dizaynini takomillashtirish, Martin Fauler, Kent Bek bilan, Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 3agar siz kimdandir martabani oshirish bo'yicha barcha davrlardagi eng yaxshi dasturlash kitoblarini ro'yxatga olishni so'rasangiz, kimdir "Refaktoring" ni eslatishi aniq. Kimdir bu kitobning eskirganligini aytishi mumkin va qaysidir ma'noda ular to'g'ri bo'ladi. U refaktoring hali umumbashariy qoida bo'lmagan davrda yozilgan va undagi ba'zi haqiqatlar hozirgi dasturchilarga ayon. Shunga qaramay, unda refaktoring usullari shunchalik yaxshi va batafsil tasvirlangan (ba'zi joylarda, hattoki, aytmoqchimanki, har bir yangi boshlovchi unda foydali narsani topadi. Kitobning yangilangan nashri bir necha yil oldin chiqdi va yangi texnikalar qo'shildi, bu juda yaxshi. Bundan tashqari, ushbu kitobdagi misollar Java tilida yozilgan. Men aytib o'tishim mumkin bo'lgan yagona kamchilik - bu aniqlik. Shunga qaramay, men kitobni tavsiya qilaman.

Toza kod (Robert Martin)

Asl sarlavha "Clean Code: Agile Software Craftsmanship" qo'llanmasi Robert C. Martin Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 4Bu kitob avvalgisidan yangiroq bo'lsa ham, dasturlash bo'yicha kitoblarning klassikasiga aylandi. Robert Martin ba'zan global dasturlash hamjamiyatida "Bob amaki" deb nomlanadi, Agile manifestining mualliflaridan biri, shuningdek, zamonaviy "sof" dasturlashning ba'zi tamoyillari, masalan, SOLID. Kitobning asosiy leytmotivlaridan birini ko'rib chiqish mumkin ... hamdardlik yoki sizning kodingiz bilan ishlashga majbur bo'lgan har bir kishiga (shu jumladan kelajakda o'zingizga) nisbatan yaxshi munosabat. "Toza kod" qoidalarining aksariyati ushbu oddiy printsipga va sog'lom fikrga asoslanadi. Ko'pgina qoidalar va maslahatlar juda to'g'ri ko'rinadi, ular sizning boshingizda intuitiv ravishda aylanadi, ammo ularni aniq shakllantirish oson emas. Biroq, muallifning ba'zi fikrlari bilan bahslashish mumkin: u ba'zan juda kategorik. Misol uchun, u yaxshi kod izohga muhtoj emasligini yozadi. Shunga qaramay, kitobni o'qish kerak.

Eski kod bilan samarali ishlash (Maykl Feathers)

Asl sarlavha Maykl Feathers tomonidan "Legacy Code bilan samarali ishlash" Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 5 taHayot sizni bunga tayyorlamadi... Yo'q, haqiqatan ham: agar siz endigina o'rganayotgan bo'lsangiz, eski kod bazalari bilan ishlash qanchalik og'riqli ekanligini tasavvur qila olmaysiz. Bill Geytsning bobosi tomonidan yozilgan bo'lishi mumkin. Bu kod ko'pincha siz o'rganganingizdan butunlay boshqacha tarzda yoziladi va shu qadar yomon hujjatlashtirilganki, ba'zida uning muallifini topishni xohlaysiz va... Afsuski: Java dasturchisining katta loyihalardagi hayoti ko'pincha eski yordam bilan bog'liq. Ushbu kitob qadimiy kod bilan ishlashning texnik jihatlarida yordam berishi mumkin, ammo u taqdiringiz bilan kelishishga ham yordam beradi. Ha, men jiddiyman. Agar siz yirik loyihalarga ega bo'lgan autsorsing yoki mahsulot kompaniyasiga qat'iy e'tibor qaratsangiz, ushbu kitob siz uchun foydali bo'ladi.

Avval bosh. Dizayn naqshlari (Erik Friman, Bert Beyts, Keti Sierra, Elizabet Robson)

Asl sarlavha Bosh birinchi dizayn naqshlari: Erik Friman, Bert Beyts, Keti Sierra, Elizabet Robson tomonidan yaratilgan aqlga mos qo'llanma Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 6 taDizayn naqshlari yaxshi shakldagi mantiqiy qoidalar bo'lib, agar siz ularni vaqt o'tishi bilan o'rganmasangiz, xayolingizga keladi ( yoki yo'q ...) va agar siz ularga imkon qadar ertaroq qarashni boshlasangiz, tom ma'noda yangi dasturchining super kuchiga aylanadi. Ha, dastlab nisbatan murakkab shaxsiy loyiha bilan o'ynash va uni o'zingiz kichik vazifalarga ajratishga harakat qilish foydalidir ... va oxir-oqibat xuddi shu naqshni toping. Biroq, ish haqida gap ketganda, tajribalar uchun har doim ham vaqt etarli emas. Amaliyotni olganimda, men naqshlar haqida juda oz narsa bilardim: JavaRush-da o'qiyotganimda, men kerak bo'lganda buni aniqlab beraman deb o'ylab, barcha zavodlarni, singllarni, in'ektsiyalarni, qaramliklarni o'tkazib yubordim. Biroq, buni juda tez aniqlash kerak edi va bu "Birinchi bosh. Bunda menga Design Patterns” yordam berdi. Osonlik bilan yozilgan, illyustratsiyalar va hazil bilan to'ldirilgan... Menimcha, "dizayn naqshlari" mavzusi uchun taqdimot juda muhim: u juda zerikarli tarzda taqdim etilishi mumkin yoki u Head First filmidagi kabi taqdim etilishi mumkin. "Toza kod" va/yoki "Refaktoring" ga ajoyib qo'shimcha!

Kompyuter arxitekturasi va umumiy kompyuter fanlari

Bo'lajak dasturchi uchun kompyuter arxitekturasini tushunish, operatsion tizimlar qanday tuzilganligi va ma'lumotlar bazalari qanday tuzilganligini bilish qanchalik muhim? Bu bilim sizga ishingizda foydali bo'lishi haqiqat emas. Lekin ular, albatta, IT sohasiga va IT bilimlariga bo'lgan ishtiyoqingizni ko'rsatishga yordam beradi. Va eng muhimi: agar siz hamma narsa qanday ishlashini bilsangiz, bu muammolarni yaxshiroq hal qilishga yordam beradi. Ma'lumot 100%. Shunday qilib, sizga yordam beradigan yana ikkita kitob.

Kod (Charlz Petzold)

Asl sarlavha Kod: Kompyuter texnikasi va dasturiy ta'minotining yashirin tili Charlz Petzold Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 7 ta"Kod"ning birinchi nashri dunyoni 2000-yillarning boshlarida ko'rgan, lekin aslida u avvalroq yoki keyinroq paydo bo'lishi mumkin edi - va hali ham dolzarb bo'lib qolar edi. Gap shundaki, ushbu kitobda kompyuterning ishlashi juda va juda past darajada tushuntirilgan, bu juda nollar va birlar qanday ishlashidan boshlab, eng birinchi texnik misol - eng oddiy deb hisoblanishi mumkin bo'lgan chiroq sxemasi. -bit kompyuter... Yo'q, kitobdagi hamma narsa juda ibtidoiy deb o'ylamaysiz. Aslida esa buning aksi... Bunda kompyuterlarning sxemalari, buyruqlari, xotira va operatsion tizimlarning ishlashi o‘z mohiyatiga ko‘ra tasvirlangan. Ehtimol, uni o'qiganimdan keyin men kompyuterlar qanday ishlashini tushundim. Protsessorning arxitekturasi va ko'rsatmalar to'plami o'zgarib, xotira o'tkazish qobiliyati ortib borayotgan bo'lsa ham, mohiyatan kompyuterlar aynan bir xil ishlaydi. Java dasturchisiga bu bilim kerakmi? Juda kam odam ularga bevosita o'z ishlarida kerak bo'ladi. Ammo bilvosita, menga ko'pincha bularning barchasi qanday ishlashini tushunganim ishimda yordam berdi.

Kompyuter faniga kirish (Glenn Bruokshire, Dennis Brilov)

Asl sarlavha Kompyuter fanlari: Glen Bruksher va Dennis Braylouning umumiy ko'rinishi Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 8 taBu kitob menga universitetda, informatika asoslarini o'rganayotganimda keldi. Faqat men oltinchi nashrning tarjimasini oldim va hozirda 13-nashri joriy. Kitob kompyuter fanining asosiy kursi bo‘lib, uzoq yillar davomida AQSh va boshqa mamlakatlar universitetlarida o‘qitilib kelinmoqda. Undagi materialning qamrovi juda keng: mashina arxitekturasi, sanoq tizimlari, ma'lumotlarni qayta ishlash, operatsion tizimlar, ma'lumotlar bazasini qurish tamoyillari, ma'lumotlar tuzilmalari, fayl tuzilmalari va boshqalar. Kitobning barcha bo'limlari bir xil darajada yaxshi yozilgan emas. Misol uchun, bir vaqtlar dizayn usullari va ma'lumotlar bazalari haqidagi bo'limlar meni juda chalkashtirib yubordi, lekin sanoq tizimlari, bitli hisoblar, shaxsiy kompyuter arxitekturasi va ma'lumotlar tuzilmalari haqidagi bo'limlar menga juda yoqdi. Kitobning eng zo'r tomoni - bu kalitlar bilan mashqlarning ko'pligi. Talabalardan tashqari, bunday kitob bo'shliqlarni to'ldirish va umuman kompyuter fanlari haqida tasavvurga ega bo'lish uchun birinchi navbatda texnik ma'lumotga ega bo'lmagan o'zini o'zi o'qitgan odamlarga kerak bo'lishi mumkin.

Algoritmlar va ma'lumotlar tuzilmalari. Va yana bir hujum!

Yuqori darajadagi zamonaviy dasturlash qanchalik rivojlanganligini hisobga olsak, algoritmlarni bilish ahamiyatsiz bo'lib qoldi. Endi kerakli kutubxonadan foydalanish va massivni qanday saralash haqida o'ylamaslik kifoya. Biroq, siz hali ham ishda va bir necha marta miyangizni chayqashingiz kerak bo'ladi. Ajam dasturchiga qo'yiladigan talablardan "eng yaxshi yechimni tanlash qobiliyati" bandini eslaysizmi? Shunday qilib, kim nima deyishidan qat'i nazar, men yaxshi algoritmik treningni optimal echimlarni topish uchun ajoyib yangilanish deb bilaman. Shuning uchun keyingi ikkita kitob ular haqida. Algoritmlar haqida.

Biz algoritmlarni o'zgartiramiz. Dasturchilar va qiziquvchan Aditya Bhargava uchun tasvirlangan qo'llanma

Asl sarlavha: Grokking algoritmlari: dasturchilar va boshqa qiziquvchan odamlar uchun tasvirlangan qoʻllanma Aditya Y. Bhargava Yangi boshlanuvchilar uchun dasturlash bo'yicha eng yaxshi 10 ta kitob - 9 tamuallifning oʻzi kitobning boshida algoritmlar unga darrov kelmaganini va u “Grokking Algoritmlari”ni shunday yozishga harakat qilganini yozadi. o'qish oson bo'lar edi. U yangi boshlanuvchi dasturchilar, ya'ni "salom, dunyo" deb yoza oladigan va int, string, loop, filial va massiv nima ekanligini biladiganlar uchun mo'ljallangan. Xo'sh, u massivni ekranda ko'rsatishi mumkin. Matematika bo'yicha talab qilinadigan bilimlar taxminan o'rta maktabning 6-7-sinflari darajasida hech qanday chalkashliksiz. Va bu kitobning birinchi jiddiy plyusi. Bu mavzu bo'yicha ko'plab nashrlar kabi o'quvchini matematika talabasi sifatida tasavvur qilishga urinmaydi. Ya'ni, agar siz matematikadan, algoritmlardan qo'rqsangiz, ikkinchisini o'rganishga harakat qilgan bo'lsangiz va hech narsani tushunmasangiz, bu kitob sizning ko'zingizdagi reabilitatsiya uchun juda mos keladi. Ikkinchi ijobiy jihat shundaki, kitob amalda foydali bo'lishi mumkin bo'lgan narsani muhokama qiladi (buni tushunish, albatta, to'g'ri). Bu ikkilik qidiruv va samaradorlikning mohiyatini tushuntirish bilan boshlanadi - tom ma'noda barmoqlar va ko'plab rasmlar bilan. Uchinchidan, kitobda juda ko'p savollar va mashqlar mavjud (kod misollari Pythonda, lekin bu unchalik muhim emas). Ba'zilar uchun ijobiy, ammo boshqalar uchun salbiy bo'lishi mumkin bo'lgan nuqta: kitob hamma narsani qamrab oluvchi ma'lumotnoma bo'lib ko'rinmaydi. Aytaylik, o'rganish uchun umumiy qabul qilingan algoritmlardan faqat ikkitasi bor - samarasiz kiritish algoritmi va samarali tezkor saralash algoritmi. Nima uchun muallif boshqa algoritmlarni, qabariq yoki birlashmalarni ko'rib chiqmasligi kerakligini bilmayman. Aslida, birlashma algoritmi kitobda eslatib o'tilgan, ammo qisqacha, tahlilsiz va faqat tez tartiblash bilan solishtirganda. Qolgan mavzular aynan bir xil. Juda yaxshi yoritilgan asoslar bor, lekin ba'zida siz haqiqatan ham chuqurroq davom etishni xohlaysiz, lekin oddiygina yo'q. Bir so'z bilan aytganda, bu juda oddiy kitob, undan keyin, ehtimol, siz hamma narsa jiddiyroq tasvirlangan kitobni topishni xohlaysiz. Misol uchun, quyidagi.

Java tilidagi algoritmlar (Robert Sedgwick, Kevin Wayne)

Asl sarlavha: Robert Sedjvik va Kevin Ueynning algoritmlari Yangi boshlanuvchilar uchun 10 ta eng yaxshi dasturlash kitoblari - 10 taAslida, bu kitob ham maftun etishi, ham qo'rqitishi mumkin. Bu sizni hech bo'lmaganda o'zining ko'p sahifalari va ma'lum bir akademik tabiati bilan qo'rqitadi. Shuning uchun, agar siz bunga moyil bo'lmasangiz, akademiklar yoki matematikaga (o'rta maktab, muhandislar uchun oliy matematikaning eng oddiy elementlari) ishonchingiz komil bo'lmasa, unda ushbu kitobdan boshlamaganingiz ma'qul. U erda juda ko'p matematik atamalar mavjud emas, lekin yondashuvning o'zi bunday fikrlashni nazarda tutadi. Lekin oldingi kitobdan keyin - nima uchun emas. U sizga ko'rsatma beradi. Ba'zi joylarda birinchi bob Java haqidagi bilimlarni umumlashtiradi va ba'zi ma'lumotlar tuzilmalarini belgilaydi. Uni tanlab o‘qigan ma’qul, lekin ikkinchi va uchinchi boblarni yetarlicha batafsil o‘rganish zarar qilmaydi. Qolganlari ham grafiklar va satrlar haqida qiziqarli va batafsil ma'lumotlarga to'la. Men shuni aytmoqchimanki, bu kabi narsalar dasturlash tafakkurini shakllantirishda JUDA yordam beradi. Taqdimotga kelsak, muallif o'qituvchi ekanligini his qiladi, lekin asosan qiziqqan va tayyor odamlar bilan ishlashga odatlangan. Shuning uchun sabr qiling va o'qing. Shuningdek, muammolarni hal qiling, bu erda ular juda ko'p. Aytgancha, Coursera-da siz kitob mualliflari tomonidan yaratilgan algoritmlar bo'yicha kursni topishingiz mumkin.

Ramkangizni biling

Va nihoyat, yana bir kitob. Va yana - foydali.

Harakatdagi bahor (Kreyg Uolls)

Asl sarlavha: Kreyg Uolls tomonidan yozilgan bahor, Yangi boshlanuvchilar uchun 10 ta eng yaxshi dasturlash kitoblari - 11aslida yubka kiymagan "yubkadagi odam" bilan teng darajada mashhur muqovali juda mashhur kitob. Ochig‘ini aytsam, birdaniga hamma narsani amalda sinab ko‘rishga harakat qilsangiz ham, bitta kitobdan Bahorni o‘rganish juda qiyin ish. Aytgancha, u yoki bu bobni o'qib chiqqandan keyin buni qanday qilishni tushunish juda qiyin bo'lishi mumkin. Men kompaniyada amaliyot o'taganimda ushbu kitob bilan ishlaganman va shu tarzda foydalanilganda juda ko'p yordam beradi. Bundan tashqari, bugungi kunda ham dasturchi sifatida ishlayotgan bo'lsam ham, men doimo unga qaytaman. Muxtasar qilib aytganda, siz uning yordami bilan asosiy Java ramkasi haqida umumiy tasavvurga ega bo'lishingiz mumkin.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION