BİLGİSAYAR MÜHENDİSLİĞİNE İLİŞKİN SIKÇA SORULAN SORULAR
Bilgisayar
Mühendisliğine ilişkin çeşitli kesimlerden sorularla sıkça karşılaşmaktayız.
Bunun
- Yeni ve yaygınlığı hızla artan bir teknolojiye ilişkin olması,
- bu teknolojiyi kullanmak ile üretmenin arasındaki çizginin keskin
olmayışı,
- bu disiplinden eğitim almış kişilerin azlığı,
- çok revaçta olan bir meslek grubu olması
gibi çeşitli nedenleri
bulunmakta. Sonuçta çeşitli sohbet ortamlarında havalarda uçuşan yanıtlar,
yanıtlayanların profilinden ötürü, doğrulardan çok yanlışlar içermekte. Bu
sayfanın amacı çeşitli soruları yerli yerine oturtarak yanıtlamak. Soruları iki
gruba ayırdık. Bunlardan ilk grup, birbirleri ile çok ilintili oldukları ve
esasda yanlış zeminlerde oluşturuldukları için bir yazı bütünü ile
yanıtlanmaktadırlar. Diğer grupta ise tekil yanıtlanan sorular bulunmakta.
I. Grup:
- Bilgisayar Mühendisliği ile Bilgisayar Bilimi (Computer Science) aynı
şeyler midir?
- Bilgisayar Mühendisliği Elektronik Mühendisliğinin bir alt kolu mudur?
- Bilgisayar Mühendisliğinin komşu bilim alanları ve mühendislikleri
nelerdir?
- Bir Bilgisayar Mühendisi gününü bilgisayar karşısında mı geçirir?
- Bilgisayar Mühendisliğinde nasıl bilgisayar imal edileceği öğretiliyor mu?
- Bilgisayar donanımı Elektronik Mühendisliğinin konusu olduğuna göre bu
donanımın programlanması da bu dalın ilgi alanında olmalı.
- Bilgisayar Mühendisliği-Yazılım Mühendisliği; ikisi aynı şey mi?
Bu sorularınızın yanıtı için aşağıdaki Bilgisayar
Mühendisliği başlıklı yazıyı okuyunuz.
II. Grup:
- Bilgisayar
Mühendisi için iş imkanları nedir, kaç para kazanır?
- Türk
bilgisayar mühendisleri ne zaman yerli bilgisayar yapacak?
- Bilgisayarlar
birgün insanların yerini alacak mı?
- Bilgisayarlara
ilgim yok ama ÖSYM puanım çok yüksek, çevrem Bilgisayar Mühendisi olmam için
baskı yapıyor, nasıl karar vermem gerektiğini bilmiyorum.
- Oyun
programlarına hayranım, ben de öyle programlar yazmak istiyorum, Bilgisayar
Mühendisi okusam bu programların nasıl yazılacagını öğrenir miyim?
- Bilgisayar
Mühendisinin ne yaptığını çok iyi biliyorum. Hayatta edinmek istediğim yegane
meslek. Ancak ÖSYM başarım düşük, ne yapmalıyım?
- Program
nedir? / Ben de program yazabilir miyim? / Bilgisayar Mühendisliğinde program
yazılması mı öğretiliyor?
- Bilgisayar
Mühendiliğinde bilgisayar donanımı öğretilmiyor mu?
- Bilgisayarımda
XXX çalışmıyordu, tanışım bir bilgisayar mühendisinden yardım istedim,
çalıştıramadı, başka birisi ise geldi, bişeyler yaptı, sorun çözüldü. Nasıl
bilgisayar mühendisi bu?
- ODTÜ
Elektrik ve Elektronik Mühendisliğinin Bilgisayar branşı var. Oraya gidersem
hem Elektronik Mühendisi hem Bilgisayar Mühendisi olmuş olacağımı söylüyorlar,
doğru mu?
Bilgisayar Mühendisliği
Bilgisayar Mühendisliği başlığı altında toplanmış etkinliğin ve bunun
eğitiminin iki boyutu var.
- Bilgisayar Bilimi,
- bu bilimin alt alanlarının herbirisinin mühendislikleri ve bu bilimin
teknolojik ürününü geliştirme süreci ile ilgilenen Yazılım Mühendisliği.
Her nekadar yurtdışında bu ayırımın gözetildiği lisans eğitimleri söz
konusu ise de, bu, ülkemizde böyle değildir. Her iki boyut ağırlıklı olarak
aynı eğitim programına katkı vermektedir. Ancak, bu birlikteliğin varlığı
anılan iki boyutun varlığını ortadan kaldırmaz. Aşağıda bu iki boyutu ayrı ayrı
irdeleyeceğiz:
Bilgisayar Bilimi
İngilizcesi 'Computer Science' olan bu bilim dalı, veri barındırıp bunun
üzerinde işlem yapmayı sağlayacak yapılarda, belirli amaçlara ulaşmak için
verilerin nasıl işlemleneceği ile ilgilenir. Genel kanının aksine:
Bilgisayar Biliminin ilgi alanına girebilmesi için, işlem yapacak
yapının fiziksel gerçekliğinin olması gerekmez.Bu gerçekten
ötürü, disiplinin adında yer alan 'Bilgisayar' sözcüğünü dar anlamı ile
algılamak yanlıştır. Her ne kadar bu isim gündelik kullanım bakımından eskiden
odalar büyüklüğünde, şimdilerde ise masalarımızın üzerinde yer alan, elektrikle
çalışır, bir ekran, bir klavye ve bir işlem ünitesini barındıran cihazın adı ise
de, bilim dalı olarak algılandığında 'Bilgisayar' sözcüğü fiziksel bir yapıdan
çok 'veri işleme yeteneği olan herhangi bir yapı' anlamındadır. Bu yapı,
elektrikle çalışmak zorunda da değildir. Örneğin, Dünyamız canlılığındaki veri
işlemleme organının temel ögesi olan 'nöron hücresi' ve bundan oluşan canlı
beyni elektrik akımı ile çalışmamaktadır, ancak bu tür veri işlemleme
Bilgisayar Biliminin ilgi alanına fazlasıyle girmektedir. Veri işleyen yapının
işlemleme kurallarının sağlıklı tanımlanmış olması koşulu ile, bu yapının
varlığı yalnızca kağıt üzerinde bile olabilir.
Bilgisayar Biliminin, belirli amaçlara ulaşmak amacıyle verinin nasıl bir
yordamla işlenmesi gerektiği ile ilgileniyor olması, bu kavramların sağlıklı
betimlenmesine bir gereksinim doğurmaktadır. Tanımlarda yer alan:
- Veri,
- Belirli amaç,
- İşlemleme kuralları,
- İşlemleme yordamı
kavramları tanımlanmak durumundadır. Bu bakımdan
tek sağlıklı tanım ortamı Mantık ve Matematiktir. Bu iki disiplin engin ve köklü
yapıları ile Bilgisayar Biliminin tanım ortamını oluşturular.
Mantık ve Matematik, Bilgisayar Biliminin üzerine kurulduğu temel
bilimlerdir.Size Bilgisayar Biliminin ilgi alanına girecek,
kolay anlayabileceğiniz, BMB birinci sınıf öğrencilerinin öğretinin ABC'si
olarak öğrendikleri bir problemi örnek olarak vermek isteriz:
Verinin tanımı:
Elinizde ikili olarak aralarında bir sıra
ilişkisi (<) tarif edilmiş olan, N adet elemandan oluşan [xi
| 1 < i < N] bir sıralamalı küme olsun. Ancak bu kümedeki
elemanlar rastgele bir sırada bulunuyor olsunlar.
(Örneğin bir defter dolusu karışık sözcük var elinizde, ikili sözcüklerin
arasında bir sıra ilişkisi nasıl tanımlanabilir derseniz... diyelim ki 'sıra'
deyince alfabetik sıralamadan söz ediyoruz)
Kurallar:
'değiştokuş(i,j)' olarak adlandırılan küme
üzerindeki bir işlemle, yalnızca iki elemanın yerlerini değiş tokuş etmenize
izin verilmekte. Yani değiştokuş(i,j) işlemi öncesinde belirli biri
konumunda bulunana ve belirli bir j konumunda bulunan
b ise bu işlemden sonra i konumunda bulunan b ve j
konumunda bulunan a olacaktır.
(Yani bu işlemle defterdeki herhangi iki sözcüğün yerlerini değiştokuş
edebilirsiniz)
Her hangi bir anda çok az sayıda (en fazlasıyle birkaç) eleman konumunu bir
yere kaydetmeniz olanaklıdır.
Bu yolla kaydedilmiş eski bir kayıdın üzerine
(eskisini kaybetmek koşulu ile) yeni kayıt yapmak olanaklıdır.
(Diyelim ki elinizde birkaç sözcük konumunu not alabileceğiniz kadarlık
bir kağıt parçası ve bir silgi de var)
Amaçlarımız:
- Yalnızca değiştokuş(i,j) ve elemanların sıra ilişkisini (<)
kullandığımız öyle bir yöntem bulmak ki sonunda verilen kümedeki elemanlar
tümüyle artan sıraya girmiş olsun. Matematiksel deyişle: Bütün i,j ler
için xi < xj ise i < j
dir.
(Yani, amaç defterdeki bütün sözcükleri, ikili değiştokuşlarla,
artan sıraya sokmak)
- Yöntemde kullanılan değiştokuş(i,j) işlemlerinin 'en az' olmasını
sağlamak. Bu 'en az' değiştokuş(i,j) sayısını N cinsinden tarif
etmek.
Büyük olasılıkla bazı çözümleri kafanızda
oluşturdunuz bile. Çözümünüzü irdelediğinizde, verilerin en kötü
sıralanışlarında bile yönteminizin en fazlası ile K adet
değiştokuş(i,j) işlemi yaparak amacı sağladığını saptadınız. İlk
akla gelen çözümler çoğunlukla K=N×(N+1)/2 adet değiştokuş(i,j)
gerektirirler. Bu bağımlılığın derecesine 'mertebe' diyoruz. Yani ilk akla
gelen (büyük olasılıkla sizin de bulduğunuz) çözümler
N2mertebesindedir. Peki en iyi yöntem için bu 'mertebe' nedir
diye merak edenler için yanıtı verelim: N×log(N). Verilmiş kurallar
çerçevesinde, herhangi bir yöntemin bundan daha iyi bir başarıda olamayacağının
tanıtı (ispatı) da Bilgisayar Biliminde mevcut.
Bu arada yeri gelmişken şunu da belirtelim: Bilgisayar Biliminde bu tür
yöntemlere 'Algoritma' diyoruz. Merak edenler için: Algoritma sözcüğü,
matematiksel olarak bazı cebir işlemlerini bir yöntem olarak betimleyen, 9
Asırın başında yaşamış Acem asıllı matematik bilgini Abu Cafer Muhammed
İbn-Musa-Al-Khovarizmi'in adından gelmektedir. Al-Khovarizmi Farsça 'Harzemli'
demektir.
Bilgisayar Biliminin hangi alt alanları var?
- Algoritmalar ve Veri Yapıları
- Programlama Dilleri
- Mimari
- Nümerik ve Sembolik Hesaplama
- İşletim Sistemleri
- Bilgi Yönetimi
- Grafik, Görüntüleme ve Çokluortam
- Akıllı Sistemler
- Ağ-eksenel Bilişim
Bilgisayar Bilimin alt Alanlarının
Mühendisliği ve Yazılım Mühendisliği
Bilgisayar Bilimindeki konular Teori-Pratik ekseninde çeşitli konumlara
konuşlanmışlardır, bu konuşlanma bulutumsu bir özellik taşır, çok keskin bir
ifade ile herhangi br konunun belirli bir Teori/Pratik konumunda olduğunu
savlamak yanılgıdır. Ayrıca Bilgisayar Biliminin salt teorik uğraşlardan
oluştuğu, uygulama dünyasından kendisini soyutladığı önermesi gerçeği yansıtmaz.
Hep böyle olmak zorunluluğu olmamakla birlikte, gerçel dünyanın getirdiği
kısıtlar ve olanaklar, Bilgisayar Bilimlerinin uğraştığı problemlere doğrudan
yansır. Bu yansıma, problemleri tanımlayan kurallardaki kısıtlar/olanaklar
olarak ortaya çıkar. Örneğin, sizlere örnek olarak verdiğimiz 'Sıraya koyma
algoritması probleminde' belirtilmiş koşullar, piyasada sıkça bulunan
bilgisayarların mimarisi gözetilerek belirlenmiştir. Başka bir mimaride (örneğin
tüm verileri zaten bir biçimde sıralı tutan bir mimaride) bu problem ilginçten
uzak olabilirdi.
Bilgisayar Biliminin alt alanlarının herbirisinin pratik uygulamalara yönelik
bir bakış açısının egemen olduğu, bunun günün donanım teknolojisi ile el ele
gittiği (ve birbirlerini etkiledikleri) kullanılabilir ürünü geliştirmeye
yönelik alan bilgisinin sağlayan bir 'Mühendisliği' vardır. Örneğin 'Grafik' alt
alanında bilgisayarda 3 boyutlu varlıkların nasıl modellenebileceği ve bu
modeller aracılığı ile, örneğin 'gölgelemenin' veya 'hareketlendirmenin' nasıl
yapılabileceğinin yöntemleri geliştirilir. Donanım teknolojisi de, bu
yöntemlerin daha hızlı ve verimli çalışmasına imkan sağlayacak yeni donanımlar
geliştirir.
Bu, günün donanım teknolojisi içinde çözüm aranması ve
geliştirilmiş bir yönteme uygun donanımın imal edilmesi döngüsü anılan
bilim<->teknoloji ara etkileşimine güzel bir örnektir. Öte yandan
'bilgisayar grafiğinin mühendisliği' de o anda var olan donanım teknolojisi ve
grafik işlemleme yöntemleri çerçevesinde somut bir grafik yazılım ürününün
nasıl kotarılabileceği ile ilgilenir. Yani, 'Mühendislik boyutunun' hedefi
'tarif edilmiş bir işi gerçekleştiren' yazılım ürünün tasarımı ve
gerçekleştirilmesidir.
Bu bağlamda donanım ürünlerinin geliştirilmesine de değinmemizde yarar
var. Sanılanın aksine Bilgisayar Mühendisliği bilgisayar donanımını geliştirme
mühendisliği değildir. Hele hele günümüz popüler teknolojisinde söz konusu olan
devre elemanlarının (Tranziztör, Birleşik devre (Yonga) teknolojisi); görüntü
birimlerinin (CRT, Plazma Ekran, LCD Ekran); bellek ortamlarının (RAM, ROM,
Sabit Disk, CD, vb) geliştirilmesi ilgi alanına girmez. Yukarıda belirtilmiş
dolaylı bir ara etkileşim dışında, salt güncel teknoloji ortamının bilinmesi
amacıyla bu konuların iyi bir izleyicisidir, Bilgisayar Mühendisi. Bu
teknolojinin üretim sürecinde yer almaz. Donanım Elektronik Mühendisliğinin ilgi
alanıdır. Bu iki disiplin, Bilgisayar ve Elektronik Mühendislikleri,
birbirlerinin ihtiyaç ve kısıtlarını bilmek dışında bir ilişki içerisinde
değildirler, buna gerek de yoktur. Pek yaygın, yanlış bir sanıyı düzeltemek
amacı ile bir örnek verelim:
Boya kimyası başlı başına bir mühendisliktir. Kimya Mühendisliğinin bir
alt dalıdır ve uzmanlık gerektirir. Bu disiplinin mühendisi bir boyadan
beklentileri saptamak için boyanın kullanıldığı ilgi alanları konusunda sınırlı
bir bilgiye sahip olacaktır. Örneğin inşaat mühendislerinin ve mimarların
binaların dış yüzeylerini boyamak taleplerinin olduğunu, bu boyanın hava
koşullarından doğrudan etkilenmesinden ötürü bu dış koşullara dayanıklı olarak
tasarlanması gerektiğini; öte yandan bir ressamın talebinin ne olduğunu, guaj
veya yağlı boyanın zamana karşı dayanıklı olarak tasarlanması gerektiğini
bilecektir. Öte yandan mimar da, ressam da, o günün imkanlarında hangi boyaları
kullanabileceğini, özelliklerini ve bunların arasındaki farkı bilecektir. Ancak
hiç bir durumda bir Kimya Mühendisi, boya konusunda uzmanlaşmış olduğu savı ile
'resim sanatından' anladığını veya 'mimariden' anladığını iddia etmeyecektir.
Bir ressam da, hayatının boya kullanımı ile geçtiğini söyleyip, boyanın
kimyasına ilişkin fikir yürütmeyecektir.
Benzer biçimde bilgisayar tasarımında uzmanlaşmış Elektronik Mühendisi de,
ilgi alanı bu yazıda ayrıntılı olarak açıklanmış Bilgisayar Mühendisinin
konuları ile ilgilenmeyecek, hele hele 'yetkinlik' iddiasında hiç
bulunmayacaktır.
Bilgisayar Mühendisliğinin ilgi alanına geri
dönersek:
Bilgisayar Biliminin alt alanlarının uzmanlaşmış mühendisliği bir yazılım
ürününün sağlıklı üretilmesi için yeterli olmamaktadır. Alt alan mühendisliğine
ek olarak bir yazılım üretiyor olmanın sorunları ile uğraşan, üretime ve ürüne
ilişkin kalite ölçütleri belirleyen, bu doğrultuda üretim yöntemleri saptayan
bir 'üst' mühendisliğe gereksinim vardır. Bu gerçeği yazılım sektörü ve onun
müşterileri geçen 30-40 yıl içinde (bazen çok acı olan) deneyimlerle
öğrenmişlerdir. Yazılım üretmeye yönelik bu 'şemsiye' mühendisliğe 'Yazılım
Mühendisliği' denmektedir. Dolayısı ile Yazılım Mühendisliğini 'Bilgisayar
Bilimi teorik öğretilerinin pratik uygulamalarının mühendisliği' olarak
algılamak yanlıştır. Yazılım Mühendisliği bu değildir.
Yazılım Mühendisliği, eldeki kaynak kısıtlarını gözeterek, yüksek
kalitede yazılım üretmenin gerekleri olan sağlıklı mühendislik usullerinin ve
iyi yönetim pratiğinin oluşturulması ve bunların uygulanmasıdır. Yazılım
kalitesinin ne olduğunun somut biçimde betimlenmesi de bu disiplinin doğrudan
ilgi alanındadır.Bilgisayar Mühendisliği bir yazılım üretim
sürecinde gözetilmesi gereken usulleri belirler. Bu dört süreç şunlardır:
- Sipariş sahibi ile yapılacak görüşmeler sonucunda ihtiyacın belirlenmesi.
- Tasarımın yapılması.
- Yazılımın yazılması.
- Yazılım ürününün test ve bakım.
Bu dört evreyi genel hatları ile
Bilgisayar Mühendisinin işlevi bakımından şöyle özetleyebiliriz:
- Sipariş sahibi ile yapılacak görüşmeler sonucunda ihtiyacın
belirlenmesi:
Bir olurluk-fiyat analizi ile başlayan bu süreçte
müşterinin ihtiyacının ne olduğu ve bütçesinin çerçevesinde nasıl yazılım
çözümleri üretilebileceği irdelenir. Bu süreç çok yoğun müşteri ile ilişki
gerektirmektedir. Pek çok müşteri, bilgisayarlar konusunda en temel bilgiden
bile yoksundur. Bundan ötürü Yazılım Mühendisini çok kolaylıkla yanlış
noktalara yöneltir. Örneğin bir mal sevkiyatının otomasyonunda şöyle bir
diyalog, çok olasıdır:
Y.M.: Peki, bu depodan
günde ortalama kaç sipariş sevk edilir?
Müşteri: Hiç belli olmaz
ki, hep değişir!
Y.M.: En fazla kaç olur?
Müşteri: 5 de olduğu olur,
bazen 500 de olur.
Y.M.: Peki burada kaç eleman yükleme yapıyor?
Müşteri: 2.
Y.M.: 500 siparişi 2 adam
nasıl yüklüyor peki?
Müşteri: Beyim, o zaten kırk yılda bir olur, o zaman da siparişler
bir iki gün gecikir haliylen!Yazılım Mühendisi için belli ki
çok kritik olan ortalama sipariş adedi bilgisini, gördüğünüz üzere, doğrudan
öğrenmek olanaklı olmadı. Yazılım Mühendisi bunu yeteği ile buldu, çıkardı. Her
zaman da şans böyle yaver gitmeyecektir.
Dolayısıyle bir Yazılım
Mühendisinin:
- zeki olması,
- sosyal iletişim yeteneğinin çok yüksek olması,
- titiz olması
gerekir. Bunlardan
birisindeki bir eksiklik sonradan gecikmeler, milyarlık zararlar, davalar, kötü
ün olarak geri döner. Yeri gelmişken şunu da belirtelim:
Genel kanının
aksine Yazılım Mühendisi gününü (gecesini) bilgisayar karşısında geçiren,
çoğunlukla karikatürize edildiği üzere sosyal iletişim özürlüsü, garip bir dille
konuştuğu için ne dediği bir türlü anlaşılamayan bir kişi hiç değildir.
Bu durumdaki kişi yukarıda anılan nedenlerden ötürü kaybetmeye mahkumdur,
genel profil de hiç böyle değildir zaten. Bu bakımlardan Yazılım Mühendisliğinin
pek benzeri Endüstri Mühendisliğidir. Hatta denebilir ki Yazılım Mühendisinin
iletişimde olması gerekebileceği kesim bir Endüstri Mühendisininkinden daha
yaygındır ve muhatap olacağı müşterinin kendi terimlerine (Yazılım Mühendisinin)
vakıf olması ise daha az olasılıktadır.
Bu aşamanın sonunda üretilen karşılıklı bağıtlanan (üzerinde anlaşmaya
varılıp imzalan) ihtiyaca cevap verecek ürünün (yapacakları ve yapmayacakları
ile) tarif edildiği bir dökümandır.
- Tasarımın yapılması:
Bu aşama mühendisliğin teknik (ve
anlaşılmaz) boyutunun devreye girdiği aşamadır. Gerekli bilgileri müşteriden
almış olan Yazılım Mühendisi (olasılık ekibi ile) kapanıp talep edilen ve
üzerinde anlaşılmış sistemin tasarımını yapacaktır. Nasıl İnşaat
Mühendisliğinin proje çizim yöntemi, Elektronik Mühendisliğinin elektronik
devre çizim yöntemi, Makina Mühendisliğinin teknik resim çizim yöntemi varsa
Bilgisayar Mühendisliğinin de kendine özgü bir tasarımı belgeleme (denotation)
yöntemi vardır. Ve nasıl Bir Makina Mühendisi elektronik devre şemasından
birşey anlamaz ise diğer tüm mühendislikler de Bilgisayar Mühendisliğinin bu
belge ve çizimlerinden birşey anlamaz. Bu belgelerde işin hangi işlevsel
modüllere, nasıl bölüneceği, modüllerin birbirleri ile ilişkileri, veri
depoları, veri akışları, veri dönüşümleri, veri türleri gösterilir. Nasıl üç
odalı, bir mutfaklı ve iki tuvaletli bir daireyi iki İnşaat Mühendisinin (veya
Mimarın) farklı farklı tasarlaması olanaklı ise yazılımın tasarımı da farklı
farklı ve buna bağlı olarak da başarılı/başarısız olabilir. Teknik deneyim ve
ustalığın kendisini göstereceği en önemli aşamalardan birisidir tasarım. Bu
tasarım evresinde de kimse sipariş edilen yazılımı 'yazmak' (biz buna kodlamak
diyoruz) amacı ile bilgisayar başına oturmayacaktır. Bu, daha planı
yapmadan inşaata girişmeye benzerdi ve aynen böyle bir inşaat nasıl çökmeye
mahkum ise, tasarım evresi profesyonel usullere uygun yapılmamış bir yazılım
da feci biçimde çökmeye mahkumdur.
Bu evrede, günümüzde artan biçimde,
Yazılım Mühendisleri bu tasarımları belgelemek için özel bilgisayar
prgramlarından yararlanmaktadırlar. Piyasada bulunan Yazılım Mühendisliği
paketleri Yazılım Mühendisinin tasarımını yapması ve belgelemesinde yardımcı
araç görevi yapmaktadır. Aynen bir Elektronik Mühendisinin yarattığı devreyi
çizmesine yardımcı olan devre çizim programları veya bir İnşaat Mühendisinin
bina planının çizdiği halk arasında Autocad programı olarak bilinen
programlardır bunlar. Gerçekte Bilgisayar Mühendisi (diğer mühendisliklerde de
olduğu üzere) bu programlar olmaksızın da tasarımını yapabilir.
Tasarım
evresinin sonunda üretilen bir 'Tasarım Dökümanı' dır. Ve belirtildiği üzere
ancak ancak konunun profesyonellerince anlaşılabilecek özelliktedir.
- Yazılımın yazılması:
Sıkı durun, beklentinizin aksine olduğunu
tahmin ettiğimiz, çarpıcı bir gerçek geliyor:
Gerçek profesyonellikte yazılımın fiilen yazılması Yazılım
Mühendislerince yapılmaz.
Bu aynen planı çizilmiş bir inşaatın İnşaat Mühendislerince harç
karılarak, kalıp çakılarak, kazma kürekle inşaa edilmesine, veya tasarımı
yapılıp şeması çizilmiş yeni televizyonun üretim hattında bir Elektronik
Mühendisinin lehim yapmasına benzer. Bu aşama aslında 'programcı' olarak
adlandırılan, kendi başına tasarım yapacak bilgisi olmayan ancak yapılmış bir
tasarım dökümanına bakarak yazılımı yazabilecek elemanlarca gerçekleştirilir.
Bu 'programcıların' 'kodlamaları' da aynen bir inşaat sahasındaki şantiye
mühendisinin inşaatın yapılmasını her aşamada denetim altında tutması gibi bir
Yazılım Mühendisi tarafında sıkı biçimde denetlenir. Hatasızlığı kontrol
edilir. Yeri gelmişken bir gerçeğin altını çizip, genel bir yanlış kanıyı
düzeltelim:
Yazılım Mühendisliği yoğun bilgisayar kullanımı gerektiren, kişinin
hayatını program yazarak geçirdiği bir meslek değildir.
Ülkemizdeki durum:
Ülkemiz yazılım üretimi konusunda
ne yazık ki daha tam profesyonelleşememiştir. Eksiklik, gerekli kadroların ve
iş gücünün oluşmasıdadır. Yazılım Mühendisi sayımızda azlık olduğu gibi, bu
disiplinin ara elemanı durumunda olan 'programcı' sayısı ihtiyacın çok çok
altındadır. Pek az üniversitede 2 yıllık 'programcılık' eğitimi verilmektedir.
Kaldı ki 'programcılık' üniversite çatısı altında olmaktan çok 'meslek yüksek
okulu' çatısı altında yer alması gereken bir meslek eğitimidir. (Profesyonel)
'programcı' boşluğu ne yazık ki ülkemizin bir gerçeği olarak iki kaynaktan
doldurulmaktadır:
- Kendini hasbel kader programcılık alanında (kısmen) yetiştirmiş, halk
deyimi ile 'alaylı' farklı disiplerin insanları. Bu kişiler genellikle ufak
programlar yazmışlar, hatta bir denetim mekanizması da olmadığından bunları
satabilmişlerdir de. Bununla edindikleri öz güven kendilerine 'kendinden
menkul' programcı sıfatı yakıştırmalarına neden olmuştur. Bu kategorideki
kişiler evvelki bölümde anlatılan 'tasarım dökümanlarını' çözümlemek
konusunda eğitim almamışlardır. Ayrıca, yılların deneyimi ile elde edilmiş,
yazılım 'kodlama' nın kurallarından da pek haberli değildirler. Her boyutta
'alaylı' iş görürler.
- Diğer grup, ne yazık ki Yazılım Mühendislerinin kendileridir. (1)
gruptan kişilerle acı deneyimler yaşamış ihtiyaç sahiplerinden imkanı
olanları (büyük yazılım şirketleri, parasal kısıtı az olan bankalar,
holdingler,…) Yazılım Mühendislerine dönüp, 'kodlama' evresinin
de onların tarafından gerçekleştirilmesini istemektedirler. Bu durum belki
Yazılım Mühendisinin piyasa ederini ülkemizde artırmakta ancak öte yandan
onların (yüksek ücretler karşılığında) yeteneklerine göre düşük kalitede bir
iş yapmalarına ve sıkıntı duymalarına neden olmaktadır. Bu, ülkemiz Yazılım
Mühendisleri arasında yaygın bir yakınma konusudur. Patlayan bilgisayarlaşma
talebinin bir sonucu olarak önümüzdeki on yıl içerisinde ülkemizde bu
sorunun çözülmesi ve dengelerin daha sağlıklı olarak oluşması
beklenmektedir.
- Yazılım ürününün test ve bakım:
Bir yazılım üretim süreci
çeşitli aşamalarda test evreleri içerir. Bu gerek 'kodlanan' modüllerin
işlevlerini yerine getirip getirmedikleri, gerekse de tasarım parametrelerinin
uç değerlerindeki tavırları ve dayanıklılıklarına ilişkindir. Ayrıca
birleşince tüm yazılım sistemini oluşturacak olan bu modüllerin birleştirilme
işlemi de hatalar içerebilmektedir. Dolayısıyle tüm sistem bütensellik
bakımından da testlere tabi tutulur. Bütün bu test işlemleri deneyim,ciddiyet
ve tititzlik gerektirir. Bu evrede Yazılım Mühendisleri ve deneyimli
'programcılardan' oluşmuş olan bir ekip yer alır. Bu ekibin 'yazılımı
kodlayan' ekipten tümüyle farklı olması ve yalnızca 'ihtiyacın tarif edildiği'
dökümanı ve 'tasarım dökümanını' kriter olarak alması esastır. Bu aşama
üretilen yazılımın test edilmesi amacı ile bilgisayar başında geçen bir
evredir.
Bakım, ürünün tesliminden ve kabulünün yapılmasında sonraki zaman
dilimlerinde keşfedilecek yazılım bozukluklarının (hep hiç olmaması dilenir,
ancak hiç bir zaman hata sıfır olmaz) onarılması ve/veya gereksinimlerdeki
değişim veya ek gereksinimlerin doğması dolayısıyle yazılımda yapılacak
değişiklikleri içerir. Bu aşama da Yazılım Mühendisinin
denetimindedir.
Bilgisayar Mühendisi için iş imkanları nedir, kaç
para kazanır?
Yurtiçinde:
- Şirketlerin bilgi-işlem birimleri:
Çeşitli bankalar,
holdingler, büyük ölçekli sanayii kuruluşları kendi faaliyetleri ile ilgili
bilgisayar(laşma) etkinliklerini kendi çatıları altında gerçekleştirmekteler.
Buralardaki etkinlikler çoğunlukla çeşitli tecimsel (ticari) işlerin ve
işlevlerin otomasyonu olmaktadır. Veritabanı uygulamaları (stok, süreç
denetimi, muhasebe, vb.), ağ eksenli uygulama geliştirilmesi, ofis otomasyonu,
WEB esaslı e-tecim, etkinliklerin büyük kısmını oluşturmaktadır.
Bilgisayar Mühendislerine en yüksek ücret bu şirketlerin bünyesinde
ödenmektedir. Bulunulan şehre göre değişmekle birlikte yaklaşık 1000-1200 USD
ile başlayan başlangıç ücreti bir yıllık başarılı bir çalışma sonucunda 2000
USD'a tırmanmaktadır. Piyasa 4-5 yıllık bir deneyimin alacağı ücret 2500 USD
üzeri olmaktadır.
- Yazılımevleri:
Ülkemizde artan sayıda, çeşitli ölçekte, yazılım
üreten şirket açılmaktadır. Bunlara yazılımevi diyoruz. Bu yazılımevleri kendi
stratejilerine uygun olarak yatay veya dikey pazara yönelik ürün
üretmektedirler. Yatay pazarda bir yazılımın değişikliğe uğratılmadan birden
fazla farklı müşteriye satılabilmesi amaçlanmaktadır, yani bir tür
'konfeksiyon' üretim söz konusudur. Düşey pazarda ise amaç belirli bir
müşteriye (veya dar bir kesime) yönelik yazılım üretmektir. Ufak yazılımevleri
genellikle düşey pazardan pay almak istemektedirler. Son yıllarda bu tür
yazılımevlerinin sayısı yazılım gereksinimlerine koşut olarak artmaktadır. Bu
yönde devlet teşvikleri ve banka kredi destekleri de vardır. Çoğunlukla
mezuniyetinin ertesinde bir yazılım kuruluşunda çalışan Bilgisayar
Mühendisinin, belirli bir alanda 'alan bilgisi' ve ilişkilerini oluşturup,
bulunduğu kurumdan ayrılıp, bir iki ortaklı yazılımevi şirketi kurması ve söz
konusu dikey pazara yazılım üretmesi en yaygın gerçekleşme türüdür. Bu tür
yazılımevleri ilk bir iki yıl finansal yönden zorlanmakta, ancak ilk birkaç
ürünlerinin satılamasını izleyen zaman diliminde (bu ürünün başarısı oranında)
piyasada tutunabilmektedirler.
Yazılımevlerindeki Bilgisayar Mühendisi çalışanların aylıkları bir
önceki başlıkta anılandan daha azdır. Bazı yazılımevleri ürün satışı üzerinden
ortaklık önermekte ve rakamı daha da düşük bir düzeye çekmektedir. Buralarda
geliştirilen yazılımın 'çekiciliği' ne yazık ki, Bilgisayar Mühendisinin
ücretine (-) bir faktör olarak etkimektedir.
- Akademik yaşam:
Öğrenimin lisans sonrası eğitim (master,
doktora dercelerine yönelik) sürdürmek kararında olan lisans mezunları için
bir alternatif de 'üniversitede asistan olarak kalmaktır'. Bu eski deyim 80 li
yıllarda Araştırma Görevliliği olarak yeniden adlandırılmıştır. ODTÜ
Bilgisayar Mühendisliği Bölümünde her yıl 8-10 araştırma görevlisi göreve
başlamaktadır. İyi bir not ortalaması ve bilgi düzeyi, akademik çalışma
yönünde motivasyon bu yolu seçmenin ön koşuludur. Araştırma görevlileri,
görevlerinin bir parçası olarak bir yandan sınıf karşısında bilgi aktarma
imkanı bulmakta ve eğitmenliğin tadına varmakta diğer yandan ise bilimsel
araştırmanın nasıl yapıldığını öğrenmekte, bilime katkıda
bulunabilmektedirler. Yayınlanan bir bilimsel çalışmanın kapağında kişinin
kendi adını görme olanağı yalnızca bu yaşamı seçmekle gerçek olabilir.
Ne yazık ki devlet üniversitelerinde verilen ücretler memur ücreti olup,
her disiplin için aynıdır. Bazen dalgalanma göstermekle birlikte araştırma
görevlisinin alacağı maaş 400 USD dolaylarındadır. Buna karşın kendisinden
beklenen iş yükü özel sektördekinin yarısı gibidir. Bazı projeler çerçevesinde
yapılabilecek eş işler aracılığı ile bu rakamın yükseltilmesi de olanaklıdır.
Ayrıca, akademik ortamda kişiye tanınan özgürlük verilen görevlerin aksamaması
sınırlarına kadar genişlemektedir. Özel sektörde durum bunun tam aksidir. İş
saatleri, giyim-kuşam, iş ortamındaki kişisel özgürlükler çok daha
kısıtlanmıştır.
Yurtdışında:
Türkiyedeki olgular büyük ölçekli olarak yurtdışı
için de geçerlidir. Ancak herşey daha büyük boyutlarda gerçekleşmektedir. Ar-Ge
etkinlikleri Türkiyeden daha yoğundur. Ancak, unutmamak gerekir ki,
yurtdışındaki üniversitelerde araştırma, ülkemize göre çok daha fazla
ticarileşmiştir. Üniversiteler özel sektöre ciddi paralar karşılığında araştırma
ve geliştirmeler yapmaktadırlar. Yani şirket içinde 'bilimsel' etkinlik,
yurtdışı normlarına göre, yine azdır. Kendi içlerinde Ar-Ge birimi oluşturup
burada ciddi araştırma yapmak ancak 'dev' diye adlandırılacak bazı kuruluşlar
için sözkonusudur (Kodak, AT&T, IBM, Microsoft gibi). Yine de buralarda iş
bulmak olanaklıdır. Yazılım geliştirme sektöründe ise, bölümümüz mezunu her
zaman iş bulabilmektedir.
ABD standartlarında, ODTÜ BMB mezunu bir bilgisayar mühendisinin (iş
ayırımı gözetmemesi koşulu ile) kazanacağı yıllık (brüt) 60000-75000 USD dır.
Bunun net getirisi %70 dolaylarındadır. Yaşam için harcanacak kısmı ise en az
25000-30000 USD mertebesindedir. Bu değer bazı büyük kentlerde alınan ücretin
tümü düzeyine de erişebilmektedir.
Türk bilgisayar mühendisleri ne zaman yerli
bilgisayar yapacak?
Bu soru bir eksikliğin ifadesi ile sorulmakta ise bu
tümüyle yanlış bir yaklaşım. Türkiye Kuzey Denizinde petrol de aramıyor, Palmiye
yağı üreticisi de değil, Çikita muz ve kahve de yetiştirmemekte, ancak bunları
yoğun biçimde tüketmekte. Günümüz açık pazar ekonomisine dayalı Dünya düzeninde
her ülkenin her ihtiyacını kendisinin gidermesi olanaklı değildir. Ülkemiz ileri
bir sanayi ülkesi olacaksa bunu hangi doğrultuda gerçekleştireceğini belirlemiş
durumda. Ülkemiz, beyaz eşyada, belirli türden elektronik kontrol cihazlarında
(örneğin telefon santralları), ileri teknolojiye dayalı inşaat sektöründe,
tekstil alanında, uluslararası konaklama organizasyonlarında (ki bir alt kümesi
turizmdir), Motorlu taşıt üretiminde Dünya çapında gelişmeyi seçmiş durumda.
Tercihini bilgisayar üretimi doğrultusunda yapmamış olmasının yatırım sermayesi,
zamanlama, karlılık gibi karmaşık nedenleri vardır. Büyük olasılıkla ileride de
bu yönde bir tercih olmayacaktır. Anlaşılması gereken bu tercihin nedeninin
'teknik bilgi eksikliğinden' kaynaklanmadığı, tamamen ticaret dünyasının kendine
özgü kurallarından kaynaklandığıdır. Ülkemiz, bu teknolojileri gerekirse
üretebilecek bilgi düzeyini çeşitli kurumları aracılığı ile sağlamakta ve bu
bilgiyi de güncel tutmaktadır. Bir örnek vermek gerekirse ASELSAN'ın ve
üniversitelerimizin bilgi birikimi bu sektörde üretim yapmaya yeterdir.
Yapmayışının nedeni ticaridir. Yani yukarıdaki sorunun yanıtı şudur:
Türk ticaret dünyası tamamen ticari çıkarlarla bilgisayar
ithalini değil, üretimini karlı gördüklerinde.
Bilgisayarlar birgün insanların
yerini alacak mı?
Bilgisayarların şu andaki yapıları ile bu zor gözüküyor.
Veri işlemleme yeteneğine sahip tek yapı masalarımızın üzerinde oturan teknoloji
değildir. Başka fiziksel yapıların da bu yeteneğinin olduğunu biliyoruz. Bu
yapılar günümüz teknolojisinde somutlaştırılan 'Von-Neuman' yapısında
değillerdir. Ancak insanlığın ihtiyacı daha bu doğrultuda olmadığından ve
günümüz bilgisayarlarının pek çok eksiği giderebiliyor olmasında ötürü
'Von-Neuman' dışı yeni teknolojilere yatırım yapılmamakta. İlerleyen zamanda bu
doğrultuda yatırım yapılmasına koşut olarak sorunun cevabı olumluya
dönebilecektir. Bölümüzdeki çeşitli dersler kapsamında bu alternatifler ele
alınmakta, buna ek olarak Yapay Zeka kavramından da ne anlaşılması gerektiği
irdelenmektedir.
Bilgisayarlara ilgim yok ama ÖSYM
puanım çok yüksek, çevrem Bilgisayar Mühendisi olmam için baskı yapıyor, nasıl
karar vermem gerektiğini bilmiyorum.
Başarılı
öğrencilerin en güncel ilgi alanlarında meslek sahibi olmaya teşvik edilmeleri
(hatta bir anlamda zorlanmaları) oldukça eski bir sorun. Ülkemizde çeşitli zaman
dilimlerinde çeşitli meslekler 'revaçta' oldu:
Elektrik Mühendisliği, İnşaat Mühendisliği, Tıp, Endüstri Mühendisliği şimdi
de Bilgisayar Mühendisliği... Bu akımı biçimleyen, şüphesiz ki Dünyadaki ve onun
özelinde Türkiyedeki 'gereksinim'. Geçmiş deneyim, sanırız şu biçimde
özetlenebilir:
Yukarıda Bilgisayar Mühendisliğini gerçek boyutları ile tanıtan yazıyı
okuyup özümsedikten sonra:
- Eğer birden fazla mesleğe eşit mesafede iseniz ve Bilgisayar Mühendisliği
bunlardan birisi ise bu disipline geldiğinizde hayal kırıklığına pek
uğramayacaksınızdır. Sağladığınız yaşam kalitesi, sürekli gelişen bir
teknolojinin içinde saygın bir meslek sahibi olmak sizi mutlu edecektir.
- Eğer başka bir meslek (özellikle Sosyal Bilimlerde veya Fen bilimlerinde)
sizi çok daha fazla cezbediyorsa, bu durumda ciddi bir probleminiz var
demektir. Önce ilgilendiğiniz meslek alanı hakkında gerçek ve sağlıklı
bilgi edinmeyi amaç edininiz. O disiplinin kişileri ile konuşunuz,
yukarıdakine benzer ayrıntıda bilgiyi edinmeye çalışınız. Size 'gerçek bilgi'
aktaran kişiler dışında herkese (evet gerekirse en yakın çevrenize bile)
'kulaklarınızı tıkamanızı' öneririz. Siz, yeteri kadar bilgilendikten sonra
kendi kararınızı kendi başınıza ve herkesten sağlıklı verebilecek zekaya
sahipsiniz, başarılarınızla bunu kanıtladınız. Önerimiz, tamamen
bilgilendikten sonra, kendi kararınızı gönlünüzün olduğu doğrultuda
vermenizdir. Bu yaşamı herkesin yalnız bir kere yaşadığını unutmayınız.
Bilgisayar Mühendisinin ne
yaptığını çok iyi biliyorum. Hayatta edinmek istediğim yegane meslek. Ancak ÖSYM
başarım düşük, ne yapmalıyım?
Cevabımız hiç duraksamadan şu olacaktır: Ne yapın edin bu öğrenimi
yapın. Ülkemizde en yüksek puandan başlayan ve daha mazbut puanlara doğru
uzanan bir dizi Bilgisayar Mühendisliği Bölümü var. Şüphesiz, sizin gibi çok
istekli ve bilinçli bir bireyi aramızda görmek isteriz. Ancak puanınız bu bölüme
yetmiyor ise bu dünyanın sonu değil. Eğer bu mesleği belirttiğiniz kadar çok
edinmek istiyorsanız en kötü Bilgisayar Mühendisliği eğitimi başka bir dalı
okumak durumunda kalmaktan yeğdir. Dört yıl boyunca (ve ondan sonra) kendinizi
eğitmek elinizde. Nasıl olsa zamanınızı vermeniz gereken konularla, bilgi
edinmek istediğiniz konular aynı, gerisi size kalmış durumda.
Yapmamanız gereken en önemli şey, başka bir disipline gidip bir yandan
da kendinizi Bilgisayar Mühendisliği konusunda eğitebileceğinizi sanmanız. Ne
kadar iradeli de olsanız buna zaman bulamayacaksınız. Ayrıca size temel teşkil
edecek bir bilgi de almıyor olacaksınız. Bu hata, pek çok kişi tarafından
yapılmaktadır. Deneyimimiz, bu usulle başarıya ulaşabilen insan sayısının ihmal
edilebilecek kadar az olduğudur. Ayrıca bu durumda elinizde diploma olmayacak ve
hep 'alaylı' muamelesi göreceksiniz.
Oyun programlarına hayranım, ben de
öyle programlar yazmak istiyorum, Bilgisayar Mühendisliği okusam bu programların
nasıl yazılacağını öğrenir miyim?
Bu soru
'Kilitlere' veya 'konserve
açacaklarına' hayranım, makina mühendisliği okursam bunların nasıl yapıldığını
öğrenir miyim?
ssorusuna benziyor. Yanıt hem evet hem hayır.
Nasıl Makina Mühendisliğinde 'Konserve Açacakları' bir ders veya konu başlığı
değilse, Bilgisayar Mühendisliğinde de 'Oyun Programları' diye bir konu başlığı
yoktur. Ancak çok daha genel bilgileri ve yazılım yöntemlerini öğrenmiş olan
Bilgisayar Mühendisi için bu özel konu, pek de zorlanmadan üretkenlikte
bulunabileceği bir konudur. Yani yanıt 'Evet, oyun programı yazabilecek bir
düzeye gelirsiniz' ancak geldiğiniz düzeyde 'oyun programı' yazmakla mutlu olur
musunuz, bu bizim yanıtlayamayacağımız bir soru.
Program nedir? / Ben de program
yazabilir miyim? / Bilgisayar Mühendisliğinde program yazılması mı
öğretiliyor?
Öncelikle yukarıdaki I. grup
sorulara yanıt amacı taşıyan yazıyı
okuyunuz.
Program, bilgisayarda belirli bir amacı gerçekleştirmek için geliştirilmiş
(geliştirdiğiniz) yöntemlerin ve verilerin, Bilgisayarın donanımının yerine
getirebileceği, uygulayabileceği bir biçimdeki ifadesidir. Programlar, bir
'Bilgisayar Programlama Dili' kullanılarak yazılır. Günümüzde yüzlerce, böyle
programlama dili vardır. Aynen insanların kullandığı dillerdeki gibi, bu
dillerin bazılarında bir eylemi tarif etmek diğer bazı dillere kıyasla kolay
veya zordur.
Evet, siz de program yazabilirsiniz. Önce bilgisayarlar için söz konusu
olacak yöntemleri öğrenmeniz, sonra amacınıza en rahat gerçekleştirebileceğiniz
bir bilgisayar dilinin yazım kurallarını ve nasıl çalıştığını öğrenmeniz
gerekecektir. Bunun için piyasada pek çok kitap bulunmaktadır.
Yukarıdaki yazıda da belirtildiği üzere Bilgisayar Mühendisliği eğitiminde
pek çok şey öğretiliyor. Bunu Bölümümüz Curriculum (Müfredat) listesinden de
gözlemleyebilirsiniz. Bu öğretilenlerin arasında program yazmakla ilintili pek
çok ders bölümü bulunmakta. Ancak Bilgisayar Mühendisliği Bölümünü, 'Program
yazılmasının öğretildiği yer' olarak algılamak bir yanılgı olur. Eğitim
boyutumuzda gerçekleştirdiklerimizden yalnızca bir tanesi budur.
Bilgisayar Mühendiliğinde bilgisayar
donanımı öğretilmiyor mu?
Öğretiliyor. Bir dizi zorunlu derste (dört ders), en temel yapı öğeleri
olan tranzistörler, dirençler ve kapasitelerden başlanarak, sırasıyle mantık
devreleri, bunlarla inşa edilen hesap ve işlemleme devreleri, en sonunda da
mikro-işlemci (Microprocessor, CPU) dediğimiz ve bilgisayarın çekirdek
işlevlerini gerçekleştiren (günümüzde 100 Milyonlarca yapı öğesini barındıran)
yapı, öğrencilerimize hem teorik hem uygulamalı ortamlarda öğretilmekte. Ancak
genel çerçevede, bu eğitim, donanımı imal etmeye yönelik bir eğitim olmayıp,
daha çok kullanılan alt yapının ne olduğunu detayları ile vermeye yönelik bir
eğitimdir.
Bilgisayarımda XXX çalışmıyordu, tanışım bir bilgisayar
mühendisinden yardım istedim, çalıştıramadı, başka birisi ise geldi, birşeyler
yaptı, sorun çözüldü. Nasıl bilgisayar mühendisi bu?
Bilgisayar
Mühendisliği öğretim üyesi/öğrencisi/mezunu olarak, bu, çok karşılaştığımız bir
durum. Windows gibi işletim sistemleri 'müdahaleye kapalı' olarak
tasarlanmışlardır. Bu, bir otomobilin çeşitli bölümlerinin erişilemez, açılamaz
olarak imal edilmesine benzemektedir. Böyle bir işletim sisteminde, doğan sorunu
gidermek yönünde sistematik metotlar çaresiz kalmaktadır. 'Resmin' hemen hiç
görülemediği bu durumlarda çözüm bilgiden ziyade, böyle bir durumla daha önce
karşılaşılıp karşılaşılmadığı ve bu durumda körlemesine yapılan, işe
yaraması/yaramaması durumunda nedenin bilinemediği müdahalelerin ne olduğunu
anımsamak yolu ile bulunmaktadır. Bu durumda ise bilgisayar mühendisliği
mensubunun bir üstünlüğü yoktur. Hatta, bu bağlamda dezavantajlı olduğu bile
söylenebilir. O, zamanını körlemesine denemeler yapıp sonuçlarını gözlemlemekten
ziyade, sistematik, bilimsel bilgileri edinmek ve özümsemek ile geçirmektedir.
Böyle durumlarda, başvurduğunuz kişiye XXX sorunları konusunda deneyim
sahibi olup olmadığını sormanızı öneririz