JavaRush /Java Blog /Random-TL /Nangungunang 10 Programming Books para sa mga Nagsisimula...
Max Stern
Antas
Нижний Новгород

Nangungunang 10 Programming Books para sa mga Nagsisimula

Nai-publish sa grupo
Mayroon akong kasamahan na nagsagawa ng maraming teknikal na panayam para sa mga Javaist sa hinaharap. Minsan ay tinanong ko siya kung ano ang nakakaimpluwensya sa desisyon na kumuha ng isang aplikante na walang tunay na karanasan kapag pumipili sa mga taong may humigit-kumulang pantay na kasanayan sa wika. Dahil sa sitwasyon sa merkado, sa tingin ko ang tanong na ito ay may kaugnayan sa marami sa inyo. Nangungunang 10 libro sa programming para sa mga nagsisimula - 1"Passion para sa teknolohiya, ang kakayahang pumili ng pinakamahusay na pagpipilian para sa paglutas ng isang problema, pangkalahatang IT erudition, isang pag-unawa sa kung ano ang naghihintay sa kanya sa trabaho" - ito ang kanyang sagot. Minsan kong inilarawan sa isang artikulo ang mga programming book para sa mga nagsisimula na nakatulong sa akin na matuto ng Java. Sa artikulong ito, magtutuon ako ng pansin sa mga publikasyon na makakatulong sa isang baguhan na programmer na makamit ang mismong IT erudition, pag-unawa sa trabaho sa hinaharap, at pasimplehin din ang gawain ng pagpili ng pinakamahusay na solusyon. Iyon ay, kumuha ng trabaho at gumanap nang mahusay hangga't maaari dito mula pa sa simula. Inipon ko ang listahang ito ayon sa sarili kong mga kagustuhan, kaya maaaring ito ay medyo subjective. Mayroong parehong mga klasikong programming textbook para sa mga mag-aaral at mga sangguniang libro para sa mga programmer sa lahat ng henerasyon.

Pagpapabuti ng code at pagiging produktibo

Hindi sapat ang pagsulat lamang ng code. Mahalagang maisulat ito nang maayos, mapagbuti ito, at maunawaan din kung paano ito binuo sa pangkalahatan. Ang mga sumusunod na aklat para sa pagsisimula ng mga programmer at iba pa ay nakatulong sa higit sa isang henerasyon ng mga espesyalista na makayanan ang mahirap na teknolohikal na proseso ng pagbuo ng software.

Pragmatist programmer. Journeyman to Master (Andrew Hunt, David Thomas)

Orihinal na pamagat: The Programmatic Programmer mula sa From Journeyman to Master nina Andrew Hunt at David Thomas Nangungunang 10 libro sa programming para sa mga nagsisimula - 2Kung hindi mo pa nabasa ang aklat na ito, malamang na paulit-ulit kang nakatagpo ng mga panipi mula dito sa mga forum at espesyal na mapagkukunan. Ang imahe ng isang pragmatist programmer sa aklat na ito ay napakalinaw at idealized na... matatawag siyang isang romantiko, gaano man ito kabalintunaan. Gayunpaman, ang payo mula sa aklat ay praktikal at may kaugnayan, sa kabila ng katandaan nito. Hindi ko alam kung ano ang ihahambing sa "The Pragmatist Programmer" sa mundo ng mga programming book. Ang pinakamalapit na mga analogue sa mundong ito ay ang "Old Testament" o ilang super-cool na cookbook. Sa "Pragmatics" lahat ay napaka-espesipiko at lubos na naaangkop sa pagsasanay. Minsan umabot sa punto ng pagiging banal (halimbawa, ang seksyon sa epektibong komunikasyon ay naglalaman ng mga pangunahing patakaran ng etika sa negosyo), ngunit kung minsan ang payo mula sa libro ay hindi maaaring palitan, lalo na kung ang isang baguhan na developer ay walang pasyente at matulungin na tagapagturo. Ito ay mga tip tungkol sa code repeatability, prototyping, estimating. O isang paalala ng imposibilidad ng paglikha ng isang perpektong programa. Mayroon ding mga kapaki-pakinabang na teknikal na punto na nauugnay, halimbawa, sa pag-debug ng code, pagsubok sa yunit o bilis ng mga algorithm... sa madaling salita, kung ano ang kailangan mong ihanda para sa isang karera bilang isang programmer.

Refactoring Pagpapabuti ng Umiiral na Code (Martin Fowler)

