Nesrin Aşan ile Orta Seviye Geliştiriciler için Java: Turkcell’den Hepsiburada’ya Kurumsalda Java Kullanımı | robot_dreams
should_authorize_via_email
email.input_code tel.input_code
 
email.code_actual_for tel.code_actual_for
apply_exit_text
session_ended
to_homepage
Nesrin Aşan ile Orta Seviye Geliştiriciler için Java: Turkcell’den Hepsiburada’ya Kurumsalda Java Kullanımı

Nesrin Aşan ile Orta Seviye Geliştiriciler için Java: Turkcell’den Hepsiburada’ya Kurumsalda Java Kullanımı

Deneyimli bir Java Software Engineer olan eğitmenimiz Nesrin Aşan ile yazılımcılara önerilerden projelerde mikroservis kullanımına kadar birçok konuya değindiğimiz keyifli bir röportaj gerçekleştirdik.

Dinamik bir yapıya sahip olan yazılım dünyası her geçen gün biraz daha gelişiyor. Java, otuz yılı devirecek bir tarihe sahip olmasına rağmen, özellikle kurumsal dünyada en çok tercih edilen dil olmaya devam ediyor. Biz de robot_dreams ekibi olarak, Orta Seviye Geliştiriciler için Java kursumuz öncesinde, 2016 yılından beri Java teknolojisiyle Turkcell ve Hepsiburada gibi dev şirketlerde büyük ölçekli projelerde yer almış deneyimli eğitmenimiz Nesrin Aşan ile kariyeri boyunca edindiği tecrübeleri, teknolojik gelişmeleri, yapay zeka kullanımına nasıl ayak uydurduğunu ve eğitimimizin detaylarını konuştuk. Keyifli okumalar!

1. Kariyerinizdeki farklı rolleri düşündüğünüzde, Java Software Engineer olarak hangi projelerde çalışma fırsatınız oldu?

2016 yılından beri profesyonel olarak yazılım alanında çalışıyorum. Hep Java teknolojisini kullanarak geliştirmeler yaptım. Java, kurumsalda en çok tercih edilen dillerden biri ve ben de kariyerim boyunca kurumsalda çalıştığımdan dolayı benim için büyük avantaj sağladı. 

Onun dışında, bu zamana kadar monolitik projelerde çok fazla çalıştım. Bunun tabii getirdiği zorlukları gördük. O zorluklardan sonra bu projelerin mikroservise dönüşümlerinin gerçekleştirildiği projelerde yer aldım. Bugün birçok kişinin kullandığı Turkcell Platinum, gençlerin çok fazla kullandığı Genç Turkcell projesi gibi büyük ölçekli projelerde çalıştım. Ayrıca Turkcell’in kadınlar için çıkardığı Bizce adında bir projesinin Java tarafında backend developer olarak çalıştım. 

Şu anda da Hepsiburada’nın projelerinden birinde yer almaktayım. O da büyük ölçekli bir proje. Bu projeler sayesinde Java odaklı sistemlerin kurumsal dünyada nasıl çalıştığını görme fırsatım oldu. IT sektöründe kurumsal kimliğin vermiş olduğu birçok avantajı/dezavantajı gördüm. Büyük ölçekli projelerde çalıştığım için, bu projelerin nasıl yönetilmesi gerektiğini, işlerin nasıl yürümesi gerektiğini öğrenmiş oldum. Aynı zamanda Scrum Master olarak agile sistemlerde çalıştım.

2. Scrum Master olarak agile sistemlerde çalıştığınızı söylediniz. Yazılım geliştirme süreçlerinizi daha etkili ve verimli kılmak için tercih ettiğiniz araçlar nelerdir?

Şu an çalıştığım projede de, geçmiş projelerimde de agile yaklaşım ile çalıştım. Agile yaklaşımın benimsenmediği projelerim de oldu. Bu sayede yaklaşımlar arası karşılaştırma yapma fırsatı buldum. Çoğu şirkette agile adı var ama içeriği boş olabiliyor. Biz ekip olarak projelerimizde, elimizden geldiğince agile ritüellerine uymaya çalışıyorduk ve bunların çok güzel çıktılarını almaya başladık. 

Ben Scrum Master olarak da uzun bir süre çalıştım. Doğru agile çalışmanın projelerimizin çıktısını oluştururken, proje süreçlerinde bizi engelleyen durumlarda ya da projemizde iyi giden veya geliştirmemiz gereken noktaları bulmamızda bize inanılmaz bir katkısı olduğunu düşünüyorum. Agile ekiplerde, biz self-organize bir ekip olabilmek için çok emek harcıyorduk. Diyelim ki Scrum Master izinli veya işten ayrıldı. O noktada ekipteki herkesin ritüelleri biliyor ve yönetebiliyor olması lazım. Self-organize bir yapı kurmaya çalıştık ve bunun için elimizden geleni yapıyorduk. Bu, hem iş yükümüzü doğru bir şekilde organize etmemizi sağlıyordu, hem de bizi sıkıştırmıyordu. Bence fazla mesaiye kalmamamızı sağlayan sebeplerden biri de buydu. Çünkü ekibin iş yükü, alması ve yapması gereken şeyler belliydi. Araya girmesi gereken işler için ayrılan eforlar, bufferlar… Ekipteki herkes birbirini çok iyi tanıdığı için bu dağılımı verimli bir şekilde yapabiliyorduk. 

Agile çalışmadığım taraflar da oldu. Oralarda şöyle sıkıntılar yaşabiliyorduk: Bir iş geliyor, acil, hemen yapılması gerekiyor. Elinizdeki işinizi değiştiriyorsunuz. Sonra mevcut işinize geri dönmeye çalışmak gibi birçok sıkıntıyla karşılaşıyorsunuz. Agile, aslında developer veya ekipten ziyade üst seviyelerde daha yerleşmiş olduğu zaman size gelen iş de bu mantıkta gelmiş oluyor. Bu eğitimi biz yazılımcılar alıyoruz ama kesinlikle daha üst seviyede oturtulması gerekiyor. Bu sistemin sağlandığı projelerde de çalıştım ve inanılmaz işler başardık. Süreçler o şekilde çok kolay ilerliyor.

3. Mesleğinizin en sevdiğiniz yönü nedir?

Mesleğimin sevdiğim birçok yönü var ama şu an en sevdiğim yönü çözümleme tarafı. Önünüze bir vaka geliyor ve o vakayı çözümlemeye çalışıyorsunuz. Ben bu süreci çok seviyorum. O yüzden alışmış olduğum ve artık hakimiyet sağladığım projelerden sıkılmaya başlıyorum ve yeni işlere geçmeye çalışıyorum. Performans odaklı, performansı geliştirme üzerine çalışmaktan keyif alıyorum. Muhakeme gerektiren alanları seviyorum. Ben zaten bulmaca çözmekten çok keyif alan birisi olduğum için mesleğimin bu alanları bana en çok keyif veren kısımlar. 

Ayrıca, teknolojik gelişmeleri takip etmeyi çok seviyorum. Mesela JUG İstanbul üzerinden podcast yayınları yapıyoruz. Bu podcast yayınlarında üzerinde çalıştığımız ya da kullandığımız teknolojiler, Java ve onunla beraber kullanılan spring framework, quarkus gibi frameworklerin üzerinde nasıl gelişimler gerçekleştiğini inceliyoruz. Aynı zamanda JUG Istanbul'un her yıl düzenlediği Java Day İstanbul Konferansı’nın teknik komitesinde yer alıyorum. Bunlar sektöre dair beni diri tutan ve yenilikleri takip etmemi sağlayan şeylerden birkaçı.

Mesleğimin yenilik tarafını çok seviyorum. Bizim yaşadığımız problemleri çözen birileri var. Bu insanları takip etmeyi seviyorum. Hem kod anlamında, hem iş mantığı anlamında problem çözmekten keyif alıyorum.

4. Kariyerinizde elde ettiğiniz deneyimlere dayanarak, genç yazılım geliştiricilere ne tür tavsiyelerde bulunursunuz?

Yazılıma geçmek isteyen, farklı alanlardan yazılıma geçip başarılı olduğuna şahit olduğum çok tanıdığım var. Bizzat desteklediğim kişiler de var. Örneğin, kardeşim mimarlık mezunu. Kendisi mesleğine başladıktan altı ay kadar sonra yazılıma ilgisini keşfederek, yazılım alanına geçiş yaptı. 

Bu zamana kadar birçok bootcamp’te de yer aldım ve oradaki insanların çoğu da mesleklerini değiştirmek isteyen, ilgi alanlarını yazılıma yönlendirmiş olan insanlardı. Bu tavsiyeler aslında biraz kişisel. Herkesin yolculuğu farklı olduğundan net bir çözüm vermek mümkün değil. Ancak, gerçekten tavsiye edebileceğim şeylerden biri kendilerine bir mentör bulmaları. İnanılmaz büyük bir şans bu. Katıldıkları eğitim, kurslar veya bootcamplerde tanıştıkları eğitmenler ile bağlarını gelecekte de koparmamalarını tavsiye ederim. Verdiğim eğitimlerden iletişimimin hala sürdüğü öğrencilerim var. 

Ayrıca, ben verdiğim eğitimlerde her zaman, Java üzerinde sektöre yönelik bilgiyi aktarmaya özen gösteriyorum. Bilgi her yerde mevcut. Bu anlamda, alana dair her ayrıntının üzerine gitmek mümkün değil ama en azından mülakat süreçlerinde ve mülakatı geçtikten sonra junior seviyesinde yeni bir işe başladıklarında çalıştıkları projede hakimiyet sağlayacakları kadar bilgiyi vermeyi hedefliyorum. 

Bence amaç en iyi junior olmak. Bu noktada iletişimin de büyük rolü olduğunu düşünüyorum. Podcast yayını olsun, yazılımcıların katıldığı etkinlikler olsun, buralara katılıp network oluşturmak çok önemli. Yeni başlayan ya da farklı sektörden gelen kişiler çekingen olabiliyor. O yüzden yeni başlayan kişilere junior unvanlarını sonuna kadar kullanmalarını tavsiye ediyorum. İstedikleri kadar soru sorabilirler. O süreçte soru sormaları problem değil. Asıl problem bir sene sonra aynı soruları sorduklarında gerçekleşecektir. En basitinden ben birkaç ay önce iş değişikliği yaptım ve domain konusunda henüz junior seviyedeyim. O yüzden sormak zorundayım. İletişiminiz ne kadar iyi olursa, bence bu sektörde o kadar çok ilerleyebilirsiniz. Bir mentöre sahip olduklarında, o kişiye sektöre girmek adına ihtiyaçları olan her şeyi sormaya çalışmalarını tavsiye ederim. Yoksa internette zaten her şey mevcut. Önemli olan bir mülakata girdiğinizde nasıl bir profille karşılaşacağınız ve o profille nasıl iletişim kurabileceğinizin aktarılması. Bu anlamda biraz sıkıntılar yaşanabiliyor, dolayısıyla o noktalarda destek alınmasını tavsiye ederim.

5. Eğitimiz, Java dilini daha iyi kullanmak isteyen geliştiricilere yönelik. Peki, bu kursa katılan biri, Java becerilerinde hangi belirgin gelişmeleri görmeyi bekleyebilir?

Eğitimimizin iki yönü var: Java ve mikroservis. Java kısmına değinecek olursak, şu an mesela var olan projelerin çoğunda Java 8 ve sonrası kullanılıyor ve Java’nın altı ayda bir yeni versiyonu çıkıyor. Ben Java 8 ile gelen en temel ve sık kullanılan özelliklerden son sürümde gelen özelliklere kadar önemli noktaları uygulayarak gösteriyor olacağım. Ek olarak yine kurumsal projelerin kullandığı bir Java framework olan Spring Framework kullanıyor olacağız. Spring Boot framework'ü üzerinde çalışacağız. Onun dışında mikroservis tarafında, benim de kullandığım ve bu zamana kadar projelerde en çok tercih edilen antipattern gibi pratiklerden bahsediyor olacağız. 

Eğitimde ek olarak öğrencilerime mülakat deneyimlerinden de bahsetmeyi seviyorum. Bu zamana kadar hem kendim hem çevremde birçok kişi mülakat deneyimi yaşadı ve süreci iyi biliyorum. İnsanlar, doğal olarak, bu tarz eğitimler sonrasında eğitimini aldıkları alan ile ilgili mülakatlara girmek isteyecekler. Ben eğitimlerimde bu konunun üzerinde özellikle durmaya çalışıyorum. Eğitim sırasında veya sonrasında mülakatlara giren öğrencilerim, görüşmelerinde üzerinde durduğumuz detaylar üzerinden kendilerine sorular geldiğini belirtiyorlar. Ve böylece hem sektöre girmek için gerekli olan mülakatı geçmiş oluyorlar hem de ilk işe başladıklarında yabancılık çekmeyecek seviyede bilgi sahibi oluyorlar. Eğitim boyunca işleyeceğimiz konularda da mülakatlarda çıkacak yerlere her zaman dikkat çekiyor olacağım.

6. Eğitimde yer alan workshop ve pratik senaryolar, katılımcılara nasıl bir uygulama deneyimi sunuyor? Bu senaryoların katılımcılara sağladığı avantajlar nelerdir?

Teorik olarak anlatacağımız her şeyin büyük ölçekli projelerde kullanıldığını söyledim. Bu projelerden örnekler verirken, katılımcılar da görsel olarak inceleme fırsatı bulacaklar. Workshoplarımız halihazırda mevcut olsa da, aslında tüm derslerin workshop tadında geçeceğini söyleyebilirim. Başlangıçta temel tanımları yaptıktan sonra uygulamaya özen göstereceğiz. Böylece teorik bilgiler zihinlerinde daha net canlanacak. Bu sayede kalıcılık ve mülakat sonrasındaki sürece uyum artacak. 

7. Teknolojideki, özellikle yapay zeka alanında hızlı değişim göz önüne alındığında, eğitim sürecinde gelecekteki güncellemelere nasıl ayak uydurmayı planladığınızdan bahseder misiniz?

Yapay zekayı ben de çok kullanıyorum. Geçen gün Stack Overflow’un kullanım yüzdesi üzerine konuşuyorduk. Bu oran %40 civarına düşmüş çünkü ChatGPT inanılmaz derecede elimiz ayağımız oldu. Ben de o kullanıcılardan biriyim. Şöyle ki bu zamana kadar Java üzerinde uzmanlaştım ama şu an üzerinde çalıştığım işlerden biri Python projesi. Daha önce Python deneyimim olmadı ama oradaki syntaxları ChatGPT ile çözüyorum ve işimi kolaylaştırıyor. 

Bu tarz araçların, geliştiricilerin hayatlarını büyük ölçüde kolaylaştırdığını söyleyebilirim. Onun dışında, bu dönemde yenilikleri çeşitli kanallardan takip ediyorum. Şu an kullandığımız çoğu teknoloji open source. Ve buralarda Github üzerinden aylık olarak yapılan releaselerin notları oluyor. YouTube üzerinde bu değişikliklerin detaylarına dayanan kanallar var, onları haftalık ve aylık olarak takip ediyorum. Bir sürü yayınlar gerçekleşiyor, makaleler yayınlanıyor. Örneğin Java’yı, Spring’i yazan ekibin yazılarını takip ediyorum. Bunları takip etmek ile uygulamak aynı olmuyor. Uygulama ekip işi biraz. Baskılamaya dayanıyor. Buna podcastimizde de değinmiştik: Bir geliştiricinin görevlerinden biri de bu yeniliği ekibiyle görev olarak belirlemek olmalı. Ekipler projerinde Java sürümleri arasına hemen geçiş yapamayabiliyor. Bu teknolojilerin artılarını eksilerini iyi araştırarak yöneticilerin desteğini almak gerekiyor. Önemli güncellemelerin hangi sürümlerde geldiklerini belirteceğim. Java alanında kendini geliştirmek isteyenler için çok rahat ilerleyebilecekleri bir kurs olacak. Hafif seviyede başlıyor olacağız fakat ilerleyen derslerde işler biraz zorlaşacak.

Orta Seviye Geliştiriciler için Java eğitimimizin detaylarına ve müfredatına göz atmak için tıklayın!

Daha fazla makale
Mustafa Çamurlu ile yaptığımız röportajda, yazılım mimarisi alanında mikroservis, serverless ve event-driven mimarilerinin önemi ve yüksek trafikli uygulamalarda karşılaşılan zorlukları konuştuk.
Yüksek Trafikli Yazılım Mimarisi Eğitimimize katılın ve dijital dünyada fark yaratma fırsatını yakalayın!