2.Hafta: Bir Yazılımcının Yolu

Egemen Dirik
5 min readJan 15, 2023

--

Hızlı geçen günlerin ardından 2023 yılının 2.haftasını da tamamladık. Bu hafta yazıda, basit şekilde versiyon kontrol sisteminin ne olduğunu ve nasıl kullanacağımızdan bahsedeceğim. Ardından, yazmaya koyulduğum kitabımında içeriğinde yer alan bir sayma konusu olan, ‘Güvercin Yuvası İlkesi’ hakkında bir takım şeyler karaladıktan sonra, elimde olmasından mutluluk duyduğum eski ‘Matematik Dünyası’ sayılarından birinin içeriğinden bahsedip 2. hafta hayatımın bilim adına nasıl geçtiğini sizlere aktarmış olacağım. Umarım aynı şekilde severek okuduğunuz bir yazı olacaktır. Şimdiden keyifli okumalar dilerim.

Her zamanki tutumum olarak versiyon kontrol sisteminin tanımını yapmakla başlamak istiyorum.

Versiyon kontrol sistemi (VCS), zaman içinde kodda yapılan değişiklikleri takip ederken birden fazla kişinin aynı kod tabanı üzerinde işbirliği yapmasına izin veren bir araçtır. Geliştiricilerin kodun farklı sürümleri üzerinde aynı anda çalışmasına ve daha sonra değişikliklerini tek bir sürümde birleştirmesine olanak tanır. Bu, gerekirse kodun önceki bir sürümüne geri dönmeyi kolaylaştırır ve ayrıca kodun ekip üyeleri arasında işbirliğini ve paylaşımını sağlar. İsmen bildiğim versiyon kontrol sistemleri şunlardır; Git, Mercurial, and Subversion. Aralarından benim kullanmayı ve tahmince çoğu şirketinde kullandığı olan sistem Git hakkında bu yazıda bahsedeceğim.

Bu sistemlerin önemini şöyle anlayabilirsiniz; 50 kişilik bir ekiple bir oyunun yazılımı üzerine çalıştığınızı düşünün. Bir ekip bu oyunun dinamiklerini yapıyor, diğer ekip bu oyundaki hataları ayıklıyor vs. Peki bunları nasıl bir çatı altında toplarsınız ? Tabiki versiyon kontrol sistemi kullanarak yoksa böyle bir projenin değişikliklerini takip etmek, her hatayı sil baştan incelemek ve depolamak devasa bir iş yükü ortaya çıkmasına neden olacaktır. Bu yüzden yazılımcılar ve geliştiriciler böyle sistemler kullanmaktadır.

Ücretsiz ve açık kaynaklı olduğu için Git kullanmak benim açımdan en verimlisi olmaktadır. Ayrıca Git, küçükten çok büyük projelere kadar her şeyi hız ve verimlilikle işleyebilmesi sayesinde kullanış olarak bir adım daha öne çıkmaktadır. Git hakkında daha fazla bilgi ve kullanımını öğrenmek için lütfen kaynakça kısmını kontrol ediniz. Ufak bir giriş videosunu izlemeniz için buraya bırakıyorum.

Versiyon Kontrol Sistemleri

Matematikte saymak!

Saymanın kökenleri bilinen eski atalarımız kadar gitmektedir. Erken sayma sistemlerinin kanıtları, tarih öncesi çağlara dayanan kemikler ve taş tabletler üzerinde taksitli işaretler şeklinde bulunmuştur. Daha modern anlamdaysa eski Mısırlılar ve Babilliler, hala kullanılan 10'luk taban sistemi kullanmışlardır.

Eski Yunan’da Pisagor ve takipçileri, sayma ilkesinin geliştirilmesinin temelini oluşturan matematiksel bir kanıt fikrini geliştirdiler. MÖ 5. yüzyılda, Yunan matematikçi Abdera’lı Democritus’un sayma üzerine bugüne kadar ayakta kalamayan bir kitap yazdığı bilindiğine dair tarihsel kanıtlar mevcuttur.

Modern anlamdaysa 17. Yüzyılda Fransız matematikçi Blaise Pascal ve Alman matematikçi Wilhelm Schickard, nesneleri sayma ve düzenleme çalışması olarak matematiksel kombinatorik kavramını bağımsız olarak geliştirmişler ve kombinatorik, sayma ilkesinin modern anlayışının ve matematiğin çeşitli alanlarındaki uygulamalarının temelini atmışlardır.

19. Yüzyılda gerçekten ilginç bir matematikçi olan matematikçi George Cantor, kümelerin özellikleri ve ilişkileri ile ilgilenen bir matematik dalı olan küme teorisi kavramını geliştirmiştir. Küme teorisi, sayma ilkesini ve sayı teorisi ve topoloji dahil olmak üzere matematiğin çeşitli dallarındaki uygulamalarını daha da ileriye götürmeye vesile olmuştur.

20. Yüzyılda sayma ilkesi bilgisayar bilimi, istatistik ve bilgi teorisi gibi alanlara uygulandı. Amerikalı matematikçi Claude Shannon’ın çalışması, bilginin temsili, aktarımı ve işlenmesiyle ilgilenen matematiğin dalı olan bilgi teorisi çalışmasının temelini attı. Sayma ilkesi, belirli bir kanal üzerinden iletilebilecek bilgi miktarını hesaplamak için bilgi teorisi alanında yaygın olarak kullanılmaktadır.

Özetle, sayma ilkesinin eski uygarlıklara dayanan uzun bir geçmişi olup, yüzyıllar boyunca matematikçiler tarafından geliştirilmiş ve genişletilmiştir. Matematikte temel bir kavram haline gelmiştir ve bilgisayar bilimi, istatistik, bilgi teorisi ve diğer birçok matematik dalı gibi çeşitli alanlarda yaygın olarak kullanılmaktadır.

Yukarıda ki sebeplerden kitabıma bu konuyu almak istedim ve saymanın eğlenceli bir alt konusu olan güvercin yuvası ilkesinden bu yazıda bahsedeceğim.

İlkeyi şu şekilde tanımlayabilir. 19 adet güvercin yuvası olduğunu ve bu yuvalara girmeye çalışan en az 20 adet güvercin olduğunu düşünün. Eğer her güvercin bir yuvaya mutlaka girecekse, en az bir yuvada iki adet güvercin olmalıdır. İşte bu ilkenin ismi buradan gelmektedir. Pek matematiksel tanım olmadı lakin matematiksel tanımı bu başlığın sonunda vereceğim, sonuçta okuyucu kitlesi matematikçi olmak zorunda değil. Şimdi, matematikte ve hayatta bir konuyu anlamak için büyüklerimden öğrendiğim bir yöntemi kullanarak yazıma devam edeyim. Yöntem şöyle, bir konuyu anlamak için önce bariz, sonra kompleks daha sonraysa karşıt örnekler aramak faydalı olacaktır. Ben de bu yazıda bariz örnekler vererek okuyucuya bu konuyu kavratmaya ve eğlendirmeye çalışacağım.

Güvercin

Örnek 1) S = {1,2…,9} kümesinden 6 adet seçim yaptığımız taktirde toplamları 10 olan 2 rakam bulanabilir.

Çözüm) Güvercinleri rakamlar, 2 elemanlı alt kümeleriyse güvercin yuvaları olarak düşündüğümüz zaman, {1, 9}, {2, 8}, {3, 7}, {4, 6}, {5} 5 adet yuvamıza 6 adet güvercin sokmaya çalıştığımız taktirde muhakkak aynı yuvada birden fazla güvercin olacaktır.

Daha güzel örnek 2) Bir kenarı 1 birim olan eşkenar üçgenin içinden 5 nokta seçtiğimiz zaman herhangi ikilinin arasında uzaklığının ≤ 1/2 olduğunu bu ilkeyi kullanarak gösterebiliriz.

Çözüm) Üçgenimizi orta kenarlarının orta noktalarına gelecek şekilde 4 eş üçgene böldüğümüz taktirde bu üçgenlerin kenar uzunlukları 1/2 olacaktır. 2 adet noktamız en azından bu küçük üçgenlerin içinde yer almak zorundadır ve bunun sonucu olarak arası maksimum 1/2 olan iki nokta bulabiliriz.

Güvercin yuvası ilkesinin sonuna gelirken genellemesini daha matematiksel(ne demekse!) olarak bir teoremle ifade edip noktalayayım.

Genelleştirme Teoremi: k pozitif bir tamsayı ve N, k adet kutunun içine yerleştirilen objeleri temsil etsin. En azından 1 kutu ⌈N/k⌉ veya daha fazla obje içerecektir.

Bu hafta kitaplığımı tekrardan düzenlerken daha önceleri almış olduğum matematik dünyasına ait eski sayılara tekrar bakma fırsatım oldu. Gözüme Temmuz 2002'de çıkmış sayıda bir başlık ilişti. ’11 Eylül’ü Hatırlamak’ . Konunun yazarları olan ‘Doğan Kökdemir, Ayşegül Özgün ve Serap Ergen’ e teşekkürleri sunup yazının genel bir özetini burada kendi kelimelerimle ifade etmek istedim.

Matematik Dünyası

Her ne kadar komplo teorilerine körü körüne karşı çıkmasamda matematik alanında sayılarla ilişki kurulup ortaya atılan mistik durumlar matematik bilen kişiler için gülünç gelmektedir. Bu yazıda da yazarlar, kitleleri etkileyen büyük çaplı saldırı sonrası türeyen bazı mistik örnekleri ve sahte bilim konusunu incelemişler. Akabinde tuhaf rastlantıların olasılığına değinmişlerdir. Yazının içeriğini hem yazarlara saygımdan hem de hem de kopyalama olmaması adına daha fazla detay vermeden noktalamak istiyorum. Yazıyı merak eden okurlar kaynak kısmında bıraktığım isimle dergiyi bulup bilumum yerden temin edebilirler.

Yazımı samimi bir çalışma ortamından fotoğrafımla bitirmek istiyorum. :)(Ufak şımarıklıklar.) Bir sonraki haftanın konularını ve yapacaklarımı netleştirmediğim için yazıda belirtmekten kaçınıyorum. Tekrardan keyifli okumalar ve iyi haftalar diliyorum.

Samimi çalışma ortamı :)

KAYNAKLAR;

Versiyon Kontrol Sistemi Hakkında:

  1. https://github.com/jlord/git-it-electron
  2. https://www.youtube.com/watch?v=zbKdDsNNOhg
  3. https://www.youtube.com/watch?v=SWYqp7iY_Tc

Güvercin Yuvası İlkesi Hakkında:

  1. https://www.amazon.com/Discrete-Mathematics-Its-Applications-Seventh/dp/0073383090

Matematik Dünyası Hakkında:

  1. 11 Eylül’ü Hatırlamak- D.Kökdemir, A.Özgün, S.Ergen (Temmuz 2002 Cilt:11 Sayı: 3 ISSN-1300–624X)

--

--

Egemen Dirik
Egemen Dirik

Written by Egemen Dirik

Science Teller. Studied Math. Worked as a project manager. Research on philosophy. Discussing about the history and future of the education. Edupreneur.

No responses yet