dotcode podcast — “Nasıl Daha İyi Kod Yazarız? Kendimizi Yazılım Alanında Nasıl Geliştirmeliyiz?”

Engincan Veske
SDTR
Published in
4 min readFeb 6, 2023

Herkese merhaba, uzun bir aradan sonra yeni bir Türkçe makale ile karşınızdayım. Sıklıkla kendi kişisel blogumda İngilizce makaleler yazsamda, uzun süredir Türkçe bir makale yazarak medium da yayınlamıyordum, buna bir son vermek istedim :)

Bu yazıda Berkan Şaşmaz ile birlikte açtığımız yeni podcast kanalının (dotcode), ilk bölümünde konuştuğumuz “Nasıl Daha İyi Kod Yazarız? Kendimizi Yazılım Alanında Nasıl Geliştirmeliyiz?” konusuna hazırlanırken çıkardığım notlardan bahsediyor olacağım.

Bu bölüm için hazırlanırken birkaç maddeden oluşan notlar çıkardım. Kendi tecrübe ettiğim şeyleri listelemek ve bunları bir makale içinde sizlerle paylaşmak istedim.

Genel olarak aldığım notları: “Yazılımda Gelişmek” ve “Yazılımda Derinleşmek” başlıkları altında gruplandırdım ve maddeler halinde kısaca açıklamaya çalıştım.

Yazılımda Gelişmek

Söz konusu yazılımda gelişmek olduğunda aklıma 6 maddelik bir liste geldi:

1-) İlgilenilen teknoloji veya dil ve konseptler hakkında official dökümanları okumak ve bunu bir alışkanlık haline getirmek.

Örneğin, ben .NET teknolojilerini takip eden ve günlük olarak bunlarla geliştirme yapan biriyim. Bu sebeple benim bir numaralı kaynağım, Microsoft’un dökümanları oluyor doğal olarak. React ile geliştirme yapan biri içinde React’ın official dökümantasyonu bir numaralı kaynak olmalı diye düşünüyorum.

Bu noktada, bu dökümanları sistematik bir şekilde okuyarak hem kendi bilgi seviyemi arttırıyor, hem ilgili konu hakkındaki bilgimi tazeliyor, hemde unutmamış oluyorum. Bunu bir alışkanlık haline getirmek gerçektende çok önemli, bu sayede ilgili platform hakkında daha çok bilgi öğrenerek, kalıcı olmasını sağlıyorum.

2-) Günlük makale okuma ve yeni teknolojileri takip etme alışkanlığı oluşturmak!

Burada dikkat edilmesi gereken nokta, bu süreci çok uzatıp, dallandırıp budaklandırmamalıyız. Yani bir makalede başka bir makale ile ilgili bir link gördüğünüzde gidip onu da inceleyerek dikkatinizi ve sürenizi harcamamanızı öneririm. Duruma göre okuyun (gerçekten ilgili olduğunu ve fayda sağlayacağını düşünüyorsanız — konu ile alakalı ise) veya daha sonra okumak için listenize ekleyin (genelde bunu yapmanızı tavsiye ederim)!

3-) Online konferanslara ve etkinliklere katılmak.

Bu kesinlikle çok faydalı bir aktivite. Örneğin, her yılın kasım ayında dotnetconf düzenleniyor ve .NET teknolojileriyle ilgilenen biri olarak bu etkinlikleri incelemeye çalışıyorum ve bu sayede hem yenilikleri takip edebiliyorum hemde yeni şeyler öğreniyorum.

Ayrıca, yüz yüze etkinliklere de fırsat buldukça katılmaya çalışıyorum. Yeni şeyler öğrenmek ve çevre yapmak için çok faydasını görüyorum.

4-) Her dil, platform ve teknoloji için internette “roadmap” ler mevcut bunları bir başlangıç noktası olarak görebilir ve buna göre kendinize bir yol çizebilirsiniz (yol haritası çizmeseniz bile ilerleyişinizi görüp, eksik noktaları tamamlamak için faydalı olabilir).

5-) Side-projects (yan projeler) oluşturmak. Bunu pratik olarak ve yaptığınız işlerin gerçek bir varlığa dönüşmesi olarak düşünerek yapmanız lazım.

