Visual basic, delphi gibi rad dillerde tecrubeliyseniz, yazilim yaklasiminizi degistirmeden java'yi gercek manada kullanma sansiniz yok; programlama dilinden bagimsiz olarak yeni bir anlayisla karsi karsiya oldugunuzun farkina varmalisiniz. Object oriented programlama gercekte ogrenmeniz gereken ana kavram; ancak kalitim, cok bicimlilik ogrenmekle hersey bitmiyor. Refactoring ve design patterns derinlere inmenizi saglayan konular.
Desktop kullanici arabirimleri tasarlarken visual editor programlar kullanma aliskanliginizdan vazgecmenizi oneririm. Eger swing kullaniyorsaniz jgoodies forms istediginiz kolayligi saglayan bir layout sistemi size sunuyor, swt ise kendi form layoutuyla yeterince kolaylastiriyor isinizi. Is mantigini(business logic) gui'den ayirmak icin mvc yaninda model view presenter tasarim kalibini da incelemizi oneririm.
Server tarafinda jsf'nin tek alternatif olmadigini, next app echo2 gibi swingi birebir modelleyen open source framework'ler oldugunu da aklinizin bir kenarina yazin. Jsf ya da Ajax nedeniyle javascript'e fazla gomulmemenizi tavsiye ederim(netscape 4 sacmaliginin varoldugu gunlerde dhtml kutuphanesi yazmis biri olarak javascript'e guvenilmeyecegini rahatlikla soyleyebilirim). Mumkun mertebe sizi java tarafinda tutan, html,css ve javasciptten soyutlayan apiler kullanmaya calisin.
Jdbc yerine de elbette hibernate'i onerecegim ya da bildiginiz daha iyi bir orm varsa siz soyleyin. Ejb3 konusunda simdiden deneyim sahibi olanlari dinlemek hos olur.
Tabi java hersey degil, basit isleriniz icin ruby'i kullanmaya alissaniz sizin icin guzel bir arti olur. Hele ruby on rails'le gelen active record, farkli veritabanlari arasinda data aktarimi yaparken buyuk kolaylik saglar.
blah blah ...