Bircok kisi sanirim Java'da nerden baslayacagini bilemeyen, piyasadaki bircok yanlis ve eksik anlasilmalardan, Java cok zor hic girme gibi negatif tavsiyelerden bir yol haritasi, belirli siralamayla ogrenilecekler listesi ariyor/bekliyor cevaplarda. BTSoru.com'daki Benzer sorularda da guzel tavsiyeler vardi, bir kez daha konu konu ve ogrenme onceligine gore yazarsak asagidakiler yardimci olabilir. En azindan bana cok yardimci olmustu.
Asagidakilerden hangi alanda uzmanlasmak istiyorsaniz o teknolojilere yogunlasmaniz tavsiye edilir.
Temel ogrenilecekler: Bunlar web/desktop/RIA/mobil programlama icin temel aslinda. Bunlari atlayip desktop veya web programlamaya gecerseniz illaki karsiniza bir daha cikar emin olun, tecrubeyle sabit :)))
-
Java temelleri: Java'da dilin yapisi ve class, abstract class, interface, OOP mantiklari ogrenmek en oncelikli sart!
-
Veritabani mantigi (RDBMS): MySQL veya PostgreSQL de iyi olmaniz, primary key, index, unique index, foreing key, one to many, many to one table relations bilmeniz JPA icin on sart. Bunlarda eksiginiz varsa MySQL ile birkac gunluk calisma ile kapatabilabilir (MySQL yeni ve ileri duzey programcilar icin gercekten cok stabil ve kolay, PostgreSQL ile ayarlar ve kurulum icin daha fazla zaman alabilir, zaten PostgreSQL Oracle db seviyesinde cok buyuk datalarla calisabiliyor)
-
JDBC: Low level java + veritabani programlama, direk sql cumlecikleri ile. Bu aslinda JPA icin temel, JDBC ogrenmeden JPA ogrenebilirsiniz ama zorlanirsiniz. JPA JDBC uzerine bina edilmis bir API.
-
JPA (Hibernate veya EclipseLink implementasyonlari): Veritabani islemlerinde javada JPA kacinilmaz, Eclipse ve NetBeans IDE'lerde otomatize edilerek olusturulan Entity Bean'lerle cok kolay yapilabilir.
-
Web Temeli: Web ve mobil projelerin bu kadar yaygin oldugu zamanda HTML 5 + CSS 3 + JavaScript / jQuery(temel duzeyde) her programci icin mecburi oldu. Desktop da isinize yaramicaksa da illaki birgun karsiniza cikar, en bastan ogrenmek gerekli diye dusunuyorum. Herhangi bir programlama dili biliyorsaniz JavaScript ogrenmek 1 gununuzu alir. Html5 1 gun, CSS 3 bir haftanizi alir. (Css 3 de uzman olmaya calismayin, zaten kullandikca ogreniliyor.)
Java Desktop ve RIA icin öneriler:
-
Awt/Swing: Eger gelecege yatirim olarak desktop projelerini ogrenmek istiyorsaniz artik Awt/Swing eski teknolojiler. Piyasada bircok java desktop projesi hala Swing'le calisiyor ama eger Swing ile ilgili bir is ilani icin ogrenmicekseniz bu ikisi artik dinazor teknolojiler. Bakiniz JavaFX aciklamasi.
-
JavaFX: Swing'deki bircok eksiklik JavaFX ile giderildi. Artik JavaFX 2.2 Final ile Win/Mac/Linux da calisiyor. JavaFX ile RIA(rich internet application) yazabiliyorsunuz(Swing ile cok zordu, java web start yada Applet Swing projeleri icin yeterince hizli degildi eskiden, JavaFX icin daha hizli suan). Kisaca JavaFX javanin gelecekteki java desktop ve RIA toolset'i. Bence sifirdan java desktop programlamak istiyorsaniz Swing ile ugrasmayin derim, JavaFX yeni yeni is ilanlarina da girecektir. Ayrica JavaFX ile Remote Call cagrilari(Restfull Web Service, RPC vb.) kolayca yapilabiliyor, bu da JavaFX'in ilerde internetle etkilesimli bircok Web projesine desktop client olarak hizmet etmesini saglicak gibi. Oracle JavaFX'in mobil aletlerde de calismasi icin denemeler yapiyor, eger JavaFX mobil'de calisirsa Windows mobil, android, ipad, iphone vb. tablet/telefonlarda calisabilir ki bu JavaFX'i bir anda populer de yapabilir. Oracle Devoxx konferansinda ipad uzerinde simulator ile calisan JavaFX demosu gosterdi, henuz nasil yazdiklarini yayinlamadilar, olabilir de olmayabilir de.
Web icin oneriler:
-
Servlet, JSP: Bu ikisi java web programlamanin temeli, ozellikle de servlet. Java butun Http islerini Servlet uzerinden yapar, ister Web Service, ister JSP, ister JSF olsun. O yuzden Servlet mantigini ogrenmeniz java web icin temel. Ama JSP ogrenmeden JSF ogrenebilirsiniz. JSP JSF icin önsart degil, ama servlet önsart bence.
-
JSF 2.x, Primefaces, Richfaces: Java web projelerinde son yillarda JSF view teknolojisi olarak cok populer, component model'e sahip(componentleri JSP de oldugu gibi kendin html+css+js ile yapmak yerine bir component lib'den alip kullaniyorsun)
-
EJB 3.1: Burda stateless, stateful beans ogrenmelisiniz (burda entity beans de var aslinda ama bunu temel sartlarda yazdik, JPA java veritabani icin desktop ve web de kacinilmaz, once ogrenirseniz ilerde ugrasmassiniz). Bu ikisi JSF icin yeterli. Ilerde vaktiniz oldugunda Message Driven Beans de ogrenseniz iyi olur.
-
Web Framework'ler: Spring, Spring MVC, JBoss Seam, GWT: Aslinda Java EE 6 ile Spring veya JBoss Seam framework'leri kullanmadan Java EE projeleri yazabiliyorsunuz, fakat Türkiye bu konuda biraz geriden geliyor ve Türkiye'de nedense Java EE = Spring gibi bir anlayis var. Hatta BTSoru'da da ben bircok kisiye cevap yazmaktan yoruldum, birileri Java EE ogrenmeliyim hmm hemen Spring ogren gibi bir anlayisa sahip. Su bir gercek butun dunyada Spring basta olmak uzere JBoss Seam ve GWT aktif kullaniliyor ve is ilanlarinda da hala en cok sorulan Framework'ler fakat ogrenmen mecburi degil! Eger EJB 3.1 ogrenirsen Spring'e ihtiyacin olmaz fakat EJB 3.1 ogrendikten sonra Spring kodlarini kolayca anlayabilirsiniz. Spring bircok kolayliklar saglayabilir bu tartismalar hala dunyada cok aktif devam ediyor olmakla birlikte Java EE standart API'leri herzaman tercih sebebi olacak gibi(dogru ve hizli calistigi surece). Örnegin eskiden Hibernate ayri implementasyonken bircok ozelligi JPA spesifikasyonlara alindi ve artik JPA bircok annotasyonu standart veriyor.
-
Web service'ler: Eger artik java da JSF projesi yazabilecek seviyeye geldiginizi dusunuyorsaniz Restful web service'leri ogrenmeniz cok kolay. Aslinda Web Service'ler isimleri buyuk kendileri kucuk teknolojiler, bildiginiz EJB uzerinde islem yapan classlar.
Bu yukaridaki teknolojilerle gelistirme yapan arkadaslar daha eklenebilecek bircok teknoloji soyleyebileceklerdir. Temelleri ogrendikten sonra piyasa ihtiyaclarina gore artik yeni seyler ogrenmeniz cok daha kolay olacaktir.
Yukaridakileri ogrenmek icin planli programli ilerleyin, Java bircok alana hitap eden buyuk bir ekosistem o yuzden ihtiyaciniz olan oncelikli API'lerden baslayin ogrenmeye. Ogrenme suresi azim ve sabrinizla azalacaktir!
cevaplandı:
23 Ağu '12, 06:17
CemIkta ♦
19.9k●29●125●190
cevap kabul oranı:
36%