Kardan adamlar yaptım, hepsini kahramanım sandım. Avuçlarımda eridiler..

Bilgisayar Mühendisliği Üzerine – 2

Kategori: İçimden Geldi | 7 Eylül 2011 de Enes Turan tarafından yazılmıştır.Ayrıca 4.615 Kere okundu.

Daha önce yazdığım “Bilgisayar Mühendisliği Üzerine” başlıklı yazımdan sonra oldukça güzel geri dönüşler aldım. Okuyan, yorum yapan ve düşüncelerini ileten herkese ayrı ayrı teşekkür ederim. Bu yazım daha çok öğrenci arkadaşlarımıza yönelik olacak. Yazdıklarım yine benim şahsi görüşlerimdir ve ilk yazıdan sonra gelen sorulara verdiğim cevaplardan genel bir derlemedir.

——

Hangi dala yönelmeliyim?

En çok bu soruyu aldım 🙂 Haklısınızda, sizin için en önemli sorulardan biri bu. Diplomayı aldıktan sonra ne yapacaksınız, verdiğiniz emekler nasıl boşa gitmeyecek ve en önemlisi ne yaparsanız daha çok kazanırsınız? Tamamen duygusal yani, anlıyorum 🙂 Birkaç arkadaş kendilerince cevap bulmaya çalışmış, hocalarına soranlar olmuş vs ama kimse tatmin olmamış gördüğüm kadarı ile. Birde hiç takmayan bir kesim var ki onları ayrıca tebrik ediyorum, helal size aynen devam 🙂

Arkadaşlar öncelikle genel olarak Mühendislik bilimi üzerine konuşmamız gerekli. “Mühendisler ne yaparak para kazanır?” sorusunun cevabını vermeye çalışalım. Mühendislik öğretimi, ağırlıklı olarak “mesleki yeni bilgi” üzerinedir.  Mezun olduğunuzda elimizde 2 önemli değer olacaktır, ilki bilgilerimiz (ezber, tecrübe, araştırma vs) ve diğeri analitik düşünme yeteneğimiz. Mühendis denilen kişi, sahip olduğu bilgileri zekası ile harmanlayıp ortaya çıkardığı sonuçlarla para kazanır. Yani bilgisini satar. Hep birlikte tekrar edelim, “bilgisini satar” 🙂

Peki şimdi yeni mezun olan kişi ne biliyor, aslında hiç birşey. Okulda öğretilenler, sonradan öğreneceklerinizin %10’u kadar ya olur ya olmaz. Başka bir ifade ile anlatırsak, okulda geçen 4 yılda %10, iş hayatınızın ilk 4 yılında %90 öğrenirsiniz. Asıl öğrenmeye işe başladığınız zaman başlayacağınız için “hangi dala yönelelim” sorusunun cevabı otomatik olarak verilmiş olacaktır. İlk iş yeriniz veya iş yerlerinizde ne varsa O’nu öğrenirsiniz, O’cu olup çıkarsınız, olduda bitti maşallah yani 🙂 He sonradan yeni şeyler elbette gelir ama hep dönüp dolaşıp ilk göz ağrınıza geri dönersiniz.

Yukarıdaki paragraf yazar ne demek istemiştir?

A) Zaten yeni mezunsunuz, iş bulmak zor
B) Üstüne birde tecrübe olmadığı için kimse işe almıyor
C) İş bulayım yeter diyeceğiniz için pek çoğunuzun dal seçme şansı olacağını sanmıyorum
D) Ünide ben spesifik olarak ŞUcu olucam deyip Ocu olan daha görmedim
E) Okumaya devam 🙂

Amma velakin gelelim asıl can alıcı konuya!

Bana sormanız gereken konu “neyi öğrenmeliyim” olmalıydı arkadaşlar ancak bunu soran 100 kişiden sadece 2 kişi oldu 🙂

