Rehber Programlama Hakkında Temel Bilgiler

@byanigli Algoritma ve akış şeması arasında farklar var. Lütfen yanlış bilgilendirmeyin.
Algoritma demek, akış şeması demek değildir! Akış şeması, Algoritmanın daha şekilli (dikdörtgen, kare vb.) olarak yazıldığı, Algoritmanın görsel gösterimidir.

Algoritma; bir problemin sonlu adımdaki çözümüne denir ve bir problemin çözümünde, ilk düşündüğünüz yöntem sizin için teoridir. Eğer bu yöntemi doğru kabul ediyorsan, artık senin için lemma olur. Lemma'yı kanıtlarsan, bu algoritma olur. Yani kafamızdan yazdığımız her şey algoritma değildir. Proof by induction, proof by telescoping ... gibi matematiksel yöntemlerle ispatlanması gereklidir. Ayrıca, Algortima stratejileri vardır. Örnek vermek gereksirse, greedy (Aç gözlü yaklaşım), Divide & Conquer (Parçala Feth et), Dynamic Programming (Dinamik programlama) gibi. Dynamic programlama stratejisini ele alalım, En iyi karakteristik çözümü seçmelisin. 2 adım olarak, en iyi çözümü recursive( Kendi içinde kendisini çağırmak) tanımı yapmalısın. Öğrenci daha recursive bir fonksiyonun ne olduğunu bilmiyor. Nasıl algoritma ögreteceksin ki ?

Akış seması ise, bir sürecin grafiksel anlatım yöntemidir ve sadece yazılım için belirlenmiş değildir. Herhangi bir probleme ait çözüm kümesini anlatabilirsin. Eğer bir yazılımı betimlemek istiyorsan, UML diyagramları kullanılır. Yazılıma ait bir akış sürecinden bahsediyorsak activity diagram'ı kullanılır.
 
Programlama yapacakların C# kullanmasını tavsiye etmem. İnsanı rahata alıştırıyor. Resim çizer gibi uygulama geliştiriyorsun. Ben de bir süre ilgilendim. Kod yazma kısmına nadiren geçiyordum.
 
Selamlar, bu dönemde herkesin merakı olan ve kafasında birçok soru barındıran "programlama" hakkında bazı sorularınızı giderecek bir rehber hazırlayacağım.

Öncelikle bu rehberde hangi bilinmeyen soruları yok edeceğiz, bunlara bir göz atalım;
  • Programlama nedir?
  • Öğrenmeye hangi dilden başlamak gerekir?
  • Programlama için hangi kaynaklar yararlıdır?
Bu üç soru herkesin aklını karıştıran, ama aslında pek zor olmayan temel sorulardır.

1. Soru; Programlama nedir?
Programlama (Yazılımlama), en basit tanımıyla çeşitli kodlardan oluşan (bu kodlar dillere göre değişir) ve bilgisayarınıza komut veren, yönlendiren işlemlerdir.
Programlama için İngilizce çok önemlidir.
Peki bu kodları nasıl çalıştırıyoruz?
Bu yazılan kodlar örnek olarak bir derleyici aracılığıyla sistemde çalıştırılabilir. Derleyici, yazdığınız kodu kontrol eder, hata varsa nasıl düzeltip nasıl tekrar yazacağınız hakkında bilgi verir. Eğer hatasız bir kod yazmışsınız, yazdığınız program vs. sistemde direkt çalışır.
Programlamaya başlamak için kimseyi beklemeyin kendinizi hazır hissettiğiniz her an başlayın, programlamaya yavaş yavaş anlamaya başladığınızda zor olanın yazmak olduğunu değil, mantık kurmak olduğunu anlayacaksınız.

2. Soru; Öğrenmeye hangi dilden başlamak gerekir?

Bu sorunun cevabı sizi ne kadar zorlasa da aslında tek yapmanız gereken hangi alanda yazacağınıza karar vermektir. Eğer bir hobi olarak başlamak veya birkaç dil öğrenip, alıştıktan sonra kadar vermek isterseniz -ki benim tercihim de böyleydi- her şeyden önce yapmanız gereken Algoritma hakkında kafanızda soru işareti bırakmamak olmalı. Algoritmayı oturttuğunuz an, kodların işleme düzenini de sökmüş olursunuz. Algoritma ne işe yarar derseniz; örneğin en temel olarak yatağınızdan kalkıp su içeceksiniz, bunun için yapılması gereken işlemleri ayrıntısıyla ve sırasıyla kağıda dökün;
1- Yataktan kalk
2- Odadan çık
3- Mutfağa git
4- Bardak al
5- Sürahiden bardağa su dök
6- Bardak dolmadıysa 5. Adıma geri dön, dolduysa 7. Adıma geç
7- Suyu iç
Şeklinde örnek verebiliriz. 6. Adım dikkatinizi çekmiş olabilir, bunun nedeni şudur; eğer 6. Adımı yazmasaydık, 5. Adımda bilgisayar bunu anlamaz, ya bardağı taşırır ya da doldurmadan bırakırdı. Algoritmayı bir insana anlatmadığınızı, bir bilgisayara konut verdiğinizi düşünerek yazın. Bunun için kendinize örnekler hazırlayın.

