16 Nisan 2012 Pazartesi

Program Nedir? Bilgisayar Programı Nasıl Yazılır?

   Bilgisayar mühendisleri genel olarak bilgisayar programı yazarlar.  Yani oynadığınız oyunları, Word'ü Excel'i Windows'u ya da bir muhasebe programını da bu şekilde yazıyoruz... Yazarlar diyorum çünkü program yazmak, yazı yazmak şeklindedir.  

Program ise bilgisayardaki kullandığınız herşeye denir. Yani bir oyun bir programdır, soliter (fal) bir programdır, excel bir programdır. Windows bile bir programdır. internet explorer da bir programdır. Web siteleri de programdır.

Program yazmada  genelde ingilizce terimlerden oluşan bir dil kullanılır.  Programalamada genelde şöyle şeyler yazılır:
Eğer programı kullanan buraya tıklarsa ekranı kırmızı yap, ya da buraya tıklarsa printer'a dökümanı gönder diye ingilizce yazarız.  Yani bilgisayar programları denilen şey tamemen düz yazıdan oluşuyor. Hemen hemen tüm programlar da teorik olarak notepad ile yazılabilir.  Nasıl ingilizce fransızca gibi dünyada 100'lerce dil varsa bilgisayarda da buna benzer şekilde yüzlerce dil vardır.  Kimi çok popülerdir kimisini ise 3-5 kişi bilir. Bilgisayar dillerine örnek vermem gerekirse bir kaç tanesini sayayım belki bazılarını duymuşsunuzdur:: Java, Delphi, asp.net, vb.et, c#, Visual Basic.... 

Zaten bilgisayar mühendislerinin aldığı paraları etkileyen en önemli kriterlerden biri de bildiği bilgisayar dillerinin sayısı ve bu dillerdeki tecübesidir. 


Yani Photoshop'u da bilgisayar mühendisleri yapar, web sitelerinin çoğunu da onlar yapar. Teknolojinin olduğu heryerde Bilgisayar Mühendisleri vardır.  Bilgisayar mühendislerinin yaptığı işleri diğer mühendisler de yapmaya çalışırlar... bazen becerir ve çoğunlukla da becermezler... Bu açıdan öğrenciler arasında tabu olan ve bilmeyen kişilerce uydurulan "
Bilgisayar Mühendisi olamaya gerek yok kendimi yetiştirsem yeterlidir" lafı tamamen yalandır, uydurmadır. Bilgisayar Mühendisi olan kişi öncelikle kendine saygı duymaya başlar, hiçbirzaman ama demez. yani iyi bir yazılımcı olaiblirsinzi ama bilgisayar mühendisi değilseniz sürekli ama ben bilgisayar mühendisi değilim demek zorunda kalırsınız. Bu ezikliği ömür boyu yaşamak zorunda kalabilirsiniz. Bu yüzden baştan bilgisayar mühendisi olmak en iyisidir. Bu yüzden lise'deyken deli gibi çalışıp öss'de yüksek puanlar almaya çalışın.

Bu arada yeri gelmişken belirteyim, eğer kötü bir okulda okuyup da moraliniz bozulmasın, kendinizi geliştirip yine iyi paralar kazanabilirsiniz. Ancak
her zaman iyi bir okulu bitirmek hem kendi iç dünyanız hem aileniz hem ilerde çoluk çocuğunuz için iyi bir hava olacaktır. En azından havalanmasanız bile sizi bir yerde ezmek isteyen olursa ezilmeyeceğinizi söylemeliyim. 

Bir de kötü bir okulda okuyorum diye kendinizi ezik hissederseniz başkaları da sizi ezik olarak görecektir. Orada burada, internet sayfalarında okulunuzu kötülerseniz aslında kendinizi kötülemiş olursunuz. Boğaziçi bilgisayar mühendisliğinde okuyanlar bile okullarından memnun değiller hocalarının yetersizliklerinden müzdaripler, ama siz hiç web sitelerinde kendi okullarını kötülediklerini gördünüz mü? Hayır göremezsizsiniz. Niye kötülesinler ki kendi okullarını, sadece kendi aralarında konuşurken kötülerler o kadar... Yani kendi ayağınıza kurşun sıkmayın
bitirdiğiniz okulları kötülemeyin. Bitirdiğiniz okullara sahip çıkıp. Okulunuzun daha iyi yerlere gelmesi için çabalamanız daha doğrudur.

Neyse dönelim konumuza. Bilgisayar mühendislerinin çoğu program yazsalar da bazıları bu işi beceremezler. Beceremeyenler farklı alanlara kayarlar... Mesela üniversitede kalıp okulda hoca olmaya çalışırlar... Mesela başka alanlarda çalışmaya başlarlar : Satış temsilcisi, Pazarlama, Kalite Sistemleri gibi bölümlerde çalışabilirler. Bu işleri de bilgisayar mühendisleri gayet iyi becerirler.... Zaten hem bilgisayar bilip hem satışcı olursanız bu sizin için bir avantajdır.  Ayrıca yazılım yapmayanlar yada yapmak istemeyenler analist yada proje lideri, proje yöneticisi gibi şeyler de olabilirler. Bu tür adamlar, yazılım yapcak kişilere şu programı yaz, bunu öyle yapma bunu böyle yap derler. Çoğu kere müşteri ile yazılımcı arasında mesaj taşırlar.
Mesela müşteri program yavaş çalışıyor diye Proje Yöneticisi'ne telefon eder. Proje Yöneticisi de yazılımcının masasına gider. Yazılımcı arkadaş müşteri aradı program yavaş çalışıyormuş. hızlandırabilir misin der... yazılımcı da 3 gün içinde bitiriri hızlandırıım der. (hızlandırmaktan kasıt, programın bazı yerlerini yeniden yazmakdır.) Daha sonra proje yöneticisi müşteriyi arayıp tamam abi 5 gün sonra hazır der. Ama bu tür proje yöneticisi de olmaz zordur, hem bilgisayar mühendisinin kahrını, nazlanmalarını çekecek hem de müşteriyi hoşnut tutmak zorundadır. Ayrıca isterler sözleşme dışında isteklerse bunlar için yeni para istemek de çoğunlukla yöneticinin işidir.

Yukarıda belirttim, Bilgisayar Mühendisleri nazlıdırlar, iş yaptırmak hem kolay hem zordurdur. Bir bilgisayar mühendisine gönülsüz iş yaptırıyosanız hiç yaptırmayın daha iyidir. Mutlaka yazılımcıların gönüllü program yazmalarını teşvik etmek çok öenmlidir. bu yüzden Bilgisayar mühendislerinin psikolojilerini bozmamak gerekir. iyi bir motivasyona sahip bir yazılımcı her işi en kısa sürede bitirmeye çalışır...  Yazılımcıların motivasyonalrını bozan şeyleri kaldırmak sirket yöneticilerine ait. motivasyon bozucu şeyler çok çeşitli olabilir: mesai saatlerinin hiç esnek olmaması ya da çok esnek olması, çay kahve kola, yemek, parasal sorunlar, müdürün/yöneticinin anlayışsız olması, yapılan işlerin rutine binmesi, işe uygun kişilerin işe alınmaması, işe giren ve işten ayrılanların çok olması, gürültülü çalışma ortamı, bağırış çağırış olması (sadece bilgisayarcılar bağırabilir :-) )

Bilgisayar mühendisleri yazılım ve meslek dışı işler haricinde en çok Network uzmanu olurlar. Network uzmanı dmek bir firmadaki tüm bilgisayarlardan sorumlusun demek. yani bir bilgisayar internete bağlanmıyorsa bu adama gideriz. kablo gerekiyorsa bu adama gideriz. şirkete yeni giren birine email adresi açılacaksa bu adama başvururuz. Network kolay bir iş olduğu için bu işi daha çok meslek dışından gelen kişiler yaparlar... Bu iş biraz hemşireliğe benzer. genelde iyi bir bilgisayar mühendisi network'ten anlar ama network'çü olmaz.  doktorluk varken hemşire niye olmak istesinler ki....

Bilgisar mühendisleri web sitesi de yapabilirler. Ama bu işi de pek tercih etmezler bu iş de biraz hemşirelik işi gibidir.  Yapan yapar ama bilgisayar mühendisleri genelde daha zor işlere yönlenirler, yani hemşilerin yapamayacağı beyin amaliyatlarını yapmak isterler ve bunun karşılında da yüksek paralar almak isterler. Yani web sitesi yapabilmek için Bilgisayar mühendisliği okumaya gerek yok. hatta okumaya gerek yok lise mezunları bile web sitesi yapabilirler. yakında ilkokullarda web tasarım dersleri açarlarsa şaşırmayın....