Obavezna lista knjiga za Java programere (preko 1000 PDF-ova, sa linkovima za preuzimanje)
1. 🔥🔥🔥 Put ka boljoj Javi
Sve moje originalne članke i materijale za učenje programiranja, nastale tokom skoro 10 godina, okupio sam na jednom sajtu — namenjen je apsolventima informatike na kampus-pristupu, kao i kandidatima sa do tri godine radnog iskustva — portal
2. 👍🏻 Priručnik za preokret u intervjuima — kliknite za besplatno preuzimanje
3. ⭐ Verovatno najpotpuniji PDF resurs na celom webu za učenje i traženje posla — kliknite za besplatno preuzimanje
4. 😜 Pronašao sam prilično dobar set putanja učenja za različite programske jezike i oblasti informatike — pogledajte ovde
Kliknite na bilo koju stavku sadržaja za direktan skok do odgovarajuće kategorije knjiga. Ponekad navigacija ne radi uvek kako treba... ako ne prebaci automatski, samo malo skrolujte nadole — sve knjige se nalaze na ovoj istoj stranici.
Ovaj repozitorijum održavam sam. Lokalno imam preko 1100 knjiga, ali ih moram upload-ovati postepeno — ažuriram ga samo u slobodno vreme. Do sada je dodato više od 1000. Ako knjiga koja vam treba nije tu, posetite javasi.dev i javite se — postepeno ću je dodavati. Snaga jednog čoveka je ograničena — hvala na razumevanju.
- 01. Uvod
- 02. Alati
- 03. Frejmvorci
- 04. Baze podataka
- 05. Konkurentno programiranje
- 06. JVM
- 07. Optimizacija performansi
- 08. Dizajn paterni
- 09. Operativni sistemi
- 10. Računarske mreže
- 11. Strukture podataka i algoritmi
- 12. Intervju
- 13. Big Data
- 14. Arhitektura
- 15. Menadžment
- 16. Proširenja
- 17. Dodatak
- 18. Život
- Izjava o odgovornosti
Ukratko o tome zašto sam proveo više od pola meseca sastavljajući ovu listu. Razlog je što je znanje mnogih čitalaca razbacano i nepovezano, a tehničkih knjiga ima previše. Sa ovom listom, početnici bez iskustva (ili sa malo iskustva) pri učenju odjednom dobiju mnogo širi pogled: izbegavaju slepe puteve i iskoriste ograničenu energiju za znatno efikasnije učenje.
- Za poziciju juniorskog Java inženjera dovoljno je pročitati knjige iz kategorija: uvod, alati, frejmvorci i baze podataka;
- Za poziciju seniorskog Java inženjera potrebno je pročitati knjige o konkurentnom programiranju, internim slojevima i optimizaciji performansi;
- Za sledeći korak napredovanja, krenite sa knjigama o dizajn paternima, operativnim sistemima, računarskim mrežama, strukturama podataka i algoritmima;
- I još jedno: pre prijave za posao, obavezno intenzivno ponavljajte materijale za intervjue;
- Ako imate dovoljno vremena, krenite i sa knjigama o Big Data, arhitekturi i menadžmentu;
- Ako vremena ima i dalje, kreću knjige o DDD-u, blokčeinu, veštačkoj inteligenciji, pretraživačima, bezbednosti mreža, redovima poruka, cloud računarstvu, kontejnerima, pametnim kućama itd.;
Kada se zasitite tehnike, možete preći na knjige o finansijama — npr. Xiang Shuai-ov kurs finansija na Pekinškom univerzitetu, ili Li Xiaolai-jevo „učiti, učiti, ponovo učiti". Što se tiče razmišljanja i saznanja, toplo preporučujem „Većina koja ćuti" — zbirku eseja mog idola, Wang Xiaobo-a.
Na kraju, ma šta se dešavalo — najvažnije je živeti!
Sve knjige su dostupne za preuzimanje u GitHub repozitorijumu JavaBooks. Otvori issue ako tražiš neku koja nije tu.
Uvod
- Put ka boljoj Javi
- Java tutorijal sa 115k+ zvezdica na GitHub-u
- Head First Java
- Java — ključne tehnologije (tom)
- Razmišljanje o programiranju u Javi
- Java 8 u praksi
- Java — pregled ključnih pojmova
- Java — srž osnova
- Prva linija koda — Java
- Luda Java predavanja
- Heima programer — samoučnik za Javu
- Java — skica za ponavljanje softverskog razvoja
- Java — programski jezik
- Java — od uvoda do majstorstva
- Java — od početnika do eksperta
- Java — tehnički priručnik
- 100 zanimljivih primera programiranja u Javi
- Java uvod 123
- Java — mrežno programiranje
Alati
- Maven u praksi
- Maven — vodič za početnike
- Git — autoritativni vodič
- Beleške o učenju razvoja Eclipse plaginova
- Priručnik za sisteme logovanja (Log4j, SLF4J, Logback, Log4j 2)
- IntelliJ IDEA — tematski tutorijal na pojednostavljenom kineskom (elektronsko izdanje, 2015)
- GitHub — uvod i praksa
Frejmvorci
- SpringBoot u praksi (4. izdanje)
- SpringMVC — vodič za početnike
- MyBatis — od uvoda do majstorstva
- MyBatis — vodič za početnike
- Hibernate u praksi
Struts2
- Struts2 — tehnike razvoja i strategije integracije
- Struts2 — unutrašnja tehnologija: detaljna analiza arhitekture i principa implementacije
Spring
- Spring — pregled pojmova
- Spring — vodič za početnike
- Spring — tehnički priručnik
- Spring — otkriveno
- Spring u praksi
Netty
- Netty — put napredovanja: učenje kroz primere
- Netty — autoritativni vodič
- Netty u praksi
Baze podataka
- Osnovni tutorijal o sistemima baza podataka
- Dizajnirajte bazu podataka sami
- SQL Server 2008 u praksi
SQL
- Head First SQL
- SQL — šta morate znati
- SQL — vodič za učenje
MySQL
- MySQL — šta morate znati
- Duboko i jasno: MySQL
- MySQL — unutrašnja tehnologija: InnoDB storage engine
- MySQL — unutrašnja tehnologija: SQL programiranje
- MySQL — optimizacija performansi i dizajn arhitekture
- MySQL visokih performansi
Redis
- Redis — vodič za početnike
- Redis — dizajn i implementacija
- Redis — duboka avantura: ključni principi i praktične primene
- Redis u praksi
- Redis — vodič za početnike
- Analiza izvornog koda Redisa
MongoDB
- MongoDB — autoritativni vodič
- MongoDB u praksi (2. izdanje)
Konkurentno programiranje
- Lepota konkurentnog programiranja u Javi
- Majstorstvo u konkurentnom programiranju Jave
- Duboko i jasno: Java multi-threading
- Java dizajn programa visoke konkurentnosti u praksi
- Java konkurentno programiranje u praksi
- Umetnost konkurentnog programiranja u Javi
- Java multi-threading — praktičan vodič
JVM
- Duboko razumevanje Java virtuelne mašine — Zhou Zhiming
- Duboko razumevanje Java virtuelne mašine — rezime
- Duboko razumevanje Java modela memorije
- Java virtuelna mašina u praksi — dijagnostika kvarova i optimizacija performansi
- Beleške o učenju Java JDK-a
Optimizacija performansi
- Umetnost izmene koda
- Pisanje kvalitetnog koda: 151 savet za unapređenje Java programa
- Čist kod
- Lepota koda — izbor
- Efikasno kodiranje: Java priručnik za razvoj
- Alibaba Java priručnik za razvoj
- Refaktorisanje
- Effective Java
- Optimizacija performansi Java programa
- Put samousavršavanja Java programera
- Put samousavršavanja Java inženjera
- Java — autoritativni vodič kroz performanse
- Optimizacija JVM performansi
- Optimizacija Tomcat performansi
- Oracle — vodič za preživljavanje optimizacije performansi
- 21 najbolja praksa optimizacije MySQL performansi
Dizajn paterni
- 23 dizajn paterna — ključni pojmovi
- Razgovor o dizajn paternima
- Dizajn paterni: osnova za višekratnu upotrebu objektno orijentisanog softvera
- Zen dizajn paterna
- Duboko i jasno: dizajn paterni
- Head First dizajn paterni
Operativni sistemi
- Operativni sistemi — ključni pojmovi
- Operativni sistemi — na jednu nit
- Duboko razumevanje računarskih sistema
- Linux i Unix — vodič za shell programiranje
- Principi operativnih sistema
- Filozofski principi operativnih sistema
- Kako program postaje pokrenut
- Kako računar postaje pokrenut
- Upoznavanje sa operativnim sistemima
- Windows — principi i implementacija jezgra
- Moderni operativni sistemi (originalno izdanje)
- Moderni operativni sistemi — principi i implementacija
- Uvod u računarske sisteme
Linux — osnove
- Bird-ov Linux privatni recept
- Linux — korak po korak (2. izdanje)
- Linux programiranje
- Linux — kompletno: komandna linija i shell skript programiranje
Linux — programiranje okruženja
- Linux-Unix — priručnik za sistemsko programiranje
- Linux — programiranje servera visokih performansi
- Napredno programiranje u Unix okruženju
Linux — jezgro
- Duboko razumevanje Linux jezgra
- Dublje u arhitekturu Linux jezgra
- Analiza scenarija izvornog koda Linux jezgra
- Linux jezgro — potpuni komentari (uz izvorni kod linux 0.11, super potpuni komentari)
Računarske mreže
- Računarske mreže — pristup odozgo nadole
- HTTP ilustrovano
- TCP/IP ilustrovano
- Kako su mreže povezane
- HTTP — sveobuhvatni pregled
- Java2 — unutrašnjost mrežnih protokola
- TCP/IP detaljno
- TCP/IP mrežno programiranje
- HTTP — autoritativni vodič
Linux — mrežno programiranje
- Linux — programiranje servera sa više niti
- Unix mrežno programiranje
- Duboko razumevanje unutrašnjosti Linux mrežnih tehnologija
Wireshark
- Wireshark — analiza paketa u praksi
- Wireshark — umetnost mrežne analize
- Wireshark mrežna analiza — ovako je lako
Strukture podataka i algoritmi
- Aha algoritmi
- Programerski biseri
- Programerski biseri — nastavak
- Razgovor o strukturama podataka
- Zanimljivo učenje algoritama
- Analiza struktura podataka i algoritama — opisano Javom
- Digitalna obrada slike — algoritmi opisani Javom
- Algoritmi
- Uvod u algoritme
- Algoritmi ilustrovano
- Java — često korišćeni algoritmi
- Java strukture podataka i algoritmi
- BAT LeetCode — priručnik za rešavanje zadataka
Intervju
- 2020 — Bytedance Java inženjerska pitanja za intervju
- Beleške Google-ovog starijeg kolege za rešavanje zadataka
- BAT — 80 najčešćih pitanja na intervjuu
- Pitanja sa intervju u vodećim internet kompanijama
- Lepota programiranja
- Programerski biser intervjua
- Mač ponude: poznate kompanije — intervjueri detaljno objašnjavaju tipične programske zadatke
- Programerski vodič za intervju iz koda — optimalna rešenja zadataka iz algoritama i struktura podataka IT džinova
- Kako rešavati zadatke na LeetCode-u
- LeetCode — optimalna rešenja
- 2020 — najnoviji materijali sa Java pitanjima za intervju
- Najnoviji programerski biser Java intervjua
- JavaGuide — intenzivna priprema za intervju
- Java — pregled ključnih znanja za intervju
- Java — pitanja sa intervju i odgovori
- Šta obavezno pitaju na intervjuu: JVM i optimizacija performansi
- Spring — pitanja sa intervju
- Dubbo — pitanja sa intervju
- Šabloni za CV i optimizacija
Big Data
- Big Data — Tu Zipai
- Vrh podataka — Tu Zipai
- Kafka — autoritativni vodič
- Spark — brza analiza velikih podataka
- Spark — brza obrada podataka
- Hadoop — autoritativni vodič
- Hadoop — unutrašnja tehnologija
- Big Data — vodič za početnike
Arhitektura
- Tehnička arhitektura velikih sajtova — ključni principi i studije slučaja
- Arhitektura servera visokih performansi i visoke konkurentnosti
- Arhitektonski stilovi i dizajn softverske arhitekture zasnovane na mreži
- Lepota arhitekture
- Sistemi velikih sajtova i Java midlver u praksi
- Ključne tehnologije arhitekture sajtova sa stotinama miliona poseta
Proširenja
Ostali jezici
C
- Ruan Yifeng — tutorijal za uvod u C
- Programski jezik C (2. izdanje, kinesko izdanje, autori: B.W. Kernighan, D.M. Ritchie)
- C Primer Plus
- C i pokazivači
- C — zamke i mane
- C — programiranje na ekspertskom nivou
- Duboko istraživanje modela C objekata
- Analiza struktura podataka i algoritama — opisano jezikom C
C++
- Nowcoder pitanja sa kampusa za intervju (sa odgovorima i analizom) — C++ deo
- C++ — baza pitanja za intervju
- Dizajn velikih C++ programa
- Duboko istraživanje modela C++ objekata
- Duboko razumevanje novih osobina C11 — analiza i primena
- C++ Primer
- C++ standardna biblioteka — samoučnik i priručnik
- C++ — vodič za optimizaciju performansi
- Dizajn i evolucija jezika C++
- Effective.Modern.C++
- Effective STL (kinesko izdanje): 50 iskustava o efikasnoj upotrebi STL-a
- Effective C++ (kinesko izdanje, 3. izdanje)
- More Effective C++ (kineski)
- Analiza izvornog koda STL-a — Hou Jie
JavaScript
- Povratak kralja JavaScripta
- Veoma praktični isečci JavaScript koda
- Single-page web aplikacije — JavaScript od front-enda do back-enda
- Šta ne znate o JavaScriptu
- ES2015 u praksi — duboko u moderni razvoj JavaScript aplikacija
- Strukture podataka i algoritmi — opisano JavaScriptom
- ES6 duboko i jasno
- JavaScript DOM — umetnost programiranja
- JavaScript DOM — napredni dizajn programa
- JavaScript biblija (6. izdanje)
- JavaScript — kompletno rešenje programiranja
- JavaScript — od uvoda do majstorstva
- JavaScript — napredni dizajn programa (2. izdanje)
- JavaScript — prečica za učenje
- JavaScript — napredno programiranje frejmvorka
- Dizajn JavaScript frejmvorka
- JavaScript — vodič za objektno orijentisano programiranje
- JavaScript — otkrivenja
- JavaScript — autoritativni vodič (6. izdanje)
- JavaScript — klasik za početnike (3. izdanje)
- JavaScript dizajn paterni
- ppk o JavaScriptu
- JavaScript — suština jezika i programska praksa
- JavaScript — suština jezika
- JavaScript — asinhrono programiranje
- JavaScript — kompletna tehnika razvoja
Python
- Python Cookbook (3. izdanje, kinesko, v2.0.0)
- Prva knjiga o Pythonu za početnike u programiranju
- Ljupki Python (kinesko izdanje)
- Analiza podataka pomoću Pythona
- Duboko i jasno: programiranje pomoću Pythona
- Obrada prirodnog jezika pomoću Pythona
- Python — programiranje visokih performansi
- Python programiranje: od uvoda do prakse
- Python Web razvoj: pristup zasnovan na testiranju
- python-basic
- bajt-of-python-chinese-edition
- Python — osnovni tutorijal (2. izdanje)
- Python — napredni nivo (v1.1)
- Python — ključno programiranje (2. izdanje)
- Python — vodič za najbolje prakse (kineski)
- Python obrada prirodnog jezika [kinesko izdanje]
- Analiza Python izvornog koda (Chen Ru, 2008, elektronsko industrijsko izdanje)
- Python — prikupljanje podataka sa mreže
- Tečni Python
Go
- Učenje programskog jezika Go
- Igranje sa Go jezikom
- Programiranje u jeziku Go
Android
- Prva linija koda — Android
JavaWeb
- Java EE WEB — detaljno rešeni primeri razvoja
- Java Web — klasik za početnike
- Java Web — put dizajn paterna
- Java_Web — kompletno iskustvo lakeg razvoja
- Java.Web — priručnik za učenje razvoja
JSP
- JSP programiranje
- JSP — tehnički priručnik
- JSP — detaljno o razvoju aplikacija
- Servlet i JSP — vodič za učenje
Kotlin
- kotlin-in-chinese
- kotlin-for-android-developers-zh
Groovy
- Groovy programiranje
DDD
- Domain-Driven Design — način da se izađe na kraj sa složenošću jezgra softvera
- Domain-Driven Design — skraćeno izdanje
Blokčein
Veštačka inteligencija
- Mašinsko učenje u praksi
Pretraživači
- Razvijte sopstveni pretraživač — Lucene + Heritrix
- SolrJ tutorijal
- Elasticsearch — autoritativni vodič
- Elasticsearch — tehnička analiza i praksa
Bezbednost mreža
- Java — umetnost šifrovanja i dešifrovanja
Redovi poruka
- RabbitMQ u praksi — efikasno raspoređivanje distribuiranih redova poruka
Cloud računarstvo
- Razgovor o cloud računarstvu
AR & VR
Docker
- Prva knjiga o Dockeru
- Docker — vodič za početnike
- Spring Cloud i Docker — arhitektura mikro-servisa u praksi
IoT
Kubernetes
- Kubernetes — autoritativni vodič: od Dockera do Kubernetes-a, potpun dodir sa praksom
Testiranje
- Efikasno jedinično testiranje
Menadžment
- Mit o čovek-mesecu
- Ljudi kao komponente
- Mikro-menadžment: kako voditi tehnički tim (u boji)
Dodatak
- Programerski život
- Put samousavršavanja programera: od šegrta do majstora
- Kompletni kod
- Hakeri i slikari
- Blistave ideje: 15 računarskih genijalaca i njihova velika otkrića
- Tjuringova tajna
- Programiram — dakle srećan sam
- „Alibabin tehnički referentni atlas" (algoritmi)
- „Alibabin tehnički referentni atlas" (razvoj)
- Programer — kompletan vodič kroz hardkor znanja
- how-to-be-a-programmer-cn
- Efikasan programer
- Profesionalna etika programera
- Programer — negovanje unutrašnje snage (V2.0)
- Dizajn na prvom mestu (kinesko izdanje)
- Lepota matematike
- Taobao tehnologija — decenija
- Kako postati misaon — zbirka blogova Ruan Yifenga
- Većina koja ćuti
- Xiang Shuai — kurs finansija Pekinškog univerziteta, vanjsko predavanje
- Učiti, učiti, ponovo učiti
- Učenje regularnih izraza
- Napišite sami web scraper
- Ch3-Ch5 — kako nastaju ultra popularni blogovi
- Duboko razumevanje Nginx-a: razvoj modula i analiza arhitekture — Tao Hui
- Duboka analiza Tomcat-a — visoka rezolucija, sa obeleživačima
- Web servisi — principi i tehnike
- Java od plitkog do dubokog — osnove, napredni nivo i 260 obaveznih zadataka
- Java i paterni
- Java — napredno programiranje igara
- Dizajn arhitekture Java aplikacija — modularni paterni i OSGi
- Java — kompletno: tipični moduli i projekti u praksi
Život
- Programer — vodič za zdravlje
- Vodič za oporavak vratne kičme
- Tabela radnog vremena internet kompanija — virusna na WeChat momentima
Izjava o odgovornosti
Svi linkovi na knjige u ovom repozitorijumu potiču sa interneta — zbirke koje su drugi pripremili. Ja samo prikupljam i sređujem tuđe rezultate.
Ako imate pitanja, pošaljite issue; u slučaju narušavanja prava ili povrede, kontaktirajte me direktno na www.qing_gee@163.com — odmah ću ukloniti odgovarajuće linkove. Hvala!
Ovaj repozitorijum služi isključivo za deljenje znanja i u svrhe učenja — bez komercijalne upotrebe.

