​Günümüzde bilgisayar ve yazılım olmadan bir yaşam düşünmek neredeyse imkânsız durumda. Yazılım, hayatımızı kolaylaştıran donanım cihazlarını kontrol eden komutların çalışmasını sağlamaktadır. Otomotiv, inşaat, eğlence, sağlık gibi sektörlerde; “akıllı” olarak adlandırdığımız cihazlar, artık günümüzde neredeyse tüm sistemlerde kullanılıyor.
Peki, yazılım öğrenmek zor mudur? Eğer kendinize bir yol haritası oluşturursanız yazılım sizin için vazgeçilmez bir dünya haline gelebilir.

“Yazılımcı olmak istiyorum ancak yazılıma nereden başlamalıyım, hangi programlama dillerini öğrenmeliyim?” sorularına yanıt arıyorsanız bu yazı tam size göre!

Yazılıma Başlarken Nelere Dikkat Edilmeli?

Yazılıma başlamak ve yazılımın mantığını kavramak için bilgisayar birimlerinin nasıl çalıştığını kavramak gereklidir. Bu noktada iyi bir donanım bilgisine sahip olmanız beklenir. Peki bilgisayarın donanım birimleri ve görevleri neler?
Bilgisayarın donanım birimleri; anakart, işlemci, bellek, monitör, sabit disk, ekran kartı, ses kartı ve yazıcı olarak listelenebilir.

Anakart:
Bilgisayarın tüm parçalarını üzerinde barındırarak bu parçalar arasındaki iletişimi sağlar.
İşlemci: Bilgisayarın beyni olarak bilinen, belirli mantık ve matematik işlemlerini elektronik olarak yapabilecek dijital bir devredir.
Bellek: Bellek, random access memory olarak ifade edilen geçici bir depolama alanıdır. İçerisinde yer bilgiler güç kesildiği anda kaybolur.
Sabit Disk: Sabit disk, Hard Disk (Hdd) olarak bilinmektedir. Elektrik kesilse dahi bilgilerin halen saklandığı, farklı hızlarda ve farklı boyutlarda bulunan manyetik bir ortamda verilerinizin saklanabilmesini sağlayan, bilgisayarların hafıza türlerinden birisidir.

1 – Bilgisayar Biliminin Temelleri

Bilgisayar bilimi, bilgisayarların yazılımları ve donanımları hakkında araştırma yapan ve bu araçların nasıl çalıştığını inceleyen pratik bir bilim dalıdır. İkinci Dünya Savaşı sırasında ilk dijital bilgisayarın geliştirilmesiyle bilgisayar biliminin temelleri atılmıştır.

Bu aşamada öğrenmeniz gereken temel kavramlar; dijital bilgisayarın organizasyonları, sayı sistemleri, algoritmik yaklaşım, flowcharting, yapısal programlama kavramları, giriş/çıkış deyimleri,  kontrol yapıları,  diziler ve döngüler olarak listeleyebiliriz.

2 – Önerme Mantığı

3 – Algoritmalar ve Veri Yapıları

Sizin için hazırladığımız blog yazısı ile algoritmaların hayatımızda neden bu kadar önemli konumda olduğu sorusuna yanıt arayarak yazılımcıların mutlaka bilmesi gereken yazılım algoritmaları listesi oluşturduk.

4 – Faydalı Kaynaklar

Yazılım Çeşitleri

Yazılımı temel olarak bilgisayar yazılımları ve elektronik yazılımları olarak ayırabiliriz. “Yazılıma nereden başlamalıyım?” sorusunun asıl cevabı yazılım çeşitlerini öğrenmek ile başlar.

Bilgisayar yazılımları, işlevleri açısından kendi içerisinde ayrılır.

1. İşletim Sistemi Yazılımları: Akıllı cihaz olarak adlandırdığımız telefon, tablet, bilgisayar gibi teknolojik araçların açıldığı andan kapandığı sürece kadar görev yapan yazılımdır.
İşletim sistemi yazılımları olmazsa, donanımlar çalışmaz ve yapmak istediğiniz hiç bir işlemi gerçekleştiremezsiniz. Sonuç olarak, işletim sistemleri bilgisayarda çalışan donanım birimlerinin ve yazılımlarının yönetimini, denetimini sağlayan sistem yazılımlarıdır.
Aynı zamanda işletim sistemleri, bilgisayara ve yazılıma bağlı olarak farklılık göstermektedir. İşletim sistemlerine örnek vermek gerekirse; Windows İşletim Sistemi, MacOS (Apple OS X) İşletim Sistemi, UNIX İşletim Sistemi, Linux İşletim Sistemi, Pardus İşletim Sistemi, Android İşletim Sistemi ve iOS İşletim Sistemi olarak sıralayabiliriz.

2. Uygulama Yazılımlar: İşletim sistemi yazılımları ile uyumlu  şekilde çalışan programlardır. Bunlara örnek vermek gerekirsek; Photoshop, Office Programları, oyunlar ve virüs programları uygulama yazılımlardır.
Genel amaçlı ve özel amaçlı uygulama yazılımları olarak 2’ye ayrılır.
Teknoloji ve yazılım dünyasında bilgisayar sistemleri için geliştirilmiş genel amaçlı uygulama yazılım uygulamaları oldukça sık kullanılmaktadır.
Genel amaçlı uygulama yazılımlarına örnek verecek olursak; Microsoft Office, Notepad, Chrome, Windows Media Player, VLC Media Player, GOM Player ve Winamp olarak örnek verebiliriz.

3. Programlama Yazılımları: İşletim sistemi yazılımlarının ve uygulama yazılımlarının oluşturulması için gerekli olan programlardır. Java, Delphi, Pascal, C++, Visual Basic gibi uygulamalar programlama yazılımlarına örnek olarak verilebilir.

Diller, araçlar ve başlangıçtan orta düzeye ilerleme

Binlerce programlama dili mevcut, bunların bazıları diğerlerinden daha popüler.
Fakat popüler olması o programlama dilini öğrenmemiz için yeterli mi?

Çoğu teknoloji şirketi yazılım ekibine ekip arkadaşı aradığında, yeni çıkan programlama dillerine nispeten eski ve alışagelmiş programlama dillerine aşina olan kişileri daha çok tercih ettiklerini belirtiyor.
Türkiye’nin büyüyen teknoloji şirketlerinin hangi teknolojileri kullandığını merak ediyorsanız Türkiye Teknoloji Dizini sayfamıza göz atabilirsiniz.

Programlama dilini belirli standartlar içerisinde yazılım geliştirme imkanı sağlayan bilgisayar dili ve temeli olarak tanımlayabiliriz.
Bir yazılım oluşturulması gerekiyorsa ilk olarak makinelerin dilini anlayarak komutlar eşliğinde çalıştırılması gerekli.

Programlama dili unsurları şöyledir;
İşlev ve Hedef: Programlama dilleri soyut makinelerde hesaplama araçlarını kullanmayı tanımlar. Programlama dilleri insanların makinelere talimatlarını iletmelerine izin verir.

Soyutlamalar: Programlama dilleri genellikle veri yapılarını tanımlama, işleme veya yürütme akışını kontrol etmek için soyutlamalar içerir

Güç: Programcıların bilgisayarlarla iletişim kurmak için kullanabileceği birçok programlama dili vardır. Programlama dillerinin asıl amacı, bilgisayarların büyük ve karmaşık bilgi yığınlarına hızlı ve verimli olacak şekilde işlemesine izin verir.

Hangi Yazılım Dili Tercih Edilmeli?

Hangi programlama dilini öğrenmeliyim sorusunu sorduğunuzda kararınıza yön verecek pek çok farklı etken mevcut. Çoğu kişisel olan bu etkenlerin bazıları yaşadığınız yerle, gelecekteki kariyer beklentileriyle ve diğer şeylerle alakalı.

“Hangi programlama dilini öğrenmeliyim, yazılıma nereden başlamalıyım?” diye sorduğunuzda aşağıdaki beş noktayı değerlendirmelisiniz.

