[IMG]https://www.brandingturkiye.com/wp-content/uploads/2018/11/yazilim-nedir-niye-onemlidir-yazilim-cesitleri-nelerdir.jpg [/img]Yazılım Nedir? En yalın tanımıyla [I]yazılım ;[/I] 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; [I]Bir bilgisayarda donanıma hayat veren ve bilgi işlemde kullanılan programlar, yordamlar, programlama dilleri ve belgelemelerin tümü. [/I](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 [I]donanımı[/I] ve/veya [I]işletim sistemini[/I] 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 [I]dil [/I]ve [I]dile uygun derleyici[/I] 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. [I]Yazılan dile uyumlu bir derleyici kullanılması bu yüzden zorunludur.[/I] 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.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; [I]Web programları, Ofis Programları, Resim ve Video Düzenleme Programları, Oyunlar[/I] 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. [IMG]https://www.brandingturkiye.com/wp-content/uploads/2018/11/isletim-sistemleri.png [/img]Sistem Yazılımları Herkesin bildiği gibi [I]Windows, Android, iOS[/I] 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, [I]programlanan işlemciyi mutlaka bir elektronik devreyle; gerekiyorsa da mekanik tasarım ile birleştirilip kullanmak gerekmektedir.[/I] 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; [I]Kullanıcı arabirimine sahip uygulama yazılımı yapmak isteniyorsa[/I] 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 [I]en kolay anlaşılabilir[/I] [I]dilin[/I] Visual Basic olduğunu ve başlangıçta programlama mantığını öğrenmek için ideal olduğunu düşünüyorum. [I]Java[/I] 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. [IMG width="35px" alt="Ampul"]https://s.w.org/images/core/emoji/13.0.0/svg/1f4a1.svg [/img] 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, [I]sistem programlama, uygulama programlama, web programlama [/I]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. 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. Kaynak : https://www.brandingturkiye.com