Bir projenin adam akıllı çalışması için çok şeye ihtiyaç var. En basiti web sayfası mı yapacaksınız? PHP, ASP vs birşey bilmek lazım, veritabanı lazım, javascript lazım, ajax mantığını bilmek lazım, yeri gelecek xml/json bilmek lazım, portal yapacaksanız performans problemlerini çözecek ciddi algoritmaları yazabilmek lazım ve en önemlisi neyi nasıl yapacağını bilmek lazım. Lazımda lazım yani. Bu yüzden aşağıdaki örneklere dikkat edin.

Benim gelecek adına kişisel görüşüm, online yazılımlar ve mobil uygulamaların sağlam bir şekilde revaçta olacağı yönündedir. Masaüstü uygulamalarına elveda diyeceğiz gibi. Ama bu tamamen kültürel bir olgu, aşağıda anlatacağım.

Mobil uygulamalara bence cidden önem verin arkadaşlar. Kısıtlı işlem gücü ve kısıtlı ram ile iş yapmayı öğrenin. Yaptığınız uygulamanın nasıl daha az güç tüketeceğini bilin. iPhone ve Android için yazılım geliştirmeye başlayın. Nedense Android bana daha sempatik geliyor bu konuda. Samsung’ta şimdi birşeyler yapmaya başlamış, hoş sonuçlar çıkabilir.

Online sistemler için ASP veya PHP öğrenin. ASP, Visual Studio ortamında olduğu için öğrenmesi ve uygulaması kolay gelebilir. Ancak sadece windows sunucularda çalışıyor, Linux’ta Mono eklentisi var elbette ama Windows’un tadını vermiyor. Ben bu konuda PHP taraftarıyım. Her işletim sisteminde çalışır, kaynak bol, kullanımı rahat, çok esnek hatta aşırı esnek. Tabi bu kesinlikle tercih meselesi. Ben PHP ile belki 300 bin satır kod yazdım ve şu an kendi framework uygulamamı yazmaya başladım, hayatımdan gayet memnunum. Web sistemlerinin olmazsa olması, javascriptler, ajax uygulamaları. Burada jQuery kütüphanesini tavsiye ederim. Süper şeyler yapabilirsiniz, sayfalarınız yanarlı dönerli olur müşteriler etkilenir, iyi olur 🙂

Veritabanı öğrenin tabiki, ne yaparsanız yapın veritabansız olmaz. MySQL, MSSQL veya Oracle. Benim düşüncem, MySQL ve Oracle öğrenin. MySQL’in genel syntax yapısını öğrendiğinizde biraz farklı olarak MSSQL kullanabilirsiniz. Ama uygulama kolaylığı açısından MySQL iyidir, beleştir, candır, kankadır 🙂 Büyük işler için Oracle lazım arkadaşlar, alternatif yok maalesef. Birde burada PL/Sql, T-Sql mevzuatları var. Misal PL/Sql kullanarak Oracle’a takla attırabilirsiniz. Standart SQL ile mümkün olmayan şeyleri PL/Sql ile yaptırabilirsiniz. Oracle kurup, standart SQL komutları ile birşeyler yapınca “ben oracle kullandım/biliyorum” demeyin, PL/Sql öğrenin 🙂 He yok ben o kadar büyüklerle uğraşmam ömrüm boyunca derseniz MySQL kafidir elbet.

Ajax ve RIA konusuna özellikle değinmen istiyorum. Baylar, bayanlar; RIA’nın ne olduğunu söylemicem, siz araştırın, açın google’ı “RIA nedir” diye aratın. Geleceğin en gelişmiş, en yaygın ve kullanışlı teknolojisi RIA olacaktır. RIA temelinde haberleşme protokollerine ihtiyaç duyar ve Ajax teknolojisini kullanır. Eğer bir kimse, RIA Framework’ler den en az birini adam akıllı biliyor ise ve Ajax mantığını çözmüş ise kolayca iş bulur, ürün geliştirir. Misal ZK Framework iyidir, java tabanlıdır. PHP ile giderim derseniz Sencha hoştur, el bebek gül bebek anlaşırsınız. Dilerseniz jQuery ile kendi RIA uygulamanızı yazın, ben öyle yapıyorum.

