Bir bilgisayar programcısı nasıl düşünmeli? Bilgisayar programcısı gibi problem çözmeyi ister misiniz? Bu yazıda ortalama bir programcının nasıl düşünmesi gerektiğini ele alacağız.
Problem Çözme Nedir?
Problem çözmek bilgisayar biliminin temelidir. Programcı önce bir insanın bir problemi nasıl çözdüğünü anlamalıdır. Problemi anladıktan sonra, bilgisayarın çözebileceği bir algoritma dizisine dönüştürmelisiniz ve uygun bir sırayla yazıya dökmelisiniz.
Yüzeysel olarak bakıldığında basit görünse de bilimden daha çok bir sanat gibidir. Bir sanatçıyı iyi yapan şey kendi tarzı ve özgünlüğüdür. Bir programcı da kendi tarzını keşfetmeli ve o doğrultuda algoritmalar oluşturmalıdır.
Bilgisayar programlamak insana nasıl düşünmesi gerektiğini öğreten yollardan biridir. İyi bir bilgisayar programcısı da nasıl düşünmesi gerektiğini iyi bilmelidir. Profesyonel kariyerinizde perspektif alma, hikaye anlatma, röportaj yapma ve noktaları birleştirme gibi diğer önemli “meta beceriler” ile birlikte, bu beceriye hakim olmanız sizden beklenir.
Birçok işveren, yeni işe alımlar yaparken diğer becerilere kıyasla problem çözme ve belirli bir ölçüde temel kodlamaya öncelik verir. Problem çözme yeteneği işverenlerin aradığı en öncelikli yeterliliklerden birisidir. Büyük ve karmaşık sorunları çözebilme yeteneği, bir iş için gerekli olan teknik becerilerden daha kıymetlidir.
Peki, problem çözebilme becerinizi nasıl geliştirebilirsiniz? Bunun yollarından biri, bir bilgisayar programcısı gibi düşünmeyi öğrenmektir. Programcılar problem çözmede daha etkili olabilmek için deneme yanılma yolunu denerler. Deneme yanılma yöntemi problem çözmede giderek daha etkili olmanın yollarından bir tanesidir. Sağlam bir sistem geliştirmediği sürece çoğu insan aşağıdaki gibi bir yol izler:
- Bir çözüm bul.
- İşe yaramazsa başka bir tane dene.
- Bu da başarısız olursa, işe yarayan bir çözüm bulana kadar 2. adımı tekrarla.
Mantıklı bir yaklaşım gibi görünse de, bu yöntem hem zihinsel enerjiniz, hem de en önemlisi değerli ve yeri doldurulamayacak zamanınızı harcar. Bu problem çözmek için bir kaba kuvvet yöntemidir.
Usta programcılar bunu; yap, kontrol et ve harekete geçir stratejisiyle yaparlar.
- Bir sorunla başa çıkmak için bir yaklaşıma sahip olun.
- Uygulama yapın, hatalardan öğrenin, uzmanlaşana kadar inceleyin ve geliştirin.
Bu maddeler zamanınızın önemli bir miktarını alırken ustalaştığınız zaman çok daha kısa sürelerde çözüme ulaşabilirsiniz.
Problem çözme için bir sisteme sahip olmak ne anlama geliyor? Problem çözme sistemi, hepsi aynı anda bir arada bulunmasa da aşağıdaki ana bileşenleri içerir:
1. Elinizdeki Sorunu Tanımlayın
İlk adım, neyin sorulduğunu veya gerekli olduğunu anlamaya çalışmak olmalıdır. Peki, bunu nasıl yapabiliriz?
- Sorunu kavradığınızı gösteren bir gösterge hazırlamalısınız. Sorunu basit dille veya bir diyagramda açıklayabilirsiniz.
- Problemi düşünerek ve seslendirerek önceden kaçırmış olabileceğiniz kısımlarını hızlıca bulabilirsiniz. Bu, bir programcının dikkatle izlemesi gereken bir yoldur.
- Problemi bir yere not edebilirsiniz veya bir zihin haritası kullanarak başka birine açıklamaya da çalışabilirsiniz. Problemi bulmanızı kolaylaştıracak bir yöntemdir.
2. Bir Plan Yapın ve Problemi Küçük Parçalara Bölün
Bir sonraki adım, bir saldırı planıdır. Bir plan yapmadan asla bir şeye başlamayın. Daha büyük sorunları daha küçük, daha sindirilebilir parçalara ayırın ve bunlara çözümler üretmeye çalışın.
Genelde programcılar bu aşama geçilmedikçe koda başlamaz. Harcayacağınız zaman, çalışmanızın ilerleyen saatlerinde zamandan tasarruf etmenizi sağlayacaktır. Bir programcı bu şekil düşünmelidir.
Bu aşama, programcılar için bir bütün olarak çalışması gereken alt fonksiyonları geliştirmeleri gerektiğinden önemlidir. Bir yerde yaptığınız küçük bir hata tüm kodu etkileyebilir. Yaptığınız küçük bir hata başka hatalar da meydana getirir ve sonsuz bir döngü içine girebilirsiniz. Sorunu parçalara bölerek adım adım çözmeniz daha büyük hatalar yapmaktan sizi uzak tutacaktır.
3. Bir Problemi Çözmeden Pes Etmeyin
Peki, sorun çözülemediğinde ne yapmalısınız?
- Belirgin sorunları bulmak için yazılı çözümleri adım adım izleyerek bir hata ayıklama çalışması yapın.
- Yine başarısız olursanız bir adım geri gidip yeniden sorunları değerlendirin ve farklı bir bakış açısı bulmaya çalışın. Ayrıntılarda sıkışıp kalmak çok yaygındır fakat püf nokta büyük resmi görebilmektir.
- Her şey başarısız olursa en mantıklı yol en baştan başlamak olacaktır. Bazen yazdığınız Türkçe bir karakter bile bütün kodu mahvedebilir.
4. Bol Pratik Yapın
Bütün problemleri bir gecede çözmeyi bekleyemezsiniz. Ustalaşmak için bol pratik yapmalı, sürekli başarısız olmalı ve tekrar tekrar denemelisiniz. Sorun çözme deneyiminiz arttıkça hata ayıklama süreciniz daha hızlı bir hale gelecektir. Bunun için bol pratik yapmalısınız. En başarılı programcılar düzenli olarak mini problem çözme çalışmaları yapmaktadır.
Bu mini çalışmalar satranç, sudoku, bulmacalar veya bilgisayar oyunları olabilir. Bu çalışmalar bir sonraki adımı düşünmenizi ve yapabileceğiniz hatalardan uzak durmanızı sağlar.
Ve en önemlisi başarısızlıktan korkmamak. Eğer iyi bir programcı olmak istiyorsanız bol bol hata yapmalısınız. Başarılı olmak size kısa vadede değer katar ama bir programcıysanız hata yaparak düşünme yeteneğinizi geliştirirsiniz.
Bu yazımızda bir bilgisayar programcısı nasıl düşünmeli sorusuna yanıt vermeye çalıştık. Sizler de tavsiyelerinizi yorum kısmında paylaşabilirsiniz.