Yeni başlayanlara programlamayı öğretmenin en iyi yolları? [kapalı]


324

Orijinal Soru

Şu anda kardeşimi programlamayı öğretmekle meşgulüm. Tam bir acemi ama çok akıllı. (Ve aslında öğrenmek istiyor). Bazı oturumlarımızın ufak ayrıntılarla dolup taştığını fark ettim ve çok organize olduğumu hissetmiyorum. ( Ancak bu yazının cevapları çok yardımcı oldu. )

Ona etkili bir şekilde öğretmek için daha iyi ne yapabilirim? Konsepte göre kavram üzerinden geçmek için kullanabileceğim mantıklı bir düzen var mı? Daha sonraya kadar kaçınmam gereken karmaşıklıklar var mı?

Birlikte çalıştığımız dil Python , ancak herhangi bir dilde tavsiye edilir.


Yardım

İyi olanlarınız varsa lütfen cevabınıza aşağıdakileri ekleyin:

  • Başlangıç ​​Alıştırmaları ve Proje Fikirleri
  • Yeni başlayanlara öğretmek için kaynaklar
  • Ekran görüntüleri / blog yazıları / ücretsiz e-kitaplar
  • Yeni başlayanlar için iyi kitaplar yazdırın

Bakabilmem için lütfen kaynağı bir bağlantıyla açıklayın . Herkesin bu fikirlerden bazılarını kesinlikle kullandığımı bilmesini istiyorum. Gönderileriniz bu yayında toplanacak.


Yeni başlayanlara öğretmek için Çevrimiçi Kaynaklar :


Yeni başlayanlara öğretmek için tavsiye edilen basılı kitaplar


Bunun neden kapatılması gerektiğini anlamıyorum. En az 295 kullanıcı bu soruyu (ve 92 cevabı) oy vermek için yeterince yardımcı buldular, 290 ise favorilerinden biri olarak değerlendirdi. Soru, öğretim kaynaklarının çok yararlı bir şekilde toplanmasıyla sonuçlandı. Gerçekten 'argümanlar' ya da 'tartışmalar' ile sonuçlanmadı, ama programlamadaki zor 'insan faktörlerinden' nasıl ele alınacağına dair gerçekten çok fazla tavsiyede bulundu. Bunun gibi bir soruyu kapatmak acımasız ve StackOverflow topluluğu için zararlı olduğunu düşünüyorum.
Justin Standard

@JustinStandard Düzenlemelerinizi yorumlara verilen yanıtların birkaçına dönüştürmeyi düşündünüz mü? Örneğin, burada , burada ve burada
Jason Plank

Yanıtlar:


118

Birkaç yeni başlayan (asla kod yazmamış) programcılar ile çalışmak zorunda kaldım ve bu sonbaharda lise öğrencileri ile okul sonrası bir atölye çalışması yapacağım. Belgelere en yakın şey bu. Hala devam eden bir çalışma, ama umarım yardımcı olur.

1) FizzBuzz. Komut satırı programlarıyla başlayın. Bazı eğlenceli oyunları veya araçları çok hızlı bir şekilde yazabilir ve önce GUI araçlarını öğrenmek zorunda kalmadan tüm dil özelliklerini çok hızlı bir şekilde öğrenebilirsiniz. Bu erken uygulamalar, onları çalıştırmak için gerçek hata ayıklama araçlarını kullanmanız gerekmeyecek kadar basit olmalıdır.

Eğer başka bir şey yoksa FizzBuzz gibi şeyler iyi projelerdir. İlk birkaç uygulamanız DB'ler, dosya sistemi, yapılandırma vb. Bunlar çoğu insanı şaşırtan kavramlardır ve sadece sözdizimi ve temel çerçeve özelliklerini öğrenirken daha fazla karmaşıklığa ihtiyacınız yoktur.