Yazdıklarımı tekrar edersek, mobil uygulamalar yükselişte, online uygulamalardan vazgeçilmez, veritabanı olmazsa dünya dönmez. Özetle benim gelecek görüşüm bu şekilde. Eğer web tabanlı çalışan bir firmada iş bulmak istiyorsanız, bu bahsettiğim konuların hepsine hakim olmanız gerekli.

Gelelim 4. konuya, güvenlik. Yukarıda anlattığım herşeyin temelinde güvenlik var, network alt yapıları var vs. Cisco kursları iyi bir seçim olabilir ama diğer bir konu yazılımdaki güvenlik açıkları. Bilmek ve iyi bir test uzmanı olmak gerek. Eyvah ben ne diyorum, “Bilgisayar Mühendisleri”ne Cisco kursuna gidin diyorum!? Aforoz edilmem umarım 🙂

Kültürel Konular

Anlattım anlattım ve anlattım. Bu kısım kendi işini yapmak isteyenlere; Arkadaşlar ürün geliştirmek ve para kazanmak için kültürel konulara önem vermek gerekli. Buyrun size tecrübe;

Ben turizm sektörüne yönelik yazılım geliştiriyorum. Seyahat acentelerinin IT işlerini yapıyoruz. 2006-2010 yılları arasında program web tabanlı idi, düşünsenize insanlar internetin ne olduğunu bilmezken biz web tabanlı otomasyon programı yazmıştık, ne büyük ileri görüşlülük 🙂  Ama ne oldu, olmadı 🙂 Müşterilere programı gösterirken explorer’ı açıp gösteriyordum ve bu durum 2 ana algı problemine sebep oldu;

  1. Explorer ile gösterince müşterilen bana “sen web sayfası yapıyorsun, bunu 300 tl’ye de yapıyorlar” diyorlardı. Çünkü onlar için bu ekran görüntüsü bir web sayfası idi, program değildi. Aksini anlatamıyordum, inanmıyorlardı.
  2. Diğer problem ise tüm muhasebe kayıtlarının onların kontrolü dışında başka bir yerde tutuluyor olması idi. Güvenlikten ziyade benim onların ne iş yaptığını, ne kadar ciro yaptığını görüyor olmamdan rahatsızdılar.

Bu iki ana problem yüzünden 2010 haziranda programı sıfırdan masaüstü uygulama olarak yazdık. Şimdi çok rahatız, artık yaptığımız iş web sitesi değil, program oldu 🙂 He ben aynı işi mi yapıyorum, evet; onların tüm muhasebesini hala görebiliyor muyum, tabiki evet 🙂

Bakın, ben PHP ile framework yazabilecek tecrübe ve bilgiye sahibim ama oturduk C# ile sıfırdan program yazdık. Çünkü algı problemini çözemedik. Hayat istemesemde bana C# öğretti. Yani şunu anlayın, gelecekte karşınıza ne gelir, ne çıkar bilemezsiniz. O yüzden şu an ne öğrenirseniz, ne bilirseniz kârdır ve gerekli olduğunda kullanmak için öğrenmekle vakit kaybetmesiniz.

Yabancı Dil Konusu