1-Programlama Deneyiminiz
En önemli ilk şey programlama deneyiminizdir. En iyi programlama dillerinin bazılarını öğrenmek oldukça zordur ve yeni başlayanlara uygun değildir.

Ancak Java ve Python gibi en popüler dillere yeni başlayanlar için hazırlamış olduğumuz kaynaklar bulunuyor. Kariyer hayatının başında olan yazılımcılar için doğru yönlendirme yapabilmek adına blog yazılarımıza göz atabilirsiniz.

2-Kariyeriniz ve Ne İş Yapmak İstediğiniz
Rastgele bir programlama dili öğrenmek için en yaygın yapılan hatalardan biridir.
Seçim yaparken amacınızı belirlemeli, kariyerinizle, ne iş yapmak istediğinizle gelecekte yapmak istediğiniz bir iş üzerinde karar vermelisiniz

Öncelikle şu an ilgilendiğiniz şeyleri düşünün.
Kariyer hayatınızın ilerleyen süreçlerinde mutsuz olacağınız fakat popüler olan bir alana yönelmek sizin için muhtemelen endişe verici olacaktır. Geçmişteki deneyimlerinizle uyumlu ve alakalı bir dil seçmek oldukça faydalı olacaktır.

İlk başlıyorsanız veya yeni bir alana geçmeyi düşünüyorsanız size bu konuda yardımcı olabilecek bir programlama dili seçin. Örneğin back-end web geliştirici olarak çalışıyorsunuz ama gönlünüz Blockchain programlamada. O halde Solidity öğrenmeyi düşünmelisiniz.

3- Her Dilin Zorluğu

“Hangi programlama dilini öğrenmeliyim?” sorusunu düşündüğünüzde dilin zorluğunu düşünmek oldukça önemli. Yeni bir dil öğrenmeye ayıracak çok vaktiniz yoksa veya bir öğrencisiyseniz düşük zorluk seviyesinde bir programlama dili seçmeyi düşünmelisiniz.

4- Öğrenmek için Mevcut Kaynaklar

Yeni bir programlama dili öğrenmeye başlamak istiyorsanız internette hakkında pek çok kaynak bulunan popüler dillerden biri olmalı.

5- Dilin Çok Yönlülüğü

Bir dili öğrenmeye başlamadan önce kullanım alanlarını göz önünde bulundurmak oldukça önemli. Bazı dillerin oldukça spesifik kullanımı varken bazılarıysa pek çok farklı kullanım alanına sahip.

Programlama Dili Türleri

Programlama dilleri statik ve dinamik dillerolmak üzere ikiye ayrılır.

Statik Diller: Statik diller pek çok insanın gözünde dinamik dillerden daha “ileri seviye” görüşündedir. Statik diller genellikle sabit, ölçeklenebilir ve bakımı kolay dillerdir. “Yazılıma nereden başlamalıyım?” sorusunun ana cevabı, statik dilleri öğrenmek ile başlar.

Üst düzey mobil uygulamalar ve en iyi web site back-end’leri genellikle statik dillerden biriyle oluşturulmuştur. Java, C, Swift, C++ ve C# gibi her amaca uygun diller statik dillerdir.

Dinamik Diller: Genellikle esnek ve öğrenmesi kolay olan dinamik programlama dilleri statik dillere alternatif olarak görülür. Fazla zaman harcama gerektirmeden eğlenerek projekerinize başlayabilirsiniz.

Öğrenmek için dinamik bir programlama dili seçerseniz kodunuzdaki detaylara ince ayarlar yapmak için daha az, yeni konseptleri keşfetmek ve üzerinde alıştırma yapmak için daha çok zaman harcarsınız. Dinamik diller yeni başlayanlar arasında popülerdir.

En popüler dinamik programlama dillerinin bazıları PHP, Ruby, Python ve JavaScript’dir.

Diğer:  SQL gibi veri tabanlarıyla iletişim kurmak ve veri yönetmek için kullanılan diller statik ve dinamik dillerden ayrılıyor.