Kodlama Öncesi: Bazı Bilgisayar Kavramları
Tags: computerscience, beginners, codepen, basics
Published: 2022-01-02 19:32:42

**Medium'dan okumak için:** [Link](https://abdullahemiroglu.medium.com/kodlama-%C3%B6ncesi-baz%C4%B1-bilgisayar-kavramlar%C4%B1-78e413f222c9)

Bu yazıda, **başlangıç seviyesinde** bazı bilgisayar kavramlarını açıklamaya çalıştım. Bu yazıda ele alacağım kavramlar, bilgisayar ile iç içe olduğunuz müddetçe karşınıza çıkacak kavramlar. Umarım kavramlara aşinalık kazanmanızda, ufak da olsa bir katkısı olur.

İçerik:
- [Uygulama (App)](#uygulama-app)
- [Dosya (File)](#dosya-file)
  - [Dosya Uzantısı (File Extention)](#dosya-uzantısı-file-extention)
  - [Dizin veya Klasör (Directory)](#dizin-veya-klasör-directory)
  - [Dosya Yöneticisi (File Manager)](#dosya-yöneticisi-file-manager)
- [Düz Metin Dosyası (Plain Text File)](#düz-metin-dosyası-plain-text-file)
  - [Karakter Kodlaması (Character Encoding)](#karakter-kodlaması-character-encoding)
  - [Metin Düzenleyici (Text Editor)](#metin-düzenleyici-text-editor)
- [Komut Satırı (Command Line)](#komut-satırı-command-line)

# Uygulama (App)

Uygulama; bilgisayarda/telefonda **belirli bir amacı gerçekleştirebilmek** için, o belirli amaca yönelik geliştirilen **yazılımlardır.** Örneğin; video izlemek için kullandığınız, internette gezinmek için kullandığınız veya resimlerinizi görüntülemek için kullandığınız yazılımların hepsi birer "bilgisayar/telefon uygulaması" olarak tanımlanır. Genelde aynı görevi yerine getiren birçok uygulama vardır. Yaptıkları iş **temelde aynı olmasına** karşın, özellikleri veya görünümleri farklı olabilmektedir. Böylece farklı ihtiyaçlar ve kullanıcılar için, farklı seçenekler sunulmuş oluyor.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q0m12f2gb901u3uhtq4i.png)

*Uygulamaları Nasıl Başlatırız?*

Genellikle bilgisayarda yer alan **uygulama menüsü** veya **uygulama arama** gibi bir özelliğe ulaşmamız gerekir. Aşağıda XFCE arayüzüne sahip bir bilgisayardan örnek görüyorsunuz:

![XFCE uygulama menüsü](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zq6co8vb6suof4lbd95t.png)

![XFCE uygulama arama penceresi](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/somvjfk56yj9xkqnkuhc.png)

*Uygulamalarla ilgili 3 temel işlem var:*

- **Kurulum:** Yeni bir uygulamayı bilgisayarda  kullanılabilir hale getirme.
- **Kaldırma:** Bir uygulamayı bilgisayardan yok etme.
- **Güncelleme:** Bir uygulamanın yeni sürümlerini kullanılabilir hale getirme. (Hata giderilmesi, yeni özellikler eklenmesi vb.)

Ve en önemlisi yukarıdaki listede yer alan, "belirli amaçları" gerçekleştirmeyi sağlayan, yine başka bir uygulama var. Uygulama için, uygulama var :)

> Genellikle **Uygulama/Yazılım/Paket Mağazası/Yöneticisi/Merkezi...** gibi isimlere sahiptirler.

# Dosya (File)
Dosya; bir **depolama cihazı** içerisinde tutulan **veridir**. Bu veri; resim, video, ses, yazı gibi daha **yüzlerce farklı biçimde/çeşitte** olabilmektedir.

**Dosya** olarak adlandırdığımız kavram sayesinde, bu çok sayıdaki veri çeşitliliğini bilgisayarda kullanmak üzere tanımlamış oluyoruz. Yani adeta verimizi **dosya şeklinde paketlemiş** oluyoruz. Böylelikle telefon, bilgisayar, televizyon gibi farklı cihazlar üzerinde kullanabiliyor, taşıyabiliyor, paylaşabiliyor ve görüntüleyebiliyoruz. Herhangi bir dosyanın biçimini/çeşidini belirtmek için ise; **dosya uzantısı (file extention)** dediğimiz bir kavramdan yararlanıyoruz.

## Dosya Uzantısı (File Extention)
Örneğin resim verisine sahip dosyamızı düşünelim; fotoğraf makinemiz, çektiğimiz fotoğrafları hafıza kartına bir **dosya** şeklinde kaydediyor. Peki bu dosyanın, "resim dosyası" olduğunu nereden biliyoruz? Telefon/bilgisayar bu dosyayı, ses dosyasından nasıl ayırt edebiliyor? İşte bu noktada devreye "dosya uzantısı (file extention)" giriyor. Dosya adının sonuna nokta işareti koyuyoruz, işte bu koyduğumuz noktadan sonra yazdıklarımız bir dosyanın biçimini (formatını) belirleyebilmemizi sağlıyor. Tabii bu dosya uzantısını kafamıza göre değil, **önceden belirlenmiş** şekliyle yazmamız gerekiyor. Resim örneğinden devam edersek; fotoğraf makinemiz dosyaya otomatik bir **isim** ve **uzantı** ekliyor. Böylece biz resmimizin hangi formatta (biçimde) olduğunu bilebiliyoruz, aynı şekilde bilgisayar, kurulu olan hangi uygulamanın bu dosyayı açacabileceğini bilebiliyor.

![uzantı görselleştirmesi](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/am8r1ialrg2rdelpgnuk.png)

![çeşitli uzantılara sahip dosya örnekleri](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xb7hgzorq4156b2qrkwp.png)

## Dizin veya Klasör (Directory)
Dizin (Klasör); birden çok dosyayı **bir arada gruplamamızı** sağlayan bir kavramdır. Çok sayıda olan dosyalarımızı, dizin kavramı sayesinde farklı isimler altında gruplayabiliyoruz. Örneğin çok sayıda resim, video ve ses dosyamız olduğunu düşünelim, bu karmaşıklığı önlemek için; istediğimiz isimlerde dizinler oluşturup, bu dizinlerin içerisine istediğimiz dosyaları taşıyabiliriz. Böylece telefonda/bilgisayarda düzenli bir şekilde dosyalarımızı depolamış oluruz.

## Dosya Yöneticisi (File Manager)
[Dosyalar](#dosya-file) ve [dizinler](#dizin-veya-klasör-directory) üzerinde çeşitli işlemler yapabilmemizi (yani yönetmemizi) sağlayan [uygulamalardır.](#uygulama-app)

*Bu temel işlemler:*
- Dizin oluşturma
- Dizin ve dosya silme,
- kopyalama,
- taşıma,
- isimlendirme

Aşağıda thunar isimli "dosya yöneticisi uygulamasını" görüyoruz:

![Fedora üzerinde thunar](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iso7u6vpdd2t17lhhtgg.png)

# Düz Metin Dosyası (Plain Text File)
İçeriğinde metinsel ifadeler ve karakterler barındıran **dosyalardır.**

## Karakter Kodlaması (Character Encoding)
Karakter; klavyenizde yer alan (boşluk dahil) harf, şekil ve sembolllerin herhangi bir tanesidir. Mesela okuduğunuz bu yazıda, çok sayıda **karakter** bulunmaktadır. Peki bütün bu yazılar Arapça veya Japonca olsaydı? Mesela Türkçe'deki bazı karakterler İngilizce'de yer almaz (ğ, ö vb.) buna karşın birçok ortak karakter de vardır (g, o vb.). İşte **karakter kodlaması** dediğimiz kavram sayesinde bütün farklı dillere ait karakterleri de bilgisayar üzerinde doğru bir şekilde görüntüleyip, kullanabiliyoruz. En yaygın kullanılan karakter kodlaması **UTF-8**'dir.
Aşağıda düz yazı dosyasını kaydederken, "karakter kodlaması seçiminin" yapılabildiğini görüyoruz:

![Düz yazı dosyası kaydetme penceresinde "karakter kodlaması" seçimi](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u7y7qnug5g3bco8nl4qz.png)

## Metin Düzenleyici (Text Editor)
Metin dosyalarının üzerinde çeşitli işlemler yapmamızı sağlayan uygulamalardır.

*Bu temel işlemler:*
- Metin ve karakter ekleme,
- düzeltme,
- silme
- ve arama yapma

Aşağıda "düz metin dosyası düzenleme uygulamasına" 2 örnek görüyoruz (VS Code ve mousepad):

![(Fedora üzerinde VS Code ve mousepad](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3z2b785peayhppqdxugp.png)

# Komut Satırı (Command Line)
**komut satırı** (veya uçbirim/terminal) uygulamasını kullanarak; istediğimiz bir **görevi** yazabiliyoruz. Bu "görev yazma eylemi" ile, bilgisayarın ilgili görevi yerine getirmesini sağlamış oluyoruz.
Görsel arayüz daha henüz yokken bilgisayarlar bu şekilde kullanılıyordu. Yaptığımız bu *görev yazma* işlemine; **komut** diyoruz. (Görev = Komut)

Günümüz bilgisayarlarını görsel arayüz (GUI) ile kullanıyoruz. Sadece bir düğmeye tıklayarak, aslında bilgisayara yapmasını istediğimiz bir komut vermiş oluyoruz.

Aşağıda "komut satırı uygulaması" örneği görüyoruz:

![Komut satırı örneği](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jy072s8azaoop7tmurgf.png)

*Ne gibi Komutlar Verebiliyoruz?*

Mesela [önceki bölümlerde gördüğümüz](#dosya-yöneticisi-file-manager) dosya yöneticisinin yaptığı bütün işlemleri komut yazarak yapabiliyoruz. Kurulu bir uygulamayı ismini yazarak başlatabiliyoruz. Bilgisayarı kapatabiliyoruz. Video kesip, birleştirme yapabiliyoruz. Hatta kendi komut satırı uygulamalarımızı yazabiliyoruz ve daha binlercesi...