Orihinal na pamagat: Refactoring: Pagpapabuti ng Disenyo ng Umiiral na Code ni Martin Fowler, kasama si Kent Beck Nangungunang 10 libro sa programming para sa mga nagsisimula - 3Kung hihilingin mo sa isang tao na ilista ang pinakamahusay na mga libro sa pagbuo ng karera sa lahat ng panahon, tiyak na may magbanggit ng "Refactoring." Maaaring may magsabi na ang aklat na ito ay luma na, at sa ilang mga paraan sila ay magiging tama. Ito ay isinulat noong panahong ang refactoring ay hindi pa isang unibersal na tuntunin, at ang ilan sa mga katotohanan dito ay halata sa mga naghahangad na programmer ngayon. Gayunpaman, ang mga pamamaraan ng refactoring ay inilarawan dito nang maayos at detalyado (sa ilang mga lugar, sasabihin ko pa nga, verbosely) na ang bawat baguhan ay makakahanap ng isang bagay na kapaki-pakinabang dito. Ilang taon na ang nakalilipas, lumabas ang na-update na edisyon ng aklat at nagdagdag ng mga bagong diskarte, na napakahusay. Bukod pa rito, ang mga halimbawa sa aklat na ito ay nakasulat sa Java. Ang tanging downside na maaari kong banggitin ay ang verbosity. Gayunpaman, inirerekumenda ko ang libro.

Malinis na Code (Robert Martin)

Orihinal na pamagat Clean Code: A Handbook of Agile Software Craftsmanship ni Robert C. Martin Nangungunang 10 libro sa programming para sa mga nagsisimula - 4Ang aklat na ito, bagama't mas bago kaysa sa nauna, ay naging klasiko din ng mga aklat sa programming. "Uncle Bob," bilang Robert Martin kung minsan ay tinatawag sa global programming community, ay isa sa mga may-akda ng Agile manifesto, pati na rin ang ilan sa mga prinsipyo ng modernong "pure" na programming, halimbawa, SOLID. Ang isa sa mga pangunahing leitmotif ng aklat ay maaaring isaalang-alang... empatiya o simpleng mabuting saloobin sa lahat na kailangang magtrabaho sa iyong code (kabilang ang iyong sarili sa hinaharap). Karamihan sa mga panuntunan ng "Clean Code" ay batay sa simpleng prinsipyo at sentido komun na ito. Karamihan sa mga panuntunan at payo ay tila napaka tama, ang uri na intuitively umiikot sa iyong ulo, ngunit ito ay hindi madaling malinaw na bumalangkas sa mga ito. Gayunpaman, ang isang tao ay maaaring makipagtalo sa ilan sa mga kaisipan ng may-akda: kung minsan siya ay napaka-categorical. Halimbawa, isinulat niya na ang magandang code ay hindi nangangailangan ng pagkomento. Gayunpaman, ang libro ay dapat basahin.

Mabisang gumagana gamit ang legacy code (Michael Feathers)

Orihinal na pamagat Working Effectively with Legacy Code ni Michael Feathers Nangungunang 10 libro sa programming para sa mga nagsisimula - 5Hindi ka inihanda ng Life... Hindi, talaga: kung nag-aaral ka pa lang, hindi mo maiisip kung gaano kasakit magtrabaho sa mga base ng legacy code, na marahil ay isinulat ng lolo ni Bill Gates. Ang code na ito ay madalas na nakasulat na ganap na naiiba mula sa kung ano ang iyong nakasanayan, at ito ay naidokumento nang napakahina na kung minsan ay gusto mong hanapin ang may-akda nito at... Sayang: ang buhay ng isang Java programmer sa malalaking proyekto ay madalas na nauugnay sa legacy na suporta. Makakatulong ang aklat na ito sa mga teknikal na aspeto ng pagtatrabaho sa sinaunang code, ngunit makakatulong din ito sa iyo na tanggapin ang iyong kapalaran. At oo, seryoso ako. Ang aklat na ito ay magiging kapaki-pakinabang sa iyo kung ang iyong mga pasyalan ay matatag na nakatakda sa isang outsourcing o kumpanya ng produkto na may malalaking proyekto.

Ulo muna. Mga Pattern ng Disenyo (Eric Freeman, Bert Bates, Kathy Sierra, Elizabeth Robson)

