En İyi 50 Bilmeniz Gereken Programlama Mülakat Soruları ve Cevapları
Yazılım şirketleri her zaman iyi bir programlama yeteneği ararlar, telefon ve çevrimiçi görüşmeler genellikle kaderinize sadece birkaç dakika içinde karar verir.
İyi bir programcının, sistem anlayışından genel programlamaya, farklı kavramlara ve teknolojilere kadar mümkün olduğunca çok yönlü olması ve güncel olması gerekir.
Aşağıda en iyi 50 programlama mülakat sorusunun bir listesi ve cevapları yer almaktadır. Her yeni başlayanın başarılı olmak için bilmesi gereken çeşitli kavramlara ışık tuttular.
1. Bilgisayar Programlama Nedir?
Bilgisayar programlama, bir bilgisayar tarafından yürütülecek mantıksal süreçleri kodlama işlemidir. Bu, gerekli talimatları içeren bir bilgisayar dili kullanılarak gerçekleştirilir.
Süreç ayrıca tasarım, kodlama, hata ayıklama ve güncellemeye ayrılabilir.
2. Hata Ayıklama Nedir?
Hata ayıklama, bir bilgisayar programının yazılım kaynağındaki hataları keşfetme ve ortadan kaldırma işlemidir. Bununla ilgili birçok yöntem vardır, ancak çoğu geliştirme ortamı, işleri kolaylaştırmak için entegre bir hata ayıklayıcı ile birlikte gelir.
3. Derleyici Nedir?
Derleyici, yazılan programı alıp bilgisayarın anlayabileceği makine koduna dönüştüren bir yazılım programıdır.
Ancak tipik bir derleyici paketi, bir ön işlemciden, bilgisayar dilini derleme koduna dönüştüren ana derleyiciden ve bir montajcıdan oluşur.
4. Ön işlemci nedir?
Ön işlemci, gerekli kitaplıklar gibi bağımlılıklarını bulmak ve karşılamak için yazılı bilgisayar kodunu analiz eden bir programdır.
Ön işlemci, yürütme ortamı da dahil olmak üzere her şeyin yolunda olduğundan emin olduktan sonra, derleyici kodu derleme koduna dönüştürebilir.
5. Assembler nedir?
Montajcı, montaj dili adı verilen insan tarafından okunabilen en düşük bilgisayar kodunu alan ve onu bir bilgisayarın çalışabileceği makine koduna dönüştüren bir programdır.
Derleme dili tipik olarak bir derleyici tarafından verilir, ancak doğrudan kod da yapılabilir. Bir derleme programı aşağıdaki gibi kodlar içerebilir:
HAREKET AH, 02H
ancak onu makine koduna derlediğinizde yalnızca sıfırlar ve birler elde edersiniz (örn. 0110011110101010).
6. Bir Program Nasıl Yürür?
İlk olarak, işletim sistemi belirtilen programı sabit disk deposundan sistem belleğine (RAM) yükler ve ardından CPU'yu programın ilk bellek adresinden yürütmeye devam etmesi için yönlendirerek yürütülmesine izin verir. CPU gördüğü herhangi bir komutu yürütür, ardından bir sonrakine geçer ve genellikle bu prosedürü saniyede milyonlarca kez tekrarlar.
32 bit CPU'lar hareket halindeyken 32 bit (4 bayt, çift kelime) talimatları yürütürken, 64 bit CPU'lar bir hareket halinde 64 bit (8 bayt, dört kelime) talimatları yürütür. Bu talimatlar CPU'da yerleşiktir ve programlama kodunu yerel CPU komut adreslerini temsil eden ikili sayılara dönüştüren birleştiricidir.
7. Bir tanımlayın Alt program
Altprogram, bir programdaki herhangi bir zamanda çağrılabilen ve yürütülebilen bir talimat dizisidir. Başka bir deyişle, bir alt program, bir mesaj göndermek gibi belirli görevleri uygulamak için kullanılan bir işlev, yöntem veya prosedür olabilir. E-posta, bir dosyayı açmak veya bir oturum açma sayfasına kaba kuvvet uygulamak.
8. Tanımla Makine kodu
Makine kodu, belirli bir mikroişlemcinin yürütme talimatlarını ve bununla ilişkili bellek adreslerini tutan bir ikili sayılar dizisidir.
Makine kodu, geleneksel olarak, söz konusu mikroişlemci ailesi için tasarlanmış bir montajcı tarafından çıkarılır.
9. Açıklayınız Derlenmiş ve Yorumlanmış Diller
Derlenmiş bir bilgisayar dili, bir bilgisayarda çalıştırılmadan önce makine koduna dönüştürülmelidir, oysa yorumlanmış bir dilin önceden derlemeye ihtiyacı yoktur.
Yorumlanmış bir programı çalıştırdığınızda, ilk önce bir yorumlayıcı tarafından işlenir, daha sonra onu derler ve anında çalıştırır. Bu ekstra adımlar, Python gibi yorumlanan dilleri C gibi derlenmiş dillerden daha yavaş hale getirir.
10. Döngü Nedir?
Döngü, belirli bir kriter elde edilene kadar belirli ifadeleri tekrarlayabilen bir kod yapısıdır. Bu kriter, sabit sayıda tekrarı veya tanımlanmış bir değişkenin değişimini içerebilir.
11. Popüler Döngü türlerini listeleyin
Farklı bilgisayar dilleri döngüleri farklı şekillerde yorumlayacaktır. Bununla birlikte, popüler C-ailesi döngü türleri şunları içerir:
- Döngü sırasında – Boolean olduğu sürece belirli kodun yürütülmesine izin verir süre() koşul karşılanır.
Örneğin while(2>1){print(“yahoo!”)};. - Döngü için – üç ifade içerir (başlatma; değerlendirme; Güncelleme) bu, test edilecek koşulların yanı sıra sayımı artırmak için esnek bir yöntemi tanımlar. Ayrıca kodu en az bir kez yürütür.
- {} while() Döngüsü yapın – bu tür döngü aşağıdakileri yürütür: yapmak{} olup olmadığını belirlemeden önce en az bir kez kodlayın. süre() durum hala geçerlidir.
12. Yineleme vs Açıklayın Özyineleme
Yineleme, aynı kod adımlarını yürütmek için bir döngünün kullanılmasıdır, özyineleme ise bir fonksiyonun kendisini tekrar tekrar çağırma sürecidir. Ancak özyinelemeyle ilgili sorun, bellek sorunlarıyla karşılaşana kadar yalnızca belirli bir derinliğe inebilmenizdir.
13. İşlerini Açıklayın Ara ve Devam Et bir döngüde
A kırılma ifadesi bir döngünün yürütülmesini sonlandırır ve bilgisayar kodunun geri kalanını yürütmeye devam eder. A devam etmek ifadesi ise döngüyü baştan yinelemeye devam eder.
14. OOP nedir?
OOP, Nesne Yönelimli Programlama anlamına gelir ve yazılım tasarımını işlevler veya prosedürler yerine veri ve nesneler etrafında uygulayan bir programlama paradigmasıdır.
15. Prosedürel Programlama Nedir?
Prosedürel programlama, bilgisayar kodunu yürütülecek komut dizileri veya adımları etrafında düzenleyen bir programlama paradigmasıdır. Adından da anlaşılacağı gibi, kodu olayların ilk aşamasından başlayarak olayların beklenen sonu ile biten yukarıdan aşağıya bir yaklaşımdır.
16. Fonksiyonel Programlamayı Açıklayın
Fonksiyonel programlama, bir bilgisayar programlama paradigmasıdır. yazılım geliştirme sağlanan argümanların durumunu veya verilerini değiştirmeyen sıralı işlevler uygulayarak.
Amaç, öngörülemeyen yan etkiler olmadan beklenen sonuçları üreten daha sağlam programlar oluşturmaktır.
17. Açıklayınız Üst Düzey Dil
Üst düzey bir programlama dili, bilgisayarın özelliklerinden veya doğasından çok insan anlayışına hitap eden bir bilgisayar dilidir.
C ve Python gibi yüksek seviyeli programlama dillerinin anlaşılması kolaydır, düşük seviyeli bir montaj dili ise ilk kez kullananlar için çok kafa karıştırıcı olabilir.
18. Popüler Liste Düşük Seviyeli Diller
Yalnızca iki düşük seviyeli programlama dili vardır: montaj ve makine kodu.
19. Bir SQL Enjeksiyon Saldırısı Tanımlayın
SQL enjeksiyon saldırısı, bir geliştiricinin programlama sırasında girdileri uygun şekilde temizlememesi umuduyla, kullanıcı adı veya adres girdileri gibi girdi alanlarına SQL ifadeleri girme işlemidir. Ve başarılı olduğunda, böyle bir saldırı, saldırganın sunucuya yönetici erişimi elde etmesini sağlar.
20. SQL'de Tablo Nedir?
SQL'deki bir Tablo, sütunlar ve satırlar halinde gruplandırılmış bir veri koleksiyonunu ifade eder. Her sütunun ayrı bir veri türü vardır ve tek bir veritabanında birden çok Tablonuz olabilir. Aynı anda birden fazla Tabloyu da sorgulayabilirsiniz.
Şunları içeren bir Tablo oluşturursunuz:
CREATE TABLE tablo_adı(sütun1 veri türü, sütun2 veri türü, sütun3 veri türü, …);
21. Bir Nesne ile Sınıf Arasındaki Farkı Açıklayın
Bir nesne bir sınıfın örneğidir, sınıf ise bir nesnenin oluşturulduğu bir plandır. Bir nesne, renk, yükseklik, ağırlık, hız vb. gibi durumlara ve özelliklere sahip olabilir.
Bu özellikler, en azından varsayılan değerlerle tanımlanmalı veya başlatılmalıdır.
22. Bir Megabayt Kaç Bit Yapar?
8,000,000 Megabaytta 1 bit vardır çünkü bir bayt 8 bit ve bir Mega 10'dur.6.
23. Bir Kayan Veri Türü Tanımlayın
Float, ondalık kesirli bir sayıyı temsil eden bir veri türüdür. Standart tamsayıların sağlayabileceğinden daha yüksek bir hassasiyet seviyesinin gerekli olduğu durumlarda kullanılır. Bir şamandıra örneği:
0.013
or
25.932
24. HexaDecimal 0xFF ne anlama geliyor?
0xFF, Ondalık 255 veya İkili 11111111 anlamına gelir. 0x, 16'den 1'a kadar çalışan ve ardından 9'i temsil etmek için A'dan F'ye kadar devam eden, taban15 veya Onaltılık gösterimi temsil eder. Dolayısıyla, 0xF ondalık 15'tir, 0xFF ise ondalık 255'tir.
25. Programlamada Hata Türlerini Adlandırma
Bir bilgisayar programında 3 ana hata türü vardır, bunlar:
- Sözdizimi hatası
- Mantıksal Hata
- Süre Hatası
26. Sözdizimi Hatası Nedir?
Programlama dillerinin genellikle katı sözdiziminden bir sapma olduğunda sözdizimi hatası oluşur. Harflerin basit bir şekilde yanlış yerleştirilmesinden, bir işleve geçirilen yanlış parametrelerden kaynaklanabilir. Çoğu derleyici, hatanın oluştuğu kaynak kod satır numarasını içerir.
27. Mantıksal Hata Nedir?
Mantık hatası, bir programın çalışma şeklinden kaynaklanan bir hatadır. Dolayısıyla program kusursuz bir şekilde çalışabilirken amacına ulaşamaz. Mantıksal hatalar birçok şekilde ortaya çıkabilir ve birçok nedenden kaynaklanabilir.
28. Çalışma Zamanı Hatası Nedir?
Çalışma zamanı hatası, programın yürütülmesi sırasında ve öngörülemeyen koşullar nedeniyle oluşan bir bilgisayar programı hatasıdır. Dolayısıyla program kusursuz çalışırken, örneğin bellek ve ağ sorunları programın hatalı çalışmasına neden olabilir.
29. Açıklayınız Güçlü ve Zayıf Yazılan Diller
Güçlü yazılmış bir dil, farklı veri türleri ve bunları nasıl dönüştürebileceğiniz konusunda katıyken, zayıf yazılmış bir dil, veri türleri ve tanımları üzerinde daha az kısıtlama getirir.
Zayıf yazılan birçok dil, veri türlerini otomatik olarak dönüştürürken, güçlü yazılan diller genellikle açık dönüştürmeler gerektirir.
30. MVC Mimarisi Nedir?
MVC, Model-View-Controller anlamına gelir ve kullanıcı arayüzleri için bir yazılım geliştirme modelidir. Program mantığını 3 bölüme ayırır.
The model kısmı, söz konusu nesnelerin altında yatan veri mantığını işlerken, görünüm kullanıcıya bilgilerin görüntülenmesini sağlar ve kontrolör görünümler ve modeller arasındaki veri akışını yönetir. MVC tasarımı genellikle nesne yönelimli programlama ile kullanılır.
31. Bir tanımlayın Algoritma
Algoritma, belirli bir sorunu çözmek için tasarlanmış bir dizi prosedürdür. Bu prosedürler genellikle daha küçük adımlara bölünür ve bilgisayar bunları her seferinde tam olarak bu şekilde yapar.
Algoritma örnekleri şunları içerir: yüz tanıma, Google araması, ayakkabılarınızı bağlama şekliniz, verileri kodlama veya şifreleme vb.
32. Nedir Makine öğrenme?
Makine öğrenimi veya ML bir bölümüdür yapay zeka sistemlerin kalıpları belirlemesine ve veri tüketimi yoluyla kendi başlarına karar vermesine yardımcı olmaya odaklanır.
Bu daha sonra performanslarını veya verimliliğini artırır. Makine öğrenimi sistemleri denetimli, denetimsiz ve takviye tabanlı olabilir.
33. Nelerdir Düzenli ifadeler?
Normal ifade veya Regex, metin belgelerinde arama modellerini tanımlamak için kullanılan bir dizedir. Farklı programlama dilleri normal ifadeler uygular veya popüler regex kitaplıklarını kullanır. Bir metindeki tüm karakterleri eşleştirmek için örnek bir normal ifade:
(.*)
aşağıdakiler yalnızca mp3 dosyalarıyla eşleşir:
.+\.(mp3)$
34. Modül (%) Operatörü Ne Yapar?
modül operatörü % iki işlenen alır ve ilk işleneni ikinciyi kullanarak böler. Daha sonra sonuç olarak işlemin geri kalanını döndürür.
Genellikle herhangi bir tamsayıyı 2'ye bölerek tek ve çift sayıları test etmek için kullanılır; burada 0 sonucu çift sayı ve 1 tek sayı anlamına gelir.
35. Açıklayınız Proses Çatallanma
Çatallanma geliyor çatal() Unix ve Linux sistemlerinde çalışan bir işlem tarafından kendisinin bir kopyasını oluşturmak için kullanılabilen işlev. Bu nedenle, süreç çatallaması, benzer ve aynı anda yürütülen iki süreç oluşturmak için bir sürecin çoğaltılmasıdır.
Ek bir çatallanma türü, bir kaynağın kaynak kodunun alınması anlamına gelir. açık kaynak proje ve ondan tamamen yeni bir program yaratmak.
36. Açıklayınız İplik Yumurtlama
İş parçacığı oluşturma, bir işlemi çalıştırmak için yeni bir CPU iş parçacığı oluşturma işlemidir. Spawning, genellikle bir işlemcinin çoklu iş parçacığı özelliklerinden yararlanmak için yoğun bilgi işlem programları tarafından kullanılır ve başarısı, üzerinde çalıştığı CPU'ya, kaç çekirdeğe sahip olduğuna ve çekirdek başına kaç iş parçacığı sunduğuna bağlıdır.
37. Ne yapar Ayrılmış kelimeler Anlamına gelmek?
Ayrılmış kelimeler, bir programlama dilinde tanımlayıcı olarak kullanmanıza izin verilmeyen terimlerdir. Buna fonksiyonlar, değişkenler ve etiketler dahildir. Önceden tanımlanmış oldukları ve belirli anlamları olduğu için saklıdırlar.
38. Popüler Ayrılmış Kelimeleri Listeleyin
Farklı dillerin sözdizimlerine göre farklı ayrılmış sözcükleri vardır. İşte programlamada en popüler ayrılmış kelimeler:
- IF
- DOĞRU
- YANLIŞ
- ANAHTARI
- ELSE
- OLGU
- BOOLE
- DÖNÜŞ
- FONKSİYONU
- BREAK
- GOTO
39. Dize Nedir?
Bir dize, genellikle bir dizide tutulan ve metin verilerini tanımlamak için kullanılan bir karakter dizisidir. En popüler dize “merhaba dünya” dır.
40. Değişken Nedir?
Değişken, bir programın yürütülmesi sırasında değişebilen herhangi bir değerdir. Bir değişken, dizeler ve tamsayılar dahil olmak üzere herhangi bir veri türünde olabilir. Örneğin, bir program aşağıdaki gibi başlatılır:
int bir = 0;
int b=1;
daha sonra yürütme sırasında değişiklikler yapılır:
b = a+b; //b değişti
41. Sabit Nedir?
Sabit, program yürütme sırasında değişmesi beklenmeyen bir değişkendir. İyi bir örnek, ışık veya ses hızıdır. Farklı programlama dilleri, sabitleri farklı şekillerde tanımlamanıza izin verir. Örneğin, C'de:
const kayan nokta orta_c = 261.62; // bir piyanoda orta tuş c 261.6255 Hz'dir
42. Bir Dizi Tanımlayın
Dizi, aynı anda birden çok değeri depolamak için kullanılan bir değişken türüdür. Birçok dil, yalnızca benzer veri türlerinin değerlerini saklamanıza izin verirken, diğer diller farklı türlerdeki dizileri işleyebilir. Ayrıca dizi dizileri olan ve dağınık olabilen çok boyutlu dizilere de sahip olabilirsiniz.
Bir diziyi mql4'te tanımlamak şu şekilde basittir:
string TextArray[100]; //yüz diziden oluşan bir dizi
43. Nedir İşlev Aşırı Yüklemesi?
İşlev aşırı yükleme, bir geliştiricinin aynı adı paylaşan ancak farklı işlevlere sahip birden çok işlevi tanımlamasına olanak tanıyan bir yöntemdir. Bu, farklı argümanlarla farklı fonksiyon versiyonları yaratılarak elde edilir. Derleyici daha sonra sağlanan argümanların türü ve sayısı tarafından hangi işlevin gerekli olduğunu bilir.
44. Bir tanımlayın Referansa Göre Ara
Başvuruya göre çağrı, argüman değerinin bir kopyasını iletmeye yönelik standart yöntemin aksine, argümanların bellek adresini bir işleve geçirme yöntemidir. Referans çağrılarının amacı, argümanın doğrudan fonksiyon tarafından değiştirilmesidir.
45. Açıklayınız Aritmetik operatörler
Bunlar, bir programlama dilinde aritmetik işlemler gerçekleştirme işlevi gören özel karakterlerdir. Aritmetik operatörler şunları içerir:
- Toplama veya tekli artı (+)
- Çıkarma veya tekli eksi (-)
- Çarpma işlemi (*)
- Bölüm (/)
- Modül (%).
46. Açıklayınız mantıksal Operatörler
Mantıksal operatörler, koşullu mantığa dayalı işlemleri gerçekleştirmek için kullanılan kelimeler veya sembollerdir. Çoğu dilde yalnızca 3 mantıksal operatör bulunur:
- VE (&& C, C++, JavaScript'te)
- OR (|| C, C++, JavaScript'te)
- DEĞİL (! C, C++, JavaScript'te)
47. Mantıksal 1 VE 0 =?
Mantıksal bir 1 VE 0 işlemi size yanlış çünkü ikinci işlenen 0'dır ve pozitif çıktı almak için AND işleminin her iki işleneninin de 1 veya DOĞRU olması gerekir.
48. Mantıksal DEĞİL 1 =?
Mantıksal bir NOT 1 işlemi size yanlış çünkü NOT operatörü, verdiğiniz her şeyi olumsuzlar, yani 1'i 0'a ve 0'ı 1'e çevirir. Dolayısıyla, ona 1 veya DOĞRU işleneni vermek, 0 veya YANLIŞ ile sonuçlanır.
49. Mantıksal 1 NAND 1 =?
Mantıksal bir 1 NAND 1 işlemi üretecek yanlış çünkü her iki işlenen de TRUE'dur ve NAND operatörü zıt bir çıktı üretmek için her zaman iki benzer girişi olumsuzlar.
Böylece, eğer operasyon 0 NAND 0, o zaman çıktı 1 veya DOĞRU olur.
50. Mantıksal 1 XOR 1 =?
Mantıksal bir 1 XOR 1 işlemi üretecek yanlış çünkü normal bir VEYA işlemi, TRUE olan girişlerden biri veya her ikisi üzerinde TRUE üretirken, bir XOR (Exclusive OR) işlemi, yalnızca bir giriş ve diğeri DOĞRU olduğunda yalnızca TRUE üretir.
Sonuç
Bilmeniz gereken en iyi 50 programlama mülakat sorusu ve cevaplarının yer aldığı bu listenin sonuna geldik. Ve gördüğünüz gibi, programlama dünyası geniş ama heyecan verici.
Hiçbir iki röportaj aynı değildir. Bu nedenle, bu liste sizi doğru konu yönlerine yönlendirirken, aynı zamanda her bir konuyu daha iyi anlamaya çalışmalısınız.