![translation](https://cdn.durumis.com/common/trans.png)
Bu, AI tarafından çevrilen bir gönderidir.
[Bilişim alanında olmayanlar için, geliştirici olarak hayatta kalmak] 14. Yeni Başlayan Geliştiricilerin Sıkça Sorduğu Teknoloji Görüşme İçerikleri Özeti
- tr Writing language: Korece
- •
-
tr
Referans Ülke: tr
Tüm ülkeler
- •
- BT
Dil Seç
Text summarized by durumis AI
- Yeni başlayan geliştiricilerin görüşmelerinde sıkça sorulan teknolojiyle ilgili soruları toplayarak bellek alanı, veri yapıları, veritabanı, programlama, sayfa değiştirme algoritmaları, süreçler ve iş parçacıkları, OSI 7 katmanı, TCP ve UDP gibi çeşitli konularda açıklamalar sağlar.
- Her konu hakkında kısa bir kavram açıklaması ve beraberindeki örneklerle anlamaya yardımcı olur.
- Geliştiricilerin görüşme hazırlığı sırasında temel teknoloji bilgilerini edinmelerine yardımcı olabilecek faydalı bilgiler içerir.
Bilim Dışı, Geliştirici Olarak Hayatta Kalmak
#14. Yeni Başlayan Geliştiricilerin Sıkça Sorduğu Teknik Görüşme Konuları
[Ana Belleğin Alanları]
- Kod Alanı: Programın kaynak kodunun saklandığı alandır ve CPU, kod alanında saklanan komutları (kaynak, fonksiyon, kontrol deyimleri) alarak işler. Örneğin, C diliyle yazılmış bir program yürütüldüğünde, kod alanı bu programın kaynak kodunu saklar.
- Veri Alanı: Küresel değişkenlerin ve statik değişkenlerin saklandığı alandır, program başlangıcıyla birlikte atanır ve program sonlandığında yok olmaz. Örneğin, C diliyle yazılmış bir program yürütüldüğünde, veri alanı bu programda tanımlanan küresel değişkenleri veya statik değişkenleri saklar.
- Yığın Alanı: Programın kullandığı geçici bellek alanıdır, fonksiyon çağrılarıyla ilgili yerel değişkenler ve parametreler saklanır. Fonksiyon çağrısıyla birlikte atanır ve fonksiyon sona erdiğinde yok olur. Örneğin, C diliyle yazılmış bir fonksiyon çağrıldığında, bu fonksiyonda kullanılan yerel değişkenler veya parametreler yığın alanına atanır.
- Yığın Alanı: Kullanıcının bellek alanı için dinamik olarak atadığı ve serbest bıraktığı alandır. Örneğin, C dilinde malloc() fonksiyonu kullanılarak dinamik olarak bellek atandığında, atanan bellek alanı yığın alanında saklanır.
[Veri Yapıları]
- Yığın: Son Gelen İlk Çıkan (LIFO) ilkesine göre çalışan veri yapısıdır. Örneğin, bilgisayarda 'Geri' düğmesi yığının benzeridir. Önceki ziyaret edilen sayfalar yığına kaydedilir ve 'Geri' düğmesine basıldığında, en son kaydedilen sayfa çıkarılır ve gösterilir.
- Kuyruk: İlk Gelen İlk Çıkan (FIFO) ilkesine göre çalışan veri yapısıdır. Örneğin, bir bankada sıra numarası alıp sıra beklemek kuyruğun benzeridir. En önce gelen kişi en önce hizmet alır ve en son gelen kişi en son hizmet alır.
- Ağaç: Verileri hiyerarşik olarak temsil eden veri yapısıdır. Örneğin, HTML'nin DOM ağacı ağacın benzeridir. HTML sayfasının yapısı bir ağaç olarak temsil edilir ve kök düğüm olan html etiketiyle başlar ve alt düğümler sırayla gösterilir.
- Yığın: İkili ağaç yapılarından biridir ve maksimum yığın ve minimum yığın olmak üzere ikiye ayrılır. Örneğin, öncelikli kuyruklarda, en yüksek önceliğe sahip veri yığının kök düğümünde bulunur ve daha sonraki en yüksek önceliğe sahip veri alt düğümlerde bulunur. Bu, maksimum yığının bir örneğidir.
[RDBMS ve NoSQL]
- RDBMS: Verileri yapısal olarak tanımlayan ve yöneten sıkı bir şemaya sahip veritabanıdır. Verileri dağıtık olarak saklamak ve değiştirmek mümkündür. Örneğin, MySQL, Oracle ve MS-SQL, RDBMS'nin yaygın örnekleridir.
- NoSQL: Verileri depolamak ve yönetmek için esnek bir şemaya sahip veritabanıdır. Büyük miktarda veriyi işlemek ve depolamak için uygundur ve ölçeklenebilirliği de yüksektir. Örneğin, MongoDB, Cassandra ve HBase, NoSQL'nin yaygın örnekleridir.
[Prosedürel ve Nesne Yönelimli]
- Prosedürel Programlama: Sıralı işlemlerin önem kazandığı bir programlama tekniğidir. C, Pascal gibi diller prosedürel dillerdir.
- Nesne Yönelimli Programlama: Verileri ve prosedürleri mantıksal olarak bir araya getirerek işlemenin bir yoludur ve Nesne (Object) kavramına dayanır. Java, C++, Python gibi diller nesne yönelimli dillerdir. Örneğin, bir araba simülasyon programında, arabanın sahip olduğu özellikler (renk, ivmelenme vb.) veri olarak temsil edilir ve araba tarafından gerçekleştirilen işlevler (sürüş, durma vb.) yöntem olarak temsil edilir.
[Geçersiz Kılma ve Aşırı Yükleme]
- Geçersiz Kılma: Üst sınıfın sahip olduğu yöntemi alt sınıfta yeniden tanımlamak ve kullanmaktır. Alt sınıfta üst sınıfın yöntemini çağırırsanız, üst sınıfın yöntemi yerine alt sınıfta yeniden tanımlanan yöntem çalıştırılır. Örneğin, Java'daki toString() yöntemi Geçersiz Kılma'nın bir örneğidir.
- Aşırı Yükleme: Aynı ada sahip birden fazla yöntem tanımlamak ancak parametre türleri ve sayıları farklı olmak üzere, farklı türden çağrıları yanıtlamaktır. Parametreleri farklı olan ancak aynı ada sahip birden fazla yöntem çalışır. Örneğin, Java'daki print() yöntemi Aşırı Yükleme'nin bir örneğidir.
[Sayfa Değiştirme Algoritmaları]
- FIFO: Fiziksel belleğe yüklenen en eski sayfayı değiştirir. Bilgisayarda 'Görev Çubuğundan Kapat' da FIFO algoritmasının benzeridir. En önce çalıştırılan program en son gösterilir ve kapatılır.
- LRU: En uzun süredir kullanılmayan sayfayı değiştirir. Nadiren kullanılan uygulamalar arasında eski uygulamaları kapatmak için 'Uygulama Kapatma Uygulaması' da LRU algoritmasının benzeridir.
- LFU: En az referans sayısına sahip sayfayı değiştirir. Örneğin, bir tarayıcıda yeni açılan sekmeler arasında en az kullanılan sekmeyi kapatmak için 'Sekme Kapat' işlevi de LFU algoritmasının benzeridir.
- MFU: En çok referans sayısına sahip sayfayı değiştirir. MFU algoritması pek kullanılmıyor.
[İşlem ve İplik]
- İşlem: İşletim sisteminden ayrılan yürütme iş birimidir ve bir programı temsil eder. Birden fazla işlem aynı anda çalıştırıldığında, her işlem bağımsız bir bellek alanı ve CPU ayrılır.
- İplik: Bir işlem içinde çalışan yürütme iş birimidir ve işlem tarafından ayrılan kaynakları paylaşarak çalışır. Örneğin, bir web tarayıcısında her sekme bir işlem değil, bir iplik olarak çalışır.
[OSI 7 Katman]
- Uygulama Katmanı: Kullanıcıları ve ağları birbirine bağlayan katmandır ve HTTP, FTP, SMTP gibi protokolleri içerir.
- Sunum Katmanı: Verilerin temsil biçimini tanımlayan katmandır ve JPEG, MPEG, SSL gibi protokolleri içerir.
- Oturum Katmanı: İletişim kuran iki sistem arasında oturumu yöneten katmandır.
- Taşıma Katmanı: Veri iletimi sorumluluğunda olan katmandır ve TCP, UDP gibi protokolleri içerir.
- Ağ Katmanı: Verileri iletmek için bir rota belirleyen katmandır ve IP, ICMP gibi protokolleri içerir.
- Bağlantı Katmanı: Fiziksel adres (MAC adresi) tarafından veri iletimi yapan katmandır ve Ethernet, Token Ring gibi protokolleri içerir.
- Fiziksel Katman: Fiziksel bağlantı ve iletim ortamı için iletişimi sağlayan katmandır.
[TCP ve UDP]
- TCP: Bağlantı tabanlı bir hizmettir ve güvenilir bir şekilde veri iletimi sağlayan bir yöntemdir. 3 yönlü el sıkışma ve 4 yönlü el sıkışma yöntemleri kullanılarak bağlantı kurulur veya koparılır. Örneğin, bir web sitesinde oturum açarken veya dosya gönderirken TCP yöntemi kullanılır.
- UDP: Bağlantısız bir hizmettir ve veri iletimi için sinyalleşme prosedürleri olmadan çalışır, veri güvenilirliği düşüktür ancak işleme hızı hızlıdır. Örneğin, video akışı veya çevrimiçi oyun gibi durumlarda, hızlı iletim önemlidir, bu nedenle UDP yöntemi kullanılır.