Hangi Konuları Bilmeli?
Her ne denli
veri bilimi (data science) ve
yapay us (artificial intelligence) yakın konular gibi görünse de, çoğu kez bir arada kullanılsa da bir çok durumda birisinde çalışılıp ötekisinde az etkinlik göstermek olanaklıdır. Bu nedenle veri bilimi için önerilen dillerle yapay us için önerilen diller aynı olmayabilir. Bir başka konu da veri bilimi ya da yapay us için kullanılmasa da bu alanlarda etkinlik gösterenlerin bilmesi gereken diller ve konular bulunmaktadır. Örneğin veri bilimi için öncelikle verinin elde edilmesi gerekir. Dolayısıyla veri erişimi ilgili dillerin bilinmesi gerekir. İşlenen verinin ne olduğunun da bilinmesi gerekir. İş dünyası ya da bilimsel verilerin kendisi üzerine de bilgili olunması gerekir.
Python
En yaygın kullanılan veri bilimi dilleri arasında en çok sözü edilenlerden birisi
Python dilidir. Python dili, veri bilimi ve yapay us konusunda çok varlıklı betiklik (library) içeren, genel amaçlı olan neredeyse tek dildir. Bunun dışındakiler ya genel programlama dillerdir ve veri bilimi ile yapay us için pek çok destek içeremezler ya da veri bilimi ile yapay us için destek içerirler ama genel amaçlı, her yerde kullanılacak durumda değildirler.
Python dili, bir çok dilde çok sayıda satırdan oluşan kod parçalarıyla yapılan bir işi bir veya iki satırda yazabilmektedir. Bu nedenle asıl işi yazılım geliştirme olmayan, karmaşık geliştirme yöntemlerini bilmesi gerekmeyen kişiler için çok büyük kolaylık sağlamaktadır. Bu nedenle yazılım mühendisliği ya da bilgisayar programlama gibi alanlar eğitim görmeyen, geçmişinde bilim, matematik ya da finans olanları için Python son derece geçerli bir seçenektir. Öte yandan, yazılım geliştirmeyle ilgili bir mesleği olanlar için de Python; gelişmiş araçları, kullanmak istenirse desteklemektedir. Başka bir deyişle, nesneye yönelik izlendirme (object-oriented programming) gibi tekniklerle geliştirme yapmak Pyhton dilinde olanaklıdır. Ancak, işlevsel izlendirme (function programming) yöntemini yeğleyenler için de kolay bir geliştirme seçeneği de sunmaktadır. Bu nedenle veri bilimi ve yapay us için son derece uygun bir seçenek olarak ortaya çıkmaktadır.
R
Bilindik yazılım geliştirme dillerinden olmasa da
R dili de veri bilimi ve yapay us alanında yaygın kullanılır. Gerçekte R, uzbilim (matematik), özellikle de sayımbilim (statistics) alanında kullanılma amacıyla üretilmiştir. Ancak veri bilimi ve yapay us için çok büyük desteği olduğu için bu alanlarda da kullanılır. Sonuç olarak söz konusu alanlarda matematik kullanmadan sonuç üretmeye olanak yoktur. Ücretli bir program olan
MATLAB,
SAS ve
SPSS gibi çevrelerin dilleri de yaygın kullanılmaktadır. Ancak edinilmeleri güç, ücretsiz olarak çalışılması pek olanaklı olmayan dillerdir. R açık kaynaklıdır. Herkes indirebilir ve en gelişmiş özellikleriyle kullanmaya başlayabilir. R öğrenenlerin MATLAB, SAS ve SPSS gibi özel ürünleri kullanabilmesi kolaydır, çoğu durumda son derece benzer biçimde çalışırlar.
R dilinin en büyük üstünlüğü, bir geliştirme dili olmanın ötesinde, doğrudan kullanılabilecek bir uygulama (application) olmasıdır. Başka bir deyişle dil, geliştirme ortamı, geliştirilen uygulamanın çalıştırılması tek bir çevrede gerçekleştirilmektedir. Bu anlamıyla MATLAB gibi bir uygulama olarak kullanılabilir. Dahası, herhangi bir geliştirme yapmadan da yalnızca çevrenin desteklediği özelliklerle sonuç üretmek olanaklıdır. Örneğin bir tablodaki verileri bir çizelge (chart) olarak görmek için geliştirme yapmaya gerek yoktur. Bu özelliği nedeniyle geliştirme yapmaya yavaş yavaş geçmek için de iyi bir araç olarak görülebilir.
Uzbilim (Mathematics) ve Sayımbilim (Statistics)
Bir çok alanla ilişkili olduğu gibi veri bilimi ve yapay us konuları
uzbilim (mathematics) ve
sayımbilim (statistics) konularıyla da doğrudan ilgilidir. Bir çok kişi için veri bilimi, sayımbilime verilmiş yeni bir addan başka bir şey değildir. Dolayısıyla matematik ya da istatistik bilmeden veri bilimi yapmaya olanak yoktur. Öte yandan, veri bilimi ve yapay us için gereken matematik, bilim, mühendislik ve finans alanında eğitim alanlar için çoktan öğrenilmiş durumda olabilir. Ancak yine de üzerinden geçilerek dinçleştirme yapılmasında yarar bulunur. Söz konusu alanlarda eğitim almayanlar ya da eğitim almasına karşın bilgileri diri durumda olmayanlar, özellikle sayımbilim konusunu iyi biçimde öğrenme durumundadırlar.
SQL, NoSQL, XML, JSON, CSV, Büyük Veri (Big Data)
Veri bilimi ile ilgili çalışacak kişileri
SQL ve
NoSQL gibi veritabanı (database) konularını iyi bilmesi gerekir. Verilerin çoğu bu ortamlarda bulunur ve bunları almak çoğu kez veri bilimcinin işidir. Dahası, SQL dili veriye erişmek için kullanıldığı gibi kendisi de bir veri bilimi dilidir. Dolayısıyla Pyhton, R ya da başka herhangi bir dil ya da çevre kullanılsa da başta SQL olmak üzere veritabanı dilleri bilinmelidir. Veriyi ilgili XML, JSON ve CSV biçimlendirmeleri ve büyük veri (big data) konuları, en azından temel düzeyde bilinmelidir.
Web, HTML, CSS, JavaScript
Veri bilimi genellikşe arka uç (back-end) alanına girmektedir. Ancak verilen bir kesimi SQL veya NoSQL gibi veritabanlarından gelmez. Çoğu örün (web) alanından gelir. Bu nedenle
HTTP,
HTML,
CSS ve
JavaScript gibi örün (web) ile ilgili dillerin bilinmesi yararlı olur. Bu dillerin bir önemi de veri bilimiyle elde edilen verilenin sunulurken kullanılmalarıdır. Dolayısıyla çok koşul olmasa da örün programlama bilinmesi çok yararlıdır. Hemen her projenin Genelağ (Internet) ile bir ilgisi vardır ve herhangi bir alanda çalışanlar bu konuları bilmelidir.
C/C++
Veri bilimi için kullanılan bir başka önemli seçenek de
C/C++ dilidir. Python ve R veri bilimi için çok daha uygun ve kolay olmalarına karşın C/C++ dillerinin belli alanlarda üstünlükleri bulunmaktadır. C/C++ dillerinin en önemli artısı hızıdır. Çok çabuk sonuç döndürülmesi gereken alanlarda C/C++ kullanılabilmektedir. C/C++ dilinin kullanılmasının bir nedeni de geçmişten gelen betikliklerdir. Python ve R olmadan önce de C/C++ vardı ve bir çok kurumda bilim, finans ve mühendislikle ilgili işler bu dille yapılmaktaydı. Dolayısıyla veri bilimi için de buradan sürdürmeye ve C/C++ ile geliştirme yapılmaya karar verilmektedir. C/C++ dili, bilimsel alanda çok yaygın olarak kullanılmaktadır. Örneğin veri yapıları ve algoritmalar, bilimsel bilgisayım, uygulamalı matematik gibi konularda C/C++ ile çok sayıda eğitim ve yayın vardır. Öte yandan, C/C++ gibi diller bu alanda algoritmaların anlaşılması ve gerçekleştirilmesiyle ilgilidir. Pyhton gibi dillerde ise algoritmanın yalnızca kullanılması veya kullanılacak kadar anlaşılması gereklidir. Başka bir deyişle Python yalnızca sonuçlarla ilgilenir. Neyin nasıl bulunduğuyla çok fazla ilgilenmez. Ancak C/C++ dilinde gerçekten işlerin nasıl çalıştığına yönelik çalışmalar yapılır. Veri bilimi ya da yapay us ile akademik çalışma yapanlar için C/C++ en önemli seçeneklerden birisidir. Ancak akademik çalışma yapmayan ya da hızlı çalışması için geliştirme kolaylığından vazgeçmeyecek olanlar için C/C++ daha az çekici olabilir.
Veri Yapıları & Algoritmalar (Data Structures & Algoritmalar) ve Bilgisayım Bilimi (Computer Science)
Veri bilimi ve yapay us konusunun bir ucu veri (data) ve bir ucu geliştirme (developement) olsa da; bir ucu bilgisayım bilimi (computing science) alanıyla ilgilidir. Gerçekte yapay us, bilgisayım biliminin bir alt dalıdır. Veri bilimi için çok derin bir bilgisayım bilimi tabanı gerekmese de; veri yapıları ve algoritmalar konusunu bilmeyenler için yapay us gibi konuları anlamak kimi durumda çetin olabilmektedir. Örneğin
karar ağacı (decision tree) konusunun anlamak, ağaç (tree) konusunu bilen biri için kolaydır. Temel bilgileri bilmeyenlerin bir de bilgisayım biliminde belli bir düzeyde bilgi edinmeleri gerekir. Bilgisayım biliminin bir çok alanı, örneğin
sayısal çözümleme(numerical analysis) ve
çizgisel izlendirme(linear programing) gibi alanlar doğrudan veri bilimin konusudur.
İş Çözümleme (Business Analysis) ve Kurumsal Uygulamalar (Enterprise Applications)
Doğrudan programlama ile ilgili olmasa da veri bilimi ya da yapay us üzerinde çalışanların bilmesi gereken konulardan birisi de
iş çözümleme(business analysis) konusudur. Üzerinde çalıştığı veriyi bilmeyen bir kişinin başarı olasılığı düşüktür. Bilim alanları dışında yazılım geliştirmenin en önemli alanı iş dünyasıdır. Yapay us, iş ile ilgili alanlarda uygulanınca
iş usu(business intelligence) adını taşır. Dolayısıyla veri bilimi veya iş usu ile ilgilenenlerin kurumsal uygulamalar (enterprise applications) konusunda bilgili olmaları gerekir. Muhasebe, satış, satın alma, finans, stok, üretim, elektronik ticaret gibi konuları bilmeyen kişilerin bu uygulamaların ürettiği veriyi anlaması çok güçtür.
İzdüşü Yönetimi (Project Management) ve Geliştirme İşlemleri (Development Operations)
Bir başka bilinmesi gereken konu de
izdüşü yönetimi(project management) ve
geliştirme işlemleri(development operations) konusudur. Bir çok kişi veri bilimi alanının yalnızca akademide kullanılan bir bilim dalı ve yapay us konusunun de bilgisayım bilimiyle ilgili bir alt konu olduğunu düşünse de bu alanlarda yapılan iş, yazılım geliştirme (software development) etkinliğidir. Bu alanların bilimin konusu olması bu gerçeği değiştirmez. Veri bilimci ya da yapay usçu, kuramsal konuları bilen birisi değil geliştirme yapan sonuç üreten bir yazılım geliştiricisidir. Öteki yazılım geliştiricilerden ayrımı, insanların doğrudan kullanacağı bir izlence (program) üretmek yerine art alanda çalışan, yalnızca belirleyici durumda olan kişilerin kullanabileceği sonuçlar üreten yazılımlar geliştirmesidir. Ancak sonuç olarak bu da bir yazılım geliştirme alandır. Bilimi kullanan bir yazılım geliştirme etkinliğidir. O yüzden yazılım için izdüşü yönetimini de geliştirme işlemlerini de bilmesi gerekir.
Bu konularda ayrıntılı bilgi, kurs, özel ders, uzaktan eğitim, ödev ve proje destek, kitap ve video için tıklayın :
Python Business Intelligence, Data Science ve Machine Learning