Hakkımda

Merhaba! Ben Cenk Şener. Ağırlıklı olarak Microsoft teknolojilerini kullanarak web uygulamaları geliştiren bir yazılım geliştiriciyim. Bu yazı; hakkımda yazısı ile CV karışımı bir yazı olacak. Her ne kadar “hakkımda” ve “CV” kavramları benzer kavramlar olsa da CV denilince; resmi bir dilin kullanılması gerektiği algısı oluşuyor bende. Bu tarzda bir yazı için daha doğal ve samimi bir dil kullanmayı tercih ederim.

1991 yılında Kocaeli’de doğdum. Ancak liseyi Çanakkale’de okuduğum için ve şehri de benimseyip sevdiğimden dolayı, yeni tanıştığım birisi “Nerelisin?” diye sorarsa “Çanakkaleliyim” cevabını veriyorum. Çanakkale, Türkiye’nin en yaşanılabilir şehirlerinden birisi bence. Çocukluğumdan beri bilgisayarı yoğun bir şekilde kullansam da, üniversiteyi kazanana kadar bilgisayar kullanmam hep eğlence amaçlı oldu. Oyun oynamak, film izlemek veya internette gezinmek gibi şeyler… Aslında lise yıllarında iken yazılım geliştirici olmaya karar vermiştim ama bu doğrultuda harekete geçmem üniversiteyi kazanmamla başladı.

2009 yılında Çanakkale Fen Lisesi’nden mezun oldum. Yıldız Teknik Üniversitesi Matematik Mühendisliği bölümünü kazanarak İstanbul’a geldim. Kendisi de bir yazılımcı olan kuzenimin tavsiyesi üzerine C ve Sistem Programcıları Derneği’nden (kısaca C Derneği diyoruz) programlama eğitimleri almaya başladım. 2009 – 2016 yılları arasında C Derneğinden 9 farklı eğitim aldım. Linkedin profilime bakarak hangi eğitimleri aldığımı görebilirsiniz. C derneğine giderek sistematik bir eğitim almanın kendim için yaptığım en faydalı yatırımlardan birisi olduğunu düşünüyorum.

Bilmeyenler için C Derneği 1993 yılında kurulan ve başta sistem programlama alanı olmak üzere programlama eğitimleri veren bir dernek. Bu alanda Türkiye’de bulunan en yetkin kurumdur. Yüzlerce firmaya danışmanlık ve eğitim vermiştir ve halende vermektedir. Kaan Aslan, Ali Vefa Serçe, Necati Ergin gibi efsanevi eğitmenlere sahiptir. Dernek hakkında daha fazla bilgi almak ve açılan kursları incelemek isterseniz Csystem.org adresini ziyaret edebilirsiniz.

Her ne kadar ilk yazılım eğitimimi 2009-2010 yıllarında almış olsam da; o yıllarda, iyi bir yazılım geliştirici olmak için çok sıkı çalışmam gerektiğinin bilincinde değildim. Yazılım dünyasının bu denli büyük olduğunun farkında da değildim. Yalnızca kursa gidiyordum ve kurs haricindeki vaktimin çok küçük bir kısmını yazılım öğrenmek için harcıyordum. Ancak yine de yaşımdan dolayı erken sayılabilecek bir dönemde “Programlamaya Giriş”, “C Programlama Dili” gibi eğitimleri almış olmam ileriki yıllar için çok iyi bir altyapı hazırladı. Daha sonraki dönemlerde yazılım alanında sistematik ve yoğun bir çalışmaya başladığımda önceden aldığım bu kursların faydasını gördüm.

Profesyonel anlamda tüm vaktimi yazılım geliştirmeye ayırmam ve sistematik bir şekilde çalışmaya başlamam 2014 yılını buldu. 2014’ün yaz aylarından beri severek ve yüksek bir motivasyon ile yazılım geliştirme alanında çalışıyorum. Yaptığım işi kesinlikle bir “iş” olarak görmüyorum. Yazılım alanında bir şeyler üretmek, öğrenmek, kendini geliştirmek vs. tüm bunlar benim için bir hobi. Özellikle web uygulamaları geliştirme kısmı en keyif aldığım alan.

Bir web uygulaması geliştireceğim zaman kullandığım teknolojiler şu şekilde;

  • Backend tarafında .NET Core 3, .NET 5, ASP.NET Core Mvc gibi teknolojileri ve C# programlama dilini kullanıyorum.
  • İlişkisel veritabanı olarak MySQL, PostgreSQL veya SQL Server kullanıyorum. Ancak son zamanlarda çoğunlukla PostgreSQL kullanmaya başladım. ORM aracı olarak Dapper kullanmayı tercih ediyorum.
  • NoSQL çözümü olarak genelde MongoDB ve Redis’i kullanıyorum. Tabii ki bu durum projenin ihtiyaçlarına göre değişiyor.
  • Bulut bilişim çözümleri için AWS (Amazon Web Services) kullanıyorum. Çoğunlukla AWS’nin, RDS veya S3 gibi %100 olarak yönetilen servilerini kullanmayı tercih ediyorum. Eğer bir sanal sunucu oluşturacaksam ve kendim yöneteceksem bu durumda AWS yerine Vultr veya UpCloud gibi firmaları tercih ediyorum.
  • Frontend tarafında ise bilindiği gibi HTML, CSS ve JavaScript dillerini yoğun olarak kullanıyoruz zaten. Ayrıca Css Framework’ü olarak TailwindCss’i de çok seviyorum. Tema giydirme konusunda da epeyce bir tecrübem var.
  • JavaScript frameworkleri’nden bahsedecek olursak; projelerimde ihtiyaç dahilinde Vue.js i severek kullanıyorum. Pek çok senaryo için, bir web uygulamasının frontend kısmının, A’dan Z’ye bir JavaScript framework kullanılarak geliştirilmesi gerektiğini düşünmüyorum. Buradaki yazıda belirtildiği gibi, bizleri bir JavaScript Framework kullanmaya iten ana unsur; JavaScript tarafında bulunan data ile HTML aracılığıyla sunduğumuz UI’ın senkronize edilmek istenmesidir. Data ve UI’ın sıkça değişmediği senaryolar için zaten elimizde Razor gibi güçlü bir view engine teknolojisi var.

Yukarıdakilerin haricinde geçmişte Java, Php, C ve Swift gibi dillerde de kod yazmışlığım var. Ancak bunlar kısa dönemli veya eğitim amaçlı çalışmalar olduğu için belirtme gereği duymadım. Aynı şekilde Linkedin profilimde de yer vermedim. Belirli bir alandaki yetkinliklerimizden bahsederken gerçekten tecrübeli olduğumuz konuların söylenmesi gerektiğini düşünüyorum.

Bir de bahsetmek istediğim Full Stack Developer olmak konusu var. Kendimden bahsederken Yazılım Geliştirici, Full Stack Developer veya Full Stack Web Developer gibi tanımlamalar kullanıyorum. Full Stack kelimesi ile ifade etmek istediğim şeyler şunlar;

  • Henüz fikir aşamasında olan aklınızdaki bir projeyi; gerekli ihtiyaçları belirleyip analiz ederek bir yazılım ürünü haline getirebilirim.
  • Ürün geliştirme sürecinde hem Backend tarafını, hem de Frontend tarafını A’dan Z’ye tek başıma gerçekleştirebilirim.
  • Girişimcilik tecrübem de olduğundan dolayı, yazılım ürünü geliştirmenin yanı sıra, ürün yönetimi gibi konularda da destek verebilirim.

Yani aslında Full Stack kelimesini backend ve frontend geliştirmenin haricinde, proje üzerinde daha fazla sorumluluk almak anlamında da kullanıyorum.

Ayrıca Frontend konusu hakkında da bir kaç cümle konuşmak istiyorum. Bazı kişiler “frontend bilmek” kavramını doğrudan popüler JavaScript frameworklerinden birisini bilmek ve uygulamanın tamamını bu frameworklerden birisi ile yazmak olarak algılıyorlar. Bence bu doğru bir ifade değil. Ben frontend biliyorum dediğim zaman aslında şunları ifade etmek istiyorum;

  • Html, Css ve JavaScript bilgisine sahibim.
  • Bir html tema aldığımda bunu çok iyi bir şekilde projeme giydirebilirim, eksik gördüğüm kısımları kendim temaya dahil edebilirim. (Bu işi gerçekten çok iyi yaptığımı düşünüyorum.)
  • Responsive, sade ve kullanımı kolay ekranlar oluşturabilirim.
  • Gerekli olan durumlarda (List Rendering, Event Handling vb.) Vue.js gibi bir JavaScript frameworkü’nden faydalanırım. Zaten Vue.js i de bu yüzden seviyorum. Yalnızca ihtiyaç dahilinde projeye eklenmesi son derece kolay.

Yukarıda saydıklarımın haricindeki frontend’e ilişkin diğer alanlardan pek keyif almıyorum. Mesela; single page application dediğimiz tarzda uygulamalar geliştirmek, client tarafında onlarca JavaScript dosyasının olması, bütün yapının ve sorumluluğun client tarafına yüklenmesi, JavaScript ve Js frameworkleri ile çok fazla içli dışlı olunması gibi işlerden mümkün olduğunca uzak duruyorum.

İş geçmişimden ve çalışma şekillerimden bahsedecek olursam;

  • freelance olarak,
  • şirket bünyesinde eleman olarak,
  • proje bazlı olarak bir şirket bünyesinde,
  • ve kendi startup projemde

çalışma tecrübem oldu. Çalıştığım bu süreler boyunca çoğunlukla (%80 diyebilirim) uzaktan (remote olarak) çalıştım. Günümüzde zaten salgın sebebi ile uzaktan çalışmak bir standart haline geldi. Salgın sonrasında da yazılım sektöründe uzaktan çalışma kültürünün aynı şekilde devam edeceğini düşünüyorum. Çalışmaktan en fazla keyif aldığım projeler; A’dan Z’ye sıfırdan bir ürün ortaya çıkardığım projeler. Eğer kurumsal ve büyük bir firmada çalışıp, 10- 15 yıllık projeler ile ilgilenmek zorunda kalsaydım muhtemelen pek mutlu olmazdım. O nedenle yeni bir iş veya projeye başlarken “Ben bu işten keyif alır mıyım?” diye kendime soruyorum. Sonuçta yazılım işini sevdiğim için yapıyorum ve yalnızca para kazanmak için keyif almadığım bir projede yer almayı istemem.

Yazılım geliştirmenin dışında bahsetmek istediğim bir de eğitmenlik konusu var. Udemy üzerinde yayınladığım Sistematik ASP.NET Core Mvc (Detaylı C# Anlatımlarıyla) isminde bir kursum var. Sürekli olarak güncelliyorum. Microsoft teknolojilerini kullanarak nasıl web uygulamaları geliştirilebildiğini anlatan bir kurs. Aslında birilerine bir şeyler anlatma durumu benim için udemy ile başlamış bir şey değil. Bildiğim bir konuyu karşımdaki insana çok iyi bir şekilde anlatabilirim. Bu durum ortaokulda, lisede veya üniversitede de böyleydi. Aklımda uzunca süredir yazılım eğitimi oluşturma fikri vardı. Çünkü internette var olan pek çok yazılım eğitiminin yeterince iyi olmadığını düşünüyorum. Eğitim henüz tamamlanmış değil, ancak tamamlandığında bu alanda oluşturulmuş en iyi Türkçe eğitimlerden birisi olacak.

Ayrıca Udemy üzerindeki kursum aracılığı ile gelen talepler doğrultusunda ilk kurumsal C# eğitimimi de verdim. Benim için keyifli bir deneyimdi. Daha önce Udemy üzerindeki kursum aracılığı ile bana ulaşıp, özel ders almak isteyen kişiler olmuştu. Ancak o dönemlerde aklımda özel ders verme fikri olmadığı için üzerinde çok düşünmemiştim. Vaktimin olması durumunda, şu andan sonra gelecek özel ders/kurs istekleri için uygunum. Bu konuda benimle iletişime geçmek isterseniz linkendin üzerinden veya iletişim sayfasında yer alan e-posta adresim üzerinden bana ulaşabilirsiniz.