Bazı projeler:

  • Selam Dünya!
  • Doğum yılımı alın ve yaşımı hesaplayın (sadece (şimdi - o zaman) ay düzeltmesi yok). (basit matematik, girdi, çıktı)
  • Bir yön isteyin (Yukarı, aşağı, sol, sağ), sonra kullanıcıya kaderlerini söyleyin (bir deliğe düşün, bir kek bulun, vb.). (Boole mantığı)
  • FizzBuzz, ancak saniyede bir sayılır. (Döngüler, zamanlayıcılar ve daha fazla mantık)
  • Yaşlarına bağlı olarak bazıları, kullanıcıları belirli aralıklarla rastgele hakaret olarak adlandıran bir uygulama gibi. (Aralığı rasgele yaparsanız döngüler, diziler, zamanlayıcılar ve rastgele)

2) Basit Proje Dil özelliklerini iyi kavradıktan sonra, bir projeye başlayabilirsiniz (basit, eğlenceli oyunlar iyi çalışır.). İlk projenin 6-12 saat içinde tamamlanmasını sağlamaya çalışmalısınız. Erken mimarlık yapmak için zaman harcamayın. Berbat olsa bile tasarlamasına izin verin. Eğer parçalanırsa, ne olduğu ve neden başarısız olduğu hakkında konuşun, sonra başka bir konu seçin ve tekrar başlayın.

Burası, araçlarınızın hata ayıklama özelliklerini tanıtmaya başladığınız yerdir. Kodu okuyarak sorunu görebiliyor olsanız bile, onlara araçları nasıl kullanacaklarını öğretmeli ve sonra nasıl görebileceğinizi göstermelisiniz. Bu, hata ayıklama araçlarını öğretmenin ve araç olmadan hataları nasıl tanımlayacağınızı öğretmenin iki amacına hizmet eder.

Bir kez veya proje işlevsel hale gelirse, yeniden düzenleme araçlarını tanıtmak için kullanabilirsiniz. Daha sonra hiç planlanmadığınız bazı basit özelliklerle projeyi genişletebilirseniz iyi olur. Bu genellikle yeniden düzenleme ve önemli hata ayıklama anlamına gelir, çünkü çok az insan ilk kez yarım iyi kod bile yazar.

Bazı projeler:

  • Adam asmaca oyunu
  • Robotik ile deneme ( Vex ve Mindstorms seçeneklerdir)

3) Gerçek Proje Biraz zaman alabilecek gerçek bir proje başlatın. Uygun kaynak kontrolünü kullanın ve bir programa dikkat edin. Bu projeyi gerçek bir proje gibi çalıştırın, başka hiçbir şey araçlarıyla uğraşmak zorunda değil.

Açıkçası bunu her insan için ayarlamanız gerekiyor. Bulduğum en önemli şey, ilk basit uygulamaların bile kişinin ilgilendiği şeylere uygulanmasını sağlamak.

Bazı projeler:

  • Tetris
  • Metin dosyası tabanlı blog motoru
  • Daha ileri robotik işleri

Bu harika bir rehber. Şahsen, bir kağıt torbadan çıkış yolumu kodlayamıyorum (birisinin bunu gerçek hayatta yaptığını görmek istiyorum), bu yüzden bu da kendime öğretmek için iyi bir rehber gibi görünüyor.
keyofnight

Bu çok iyi bir cevap. Tek itirazım Tetris'in birinci veya ikinci maç için iyi bir seçim olmaması. Bu seviyede, çarpışma tespiti zor bir sorun olabilir - çözebilmeleri harika.
phkahler

@phkahler Demek istediğim, ama Tetris'in ilginç olduğuna inanıyorum çünkü kodunuzu yazmadan önce ve sonra analiz edebileceğiniz çok sayıda OSS / demo uygulaması var.
Eric Haskins

30

Alice'i kullanmayı deneyebilirsin . Tanıtım amaçlı programlama sınıflarında kullanılmak üzere tasarlanmış bir 3D programdır.

Yeni programcılar için en büyük iki engel genellikle:

  • sözdizimi hataları
  • motivasyon (tartışmalı olmak yerine anlamlı ve eğlenceli bir şey yazmak)

Alice, sözdizimi hataları olasılığını ortadan kaldırarak programları oluşturmak için bir sürükle ve bırak arayüzü kullanır. Alice, 3D dünyalar oluşturmanıza ve kod kontrol (basit) 3D karakterlerinize ve animasyonunuza sahip olmanıza izin verir, bu da genellikle bağlantılı listeler uygulamaktan çok daha ilginçtir.

Deneyimli programcılar Alice'e bir oyuncak olarak bakabilir ve kod satırlarını sürükleyip bırakarak inceleyebilir, ancak araştırmalar bu yaklaşımın işe yaradığını göstermektedir.

Feragatname: Alice üzerinde çalıştım.


Bunu Randy Pausch'un son dersiyle tanımaya başladım. Bu projenin ardındaki akıl aklımı aldı.
Jesvin Jose

28

Temel kavramları indirmek için Logo'yu (kaplumbağa olarak da bilinir) öneririm. Anında grafik geri bildirimi ile iyi bir sanal alan sağlar ve döngüler, değişkenler, işlevler, şartlar, vb. Gösterebilirsiniz. Bu sayfa mükemmel bir öğretici sağlar.

Logodan sonra Python veya Ruby'ye gidin. Programlamayı öğretmek amacıyla icat edilen ABC'ye dayalı olduğu için Python'u tavsiye ederim.

Programlamayı öğretirken, EHaskins'in basit projeler ve daha sonra karmaşık projeler önerisini ikinci olarak almalıyım. Öğrenmenin en iyi yolu kesin bir sonuç ve ölçülebilir bir kilometre taşı ile başlamaktır. Dersleri odaklanmış tutar, öğrencinin beceri geliştirmesini ve daha sonra bu becerileri geliştirmesini sağlar ve öğrenciye arkadaşlarına göstereceği bir şey verir. Kişinin işi için gösterecek bir şeye sahip olma gücünü hafife almayın.

Teorik olarak, Python neredeyse her şeyi yapabildiği için Python ile yapışabilirsiniz. Nesneye yönelik programlama ve (çoğu) algoritmaları öğretmek için iyi bir araçtır. Nasıl çalıştığını anlamak için Python'u komut satırı gibi etkileşimli modda çalıştırabilir veya tüm komut dosyalarını bir kerede çalıştırabilirsiniz. Anında yorumlanmış komut dosyalarınızı çalıştırabilir veya ikili dosyalara derleyebilirsiniz. İşlevselliği genişletmek için binlerce modül vardır. Windows'la birlikte verilen gibi bir grafik hesap makinesi yapabilir veya bir IRC istemcisi veya başka bir şey yapabilirsiniz.

XKCD , Python'un gücünü biraz daha iyi anlatıyor: "Uçuyorsun! Nasıl?"  "Python!"

Bundan sonra C # veya Java'ya geçebilirsiniz, ancak Python'un zaten sahip olmadığı çok şey sunmazlar. Bunların yararı, çoğu (en çok söylemeye cesaret edeceğim?) Dillerin kullandığı C tarzı sözdizimini kullanmalarıdır. Henüz bellek yönetimi hakkında endişelenmenize gerek yok, ancak dil yorumlayıcısından biraz daha fazla özgürlüğe ve daha az tutmaya alışabilirsiniz. Python, çoğu zaman güzel olan ama her zaman değil, boşluk ve girintiyi zorlar. C # ve Java, güçlü yazarken kendi boşluk alanınızı yönetmenizi sağlar.

Oradan standart C veya C ++ 'dır. Bu dillerdeki özgürlük neredeyse varoluşsaldır. Artık kendi bellek yönetiminizden siz sorumlusunuz. Size yardım edecek çöp toplama yok. Burası gerçekten gelişmiş algoritmaları (mergesort ve quicksort gibi) öğrettiğiniz yerdir. Burası "segmentasyon hatası" nın neden lanet bir kelime olduğunu öğrendiğiniz yerdir. Linux çekirdeğinin kaynak kodunu indirdiğiniz ve Abyss'e baktığınız yer burasıdır. Dairesel bir arabellek ve dize işleme için bir yığın yazarak başlayın. Sonra yolunuza devam edin.


Aslında, C'deki hafızayı tam olarak yönetmezsiniz. Malloc, vb.'ye sahip olursunuz ve sizin için ücretsiz olarak yönetirsiniz. Daha fazla bellek istediğinizde ve kullandığınız bellekle işiniz bittiğinde sisteme söylemeniz yeterlidir.
compman


12

Python paketi VPython - Sıradan Ölümlü 3D Programlama ( video eğitimi ).

Kod örneği:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

VPython top zıplatma http://vpython.org/bounce.gif


Temel kavramları öğrendikten hemen sonra iyi olur. Görsel oluşturmak insanları programlamayı öğrenmeye motive etmenin harika bir yoludur.
phkahler

12

Python'daki Kaplumbağa grafikleriyle başlayın.

Python ile standart olarak gelen kaplumbağa grafiklerini kullanırdım. Görsel, basit ve sözdizimine çok fazla girmeden önce yineleme ve prosedür çağrıları gibi birçok programlama kavramını tanıtmak için bu ortamı kullanabilirsiniz. Python'da şu etkileşimli oturumu düşünün:

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

Son iki ödevi gerçekleştirmeye çalışırken, birçok başarısız denemeye sahip olacaklar, ancak başarısızlıklar görsel olarak ilginç olacak ve neden beklediklerini çizmediğini anlamaya çalıştıklarında hızlı bir şekilde öğrenecekler.



11

Önemli olan, söz konusu kişinin çözmek istedikleri bir problemi olması gerektiğidir. Yazmak istediğiniz bir programınız yoksa (ve "Bir sonraki Quake'i yazmak istiyorum!" Değil, mantıklı ve iyi tanımlanmış bir programınız yoksa) programlamayı öğrenemezsiniz, çünkü sizi motive edecek hiçbir şeyiniz yok . Yani, bir kitap okuyabilir ve bir dilin sözdizimi ve anlambilimi hakkında kabaca bir anlayışa sahip olabilirsiniz, ancak yazılı olmasını istediğiniz bir program olana kadar ısırgan otunu asla kavrayamazsınız.

Bu itici güç varsa, o zaman diğer her şey sadece küçük detaylardır.


Herhangi bir teknik konuyu öğrenmenin en iyi yolu, sanırım, küçük, artımlı problemleri çözmeyi öğrenmek.
cbednarski





4

Eğer ilgileniyorsa, küçük detaylar iyi parçalar değil mi? Python kullanarak, GUI'yi zaten kesmişsinizdir, böylece karışıklık gider. Neden bir proje, bir oyun veya başka bir şey seçip uygulamıyorsunuz? Klasik hi-lo sayı tahmin oyunu sadece 20-30 kod satırında komut satırından uygulanabilir (tabii ki dile bağlı olarak) ve size değişkenler, koşullar, döngüler ve kullanıcı girişi verir.



4

Sadece tonlarca kod yazmasına izin verirdim. Yaptığınız her şeyi yapmasına izin verin ve sadece soruları cevaplamak için hazır olun.

İster inanın ister inanmayın, birkaç ay boyunca tonlarca boktan kod yazdıktan sonra, fikri almaya ve daha iyi programlar yazmaya başlayacaktır. Bu noktada, ayrıntılarda (bellek vb.) Bataklığa düşebilir ve genel tasarım ilkeleri hakkında konuşabilirsiniz.

Büyük sanatçıları vasat olanlardan ayıran şeyin, ne kadar küçük olursa olsun, her pratik yaptıklarında bir şey üzerinde geliştikleri olduğunu duydum. Kardeşinizin pratik yapmasına izin verin, her klavyede oturduğunda iyileşir.

Düzenleme: [Justin Standard]

Esteban, bu son hatırlatıyor kodlama korku yazı ve ben do doğru olduğunu düşünüyorum. Ama ben onun pratiğine rehberlik edecek yöntemler bulmanın hala faydalı olduğunu düşünüyorum . Soru yok, nasıl yapacağını bildiği kadar kod yazmasını istiyorum. Bu yüzden örnek projeler istiyorum.


Evet, Justin hakkında hangi yazıyı söylediğini biliyorum. Bunu okumak bana öğrendiğim şeylerin çoğunun kendi hatalarımdan denemekten ve öğrenmekten nasıl geldiğini hatırlattı. Yaparak öğrenmenin önemini gerçekten vurgulayamıyorum!
Esteban Araya

2

Her şeyden önce, herkesin yaptığı gibi başlayın: bir Hello World programıyla. Çok basit ve onlara bir programın düzeni için temel bir his veriyor. İlk programladığınız zamanı ve bazı kavramların ne kadar zor olduğunu hatırlamaya çalışın - basit başlayın.

Merhaba Dünya'dan sonra, bazı temel değişkenler, aritmetik ve ardından boole mantığı ve if / else ifadeleri oluşturmaya devam edin. Eski programlama ders kitaplarınızdan birine sahipseniz, ilk örneklerden bazılarına göz atın ve bunları bunlardan geçirin. Sadece bir kerede çok fazla tanıtmaya çalışmayın, ya da ezici ve kafa karıştırıcı olacaktır.


2

Kardeşinize programlamayı öğretirken çok dikkat etmeniz gereken bir şey, onun size çok fazla güvenmemesidir. Çoğu zaman kendimi başkalarına yardım ederken bulduğumda beni tüm sorularının cevap defteri olarak düşünmeye başlayacaklar ve bir cevap bulmayı denemek yerine sadece bana soruyorlar. Genellikle en iyi öğretmen denemedir ve kardeşinizin her zaman "Bir dizeye 2 eklersem ne olur?" denemesini ve kendisi için görmesini söylemelisin. Ayrıca, birisine bir konsept alamadığım zaman, her bir segmente ayrı ayrı bakıp parça parça açıklayabileceğimiz bazı örnek kodları görmeye yardımcı olduğunu fark ettim. Bir yan not olarak, programlamaya yeni giren insanlar genellikle nesne yönelimli programlama fikri ile sorun yaşıyorlar,


2

Programlamayı öğretiyordum ve erkek kardeşinin öğrenmek istediği çoğu öğrencime göre bir avantajı var :)

C ile gitmeye karar verirseniz, bir arkadaşınızın eski nesiller tarafından kullanılan programların temel yazım türleri olarak hatırladığı programlara sahip bir sitesi vardır. Daha karmaşık olanları, bir tür öğretim yardımı olarak kullanımlarını bir nevi olumsuz yönde etkileyen ncurses kullanır, ancak bazıları küçük küçük şeylerdir ve size öğretilmeden yükleri öğrenebilirsiniz.

Şahsen bence Python ve Ruby harika ilk dilleri yapacaklardı.

EDIT: bir gecede ortaya çıkan başlangıç ​​programlama atamalarının listesi tam aradığınız şey olabilir.


2

Gerçekten kardeşinizin öğrenme stiline bağlı. Birçok insan ellerini kirleterek ve sadece içine girerek, kavramları ve büyük resmi ilerledikçe ve bilgilerini geliştirirken kristalleştirerek daha hızlı öğrenir.

Ben, büyük resimle başlamayı ve nit-cesurluğa inmeyi tercih ediyorum. Bilmek istediğim ilk şey, hepsinin nasıl oraya, sonra o Nesne yönelimli gobbledygook'a, sonra sınıflar ve örnekler ve benzeri şeylere nasıl uyduğu idi. Sözdizimini öğrenmeden önce temel kavramları ve biraz teoriyi bilmek hoşuma gidiyor. Biraz avantajım oldu çünkü 20 yıl önce BASIC'te bazı oyunlar yazdım ama o zamandan beri çok fazla bir şey yoktu.

Belki de genel bir misyon bildirimi, sonra bir plan ve / veya akış şeması ile başlayıp daha sonra kodu gerçekten yazmadan önce bazı sözde kodlara (sonuçta kullanacağınız sözdizimine yaslanarak) başlayarak bir üretim sürecini gölgelemek yararlı olabilir.

Buradaki altın kural, öğrencinizin eğik stilini batırmaktır.


2

Kardeşinizin iTunes'a erişimi varsa, Richard Buckland tarafından New South Wales Üniversitesi'nde verilen bir bilgisayar bilimi dersinin video derslerini indirebilir. İlgi çekici bir eğitmen ve bilgisayar ve C dilinin temellerini ele alıyor. Başka bir şey yoksa, kardeşinize arka planda vids oynamasını söyleyin ve bazı kavramlar ozmoz yoluyla batabilir. :)

COMP1917 Yüksek Bilgi İşlem - 2008 1. Oturum http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

Bağlantı çalışmazsa, işte bir yol:

Anasayfa -> iTunes U -> Mühendislik -> COMP1917 Yüksek Bilgi İşlem - 2008 1. Oturum


2

Python öğrenmek için oldukça iyi bir wikibook var .

Wikibooks'un diğer diller için nasıl olduğunu bilmiyorum, ama kişisel olarak wikibook'tan Şubat 2007'de olduğu gibi python öğrendim

ps - wikibooks'u bilmiyorsanız , temel olarak kitap yazarlığının wikipedia sürümüdür. tarif etmesi biraz zor, ama eğer oradaki birkaç kitaba bakarsanız, nasıl çalıştığını göreceksiniz



2

Bence Python harika bir fikir. Ona kendi başına yapmak için birkaç temel görev verirdim ve ona vuracağı çıkmazların muhtemelen google'a yapılan bir yolculukla çözülebileceğini söylerdim. En azından benim için, bir sorunu kendi başıma çözmek her zaman bana çözümü söyleyen birinden daha iyi yapışmasını sağladı.

Bazı olası projeler (belirli bir sırayla):

  • Yazı tura simülatörü. Kullanıcının bozuk para çevirme için istenen sayıda deneme girmesine izin verin. Yürütün ve sonuçları kafa veya kuyruk yüzdesi ile birlikte görüntüleyin.

  • Kullanıcının ne tür bir dönüşüm yapmak istediğini seçmek için kullanıcı girişini alan bir menü ile sıcaklık dönüştürücü yapın. Dönüştürmeyi seçip yaptıktan sonra ana menüye dönmelidir.

    Aynı fikri içeren genişletilmiş bir dönüştürücü örneği: http://pastebin.org/6541

  • Sayısal bir giriş alan ve çevireceği harf notunu görüntüleyen bir program yapın. Sonuçta, uygun yer bulmak için if ve elif ifadelerine göre girdiyi değerlendirir.

  • Çoktan seçmeli basit bir sınav yapın veya boş soruları doldurun. Sonunda kullanıcının nasıl yaptığını gösterecektir. İstediği soruları seçebilir.

  • Bazı (muhtemelen büyük) sayıda peni alın ve daha büyük mezheplere dönüştürün. Örneğin, 149 peni = 1 dolar, 1 çeyrek, 2 dim ve 4 peni.

  • Basit bir liste yöneticisi oluşturun. Liste ekleyebilir / silebilir ve bu listelere giriş ekleyebilir / silebilirsiniz. İşte bir Noel listesi yöneticisi örneği: http://pastebin.org/6543

  • Oluşturulacak bir program oluşturun ve ardından girilen sayıların sihirli bir kare oluşturup oluşturmadığını test edin (2B diziyle). İşte bazı örnek kod, ancak kullanıcının kareyi buliding açısından nerede olduğunu göstermek için her adımda kareyi gerçekten yazdırmalıdır: http://pastebin.org/6544

Ayrıca xTurtle veya başka bir grafik modülü ile bazı şeyleri karıştırmayı ve sıkıcı olmamasını öneriyorum. Tabii ki, bu çok fazla uygulama programlama ve bir çok insanın gerçekten python kullanacağı komut dosyası değil, ama verdiğim örnekler python ile öğrenirken çok doğrudan alındı ​​ve benim için harika çalıştı. İyi şanslar!



2

Kardeşin bulmacaları seviyorsa, Python Challenge'ı tavsiye ederim . Bire bir öğreticide resmi bir öğretim aracı olarak kullanmazdım, ama kendinize meydan okumak ve eğlenmek için birlikte olmadığınızda yapabileceği bir şey.



2

Birkaç ücretsiz e-kitaptan geçtikten sonra, programlamayı öğrenmek için en iyi kitabı O'Reily Press tarafından yayınlanan Head First Programming olarak buldum. Dil olarak Python'u kullanır ve en başından itibaren üzerinde çalışmanız için programlar sunar. Hepsi 'Merhaba Dünya'dan daha ilginç. Üzerinde harcadığım paraya değer ve biraz dışarı çıktığı için Ebay veya Amazon'da daha ucuz kullanılmış bir kopya bulabilirsiniz.


1

Programlamanın temellerini, dile özgü olmadan öğretmek istiyorsanız , MIT'de oluşturulan Scratch adlı bir uygulama var . İnsanların programlama becerilerini geliştirmelerine yardımcı olmak için tasarlanmıştır. Kullanıcılar Scratch projeleri oluştururken, koşullar, döngüler, vb. Oluşturmayı öğrenirler. Ayrıca, hangi projelerin indirilebileceğini oluşturan bir çizik projeler topluluğu da vardır - bu şekilde diğer insanların programlarını keşfedebilir ve nasıl inşa edildiğini görebilirsiniz.


1

Bir kez temelleri (değişkenler, döngüler, vb.) Aşağıya geldiğinde, ilgilendiği belirli bir şeyi bulmasına ve bunu gerçekleştirmesi için gerekenleri öğrenmesine yardımcı olmanız gerektiğini düşünüyorum. Beni ilgilendirirse bir şey yapmaya daha meyilli ve motive olduğumu biliyorum. Ayrıca, bazı zor sorunlara rağmen mücadele etmesine izin verdiğinizden emin olun, hiçbir şey bunu kendi başınıza anladığınız andan daha tatmin edici değildir.


1

Akış şemaları ve PDL (Program Tasarım Dili) kullanarak sorunları agnostik bir dilde çözmeyi öğrenerek bana öğretildi . Bundan birkaç hafta sonra yazdığım PDL'yi bir dile dönüştürmeyi öğrendim. Bu şekilde öğrendiğime sevindim, çünkü yılların çoğunu bir dile bağlı kalmadan problem çözerek programlama yaparak geçirdim. Hangi dili kullandığım tasarımın bir parçası değil, her zaman bir uygulama detayı olmuştur.

Sorunu temel adımlara ayırarak çözmek zorunda kalmak temel bir beceridir. Bence programlayabilenleri yapamayanlardan ayıran şeylerden biri.

Bir dilin kavramlarının sırasını nasıl ele aldığınıza gelince, bunun en kolay yolunun bir projeyi akılda tutmaya ve kavramları gerektiği gibi ele almaya karar vereceğine inanıyorum. Bu, yapmak istediğiniz bir şeye ihtiyaç duydukları için bunları uygulamanızı sağlar. Bir dil öğrenirken, akılda birkaç basit projeye ve ilerleyen karmaşıklığa sahip birkaç projeye sahip olmak iyidir. Bunlara karar vermek, gerekli kavramları ve sıralarını haritalamanıza yardımcı olacaktır.


1

Bazı ekran görüntülemelerini de izlemenizi öneririm - genellikle bir dil değil, belirli bir teknoloji bağlamında oluşturulur, ancak görüntülenen Python kodu varsa, bunu yaparsınız :). Mesele şu ki, bazı iyi programcılar tarafından yaratılıyorlar ve programcı programlarının ne kadar iyi olduğunu iyi izliyorlar. Sen ve erkek kardeşin de akran programlaması yapabilirsin, bu daha iyi bir fikir olabilir. Sadece neden böyle bir şey yaptığınızı açıklamayı unutmayın. Programlamayı öğrenmenin en iyi yolunun iyi örneklerden olduğunu ve kötü olanları bile görmemeye çalıştığını düşünüyorum.


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.