Bilgisayar Bilimcisi Olmak!

Bilgisayar bilimcisi olmak programlama bilmek demek değildir, bununla başlamak lazım. Bilgisayar bilimcisi olmak aslında algoritma çalışmaktır. Algoritma, bir şeyin tamamlanması ya da yapılması bir takım aşamalardan geçmesi işlemidir. Çoğu bilgisayar bilimcisi aslında programlamayı zaten bilmez.

Hayat boyu öğrenme
Bilgisayar bilimcisi olmak tamamen öğrenciliği öğrenmektir. Sadece kurs veya seminerle olacak iş değil, kariyeriniz boyunca sürekli öğrenmelisiniz. Teknolojiler sürekli değişiyor, yeni diller geliştiriliyor, farklı algoritmalar türetiliyor. Yeni her şeyi öğrenmeniz ve kendinizi güncel tutabilmeniz lazımdır.

Gelecekteki rolünüzü belirleyin
Bir bilgisayar bilimcisi olarak işiniz problemleri çözmektir. Bu problemleri çözerken de işin sonundaki herkesi mutlu etmektir. Bu, iyi kodlama bilmek kadar iyi iletişim becerilerinizin olması anlamına da gelir. Çünkü siz, müşterilerinizin her zaman ihtiyaç duyacağı ve onların ihtiyaçlarını giderebilecek bir kişisiniz eğer onları dinler ve anlamaya çalışırsanız. Aynı zamanda işler yapılırken müşteriyi gidişat hakkında bilgili tutmaktır.

Sözde Kod yazın
Sözde kod yani Pseudocode bir programlama dili değildir ama bir şeyin çalışma mantığını görselleştirmek için ideal bir yoldur. Mesela şampuan şişelerinin üzerinde genelde şöyle yazar: Köpürtün, durulayın, tekrar edin. Bu bir algoritmadır. Bu, sizin gibi biri tarafından yapılacak sonlu adım sayısından oluşan bir algoritmadır.

Sözde Kodu dürtükleyin
Şampuan kutusu örneği iki sebepten iyi bir algoritma örneği değildir. Birincisi algoritmayı bitirmek için bir durumun olmaması ve ikincisi neden tekrar ettiğini söylememesidir. Neyi tekrar edeyim? Sürekli köpürteyim mi veya sürekli durulayayım mı veya bu köpürt ve durula işlemini 100 kere mi yapmalıyım? İyi bir algoritma örneği şöyle olabilirdi: Köpürt, durula ve ilk adımı tekrar et. Daha iyi sonuçlar almak için 2 veya 3 kez tekrar et, sonrasında bitir. Bu, daha anlaşılırdır. Çünkü sonlu adımdan oluşan oldukça açık bir algoritmadır.

Her şey için algoritma yazmaya çalışın
Mesela kampüsteki bir binadan diğerine nasıl gidersin ya da güveç nasıl yapılır? Biraz deneme yaptıktan sonra algoritmaların her yerde olduklarını göreceksiniz.

Algoritma yazmayı öğrenince programlama size kolay gelir.
İ
nternetten bulabileceğiniz yardımları göz ardı etmeyin. Nesne tabanlı programlama dilleri, mesela Java ve C++, çok yaygındır ama prosedür için bunlar çok yaygın değildir. Eğer algoritmalarla az cebelleşmek isterseniz yeni başlayanlar için C ideal bir dildir. Çünkü dümdük yazarsınız, nesne mantığı yine kendi içindedir ama farklı terimlerle uğraşmamış olursunuz.

Programlama, sözde kodun tek tercümesidir.
Sözde kodu yazmaya ne kadar çok vakit harcarsanız gerçek tercümesini bir programlama dilinde yazmanız o kadar kolaydır. Bir programlama dilinde yazmanız için harcayacağınız süreyi azaltır ve acaba burayı nasıl yapsaydım diye düşünmezsiniz.

Random Access Machine kullanımı
Algoritmalar yazılıyor, yüzlerce, binlerce. Ancak onları kullanmak için dizaynına dikkat etmek ve olabildiğince az donanım ihtiyacı olmalı. Bu konuda başlangıç için en iyi kitap Steven Skiena’nın The Algorithm Design Manual kitabıdır.

Fonksiyonların davranışlarını kısıtlamayı öğrenin.
Fonksiyonların davranışlarını kısıtlamaktan kasıt büyük O gösterimidir. Büyük O Gösterimi konusunda İngilizce daha iyi kaynak bulabilirsiniz. Big-O-Notation diye aratmanız yeterlidir. Ne olduğundan bahsetmekte fayda var. Algoritmanızda bir takım işlemler yaptırıyorsunuz ancak hız konusunda son sözü söylemenizde size yardımcı olacak şey büyük o gösterimidir. O(n) veya O(n)^2 gibi gösterimler göreceksiniz. Unutmayın, algoritmanız ne kadar hızlı ve ne kadar az donanım ihtiyacıyla çalışırsa o kadar güçlüdür.

Ağır işlemci kullanımının size pahalıya patlayacağı yani algoritmanızın patlamasına sebep olacak durumları okuyun.
Bu tür durumlara nasıl karşı koyabileceğinizi düşünün ve araştırın. Çoğunlukla insanlar istedikleri şeyleri yapabilecekleri algoritmaları yazar ve istenmeyen durumlara karşı zaafları vardır, görmezler. Dikkatli davranın ve algoritmanızda istediğiniz gibi sonuçlanacak ve sonuçlanmayacak durumları belirtin. Yapılan araştırmalarda insanlar var olan şeyleri var olmayan şeylerden daha çabuk fark ederler, düşünün bakalım ne demek istedim.

Bilgisayar bilimcileri ne iş yapar?
Her işi yapabilirler ama her işi yapmazlar. Çünkü Dünya’nın nasıl yönetildiğine dair algoritmaları vardır ve bu algoritmaların her birini düzeltmeye isteseler de yetişemezler. Ancak teknoloji sektöründe bu insanlara oldukça ihtiyaç vardır. Misal benim hayattaki amaçlarımdan birisi yeni bir şey keşfetmek değildir, var olanları daha az kusursuz hâle getirmektir. Mesela bir devlet dairesine girdiğinizde sizi 100 farklı yere gönderir, bu bir dizayn hatasıdır. Başka bir örnek vermek gerekirse bir üyelik formunun içinde belki de hiç ihtiyaç olmayacak bilgilerin istenmesidir. Bilgisayar bilimcileri kullanıcı ve müşteri deneyimleri konusunda ister istemez bir süre sonra uzmanlık kazanırlar. Einstein ne güzel de demiş

“Her şey olabildiğince basit olmalıdır ama basitleştirilmemelidir.”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.