Bilmek istediğin her şeye ulaş

Kainat ve içindekiler insanın algılayamayacağı kadar derin ve hepsi aslında bir insanın içine sığacak kadar da soyut. Biz mühendisler, büyük projeleri gerçeklemeden önce modelini yapıp üzerinde gerçeği hakkında düşünürüz. Köprüler, uçaklar, yazılımlar.. hep böyle oluşur. Bilgisayar ve enformatik bilimleri ise insanın beyni ve düşünce yapısını modelleyen özel bir kulvardır, aslında. Makalelerim: turancem.blogspot.com

Kasım 2015

Cem Turan  yeni bir  gönderide  bulundu.

Kasım 2015

Cem Turan bir yanıt verdi.

Matematiği en kolay nasıl anlarım?

Matematiği anlamanın yolu tarihi sevmektir aslında. Yanlış duymadınız, tarihi sevmek. Hiçbir alan, matematik kadar haksızlığa uğramamıştır sanırım. Ezberciliğe kurban ettiğimiz, öğrendiğimiz her teoreme sanki gökten zembille inmiş gibi muamele ettiğimiz, öğrenciliğimiz müddetince öğretmenimize "neden böyle, bunu kim, neden düşünmüş, yaşamın hangi sahnesi bu teoremin oluşmasını mümkün kılmış... ? " kabilinden, irdeleyici soruları sormadığımız bir derstir matematik. İrdelemeyince anlamaz, anlamayınca da sevmeyiz. Oysa neredeyse insanlık kadar eskidir matematik. Hiç olmazsa Babiller, Antik Yunan'dan başlayıp kitaplarımıza girmiş konuların nereden geldiği konusuna biraz eğilmek gerek. Gökyüzündeki büyülü dünyanın, astronomik gözlemalerin geometrinin, trigonometrinin gelişimine açtığı yolları bilmek gerekir. Felsefeye de biraz bakmak gerekir. Öklid'in, Pisagor'un biyografilerine bir göz atmak gerekir. Bilimin ilginç tarihi içinde matematik uğruna dönen entrikaların Holywood filmlerini aratmayacak ilginçlikteki heyecan verici hikayelerini öğrenmek bir matematik öğrencisine mutlaka çok şey katacaktır.

Matematik yaşamın modellenme aletidir, canlıdır ve her yerdedir. Bunu bilmek bile matematiği sevmek için yeter. Sevilen şeyin peşinden gidilir, zorluklarına göğüs gerilir, öğrenilmesinden keyif alınır. İşte o zaman anlaşılmaz şeyler anlaşılır.
Temmuz 2015

Cem Turan  yeni bir  gönderide  bulundu.

Temmuz 2015

Cem Turan  yeni bir  gönderide  bulundu.

Temmuz 2015

Cem Turan  yeni bir  gönderide  bulundu.

Mayıs 2015

Cem Turan bu yanıtı beğendi:

Yazılım projelerinin dökümantasyon süreçlerinin yürütülebileceği araçlar nelerdir?

Doxygen bana biraz düzensiz geliyor. Daha modern ve daha detaylı bir dokümantasyon oluşturabileceğiniz, ister online oluşturabileceğiniz, ister kendi sunucunuzda host edebileceğiniz Read the Doc'u tavsiye ederim.

Web Site:readthedocs.org/
Örnek:docs.sylius.org/en/latest

Edit: İmla. TeşekkürlerAhmet Tekelioglu (@ahmettekelioglu)
Mayıs 2015

Cem Turan bir yanıt verdi.

Yandex, Google vs. arama motorları olmasaydı internet nasıl bir yer olurdu ve istediğimiz siteye nasıl ulaşırdık?

Bir nesneler kümesinin içinden aramayı kolaylaştırdığı düşünülen bir aletin kaldırılması nesnelerin gerçekliğini ortadan kaldırmaz. Dolayısıyla arama robotu kavramının bütünüyle ortadan kalkması bile veri bazlı bir şebeke olan internetin varlığı için bir tehdit oluşturmaz.

İnternet bir samanlık, arana bilgi iğne olsun: Siz iyi olduğun kabul ettiğiniz bir büyüteç kullanıyorsunuz. İşe de yarıyor, kolayca görebiliyor ve kısa denilebilecek sürede iğneyi veya iğnemsi şeyleri (!) bulabiliyorsunuz ama yine o samanlıkta arıyorsunuz.

Birisi büyütecinizi aldı elinizden, arama robotları yok artık. Oturup ağlamak olmaz elbette. Hatta belki de büyütecin varlığı, arama yapmak için daha inovatif fikirlerin yeşermesine mani idi. Çünkü radikal gelişimler için önce ihtiyaç halinin oluşması gerekir ama büyüteciniz iyi kötü iş görüyor diye, bu ihtiyaç gölgelenmişti şimdiye kadar.

Oysa belki de daha iyi bir alet, yöntem vardır samanlıktaki gerçek iğneleri şıp diye bulmak için.
Mesela... Samanlıkta mıknatısla iğne aramak! Olamaz mı? :)

Biraz farklı gözlerle bakmaktır, yaşama geliştiren ve bilimi, medeniyeti ilerleten güdü. Bilimsel olarak hiçbir şeyin son ve en iyi yöntem olduğu ispatlanamaz. Sadece bir süreliğine en iyi olduğu kabul edilir, ta ki birileri "kral çıplak, işte bu da elbise! " diye yeni bir ürün ortaya koyuncaya kadar.

Peki kimler mi diker kralın yeni elbisesini? Öncelikle ön yargılarını bırakıp krala alıcı gözle bakanlar :)
Mayıs 2015

Cem Turan bir yanıt verdi.

Nesne tabanlı programlamaya neden gerek duyulur?

Teknik insanların önemli bir kısmı bu gerçeği kaçırsa da bilgisayar bilimleri, pek çok yönü ile hayatın ve özellikle beynin düşünsel fonksiyonlarının, yaşamı algılayışının bir modelidir. Dolayısıyla; bilgisayar ile bir bilim olarak derinleşmek hayatı daha sistematik olarak değerlendirmek, analitiğini görebilmek fırsatını verir insana. Bu önermenin tersi de önemlidir: Bilgisayar bilimlerinin karmaşık gibi görünen dehlizlerle dolu yollarında, güncel yaşamdan örnekler alarak benzetimlerde bulunmak, çoğu kez sorunu çözücü, anlaşılmazı anlaşılır kılmaya yeter. Tıpkı nesneye yönelik tasarıma ve programlamaya nereden gelindiğini anlarken kullanacağımız yöntem gibi:

Yaşama biraz daha alıcı gözle baktığımızda, algı sınırlarımızla çevrelenmiş bu dünyanın, her biri kendince anlamlı, sayısız varlıktan oluşma bir yapboz olduğunu düşündürecek yeterince bulguya erişiriz. İşe başlıyoruz:

Coğrafi olarak söylersek; dünya, kıtalar, ülkeler, şehirler, ilçeler, mahalleler, sokaklar, binalar, daireler...
Biyolojik olarak söylersek; canlı, familya, cins, beden, organ, hücre...
Dikkat ederseniz; sağdan sola doğru gidildikçe bir bütün oluşuyor. O halde her maddenin atomdan oluştuğu gibi, her varlığın alt varlıklardan oluşması, akla yatkın gözüküyor.

Bir evi örnek alın ve isim tamlamaları türetin: evin penceresi, evin kapısının kulpu, evin ocağının bacasının dumanı...

Bu örneklerin akıl almaz kombinasyonlarla çoğaltabileceğimiz gerçeği, yaşamın ne denli zengin bir varlıklar (nesneler) kümesi olduğunu ortaya koyuyor. Ve biraz daha derin bir analizde şunun da farkına varmak mümkündürki; nesnelerin yaşam uzayı içindeki rolünü ve önemini belirleyen temel faktörlerden birisi de diğer nesnelerle kurduğu ilişkilerdir. Sosyal ağ kavramının da çıkış noktası burasıdır. Diğer bir ifadeyle karmakarışık bir ağın parçalarıyız, diğer tüm varlıklar gibi ve sürekli olarak diğer varlıklarla (nesnelerle) etkileşim halindeyiz ki yaşam bu demek.

Daha da teknik ifadeyle; kendimiz de dahil olmak üzere tüm canlı ve cansız hayat yapı taşları, hayat denen çizgenin (grafın) düğümleriyiz. Birbirimizle olan ilişkiyi gösteren, belki de sonsuz sayıda kenar ile birbirimize bağlıyız. Bu karman çorman ağın bir parçası olmaktır, yaşamak.

Bu kadar bilişim felsefesinden sonra, bir soru geliyor akla: Bir nesneyi diğerlerinden ayırmak, onunla iletişim kurmak ve onu yönetebilmek için bazı özel tanımlara ihtiyacımız yok mu? Elbette! Yaşamı iyi gözlemleyenler -ki iyi bilim insanı olmak, bu demektir- nesnelerlr ilgili bu tanımları üç kategoride toplamışlar:

1- Bu nesnenin nicel özellikleri (Boyu posu, rengi, tadı, ağırlığı, şekli şimali vb.) [özellik, attribute]
2- Her varlık gibi bu nesnenin de başına gelebilecek haller (kırılma, çarpma, düşme, yürüme, patlama, ölme vb.) [olay, event]
3- Bu nesneye iletişime geçilerek yaptırılabilecek eylemler (bağır, yaz, koş, göster, sus, ye, kapat, azalt vb.) [metod, method]

