Bilgisayar Mühendisliği – Yazılım Dünyasına ve Derine Dalmak

Gerçekten İçeride Neler Dönüyor ?

Yazıya 5 convolutional katmana sahip ilk verimli CNN olan AlexNet ve Google’ın (Going deeper with convolutions – Kıvrımlarla daha derine gitmek) da bu CNN ağı ile bir gönderme yaptığı Inception filminden bir replikle başlamak istiyorum. 

Bu yeterli değil.
Daha derine gitmeliyiz.

Benim Hikayem Nasıl Başladı?

Lise zamanlarımda henüz 14-15 yaşlarındayken çalışan, başarılı sayılan ve hedefi olan her öğrenci gibi benim de şu an olduğum yerden farklı yerde olma hayallerim tabi ki vardı.

Fakat o yıllarda henüz nerede olduğum ve nereye gitmek istediğim konusundaki şu an olan motivasyonum ve bilincim yoktu.

Bunun sonucunda hedefim ve çok küçük yaşlardan beri hayalim olan Tıp kazanmak; yakınından geçmeyi bırakın, hayalini bile kuramayacağım bi yerdeydi benim YGS/LYS puanlarıma bakılınca. 
Puanım yerlerde değildi ama bi Tıp da kazandırmazdı.

Mezuna kalmak seçeneklerim arasındaydı ve sanırım kazanamamamın sebebi de bu oldu.

Mezuna kalma fikri aklıma başlarda yatmıştı ama sonrasında fikrim çok değişti. Tabi o sıralar üniversiteye de gitmek istiyorum. Başladım araştırmaya; dedim acaba hangi bölümü seçsem bu mesleği severek ve kendimden ödün vermem gerekse bile bunun uğruna çalışarak yapabilirim.
Yani hangi bölüm/meslek beni sürekli bir amaç uğruna peşinden sürükler ?

Uzun süren araştırmalar ve düşünmeler başladı…

Neden Bilgisayar Mühendisliği Seçtim ?

18 Temmuz’dan sınavın açıklanmasından sonra neredeyse her Allahın günü hangi bölüme gideceğim sorusunun cevabını araştırıyordum.

Ne yapacağım?
Nereye gideceğim?
Ne yapsam mutlu olurum?
Hangi bölüm yerimde saymamı değil de sürekli gelişim içinde olmamı sağlar ? 

Tabi o sıralar henüz Yapay Zeka Akademide çok fazla konuşulsa, üzerine çalışmalar yapılsa ve Endüstri’de çok fazla kullanımı olsa da Türkiye gündeminde bu kadar konuşulan bir konu değildi.

Seçeneklerim arasından Tıp ve Diş Hekimliği bölümleri kalkınca düşünebileceğim tek alan mühendislikti.

Her gün mühendislik bölümlerini araştırıyordum.
Alan neleri içeriyor, geleceğinde neler var, bu mühendislik eğitiminde neler öğrenmem gerekiyor, dünyada bu alanda neler yapılıyor, artık yapılacak her şeyin yapılmış olduğu bir bölüm mü yoksa çok fazla şey yapılmış ama hala yapılacak çok şey olan bir bölüm mü? Bu bölüm fizik içeriyor mu ? 🙂

Bu sorular beni doğrudan tek bir bölüme yöneltti. Tabii ki de bilgisayar mühendisliğine. Hemen yaptım tercihleri 24 tercihin 24’ü de bilgisayar mühendisliği.

4 yaşından beri de bilgisayar kullanıyordum, 10 parmak klavye kullanabiliyorum, dakikada 90 kelime yazıyorum. E ben bilgisayar mühendisi olamayacaktım da kim olacaktı ?
Sanıyordum …

Bölüme ilk geldiğimde alana merakım çok ama çok fazlaydı. Hatta bulabildiğim kaynaklardan temelleri atmak adına bir şeyler öğrenmeye çalışıyordum.
Okula gelmeden de Algoritma Akış diyagramlarına ve şekillerine çalışmıştım.
(Kesinlikle yapmayın)

İlk Algoritma ve Programlama temel Programlama dersinde sorduğum soru şuydu: 
Hocam bize öğrenmek için bir kaynak verebilir misiniz? 
Cevabı aynen paylaşıyorum:
– Ders bitmiş, hoca bilgisayarını kapatmış, fişler çekilmiş ve projeksiyonun VGA kablosu çıkarılmıştı. Hiç üşenmeden hepsini tekrar bağlayıp bilgisayarı ve tarayıcıyı açtı. Adres satırına yazmaya başladı.
w w w . g o o g l e . c o m 

Dedim evet, çömezlik dönemine hoşgeldin. Herkes böyle dalga geçecek, buna alışsan iyi olur.
Ben gerçekten bunun bir şaka olduğunu sanıyordum.
Dedim adam bizle dalga geçti, bana Google diyor, bilmiyoruz sanki. Hayatımda ilk defa duyuyorum bu siteyi, bu site yeni mi açıldı?

Tabi ilk Algoritma ve Programlama dersinin üzerinden geçen neredeyse dolu dolu 4 sene ve  binlerce belki de yüz binlerce Google aramasından, üzerine çalışılan yüzlerce ödev, yüzlerce kişisel oyuncak proje ve bir profesyonel girişim projesinden sonra anladım ki dalga geçmiyormuş.
Programcı, Yazılımcı, Yazılım Geliştirici, Junior, Senior, vs. vs. herşeyi ezberleyen ve sıfırdan oluşturan (Amerika’yı sıfırdan keşfetmenize hiç bir zaman gerek olmayacak) kişi değil, var olan yöntemleri geliştiren ve en doğru, en performanslı şekilde kullanmayı ve implement edebilen (uygulayabilen/uyarlayabilen) kişiymiş.

Stackoverflow, Github, Kaggle, Tutorial, How can i do …
Yukarıdaki kelimeler ve türevleri benim 4 sene boyunca Google aramalarımın ve internet geçmişimin genel özeti. Eğer yazılım dünyasına adım atmak ve öğrenmek istiyorsanız neyi nasıl yapacağınızı ve nasıl öğreneceğinizi de öğrenmeniz gerekiyor. Yani araştırmayı öğrenmeniz gerekiyor.

 

Yazılımcı/Programcı Olacaksanız Yaşayacağınız ve Alışacağınız Şeyler

Bir programcıysanız: yani yolun başında olmanız, öğrenci olmanız, yada henüz derleyiciye/IDE’ye ilk kodunuzu yazıyor olmanız bunu değiştirmiyor, eğer bu yolda ilerlemek ve öğrenmek istiyorsanız bence artık programcıyım/geliştiriciyim diyebilirsiniz.
Bu yolda sadece tecrübe ve deneyimleriniz ve rütbeniz/isminiz değişiyor. Yolun başındaki isminiz Junior Developer (Çocuk/Deneyimsiz Geliştirici).
Bu sonra sizin seviye ve deneyimlerinize göre Middle, Senior, Lead, şeklinde bir çok isminiz oluyor. Tabi bunlar sadece isimler, hangi alanda çalıştığınıza göre farklı isimler de alabiliyorsunuz (Web/Application/Database Programmer/Developer) vs. 

 

Peki bu alanda çalışırsanız nelerle karşılaşacaksınız? 

İnternet kafe aç, format at tarzında saçma diyaloglardan artık nefret etme seviyesine ulaşacağınızı kolaylıkla söyleyebilirim.

” Bir programcı PC tamircisi değildir.”
– Kushagra Sharma

Bir programcının PC tamircisi olduğunu varsaymak bile yanlıştır. Bir programcı bilgisayarın iç kodlamasını (CPU, Assembly, Mikroişlemci tasarım ve programlaması) bilir. Ayrıca Pc donanımından ziyade algoritmalar ve tasarım ilkeleriyle ilgileniyoruz. 
Tabi ki insanlar bana Android için en iyi fotoğraf düzenleme uygulamasını sorduklarında veya laptoplarına bağlanacak SSD’nin uyumlu olup olmadığını onlara söyleyebilmeliyim. Yoksa ben niye bu alanla ilgileniyorum ki ?

 

Nightgeek konusu yani basit bir deyişle neden bütün gece uyanık kalıyoruz? 

Programcılar konuşmazlar çünkü sözlerinin kesilmemesi gerekir… Diğer insanlarla uyum içerisinde olmak sadece bir düşünce trenini durdurmak anlamına gelebilir. Durdurmak hata anlamına gelir. Trenden inmemelisiniz.
– Ellen ULLMAN

Çünkü herhangi bir şey geliştirirken huzurlu ve sakin bir ortama ihtiyaç duyuyoruz. Verimli bir şekilde kodladığımız şeyi ortaya çıkarabilmek için buna ihtiyacımız var.
Özellikle birisi bana bakarken veya aniden odaya daldığında tüm konsantrasyonumu ve aklımdaki tüm o yol haritasını ve yapacağım şeyleri unutuyorum.
Bu yüzden de herkes uyurken yani kimsenin rahatsız edemeyeceği anlarda kodlamak neredeyse ilk kodumu yazdığımdan beri asla kopamadığım bir alışkanlık.

 

Ne var sanki 2 satır kod yazıyorsun, dünyayı kurtarmış gibi davranıyorsun. Senin yaptığını ben de yaparım.  Tabii ki yaparsın…  E buyur, hadi?

” Programlama düşünmektir, yazmak değil. ” – Casey Patton

Programlama tamamen bir sorunu çözmek için hayal gücüne ve mantıklı yaklaşıma dayanmaktadır. Programlama; uyurken, gezinirken, pencereden dışarı bakarken, rahatlamak ve hayal etmek için yeterli zamanınız olduğunda herhangi bir şey yaparken yapılabilecek bir sanattır. Eğer mantıklı düşünebiliyorsanız bir programcısınız demektir.
Programlama size yeni bir düşünme şekli katar

” İster evrenin sırlarını ortaya çıkarmak isteyin, ister 21. yüzyılda bir kariyer yapmak isteyin; temel bilgisayar programlama öğrenilmesi gereken bir beceridir.
– Stephen Hawking

 

Programcılar neden çok fazla kahve tüketiyor? Neden kahve içmeyi fetişleştiriyoruz ? 

Programcılar bazen aptalca şeyler yaparlar. Yaptığımız en aptalca şey gerçekten uzun saatler boyunca çalışmak. Kafein, uzun saatler boyunca en azından teorik olarak uyanık kalmamıza yardımcı olan bize göre çok yararlı bir ilaç.
Ve kafeini seviyoruz. Kafein uyarıcıdır ve beyinde yaratıcılığı teşvik eden daha kaolitik bağlantılar meydana getirir.
Bizi daha akıllı ve enerjik yapıyor. Bir sonraki IQ testimizde 200’e fırladığından tabii ki bahsetmiyorum ama kafein kan dolaşımı yardımıyla beyne gittiğinde Adenosin adı verilen inhibitör bir nörotransmitteri engellediği bilimsel olarak engellediği kanıtlanmıştır. Bu olduğunda dopamin ve norepinefrin gibi nörotransmitterlerin artması için yeterli alan oluşuyor. Bu da nöronların ateşlenmesini arttırıyor. Kafein; ruh halini, bilişsel işlevi, konsantrasyonu, reaksiyon sürelerini ve enerjiyi tetikleyen bir çok beyin fonksiyonunu iyileştiriyor.
Ayrıca kahveyi almaya gidip/gelme eylemi koridorda yürümek, kahveyi hazırlamak ve gidip gelme süresi olarak birkaç dakika sürse de bu kısa süre beynimizi problemden arındırır.
Ve evet hepimiz birer dönüştürücü gibi olduğumuzu sanıyoruz. Kahveyi koda dönüştüren birer converter olduğumuzu sanıyoruz ve bu hoşumuza gidiyor. Kahve içmek de bu şekilde bir fikre inanmak da.

 

Bilgisayar Dünyasını umursadığımız için gerçek dünyayı umursamıyoruz. 

Cidden lütfen bizi rahatsız etmeyi kes, sadece kes şunu. Umurumuzda değil, gerçekten siyaset, ekonomi ya da diğer gerçek dünya şeylerini bilerek ne kadar gurur duyduğunuz umurumda değil. Sanal dünyada yaşamayı ve soyut şeyleri seviyoruz.  
Bilgisayar bilimi konusunda boş olduğunuzu veya bilgisayar ile ilgili övündüğümüzde etkilenip/etkilenmediğinizi gerçekten umursamıyoruz.
Benzer şekilde kanlı siyaset, saçma mevki ve makamlar ve olaylardan da etkilenmiyoruz.
Bizi etkileyen kişi ve olaylar sizin asosyal, deli olarak sınıflandırdığınız bilgisayar başından kalkmayıp dünyanızı güzelleştirmeye çalışan ve asla yapılmamış olanı, imkansızı başaran programcı, girişim veya girişimciler.
Ve evet yapay zeka hakkındaki saçma düşüncelerinizi de umursamıyoruz.

 

Ve Sonunda Gerçek

Programlama göründüğünden çok daha zordur. Programlama sadece çift veya tek sayı programı yazmakla ilgili değildir, aynı zamanda gerçek dünyada uygulamalar ve yazılımlar oluşturmaktır. Bazen ” ben programcıyım ” dediklerinde insanlar oyun geliştiricisi vb. olarak spekülasyonlar üretmeye başlarlar. Oyun geliştirme bir şaka değil takım sürecidir.(grafiker, programcı, tester vs vs.) Kulağa kolay geliyor, ancak en basit bir oyunu bile oluşturmak gerçekten zordur. 

Fakat hiçbir şeyin imkansız olmadığı gibi bu da imkansız değildir. Çoğu insan nasıl programlama yapılacağı hakkında çok korkutulur. Ancak her şeyde olduğu gibi, bu görevi ne kadar çok uygularsanız ve tekrar yaparsanız o kadar kolaylaşır. 

Yazımı buraya kadar okuduğunuz teşekkür ederim. Programlama ve yazılımla ilgili aklınıza takılan ve sormak istediğiniz her konu için bana ulaşmaktan çekinmeyin.
Göreceksiniz ki size seve seve yardımcı olacağım.
Bana her zaman ulaşabilirsiniz.

Bilgisayar Mühendisliği – Yazılım Dünyasına ve Derine Dalmak” üzerine 5 yorum

  1. Uzun bi yazı ama sıkılmadan okudum. Seçtiğin bölümün içine sinmesine sevindim yaptığın işi sevmek en güzeli, yolun açık olsun…
    Başarılarını büyük bi keyifle izleyeceğim.

  2. Harika bir paylaşım olmuş. Umarım mesleğinde daha iyi yerlere gelirsin. Başarılarının devamını dilerim.

  3. İşin ciddiyetini ve verilen emeği anlatan güzel bir yazı olmuş. Başarıların daim, yolun açık olsun.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir