Bilgisayar Mühendisliği

Başarılı / İyi Program Nasıl Olmalıdır?

Başarılı ve iyi program nasıl olmalıdır? Sizce bizi baştan çıkaran, bağımlılık yaratan programların buluştukları ortak bir payda, ortak özellikleri var mıdır?

Mesela sosyal medya bağımlılığı olgusunu sadece insanların dönem dönem duygusal boşlukta olmalarına bağlayalım? Yoksa sosyal medyanın çok başarılı ve iyi program özelliklerini taşıması ile alakası olabilir mi bunun?

Programlama öğrenmek isteyen veyahut öğrenen kişilerin mutlaka sorgulaması gereken bir konudur başarılı ve iyi program nitelikleri…

“İyi Program”da Olması Gereken Nitelikler

Evet, başarılı yazılımlarda, insanların çoğunu kendi içine çekmeyi başaran kimi ortak özellikler vardır. Gelin bunlara göz atalım:

Başarılı ve iyi program da bulunması gereken nitelikler
Başarılı ve iyi program da bulunması gereken nitelikler

1) Başarılı Bir Yazılım Sorunları Çözer (Vaad)

Her şeyden evvel sahip olması gereken nitelik budur. Adeta mihenk taşı niteliğindedir diyebiliriz.

Zira aman aman bir işe yaramayan bir yazılımı sırf tasarımı hoş diye kim ne yapsın ki?

Bu sebeple gündelik yaşamdan sorunları çözmeniz, en azından bir şeylerin yapılmasını daha kolay hale getirmeniz gerekir.

TechnoGezgin.com Soru
Pekala, gelin biraz saksıları çalıştıralım. Size bir soru. Bilgisayar veya akıllı telefonlardaki oyunlar neden deli gibi indiriliyor?

Görünüşte gündelik yaşamdan bir sorunu çözmüyor gibi görünseler de gerçek tam tersidir. Bu oyunlar insanların boş vakitlerini öldürmelerini sağlar.

Daha doğru bir ifade ile, kişiyi zor olandan (kendini geliştirmek) alı koyup, kolay olana (ekran başında boş boş gününü öldürmek) iteler.

Bu sebeple “başarılı ve iyi program”larda bulunması gereken ilk niteliği karşılamaktadırlar. İnsanlara oldukça cazip bir vaatleri bulunmaktadır.

Not: Fakat bunlara bağlanıp kalmanın hayatımızdaki başarıyı düşürdüğü gerçeğini de es geçmiyoruz tabii ki. Bu konuyu merak edenler teknoloji bağımlılığı ile yalnızlaşan mutsuz insanlar ve başarının sırrı konulu yazılarımıza göz atabilirler.

2) İyi Program Gereksiz Kodlar Barındırmaz

Bir özelliği defalarca kez, gerektiği her yerde tekrar tekrar tanımlamak saçma olur değil mi?

a) O programı yazan ellerimize yazık, gereksiz yere yoruluyorlar.
b) O kodları okuyan bilgisayara yazık, aynı işi tekrar tekrar yapıyorlar. (Evet, bilgisayarın ömründen yer bu durum)
c) Bilgisayar tekrarlar ile oyalanırken onu bekleyen ve psikolojik olarak gerilen kullanıcıya da yazık.
d) Yani herkese yazık 😀

Başarılı programlar gereksiz kodlar barındırmazlar
Başarılı programlar gereksiz kodlar barındırmazlar

Bunun yerine baştan fonksiyonu tanımlayıp, gerektiği yerlerde o fonksiyonu çağırmak ciddi bir şekilde sizi de, bilgisayarı da, program kullanıcısını da yükten kurtaracaktır.

TechnoGezgin.com Soru
Size bir soru daha. Koskoca Google, 9 milyon dosyada toplam 2 bilyon satır kod içeriyormuş. Dosya başı 222 satır kod eder bu da. Sizce yüzlerce sıralama kriteri içeren bir yazılım için az değil mi? Neden böyle sizce? (Kaynakça)

İşte Google 1. sırada olmasını buna borçludur. Olabildiğince az satır kodda, olabildiğince çok sayıda özelliği içerir. Bu sayede de hızlıdır, olabildiğince de alakalı (nokta atışı) sonuçları karşımıza çıkarmaya çalışır.

Google da nasılsa bir çeşit başarılı yazılım değil mi? Bunun en somut kanıtı ise şuan kullanıcıların neredeyse tamamı tarafından tercih ediliyor olmasıdır.

3) İyi Program Kullanıcı Odaklıdır

# İyi program para kazanma odaklı saniye başı açılan reklamlar içermez.

Biz size demiyoruz ki yaptığınız iyi program ve yazılımlar üzerinden para kazanmayın. Elbette kazanacaksınız, işiniz bu zira ama reklamlar, tanıtımlar, görseller arasında boğulan kullanıcı o programı tercih etmez.

Sonuçta yine zarara uğrayan taraf siz olursunuz, bizden uyarması. Tabi şu fotoğraftaki gibi ince düşünmeniz gereken noktalar da olacak:

İyi program ince düşünme ve bunu uygulama yeteneği gerektirir
İyi program ince düşünme ve bunu uygulama yeteneği gerektirir

Nasılsa gerek tasarımda, gerek (özellikle) kodlama esnasında her türlü durumu düşünmek zorundasınız. Ne siz, ne de kullanıcı hata almamalı. Bunun için bolca test yapmalısınız.

# Başarılı program göz yoran bir tasarım içermez. Başlıkta dediğimiz gibi kullanıcı odaklıdır. (User experience = UX tasarım)

Biz demiyoruz ki renkli, albenisi yüksek bir tasarım yapmayın. Elbette yapın, hatta öyle bir yapın ki akıllarda her daim kalıcı olsun.

5 hatta 10 yıl sonra insanlar eskiden yaptığınız tasarımı çağrıştıracak bir şeyi gördüğünde “Ha şöyle bir efsane program vardı eskiden, hatırlıyor musun birader” desinler.

Hafızalarda Kalmaya Güzel Bir Örnek

2000’li yılların başında, bilgisayarlar (daha doğrusu İnternet kafeler) yaygınlaşmaya başladığında ilk başlarda MSN sayesinde insanlar çok daha kolay iletişim kurar olmuşlardı.

Bugün sosyal medyada eski zamanlar çok güzeldi ya konulu gönderilerde MSN uygulamasından bu sebeple sürekli bahsedilir. Zira iyi program niteliklerinin çoğuna sahiptir:

-Hem bir sorunu çözmüştür,
-Hem kodlaması / tasarımı temizdir,
-Hem insanlarla duygusal bağ kurmuş ve bunun sonucunda hafızlara kazınmış ve hatırlanan bir efsane olmayı başarmıştır.

Tabi bunu başarmadan önce dökülen alın teri, verilen emek, gösterilen gayret ayrı bir konudur…

Programcıların en zor anları

# Başarılı programın kodlarına bakarsanız bolca açıklama metni görürsünüz. (Hani kodların arasında bu kod şunun için diye açıklamalar daha doğrusu hatırlatma metinleri olur ya, onlardan)

Zira programın yapımcısı ileride ortaya çıkan bir sorunu çözerken veya ekstra özellik eklerken hangi değişken ne içindi, başka türlü nereden hatırlayacak değil mi?

4) Eşsiz Tasarım ve Kodların Ritmik Dansı…

TechnoGezgin.com Soru
İyi program ve hafızlarda kalıcılık için sadece süper ötesi kodlama yeteneği veyahut eşsiz bir tasarım becerisi TEK BAŞINA yeterli midir?

# İyi program ne sadece frontend (tasarım) ne de sadece backend (kodlama) ile yapılır. İkisinin ritmik ahenkli uyumu esastır.

Tasarımı inceleyen insan ne gereksiz detaylar arasında boğulmalı, ne de “Bu da çok sade be canım” demeli.

Kişi istediğini fazla dolanmadan bulabilmeli ama aynı zamanda da bunu başarılı bulmalı.

İyi program iyi tasarım ve kodlama yeteneği gerektirir
İyi program iyi tasarım ve kodlama yeteneği gerektirir

İyi program ve yazılımda ise gereken kodlama niteliği ise şudur: işi en kısa yoldan en başarılı şekilde yapmalı.

Ayrıca yüz gülümseten ve “İyi ki bu ürünü tercih etmişim” dedirtecek cinsten özellik ve sürprizleri de olmalı.

5) Özgünlük ve Markalaşma Her Şeydir

Üniversitelerde bilgisayar mühendisliği veya yazılım mühendisliği bölümünde ilk öğretilen şeylerden birisidir bu.

Kod hırsızlığı yapmadan, tamamen özgün bir şekilde yapılan program iyi program niteliklerini taşır. Tabi bu demek değildir ki, kod hatası ayıklarken veya tıkandığınız yerde bir yardım almayacaksınız.

Hele hele çizginizi bozmadan, kaliteyi bırakın düşürmeyi, bırakın yerinde tutmayı, bir de yükseltirseniz, hele hele bir de markalaşıp bilinirliği arttırır iseniz orta vadede sizden kralı olmaz.

Tamam güzel diyorsun da bunlar beni kesmez, ben teori değil pratik adamıyım diyorsanız sizi doğrudan yazılım öğrenmek – programlama öğrenmek konulu yazımıza alalım.

Bu yazıda yazan başarılı program ve iyi program niteliklerini uygulamayı sakın unutmayın ha 🙂

Technogezgin.com Bilgi
Peki sizlerin ‘iyi programın özellikleri‘ konusunda diğer bildikleriniz veya önerileriniz var mı? Eklemek istediklerinizi yorumlar vasıtasıyla ekleyebilirsiniz.

Ayrıca sormak istediğiniz soruları ve (eğer varsa) yanlışları yorumlar aracılığıyla belirtebilirsiniz. Yazının bağlantısını da gönül rahatlığı ile paylaşarak bize büyük bir iyilik yapabilirsiniz.

Ana Sayfa: 
https://www.technogezgin.com/
Hayata Dair Özgün ve Kaliteli Yazılarımız: 
https://www.technogezgin.com/blog/

MrKaptainTR

Merhabalar. Ben bu internet sitesinin sahibiyim. Aynı zamanda Hacettepe Üniversitesi'nde bilgisayar mühendisliği okuyorum. Bu sitede de; ufkunuzu açacak, bilgi hazinenizi katlayacak, bakış açınızı adeta uçuracak, “Vay be, adamlar bunu da mı yapmış?” dedirtecek cinsten içerikler üretmeye çalışıyorum.

Bir cevap yazın

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

Başa dön tuşu
Kapalı