Yazıyı gözden geçirirken en önemli konuyu unuttuğumu farkettim. Arkadaşlar yukarıda RIA’nın ne olduğunu araştırın dediğimde google.com.tr’yi mi kullandınız, google.com’u mu? “RIA nedir” diye mi arattınız, “What is RIA”mı yazdınız? Can dostlarım, üzülerek söylüyorum ki eğer hayatınıza “RIA nedir” diyerek devam ediyorsanız, benim “RIA nedir diye aratın” yönlendirmeme kandıysanız olmaz arkadaşlar. İngilizceniz yok mu, o zaman sormayın kimseye hangi dala yöneleyim diye, gidin ilk önce bir ingilizce öğrenin. Yöneleceğiniz dal ingilizcedir, bu kadar. Gerçek diyorum, o kadar önemlidir. Ben şimdi size ZK framework’ü öğrenin diyorum, google.com.tr aradım ilk sayfada 1 sonuç çıktı. “Aramayı Türkçe dilinde yap” dedim, gelen sonuçlar arasında dökümantasyon yok. Noldu arkadaşlar, muhteşem bir teknolojiden  uzak kaldınız.

Adamlar dünyadan marsa, 78 milyon km öteye, sınırlı güç, sınırlı hacim ve hata kabul etmeyen bir süreçle robot gönderiyorlar. Robot kendi başına oraya kadar gidip atmosfere giriyor ve üstüne parçalanmadan yere iniyor. Sonra birde utanmadan koruyucu hazneden çıkıp etrafta araştırma yapıyor. Sizi paraşütle uçaktan atsak yarınız paraşütü açamayıp yere çakılır, öyle bişey bu. Atmosfer farklı, toz toprak var ve tek güç kaynağı güneş. Nasıl bir hesaptır ki adamlar 78 milyon km öteye nokta atışı yapabiliyorlar.

Şimdi gelelim sadede, adamlar bu teknolojiyi yapıp nasıl olduğunu anlatıyorlar, sen hala ingilizce bilmiyorsun, öğrenmemek için direniyorsun! Farkında mısın verdiğim örnek karşısında senin “ingilizce öğrenemiyorum ben” savunmanın ne kadar değersiz kaldığını? Arkadaşım, teknoloji ingilizce olarak yazılıyor! Ya git öğren şu mereti veya mühendis olma, vaktini boşa harcama.

Sonuç

En başta demiştik, “mühendis bilgisini satar”. Sonra gelecek ile ilgili birkaç öngörü söyledim, hepinizin bildiği şeylerdi zaten ve ardından zorunluluk üzerine bir örnek verdim. Arkadaşlar, eğri oturun doğru okuyun; Mezun olduğunuzda tecrübesizliğiniz ve bilgisizliğiniz yüzünden çoğunlukla iş seçecek durumda olmazsınız. 4-5 yıl iş tecrübeniz vardır, karakteriniz oturmuştur o zaman başka. Dersiniz ben 4 yıl C# ile uğraştım veya 5 yıl PHP tecrübem var, o zaman zaten o konu ile ilgilenenler havada kaparlar sizi. Ama ilk zamanlar için bildiğiniz ve yaptığınız herşey sizin faydanıza olacaktır. Tavsiyem; C# öğrenin, mobil teknolojilere veya online teknolojilere merak salın ve en azından temel SQL komutlarını öğrenin. Sonra gidin canınız neyi isterse o konuda uzman olun, misal PHP ile uğraşın, misal cep telefonu için oyun yazın. Yani herşeyden biraz ama birşeyden çok bilin 🙂 İngilizceyi asla ihmal etmeyin.

Geri kalanı keyfinize kalmış, sağlıcakla kalın.

 

Bilgisayar Mühendisi, Teknoarge Teknoloji Genel Müdürü ve bu sitenin medarı iftiharı :P Saygılar
EtiCanlar:

“Bilgisayar Mühendisliği Üzerine – 2” için 2 cevap

  1. TheMentor dedi ki:

    Önceki yazınızdan sonra ikincisini beklemiyordum aslında. Son derece bilgilendirici bir makale daha çıkarmışsınız, teşekkürler.

  2. ferhat dedi ki:

    çok güzel bir yazı olmuş. Sizi yürekten tebrik ediyorum.Yazılarınızın devamını bekliyoruz………

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*