Yazılım Mühendisi Olmak

by Volem October 18, 2010 13:12

Hepinizin bildiği üzere her gün binlerce kişi bilişim sektöründe bir şekilde yer alıyor. Bu günlerde aramıza yeni katılan arkadaşlardan çok sık duymaya başladığım bir soru var; Yazılım üzerine kendimi geliştirmek istiyorum ama nereden başlamalıyım? Tabii bu soru her sektördeki yeni arkadaşların aklına gelen bir soru olabilir. Yazılım Mühendisi olarak çalıştığım için ben kendi çerçevemden yanıtlamaya çalışacağım.

Her meslekte olduğu gibi yazılım alanında da güncel teknolojileri takip etmek ve en çok ihtiyaç duyulan konular hakkında uzmanlaşmak sizi aranan bir aday haline getirecektir. Bilişim sektörü diğer sektörlere kıyasla yeni bir sektör olmasına rağmen bir çok alt alandan oluşmakta. Kendinize nereden başlamayım sorusundan önce hangi konuda bir alt yapım var sorusunu sorun.

Bir yazılım mühendisi veya programcı olmak için bir alt yapınız varsa yani bunun üzerine bir kursa ya da üniversiteye gitmiş iseniz işiniz biraz daha kolaylaşacaktır. Ancak böyle bir alt yapıya sahip değilseniz bana göre bu alt yapıyı kurmak için vakit ayırmalısınız. Piyasada bulunan ve programlama ile uğraşan bir çok kişi işi biraz aceleye getiriyor. Tabiri caiz ise tepeden inme programlama yapmaya çalışıyor. Günümüz teknolojisi ile artık programlama arayüzleri (Integrated Development Environment - IDE) bizlere çok fazla imkan sağladığı için neredeyse hiçbirşey öğrenmeden örneğin bir Windows Form uygulaması yazabiliyorsunuz. Diyeceksiniz ki madem bu kadar kolay o zaman neden alt yapımı geliştirmek için vakit harcayayım? Hemen cevap vereyim çünkü bilgisayarın başına geçip 3-5 satır kod yazabiliyor olmak sizi yazılım uzmanı veya mühendisi yapmaya yetmez. İş hayatına atıldığınızda sizden kod yazmanızdan çok çözüm üretmeniz beklenecektir. Ne demek istediğimi basit bir benzetme ile anlatayım. Yazılım yazan kişinin yani programcının yaptığı iş, temel olarak inşaatta çalışan duvar işçisinin yaptığı işten pek farklı değildir. Duvar işçisi kendisine tarif edilen, ölçüleri ve içeriği verilmiş çimento ile duvarı örmek ile uğraşır. Duvarı örerken üzerine o duvarın ona söylendiği gibi yapar ve kendisinden birşey katmaz. Programcı ile bir uzmanın veya mühendisin farkı da budur. Duvarı örmeyi öğrenebilirsiniz ama bu duvarın nerede olacağını, işlevini, hangi malzemeyi kullanacağınızı bilmiyorsanız malesef bir ev yapamazsınız.

Bu kadar laftan sonra demek ki yine bana göre ilk adımınız kendinize yeter bir alt yapı oluşturmak olmalı.

Diyelim ki yeterli alt yapınız var ancak henüz bir uzmanlığınız yok.. Daha önce de söylediğim gibi yazılım mühendisleri de bir çok alt uzmanlığa bölünmüş durumdadır. Kısaca ve kabaca özetlemeye çalışacağım.

  • Alt seviye programlama. (Low level programming - Absolute Machine Code & Assembly Language)
  • Üst seviye programlama. (High level programming - Compiler Language)
  • Çok üst seviye programlama. (Very high level programming - Interpreter Language)

Programlamayı bu üç en genel alt alana ayırabiliriz ve aslında 3'ü de günümüzde uzmanlarına ihtiyaç duyulan alanlar. Eğer bilgisayar mühendisi iseniz zaten bunun 3'ü için de bir alt yapıya sahip olmalısınız. Burada listedeki ilk eleman direk gömülü programlama yani bir mikro işlemci programlama veya bir sürücü (driver) yazma vb. üzerine uzmanlaşmak isteyen arkadaşların biraz daha üzerine yoğunlaşması gereken konular. Örnek olarak bir 8086 mikro işlemci programlayacaksanız bu intel işlemcinin assembly dili üzerine bilgi edinmelisiniz.

Tabii ki bir sistem programlanırken çoğunlukla bu alt alanların birden fazlasını içerisinde barındırır. Dolayısıyla örneğin alt seviye programlama üzerine uzmanlaşan birinin bir üst seviyede neler yapılması gerektiğine dair de fikri olmalı böylece daha başarılı bir sistem yaratılabilir.

Üst seviye programlama arada bir derleyici (compiler) olan ve dili makinanın anlayacağı dile çeviren programlama dilleri ile tasarlanır. Buna örnek olarak en popüler C dilini verebiliriz. Günümüzde C nin abileri yer alsa da çoğu zaman iki seviye arasındaki bağlantı C dili ile gerçekleştiriliyor.

Daha üst seviye programlamalar ise günümüzde daha çok kullanıcı ile direk bağlantılı olan web programlama, veritabanı ve arayüz tasarımlarında kullanılmaktadır. Buna örnek olarak da Visual C#'ı verebiliriz.

Şimdi diyceksiniz ki benim yaşım ilerledi ve bunların hepsine vakit ayıramam ancak yazılım sektöründe de yer almak istiyorum ne yapıcam?

Cevap olarak şunu söyleyebilirim, eğer yeterli alt yapı için zamanınız yok ise işe C veya C++ gibi üst seviye bir dil hakkında bilgi sahibi olmak işe başlayabilirsiniz. Göreceksiniz ki temel olarak aslında bütün programlama dilleri benzer bir çalışma ve yazım mantığına sahip. Ardından örneğin web programlama ile uğraşacaksanız PHP veya ASP üzerine yoğunlaşın ve veritabanları üzerine bilgi sahibi olmaya çalışın. Benzer bir mantıkla eğer masa üstü programlama üzerine gitmek isterseniz Visual dillerden birini tercih edebilirsiniz. Bu Java olabilir veya .NET Framework alt yapılı görsel bir dil olabilir.

Umarım bu yazım size ufak bir yol gösterebilmiştir.

Tags: ,

Yazılım

Comments

4/16/2011 10:32:35 PM #

Çok doğru söylemişsin üstad yanlız ben buna birde şöyle bir katkıda bulunmak istiyorum. Kişi problem çözebiliyorumu ve nasıl çözüyor? ona bakmalı. Eğer sistematik bir problem çözme becerisi yoksa kişi boşuna bu olaya heves etmese iyi olur boşuna C syntaxını falan anlamaya çalışmasın çivi yazısı gibi gelecektir ona.

Bunu anlamanın yoluda kişinin günlük hayatındaki davranışlarına bakmak olacaktır.
* Genellikle bizim insanımız arasında dengesiz, simultane, çaresiz ve düşüncesiz davranışlar vardır. Bunlar bir kişide yoğunsa yazılımcı olmaz.
* Kişi santranç oynayamıyorsa, zor geliyorsa yazılımcı olmaz.
* Kişi anadilinde 3 satırdan uzun cümleleri ve 30 satırdan uzun paragrafları bir okuyuşta anlayamıyorsa yazılımcı olmaz.
* Kişi olaylar, kişiler ve cisimler arasında ki bağları anlamakta zorlanıyorsa yazılımcı olmaz.
* Kişi neden sonuç ilişkisi kuramıyorsa, gereğinden fazla oluruna bırakmış ve kaderci yaşıyorsa yazılımcı olmaz.
* Kişi unutkansa yazılımcı olmaz.

Bunlar mevcut olan kişi elini sürüp kendini yormasın derim, bu işle zaman kaybetmesin. Bu da bir yol göstermedir bence.

Oğuz Köroğlu Turkey

4/7/2012 11:14:36 PM #

Topics relevant to cyber bullying, stalking as well as other types of harassment look like they're under-reported in the newspapers.  It sure will be very helpful if more people carried on with these types of conversations.  It doesn't make a difference if it is a celeb, simply a teenager, or a co-worker.

monitoring software United States

5/11/2012 1:06:23 AM #

Awww . . . wat a cute puddy-wuddy . . .

Susana Alward United States

Add comment




  Country flag
Click to change captcha
biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen | Modified by Volem

RSS
View Volkan Nazmi Metin's profile on LinkedIn

RevolverMap

Son Eklenen Yazılar

Yazar Hakkında

Sosyal, evli, çocuklu, karısını ve kızını çok seven, gezmeyi seven, spor yapmak isteyen bir mühendis