Öğrenme gelişimi için algoritma [kapalı]


16

Bu oldukça genel bir soru. Biraz Perl ve Python biliyorum ve programlamayı daha derinlemesine öğrenmeye çalışıyorum, böylece asıldıktan sonra uygulamaları ve sonra web sitelerini geliştirmeye başlayabilirim.

Genel olarak öğrenme programlamasına yaklaşımımı tanımlayabilecek bir algoritma (adımlar dizisi :)) bilmek istiyorum. Perl / Python hakkında küçük sorular yayınladım ve herkesten büyük yardım aldım.

Not: - Öğrenmek için acelem yok. Zaman aldığını biliyorum ve bu iyi.

Lütfen geçerli olduğunu düşündüğünüz tüm önerileri belirtin. Ayrıca, lütfen Lisp, Haskell vb.


Öğrenmek istediğiniz belirli bir dil var mı? Perl ve python'dan bahsettiğinizi biliyorum, içine girmek istediğiniz şey bu mu?
Jason

Yani sorduğun şey tam olarak ne? Belirli bir dili öğrenme süreci? Kendini mi programlıyorsunuz? Ne kullanarak?
glenatron

Bence bu iyi bir soru. Biraz daha açık hale getirmek için düzenledim.
Gary Rowe

Yanıtlar:


28

Yeni bir programlama dili öğrenmek için 11 adım algoritması

Şu anda Lisp öğrenme sürecindeyim ve şu algoritmayı öneriyorum:

  1. Dilin öğrenmeye değer olup olmadığını ve iyi kaynakların nerede bulunabileceğini sorun. Dile olumlu yanıtlar uzmanlar tarafından verilirse 2. adıma geçin.
  2. İlk programlama ortamı oluşturun. Basit tutun: metin editörü ve derleyici / yorumlayıcı. Çıplak asgari. Zihniyet değişikliğine işaret etmek için makinenizde özel bir renk şemasına sahip belirli bir kullanıcı hesabını düşünün.
  3. "Merhaba, Dünya!" uygulama.
  4. Genel sözdizimi ve kontrol ifadelerini öğrenin (if-then-else, yineleme-kadar vb.). Basit kontrol durumlarını doğrulamak için sanal alan oluşturun (doğru / yanlış değerlendirmeler vb.). Her ilkel türü (int, double, string vb.) Deneyin. Para birimi hesaplamaları yapın. Sayı tahmin oyunu ( @Jeremy tarafından önerildiği gibi ) bunun için iyidir.
  5. Birkaç yöntem / işlevle sınıf (varsa) oluşturun. İşlevler arasında arama yapın. Denetim ifadelerini uygulayın.
  6. Dizileri ve koleksiyonları öğrenir. Kullanabileceğiniz sınıfların / işlevlerin / ilkellerin her birinin dizilerini ve koleksiyonlarını oluşturan uygun karmaşık örnekler oluşturun
  7. IO dosyasını öğrenin. İkili ve karakter tabanlı dosyaları okuma, değiştirme ve yazma örnekleri oluşturun.
  8. Dildeki deyimsel programlama hakkında daha fazla soru sorun (işaretçiler, makrolar, monadlar, kapaklar, destek çerçeveleri, yapı ortamları vb.).
  9. Önerilen deyimde çalışmak için IDE'nizi seçin (veya uyarlayın).
  10. Sizi (veya patronunuzu) memnun eden çeşitli uygulamalar yazın.
  11. 1 yıl sonra yeni öğrendiğiniz dile olan ilginizi korurken başka bir dil için 1. adıma dönün.

1
"Sayı tahmin" oyunu yazmak için harika bir ikinci program olarak bulduk. (4. adımda) Tamsayılar, booleans, metin giriş / çıkış, döngü ve koşullar hakkında bilgi edinmenizi sağlar.
Jeremy Heiler

@Jeremy İyi öneri, oraya koydum.
Gary Rowe

Merhaba Gary- detaylı talimatlar için teşekkürler ben python ile eşlemeye çalışacağız - adım adım açıklama bu yüzden bu forum zincirini seviyorum bu yüzden çok iyi adım ... @Jeremy evet ben varım :)
user9057

zihniyet değişimini işaret etmek için özel renk şeması , buna biraz ışık tutabilir misiniz?
Santosh Kumar

Lisp ile çalışırken daha koyu bir renk düzeni seçme eğilimindeyim ama Java için hafif bir renk düzeni kullanıyorum. Renk zihnimi değiştirmemi hatırlatıyor.
Gary Rowe


2

Öğrenmek istediğiniz her dil için L

  • Adım 1: ifadesinin sözdizimini öğrenin L.
  • Adım 2: LEn sevdiğiniz dilde bir derleyici yazın .
  • 3. Adım: En sevdiğiniz dil için bir derleyici yazın L
  • Adım 4: Büyük bir projeyi deyimsel olarak yazın L
  • Bonus: 2. Adımın sonucunun 4. Adımın sonucuyla uyumlu olduğundan emin olun.

Bu hemen hemen bunu kapsamalıdır, 10 yıl içinde bir ilerleme raporu ile bize geri dönün .

Eğer peşinde olduğunuz tek şey web geliştirme yapmayı öğreniyorsa ve zaten Perl ve Python'u biliyorsanız, hemen hemen bir başlangıç ​​için yeterli var. Ben Apache'nin (ve özellikle mod_perlve mod_python) ins ve çıkışlarını öğrenmeye başlayın , sonra pratik yapın. Belli dil kılavuzları yerine CGI programlama, ağ iletişimi ve benzerleri hakkında bir veya iki kitap alabilirsiniz.

Son bir not olarak, yeni başlayan biri olmak Lisp'i öğrenmemek için bir neden değildir. SICP ve video derslerine göz atın . Her ikisi de geliştirme veya bilgisayarlarla ilgili herhangi bir uzmanlık seviyesini kabul etmez. Aslında video derslerine giriş için

Sizi Bilgisayar Bilimi konulu bu kursa hoş geldiniz. Aslına bakarsanız, bu başlamak için korkunç bir yol. Bilgisayar bilimi bu iş için korkunç bir isim. Her şeyden önce, bu bir bilim değildir [“bilim” i keser]. Mühendislik olabilir ya da sanat olabilir. [...] Ayrıca bilgisayarlar hakkında da pek değil ["bilgisayar" ı geçiyor]. Ve aynı anlamda bilgisayarlarla ilgili değil, fiziğin gerçekten parçacık hızlandırıcılarla ilgili olmadığı. Ve biyoloji gerçekten mikroskoplar ve petri kapları ile ilgili değildir. -Hal Abelson


Kulağa eğlenceli geliyor. 10 yıl sonra görüşürüz!
Jeremy Heiler

Adım 2 için +1, L için bir derleyici yazın! Beyin ... acıyor ... çok ... çok ... şimdi.
Gary Rowe

-2

İki adım dışında çok şey söylemek istemiyorum.

  1. Veri Yapısını Öğrenin
  2. Algoritmaya Giriş

PS Programlama günlük işinizdir.


Programcılar üzerinde "çok şey söylemeniz" tavsiye edilir, utanmayın :) Tavsiyeler hakkında, kaynaklar, referanslar veya kendi deneyimlerinizden örnekler gibi bazı ayrıntılar verin.
Matthieu

-2

En iyi yol bir programlama dilinin temellerini / temellerini öğrenmek ve daha sonra bir şirkete küçük bir geliştirici (yüklenici) olarak katılmaktır. Bu, zamanınız için de öğrenmenin ve para kazanmanın en hızlı yolu olacaktır;)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.