Algoritma oturduktan sonra yazmaya başlamak için dil seçmeniz gerekecek, dediğim gibi eğer şu an bir amacınız yok ise, hangi alanda yazacağınıza karar vermediyseniz kolaydan başlayın.

Bunun için Python dilinden başlamanızı öneririm (bu sadece benim fikrim değildir, çok araştırdım, güvenebilirsiniz).
Python dili yeni başlayan ve hiçbir şey bilmeyenler için kolay ama çok etkili bir dildir. Bu dili kullanan birçok şirket vardır (Google, NASA vb.)

Daha sonra C dili dünyasına geçiş yapın, C# veya C++ öğrenmeye başlayın, artık kendi kodlarınız ile ve yaratıcılığınıza bağlı olarak küçük programlar, metinler, oyunlar yazmaya başlamaya hazır sayılırsınız.

3. Soru; Programlama için hangi kaynaklar yararlıdır?
Bu soru için pek çok yararlı kaynak var diyebiliriz. Bunları İnternet, Mobil, Videolu olarak ayırabiliriz.

Internetten öğrenmek istiyorsanız en yararlı kaynakları Açık Akademi, Çizgi Tagem, Khan Academy olarak verebilirim.

Mobil olarak eğer İngilizceniz varsa, ki olması önemli; SoloLearn uygulaması neredeyse tüm diller için öğrenme imkanı sunuyor ve gerçekten yararlı bir uygulama.

Ek olarak İngilizce'ye başlamaya karar verdiyseniz Duolingo uygulaması çok işinize yarayacaktır :)

Not: Unuttuğum, kaçırdığım yerler olabilir, mutlaka altta belirtin :)

İyi akşamlar, iyi Sosyaller :)

Bu ülkedeki herkes bilgisayar programlamayı öğrenmeli. Çünkü programlama size nasıl düşüneceginizi öğretir.
-Steve Jobs
Teşekkkürler.
Yazınız için bir sorum olacaktı.
Bu programlamanın algoritma mantıgının 'da altında byte 4 lü 1 ve 0 dillerinin 4 erli yazılışı 2 tabanından 10 tabanını acıklama yapılıyor.
Bunlar genellikle 1 orta akım, 0 düşük akım ifade ediyor.
Lakin bu ifadeler ki biz bu akımlara 1 ve 0 da demeyebilirdik asıl soru
Bu ikili tabanındaki ifadelerin byte lerce cogunluklarından nasıl anlamlı bir dil oluşuyor sorusuna dogru açıklayıcı bir cevap sunacak olursanız konuya kapsamlı bir açıklık getirmiş olursunuz?
 
Bahsettiğiniz şey RSA Algoritması. İşinize yarayacak bir yazı da burda, buyrun:
RSA Algoritması - Vikipedi
Daha basit soruyum yani şoyle söyleyeyim ben algoritmanın ne oldugunu degil işlevini de degil algoritmanın yapısı?
Yapısının oluşumu?
Anlamların oluşmasını.
Aynı insan gibi düşün ınsanın tanımını degil empriyodaki gecen sürede nasıl organizma haline geldigini soruyorum binevi yani organizmayı tetikleyen etmeni.
Örneğin programlama dilleri hebsinin ortak amacı 2'li tabanında byte'lerden anlamlı bütün oluşturma hangi programlama diline bakarsak bakalım.
Ama bunları bir bütünde incelersek yine hebsinin ortak amacı bu 'lardan anlamlı ifade oluşturma nasıl bu byte'lardan anlamlı ifade oluşuyor?
Asembly, java, C plus vs hebsinin ortak amacı aynı nasıl byte'lerce dosyadan anlamlı bütün oluşuyor.
Yani algoritmanın başlangıcındaki şunu yap diye tetikleyen etmen nedir örnegin Türkçe şunu yap desek Türkçe bilmeyen algılayamaz. Misal.
 
Son düzenleyen: Moderatör:
Şimdi öncelikle siz programlama dili sanmışsınız Algoritmayı, değil. Algoritma, programlama dillerine yol gösteren bir yöntem dizisidir.

Ben sizin sorunuzu hala tam olarak anlamış değilim. @Çavuş1

Algoritma, bir problemin çözümünde izlenecek yoldur. Çözümün adım adım yazılmasıyla oluşur, belli bir başlangıcı ve sonu vardır.
 
Şimdi öncelikle siz programlama dili sanmışsınız Algoritmayı, değil. Algoritma, programlama dillerine yol gösteren bir yöntem dizisidir.

Ben sizin sorunuzu hala tam olarak anlamış değilim. @Çavuş1
Algoritma, bir problemin çözümünde izlenecek yoldur. Çözümün adım adım yazılmasıyla oluşur, belli bir başlangıcı ve sonu vardır.
Biraz yanlış size anlamış veya anlatamamış olabilirim
Evet hayla aynı fikirdeyiz algoritma bir modelleme gibi algoritma mantıgıyla programlama gidilebiliyor.
Kısa ve öz olarak sorarsam byte 1 ve 0 düzeninde oluşum demi yada şöyle sorayım ilk program nasıl yapıldi ilk işletim sistemi fiziksel yöntemlerle ama nasıl asıl sorum bu cevapın devamında?
 
Son düzenleme:
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı