50.Hafta: Bir Yazılımcının Yolu
Bu hafta biraz gecikmeli oldu sanki bunun iki sebebi var. 1) genel olarak yıl sonuna doğru yaptığım işler daha da birikiyor ve sıkışıyor bu da iş yükünü arttırıyor. 2) 5 aylık bir bebeğiniz varsa tabiki de anneye yardım etmek ilk sorumluluğunuz. Ufak bir bebeğin bakımının bile ne kadar zaman aldığını görseniz şaşarsınız. Evet, bu kişisel bir yazı serisi bu yüzden kendi hayatımdan parçalar her zaman içerecek ve hatta video ve podcast olursa daha canlı ortamlarda da buluşacağız. Yazının girişini tamamlarken, bir önceki haftada bahsettiğim işletim sistemlerini tanıyalım bu yazıda.
Tanımları sevdiğim için yine tanımla başlıyorum. İşletim sistemi (OS), bilgisayar donanım kaynaklarını yöneten ve bilgisayar programları için ortak hizmetler sağlayan bir yazılım koleksiyonudur. İşletim sistemi, bir bilgisayar sistemindeki en önemli sistem yazılımı türüdür.
İşletim sistemleri, klavyeden girişi tanıma, çıktıyı ekrana gönderme, diskteki dosya ve dizinleri takip etme ve yazıcılar ve disk sürücüleri gibi çevresel aygıtları kontrol etme gibi temel görevleri yerine getirir. Artık görsel kaynaklar daha dikkat çekici olduğu için sizleri daha fazla bilgi için aşağıdaki videoya gönderiyorum.
Temel olarak bir işletim sisteminin dört ana işlevi vardır:
Kaynak yönetimi: İşletim sistemi, bellek, işlem süresi ve disk alanı gibi kaynakları farklı programlara ve kullanıcılara yöneltir ve ayırır.
Bellek yönetimi: İşletim sistemi bilgisayarın belleğini yönetir ve her programın verimli çalışması için yeterli belleğe sahip olmasını sağlar.
Süreç yönetimi: İşletim sistemi programların yürütülmesini yönetir ve paylaşılan kaynaklara erişimi koordine eder.
Aygıt yönetimi: İşletim sistemi, yazıcılar ve disk sürücüleri gibi çevresel aygıtların çalışmasını yönetir.
Şimdi biraz işletim sistemi türlerine bakalım. Tek kullanıcılı işletim sistemleri, çok kullanıcılı işletim sistemleri, gerçek zamanlı işletim sistemleri ve dağıtılmış işletim sistemleri dahil olmak üzere birkaç farklı işletim sistemi türü vardır. Popüler işletim sistemlerine bazı örnekler arasında Microsoft Windows, macOS, Linux ve Android bulunur. Modern işletim sistemleri, grafiksel bir kullanıcı arayüzü veya GUI kullanır. Bir GUI, simgeleri, düğmeleri ve menüleri tıklamak için farenizi kullanmanıza izin verir ve her şey grafik ve metin kombinasyonu kullanılarak ekranda net bir şekilde görüntülenir.
Tabiki bu işletim sistemleri yanında mobil cihazlar içinde üretilmiş işletim sistemleri mevcuttur. Şimdi kısaca onlar hakkında bildiklerimi de yazayım.Mobil işletim sistemleri, akıllı telefonlar ve tabletler gibi mobil cihazlarda kullanılmak üzere özel olarak tasarlanmıştır. Mobil cihazlar genellikle masaüstü bilgisayarlara kıyasla sınırlı donanım kaynaklarına sahip olduğundan, bu işletim sistemleri hafif ve verimli olacak şekilde tasarlanmıştır.
Popüler mobil işletim sistemlerine bazı örnekler şunları içerir:
- Android: Google tarafından geliştirilen Android, dünyada en çok kullanılan mobil işletim sistemidir. Açık kaynaklı bir işletim sistemidir, yani herkes kaynak kodunu değiştirebilir ve dağıtabilir.
- iOS: Apple tarafından geliştirilen iOS, iPhone ve ipad’lerde kullanılan işletim sistemidir. Tescilli bir işletim sistemidir, yani kaynak koduna yalnızca Apple’ın erişimi vardır.
- Windows Phone: Microsoft tarafından geliştirilen Windows Phone, Windows tabanlı akıllı telefonlarda kullanılan işletim sistemidir. Tescilli bir işletim sistemidir.
- BlackBerry OS: BlackBerry tarafından geliştirilen BlackBerry OS, BlackBerry akıllı telefonlarda kullanılan işletim sistemidir. Tescilli bir işletim sistemidir
- Tizen: Linux Vakfı tarafından geliştirilen Tizen, akıllı telefonlar, akıllı TV’ler ve akıllı saatler dahil olmak üzere çeşitli cihazlarda kullanılan açık kaynaklı bir işletim sistemidir.
Tabiki işletim sistemleri bu kadar kısa sürede anlatılmaz ama en azından kısa bir giriş yapabildim. Ayrıca, ileri okumalar için kaynak bırakıyorum. Lütfen yazının sonuda kaynak kısmını kontrol edin. Ayrıca işletim sistemine giriş için kısa bir videoyu aşağıda izleyebilirsiniz.
Buraya kadar güzel güzel geldiğimizi düşünüyorum. Aslında öğrenimizi ilmek ilmek işliyoruz. Önce ‘İnternet’ nedir diye baktık. Sonra, ana yazılım dilimiz olan ‘Python’a giriş yaptık ve akabinde kısaca yardımcı elemanlar olan ‘HTML’ , ‘Css’ ve ‘JavaScript’ gibi dilleri inceledik. Yine bilmenin bize çok faydası dokunacağını düşündüğüm ‘İşletim Sistemleri’ni inceledik. O zaman yine sözümüzde durup biraz daha Python diline devam edelim.
Bir önceki yazıyı okuyan veya google nasıl yapacağını soran herkes Python dilini bilgisayara kurabilmiştir diye düşünüyorum. Şimdi o zaman bir klasik olan ilk programımızı yazalım.
“Merhaba Dünya” örneğini yapalım. Python dilinin söz diziliminin basit ya- pısını karşılaştırabilmek için aynı örneği JAVA ve C++ programlama dili ile altı yedi satırda kodlarken Python ile bunu tek satırda kodlamak mümündür.
print(“...Merhaba Dünya...”)
Python programlama dili yaklaşık 30 adet sak- lı sözcük barındırmaktadır. Bu sözcükler değişken ve metot ismi olarak kullanılamaz. Saklı sözcükler şunlardır: and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield.
Bir programlama dilinde koda açıklamalar koy- mak, sağlıklı bir kodlama yapabilmek açısından çok önemlidir. Her programlama dilinde olduğu gibi Python’da da yorum satırları oluşturabilmek için bazı özel karakterler bulunmaktadır. Eğer ya- pacağımız yorum tek satırdan oluşuyorsa # işaretini kullanabiliriz.
# bu bir yorum satırıdır.
Kısaca bu dildeki değişkenlere bakalım.
Programlama dilinde değişkeni, bir veriyi içe- risinde depolayan birim olarak tanımlayabiliriz. Değişkeni genel anlamı ile boş bir kutuya benze- tebiliriz. Kutu, içerisine koyduğumuz veriyi bizim için saklar ve üzerinde işlem yapmamıza izin verir. Birçok programlama dilinde verinin saklanacağı değişken tipinin önceden tanımlanması gerekmek- tedir. Fakat Python’da tıpkı PHP de olduğu gibi veri tipleri önceden belirlenmez, değişkene yapılan ilk atama esnasında atanan veri tipine göre belirle- nir. Bu programcı için büyük bir özgürlük sağlar. Fakat bu durum değişken değerlerinin izlenmesini zorlaştırır. Aşağıda python dilinde yapılmış birkaç değişken atamasını görebilirsiniz.
>>>tamsayı=10
>>>ad=”Ali”
>>>ondalik=7.2
Değişken isimlerini verirken daha önce de bah- settiğimiz saklı kelimeleri ve kütüphanelerde yer alan fonksiyon isimlerini kullanamayız. Bunun dışında da bazı kurallar bulunmaktadır. Bu kural- lardan bazıları programlama ortamları tarafından bize dikte edilirken, bazıları da genel tavsiye nite- liğindedir. Değişken isimleri bir harf veya “_” ile başlamalıdır. Python da değişkenler isimleri Türkçe karakter içerebilir, ama şu an itibari ile bundan ka- çınmakta yarar vardır. Değişken isimlerinde boşluk kullanılmaz. Değişken adı birden fazla kelimeden oluşuyorsa kelime geçişlerinde büyük harf veya _ kullanılabilir. Örneğin degisken_adi veya degisken_Adi gibi. Değişken isimlerini seçerken anlaşılabilir yorumlanabilir isimler seçmekte yarar bulunmak- tadır. Değişken ataması “=” işareti ile yapılmaktadır. Aynı değere sahip birden fazla değişken aynı satırda tanımlanabilir. Python’ da programlamada çok kullanılan değişken takas işlemi için kısa yapılar tanımlanmıştır.
>>>a=5
>>>b=8
>>>a, b=b, a
Görüldüğü gibi bu işlev bizi daha fazla satır yazmaktan kurtarmaktadır. Python dilinde değişkenlerini birbirine dönüştürmek tip dönüştürücü fonksi- yonları kullanarak mümkündür. Bu yazı için Python dilinde son konu olarak veri tiplerinden bahsedip birkaç eğlenceli egzersiz bırakmak istiyorum. Egzersizleri çözmek, kendi ürettiğiniz düşündüğünüz kodları yazmak aslında okumaktan daha öğretici olacaktır ki ben böyle öğrendim ve öğreniyorum. Benim için (belki bilgi eksikliği) bir programlama dilini kitabi şekilde anlatmak gerçekten çok zorlayıcı olmakta şu ana kadar. O yüzden okuyup anlamakta zorlayıcı olacaktır gibi… O zaman veri tipleri, Python programlama dilinde değişken tanımlamada tip belirtmeye gerek yoktur. Python ilk atama yapıldığı anda değişkenin tipini otomatik olarak belirlemektedir. Python ile kullanacağımız veri tipleri, integer, float, l, boolean, string, list, dictionary ve tuples olarak sıralanabilir. Ayrıca python’da fonksiyonlar, lambdalar, nesneler, dosya tanıtıcıları gibi topluluklar da veri tipi olarak kabul edilirler.
Integer: Tamsayıları saklamak için kullanılmaktadır. 32 bit genişliğindedir. ± 2147483647 sayı aralığında değer alabilirler.
Float: Ondalık sayıları saklamak için kullanılmaktadır. Örneğin, 3.54 veya 7.8e-28 gibi. Python ile birçok dilin aksine çok büyük ondalıklı değerler tanıtılabilmekte ve üzerlerinde işlem yapılabilmektedir. Bu nedenle özellikle büyük sayılarla çalışılan matematik problemlerinde avantaj sağlamaktadır. Bu yüzden veri biliminde kolaylık sağlayan bir dildir ayrıca.
Doğru ve yanlış mantıksal değerleri saklamak için kullanılır. İki boolean değer vardır: ‘True’ ve ‘False’.
String: Karakter katarlarını tanımlamak için kullanılır. “ veya ‘ işaretleri arasında tanımlanır. >>> metin1=”Python öğreniyorum”
>>> metin2=’Python çok kolay’
Diğer yazıya da konu kalması ve sizleri de kitabi bilgilerle sıkmamak adına şimdilik veri tiplerine burada ara vermek istiyorum. Yeniden belirtmek adına kullandığım kaynakları ve bir adet Python temellerini anlatan güzel bir mobil uygulamanın adını yazının sonunda belirteceğim. Şimdi sizlere eğlenceli bir kaç egzersiz bırakmak istiyorum.
Eğlenceli Egzersizler Köşesi
- Fizzbuzz: 1'den 100'e kadar sayılar arasında eğer bir sayı 3'ün katıysa Fizz, 5'in katıysa Buzz yazan ve hem 3'ün hem de 5'in katıysa FizzBuzz yazan bir kod yazabilir misiniz? Cevaplarınızı bekliyorum.
- Bir dizeyi tersine çevir: Bir dizeyi girdi olarak alan ve dizeyi tersine döndüren bir program yazın. Örneğin ‘egemen’ olarak girilen bireyi ‘nemege’ olarak yazan bir kod.
- Son olarakta biraz şifreleme Sezar Şifresi: Her harfi alfabedeki sabit sayıda konuma kaydıran basit bir ikame şifresi olan Sezar Şifresini uygulayan bir program yazın.
Umarım okuyucular yukarıdaki egzersizleri çözerken benim kadar eğleneceklerdir. Ayrıca egzersizler benim gibi çok programlama bilmeyenler içindir!
50.hafta kar amacı gütmeyen yazımın sonuna gelirken yine nasıl geçtiğini anlamadığım bir hafta olduğunu anladım. Bu sefer daha eğlenceli ve iç açıcı bir yazı olduğu fikrindeyim. Varsa eğer, hem bu hem de önceki yazılarımda bulunan editoryal hatalarım için kusura bakmayın. Yeniden düzene uyarak kısaca bir sonraki yazımın içeriği hakkında bilgiler vereyim. Egzersizlerin cevaplarını yapmayı düşünüyorum. Python diline devam edeceğiz elbette. İşletim sistemlerinde bazı özel konuları(örn:terminal usage, basit terminal komutları vs.) göreceğimizi düşünüyorum. Eğer gerçekten vaktim olursa bu konuları video olarak youtube hesabına yüklemeyi düşünüyorum. Ayrıca yeri gelir eğlenceli yeri gelir saçma içerikler için instagram hesabını da yazının sonuna iliştiriyorum. Şimdiden okuyuculara mutlu ve huzurlu yıllar. Umuyorum gelecek yıl bir önceki yılınızdan daha iyi geçer.
KAYNAKLAR;
İşletim Sistemleri Hakkında:
- https://edu.gcfglobal.org/en/computerbasics/understanding-operating-systems/1/
- https://www.youtube.com/watch?v=vBURTt97EkA&list=PL9hkZBQk8d1zEGbY7ShWCZ2n1gtxqkRrS&index=2
- https://www.guru99.com/os-tutorial.html
Python Hakkında:
Bir Uygulama Önerisi:
Instagram Hesabım: