SQL Öğreniyorum
Heyecanlıyım.
SQL öğrendiğim için değil aslında. learning-to-read denememden sonra ilk kez teknik bir konuda öğrenme yolculuğuna çıkıyorum. İlk kez teknik bir şey öğrenmiyorum ama ilk kez öğreniyormuş gibi heyecanlıyım, çünkü test zamanı.
Daha önceleri 'şunları öğrenmeliyim, bu konuda kendimi geliştirmeliyim' dediğim birçok konuyu yarım bıraktım. Yaygın bir durum zaten bu. Ama bu siteyi açmaya karar vermemin bir sebebi var (hikayem). O sebeple bu hedefle çıktığım yolda ilk teknik denemem. Bu yazı yaşayan bir yazı olacak, tıpkı learning-to-read gibi. Okuduklarımı, izlediklerimi ara ara gelip burada yazıyor olacağım.
Neden SQL öğreniyorum?
Herkesin her şeyi yapay zekaya yaptırmaya çalıştığı bir dönemde bu tarz şeyleri öğrendiğini söyleyen kişilere oldukça az rastlıyorum. Eskiden böyle değildi, mesela bundan 5 yıl önce 'SQL Öğreniyorum' diye bir yazı yazsam muhtemelen nedenini açıklamazdım. Çünkü oldukça popüler bir şey SQL öğrenmek. Halen öyledir tabii ki ama bu şekilde bir şeyler öğrenmek eskisi gibi sık gördüğüm bir şey değil. Gelelim sorumun cevabına, SQL öğrenmek istememin temel sebebi merak ediyor olmam. İkinci büyük sebebi ise SQL çok güzel, yani güzeldi. Öyle hatırlıyorum, üniversite yıllarımda çok severdim uğraşmasını. Bir yazılımcı olarak beni güçlü hissettiren bir şey, verileri saklamak, gerektiğinde göstermek üzerinde taklalar atmak keyifli bir şey olsa gerek, ben de oynamak istiyorum :)
Tabii bir de ihtiyacım var.
Yaptığım işte SQL kullanmıyorum. Ben işin frontend dünyasındaydım hep kariyerimde, halen de öyle devam ediyor.
Fakat az önce de söyledim ya yapay zeka her şeyi yerinden oynattı, ben de kendimi birçok konuda yetkin biri yapmak istiyorum.
SQL öğrenerek bakış açımı genişletmek, yaptığım işe hakimiyetimi arttırmak istiyorum.
Neden bir backend dili ile backend geliştirme yaparak başlamıyorum diye sorarsanız eğer, denedim.
Bu siteyi oluşturmadan önce, daha doğrusu bakış açımı değiştirmeden önce farklı zaman dilimlerinde birkaç kez farklı şekillerde backend öğrenmeye giriştim.
Bu arada backend derken gelen istekleri karşılayıp bir http response dönmekten bahsetmiyorum.
Bakış açılarını, mimarileri, sorunları nasıl ele alacağım konularını öğrenmekten bahsediyorum.
Her neyse bu sefer o eski denemelerimi anımsamadan SQL öğrenmeye karar verdim.
Tüm planı daha oturtmadım, fakat ilk olarak SQL hikayesini ve çıkış noktasını araştıracağım.
Ne zaman hangi gerekçelerle ortaya çıkmış gibi konuları araştıracağım.
Sonrasında syntaxını öğrenmeye başlayacağım. Temel komutlarla pratik yapacağım.
O noktadan sonrasına daha karar vermedim, bilmiyorum çünkü henüz. İlerleyen zamanlarda o planlarımı da zaten burada yazıyor olurum.
Yöntemim
Eski usul bir şekilde başlayacağım. Udemy! Eski dostumu bir ziyaret edip bir eğitim serisi buldum. Eğitim şu: The Complete SQL Bootcamp. Bana genel bir tanıtım yapsın yeter diye düşündüm, çok oylama yapılmıştı eğitmen de iyi görünüyordu o sebeple bunu seçtim. 5 dakikada falan karar verdim eğitime belki daha iyileri vardır.
Benim buradaki hedefim eğitimi biraz yol gösterici gibi kullanıp süreç boyunca deneyerek bir şeyler yapmak. Tabii Gemini muhtemelen çok yoğunluklu olarak kullanacağım diğer tool olacak. Claude Code kullanıyorum ama genel konsept açıklamaları için Gemini Web üzerinden soru cevap yapmak benim daha çok tercih ettiğim bir şey.
İlk planlarım bu yönde, bu sitenin temelinde deneme yanılmalarımı paylaşmak olduğu için (bahçe) deneyeceğim video işini sevmezsem taktik değiştirebilirim.
25 Ocak tarihi itibarıyla şu an planlarım bu kadar.
Güncelleme: 26 Ocak
Bugün mesai bittikten bir kaç saat sonra yukarıda bahsettiğim eğitime başladım. Bence iyi bir eğitim seçmişim, 1.5xde izliyorum genelde akıyor gidiyor.
Eğitimin ilk sectionunu bitirdim, kurulum kısmını hızlıdan geçmiştim zaten.
Eğitimde PgAdmin kullanıyor ama ben TablePlus yükledim. PgAdmin pek sevmedim. Zaten ufak tefek sorgular yazıyorum, daha az karmaşık bir tool daha iyi olur diye düşündüm.
Basit sorgular için gerekli 'keyword'leri öğrendim, bir iki pratik yaptım
Bunlar da ilk gün notlarım

Aşağıdaki selektörlerin(Jargona daha çok hakim değilim, fonksiyonlar falan da var farkındayım) kullanımlarını öğrendim, bir iki basit sorgu yazdım.
- Select
- Distinct
- Count
- Order by
- Limit
- Between
- Where
- Like
- ILike
Eğitimde hazır bir veritabanı veriyor, içinde 8-10 tane tablo var. O verilerle pratik yapıyorum.
Güncelleme: 28 Ocak
Bugün bir saat kadar eğitimi izledim, sıcağı sıcağına da bu yazıyı güncelliyorum. Yavaş yavaş ilerliyorum. Yani, böyle çok bilmediğim, çok garip gelen şeyler yok açıkçası. Fakat hani tekrar görmek, "Aa evet, bu böyleydi" demek iyi hissettiriyor.
Bugün aggregation fonksiyonlarını gördüm, onlara baktım. Group By kullanımına baktım, bunlarla pratik yaptım. Bir de Having Clause kullanımına baktım, bunlarla ilgili pratik yaptım. Bir iki not aldım.
Bu yukarıda bahsettiğim eğitimi izleyerek aslında şu an devam ediyorum. Keyifli geçiyor, şu anda yaramazlık yok.
Bugünün notları:

Bugünün fonksiyonları ve clause'ları:
- Count()
- Sum()
- Avg()
- Min()
- Max()
- Round()
- Group By
- Having
Toprak kontrol ediliyor...