Projeye başlamadan önce iyi bir analiz yapmanızı ve bunu kağıda dökmenizi tavsiye ederim. Aksi takdirde, yan projelerin yarıda kalması içten bile değil. Bu şekilde yarım bırakıp daha sonra, 1–2 yıl sonra kafama esip tamamladığım veya hiç bakmadığım çok projem oldu.

6-) Öğrendiklerinizi bir makale, podcast veya video gibi bir yöntemle paylaşmak.

Sadece tüketici değil aynı zamanda üretici de olunmalı diye düşünüyorum. Bir içerik üretirken aslında tam oturmayan noktaları farkedip onun üzerine gidebiliyorsunuz, öğrendiğiniz şeyi ifade etmek için konu ile ilgili detaylı makaleler okuyarak, ilgili konu hakkındaki bilginizi geliştirebiliyorsunuz. Bu sebeple, içerik üretmek gerçektende çok önemli bir adım. Feyman yöntemini uygulamanızı tavsiye ederim. Öğrenme süreciniz sağlamlaşacaktır.

Yazılımda Derinleşmek

Bu konu hakkında ayrı bir makale yazmıştım, eğer okumadıysanız göz atmanızı tavsiye ederim: Yazılımda Derinleşmek

Söz konusu yazılımda derinleşmeye gelince, benim deneyimlediğim 3 kritik nokta var:

1-) Derinleşmek için ilgili konular hakkında teknik kitaplar okumak!

Bu çok önemli bir adım, teknik kitapların bir çok faydası var ama en önemli noktaları, bir konu hakkında size sistematik ve adım adım bir bilgi sunmaları. Yazan kişilerin genellikle çok kaliteli mühendisler/geliştiriciler olması da bu işin diğer bir güzel tarafı.

2-) Değişik ölçekte ve kullanımdaki projelerin kaynak kodlarını okumak/incelemek ve orada sıklıkla kullanılan kavramları — modelleri öğrenmek.

Benim gözümde bu en önemli, en sık göz ardı edilen ve en az önerilen aşama.

Bir şeyi okumadan yazmak çok mantıklı ve pratik bir şey değil. İlk okulda okuma-yazma öğrenme durumunuzu göz önüne getirin. İlk olarak onlarca kitap okuduğunuzu daha sonra ise adım adım yazmayı öğrendiğinizin farkına varacaksınız. Aynı şey yazılım içinde geçerli, dolayısıyla kaynak kod okumayı bir alışkanlık haline getirmek önemli!

3-) Okuduğunuz/öğrendiğiniz her şeyi uygulamaya dökmek.

Bu da gerçektende çok önemli bir aşama ve yan projeler oluşturmaktan farklı bir nokta. Bir örnek üzerinden ne kastetmek istediğimi anlatayım.

Örneğin, .NET de Span<T> hakkında bir yazı okuyup, mentalitesini anladıktan sonra onu günlük koduma dahil etmem ve gerekli yerlerde kullanabilmem lazım. Ben genelde yeni bir dil özelliği, sınıfı vs. gördüğümde hemen grep.app veya direkt GitHub’ın kendi search’ü üzerinden arayıp, kullandığım projelerde nerelerde kullanılmış, neden kullanılmış ona bakıyorum ve bu gerçekten de çok faydalı oluyor. Bende kendi kodumda gerekli yerlerde bu refactoring işlemini yapıyorum veya yeni bir kod yazarken bu yeni öğrendiğim şeyi de işin içine dahil etmeye özen gösteriyorum.

dotcode

Makaleyi sonlandırmadan önce yeni podcast kanalımızın duyurusunu yapmak istiyorum. Makalenin başında da bahsettiğim gibi, Berkan Şaşmaz ile birlikte dotcode adında yeni bir podcast kanalı oluşturduk. Bu podcast kanalında, yazılım başta olmak üzere birçok konu hakkında konuşuyor olacağız.

İlk bölümümüzde bu makalede kısaca değindiğim “Nasıl Daha İyi Kod Yazarız? Kendimizi Yazılım Alanında Nasıl Geliştirmeliyiz?” konusu hakkında konuştuk.

İlgili podcast bölümü şuan 4 platformda yayında ve aşağıdaki linklerden ulaşabilirsiniz:

Sosyal medya hesaplarından da bizi takip etmeyi unutmayın, böylece yeni bölümler hakkında hızlı bir şekilde haberdar olabilirsiniz:

Okuduğunuz için teşekkürler, umarım keyif almışsınızdır. Bir sonraki yazı da görüşmek üzere…

--

--