Somut Örneklerle Bilgisayar Mühendisi Öğrencisi Problemleri


Bilgisayar mühendisliği neden zor olsun, her şey internette var?
Sadece bilgisayarda oturularak yapılabilen bir meslek. Kebab değil mi?
Bilgisayarla çok ilgiliyim, forumlar akar. torrent falan. fm!! steam!!

Böyle düşünceleriniz varsa, ya da herhangi bir sebepten bilgisayar mühendisi okumanın nasıl bir şey olduğunu merak ediyorsanız, tadaaam, bu yazı sizin için.

Elimden geldiğince şeffaf olarak kendim ilk 3 senemde karşılaştığım zorlukları somut örneklerle yazdım ve herkese hitap edebilmesi için uğraştım.

Not: Yazıyı yazdıktan sonra farkettim ki net olarak belirtmem gereken bir şey var: aşağıda belirttiğim problemlere göğüs gerebilmek için bilgisayar mühendisliği okumayı (veya olmayı) sevmeniz gereken. Bilgisayar mühendisliği okumayı nasıl seveceğiniz merak ediyorsanız ben üç madde sıralayayım:

1- Hayalleriniz varsa. (Kendi websiteniz, kendi oyununuz, kendi app'iniz, kendi 3D animasyonunuz vs.) (Not: Hayalleriniz, hevesleriniz değil.)
2- Bir şeylerin nasıl çalıştığını okumaktan zevk alıyorsanız. (Zevk almıyorsanız mühendislik yazmayın zaten bir zahmet.)
3- Problem çözmeyi seviyorsanız.
Bunlardan en az biri varsa tamam, gönül rahatlığıyla yazabilirsniz.
Ben 1. için geldim fakat 2.'nin daha eğlenceli olduğunu gördüm. 2. sınıfta bilgisayarın nasıl çalıştığını sıfırdan öğreniyorsunuz ve 3. sınıftaki derslerle günümüze kadar geliyorsunuz. "Adamlar neler yapmış." diyorsunuz. Ders kitapları M.E.B'in hazırladığı sıkıcı ders kitapları gibi değil. Bazıları o kadar güzel hazırlanmış ki okurken o bilgisayar donanımı/yazılımını hazırlayanların anılarını yaşıyorsunuz adeta. Yeni bir teknolojiye ilişkin bir problem ortaya çıkıyor, onu çözmeye çabalıyorsunuz hadii yeni bir problem. Ders kitapları her şey aşamalar halinde çok güzel anlatıyor.
Ders kitaplarını sınav geçmek için sınavdan önce okumazsanız, gerçekten öğrenmek için okursanız gerçekten zevk alıyorsunuz. Fakat tabii bu her ders için geçerli değil. Tamamen proje yönetimi üzerine bir ders vardı, yararlıydı ama sıkıcıydı.
Problem çözmeyi sevmek size işyerinde her zaman zevk vermez, problem çözdüğünüz kadar amelelik de yaparsınız çünkü. Fakat büyük firmalar iyi problem çözenleri alır, iyi problem çözen kişiler ise bu iş için çok çalışmıştır.
Amerika'ya kapağı atmak bu maddelerin arasında değildir.

Not2: Üniversitedeki diğer problemleri içermez, sosyallik geçim sıkıntısı vs. bu yazıda yoktur. Sadece bilgisayar mühendisliği üzerine. Diğer sıkıntıları üzerine ekleyin.

1- Bilgisayar mı? Fizik mi?

Açık söyleyeyim ben bilgisayar mühendisliğine başlamadan önce bilgisayar mühendisliğini kolay sanıyordum. Bunun sebebi her şeyin internette hazır bir şekilde bulunması. Ki bu yanlış değil. Örneğin web sitesi hazırlayacaksınız, site filan tasarlamanıza, html css kodu yazmanıza gerek yok. Direkt internetten taslak indirin, içindeki "Buraya anasayfa ismini yazın." vs kısımlarını editleyin alın size site.

Di mi ama?

Yok malesef o kadar basit değil.

Evet hazır taslakla site yapılıyor gayet. Fakat siz o sitenin kodlarıyla biraz oynayıp kendi kafanıza uygun bir şeyler yazmak istiyorsanız kod yazmak zorundasınız. Ama sırf kod yazabilmek de yetmiyor, o kodların nasıl çalıştığını iyice bilip kavramış olmak gerekiyor ki hazır koda el attığınız yerde kod çökmesin.

Sizin bildiğiniz dilden anlatmak gerekirse:

Benim için Fizik en zor lise dersiydi. Çünkü dürüst olmak gerekirse çalışkanlık gerektiriyordu, ama gerçekten, anlayarak çalışma. Kimya'da formülleri yazıp geçtiğiniz konular var, biyoloji zaten ezber, matematiğin büyük bir kısmını çok çalışmadan biraz formüllerle biraz da sezgisel olarak yapabiliyorsunuz, geometri zekâyla birlikte çalışma da gerektiriyor fakat bu çalışma öyle soru üzerinde yarım saat analiz yaparak değil "demek ki bu soruda bunu görmem lazımdı" denerek, yani otomatiğe bağlanarak yapılıyor. Fakat Fizik öğle değil. Fizikte yapamadığınız bir soruyu bir dahaki sefere yapabilmeniz için soruda tasvir edilen mekanizma nasıl çalışıyor, cisimlerin birbirleriyle etkileşimi nasıl, bu etkileşimin nasıl olduğunu okuyup gerçekten anlamak, karşıdakine anlatabilecek kadar bilmek gerekiyor.

İşte bilgisayar mühendisliği de böyle.

Bizim okulda ilk sene haftalık "lab" adı verilen, 3 tane problem sorulan ve bunu 4 saatte çözmeniz istenen programlama seansları vardı. Orada sorulan, karşılaştığım ilk zor soru ekrana şunu yazdırmaktı:

   *
  **
 ***
  **
   *

E ne var bunda? Bizden bunu direkt olarak yazmamız istenmiyor, diyorlar ki biz bir sayı vereceğiz siz de o sayıya kadar birer birer artan yıldızlar çizeceksiniz sonra da birer birer azalacak. Özetle köşegeni bizim verdiğimiz uzunlukta olan bir baklava çizeceksiniz.

Meselenin özü yıldızlarla beraber programın bilgisayara yazdırdığı boşlukları saydırmaktı. Örneğin en uzun yıldız dizisinde boşluk yok, buna göre en kısa olanında boşlukları sayıp birer birer azaltarak boşlukları baştırıp boşluk dizisinin en sonunda da yıldızı kondurmak gerek. Şekile bakarsanız daha iyi anlayacaksınız:

o : boşluk

oo*
o**
***
o**
oo*

"o" harfi çok yer kapladığı için baklava bozuldu ama siz anladınız.

Bunu ben bana asistan labta anlattı da anca öyle yapabildim.

Bundan sonra eşşeklik edip "nasıl olsa kitap açık" diyip ilk vizeme böyle problemler çözmeden girdim, 60 alıp oturdum ki ortalama 55 idi.
Bu vizeden sonra bir 30-40 kişi kalmıştır (evet Bilkent'te finale girmeden dersten kalabiliyorsunuz. veya dersi bırakmıştır.)
Neden?

E çünkü adamlar programlama kullanarak en basit problemi çözemiyorlar da ondan. O sınavda sadece bir tane (20 puanlık) adamakıllı problem sorusu vardı ve ben onu yapamadığımdan düşük almıştım, adamlar "Monitöre "Merhaba" yazdır" tipi soruları bile yapamamışlar ki 30 almışlar sınavdan.

Bu sınavdan kalan bir arkadaşım vardı, bir dönem sonra "oleeey baklava çizebildim sonunda." diye seviniyordu.

?

Özetle aynı fizik çalışır gibi çalışmanız lazım arkadaşlar, çarkların nasıl işlediğini anlamalısınız.

Bilgisayar mühendisliği çalışmak bir yandan çok kolaydır: internette müthiş bir yardımlaşma ortamı vardır. Problemlerinizi google'da aratarak saniyesinde çözebilirsiniz. Çözemezseniz stackoverflow.com'a girip anlatırsınız ve birkaç saat içinde cevap gelir.
Dershaneye gitmeniz gerekmez yani.

Bir yandan da zordur. Size birisi gelip tüm kodunuza hataya bakıp sıkıntıyı anlatamaz çünkü 10000 satır kod yazmışsanız adam bunu baştan sona nasıl okusun? Sizin sıkıntıyı kendiniz bulmanız veya en azından hatalı parçayı bulup sormanız gerek. Kodlardaki hata ayıklama süreci de oldukça sıkıntılı bir iştir, kodu okuyarak sonucun ne olacağını bulamazsınız. Ya kodun her tarafını "Burada şu oldu" tarzı işaretlerle doldurursunuz (buna debugging diyoruz), ya elinize kağıt kalem alır nerede ne oluyor not edersiniz sonra internete kodu girip bir de orada kodu takip edersiniz (buna code trace diyoruz, kendiniz araştırmanızı öneririm). Kod takip etme sadece kısa ve belirli bir problem çözümüne yönelik programlama (daha doğrusu algoritma) lar için, yoksa 10000 satırlık kodu elinizle takip edemezsiniz tabii.

1 saatte şiir gibi yazdığınız kodun hatalarını 8 saatte tamamen ayıklamak gayet yaşayabileceğiniz bir şeydir malesef.

2- Sınavlardan kronik düşük alma problemi

Ne kadar çalışkan veya zeki olursanız olun sınavlardan kronik olarak düşük alabilirsiniz. Bilgisayar sınavları lise sınavlarından farklıdır. Soruyu yanlış okursanız gidiş yolunuza puan veremezler. Ama daha kötüsü vardır o da şudur; en ufak bir hata sorunuzun uf olmasına neden olabilir.

Bilkent'te CS201 diye bir ders vardır. Bu ders sınavlarının zorluğuyla nam salmıştır. Yorumlarını buradan okuyabilirsiniz: https://eksisozluk.com/cs201--498982

Ders de sınavlar da zor falan değildir. Fakat öğretmenler o kadar dar bir konuyu test etmektedirler ki o konuda yaptığınız hata konuyu bilmediğiniz anlamına gelmektedir ve 3 tane kodlama sorusu olan dolayısıyla bir sorunun 35 puan ettiği bir sınavda 15, 20 hatta 35 puanınız bir satırdaki hatanızdan gidebilir. Programın gerisi önemsizdir.

Siz kağıdınıza bakarsınız, "Bir satırda hata yapmışım hoca 35 puanımı kırmış insafsız." dersiniz, lâkinki öyle değildir. Eyyorlamam bu kadar.

Sınavlar bu tip hata affetmez olabilir. Bu da sizin hedeflerinize koyabilir. Kritik olan birkaç ders dışında önemsizdir,  derslerden kalmayın yeter.

3- Bu ödevin Allah belasını versin problemi

Sınavlardan daha bela bir şey varsa o da ödevlerdir, tabii kendiniz yaparsanız. Bir programlama ödevi aldığınızda genelde şu iki kötü senaryo yaşanır:
1- Ödevi nasıl yazmanız gerektiğini şıp diye anlarsınız, işe koyulursunuz, uzun bir uğraştan sonra ödevi çalıştırırsınız, çalışmaz. İşte en meşakkatli kısım olan "hata ayıklama" kısmı gelmiştir. Bu saatlerce sürebilir. Hatta günlerce. Ödevi bozuk verirseniz sizle beraber 200 kişinin daha ödevini okumakta olan asistan sizi sallamayıp direkt 0'ı basabilir. İyi ayıklamalar.
2- Ödevi nasıl yapmanız gerektiği üzerine hiçbir fikriniz yoktur. Biraz beyin fırtınasından sonra baktınız olmuyor, çakallık yapıp ödevi arkadaşlarınızdan, önceki dönemlerden veya internetten araklıyorsunuz. Geçer not alabilirsiniz ama bir şey öğrenemiyorsunuz.

Ben bir işime yaramayacağını düşündüğüm elektrik-elektronik bölümü dersinin ödevlerini dersi önceki dönem alan arkadaşımdan alıp günümüze uyarladım mesela. Bazı düşük puanlı ödevler üzerinde ise hiç uğraşmadım, bazılarında "0.01 puan için ne uğraşacam la" falan yazdım hatta. NUS'ta ise hep teknik dersler aldığım için kendim yaptım, ya da yapmaya kalkıştım. Bir tanesi oldukça uzundu, ödev iki kişilikti aslında ama partner bulmaya çabalamamıştım yarısını bitirdim zaten diye. Meğerse yarısını değil %10'unu bitirebilmişim anca, geri kalanını sabahlara kadar saatlerce yazdım, baktım bitmiyor, ertesi gün ödevin son teslim tarihine 8 saat kala Çinli bir arkadaşıma mesaj attım ödevine benim de ismimi yazar mısın diye, kibarlığından kabul etti. Bu da böyle bir anımdır.

4- Aşırı berbat proje grubu

Bütün özel üniversitelerdeki burslu elemanların ortak problemidir kötü grup problemi. Yanlış anlaşılma olmasın, tembelin burslu-burssuzu olmuyor fakat şu bir gerçek ki burssuzların arasında "Bilkent isim yapmıştır orada okuyalım bari." diye gelen hatırı sayılır kişi var.
Öyle ki geçen dönem proje grubumda mezuniyet senesinde olup Javada programlama yazmayı bilmeyen bir eleman vardı ki Java birinci sınıfta gösterilir Bilkent'te. Grupta iki kişi daha vardı, onlar da "Biz kendimize güvenemiyoruz." bahanesiyle hiçbir şey yapmamayı tercih ettiler. Ben proje gösteriminden önceki gün sabaha kadar kod yazdım, bu arada sabaha kadar da ses yaptığım için oda arkadaşımla kavga ettim, sonra proje gösterimine gittik. Hiçbiri hocanın sorularını adamakıllı cevaplayamadı. Ben aldım sazı elime anlattım her şeyi. Sonra hoca bizden grup arkadaşlarımızı puanlamamızı istedi. İyi ve kötü olmak arasında seçim yapmam gerekti. Uyumayı seçtim. Uyandığımda en iyisi adaletli olmak diyip herkes ne yaptıysa en ufak ayrıntısına kadar yazdım.

Hoca gruptakilerden birine o kadar düşük vermiş ki kız geldi bana çemkirdi bunu hak etmedim diye. Bir şey diyemedim. "Umarım aynısı başına gelir de ne çektiğimi anlarsın." dedi ve bir daha konuşmadık.

5- Aşırı iyi proje grubu

Kızın bedduası tuttu ya la.

Türkiye'de başınıza gelmez, ama aşırı iyi proje grubuna denk gelme ihtimaliniz de var. Okulun kapanmasına 7 hafta var ama aldığım Oyun Geliştirme dersindeki grubumun oyunun mekaniklerini bitirdi bile. Geriye süslemesi kaldı. Ben ise ceviz içini dolduracak kadar iş yaptım, onu da adamlara ayıp olmasın diye "Ne yapmamışlar şu ana kadar? Ya önemli olan her şeyi yapmışlar, ben şunu ekleyeyim bari." diye yaptım. Proje gösteriminin ilk aşaması geldi, hoca "Herkes iş yapıyor di mi? Beleşçilik olmasın grupta." dedi herkes kafa salladı. Sonra iş bölümü yaptılar bana gene iş kalmadı. Zar zor basit bir iş alabildim. Bu derste takım arkadaşlarını değerlendirme var mı bilmiyorum ama işler pek iyi gitmiyor. 7 kişilik grupta 3 exchange öğrencisiyiz ve adamlar exchange öğrencilerinin yaptığı işi pek sallamıyor gibi açıkçası, adamların yaptığı işin üzerine sonra bir daha yazanı var. Ne olacak halimiz bilmem. Bana hava hoş geliyor tabii çalışmam gereken boru gibi başka dersler var.

5 ve 6 hakkında söylemem belirtmem gereken bir şey var. Bilgisayar mühendisliğinin proje grupları diğer derslerdekine göre farklı. Hani grupça bir makale üzerine çalışıyorsanız, iş yapmayan adam hiçbir şey yapmaz, yapan ama baştan savma yapan adam ise çok kaliteli bir iş çıkarmasa bile elinizde verecek bir şey olur. Kodlamada böyle değil. "Biz elimizden geleni yaparız." diyen kişi gibi yetersizse ne kadar çalışırsa çalışsın bir şey yapamaz çünkü elinden gelen bir şey yoktur. Sıkıntı aslında buradadır. Bu kişiler derste öğrendiğinden fazlasına çalışmaz, hani bana bu görev verildi ben bunu çözmek için internete bakayım diye ekstra bir çaba sarfetmez, amaç bir an önce işi bitirmektir, onu da beceremez. Siz bu kişileri, liderlik yeteğiniz ne kadar iyi olursa olsun, işi adamakıllı yapmaya ikna edemezsiniz. Çünkü mutlaka bireysel çalışılması gereken dersler vardır ve onları bahane olarak gösterirler. "Ya sen bunu beceremiyorsun 1 sene sonra mezun olunca ne yapacaksın?" diyebilirsiniz anca, bu da oldukça kaba bir laftır. Sonuçta işler yine başa kalır.

6- Yetersizlik problemi

Bilgisayar mühendisliği koca bir deniz, çalışabileceğiniz bir çok alan var. İster raspberry pi alıp donanım çalışın, ister android geliştirin, ister websitesi kodlayın. Fakat malesef çalışmadığınız da bir sürü alan var. Bu kadar engin bir denizden tek balık çıkaramamış o kadar çok insan var ki.. Bunlardan biri de benim malesef. Bir sürü staj ilanı var ama adamlar stajerlerden istedikleri hiçbir gereğe uymuyorum, uyamıyorum. Zamanında "Ben doktoraya gidicem, sektör için öğrenmeye gerek yok." dedim, iyi halt yedim, Erasmus stajına gideceğim staj yeri bulamadığımdan gidemiyorum. Özetle patlak olmak bu bölümde başlıca bir sorun. Oturup çalışacaksınız, projeler yapacaksınız arkadaş. Bir an önce internetten tutorial izlemeye başlayın ki izlerken zevk alıyor musunuz sıkılıyor musunuz bi görün. Ben kısa bir süre websitesi geliştirme eğitimi aldım, üzerine koymadım ve şu an hiçbir websitesi geliştirme stajına başvuramıyorum doğal olarak.

7- Uzmanlaşma problemi

Bir de şu var; günümüz dünyasında her şeyden biraz bilgi sahibi olmak yetmiyor. Öyle antik Yunanistan'daki gibi veya Rönesans'taki gibi matematikçi, fizikçi, felsefeci, biyolog, zoolog, astronomist, gastronomist, tüpçü, çöpçü aynı anda olamıyorsunuz. Çalışacağınız bir çok konu var ama seçmeniz gereken tek bir konu var. Malesef kendinizi kısıtlamak zorundasınız. Modern dünya bunu gerektiriyor. Hobi olarak basit oyunlar yapıp basit siteler tasarlayabilirsiniz ama örneğin oyun sektörüne atılacaksınız, işiniz oyunlardaki dövüş animasyonlarını kodlamak gibi oldukça dar kapsamlı olabilir.

8- Aşırı teorik dersler problemi

Bu bir problem midir bilemem, ama bazı dersler aşırı teorik ve soyuttur. Öğrenci "Peki bu bilgiler gerçek hayatta ne işimize yarayacak?" diye sorar. Bunu engellemek için bu derslere proje koyarlar fakat derste öğrendiklerinizi projede nasıl uygulayacaksınız bir fikriniz olmayabilir de. Bu problemden çıkarmanızı istediğim sonuç üstteki iki problemle aynı, sizin oturup kendi kendinize bir şeylere çalışmanız gerekiyor, dersler size bir şey öğretmeyebiliyor.

Örnek: "Computer Networks" dersinde (bu çok iyi bir örnek olmadı gerçi, uygulaması da ağır basar bu dersin) internetin nasıl çalıştığını anlarsınız, basit server-client uygulamaları yazarsınız ama gerçekten internet üzerinden çalışman bir uygulamayla haşır neşir olacaksınız her şeyi hazır yapan, ama kullanımı tecrübe gerektiren aletlerle karşılaşırsınız. Bu spesifik örnek için okulda öğrendikleriniz mutlaka işe yarayacaktır, ama ne kadar yarayacaktır bilemem, lâkin başka derslerin hiçbir işe yaramadığı durumlar da olabilir. Örneğin ben doktorayı Doğal Dil İşleme üzerine yapmak istiyorum, bu derse ilişkin aldığım dersin programlama ödevlerini yapıyorum ama Doğal Dil İşleme üzerine staj yaptıran bir şirket göremediğim için hiçbir işime yaramıyor. Doğal Dil İşleme aslında bir araştırma konusu, profesörler yeni problemlere yepyeni çözümler sunuyor ve bu çözümleri şirketler hazır alıyor. Derste de bu tip bulunan şeyleri öğreniyoruz fakat çok temel şeyler dışında muhtemelen pratikte yaptığımız şey hazır yapılan kodları kullanmak oluyor, bazen kodun nasıl çalıştığını bile adamakıllı bilmek gerekmiyor. Örneğin; okulda hoca size nasıl bir kelimenin kökünü bulabileceğinizi anlatıyor ve bunu sınavda sorabiliyor fakat sizin bunu bilmenize gerek yok. Siz isim.kökal() diye hazır kod kullanıyoruz ve tak! kökü alıyorsunuz.

9- Acımasız hoca problemi
Bazı hocalar bahar şenliğine ödev koyarak, saatlerce sürecek ödevleri çok kısa bir zaman içine sıkıştırarak veya ödev bombardımanı yaparak sizi hayattan soğuturlar. Derste ortalama öğrenci puanına D verip sınıfın yarısının kalmasına yol açabilirler. Bunlar her mühendislikte vardır.

10 - Acımasız asistan problemi
Yukarıdakinin asistan modeli. Ama genelde quizleri ödevleri etkiler, çok önemli değildir.

11- Dinlenemeyecek kadar sıkıcı olan / anlatılan ders
Bazı derslerin özelliği size kritik bakış açısı kazandırmak, problemleri düşündürüp olası çözümleri göstermek değil, düpedüz bir şeyler ezberletmektir. Böyle bilgisayar dersleri bile vardır malesef. Bir de hocanın kötü sunumuyla katmerlenirse tek çözüm derse gitmemektir. Dolayısıyla kendi kendinize çalışmanız gerekir bol bol. Bizde ismi "Nesne Tabanlı Programlama" olan ama aslında "Program Yazma El Kılavuzu" tadında olan bir ders vardı. Derslere sadece ilk 2 hafta falan gittim, sonra baktım ders dinlenmiyor gitmeyi bıraktım ama kitabı düzenli okudum, bir yandan da dizi izledim hatta. Dersi de yüksek bir notla geçtim, derse gitmemenin hiç eksikliğini çekmedim.

12- "Bunlar yüzünden alanımıza yeteri kadar ilgili gösteremiyoz." dersleri
Bu da oldukça şikayet edilen bir durum. Bilkent ve diğer üniversiteler mühendislikte denklik için ABET kriterlerine uymak zorundadır ve bu ABET kriterleri "bunlar ne alaka ya?" dedirtecek bir sürü dersle uğraştırır öğrencileri. Gılgamış destanının okunduğu Medeniyet dersleri, Mühendislik etiği okutulan fakat çok sıkıcı ve ezbere dayalı olduğu için sevilmeyen Science, Technology and Society dersi, Tarih dersi ve Modern Biyoloji Bilkenttekilerden bazılarıdır. Bu tip dersler her okulda vardır ve ders sıkıcıysa veya öğrenci okumayı sevmeyen veya farklı daldan bilgileri merak etmeyen biriyse (ki bu ikisi aynı şey) ona tam bir işkence olarak gelir. Kendimden örnek vermek gerekirse, ben diğer öğrencilerin tersine sevdim bu tip dersleri, sadece Science, Technology and Society kötü anlatıldığı ve hocanın öğrencilere çok yüklendiği için sevmemiştim. Her gece dersten önce 20 sayfalık İngilizce makale okumam gerekiyordu (aslında genelde bundan fazlaydı, ben sadece ilk makaleyi okuyup hocaya "Bakın ben evde okuma yaptım." ayağı çekiyordum.) ki makaleleri anlaması zor olduğundan bu da oldukça zor bir işti.

13- Abstraction (Soyutluluk) problemi

1. problemin devamı niteliğinde olan bu problem "Çarkların nasıl işlediğini anlayın." önerisini "Çarkların nasıl işlediğini her zaman anlayamayabilirsiniz." şekline evriliyor. Aşırı kompleks bir sistemi anlamak her zaman kolay değil. Bunu şöyle özetleyeyim: aşure yapacaksanız. Nohutu, kuru kayısıyı, buğdayı hazırlayıp bir güzel kaynattınız, tabaklara döküp üzerine tarçın atıp servis ettiniz. Oh mis. Sonra başkası geldi, hazır aşure paketinden malzemeleri suya boşalttı. O kadar. Tarçın bile atmadı.

Şimdi gerçekten aşureyi kim yaptı?
Sizin yaptığınızı düşünüyorsanız bir daha düşünün çünkü başka nohutu önceden suda bıraktı, kayısıyı kendi kuruttu, hatta buğdayı kendi tarladan topladı!!
Bunun sonu yok arkadaşlar. Belli bir aşamadan sonra aşçı da bazı şeyleri bilmek zorunda değil. Aşure yapmak için buğdar yetiştirmeyi bilmeye gerek yok ki.

Kodlama da böyle. Program yazmak için işletim sistemi yazmayı bilmeye gerek yok veya 01001100'in ne anlama geldiğini. Her şeyi bilemeyiz.

Bu yüzden devreye soyutlama giriyor. Soyutlamayla kendinizi programlamanın belirli aşamalarından soyutluyorsunuz ve sadece size "bunu kullanabilirsin" olarak şeyleri kullanıyorsunuz ve bu kullanım sonucunda ortaya çıkan sonucun üreticinin anlattığıyla aynı olmasını bekliyorsunuz. Dikkat! Bu üretici takım arkadaşınız da olabilir. Oyun yazıyorsunuzdur, arkadaşınız çantayı ve içinin limitini kopyalar size ise "şu kodu kullanarak çantaya bir şeyler ekle, ötesine karışma." der, karışmazsınız.

Böylece tekrar her şeyde  uzmanlaşamayacağımızı ve arkadaşlığın önemini anlamış olduk.

14- "Lan ne uğraşacam ya?" problemi

Aslında meselenin özü. O kadar çok dile getireceksiniz ki bu sözü. İşleri gerçekten öğrenerek değil baştan savma yaparken, dönem sonu notun sadece %1 katkı yapan ödev için veya kendi kendinize projeler yaparken. İşte motivasyon bu yüzden önemli, hayali olan adamın kuracağı veya kurup da uyacağı bir yakarış değildir bu.

*

Yazı buraya kadardı. Bilgisayar mühendisliğiyle ilgili sorularınız olursa buraya sorabilirsiniz.




9 yorum

Peki diğer üniversitelerde hangi programlama dilleri öğretiliyor? Mesela üniversiteden önce programlama ile uğraşan bir kişinin avantajları yada dezavantajları neler olabilir? Yazıda bahsettiğiniz konulardan birçoğuyla ilgileniyorum örneğin raspberry pi için linux dağıtımı geliştiriyorum.Ama önümde aşmam gereken bir engel var (Ygs,Lys)

Reply

Başka üniversitelerde hangi programlama dili öğretildiği önemli değil çünkü biri öğrenince öbürlerini öğrenmek kolay. Ben java biliyorum, "python öğrenme" işiyle neredeyse hiç uğraşmadım, verilen ödevleri direkt yazdım, bilmediğim yerlerde yardım aldım.
Önceden bilgilerin seni sadece birinci sınıfta kurtarır, erasmusa gitmeni sağlar. Öbür senelerde hiçbir "internetten yazılım öğrenen" kişinin uğraşmayacağı, bilgisayar biliminin temelleri anlatılır.

Reply

Önceki yazılarından birinde ya derslere çalışıp notları yüksek tutarak akademisyenlik düşünmek ya da bol bol alıştırmak yaparak piyasaya hazırlanmak bu ikisi arasında seçim yapmanız lazım demiştin.Bu yazında da galiba sadece akademisyenlik düşünerek hata yaptığını yazmışsın.Ben tam olarak anlayamadım şimdi ne yapmak gerekiyor yani ?

Reply

Ozan güzel yakaladın, bu benim şu an içinde bulunduğum bir ikilem çünkü canım bir yandan tamamen doktoraya ve doktorada bulunduğum alana yönelik çalışma yapmak isterken bir yandan da yabancı ülkeye staja gidip bir şeyler başarmak ve tabii gezmek ve para kazanmak istiyor, ama ikisini aynı anda hakkını vererek yapabilmek zor, fakat imkansız değil. Sana gelince, akademisyenlik seçersen gidip de websitesi kodlamakta deneyim kazanmana veya android appi çıkarmana gerek yok, fakat yurtdışında staja ihtiyacın varsa gerek var çünkü adamlar kendilerine çok fazla fayda sağlamayacak adamın çalışma izniyle bilmemnesiyle niye uğraşsın değil mi?

Reply
Ercan Şahin mod

Staj için gereken özellikleri karşılayamıyorum dediğiniz yer ile alakalı bir sorum var. Tam olarak nerede arayacağımı bilmediğim için rica etsem örnek verebilir misiniz? Ne bileyim mesela genelde ne tarz özellikler istiyorlar?

Reply

Google'a computer science/engineering/programming/ it internship yazarsan çıkar. Genellikle önceki mesajımda yazdıklarımı istiyorlar, website kodlama, android appi geliştirme filan. Bunun dışında da bir sürü ilan var tabii ama çok "şirkete özel" olduğu için onlara düzgün bakmadan geçiyorum. Bilmemne şirketinin bilmemne programını iyi bilme tarzı ilanları memnun edebilmem mümkün değil çünkü, ama bir iki haftamı ayırıp çalışsam websitesi yapmayı öğrenebilirim gayet de, o yüzden bu tip ilanları önemsiyorum.

Reply

Ben Tobb Üniversitesi'ndeyim burada ilk sınıfta java öğretiliyor. İlerde C falan da devreye giriyor.

Reply

Sabancı bilgisayar mühendisliği hakkında bilgi alabilirmiyim nasıl bir bölüm eğitimi iyi mi ?

Reply

Bilmiyorum sabancıyı. Bizim okul iyi ama.

Reply

Yorum Gönder