“Yazılımın Nedir?” sorusuna teknolojiyle ilgilenen hemen hemen herkes kabataslak bir cevap verir. Öte yandan “Yazılım Niye Önemlidir?”, “Yazılım Çeşitleri Nelerdir?”, “Hangi Yazılım Dili İle Başlanmalı?”, “Yazılımcı Olmak İçin Bilinmesi Gerekenler?” gibi soruların derli toplu şekilde yer aldığı kaynak bulmak bir hayli zor.
Yazılım ile ilgili bu tür sorularla sektördeki herkes karşılaşır. Ancak tüm bunları derli toplu ve anlaşılır bir şekilde aktaran bir kaynak bulmak epey zor.
Bu makalede; “Yazılım Nedir?”, “Yazılım Niye Önemlidir?”, “Yazılım Çeşitleri Nelerdir?”, “Hangi Yazılım Dili İle Başlanmalı?”, “Yazılımcı Olmak İçin Bilinmesi Gerekenler?” “Programlama Yaparken Hangi Yazılım Dili Kullanılmalıdır?” gibi yazılım ile ilgili sıkça sorulan sorulara yanıt vereceğiz. O halde yazılım nedir? sorusuyla başlayalım.
Yazılım Nedir?
En yalın tanımıyla yazılım; elektronik bir donanımı, belirli bir işi yapması için derlenmiş komutların bütünüdür. Bu komutlar işlemcilerde işlenerek bir olaya dönüştürülür. Peki Türk Dil Kurumu Sözlüğü‘ne göre yazılım nedir? diye baktığımızda şu tanımla karşılaşıyoruz; Bir bilgisayarda donanıma hayat veren ve bilgi işlemde kullanılan programlar, yordamlar, programlama dilleri ve belgelemelerin tümü. (TDK Sözlük)
Yazılım aslında hayatımızın her alanındadır. Bu haliyle yazılım aslında hayatımızı kolaylaştırır. Bilgisayarlar, telefonlar, televizyonlar, mobil teknoloji, internet, sanayide kullanılan yeni nesil cihazların neredeyse tamamı, otomotiv, inşaat, eğitim, reklam, pazarlama, iletişim, medya, eğlence, sağlık başta olmak üzere hemen hemen tüm sektörlerde, uzay sanayisinde, günlük hayatta kullanılan bazı teknik aksesuarlarda kısacası “yazılım” gerçekten de yaşamın her alanındadır.
Yazılıma Başlarken Nelere Dikkat Edilmelidir?
Bir fikrinizi hayata geçirmek yada size verilen bir yazılım işini yapabilmek için ilk önce donanımı ve/veya işletim sistemini seçmeniz gerekir.
Eğer elektronik bir donanım yapılıyorsa ihtiyaca göre en uygun performanslı ve en uygun fiyatlı işlemci ve donanımlar seçilmelidir. İşlemciler günümüzde 5 TL’den başlayıp binlerce liraya kadar çıkabilmektedir. Bu yüzden doğru işlemci seçimi çok önemlidir. Ardından bu işlemcinin desteklediği dil ve dile uygun derleyici belirlenmelidir. Her işlemcinin her dile ait desteği olmadığı için, desteklediği diller arasındaki seçim bu dillerin sağladığı hız ve kolaylığa göre olmalıdır.
Eğer bilgisayar için bir yazılım yapılıyorsa öncelikle hangi işletim sistemi için yazılım yapılacağı seçilir. Ardından hangi programlama dilinin kullanılacağı belirlenir. Bunun akabinde derleyici yardımı ile yazılan kodlar makine diline çevrilir. Yazılan dile uyumlu bir derleyici kullanılması bu yüzden zorunludur. Bilgisayarda dil ve derleyici uyumu elektronik cihazlara göre daha çeşitli ve kolay erişilebilir olduğu için kısa bir araştırma ile ihtiyaçlar kolaylıkla bulunabilir. Burada önemli olan programı hangi işletim sistemi için derleyeceğinizdir.
💡 Linux için derlenen program Windows’ta, Windows için derlenen program Linux’ta çalışmayacaktır. Aynı şeyler MacOs için de geçerlidir…
Yazılım Çeşitleri Nelerdir?
Bu başlıkta yazılımı iki ana başlık altında inceleyeceğiz:
- Bilgisayar Yazılımları
- Elektronik Yazılımları
Bilgisayar, temelde elektronik bir cihaz olsa da içindeki yazılım mantığı temel elektronik cihazlardan biraz daha farklı olduğu için bunları ayrı iki kategoriye ayırmak daha doğru olur. Bu arada mobil cihazlar bilgisayar ile aynı kategoride anlatılabilir, aralarında pek fark yoktur.
Bilgisayar Yazılımları
Bilgisayar yazılımları da kendi içerisinde işlev olarak üçe ayrılır. Bunlar;
- Uygulama Yazılımları
- Sistem Yazılımları
- Bilgisayar Programlama Araçları
Uygulama Yazılımları
Bilgisayarda kullanılan, bir görevi yapmak için yazılmış yazılımlardır. Mesela; Web programları, Ofis Programları, Resim ve Video Düzenleme Programları, Oyunlar gibi birçok kategoride uygulamalar bulunmaktadır. Kısacası uygulama yazılımları; insanların çalışmalarını hızlandırmak, bir işlemi bir veya birkaç tuşla yapabilmek için yazılmış yazılımlardır.
Sistem Yazılımları
Herkesin bildiği gibi Windows, Android, iOS gibi kullanıcının ilk karşılaştığı, donanımların ve yazılımların uyumlu çalışmasını sağlayan temel yazılımlardır. Sistem yazılımları için uygulama yazılımlarından daha derin bir bilgisayar ve yazılım bilgisi gerekmektedir.
Bilgisayar Programlama Araçları
Bu yazılımlar, yazılan kodları bilgisayar diline çevirerek donanımlara ne yapması gerektiğini söyler. Bu sayede de bilgisayar,/makine bu uygulamaları çalıştırabilir. Eğer yazılım diliyle, kullanılan programlama aracı uyuşmuyorsa veya doğru işletim sistemine ait değilse o program o cihazda çalışmayacaktır. Bunu Türkçe bilmeyen birine Türkçe bir şeyler anlatmak gibi düşünebilirsiniz.
Elektronik Yazılımları
Bir veya birkaç görevi yapması için yazılan, genellikle işlemcinin pin giriş-çıkışlarına bağlı sensörlerden veri okumak ve işlemek, giriş-çıkışlara bağlı olan motor veya led gibi elektronik cihaza bir iş yaptırmak amacıyla yazılan yazılımlardır. Bu yazılımlar küçük projelerden, sanayide kullanılan büyük cihazlara kadar her alanda kullanılmaktadır.
Bu arada elektronik yazılım dilleri ile bilgisayar dilleri aslında fark yoktur. Yani birçok ortak yazılım dili bulunmaktadır.
Elektronik yazılımının bilgisayar yazılımından farkı; elektronik yazılımlarda, programlanan işlemciyi mutlaka bir elektronik devreyle; gerekiyorsa da mekanik tasarım ile birleştirilip kullanmak gerekmektedir. Yani elektronik yazılımlarda; kimi zaman kamera, kimi zaman ise motor gibi fiziksel bir karşılık mutlaka bulunmalıdır.
Programlama Yaparken Hangi Yazılım Dili Kullanılmalıdır?
Aslında bu soru çok fazla sorulmasına rağmen çok genel bir soru olduğu için tek bir karşılığı yani yanıtı yoktur. O nedenle bu soruyu parçalara bölerek cevaplamak gerektiğini düşünüyorum.
Kullanıcı Arabirimine Sahip Uygulamalar İçin;
Kullanıcı arabirimine sahip uygulama yazılımı yapmak isteniyorsa arayüzü sürükle bırak mantığı ile daha kolay ve hızlı yapılabildiği için C#, Visual Basic veya Java tercih edilebilir. Oyun yazmaya yeni başlayan yazılımcılar genellikle hazır motor kullandığı için C# dilini öğrenmeleri kesinlikle gereklidir. Dillerin üçünü de denediğim için en kolay anlaşılabilir dilin Visual Basic olduğunu ve başlangıçta programlama mantığını öğrenmek için ideal olduğunu düşünüyorum. Java dili, yazılım işinde profesyonelleşmek, bu konuda bir işte çalışmak için mutlaka geliştirilmesi gereken çok önemli bir dildir.
Arayüz Yerine Hız Gerektiren İşlemler İçin;
Hesaplama, dosya okuma ve yazma gibi arayüz gerektirmeyen, hız gerektiren işlemler için yazılacaksa C, C++ veya Python öğrenmek çok daha idealdir. Aynı zamanda C dili elektronik devrelerin neredeyse tamamında kullanılmaktadır. Diğer dillerle yapılan çalışma süresi hız karşılaştırmasına göre C dili, makine diline en yakın dil olduğu için en hızlı çalışan programlama dilidir. Öğrenmek için biraz daha zor bir dil olsa da hız ve kaynak kontrolü açısından mutlaka öğrenilmesi gereken çok önemli bir dildir. Assembly dilini bu kıyaslamanın dışında tuttum, çünkü bir bilgisayar programı yazmak için Assembly dili çok fazla zaman ve enerji sarf ettirecektir. Elektronik devrelerde ise daha basit işlemler için Assembly dili tercih edilebilmektedir, fakat karmaşık işlemlerde bilgisayarda olduğu gibi zaman ve enerji kaybı üst seviyede olacaktır. C++ dilini kullanmadığımdan, yanlış bilgi vermemek adına onun hakkında bilgi yazmadım. Eğer C++ dili hakkında bilginiz varsa yorum yapabilirsiniz. Okumak ve öğrenmek isterim.
Web Sitesi Yapmak İçin;
Web sitesi veya web uygulaması yapılmak isteniyorsa mutlaka HTML, CSS ve JavaScript bilinmelidir. HTML ve CSS tek başına kullanılamadıkları için biri HTML olmak üzere en az ikisi mutlaka bilinmelidir. Bu üç dilin internette ve kitapçılarda oldukça fazla kaynağı ve ücretsiz örnek çalışmaları var. O yüzden günümüzde öğrenilmesi çok kolay olan dillerdir. Aynı zamanda sitenin hayata geçmesi için PHP gibi sunucu üstünde çalışan programlama dillerinin de bilinmesi gerekmektedir. Django, Flask gibi Python tabanlı web çatıları da web sitesi oluştururken kullanılmaktadır.
💡 Python
Python dili tüm dünyada çok popüler bir dil olmasına rağmen önceki paragraflarda pek üstünde durmadım. Python, hemen hemen tüm işletim sistemlerinde kullanılabilen, sistem programlama, uygulama programlama, web programlama gibi birçok alanda kullanılabilen gelişmiş bir dildir. Özellikle internette, her alanda oldukça fazla kaynak vardır. Çok az kodla çok fazla iş yaptırılabilir. Ancak büyük programlarda diğer dillere göre oldukça yavaş kalmaktadır. Kullanıcı arabirimi tasarlamak isteyen kişiler için C#, Java gibi nesne-tabanlı dillere göre daha zordur. Çok küçük işlemler yapılacaksa hız bir sorun olmayacağından C veya C++ diline göre tercih edilebilirler fakat işlem yükü büyüdüğünde oldukça hız kaybı ortaya çıkaracaktır. Bu yüzden zorunda kalmadıkça Python dilini ikinci, üçüncü dil olarak öğrenmenin daha doğru olacağını düşünüyorum.
Q# Yazılım Dili
Microsoft yakın zamanda kuantum programlama dili olan Q# dilini de yayımladı. Evlerde kuantum bilgisayar kullanılmasa da, hatta dünyada bile sayılı kuantum bilgisayarı mevcut olsa da gelecekte yaygınlaşma ihtimaline karşı bu programlama dilinin de üstünde durulabilir.
∴
Yazılım ile ilgili bir yazı dizisine bu makaleyle başlamış bulunmaktayız. Bu makalede; “Yazılım Nedir?”, “Yazılım Niye Önemlidir?”, “Yazılım Çeşitleri Nelerdir?”, “Hangi Yazılım Dili İle Başlanmalı?”, “Yazılımcı Olmak İçin Bilinmesi Gerekenler?” “Programlama Yaparken Hangi Yazılım Dili Kullanılmalıdır?” sorularına yanıt verdik.
Makalenin başında da belirttiğim gibi yazılım yalnızca elektronik bir mesele değil hayatın her alanında kullanılmaktadır. Dolayısıyla yazılım; reklam, pazarlama, iletişimi, medya, pr, satış, satın alma, ik, finans başta olmak üzere dijital markalaşma (dijital pazarlama & marka yönetimi – iletişimi) odağında da kullanılmaktadır.
Sonuç olarak yazılımı en temel anlamda değerlendirip, daha sonra da kullanım alanlarına değineceğimiz bir yazı dizisine başlamayı uygun gördük. Ve bu makaleyle başlamış olduk. Sonraki makalede görüşmek üzere.
Güncel makaleler, sektörel haberler ve ücretsiz etkinlikler için mail listemize abone olun.
Yazılım ile ilgilenmeyi düşünenler için çok güzel bir yazı olmuş. Kafalarındaki soruları giderecek çok faydalı bilgiler mevcut.
Emeğinize sağlık.
Genç yazılımcılar ve yazılım konusunda fikir sahibi olmak isteyenler için muhteşem bir kaynak olmuş. Emeğinize sağlık. Bizde nitelikli yazılımcıların yetişmesi ve ülkemize faydalı olabilmesi için elimizden geleni yapıyoruz. Mesela iletişiim formundan gelen her soruya cevap veriyoruz. Sayfanızı niximera.com üzerinden paylaşacaız. Niximera Yazılım, sizin gibi yazılım sektörüne gönül vermiş emektarların emeğine saygı duymaktadır.
Yazılım la ilgili hiç bir bilgeye sahip değilim ama yazılımla ilgilenmek ve bunu başarmak istiyorum nasıl bir yol tavsiye edersiniz
Merhaba Ferhat, ilk olarak bir hedef belirle ve o hedefe uygun, kolay adapte olunabilecek bir dil ile başla. Websitesi yapmak ise hedefin temel html,css, JavaScript dilleri ile, Windows programları yapmak için C# ile başlanabilir. Ama başta kendine bir hedef koymalısın ve yapmaya başlamalısın. Zaten araştırma yaptıkça bilgilerin genişleyecek ve ilerlediğini göreceksin. Her dil ile ilgili çok fazla kaynak mevcut, hedefini belirledikten sonra mutlaka öğreneceksin ve başaracaksın :).
yazılım ile para kazanma şansımız varmı peki?