Orihinal na pamagat Head First Design Patterns: A Brain-Friendly Guide nina Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson Ang Nangungunang 10 libro sa programming para sa mga nagsisimula - 6mga pattern ng disenyo ay ang mga lohikal na alituntuning may magandang anyo na, kung hindi mo pag-aaralan ang mga ito sa paglipas ng panahon, ay maiisip ( o hindi...) at literal na nagiging superpower ng isang baguhan na programmer kung sinimulan mong tingnan ang mga ito nang maaga hangga't maaari. Oo, sa una ay kapaki-pakinabang na makipaglaro sa isang medyo kumplikadong personal na proyekto at subukang hatiin ito sa mga subtask sa iyong sarili... at sa huli ay mahanap ang parehong pattern. Gayunpaman, pagdating sa trabaho, hindi palaging sapat na oras para sa mga eksperimento. Noong nakuha ko ang internship, kaunti lang ang alam ko tungkol sa mga pattern: habang nag-aaral sa JavaRush, nilaktawan ko lang ang lahat ng mga pabrika, singleton, injection, dependencies, iniisip na malalaman ko ito kapag kinakailangan. Gayunpaman, ito ay kinakailangan upang malaman ito nang napakabilis, at ito ay ang aklat na "Una ang Ulo. Mga Pattern ng Disenyo" ay nakatulong sa akin dito. Madali itong isulat, puno ng mga ilustrasyon at katatawanan... Sa palagay ko ang pagtatanghal para sa paksang "mga pattern ng disenyo" ay napakahalaga: maaari itong iharap sa isang napaka-boring na paraan, o maaari itong iharap tulad ng sa Head First. Isang magandang karagdagan sa "Clean Code" at/o "Refactoring"!

Arkitektura ng Computer at Pangkalahatang Computer Science

Gaano kahalaga para sa isang programmer sa hinaharap na maunawaan ang arkitektura ng computer, malaman kung paano nakaayos ang mga operating system, at kung paano nakaayos ang mga database? Ito ay hindi isang katotohanan na ang kaalamang ito ay magiging kapaki-pakinabang sa iyo sa iyong trabaho. Ngunit tiyak na tutulungan ka nilang ipakita ang iyong pagkahilig sa larangan ng IT at kaalaman sa IT. At ang pinakamahalaga: kung alam mo kung paano gumagana ang lahat, makakatulong ito sa iyo na mas mahusay na malutas ang mga problema. Impormasyon 100%. Kaya narito ang dalawa pang aklat na tutulong sa iyo.

Code (Charles Petzold)

Orihinal na pamagat Code: Ang Nakatagong Wika ng Computer Hardware at Software ni Charles Petzold Nangungunang 10 libro sa programming para sa mga nagsisimula - 7Ang unang edisyon ng "Code" ay nakita ang mundo noong unang bahagi ng 2000s, ngunit sa katunayan maaari itong lumitaw nang mas maaga o mas bago - at may kaugnayan pa rin. Ang katotohanan ay na sa aklat na ito ang pagpapatakbo ng isang computer ay ipinaliwanag sa isang napaka, napakababang antas, simula sa kung paano gumagana ang mga napaka-zero at ang mga iyon, at ang pinakaunang teknikal na halimbawa ay isang flashlight circuit, na maaaring ituring na pinakasimpleng isa. -bit computer... Hindi, hindi mo akalain na ang lahat ng nasa libro ay napaka primitive. Sa katunayan, eksakto ang kabaligtaran... Ito ay naglalarawan ng mga circuit ng computer, na may mga utos, ang pagpapatakbo ng memorya at mga operating system sa kanilang pinakabuod. Marahil ito ay pagkatapos basahin ito na naunawaan ko kung paano gumagana ang mga computer. Kahit na ang arkitektura at set ng pagtuturo ng processor ay nagbabago, at ang memory bandwidth ay tumataas, sa esensya, ang mga computer ay gumagana nang eksakto pareho. Kailangan ba ng isang Java programmer ang kaalamang ito? Napakakaunting tao ang mangangailangan ng mga ito nang direkta sa kanilang trabaho. Ngunit sa hindi direktang paraan, madalas akong natulungan sa aking trabaho sa pamamagitan ng katotohanan na naiintindihan ko kung paano gumagana ang lahat.

Panimula sa Computer Science (Glenn Brookshire, Dennis Brilov)

