MERHABA! Bugün bir Java geliştiricisinin büyüme yolundan ve talep görmek için bilmesi gerekenlerden bahsedeceğiz. Bir röportajda, herhangi bir geliştirici iş adayını sorgulayabilir. Örneğin, mevcut projelerinde karşılaştıkları belirli konular hakkında sorular sormaya başlayabilirler. Ama her şeyi bilmemek normaldir. Bazı soruları cevaplayamamanız da normal. Genel bir kural olarak, her Java programcısı temel bir yazılım geliştirme anlayışına sahip olmalıdır. Öyleyse neyin "temel" olarak kabul edildiğine bir göz atalım.
Bunu ilk sıraya koymalısınız, böylece Spring'in ne olduğunu anlayabilirsiniz - Spring kapları, fasulye, DI, IoC vb. Tabiri caizse Spring kullanmanın felsefesini anlamak. Spring çerçeveleriyle ilgili daha fazla çalışmanız bu temel üzerine inşa edilecektir. Belki de yeni öğrenilen tüm teknolojileri kademeli olarak dahil edebileceğiniz kendi küçük uygulamanızı oluşturmalısınız.
Daha önce JDBC'den veri tabanı bağlantısı oluşturmaya yönelik bir teknoloji olarak bahsetmiştik. Genel olarak, teknolojinin "çıplak" kullanımı artık projelerde bulunamaz, bu nedenle JDBC'yi öğrenmenin gerekli olmadığı sonucuna varabilirsiniz. Bu pek doğru bir tutum değil. JDBC'nin çıplak (doğrudan) kullanımını keşfederek, teknolojiyi daha düşük bir seviyede görebilir, sorunlarını ve eksikliklerini anlayabilirsiniz. Ardından, Spring JDBC'yi öğrenmeye başladığınızda, bu çerçevenin tam olarak neyi iyileştirdiğini, optimize ettiğini ve gizlediğini anlayacaksınız.
Çıplak JDBC'deki duruma benzer şekilde, bu çerçeve mevcut bir teknolojiden, bu durumda Hibernate'den yararlanır. Hibernate'i Bahar olmadan kullanmayı düşünürseniz, Bahar Hazırda Bekletme'nin sunduğu faydaları kesinlikle fark edeceksiniz.
Daha önce JPA'dan bahsetmiştik ve çeşitli uygulamaları olmasına rağmen bunun yalnızca bir belirtim olduğundan bahsetmiştik. Bu uygulamalar arasında Hibernate ideale en yakın olanıdır. Spring, kaputun altında Hazırda Bekletme modunu kullanan kendi ideal JPA uygulamasına sahiptir. JPA spesifikasyonunun idealine mümkün olduğunca yakındır. Buna Bahar JPA denir. Tek kelimeyle, veritabanı erişimini büyük ölçüde basitleştirir. JPA'yı yalnızca JDBC, Hibernate, Spring JDBC veya Spring Hibernate öğrenmeden öğrenebilirsiniz. Ancak bu yaklaşımı benimserseniz, bir veritabanına nasıl bağlanacağınız konusundaki bilginiz çok yüzeysel olacaktır.
Bu teknoloji, uygulamamızın web arayüzünün kullanıcılara gösterilmesini mümkün kılmakta ve arayüz ile uygulamanın geri kalanı arasındaki iletişimi kolaylaştırmaktadır. Ekranı kullanmaktan sorumlu bir uygulamanız olduğunda ve RESTful teknolojisini kullanarak uygulamayla etkileşim kurduğunuzda, teknoloji ekran olmadan da kullanılabilir. İlkbaharla ilgili bilgileri daha iyi özümsemek için makalelere ve YouTube derslerine ek olarak birkaç kitap okuyabilirsiniz. Craig Walls'un "Spring in Action" kitabını gerçekten beğendim. İyi derecede İngilizce biliyorsanız 6. versiyonu okumanızı tavsiye ederim. İlkbaharla ilgili bir başka harika kitap da "Profesyoneller için Bahar 5". Daha yoğun. Daha çok, baştan sona okumaktansa elinizin altında bulundurmanın daha değerli olduğu bir referans gibi.
Bu teknoloji, Yay kullanımını büyük ölçüde basitleştirir. Listenin sonuna bir hevesle koymadım. Aslında, kaputun altında pek çok şey gizliyor ve Vanilya Pınarı'na aşina olmayan biri için pek çok nokta belirsiz veya anlaşılmaz olabilir. İlk olarak, Spring çerçevelerinin nasıl çalıştığını daha iyi anlamak için normal Spring kullanmalı ve ardından Spring Boot kullanmanın daha yüksek faydalarını elde etmelisiniz. Ayrıca Spring Security ve Spring AOP ile tanışmanızı tavsiye ederim. Ancak yukarıdaki teknolojilerin aksine, bu iki teknoloji hakkında derin bilgiye henüz ihtiyaç duyulmuyor. Bu teknoloji yeni başlayanlar için değil. Röportajlarda, küçük geliştiricilere onlar hakkında soru sorulmayacak (belki bir yüzeysel soru dışında). Bu teknolojilerin neler olduğuna ve çalışmalarının arkasındaki ilkelere ilişkin genel bakışı okuyun. Bu makalede, Kitap okumaktan defalarca bahsetmiştim. Bir yandan, bu zorunlu değildir. Tek bir kitap okumadan, gerekli tüm bilgileri çevrimiçi makalelerden ve eğitim videolarından edinerek programcı olabilirsiniz. Öte yandan, iş piyasasında, acemi geliştiriciler arasındaki rekabet şu anda yüksek ve bu da yeni başlayanların bilmesi gerekenler konusunda çıtayı yükseltiyor. Yani, ne kadar çok bilirseniz, bilgi seviyenizle görüşmeciyi etkileyerek ilk işinizi o kadar hızlı bulacaksınız. Herkese teşekkürler ve Java sizinle olabilir. bu da yeni başlayanların bilmesi gerekenler konusunda çıtayı yükseltiyor. Yani, ne kadar çok bilirseniz, bilgi seviyenizle görüşmeciyi etkileyerek ilk işinizi o kadar hızlı bulacaksınız. Herkese teşekkürler ve Java sizinle olabilir. bu da yeni başlayanların bilmesi gerekenler konusunda çıtayı yükseltiyor. Yani, ne kadar çok bilirseniz, bilgi seviyenizle görüşmeciyi etkileyerek ilk işinizi o kadar hızlı bulacaksınız. Herkese teşekkürler ve Java sizinle olabilir.
1. Temel algoritmalar
Programlamayı (yalnızca Java'yı değil) öğrenmeye başlarken ele alınması gereken ilk şey, temelleri anlamaktır. Örneğin, algoritmalar. Sonsuz sayıda var ve hayatınızın tüm yıllarını olabildiğince çok algoritma öğrenmeye çalışarak öldürmemelisiniz: çoğu sizin için yararlı olmayacak. Gerekli minimum bilgiyi "Grokking Algoritmaları" kitabından alabilirsiniz. Bu başlamanız için yeterli, ancak isterseniz Robert Sedgewick ve Kevin Wayne'in "Structures and Algorithms" veya "Algorithms in Java" kitabından öğrenebilirsiniz. Ayrıca bilgisayar biliminin temelleri hakkındaki bilginizi geliştirmenizi de tavsiye ederim. Bu, Harvard CS50 kursu ile yapılabilir.2. Java Sözdizimi
Algoritmaların temellerini öğrendikten sonra Java sözdizimini öğrenmemiz gerekiyor. Ne de olsa burada hepimiz Java programcısı olmak için çalışıyoruz, değil mi? CodeGym kursu bunun için mükemmeldir. Sayısız görevi yerine getirirken, Java sözdizimini elinize alacak ve daha sonra hiç tereddüt etmeden Java kodunu ana dilinizmiş gibi yazacak/okuyacaksınız. CodeGym pratiktir, ancak bunun ötesinde, ne yaptığınızı anlamak için teoriye de bakmanız gerekir. Bunun için kitap okuyabilirsiniz. Örneğin, aşağıdakilerden biri:- "Önce Java'ya Başla",
- Barry Bird'den "Aptallar için Java";
- Herbert Schildt'in "Java: Başlangıç Kılavuzu".
- "Java'da Düşünmek", Bruce Eckel;
- Joshua Bloch'tan "Etkili Java";
- Herbert Schildt'in "Java: Eksiksiz Referansı".
3. Tasarım kalıpları
Tasarım kalıpları, sık karşılaşılan bağlamlarda sorunları çözen belirli tekrarlanabilir kalıplardır. Kendine saygısı olan her programcının bilmesi gereken temel, basit kalıpları içerirler. Bu konuyu anlamak için "Head First Design Patterns" kitabını alın. Temel tasarım kalıplarını erişilebilir bir şekilde açıklar. Ancak kitap Java hakkında çok konuşuyor, bu yüzden bu kitabı okuduğunuzda bu programlama dilinde akıcılığa da ihtiyacınız olacak. Modellere daha derin bir dalış için, Gang of Four'dan "Design Patterns: Elements of Reusable Object-Oriented Software"i de okuyabilirsiniz ( Editörün notu: The Gang of Four, Erich Gamma, Richard Helm, Ralph'ı içeren bir yazar ekibidir. Johnson, John Vlissides.). Bu konuyu inceledikten sonra, kodunuzun neredeyse her yerinde kalıpları görmeye başlayacaksınız. Buna, özellikle Bahar'da kullanılan kalıplara dikkat edin, çünkü bu popüler bir mülakat sorusudur.4. Programlama paradigmaları. Kod temizliği
Standart tasarım kalıplarının yanı sıra, bilinmesi gereken çeşitli prensipler ve paradigmalar vardır ( SOLID , GRASP ). Ayrıca kodunuzu temiz ve okunabilir tutmanız gerekir. Her şey için, bu konu hakkında bilgi sahibi olmanız gerekir, Robert Martin'in yazdığı Temiz Kod'a veya Steve McConnell'in "Kod Tamamlandı" bölümüne bakın.5. SQL
Bir sonraki adımımız, ilişkisel veritabanları için bir dil olan SQL'i incelemektir . Veritabanları , bir web uygulaması tarafından kullanılan bilgilerin (verilerin) depolandığı yerdir. Bir veri tabanı birkaç tablodan oluşur (telefonunuzdaki adres defteri basit bir örnektir). Java geliştiricileri, yalnızca Java uygulamasından değil, etkileşimde bulunduğu veritabanından ve verilerini nerede sakladığından da sorumludur. İlişkisel veritabanlarında (en yaygın tür olan), tüm etkileşim Yapılandırılmış Sorgu Dili veya SQL adı verilen özel bir dil aracılığıyla gerçekleşir. Bu konuyu anlamak için tek yapmanız gereken şu kitaplardan birini okumak:- Alan Beaulieu'nun "SQL Öğrenmek";
- Chris Fehily'den "SQL";
- Lynn Beighley'den "Head First SQL".