

Merhaba,
Önce Bilgisayar Mühendisliği'ni neden okumak istediğin sorusunu kendine sormalısın! Yani ilk aşama karar. Eğer amacın Yazılım dışında başka alanlara da kaymaksa (Networking vb.) Bilgisayar Mühendisliğini rahatlıkla seçebilirsin. Değilse, yani illaki yazılımcı olacaksan Bilgisayar Mühendisliği dışında Yazılım Mühendisliği gibi bölümler de var, ki ben bu gibi bölümlerde yazılım odağını koruyacağından yazılım eğitimini daha iyi alacağını düşünüyorum.
Kararını verdikten sonra yapman gereken -ülkemiz eğitim sistemini biliyorsun- seçtiğin bölüm için çok çalışman. Bununla birlikte de yapacağın işin ucundan, ufak da olsa kendi kendine birşeyler öğrenmeye başlaman gerekiyor. Misal yazılımcı olacaksan oturup hemen kod yazmaya kalkmamalısın(ki emin olarak söylüyorum ben de dahil bir çok kişi böyle başladık, ancak yanlıştı). "Yazılım nedir, neden yazılımcıya ihtiyaç var, hangi diller yaygın kullanılıyor, nesne yönelim nedir, prosedürel programlama nedir" gibi soruları ve daha bunun gibi başka başka soruların cevaplarını araştırman, öğrenmen, bilmen gerekiyor. Çünkü belki de sonunda "ben bu yazılım meselesini sevmedim" diyeceksin, ya da çok seveceksin, ve bu öğrendiklerinde temel hazırlamış olacaksın.
İnternet maalesef günümüzde çok kirli, ki bu kirliliği günümüzde en iyi wikipedia gibi sitelerle aşabiliyoruz. Nitekim wikipedia gibi sitelerde de bir dolu düzgün bilgi kaynak gösterilerek İngilizce olarak saklanmakta. Dolayısıyla sana ilk tavsiyem ister yazılımcı ol, istersen de bilişim ile ilgili başka bir bölüm seç, yukarıda bahsini ettiğim şeyleri internet üzerinde sağlam kaynağı olan yerlerden araştırabilmek için İngilizce'yi iyi öğren. Sonra hem İngilizce'sini hem de Türkçe'sini araştırırsın, böylece daha çok ve pekişmiş bilgi edinirsin.(Hatta o konunun Türkçe kaynağı yoksa 5-10 sene ardından iyice piştikten sonra Türkçe'sini belki de sen yazarsın;)


Farklı bir bakış açısı sunmak istiyorum;
Yazılımcı ya da sistemci olmak istiyorsan C öğren, make nasıl kullanılır bil. Hatta mümkünse lise bitmeden &hede ne demek, int** ne demek, "void * ( * )(int)" nedir bil. Bunun sana şu avantajları olacak: C düşük seviye dil olduğundan C öğrenirsen kaçınılmaz şekilde bilgisayar neyi nasıl yapar, nerede neyi tutar öğrenmiş olacaksın. Yani bilgisayar mühendisliği okurken "ben zaten bunu C'den biliyorum" diyebileceksin. Başkalarının kendi yorumunu katarak yarım yamalak anlatması senin kafanı karıştırmayacak.
C kısıtlı ve ilkel bir dildir. Eline çok fazla veriyapısı, algoritma, işletim sisteminin ağ iletişimi ya da grafik fonksiyoları gibi şeyleri vermez. Dolayısıyla bağlı listeleri, hashleri, üçüncü parti kütüphaneleri programına eklemeyi hep kendin öğrenmen gerekir. Veriyapılarını ve temel bazı üçüncü parti kütüphaneleri kullanmayı öğrendiğinde sistemcilik için kaçınılmaz olan bash skriptlerinden tut yazılımcıların sıklıkla kullandığı yüksek seviye C#, Java gibi her türlü dilde başarılı olacaksın.
Yazılım kalitesi ve modelleme dersleri önemli değildir demiyorum yanlış anlama. Ama C temelin varsa bilgisayarın işleyişini ve yüksek seviye dillerin üzerine oturduğu temelleri kökten öğrenmiş olduğundan günün birinde sorunla karşılaştığında kafanı duvarlara vurmak yerine temel bilgilerinle akıl yürütebileceksin, gerçekten mühendislik yapabileceksin diyorum.


Programcıların yada mühendislerin 90% ı öğrenmenin en iyi öğrenmenin bir sorunu çözme aşamasında yada bir ihtiyacın giderilmesi aşamasında gerçekleştiğini söyler.Şu cümleleri çok duyarız
yada
Bir firmaya girmeden kurumsal ihtiyaçlara cevap veren işler yapamazsın .Programcıyı en çok motive eden şey yaptığı işin maddi yada manevi yarar sağlamasıdır ,kullanılması beğenilmesidir.Bunun için gereken şey ise yaptığın işin yazdığın kodun bir output unun yani çıkışının olması , birileri yazdığın koddan faydalandığında sen kendini geliştirmeye daha çok önem vereceksin.
Artık dünya değişiyor y jenerasyonu diye bir olgu var firmalar artık bu jenerasyonun talep ve hayalleri ile şekilleniyor 30 yaşından önce mevki sahibi olabiliyor gençler bunun da en büyük sebebi bu jenerasyonun programlama dili yada sahip oldukları bilgi ile yetinmeyip komple donanımlı olmayı arzulamaları.Steve Jobs bu tanımın nirvanası bir tasarımcı bir mucit bir girişimci ve bir programcı.Yurt dışında genelde işletme finans grafik gibi sektörlerden bilişime kanalize olan kişiler oluşturuyor tanımladığım grubu .Ama türkiyede diğer sektörlerin bilişime eğitim sürecinde sadece derslik olarak yakın olması kendini geliştirmeye meraklı kişilerin zaten mühendis olması ve sayısal bölümde olması bu grubun ülkemizde mühendislerin diğer gruba kanalize olmasını sağlamış yada gerektirmiş.Hala pekçok firmanın pazarlamacısı yada tasarımcısı en iyi programcıları.Herhangi bir bilgiye sırtını dönemezsin kullanmadıkların bile sana fayda sağlayacaktır.
5 yıl öncesinin baş tacı olan pek çok yazılım yada donanım hizmeti büyük firmaların verdiği hizmetler ile geçerliliğini kaybediyor exchange uzmanı yada dba olmak artık yetmiyor çünki google ve yerli pek çok telekomünikasyon firması cloud ve mail server hizmetleri ile bu ihtiyacı çok daha az maliyet ile firmalara sağlıyorlar.Firmaların verdiği bu hizmetlerin nasıl yönetileceğini artık Java ,php yazan orta katman diye tabir ettiğimiz kişiler tarafından yürütülebiliyor.
Bunlara istinaden seçimin şu şekilde olsun High level bir dil seç (tavsiyem Java) bu dil üzerine odaklan bir 6 ay kadar bu dil üzerinde çalış daha sonra androide geç işte burda yazdığın kod ürüne dönüşebilecek.
İş yönetimi konusunda iyi yönetici ,başarılı ve minumum hatalı analiz yapan analistlerin,bilişim sektöründe yer alan başarılı yatırımcı iş adamının programcılık geçmişi olan kişilerden olacağı aşikardır sen de bu yetkinliklere ne kadar erken ulaşırsan daha da ileriye gitmek için daha fazla zamanın kalmış olacak .
cevaplandı: 18 Oca '14, 07:12
abdurrahman