Orihinal na pamagat Computer Science: Isang Pangkalahatang-ideya ni Glen Brookshear at Dennis Brylow Nangungunang 10 libro sa programming para sa mga nagsisimula - 8Ang aklat na ito ay dumating sa akin pabalik sa unibersidad, noong ako ay nag-aaral ng mga pangunahing kaalaman sa computer science. Ako lang ang nakatanggap ng pagsasalin ng ikaanim na edisyon, at sa kasalukuyan ang ika-13 na edisyon ay napapanahon. Ang aklat ay isang pangunahing kurso sa computer science na itinuro sa mga unibersidad sa Estados Unidos at iba pang mga bansa sa loob ng maraming taon. Ang saklaw ng materyal sa loob nito ay napakalawak: arkitektura ng makina, mga sistema ng numero, pagproseso ng data, mga operating system, mga prinsipyo ng pagbuo ng database, mga istruktura ng data, mga istruktura ng file, at iba pa. Hindi lahat ng mga seksyon ng aklat ay nakasulat nang pantay-pantay. Halimbawa, minsan akong nalito sa mga seksyon tungkol sa mga pamamaraan ng disenyo at database, ngunit ang mga seksyon sa mga sistema ng numero, bitwise na kalkulasyon, arkitektura ng PC at mga istruktura ng data ay talagang sumasalamin sa akin. Ang pinaka-cool na bagay tungkol sa libro ay ang malaking bilang ng mga pagsasanay na may mga susi. Bilang karagdagan sa mga mag-aaral, ang naturang libro ay malamang na kailangan lalo na ng mga taong nagtuturo sa sarili na walang teknikal na edukasyon upang punan ang mga puwang at makakuha ng ideya ng computer science sa pangkalahatan.

Algorithm at istruktura ng data. At isa pang pag-atake!

Dahil sa kung paano naging mataas ang antas ng modernong programming, ang kaalaman sa mga algorithm ay naging hindi gaanong mahalaga. Ngayon ay sapat na upang gamitin ang kinakailangang aklatan at huwag i-rack ang iyong mga utak tungkol sa kung paano pinakamahusay na ayusin ang array. Gayunpaman, kakailanganin mo pa ring i-rack ang iyong mga utak sa trabaho, at higit sa isang beses. Tandaan ang puntong "ang kakayahang pumili ng pinakamahusay na solusyon na posible" mula sa mga kinakailangan para sa isang baguhan na programmer? Kaya, anuman ang sabihin ng sinuman, itinuturing kong mahusay na pag-upgrade ang mahusay na algorithmic na pagsasanay para sa paghahanap ng pinakamainam na solusyon. Samakatuwid, ang susunod na dalawang libro ay tungkol sa kanila. Tungkol sa mga algorithm.

Inuuga namin ang mga algorithm. Isang may larawang gabay para sa mga programmer at sa mausisa na si Aditya Bhargava

Orihinal na pamagat: Grokking Algorithms: Isang may larawang gabay para sa mga programmer at iba pang mausisa na mga tao ni Aditya Y. Bhargava Nangungunang 10 libro sa programming para sa mga nagsisimula - 9Ang may-akda mismo ay nagsusulat sa simula ng aklat na ang mga algorithm ay hindi kaagad dumating sa kanya, at sinubukan niyang isulat ang "Grokking Algorithms" kaya na ito ay madaling basahin. Ito ay idinisenyo para sa mga baguhang programmer, iyon ay, ang mga maaaring magsulat ng "hello, world" at alam kung ano ang int, string, loop, branch at array. Well, maaari nitong ipakita ang array sa screen. Ang kinakailangang kaalaman sa matematika ay humigit-kumulang sa antas ng 6-7 na baitang ng sekondaryang paaralan nang walang anumang mga kapintasan. At ito ang unang seryosong plus ng libro. Hindi nito sinusubukang isipin ang mambabasa bilang isang mag-aaral sa matematika, tulad ng ginagawa ng maraming publikasyon sa paksa. Iyon ay, kung natatakot ka sa matematika, mga algorithm, sinubukan na matutunan ang huli at hindi naiintindihan ang anuman, ang aklat na ito ay perpekto para sa iyong rehabilitasyon sa iyong sariling mga mata. Ang pangalawang positibong punto ay ang libro ay tumatalakay sa isang bagay na maaaring maging kapaki-pakinabang sa pagsasanay (ang pag-unawa na ito ay tiyak na totoo). Nagsisimula ito sa isang paliwanag ng kakanyahan ng binary na paghahanap at kahusayan - literal sa mga daliri at may maraming mga larawan. Pangatlo, naglalaman ang libro ng maraming tanong at pagsasanay (ang mga halimbawa ng code ay nasa Python, ngunit hindi ito napakahalaga). Isang punto na maaaring positibo para sa ilan, ngunit negatibo para sa iba: ang aklat ay hindi nagpapanggap na isang sumasaklaw na aklat ng sanggunian. Sabihin nating sa mga karaniwang tinatanggap na algorithm para sa pag-aaral, dalawa lang dito - ang hindi mahusay na insertion algorithm at ang mahusay na quicksort algorithm. Hindi ko alam kung bakit hindi dapat isaalang-alang ng may-akda ang iba pang mga algorithm, sabihin ang bubble o pagsamahin. Sa katunayan, ang algorithm ng pagsasama ay binanggit sa aklat, ngunit sa madaling sabi, nang walang pagsusuri, at lamang sa paghahambing sa mabilis na pag-uuri. Sa ibang mga paksa ang lahat ay eksaktong pareho. May mga pangunahing kaalaman na sinasaklaw nang mahusay, ngunit kung minsan ay gusto mo ng mas malalim na pagpapatuloy, ngunit wala talaga. Sa isang salita, ito ay isang napaka-pangunahing libro, pagkatapos nito, malamang, gugustuhin mong makahanap ng isang libro kung saan ang lahat ay inilarawan nang mas seryoso. Halimbawa, ang sumusunod.