İşte bu tespit üzerine modellenmiş ve kurgulanmış bir yapıdır, nesneye yönelik tasarım ve programlama: Daha gerçeğe yakındır, bir orkestra şefi olduğu hissini verir tasarımcısına. Yine canlılar dünyasında olduğu gibi bazı özellikler kalıtsal olabilir yani; genetik yolla kendinden türeyen diğer canlılara geçebilir. [kalıtım, inheritance] Yine canlılar dünyasında olduğu gibi; kalıtım yoluyla geçen özelliklerden bazıları mutasyona uğrayarak değişebilir [çok biçimlilik, polymorphism] , atasında olmayan yeni özellikler kazanabilir [üzerine yazma, overriding]. Hatta bir bukalemunun renk değiştirerek kendini gizlemesi gibi bazı özelliklerin bazı kimselere görünür bazılarına görünür olmamasını tercih gibi güvenlik amaçlı davranışlar da olabilir canlılar dünyasında. [sarmalama, encapsulation] Ve nihayet soyut kavramlar da vardır yaşamın içinde; duyu organlarımızla algılayamayız belki ama var olduğunu biliriz. [soyut, abstract]...

Bir kapı:
Özellikleri var; rengi kırmızı, boyu 2 metre, cinsi tokmaklı, durumu açık...
Olayları var, başına gelen; açılır, kapanır, çalınır, kırılır...
Metodları var, yapmasını istediğimiz; açıl, kapan, dur, devril...

Bu kapıdan bir başka yavru doğabilir, o da kapı lakin bir özellik eklenerek mutasyona uğratılmış, o bir "camlı" kapı. Bir diğer çocuğu da "sürgülü kapı". İşte size çok biçimlilik.
Bu kapının kilidi var, öyle herkese açılmaz. Kimisine kilitli görünür kimisine açık. Sarılıp "sarmalanmıştır" bir güzel...

Ne kadar renkli bir yaşam değil mi? İşte o rengi kaçırmamak adına, insanoğlunun en iyi yaptığı iş yapılarak yaşam taklit edilmiş; kuşların kanatları uçaklara, köstebeğin tırnakları iş makinesinin kepçesine nasıl takıldıysa gerçek yaşamın nesneler analitiği de yazılım dünyasına kurgulanarak, "nesneye dayalılık" konsepti geliştirilmiştir. Önceki yaklaşım olan "yapısal programlama" gibi makine sistematiğine göre değil, nesnelere parçalanmış gerçek bir yaşamın düzenine göre davranır. Yazılımcının kendisini başrollerde çeşitli nesnelerin oynadığı bir filmin yönetmeniymiş gibi hissetmesi, bundandır ki doğaldır.

Bir başka önemli nokta: Burada anlatılanlar sanki meslektaşlarımla ve programcılarla ilgili gibi düşünülebilir ama aslında her meslek kesiminde karşılaşılan bir olgudur nesneler. Çünkü hayat o nesnelerin etkileşiminden ibarettir. Umuyorum farklı alandaki kişilere de nesnelerin sistematiği açısından fikir verir, yazdıklarım.

İşten Cemce bir nesne tabanlı yaşam tarifi. Onu lezzetli bir yemeğe dönüştürmek ise sizin maharetinizle mümkün.
Daha Fazla

İlgilendiği KonularTümü

Yazılım

2916 Kişi   548 Soru

Yazılım Geliştirme

1187 Kişi   185 Soru

Yazılım Algoritmaları

461 Kişi   31 Soru

Bilgisayar Oyunları

785 Kişi   111 Soru

Yazılım Mühendisliği

521 Kişi   37 Soru

İnsan Davranışları

3601 Kişi   955 Soru

Web Tasarım

1184 Kişi   213 Soru

Yaşam

1164 Kişi   390 Soru

Girişimcilik

3475 Kişi   358 Soru

Türkiye Sorunları

1109 Kişi   239 Soru

Kişisel Gelişim

1860 Kişi   145 Soru

Bilgisayar Mühendisliği

799 Kişi   76 Soru

Proje Yönetimi

688 Kişi   36 Soru

Teknoloji

1853 Kişi   577 Soru

Psikoloji

2690 Kişi   947 Soru

Meslek Seçimi

770 Kişi   93 Soru

İnsan İlişkileri

965 Kişi   127 Soru

Bilişim

522 Kişi   110 Soru

Yönetim

470 Kişi   57 Soru

ASP.NET

265 Kişi   140 Soru

Öğretmenlik

443 Kişi   73 Soru

Zeka

818 Kişi   91 Soru

Öğretim Sistemi

193 Kişi   9 Soru

Bilgisayar Öğretmenliği

170 Kişi   8 Soru

İnovasyon

262 Kişi   38 Soru

İcatlar

326 Kişi   42 Soru

Düşünce Tekniği

463 Kişi   30 Soru

Microsoft Visual Studio

121 Kişi   37 Soru