Programlama mantığı gerçekten basit mi?

Mucosoft

Megapat
Katılım
5 Mart 2014
Mesajlar
5.508
Makaleler
12
Çözümler
41
Önceden yazılım geliştirmenin bu kadar basit olmadığını düşünürdüm fakat bu alanda birçok yazılım geliştirince anladım ki aslında mantık oldukça basit. Yani aslında çok karmaşık bir sistem değil. İşlemcilerin bu kadar güçlü olmasının yani saniyede milyarlarca işlem yapmasının sebebi de bu.

Örneğin bir alan tarama sistemi yapacağız ve taradığımız alanın korumalı olup olmadığını anlamaya çalışacağız. Bunun için öncelikle tüm alanları taramak yani o alanın koordinatlarını keşfedene kadar alan isimlerini incelemek gerekiyor. Sonrasında koruma olup olmadığını öğrenebiliyoruz. Kısacası tek tek alanları tarayarak sonuca ulaşıyoruz. Mantığı bu kadar basit.

Kısacası yazılım geliştirmek bu kadar basit, önemli olan algoritma ve doğru mantıkta gitmek. Bazılarının aklına karmaşık problemler geliyor ama algoritmayı çözdükten sonra kod kısmı kolay.
 
Küçük işler hakkında konuşacaksak evet oldukça basit. Çünkü kuracağın algoritmada bir karmaşıklık olmayacak, matematikte de öyle değil mi zaten? Basit sorular vardır, zor sorular vardır. Sen basit sorulara bakıp matematik kolay diyebiliyor musun?

Büyük projelerde basitlik kavramı çok geçerli olmaz. Fazlasıyla karşılaşılacak buglar, bir yerinde sıkıntı çıkacak algoritmalar, iyi bir matematik isteyen formüller vb. birçok şey için işine girince ekrana bir çıktı verebilmek için aylarca uğraşabiliyorsun.

Eğer öyle olmasaydı zaten şu anda uzay çağına geçerdik. Günlük hayatta kullandığımız mobil app'lerin büyük firmalara ait olanları bile kaç ay uğraşılıp piyasaya sürülebiliyor. Kodu yazdım bitti olayı yok. O kodu yazdın ama bakalım kodda sorun var mı, kod gerekli işlemi kısa sürede yapabiliyor mu, kodda güvenlik açığı oluşturacak bir kısım var mı(ki en yakın örneğini YemekSepeti'nden görebiliyoruz) gibi bir çok soru sormak gerekiyor.

Kısacası yazılım geliştirmek bu kadar basit, önemli olan algoritma ve doğru mantıkta gitmek. Bazılarının aklına karmaşık problemler geliyor ama algoritmayı çözdükten sonra kod kısmı kolay.
Bu cümleni hiç anlamadım. "Yazılım geliştirmek" zaten algoritma ve mantıkla yapılıyor. Sen doğru mantığı ve algoritmayı kurduktan sonra gerisi kodu yazmak zaten. :D O yüzden terimleri karıştırıyorsun. Bu da sana yanlış fikirler veriyor.

Senin mantığın şuna benziyor: Roman yazmak için romanın içeriğini ve akışını belirlemek yeter. Bunu yaptıktan sonra herkes roman yazar zaten, önemli olan onları yapabilmekte. :)

Yani sana göre programlama değil, kod yazmak kolay. Çünkü programlamada sadece kod yazmıyorsun. 30 satır kodu yazmak için saatlerce algoritma kuruluyor bazen. Büyük projelerde çalışırsanız yakından deneyimlemiş olursunuz. :)
 
Küçük işler hakkında konuşacaksak evet oldukça basit. Çünkü kuracağın algoritmada bir karmaşıklık olmayacak, matematikte de öyle değil mi zaten? Basit sorular vardır, zor sorular vardır. Sen basit sorulara bakıp matematik kolay diyebiliyor musun?

Büyük projelerde basitlik kavramı çok geçerli olmaz. Fazlasıyla karşılaşılacak buglar, bir yerinde sıkıntı çıkacak algoritmalar, iyi bir matematik isteyen formüller vb. birçok şey için işine girince ekrana bir çıktı verebilmek için aylarca uğraşabiliyorsun.

Eğer öyle olmasaydı zaten şu anda uzay çağına geçerdik. Günlük hayatta kullandığımız mobil app'lerin büyük firmalara ait olanları bile kaç ay uğraşılıp piyasaya sürülebiliyor. Kodu yazdım bitti olayı yok. O kodu yazdın ama bakalım kodda sorun var mı, kod gerekli işlemi kısa sürede yapabiliyor mu, kodda güvenlik açığı oluşturacak bir kısım var mı(ki en yakın örneğini YemekSepeti'nden görebiliyoruz) gibi bir çok soru sormak gerekiyor.


Bu cümleni hiç anlamadım. "Yazılım geliştirmek" zaten algoritma ve mantıkla yapılıyor. Sen doğru mantığı ve algoritmayı kurduktan sonra gerisi kodu yazmak zaten. :D O yüzden terimleri karıştırıyorsun. Bu da sana yanlış fikirler veriyor.

Senin mantığın şuna benziyor: Roman yazmak için romanın içeriğini ve akışını belirlemek yeter. Bunu yaptıktan sonra herkes roman yazar zaten, önemli olan onları yapabilmekte. :)

Yani sana göre programlama değil, kod yazmak kolay. Çünkü programlamada sadece kod yazmıyorsun. 30 satır kodu yazmak için saatlerce algoritma kuruluyor bazen. Büyük projelerde çalışırsanız yakından deneyimlemiş olursunuz. :)
Uzun sürüyor diye karmaşık mı oluyor? Zor veya kolay diye bir şey yok. Uzun veya kısa iş var.
 
Uzun sürüyor diye karmaşık mı oluyor? Zor veya kolay diye bir şey yok. Uzun veya kısa iş var.
Koskoca yazıdan sadece bunu mu çıkartabildin?

Neyse çıkarım yaptığın yeri açıklayım. Uzun sürmesinin sebebi değişken olabilir. Genel olarak projenin uzun sürme amacı karmaşık algoritmalar kurulduğundan dolayı olur, kullandığın şey basic bir şey olmayacak çünkü. Milyonlarca insanın kullanacağı bir sistem yapıyorsun.

Zor veya kolay diye bir şey kesinlikle var. Bir hesap makinesi yapmak kolay bir işken bir otonom uçuş sistemi yapmak zor bir iştir. Mantıken zaten zor işler uzun, kolay işler kısa sürer.

Büyük projelerde çalışırsan ya da buralarda çalışan insanları dinlersen dediklerinin saçmalığını anlarsın zaten.
 
Uzun sürüyor diye karmaşık mı oluyor? Zor veya kolay diye bir şey yok. Uzun veya kısa iş var.

Zor ve kolay diye bir şey ne yazık ki var. 3 tane sorting algoritması yapıp geçince işler kolay geliyor demek değil olay. İşlemcilerin güçlü olması da değil olay. İşlemciler güçlü ama bunların da bir maliyet getirisi var.

Örneğin 1 milyar kişinin girdiği bir sitede işlemci güçlü kasmaya gerek yok diye bir şey söyleyemezsiniz. Yazılan her algoritmanın time complexity, space complexity gibi değerlerini hesaplamalı, daha iyisini yapmalısınız. Algoritma sandığınızdan çok çok daha derin. Programlamanın mantığı basit evet, bu tip maliyetlerin hesaplandığı büyük projelerde basit değil.
 
Elinizdeki problemi cozebilmek icin dogru dili, dogru mimariyi, dogru programlama paradigmasini ve dogru teknolojiyi secebilmek; okunabilir, hizli, guvenli ve scalable proje gelistirmek hic de kolay bir sey degildir. Bir projenin nonfunctional gereksinimlerini karsilayacak kismi uzerine bile bir suru kitap yazilir.


Basit bir probleme basit bir cozum uretince diger tum problemlerin basit cozumleri olabilecegi yanilgisina kapilmayin. Dunning-Kruger tehlikeli bir sendromdur.
 

Geri
Yukarı