Algorithm sa Java (Robert Sedgwick, Kevin Wayne)

Orihinal na pamagat: Algorithms nina Robert Sedgewick at Kevin Wayne Nangungunang 10 Programming Books para sa mga Nagsisimula - 10Sa katunayan, ang aklat na ito ay parehong nakakaakit at nakakatakot. Matatakot ka nito kahit man lang sa dami nito na... maraming pahina at isang tiyak na katangiang pang-akademiko. Samakatuwid, kung hindi ka hilig dito, mga akademiko, o hindi nakakaramdam ng tiwala sa matematika (high school, ang pinakasimpleng elemento ng mas mataas na matematika para sa mga inhinyero), kung gayon mas mabuting huwag magsimula sa aklat na ito. Walang napakaraming mga terminong pangmatematika doon, ngunit ang diskarte mismo ay nagpapahiwatig ng gayong pag-iisip. Ngunit pagkatapos ng nakaraang libro - bakit hindi. Bibigyan ka niya ng gabay. Ang unang kabanata sa ilang mga lugar ay nagbubuod ng kaalaman sa Java at tumutukoy sa ilang istruktura ng data. Mas mainam na basahin ito nang pili, ngunit hindi makakasamang pag-aralan ang ikalawa at ikatlong kabanata nang may sapat na detalye. Ang iba ay puno rin ng kawili-wili at masusing impormasyon tungkol sa mga graph at string. Sasabihin ko na ang mga bagay na tulad nito ay VERY helpful sa paghubog ng programming mindset. Tungkol sa pagtatanghal, nararamdaman ng isang tao na ang may-akda ay isang guro, ngunit sanay na makipagtulungan sa mga taong higit na interesado at handa. Kaya maging matiyaga at magbasa. At lutasin din ang mga problema, maraming mga ito dito. Sa pamamagitan ng paraan, sa Coursera maaari kang makahanap ng isang kurso sa mga algorithm na nilikha ng mga may-akda ng libro.

Alamin ang iyong balangkas

At sa wakas, isa pang libro. At muli - kapaki-pakinabang.

Spring in Action (Craig Walls)

Orihinal na pamagat: Spring in Action ni Craig Walls Nangungunang 10 programming books para sa mga nagsisimula - 11Isang napakasikat na libro na may pantay na sikat na pabalat na may "man in a skirt" na hindi talaga nakasuot ng palda. Sa totoo lang, ang pag-aaral ng Spring mula sa isang libro lamang ay isang napakahirap na gawain, kahit na subukan mong subukan ang lahat sa pagsasanay nang sabay-sabay. Sa pamamagitan ng paraan, maaari itong maging lubhang mahirap na maunawaan kung paano gawin ito pagkatapos basahin ito o ang kabanata na iyon. Nagtrabaho ako sa aklat na ito noong nakakuha ako ng internship sa isang kumpanya, at kapag ginamit sa ganitong paraan, nakakatulong ito nang malaki. Bukod dito, kahit ngayon, nagtatrabaho na bilang isang programmer, patuloy akong bumalik dito. Sa madaling salita, maaari kang makakuha ng pangkalahatang ideya ng pangunahing balangkas ng Java sa tulong nito.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION