Mida lugeda IT-spetsialistile. Raamatud programmeerimisest

Ja mitte ühtegi romaani.

Olen kindel, et see ei ole esimene artikkel programmeerijatele mõeldud raamatute kohta, mida te loete ja ootate Donald Knuthi, Stephen McConnelli, Robert Martini, Thomas Cormani ja kultusliku "Neljaraamatu" kaalukate köite kaane all (" Kujundusmustrid”).

Klassikavaliku lugemiseks, mida IT-blogijad üksteiselt copy-paste’ivad, nõuab paariaastast rasket intellektuaalset tööd. Kui seate endale eesmärgiks saadud info kindlalt omastada ja seda oma töös rakendada, mitte aga pealiskaudselt foorumites hooplemise eesmärgiga kurssi viia.

Ma ei kinnitanud piisav kogus püüdes tõsiselt rääkida sellest, millisest peatükist alustada “Täiusliku koodi” lugemist või miks on “Programmeerimise kunsti” esimene köide teisest kasulikum.

Seetõttu räägin teile ainult nendest raamatutest, mida ise lugesin, ja teadmistest, mida praktikas rakendasin. Isiklik TOP 9 sisaldab:

  • 2 raamatut, mis on iga päev käepärast;
  • 2 raamatut, mis avaldasid tugevat mõju maailmavaatele ja töökäsitlusele;
  • 3 raamatut hingele;
  • Probleemide kogumine;
  • Raamat, mis kirjeldab harjutuste komplekti intellektuaalse tööga tegelevatele inimestele.

1. Regulaaravaldised. Retseptide kogu. Jan Goyvaerts, Steven Levitan

Ma austan ja imetlen inimesi, kes suudavad kirjutada tavalisi kosmilise keerukusega rutiine ilma käsiraamatuid vaatamata. Ma ei kuulu nende inimeste hulka, kuid ma püüan olla. Kui ma teel olen, aitab see raamat mind hädast välja.

See sisaldab sadu kasulikke regulaaravaldisi, mida saab hõlpsasti koodiks kopeerida ja mis aitavad säästa aega rataste taasleiutamisel. Näiteid raamatu valmisregulaaravaldiste kasutamisest:

  • Eemaldage topelt tühikud;
  • Numbri kinnitamine krediitkaardid, meilid ja URL-id;
  • Duplikaatridade eemaldamine tekstist;
  • Puhastuskood kommentaaridest;
  • Atribuutide väärtuste ekstraheerimine XML-failidest;
  • Kuupäevade leidmine tekstist.

Kaanest kaaneni lugemine aitab vältida tarbetuid tööjõukulusid juhtudel, kui üks geniaalne korrapärane jada asendab kümneid koodiridu. Kuid “Retseptiraamatut” saab avada ainult vastavalt vajadusele, kopeerides ja lisades näiteid praeguse probleemi lahendamiseks.

2. SQL. Retseptide kogu. Anthony Molinaro

Kas tead, kuidas SQL-i kasutada:

  • Ekstrakti tabelist read, mida teises tabelis pole;
  • Blokeeri väärtuste sisestamine mõnesse veergu;
  • Eraldage nimest initsiaalid;
  • Määrake päevade arv kahe kuupäeva vahel;
  • Tehke hierarhilisi päringuid.

Kui ei, siis raamat “SQL. Retseptide kogu" räägib teile, kuidas.

Kirjutasin veidi kõrgemale, et üks regulaaravaldis asendab vahel kümneid koodiridu. Sama SQL päringutega. Valmis näited raamatust aitab vähendada arendusaega, tõsta programmide/skriptide täitmise kiirust ja vähendada serveri koormust.

3. Tootlik programmeerija. Kuidas muuta kompleks lihtsaks ja võimatu võimalikuks. Neil Ford

Raamatu puudumine on selle küllus praktilisi nõuandeid, mis on seotud viis aastat tagasi aegunud tehnoloogiatega. Mõned funktsioonid enam ei tööta. Kuid produktiivne programmeerija on aktuaalne ka tänapäeval.

Neil Ford kirjutas raamatu, et panna lugejad maailma teise nurga alt vaatama ja halbadest harjumustest loobuma:

  • Ärge automatiseerige käsitsi tehtut >10 korda;
  • Kasutage hiirt seal, kus on vaja ainult klaviatuuri;
  • Vältige käsureal töötamist;
  • Hoidke oma tööfailid segamini.

Ja tal see õnnestub. Peente naljade ja raudsete argumentidega sisendab autor lugejas vastumeelsust füüsilise töö vastu ja veenab neid valima parandusteed.

Pärast raamatu lugemist nägin, kui palju aega kulutavad inimesed ümberringi töödele, mis võiksid neile stsenaariume teha, hakkasin automatiseerimise teema vastu tõsiselt huvi tundma ja hakkasin aeglaselt oma silmaringi sellel teemal laiendama.

Sellest on möödunud aastaid ja olen aidanud ennast, sugulased, sõbrad, kolleegid ja juhuslikud tuttavad säästavad kuude kaupa isiklikku aega.

Kui te ei soovi enam, et teid tõmbaks rutiinile aega raiskama, lugege Neil Fordi :-)

4. Äärmuslik programmeerimine: testipõhine arendus. Kent Beck

See raamat on mõeldud laiskadele perfektsusevastastele, kes sügaval sisimas arvavad, et McConnell on igav, kelle testimine ja silumine on äärmiselt tüütu, kuid kes soovivad siiski, et nende kirjutatud programmid töötaksid talutavalt hästi.

Kent Beck kirjutas sissejuhatuses:

Aitäh selle raamatu tundmatule autorile, mida lugesin 12-aastaselt. Selles raamatus tehti ettepanek võrrelda kahte linti: tegelike tulemuste ja oodatud tulemustega ning kodeerida seni, kuni tegelikud tulemused ühtivad oodatud tulemustega. Aitäh aitäh aitäh.

See oma lihtsuses hiilgav nõuanne on paljude aastate jooksul Keni peas kasvanud fantastiliselt tõhusaks programmeerimistehnikaks:

  • Kõigepealt kirjutame teste;
  • Teises etapis kodeerime ja tagame testide täpse täitmise;
  • Me tegeleme ümberfaktoritega.

Nende kolme sammu praktikas rakendamine on pühendatud 200 leheküljele, mis sisaldavad TDD mustrite kirjeldusi, näpunäiteid ümbertöötamiseks ja lugusid isiklik kogemus metoodika rakendamine xUnit rakendusega töötamise näitel.

Raamatust pärinevad ideed on olnud pikka aega populaarsed ja neid kasutavad nii üksikud arendajad kui ka ettevõtted. Kui olete huvitatud, soovitan leida Internetist materjale TDD kasutamise kohta programmeerimiskeeltega, milles kirjutate.

5. Programmeerimise pioneerid. Dialoogid populaarsemate programmeerimiskeelte loojatega. Federico Biancuzzi, Shane Worden


See on hämmastav ja inspireeriv raamat. Iga kord, kui loed uuesti, avastad midagi uut. See sisaldab intervjuusid 17 programmeerimiskeele loojatega:

  • Postitusskript;
  • Perl;
  • Java;
  • Eesmärk-C
  • Haskell;
  • BASIC;
  • Kindlus;
  • Python;

Raamatus on palju uudishimu tehniline informatsioon ja fakte ajaloost. Näiteks:

  • Esimesed seitse aastat toimus APL-keele arendamine ilma arvuteid kasutamata;
  • Eiffeli keele looja Bertrand Meyer kirjutas juba 1978. aastal raamatu “Programmeerimismeetodid”, mis peagi tõlgiti vene keelde ja avaldati NSV Liidus. Ja kuni 2000. aastate lõpuni sattus ta meie riiki külastades kokku inimestega, kes väitsid, et on seal programmeerimist õppinud;
  • Post Scripti looja kirjeldab tipptasemel programmeerijat järgmiste sõnadega: "Kui ta esitab koodi ja ütleb, et see on valmis, tähendab see, et kood on täiesti töökindel ja lihvitud." Viimati kohtas ta sellist tüüpi 1972. aastal;
  • Kui Larry kirjutab oma Perli, muudab ta koodi ja taaskäivitab programmi umbes iga 30 sekundi järel;
  • Turbo Pascali lõi sama isik, kes lõi C#;
  • C++ kasutatakse sagedamini kui Objective-C, kuna seda propageeris AT&T (Objective-C looja sõnul).

Intervjuu sisaldab palju keerulisi tehnilisi küsimusi, kuid need on edukalt põimunud vestlustega teadusest, ärist, IT-tehnoloogia tulevikust, edu saladustest ja raskustest, millega uute programmeerimiskeelte loomisel ja juurutamisel kokku puututakse.

John Hughes õpetab alandlikkuse tähtsust tõhusa meeskonnatöö jaoks, Don Chamberden selgitab, miks tänapäeval on raske olla populaarne uus keel programmeerimine ja Guido van Rossum jagab tehnikaid, kuidas koheselt koodi kirjutama hakata, kui tähelepanu hajub.

Raamatu kangelased on ainulaadsed inimesed. Neis on ühendatud loov mõistus, julgus ja oskus näha asju lõpuni, kartmata kulutada sellele tosin aastat oma elust. "Programmeerimise pioneeride" lugemine motiveerib teid tegutsema mitte halvemini kui ajakiri "Rabotnitsa"

6. Diskreetne matemaatika programmeerijatele. Ray Haggarty

See on ainuke matemaatikaõpik, mille kiire pilk raamatupoes äratas kohe ostusoovi. Üllatavalt lihtne teksti esitamine, palju selgitavaid pilte, ülesannete lahendamine ei nõua teiste matemaatikaharude sügavust tundmist.

Raamat käsitleb järgmisi teemasid:

  • graafikud ja suunatud graafikud;
  • kombinatoorika;
  • algoritmide tõhusus;
  • funktsionaalsete programmeerimiskeelte matemaatiline aspekt;
  • binaarsed suhted;
  • ekspertsüsteemid;
  • hulgateooria;
  • ja nii edasi.

Nad teevad mind õnnelikuks selgitavaid näiteid pseudokoodis (mis on sisuliselt Pascal).

Selle õpikuga (peamiselt 7. peatüki ja selle lisaga) tutvumine valmistab teid teoreetiliselt ja moraalselt ette Donald Knuthi raamatu "Programmeerimise kunst" kolmanda köite lugemiseks. Ma ei tea, kuidas valmistuda ülejäänud köidete lugemiseks :-(

Kuid peamine on see, et see raamat vastab üksikasjalikult ja arusaadavalt küsimusele, mis teeb amatöörkodeerijaid murelikuks: "Miks peaks programmeerijal kunagi vaja matemaatikat?"

7. Lihtsalt lõbu pärast. Juhusliku revolutsionääri lugu. Teemant David. Torvalds Linus

Linus Torvaldsi elulugu varasest lapsepõlvest 2000. aastate alguseni. Salvestas ajakirjanik Diamond David raamatu peategelase dikteerimisel. See hämmastav lugu nohiku saatusest. Arvan, et paljud, keda programmeerimine on lapsepõlvest saati tõmmanud, leiavad endas midagi Linuse sarnast:

Mõnikord ei käinud ma üldse väljas. Ema rääkis oma ajakirjanikest sõpradele, et ma olen nii vähenõudlik laps, et õnnelikuks olemiseks pole vaja muud, kui arvutiga kappi, kuhu aeg-ajalt makaronipakk sisse visati. Ta ei olnud tõest kaugel. Keegi ei kartnud, et see laps röövitakse. (Huvitav, kas keegi oleks seda märganud?)

Linus, avatud Coca-Cola purk käes, väljus Transmeta sügavusest,
asub Santa Clara nimetu bürookompleksis. See oli seljas
programmeerija vorm: teksad, T-särk konverentsilt ja tavaline komplekt
sokid pluss sandaalid, mida ta enda sõnul juba enne kohtumist armastas
esimene programmeerija. "See peab olema lihtsalt kaasasündinud programmeerija
instinkt,” selgitas ta mulle oma valikut.

Ma keerlesin nagu orav rattas: programmeerimine - unistamine -
programmeerimine - toit (soolased kreekerid) - programmeerimine - uni -
programmeerimine - dušš (sisse kiire lahendus) - programmeerimine. Töö lõpuks
Sai selgeks, et minu programmist on saamas operatsioonisüsteem.

Lisaks Linuse eluloole on raamatus palju teavet selle kohta tehnilised omadused Linuxi ja vaba tarkvara filosoofiad:

Teadus ise raha ei too. Rikkus tekib kõrvalsaadusena
teaduse arengu mõju. Sama kehtib ka avatud lähtekoodiga.
Need võimaldavad luua abitööstusi, mis viskavad
esitada väljakutseid olemasolevatele ettevõtetele nagu arengu kõrvalsaadused
teadused esitasid kirikule väljakutse.

Ma võin lõputult tsiteerida "Just for Fun", see on nii lahe. Ühe õhtuga loetav see tõstab tuju ja aitab mõtted maailmakärast eemale viia.

8. Programmeerija karjäär. Kuidas saada tööd Google'is, Microsoftis või mõnes teises juhtivas IT-ettevõttes. Mongan D., Guigere E., Kindler N.

Raamat on küsimuste ja ülesannete kogumik, et testida teadmisi massiivide, andmebaaside, bitioperatsioonide, OOP jms kohta. Eraldi peatükid on pühendatud loogikaülesannetele: graafilised mõistatused ja permutatsioonidega mõistatused.

Ülesanded on mõtlemapanevad, kuid ei võta palju aega nende lahendamiseks (kui Google käepärast on/teema tuttav).

Raamat hakkab kiiresti vananema (2012) ja sisaldab psühholoogilisi nõuandeid, mis mulle ei tundu Venemaa tegelikku olukorda sada protsenti sobivat. Aga see aitab leida teadmistes lünki ja määrata eneseharimise liikumissuunda.

9. Maagia tee. Esimesed sammud. Tuline

See raamat on harjutuste kogumik enesekontrollivõime arendamiseks koos autori üksikasjalike kommentaaridega. Nende harjutuste sooritamine aitab toime tulla järgmiste probleemidega:

  • Suutmatus keskenduda praegusele tegevusele;
  • Unevõimetus obsessiivsete mõtete tõttu;
  • Liigne väsimus piisavalt magamisel, mis on tingitud võimetusest lõõgastuda.

Tegin neid harjutusi 16-17-aastaselt ühtseks riigieksamiks valmistudes, et ületada õpingutele keskendumise raskused. Sel hetkel aitasid nad mind oluliselt. Nüüd naasen nende juurde vaid paar korda aastas vastavalt vajadusele.

P.S. Kui teil tekivad öösel kehavälised kogemused, lõpetage kohe treenimine ja ärge rääkige sellest kellelegi.

Programmeerijatele on palju suurepäraseid raamatuid. Ja iga arendaja TOP 10 on individuaalne.

  • kasutab samu tehnoloogiaid, mis teie;
  • Lahendab sarnaseid probleeme;
  • (5.00 5-st, hinnatud: 1 )

    veebisait Ja mitte ühtegi romaani. Olen kindel, et see ei ole esimene artikkel programmeerijatele mõeldud raamatute kohta, mida te loete ja ootate Donald Knuthi, Stephen McConnelli, Robert Martini, Thomas Cormani ja kultusliku "Neljaraamatu" kaalukate köite kaane all (" Kujundusmustrid”). Klassikavaliku lugemiseks, mida IT-blogijad üksteiselt copy-paste’ivad, nõuab paariaastast rasket intellektuaalset tööd. Kui seate endale eesmärgi...

Kogu nimekirjas oli 5720 raamatut. Altpoolt leiate neist 20 enim mainitud, mis on kunagi vene keeles ilmunud.

Lifehackeri palvel jagasid kodumaised eksperdid mõne väljaande kohta arvamust.

1. Tõhus töö Legacy Code'iga, Michael K. Feathers

2. “Objektorienteeritud disaini tehnikad. Disainimustrid", Erich Gamma jt

Klassika programmeerijatele. Esimene spetsiaalselt mallidele pühendatud raamat.

Väljaannet on originaalkujul kordustrükki tehtud 20 aastat. Selles muidugi peamine puudus raamatud: mõned mallid pole enam asjakohased. Arvan, et seda on kasulik lugeda teiste, moodsamate disainimustrite raamatute järel. Pealegi on see kirjutatud kuivas akadeemilises keeles. Mustrite mõistmiseks pole seda raamatut kohustuslik lugeda, kuid selle lugemine lisab kaasprogrammeerijate silmis jahedust. :) Soovitan alustada Head First Design Patterns'ist.

3. “Puhasta kood. Loomine, analüüs ja ümbertöötamine“, Robert K. Martin

Huvitav, kuid suures osas vastuoluline raamat arusaadava ja hooldatava koodi kirjutamisest.

Leonid Vygovsky, IT-ettevõtte LiveTex süsteemiarhitekt

Miks vastuoluline? Koodi kirjutamise kohta on juba tohutult palju raamatuid ja mõned tehnikad on üldiselt aktsepteeritud. Aga iga autor lisab midagi oma. Minu jaoks isiklikult tundub Bob Martini arvamus kohati kummaline ja läheb vastuollu teiste allikatega. Pole kohustuslik lugemine, kuid siiski tasub lugeda. Koodi kvaliteet muutub pärast lugemist paremaks.

4. Eric Evansi domeenipõhine disain

Väga võimas raamat, mis motiveerib enesearengut. Pärast lugemist tundub, et ilma POP-ita ei saa te kvaliteetset koodi kirjutada.

Leonid Vygovsky, IT-ettevõtte LiveTex süsteemiarhitekt

Sellest raamatust kasvasid välja mõisted CQRS, BDD, onion-architecture ja paljud teised. huvitavaid ideid. Ainus puudus: raamat on täiesti teoreetiline. See sai praktilise kasutuse alles pärast Vaughn Vernoni raamatu Domeenipõhise disaini rakendamine avaldamist. Seetõttu tuleb neid lugeda järjestikku, kohe üksteise järel.

5. Douglas Crockfordi „JavaScript: tugevused”.

Kohustuslik raamat veebiarendajatele. Douglas Crockford räägib selles JavaScripti keele eelistest ja õpetab neid õigesti kasutama tõhusa koodi loomiseks.

6. “Ettevõtte rakendusmustrid”, Martin Fowler jt

Raamat kirjeldab põhiprintsiibid tarkvara projekteerimine ettevõtete platvormidele.

7. “Täiuslik kood. Meistriklass, Steve McConnell

Klassikaline raamat, kuidas kirjutada paremat koodi.

Raamatus kirjeldatud põhimõtted on asjakohased igal ajal, hoolimata sellest, et esimene trükk ilmus juba 1993. aastal. Selle raamatu võlu seisneb selles, et saate seda igal aastal uuesti lugeda ja iga kord midagi uut õppida.

8. „Refaktoreerimine. Olemasoleva koodi täiustamine", Martin Fowler jt

Selge ja kvaliteetse koodi kirjutamise raamatute sarjast on “Refaktoring” parim.

Leonid Vygovsky, IT-ettevõtte LiveTex süsteemiarhitekt

Vygovsky: "Ta mitte ainult ei näita head koodi, vaid kasutab ka halva koodi näidet, et selgitada, miks see täpselt halb on. See raamat on kohustuslik lugemine kõigile. Ja mida varem sa seda loed, seda parem. Koodi kvaliteet paraneb pärast selle lugemist oluliselt.

Kui olete juba Fowleri raamatut lugenud, pöörake tähelepanu Mihhail Osotovi soovitatud Joshua Kerievsky raamatule Refactoring to Patterns.

Kerievsky mustrite taastamine on suurepärane raamat neile, kes tegelevad iga päev oma projektides pärandkoodi ja tehnilise võlaga.

Mihhail Osotov, kõrgtehnoloogiakeskuse tootmisdirektor

9. “Disainimustrid”, Eric Freeman, Elizabeth Freeman jt

Head First seeria on minu arvates ideaalne neile, kes on tarkvaraarendusega uued.

Mihhail Osotov, kõrgtehnoloogiakeskuse tootmisdirektor

10. "C programmeerimiskeel", Brian W. Kernighan, Dennis M. Ritchie

Klassikaline C-keele õpetus, mille on kirjutanud selle loojad. Algajatele võib see raamat aga väljakutsuvaks osutuda, kuna see nõuab lugejalt programmeerimise põhitõdede tundmist.

11. “C++ tõhus kasutamine. 55 kindlat viisi oma programmide struktuuri ja koodi täiustamiseks, Scott Myers

Raamat sisaldab näpunäiteid programmide kujundamise, mallidega töötamise ja ressursihalduse kohta ning muid soovitusi kvaliteetse tarkvara loomiseks C++ keeles.

12. "Äärmuslik programmeerimine: testipõhine arendus", Kent Beck

13. “Algoritmid. Ehitus ja analüüs", Thomas H. Cormen jt

Seda raamatut nimetatakse algoritmide piibliks. See on end tõestanud suurepärase teadusliku juhendina tehnikaülikoolide üliõpilastele ja kõigile arvutiteaduse huvilistele. Raamat juurdepääsetav keel tutvustab algoritme erinevad tüübid ja kirjeldab nende omadusi.

14. Jeffrey Friedli "Regulaaravaldised".

Väljaanne umbes tõhus töö tekstiga Perl, PHP, Java, Python, Ruby ja teistes programmeerimiskeeltes.

15. “CLR C# kaudu. Programmeerimine Microsoft.NET Framework 4.5 C#-s”, Jeffrey Richter

Klassikaline õpetus Microsofti platvormi rakenduste arendamiseks, sealhulgas Silverlighti, Windows Presentation Foundationi, ASP.NETi ja muude ettevõtte tehnoloogiate kasutamiseks.

16. “Moodne disain C++-s”, Andrei Alexandrescu

17. „Microsoft ASP.NET 2.0. Algkursus", Dino Esposito

Üksikasjalik juhend kogenud ASP.NET 2.0 professionaalidele. Raamat õpetab, kuidas sellel platvormil luua võimsaid, usaldusväärseid ja skaleeritavaid veebisaite.

18. “xUnit Test Patterns. Refaktori testi kood", Gerard Meszaros

19. “Koostajad. Põhimõtted, tehnoloogiad ja tööriistad”, Alfred W. Aho jt

Raamat kirjeldab kompilaatorite arendamise põhiprintsiipe ja paneb erilist rõhku koodi optimeerimisele. Lugeja abistamiseks - suur hulk näiteid praktikast.

20. “Tarkvaraprojektide infrastruktuur. Korduvkasutatavate .NET-teekide tavad, idioomid ja mustrid", Krzysztof Cwalina, Brad Abrams

Väljaanne sisaldab parimaid tavasid Microsoft .NET Frameworki teekide arendamiseks. Raamat peaks hõlbustama iga .NET-i professionaali tööd, kes kirjutab teistele arendajatele koodi.

Erinevalt enamikust programmeerimisraamatutest, mis toetuvad üliigavatele spetsifikatsioonidele ja näidetele, on seeria Head First kirjutatud huumori ja illustratsioonidega – teisisõnu on neil raamatutel kõik, mis hoiab teie tähelepanu esimesest leheküljest viimaseni.

Selle väljaande eripäraks on ka ainulaadne ja teaduslikult põhjendatud materjali esitusviis: tänu ebastandardsele õpetamise ja teabe esitamise vormile on “Pea ees” raamatud üks parimaid raamatuid algajatele põhimõtteliselt ja blaa. blaa bla... Vähem vett, asjale lähemal: sellesse kogusse oleme kogunud 10 parimat “Programmeerimise õppimise” raamatut erinevatel teemadel – ja teie aja säästmiseks on kirjeldusse lisatud vaid kõige olulisemad asjad. igaüks neist.

IN kaasaegne maailm Teave on kõrgeima väärtusega, kuid sama oluline on osata seda teavet hallata – see raamat on pühendatud SQL päringukeelele, mis on kõige populaarsem infohaldustööriist maailmas.

Pärast selle raamatu lugemist omandate kogu SQL-i süntaksi – alates lihtsast SELECT-st ja INSERT-ist liigute edasi keerukate andmebaasipäringuteni.

Tõenäoliselt on keegi teine ​​igal hetkel hädas samade disainiprobleemidega nagu teie. Ja uskuge mind, keegi maailmas on need juba ammu lahendanud.

Pärast selle raamatu lugemist õpite, kuidas kirjutada pädevat, hästi struktureeritud ja hooldatavat koodi, mida te ei häbene.

C# on loodud ja arendatud spetsiaalselt .NET Frameworkiga kasutamiseks – see on ideaalne võimsate Windowsi rakenduste loomiseks.

Pärast selle raamatu lugemist omandate mitte ainult C# ja .NET, vaid ka XAML-i, Visual Studio ja isegi programmeerimise Windowsi telefon.

Tänu praktilisi näiteid see raamat õpetab teile serveripoolse programmeerimise põhitõdesid, alustades põhisüntaksist ja liikudes edasi keerulisi teemasid, näiteks vormide kehtivuse kontrollimine, seansid, küpsised, andmebaasipäringud, failide ja sisuga töötamine ning palju muud.

Peale selle raamatu lugemist õpid lisaks kõigele eelnevale ka seda, kuidas muuta oma rakendused turvaliseks, objektorienteerituks ja testitavaks – täpselt nagu 2016. aastal.

Loodame, et teile ei pea ütlema, mis on Android ja milliseid eeliseid pakub sellele rakenduste loomise võimalus, kuid autorite sõnul on see juhend teie lähedal asuvale kogenud Androidi arendajale.

Pärast selle raamatu lugemist saate lõpuks realiseerida rakenduse või mängu "plahvatusohtliku" idee: saate teada, kuidas oma rakenduse struktuuri õigesti seadistada, luua selle jaoks liides ja andmebaas ning kuidas seda teha. töötada mitmesuguste nutitelefonide ja tahvelarvutitega ning palju muud.

Java on üks maailma populaarsemaid programmeerimiskeeli, mida kasutatakse peaaegu kõigis kaasaegsetes keskkondades: alates kohvimasinatest ja lõpetades suurte kohvimasinate ettevõtete võrgustikega.

Seda raamatut lugedes ei õpi te mitte ainult objektorienteeritud programmeerimist, Java süntaksit ja funktsioone, vaid õpite ka oma programmide (ja kohvimasinate) jaoks liideseid ja automatiseeritud teste looma.

Python on mitme paradigmaga platvormideülene programmeerimiskeel, mis... Hiljuti on muutunud eriti populaarseks läänes ja sellistes suurettevõtetes nagu Google, Apple ja Microsoft. Tänu minimalistlikule süntaksile ja võimsale tuumale on see üks produktiivsemaid ja loetavamaid keeli maailmas.

Pärast selle raamatu lugemist saate kiiresti ja lõbusalt selgeks keele põhitõed, seejärel liigute edasi erandite käsitlemise, veebiarenduse, SQL-i, andmeteaduse ja Google App Engine'i juurde. Samuti saate teada, kuidas kirjutada Androidi rakendusi ja palju muud Pythoni võimsuse kohta.

Ruby on Rails on mitmetasandiline MVC raamistik mitmesuguste veebirakenduste loomiseks, mis peavad olema kiired, tõrketaluvusega ja suutma taluda suuri koormusi. RoR sobib nii tavalistele veebisaitidele kui ka keeruka äriloogika ja dünaamiliste liidestega veebirakendustele.

Pärast selle raamatu lugemist saate teada, kuidas andmebaasiga suhelda ja rakendusi Ajaxi ja XML-iga integreerida, kuidas koostada dünaamilisi andmegraafikuid ja palju muud. Kursus hõlmab ka Ruby keele õppimist, millel Rails põhineb. Ja seda kõike päris veebisaitide loomise kontekstis, mitte igava "HelloWorldi" kirjutamise kontekstis.

Kas olete valmis astuma oma veebiprogrammeerimise praktikat sammu edasi ja liikuma HTML-i ja CSS-i kodeerimiselt täisväärtuslike dünaamiliste lehtede loomisele? Siis on aeg tutvuda kuumima programmeerimiskeelega – JavaScriptiga!

Pärast selle raamatu lugemist saate teada kõike JavaScripti keele kohta: muutujatest tsükliteni. Saate aru, miks erinevad brauserid koodile erinevalt reageerivad ja kuidas kirjutada universaalset koodi, mida kõik brauserid toetavad. Saate aru, miks JS on tulevik, ja saate tõeliseks esiotsa arendajaks.

Vaatamata nimele on “Head First Software Development” väga kasulik mitte ainult algajatele, vaid ka kogenud, väljakujunenud programmeerijatele. Ja see raamat sobib ideaalselt esikümne sulgemiseks.

Pärast selle raamatu lugemist saate iga sammu kohta põhjalikku teavet eluring tarkvaraarendus: nõuete kirjutamine, kujundamine, kodeerimine, testimine, juurutamine ja hooldus – ning saad ka aru, kuidas ja miks erinevad arendusprotsessid toimivad. Õpid, kuidas “seda” õigesti teha ja kuidas teised “seda” teevad.

Pärast kõigi nende raamatute lugemist, sinust saab tõeline programmeerimise meister ja oleme kindlad, et iga ettevõte kisub sind minema.

Edu karjääris, tulevane programmeerija!

Kasu pole palju, kuid häid raamatuid Oh.

Seneca

Me kõik mõistame suurepäraselt: professionaalseks programmeerijaks saamiseks peate lugema erialast tehnilist kirjandust. Kuid tänapäeval on saadaval tohutul hulgal erinevaid programmeerimisväljaandeid. Eluajast ei piisa isegi poolte ületamiseks. Milliseid raamatuid peaksite kõigepealt lugema? Milliste raamatuteta sa elada ei saaks? Selles artiklis räägime suurepäraste autorite töödest, mida iga professionaalne arendaja peaks tundma.

Selles artiklis me ei vaadanud kõiki programmeerija mõtte kullafondi raamatuid. Järgmised X raamatud leiate kümnest numbrist.

S. McConnell "Täiuslik kood"

Kirjutage kood nii, nagu oleks sellega kaasas vägivaldne psühhopaat, kes teab, kus te elate.

Raske on leida programmeerimisgurut, kes poleks lugenud Steve McConnelli teost Code Perfect. Tõepoolest, üks raamat, kuigi mitte väike (veidi alla 900 lehekülje), hõlmab peaaegu kõiki tarkvaraarenduse aspekte: alates kvaliteetse koodi kirjutamise retseptidest, testimise ja silumismehhanismidest kuni koodi optimeerimise strateegiate ja arengut mõjutavate psühholoogiliste teguriteni. Kujutage ette: raamatu bibliograafia on 20 lehekülge pikk ja sisaldab üle 500 allika! Raamat “Perfect Code” on üks kasulikumaid ja sellest tulenevalt ka populaarsemaid tarkvaraarenduse väljaandeid. Ta on seda korduvalt tõestanud, juhtides programmeerimisraamatute edetabelit (goo.gl/3q0kx). Tänu Steve'i lihtsale esitluslaadile, erilisele stiilile ja huumorimeelele on raamatut väga lihtne lugeda.

Tarkvarasüsteemide projekteerimisest ja ehitamisest rääkides tõstab McConnell esile tarkvaraarenduse peamise tehnilise nõue – keerukuse haldamise. Süsteemi lähtekoodi ja arhitektuuri lihtsus ja selgus määravad selle kvaliteedi. Suur osa raamatust on pühendatud kvaliteetse koodi kirjutamisele. McConnell, kes on pisiasjade tähtsusest teadlik rohkem kui keegi teine, kirjeldab üksikasjalikult kõiki reegleid, mida tuleb hea koodi kirjutamisel järgida. Vajalik abstraktsioonitase, klasside ja pakettide kvaliteetsete liideste arendamine, kvaliteetsete meetodite kirjutamine, heade muutujate nimede valimine, juhtimisstruktuuride lihtsustamine, koodi kommenteerimine – autori tähelepanust ei jää miski kõrvale. Näiteks, üldised põhimõtted Muutujate kasutamine on pühendatud kogu raamatu osale, mis on üle 100 lehekülje. Terve 30-leheküljeline peatükk on pühendatud ainult muutujate nimede valimise küsimusele. Lisaks on kõik reeglid ja nõuanded antud eranditult praktilisest vaatenurgast.

Selles osas, mis räägib tarkvara kvaliteedist üldiselt, sõnastab McConnell tarkvarakvaliteedi põhiseaduse: süsteemi kvaliteedi tõstmine vähendab selle arenduskulusid. Põhjus on selge – programmeerijad kulutavad suurema osa ajast kirjaliku koodi lugemisele ja silumisele, tegelik kirjutamine aga umbes 10% ajast. Seetõttu säästab süsteemikoodi kvaliteedi kõrgel tasemel hoidmine palju aega ja suurendab seeläbi programmeerija efektiivsust.

Autor ei jäta tähelepanuta erinevaid tehnikaid arengut. Üksikasjalikult kirjeldatakse paarisprogrammeerimist, koodi muudatusi, ametlikke ja mitteametlikke kontrollimisi ning testipõhist arendust. “Refaktoring” on raamatu ainus peatükk, mida võib nimetada “nõrgaks”. M. Fowleri raamatust “Refaktoring” on refaktoreerimismeetodeid käsitledes antud vaid pikk loetelu selle tüüpidest. Siiski pole ühtegi konkreetne näide kood. See jaotis on mõeldud ainult informatiivsel eesmärgil.

Rääkides tarkvara jõudluse suurendamisest, esitab autor kaaluka põhjenduse enneaegse optimeerimise vastu, kui programmeerija tunneb arendusprotsessi käigus intuitiivselt ära programmi kitsaskohad ja võtab kohe kasutusele optimeerimismeetmed koodi kvaliteedi arvelt. Toodud statistika näitab, et programmeerija eksib 9 oma oletuses 10-st.

Kokkuvõtteks John Robbinsi sõnadega: „See on lihtsalt parim tarkvaradisaini raamat, millega ma kunagi kokku puutunud olen. Igal arendajal peaks see olema ja see peaks igal aastal kaanest kaaneni läbi lugema. Olen seda juba üheksa aastat igal aastal lugenud ja ikka õpin palju!”

M. Fowler "Refaktoring"

Igaüks võib kirjutada koodi, millest arvuti aru saab, kuid ainult head programmeerijad kirjutavad koodi, millest inimesed aru saavad.

M. Fowler

Peaaegu igas refaktoreerimist käsitlevas väljaandes viidatakse Martin Fowleri raamatule "Refaktoring". Tõepoolest, selles raamatus tegi Fowler võimatut - äärmiselt arusaadavas vormis edastas ta lugejatele peaaegu täielikult põhjaliku kirjelduse "refaktori" kontseptsioonist, selle eesmärgist, omadustest ja rakendusmeetoditest.

Vaatamata märkimisväärsele pikkusele (400 lehekülge) saab raamatu läbi lugeda vaid paari õhtuga, käest on seda lihtsalt võimatu käest panna. peamine põhjus Raamatu peadpööritav edu on selle praktiline suunitlus. Me kõik teame seda kõige rohkem raske ülesanne Materjali esitamisel tooge hea illustreeriv näide. Selles pole Fowlerile võrdset. Raamat algab näitega programmi täiustamisest, mis tõmbab lugeja kohe ülepeakaela ümbertöötamise maailma. Vaid 40 lehekülge näidet annab meile väga konkreetse ettekujutuse refaktoreerimisest, selle eesmärkidest, põhimõtetest ja põhilistest rakendusmeetoditest. Martin defineerib ümberkujundamist kui "tarkvara sisemise struktuuri muudatust, mille eesmärk on hõlbustada selle mõistmist ja muutmist, ilma et see mõjutaks jälgitavat käitumist." Aga millal on see muudatus vajalik? Millist koodi tuleks ümber kujundada? Nendele küsimustele annab autor põhjalikud vastused. Ta tutvustab "kolme löögi" reeglit: "Pärast kolme rikkumist alustage ümbertöötamist." See tähendab, et kui teete midagi sarnast kolmandat korda, on see signaal, et alustada refaktoreerimist. Jaotis "Kood, mis lõhnab" annab meile selge ülevaate, milline kood vajab täiustamist. Sellise koodi märgid on: pikk meetod, suur klass, pikk meetodi parameetrite loend, koodi dubleerimine, lülituslaused, ajutised väljad, pärimise keelamine, sobimatu klassi lähedus ja palju muud.

Fowler kui TDD (Test-driven development) pooldaja pühendab raamatu peatüki automatiseeritud testide loomisele ja JUniti raamistiku kirjeldamisele. Kui viga avastatakse, peate esmalt kirjutama automaattesti, mis selle tuvastab, ja alles seejärel teostama paranduse. See võimaldab tulevikus mitte astuda samale rehale. Samuti peaksite enne ümbertegemist kirjutama parandatava koodi jaoks testi, et tagada selle käitumise muutumatus.

Suurema osa raamatust hõlmab refaktoreerimismeetodite kataloog. See sisaldab jaotisi koostamismeetodite, objektidevahelise funktsioonide teisaldamise, andmete korraldamise, tingimustingimuste ja meetodite väljakutsete lihtsustamise, üldistusprobleemide lahendamise ja suuremate arhitektuuriliste ümberkujundamiste kohta. Paljud ümberfaktorimise tehnikad on populaarsetes IDE-des automatiseeritud. Näiteks pakub Visual Studio võimalust automaatselt ekstraheerida meetod (ExtractMethod), eemaldada parameeter (RemoveParameter), ekstraktida liides (ExtractInterface) jne. Fowler nimetab peamiste süsteemitaseme ümberfaktoritena järgmist: pärimishierarhia eraldamine, mis täidab rohkem kui ühte ülesannet, projekteerimise protseduurilise lähenemise ümberkujundamine objektorienteeritud lähenemisviisiks, osakond ainevaldkond esitluse tasemelt, samuti hierarhia eraldamine, mis hõlmab suure klassi jagamist palju väiksemate ja spetsialiseerunud alamklasside terveks hierarhiaks.

Pärast selle raamatu lugemist muudab enamik programmeerijaid oma lähenemist koodi kirjutamisele. Nad muutuvad oma loomingu suhtes pädevamaks, hoolikamaks ja tähelepanelikumaks. Raamat on kohustuslik lugemine kõigile programmeerijatele, kes otsivad oma töös tipptasemel.

E. Gamma, R. Helm, R. Johnson, D. Vlissides “Disainimustrid”

Objektorienteeritud programmide kujundamine pole lihtne ja kui neid on vaja uuesti kasutada, läheb asi veelgi keerulisemaks.

E. Gamma

Küsige kogenud arendajalt, millist objektorienteeritud programmeerimisraamatut peaksite lugema. Enamikul juhtudel soovitab ta seda. Selle raamatuga seoses ei kõla sõna “bestseller” piisavalt ilmekalt, sest alates selle ilmumisest on inglise keeles ja veel kolmeteistkümnes keeles müüdud üle poole miljoni eksemplari!

Väga sageli võtab algaja arendaja iseseisvalt lahenduse disainiprobleemile, mida on juba rohkem kui tuhat korda varem lahendatud, ja leiutab viierattalise jalgratta järgmise versiooni, olles tõeliselt uhke oma "uuenduslikkuse" üle. Mustrikeele valdamine võimaldab lahendada paljusid disainiprobleeme kõige optimaalsemal viisil, kulutades samas minimaalset pingutust. Kokku kakskümmend raamatus kirjeldatud mustrit pakuvad tööriistu tohutu hulga tarkvarakujundusprobleemide lahendamiseks. Raamatus sisalduv materjal on üsna keeruline ja nõuab lugejalt mõningaid teadmisi objektorienteeritud disaini valdkonnas. Mustrite valdamiseks ei piisa ainult raamatu lugemisest, selle peale tuleb põhjalikult “higistada”. Kuid teie pingutused ei lähe asjata. Raamat sisaldab 350 lehekülge ja koosneb kahest osast. Esimeses osas antakse kujundusmustrite üldine kontseptsioon ja kirjeldatakse nende praktilist rakendamist visuaalse dokumendiredaktori Lexi loomise näitel. Raamatu teine ​​osa sisaldab mustrite kataloogi, kus on üksikasjalik kirjeldus iga mustri eesmärgi, struktuuri, teostusomaduste ja rakendusnäidete kohta.

Autorite meeskond on tuntud kui Gang of Four, mistõttu raamatus toodud mustreid nimetatakse GoF-iks. Autorid jagavad kogu esitatud mustrite komplekti kolme rühma: generatiivsed mustrid, struktuurimustrid ja käitumismustrid. Generatiivsed mustrid lahendavad klasside instantseerimise (eksemplaride loomise) probleemi. Selle rühma kõige populaarsemate mustrite hulka kuuluvad AbstractFactory, FactoryMethod ja Singleton.

Struktuurimustrid on mõeldud süsteemi paigutuse probleemide lahendamiseks klasside ja objektide põhjal. Nende hulka kuuluvad sellised olulised mustrid nagu adapter, sild, komposiit, puhverserver ja fassaad. Käitumismustrid on seotud algoritmide ja klassidevahelise vastutuse jaotamise küsimustega. Siin on vaja mainida Strateegia (strateegia), TemplateMethod (malli meetod), Vaatleja (vaatleja), Command (käsk) ja Iterator (iteraator).

Ainus, mis lugejat võib segadusse ajada, on see, et raamatus on mõned näited kirjutatud hetkel vähetuntud Smalltalki programmeerimiskeeles ning klassidiagrammide kuvamiseks kasutatakse tavapärase UML-i asemel OMT-d (Object Modeling Technique).

OO&P guru Martin Fowler kirjutab: „GoF Patterns on parim objektorienteeritud disaini raamat, mis eales avaldatud. See raamat on tööstuses väga mõjukas tarkvara– vaadake vaid Java- ja .NET-i teeke, mis sõna otseses mõttes kubisevad GoF-mustritest. Objektorienteeritud disaini valdkonnas pole ühtegi asjatundjat, kellele GoF-mustrid oleksid võõrad, ja kui on, siis sellisel juhul ei saa teda suure tõenäosusega eksperdiks nimetada.

R. Martin "Puhas kood"

Koodi kirjutamise teadmine on raske töö. See ei piirdu mustrite ja põhimõtete tundmisega. Peate koodi kallal kõvasti tööd tegema.

R. Martin

Clean Code on üks edukamaid kvaliteetse koodi kirjutamise raamatuid. Raamatu maht on 360 lehekülge ilma lisadeta. Samas on see nii põnev ja ligipääsetav, et kahe-kolme õhtuga saab selle hõlpsasti kaanest kaaneni läbi lugeda. "Onu" Bob räägib meile sõbralikult, milliseid põhimõtteid peame hea koodi kirjutamiseks järgima. Raamat on täis näiteid reaalsetest rakendustest, millega autor on oma praktikas kokku puutunud. Nende hulgas on sellised tuntud tooted nagu JUnit, FitNesse, JDepend, Ant ja TomCat.

Raamat on jagatud kolme ossa. Esimene osa on "puhta" koodi kirjutamise teooria: tehnikad, mustrid ja põhimõtted, mida arendaja peab järgima. Teine osa on oma olemuselt praktiline ja kirjeldab üksikasjalikult olemasolevate rakenduste koodi "puhastamist". Kolmas osa võtab kokku kogu raamatu ja sisaldab loetelu "koodilõhnadest" ja nende kõrvaldamise meetoditest.

Teoreetilises osas kirjeldatakse üksikasjalikult muutujate nimetamise põhimõtteid, meetodeid ja klassisid, funktsioonide loomise reegleid, kommentaaride kirjutamist, koodi vormindamist, vigade käsitlemise ja ühikutestide kirjutamise põhimõtteid. Terve osa on pühendatud mitme keermega rakenduste loomise iseärasustele. Robert teeb selgeks, et hea koodi kirjutamisest ei piisa.

Seda tuleb aja jooksul puhtana hoida, et vältida "mädanemist". Seega tutvustab ta "skautide reeglit": "Jätke laagriplats puhtamaks, kui see oli saabumisel." See tähendab, et olenemata sellest, millise koodi osaga me töötame, peame lõpuks püüdma muuta selle paremaks, kui see oli. Sel juhul kood ei mädane ja jääb puhtaks.

Funktsioonide loomisel on esiplaanil kompaktsus, ühe operatsiooni reegel ja üks abstraktsioonitase - põhimõtted, mis on esmapilgul ilmselged, kuid mida programmeerijad nii sageli rikuvad. TDD tulihingelise järgijana juhib Martin tähelepanu mitte ainult lõpptoote koodi, vaid ka ühikutesti koodi “puhtuse” olulisusele. Ta märgib irooniliselt: „Millised on puhta testi eristavad tunnused? Kolm: loetavus, loetavus ja loetavus.

Võib-olla on raamatu ainus puudus selle Java-fookus. Kõik esitatud näited on kirjutatud ainult Java keeles. Samas on suur hulk vihjeid ja “koodilõhnasid” iseloomulikud peamiselt Java koodile.

Robert annab raamatu alguses programmeerimismeistrite vastused küsimusele, mis on “puhas kood”. Grady Booch vastab: "Puhas kood on lihtne ja arusaadav. Puhas kood loeb nagu hästi kirjutatud proosat. Puhas kood ei varja kunagi disaineri kavatsusi; see on täis selgeid abstraktsioone ja lihtsaid juhtimisliine." Programmeerijad, kes püüavad kirjutada "puhast koodi", peavad lihtsalt seda raamatut lugema.

D. Knuth "Programmeerimise kunst"

Parim viis millestki täielikult aru saada on proovida seda arvutiga õpetada.

D. Knuth

Programmeerija, kellel pole raamatut “Programmeerimise kunst”, on nagu vaimulik, kellel pole Piiblit. Donald Knuthi monograafiat nimetatakse sageli "Programmeerija piibliks". See sisaldab Täpsem kirjeldus ja informaatikas kasutatavate olulisemate fundamentaalsete algoritmide analüüs, samuti palju praktilisi ülesandeid esitatava materjali valdamiseks ja kinnistamiseks. Ajakiri American Scientist lülitas Knuthi töö 20. sajandi kaheteistkümne parima füüsika- ja matemaatikamonograafia hulka koos Einsteini relatiivsusteooria tööga. Raamatu edu määras esitluse kvaliteet ja üldiste programmeerimisprobleemide analüüsi sügavus.

Knuth alustas tööd programmeerimise kunstiga 1962. aastal. Autori plaani järgi peaks monograafia koosnema seitsmest köitest. Seni on ilmunud kolm esimest köidet, samuti neljanda esimene pool. Kõik praeguseks avaldatud materjalid ulatuvad ligi 3000 leheküljeni. Raamat pole sugugi lihtne lugeda (nagu Piibelgi), peamiselt seetõttu, et kõiki näiteid on käsitletud madala tasemega programmeerimiskeeles – autori hüpoteetilise arvuti MIX-i assemblerkeeles. Seetõttu ei saa programmeerija tõenäoliselt raamatut komplektina kasutada valmis retseptid konkreetsete probleemide lahendamiseks. See raamat ei anna programmeerijale kala, vaid pigem hea õngeritva, millega ta saab ilma pingutuseta ka ise kala püüda.

Esimene köide on pühendatud põhialgoritmidele ja koosneb kahest peatükist. Esimene peatükk valmistab lugeja ette raamatu kallal töötamiseks. Siin käsitleme matemaatilisi põhimõisteid ja teoreeme, millel kogu materjal põhineb. Lugejale tutvustatakse MIX "polüsatureeritud arvutit", selle arhitektuuri ja montaažikeelt. Teine peatükk on pühendatud teabestruktuuridele ja nendega töötamise algoritmidele. See hõlmab puid, mitme lingiga struktuure, lineaarseid loendeid, sealhulgas virnad, järjekorrad, tekid, tsüklilised ja topeltloendid seotud loendid Ja nii edasi.

Teine köide sisaldab kolmandat ja neljandat peatükki. Kolmas peatükk on pühendatud juhuslike arvude ja jadadega töötamisele. Neljandas peatükis kirjeldatakse aritmeetikaküsimusi, nimelt erinevat tüüpi arvusüsteemid, ujukomaarvude ja ratsionaalarvude aritmeetika, polünoomaritmeetika ja palju muud. Kolmas köide on pühendatud sorteerimis- ja otsimisalgoritmidele (vastavalt 5. ja 6. peatükk). Alates neljandast köitest on avaldatud materjale seitsmendast peatükist, mis kirjeldavad kombinatoorse otsingu küsimusi.

Neljandasse köitesse tuleb autori plaanide põhjal ka kaheksas peatükk, mis käsitleb rekursiivseid algoritme. Viies köide sisaldab materjale süntaktiliste algoritmide, sealhulgas leksikograafilise ja süntaktilise otsingu kohta. Kuuenda ja seitsmenda köite ilmumise ootel on pühendatud keeleteooriale ja koostajatele.

Bill Gates ütles oma arvustuses Knuthi töö kohta: "Kui arvate, et olete tõesti hea programmeerija... lugege programmeerimise kunsti (Knuth)... Kui saate kogu jutu läbi lugeda, peaksite kindlasti saatma mulle Jätka." Tsitaat rõhutab veel kord, et hoolimata materjali keerukusest, tõeline professionaal Peaksite kindlasti valdama Donald Erwin Knuthi teost "Programmeerimise kunst".

E. Hunt, D. Thomas “Pragmaatik programmeerija”

Pragmaatilised programmeerijad ei karda vastutust. Selle asemel leiavad nad rõõmu väljakutsete vastuvõtmisest ja oma kogemuste jagamisest.

Andrew Hunt

Raamat “The Pragmatist Programmer” vastab täielikult oma pealkirjale. Vikisõnaraamat ütleb, et pragmaatik on see, kes asetab praktilise kasulikkuse kõigest kõrgemale. Pragmaatilised programmeerijad keskenduvad eelkõige elluviidud projektide praktilisele edule. Autorid on oma ulatuslikule programmeerimiskogemusele tuginedes loonud programmeerijatele struktureeritud praktiliste näpunäidete komplekti. Väike suurus Raamat (270 lk) viitab programmeerija jaoks olulise teabe suurele kontsentratsioonile.

Peaaegu kõik raamatus välja toodud teemad on selgitatud ilmekate analoogiate abil, mis on kohati silmatorkavad oma täpsusega. Raamat tõmbab paralleele halva koodi ja katkiste akende teooria, puutöö ja programmeerijaks olemise, auto juhtimise ja koodi kirjutamise, jälituskuulide tulistamise ja tarkvara prototüüpide loomise, miiniväljal kõndimise ja juhuse jaoks programmeerimise vahel. Iga osa lõpus on arutlusküsimused ja harjutused, mis rõhutab taaskord raamatu praktilist suunitlust.

Üks tähelepanuväärsemaid programmeerimise põhimõtteid, mille autoritele võlgneme, on DRY (Ära korda ennast) põhimõte, mis vene keelde tõlgituna tähendab: "Ära korda ennast." See tähendab, et igal teadmisel peab olema süsteemis ainulaadne ja üheselt mõistetav esitus. Selle põhimõtte järgimine võimaldab suurendada tarkvaratoote töökindlust, saadavust ja hoolduse lihtsust.

Peatükis, mis on pühendatud üldine filosoofia pragmaatilist programmeerimist, saame teada, kuidas autorid näevad pragmaatilist programmeerijat: ta võtab alati vastutuse oma koodi eest, jälgib oma toote seisukorda, täiustab pidevalt, suhtleb ja leiab kasutajatega kompromissi. Peatükis “Pragmaatiline lähenemine” räägitakse üldistest meetoditest projektide töömahukuse arendamiseks ja hindamiseks. Kõige olulisem peatükk "Paindlikkus versus nõrkus" selgitab, kuidas luua süsteeme, mis on tõeliselt paindlikud ja muutustele vastupidavad. Peatükist “Enne projekti alustamist” saate tutvuda süsteeminõuete koostamise ja kinnitamise protseduuriga. Pragmatic Projects tutvustab meile reaalmaailma projektide loomise kriitilisi aspekte, nagu meeskonnatöö, testimine ja dokumentatsioon.

Ainus, mis raamatu muljet võib rikkuda, on ebapiisavalt kvaliteetne tõlge vene keelde ja rohkete kirjavigade esinemine. Raamatut on kõige parem lugeda originaalis inglise keel. Ma ei saanud jätta nõustumata Kent Becki arvustusega: „Selle raamatu suurepärane asi on see, et see hoiab tarkvara kirjutamisprotsessi heas vormis. [Raamat] edendab teie jätkuvat kasvu ja selle on selgelt kirjutanud inimesed, kes teavad programmeerimisest palju." Kui soovite programmeerijana pidevalt areneda, peate seda raamatut lugema.

Järeldus

Heade programmeerimisraamatute tähtsust on raske üle hinnata. Kõik kirjeldatud raamatud võimaldavad teil teha tohutu arenguhüppe. Programmeerimiskunst loob tugeva aluse, õpetades meile põhialgoritme ja programmeerimistehnikaid. "Perfect Code" võimaldab teil jõuda tarkvaradisaini uuele kvalitatiivsele tasemele. "Puhas kood" ja "Refactoring" õpetavad meid olema koodi kvaliteedi suhtes tähelepanelikumad ja hoidma seda ideaalses korras. “The Pragmatist Programmer” soovitab, kuidas tarkvaraarenduses reaalselt praktilist edu saavutada. Design Patterns pakub mustrite rasket suurtükki mitmesuguste disainiprobleemide lahendamiseks.

Seotud väljaanded