15 yaşına kadar programlamayı açıklamak için 30 dakika [kapalı]


100

Gelecek hafta 15 yaşında bir iş deneyimi öğrencisi olan bir Geliştiricinin hayatı ve çalışmaları hakkında oturup gönüllü olarak konuştum.

Yakalar

  • Sadece yarım saatim var ve
  • Onunla konuşan insanlardan sadece biri olacağım - işinde farklı rollere sahip olan diğer insanlar da gün boyunca işlerinin unsurlarını geçiyor olacak.

Neyi kapsamalıyım ve dünyadaki neyi yarım saat içinde ona öğretmeyi umabilirim?

Geliştirme veya programlama konusunda muhtemelen tecrübesi olmadığını varsayıyorum.


158
Bu cevapların birçoğunun çocuklara yönelik davranışlarının ne kadar etkileyici olduğu konusunda ufak tefek bir durum var - kısa dikkatleri var, görsel değillerse bir şeyleri anlamıyorlar, karmaşık bir şeyle başa çıkamıyorlar. Burada onbeş yaşındaki bir çocuktan bahsediyoruz. Onbeş yaşındaki çocuklar karmaşık şeyleri anlama ve yapma, saatlerini bir şeye derinden dahil olma ve soyut düşünceler yapma konusunda oldukça yeteneklidir. Zeki onbeş yaşındaki bir çocuğa zırva alırdım!
Tom Anderson

8
@tom Öte yandan, çoğu yetişkinin bilgisayardaki görsellerden başka bir şeyi bile sıkıcı bulmaya başladığını kişisel olarak deneyimledim. Çocuğa ve bilgisayarlara ne kadar ilgi duyduklarına bağlı.
jhocking

6
jh: Heh! Sanırım soru, bu kişinin on beş olup olmadığı değil, zeki ve meraklı olup olmadıklarıdır. Hepimiz (Maxpm'i yasaklayan) şimdi yaşlı duffers olabiliriz, ama hepimiz on beş yaşındaydık ve zeki ve meraklı yetişkinler olanların sıkıcı ve ilgisiz gençler olduklarından şüpheliyim.
Tom Anderson,

33
"İlk önce sabah 10'dan biraz sonra çalışmaya başladım, çok kahve içerim, Mountain Dew ve enerji içecekleriyle kovalarım. Sonraki 2 saatimi postalarımı kontrol ederek, tek kadın geliştirici ile yemek tarifleri alışverişinde bulunarak Tüm binanın ardından öğle yemeğinden sonra kısa bir kestirme.Yeni alın, e-postayı tekrar kontrol edin, kedi videoları için youtube'da gezin, en son dilbilgisi ve smbc çizgi romanını yakalayın. Çok fazla şey yapamam, ancak 100 programcı her gün aynı şeyi aynı günde bir araya getiriyor, yani video oyunları böyle doğuyor. "
Juliet

5
@ Tom: tam olarak. Birçok programcı 15 yaşından önce başladı, bu yüzden küçümseme anlamıyorum.
Neil G

Yanıtlar:


130

Liselerle çok fazla etkileşime giriyorum, bu yüzden bu soruyu sıkça cevaplıyorum. 15 yaşındakilerin programlamayı 50 yaşındaki çocuklara anlatmaktan daha kolay olduğunu aklınızda bulundurun - bu yüzden işleri boşa harcamayın veya çok fazla analoji kullanmanıza gerek yok.

Genellikle programların ne olduğuna dair örneklerle başladım:

  • İTunes, Photoshop, Chrome gibi uygulamalar ve konsol oyunları da dahil olmak üzere oyunlar.
  • Windows, Mac OS, iPhone'un iOS, Android gibi işletim sistemleri. (İnan bana, neden bahsettiğini anlayacaklar.)
  • Sayıları zorlayan veya gerçekten karmaşık matematik problemlerini çözen programlar - hava durumu simülasyonları, biyolojik simülasyonlar, pi, AI, dil işleme vb.
  • Çoğu karmaşık web sitesi de programlama içerir.
  • Transit bilet otomatları ve ATM'ler, mikrodalga fırın ve buzdolabı zamanlayıcıları, araç navigasyonu.

Ondan sonra programları genellikle bilgisayarın tanıyabileceği resmi bir dilde kodladığımızı, genellikle onları Notepad kadar basit bir şeyle yazdığımızı açıklamaya devam ediyorum. Dilleri matematik ve İngilizce arasında bir geçiş gibi görünüyor, kavramları açıklar ve bilgisayarın izlemesi için formüller ve talimatlar verir.

Sonra genellikle sürekli bilgisayar başında olup olmadığımı sorarlar, bu yüzden her zaman Facebook'tayım ve gözlerim neden hala bozulmadı. Adamlar "insanları nasıl hackleyeceğimi" bilip bilmediğimi soruyorlar ve kızlar iyi para mı yoksa bilgisayar bilimleri dersinde kaç kız olduğunu soruyorlar.

Ondan sonra, eğer hala ilgileniyorlarsa, genellikle cevaplaması daha kolay (veya en azından Wiki'ye) özel sorular sormaya başlarlar: bir oyunu nasıl oynayacağınız, Windows Messenger'ın nasıl çalıştığı vb.

Çevrenizde bir bilgisayarınız varsa, bazı kodları gösterebilir ve söyleyebilirsiniz - Firefox'taki ayarlar iletişim kutusundaki bir düğme tıklatması işleyicisi, bir oyun motorundaki ana döngü veya fizik kodu gibi bazı somut etkileri olabilir. Bir web sitesinden JavaScript kaynağı vb.


73
Bana bir çocuğa programlama yapmanın bir yetişkine açıklamaktan daha kolay olabileceğini hatırlattığın için teşekkürler . Onlar hiç bu unutuyorum değil bilgisayarlar tarafından çevrili.
42'de jhocking

12
hahaha "İnsanları hacklemenin" nasıl yapıldığını biliyorsanız hahahaha
John Connelly

3
Ayrıca, çoğunun salak kutu kuşağının çoğundan daha parlak olduğunu düşünüyorum. Bir kenara kaliteli, okudukları miktarda metin biraz iyi yapmak için bağlıdır.
Rei Miyasaka

4
@ rei: Sosyal becerilerim ileri düzeydedir ve bu sınıflardaki birkaç dişinin aldığı dikkat miktarına dikkat çekici buldum ... İyi niyetli, ama ... endişe verici. Ben olsaydım, çığlık atarak koşardım. Etrafta terli bir ağız ağzı soluğu kuşuyla çevrelenmiş olmak, normal bir insan için bir sıyrılma zorunluluğudur, bu yüzden ya ilgiyi seversiniz ya da gerçekten de gerçek bilimlerden hoşlanırsınız. Bu yüzden kesinlikle bu kadar az kadın olması beni şaşırtmadı. Küçük okullarda çok korkunç olmadığını düşünüyorum.
Satanicpuppy

4
Genelde en az on beş dakika geç gelirim, ah, yan kapıyı kullanırım - bu şekilde Lumbergh beni göremez, heh heh - ve, bundan sonra sadece bir saat kadar boş yer bırakırım. Evet, sadece masama bakıyorum; ama çalışıyorum gibi gözüküyor. Ben de öğle yemeğinden sonra muhtemelen bir saat daha yapıyorum. Belirli bir hafta içinde muhtemelen sadece yaklaşık on beş dakikalık gerçek, fiili işler yapacağımı söyleyebilirim.
teambob,

73

Bunu beş yaşındaki çocuğuma şöyle açıkladım:

Ben: "Hikayelerde insanların nasıl sihirli sözler söylediğini ve dünyadaki şeyleri nasıl değiştirdiğini biliyorsunuz?"
Onun: "Yeaaa?"
Ben: “Bilgisayar programlama budur.”
Onun (sessizce): "Vay."

Gerçek bir şeyi açıklamak için 15-30 dakika yeterli değildir ve altta yatan karmaşıklığı açıklamak onları çığlık atmaya zorlamak için kesin bir yoldur. Her gün üzerinde çalışıyorsun, ne kadar havalı olduğunu unutuyorsun. Dünyadaki başka hiçbir meslek, kelimeler dışında hiçbir şeyden işlevsel şeyler yaratmaz ... Bir noktada, herkesin et dünyasına girmesi ve bir çekiçle işleri atması gerekir. Fikirlerini çalışan bir şeye dönüştürmenin tek yolu bu.

Biz değiliz.


77
lol @ çocuğunuza bir sihirbaz olduğunuzu öğretiyor
jhocking

23
"Dünyadaki hiçbir meslek başka hiçbir şeyden işlevsel şeyler yaratmaz" - sözleşmeli avukatlar ve yasa koyucular yapar.
Tom Anderson

48
@Tom Muhtemelen işlevsel şeyleri yarattıklarından daha fazla sınırlar.
Saat

16
@ tom: Hayır yapmazlar. Yasal bir özet, hikaye veya şiirden daha işlevsel bir şey değildir. Bir yasa planı gibidir: bir fikir ortaya koyar, ancak daha sonra birisinin et dünyasına girmesi ve onu zorlaması gerekir. Fakat kod? Kendi iç mantığına dayalı olarak hisse senedi almak veya satmak için bir program yazabilirim ve benden başka bir giriş yapmadan bir şey yapabilirdi. Taşkın kapılarını yönetmek, elektriği yeniden yönlendirmek, günün saatine bağlı olarak ışıkları açmak veya kapatmak için bir tane yazabilirim. Meslekler arasında benzersiz.
Satanicpuppy

15
@Satanicpuppy: Hayır, bunlardan herhangi birini yapacak bir program yazamazsınız. Bir elektronik mühendisi olsa da, onları yapabilecek bir bilgisayar yapabilir. Kibarca sorduysan, belki et dünyasına girip programlarını zorla kabul ettirebilir.
Tom Anderson,

56

15 yaşında bir kişi herhangi bir kavramı anlayabilir. Kendimi 14 yaşında programlamaya başladım. (Okulda, yıllar önce)

Bir demo için 30 dakika yeterli. Ona bir tarayıcı kadar yaygın bir programla programlama sihrini gösterin.

  1. İnternete bağlı bir bilgisayar bulun. (senin değilse daha eğlenceli, onun ise daha eğlenceli)
  2. Git http://api.jquery.com/jQuery.getJSON/
  3. Sayfayı aşağı kaydırın ve cats örneği için HTML kodunu bulun .
  4. HTML kodunu seçin ve kopyalayın.
  5. Http://jsdo.it adresine gidin ve Kodlamayı başlat'a tıklayın .
  6. Bir OpenID'nizi kullanarak bir hesap açın. (bir adım işlem)
  7. Sol paneldeki HTML sekmesini seçin ve buraya yapıştırın.
    • bir saniyede sağ panelde bir sürü kedi belirecek
  8. Javascript'i kesin ve JavaScript sekmesine yapıştırın . (sözdizimi vurgulama için)
    • Bir saniyede, kediler sağ panelde otomatik olarak yenilenir.
  9. Javascript'teki tags özelliğini arayın ve "dog" olarak değiştirin.
    • bir sürü köpek belirir
  10. Seçtiği diğer etiketlerle işlemi tek başına tekrar etmesini sağlayın.
    • virgülle ayrılmış iki etiketle denemesini öner
  11. "İf (i == 3)" satırını "if (i == 5)" olarak değiştirin; bunu fark etmesine izin ver
    • şimdi 6 resim var ve 4 resimden önce
    • Koddaki sayı sayfadaki sayıyla eşleşirse daha iyi olur
  12. Hatayı birlikte düzeltin (bu çizgiyi ve önceki çizgiyi değiştirin)
  13. ...

1
Veya jsfiddle'ı kullanabilirsiniz, kaydolmanıza gerek yok: jsfiddle.net/WXVra
rjmunro


26

adımlar

Neredeyse 15 yaşında bir çocuk olarak, muhteşem bir başlangıç yapmanız gerektiğini güvenle söyleyebilirim .

  1. Programcıların ne yaptığını açıklayın. (Oyunlar, simülatörler.) Yaptığın güzel şeyleri göster . (Bilgisayarda. Lütfen komut satırı yok - bu herkesi korkutuyor gibi görünüyor.)
  2. Nasıl yaptığını açıkla.

    • Onlara 10101010bütün gün yazmadığını söyle . Onlara bunun nasıl yapıldığını bilmediğini söyle . ( Yalan. Sen yok biliyorum 10101010, demek doğru;?)) Bu yıllar önceydi söyle.
    • IDE'nizi başlatın. Emin iyi görünüyor olun - MSVS2010, QtCreator ve NetBeans hepsi iyi. Daha az korkutucu görünmesi için diğer bazı şeyleri çıkardığınızdan emin olun (daha az menü), ancak görsel efektleri içeride tutun.
    • Onlara bazı sahte kod örneklerini göster. Anlaşmayı kolaylaştırın:

      Display Window
      Display "I like cheese!"
      Display OK button
      
      If user clicks OK button, close Window
      

      O adım adım ilerleyin. Onlara bunun kodun göründüğü gibi olmadığını söyle. Kod gibi görünüyor English + Math. Ancak konuştuğunuz "dili" (okumak: sözdizimi) öğrenmek zor değil.

    • Bu sefer onlara biraz daha "matematik" içeren bir örnek göster.

      User inputs A
      User inputs B
      
      C = A + B
      
      Display C
      

      Bir hesap makinesi gibi, bu kodun birlikte iki rakam eklediğini açıklayın. Onlara bunun için "gerçek" kodu göster. (Ayrı bir dosyada UI ve diğer şeyler toplu koymak emin olun ve bunları kısa ve basit göstermek dosyayı tutun.) (Dan işareti değiştirerek çıkarma programına değiştirin +için -onların gözlerine önce).

  3. Programlama yapmak için bilmeleri gerekenleri açıklayın. (Çeşitli seviyelerde)

    • x + 1 = 2O zamanki gibi temel cebir becerileri x = 1.
    • Problem çözme yetenekleri.
    • ["Gelişmiş"] Daha yüksek seviye matematik. Bu NASA gibi yerlerde çalışan programcılar içindir.

Kullanabileceğiniz terimler

Düşündüğünden daha fazlasını biliyoruz.

  • Facebook, Twitter, Sosyal Ağ
  • Windows, Mac, Linux
  • Tasarım, Daha Hızlı, Test Etme, Çalıştırma / Çalıştırma

Açıklamanız gereken terimler

Evet, hala açıklanacak bazı şeylere ihtiyacımız var.

  • Derleyici: Kodu dönüştürür (2. adımdaki örnekte olduğu gibi) 10101010.
  • Programlama dili: 2. adımdaki örneğe benziyor.

Şartlar sen olamaz kullanmak

Bazılarımız bu şeyleri biliyor, ama yine de söyleme lütfen.

  • İşletim Sistemi dışında her türlü "sistem"
  • Optimizasyon, Analiz (oh oh)
  • Giriş / Çıkış (bunu kullanmanız gerekirse, olabildiğince basitleştirmeye çalışın)

'Havalı' bir IDE mi arıyorsunuz? Xcode'dan başka bir yere bakmayın.
Alan Zeino

2
@Alan Zeino, Emacs demek istiyorsun.
sağa sola

Bu cevabı en çok sevdim. Bu işi alan birinin, bu soruya verilen diğer cevaplardan (aynı zamanda yüksek kaliteli) cevaplardan daha fazlasını başaracağını düşünüyorum.
TehShrike

17

Süreç, kalıplar, gereksinimler ve benzeri şeyler hakkında konuşmaya başlarsanız, derhal kapanacaktır. Bugün çocuklar grafiksel ve görsel olarak motive oluyorlar, bu yüzden bu tür uyaranları tanıtmaya yardımcı olacak bir şeyler getirirdim. Ona internette şık bir şeyler gösterin ve sonra yüksek düzeyde, bunun Neler olduğunu neyin anlattığını anlatın. Hatta geliştirme dizüstü bilgisayarınızı içeri almanızı ve ekranda "havalı" bir şey yapmanızı öneririm - önündeki kodu değiştirin ve sonra ekrandaki değişiklikleri izleyin. Bu yaşta çok akıllılar ve görsel olan her şey ilgiyi çekmeye yardımcı olacak.


oh evet görseller harika bir fikir. Bunun bir sınıfa çok benzemesi riski altında, söylediğim her şeyi göstermek için beyaz tahtada diyagramlar çizmem çok muhtemel.
32'de jhocking

1
Görsellerden bahsederken, ona küçük bir videoyu veya programını göstermeye ne dersiniz Alice?
Carlos Campderrós

9
@Carlos 15 yaşında bir kişi olarak, Alice'in binden fazla güneşin tutkusuyla nefret ettiğimi şahsen kanıtlayabilirim. Muhtemelen, zaten nasıl programlanacağımı biliyorum çünkü. Yeni başlayanların bunu nasıl gördüğünden emin değilim.
Saat

1
+1 "önündeki kodu değiştir ve ardından ekrandaki değişikliği izle" - + 'gerçek' olanla arkasındaki kod arasındaki doğrudan bağlantıyı göstererek başla. Biraz derinlemesine bir şeyler, bazı verilerin sıralanması veya sorgulanması gibi, sadece bir miktar JSP veya string formatlama yapmıyor. Bu bağlantıyı yap, sonra ondan kur.
Tom Anderson

1
Bir programın görünümünü birkaç satır kodla değiştirebilme yeteneği, beni yıllar önce programlamaya iten şeydi - öneri için teşekkürler
Dexter

13

Programcıların çalışmalarını açıklarken güvendiğim iki büyük analoji var. Bir tarif; bu metafor, her kod satırının ne yaptığını küçük bir ölçekte açıklamak için kullanışlıdır. Bir programcının çalışması tarifi yazıyor ve bilgisayar aşçı.

Diğer benzetme, büyük bir programın büyük bir şirket gibi olmasıdır. Farklı alanlara odaklanan ve ileri geri mesajlar gönderen çok sayıda farklı departman var ve bunların hepsi şirketin amaçlarına ulaşıyor. Bir programcının çalışması, kuruluşun nasıl kurulduğunu tasarlamaktır ve bilgisayar şirketteki tüm insanlardır.


8

Genel olarak kalsın derdim. Programlama ve diğer birçok meslek problem çözme sürecine girer. Ona günlük olarak problemleri nasıl çözdüğünü gösterin. Ona üzerinde çalıştığınız bir projeden ve müşterilerinize nasıl yardımcı olacağından bahsedebilirsiniz. Ayrıca işinizi neden sevdiğiniz (muhtemelen) ile ilgili biraz da bilgi verin.

Benim durumumda, diğer personelin dersler verdiği bir eğitim videosu web sitesi geliştirdim. Projenin motivasyonunu (başkalarına insanları bağlamak zorunda kalmadan uzaktan öğretmek), karşılaştığım sorunları (bunları zor sorunlar olarak görmem gerekmiyor) ve bunları nasıl çözdüğümü açıklardım. Programlamayı neden ilk olarak sevdiğim hakkında da konuşacağım: Bir şeyleri yaratmayı ve programlamanın modern dünyaya katkısını seviyorum.


8

Ona üzerinde çalıştığın yazılım örneklerini ver. Yazılımınızı genel olarak kullanan bir müşteriniz var mı? Ona gösterebileceğin bir ev uygulaması geliştiriyor musun? Ona çalışmanızın sonucunu, son kullanıcının gördüğü ve ne kullandığını gösterin.

Ardından, yazmanıza yardım ettiğini açıklayın. Yazdığınız bölümleri gözden geçirin. Mümkünse biraz kod göster. Bu kod satırlarının uygulamanın bir bölümünü nasıl çalıştığını ana hatlarıyla belirtin.

Kodunuzun insanlar tarafından kullanıldığını görmekten ne kadar keyif aldığınız hakkında konuşun.

Zaten bunu 14 yaşındaki kuzenime de açıkladım. Çok etkilendi ve gelecek dönemde bir programlama dersi almaya karar verdi.


5
Programcı olmayan kişilere güzel görünen bir yazılım üzerinde çalışıyorsanız işe yarar. Son projelerimin çoğu bir veritabanında yaşıyor ve bir komut satırı gibi "bakıyor" (ve hatta çok sıkıcı görünen bir web uygulamasında olmayanlar bile - ama veriler işlendiği sürece tamam kimse umursamadı). Programcı olmayanlar için, birkaç dakikada bir metin satırı çıktısı alıp durduran yanıp sönen bir bilgi istemidir. Bakmak çok sıkıcı ... sigh :(
SinirliWithFormsDesigner

1
“Çalışmanızın sonucu” hakkında daha geniş bir bakış açısı edinin. Bu sadece üzerinde çalıştığınız yazılım anlamına gelmez; Aynı zamanda üzerinde çalıştığınız arka uç yazılımın sağladığı çeşitli istemci uygulamaları anlamına da gelebilir.
27'da jhocking

En azından benim gibi bir SharePoint geliştiricisi değilsiniz, @FrustratedWithFormsDesigner .. Tüm köşeli ayraçlarım arasında harika görünen bir şey bulabileceğime eminim!
Dexter,

4
@FrustratedWithFormsDesigner 15 yaşımdayken okulumdan başka birkaç parlak çocukla birlikte "okul çocukları için CS'ye değer vermeye ikna olalım" gününe gittim. Komut satırı öğeleri LOOKED COOL. Bizim için süper güçlü görünüyordu ve bu da COOOOOL yaptı. 15 yaşındaki kızların evreni yönetmek istemediklerini
sanmayın

Elbette boş zamanlarında gösterebileceğin eğlenceli bir şey programladın. Bir Tetris oyunu, bir fraktal görüntüleyicisi ve bir sudoku çözücüsü programladım. Bunlardan herhangi biri göstermek için eğlenceli.
Carra

7

Masa oyunu Robo Rally'ye aşina mısınız?

Bunun programlama için en eğlenceli eğlenceli benzetme olduğunu buldum. Robotunuzu, oyun tahtası içerisinde diğerlerinden önce belli bir noktaya ulaşmak için basit komutlar (çoğunlukla oklar) kullanarak programlıyorsunuz.

Adamım keşke hala BigTrak'ım olsaydı ...


4
Bu yarı-düzenli olarak oyun akşamımızda oynuyoruz (8 kişiye kadar, çoğu matematik veya CS öğrencisi). Çok
okuyucunun

@ Paulo - LOL Bu şekilde hiç düşünmedim, ama haklısın!
System Down

6

Basit ama kullanışlı bir şey gösterin. Bunun iyi bir örnek olduğunu düşünüyorum:

  1. Bir klasörü dolu veya görüntü al (bunların tümü klasör gezgininizdeki bir ekrana sığmayacak kadar)
  2. Onlara amacınızın görüntüleri yeniden boyutlandırmak olduğunu söyleyin (belki de onları arkadaşlarınıza e-postayla gönderebilir veya herhangi bir yerde çevrimiçi olarak gönderebilirsiniz)
  3. GIMP / Photoshop / içindeki herhangi bir resmi yeniden boyutlandırmayı gösterin
  4. Şimdi şunu yap, en az 30 saniye sürdü ve çok fazla resmin var, bunu yapmak için bir saat harcamak istemiyorsun.
  5. ImageMagick'i kullanarak hepsini yeniden boyutlandırmak için bir kabuk betiği yazın
  6. 3 satırlı basit programınızla tüm görüntüleri yeniden boyutlandırmanın Photoshop'ta tek bir görüntüyü yeniden boyutlandırmaktan daha hızlı olmalarını sağlayın.

Bu yaklaşımdan hoşlanmamın nedenleri:

  • Onlara neden programlamanın faydalı olduğunu söylemek zorunda değilsiniz , sadece nedenini gördüler
  • Programı izlerken birkaç saniye içinde yazabilirsiniz (gösteriler hep ters gittiğinden, önceden denemenizi öneririm)
  • Aptal olduklarını / bir tür "çocuk" örneğine ihtiyaç duyduklarını varsaymıyorsunuz - Bu basit bir örnek, ancak gerçek dünya kullanımları var .

Daha iyi örnekler düşünebilirsiniz, ancak stilin bir "ilk giriş" için faydalı olduğunu düşünüyorum.


5

15 yaşındakilerin çoğu "bugünlerde" bilgisayarlarla ilgili çok fazla deneyime sahip. Yaklaşırken daha fazla el ele giderdim. Ona biraz kod göstereceğim (ayrıntılı olarak açıklamaya çalışmayın, ama belki de "akışın" en temellerini kapsar) ve sonucun ne olduğunu ona gösteririm. HTML bile bu tür bir örnek için çalışacaktır. Sonra "Her gün, temelde bunu yapıyorum ... on binlerce satır kod ve çok büyük ve karmaşık bir program dışında" deyin.

O zaman ne tür sorunları programlama ile çözdüğünüzü ve neden yapmaktan hoşlandığınızı açıklayın. Mesela ben programlamayı seviyorum çünkü "Kodumun bilgisayardaki bir uygulama olarak hayata geçmesini görmeyi seviyorum"


4

Öncelikle, borç almanız gereken rekabete sahipsiniz.

Filmler, popüler kültür ve hatta alandaki insanlar ( ve bu konu için bu soru ) programlamayı (ve bilgisayar bilimleri alanının büyük kısmını) bir tür sihir olarak tasvir etmeye çalışırlar. Bu sihir değil.

Programlama basitçe görevleri tanımlamak ve daha sonra bir sorunu çözmek için bu görevleri birleştirmektir. Paralel bulmaya çalışıyorsanız, matematik kullanın. Bilgisayar, tüm çalışmalarını göstermeni gerektiren bir matematik öğretmeni gibidir .

Fiziksel bir bakış açısına göre, bilgisayarlar akıllı değildir; yalnızca söylediğimiz kadarını bilirler . Bu nedenle, bir bilgisayar programcısı, örneğin bir CD'den müzik çalan bir program oluşturmak istediğinde, 'basitçe', bilgisayara CD'de depolanan verileri nasıl okuyacağını, daha sonra bu verileri ses dalgalarına nasıl dönüştüreceğini ve son olarak nasıl söyleyeceğini söylemelidir. , bu ses dalgalarının hoparlörlerinizden nasıl çıkarılacağı.

Bu fikri bir sonraki aşamaya alarak, programlamanın üst üste görevleri nasıl oluşturduğuna devam edebilirsiniz. Tıpkı matematikte cebir öğrenmeden önce aritmetik öğrenmek zorunda olduğu gibi, bilgisayarlara nasıl daha karmaşık işler yapmaları gerektiğini söyleyebilmeniz için önce nasıl “temel yapmaları” gerektiğini söylemesi gerekir. Yıllar geçtikçe, bilgisayar bilimcileri ve programcıları, bilgisayarlara temelleri yeterince öğrettiler ve konuştuklarımızla birbirleriyle nasıl konuştuklarımıza daha yakından “konuşmaya” başlayabildik.

Gerçek hayatınıza döndüğünüzde, matematik öğretmeniniz size “15'in 3'ün gücünü” çözmesini söyleyebilir, ancak bunu yalnızca nasıl yapılacağını biliyorsunuzdur, çünkü daha önce “Y'nin gücüne X” in görevlerini yıktığı öğretildi. "Multiply X ile X ve bunu yapmak Y kez" [teknik Y, -1 kez, ama ha.]

Tıpkı matematik dersleriniz gibi, programcılar da 'bilinen' görevlerin temelini oluşturdular; bu nedenle küçük şeylerin ayrıntılarına odaklanmamıza gerek kalmıyor ve asıl problemleri çözmek için zamanımızı harcayabiliriz ve temelini nasıl gerçekleştireceklerini değil görevler - artık bir bilgisayarın temel şeylerin nasıl yapıldığını anladığını varsayabiliriz.


3

9 yaşındayken beni bağladım ne yapardım. C64'ü çatıdan çıkarın ve yapın:

10 PRINT "YOU SMELL"

20 GOTO 10

(Sağol baba).

O zaman bunun eğlencesi bittiğinde. Ona numara tahmin oyununu gösterirdim. Evet, hepsi BASIC dilinde. Modern bir dilin bilgisayara talimat alarak göstermesi için ölmeye gerek yok.


2
İyi. Kafasına çiviyi çarptın. Gerçekten basitleştirin ve eğlenceli hale getirin. Ve BASIC bunun için mükemmel.
Mike Dunlavey

1
Kabul edildi, BASIC harika ve GOTO başlamak için en iyi dil kurdu. İlk programım çok benzerdi.
Tomas Andrle,

Buna tamamen karşı olduğumu söyleyemem, ancak birkaç yıl C ++ programlanıncaya kadar hiçbir şey öğrenmedim. O zamandan beri bile, hayatımda asla tek bir tane bile yazmadım. İyi ya da kötü, yargılamayacağım - sadece Goto'nun mutlaka gerekli olmadığını bilmek istedim.
31eee384,

3

Facebook gibi rutin bir şekilde yaptığı bir şeyle başlamak ve giriş yapmak gibi basit bir özelliğin çok karmaşık olabileceğini ona açıklamak yardımcı olabilir.

Buradan veri tabanlarına, uygulama tasarımlarına ve sonra da güvence altına alabileceği bazı güvenlik unsurlarına dalabilirsiniz.

"Facebook ile ilgili değiştirebileceğiniz bir şey olsaydı ne olurdu?" Gibi bir şey bile sorabilirsiniz. O zaman onu nasıl değiştirebileceğini ve kaç kişinin katılacağını açıkla.

İlk önce Pascal'ı programlamayı öğrendim ve programımın girdilerimi kabul ettiği, karışıklık çektiği ve farklı bir şey bastığı için pompalandım. Oradan bağladım. Bazı insanlar kolay kilitlenir.


Facebook kullanmak iyi bir öneri, teşekkürler @ client09
Dexter

2

Umarım bu alanda ilgisini çekmesi gereken bir yazılım geliştirdiği bir yerde bir işe yerleştirmeyi tercih etmişimdir?

Belirlenmiş bir cevap yok, bildiği bir şey hakkında onu 5-10 dakika araştırabilirim, sonra elinden gelenin en iyisini yap.


Emin değilim @Chris - Muhasebe'den İK'ya geliştirme ve danışmanlığa kadar bir teknoloji firmasında birçok farklı rol vardır. Ona birçok farklı rolün kısa bir tadını veriyoruz, bu yüzden bu varsayımı yapabileceğimi sanmıyorum
Dexter

Adil olmak gerekirse, neden böyle bir şirket olduğunu hiç söylemedin. : p Birinin bir gitar mağazasına yerleştirmeye gitmesi durumunda, bir ahşap luthier olmak yerine, muhtemelen gitarla ilgileneceğini söylemek güvenli olacaktır.
Anonim

2

Üst seviyeye başla. Belki bilgisayar programlamanın problem çözme ile ilgili olduğunu açıklayın: bir problemi almak ve bir makinenin kullanabileceği ve anlayabileceği bir dizi talimat olarak yazılmış bir çözüm bulmak.

Zor kısım, 15 yaşındaki bir kızın ilginç ve alakalı bulabileceği örneklerle geliyor olabilir . Daha önce hiç böyle bir durumda olmadı ve onu tanımadım, bunun için ne önereceğimi bilemiyorum ... Kod örneklerinden kaçının, sonuna kadar ve "Merhaba dünya" programı veya çok basit veya ilginç durumlar dışında basit ve grafiksel bir şey (bir pencerede bazı şekiller çizin, fareyi izleyin, vb.).


En azından üzerinde çalıştığım kodun bazı örneklerini göstermeden programlama hakkında birilerine öğretebileceğimi sanmıyorum ..
Dexter

@Dexter: 30 dakika içinde, kodun neye benzediğine çok fazla yer vermek istediğimden emin değilim. Hiçbir şey göstermemek istemedim, ama çok zamanınız olmadığından kodun odak noktası olması gerektiğini düşünmüyorum. Çok kuru ve sıkıcı olabilir. Mümkünse fikirler ve kavramlar hakkında daha fazla konuşun. Eğer varsa olabilir ilginç da anlamak kolay ve var basit bir örnek (belki az 10 satır) bulmak, ne duruyorsunuz!
FrustratedWithFormsDesigner

kabul ediyorum, ancak basit bir bölüm 1 örneği için girmek yerine, geliştirdiğim bir programı gösterip bir sonuç göstermek için birkaç satır kod değiştirmeyi tercih ederim. ona nasıl programlanacağını öğretebilecek, ama belki daha fazlasını öğrenmek için ona ilham verebilirim ..
Dexter

2

İşte birkaç başarısızlıktan ve birkaç güzel denemeden sonra üstüme çıktım:

Programlama problem çözmedir.

Her gün kullanacakları programlanmış somut şeylerle başlayın - internet tarayıcısı (facebook), cep telefonu, yazarkasa vb. Size birçok örnek vermelerini isteyin. Bütün bu şeylerin içinde bir tür bilgisayar olduğunu belirleyin. Bir bilgisayarın kalbi işlemcidir.

İşlemci çok hızlı, ama çok aptal bir çalışan gibi. Bazı talimatlar verirseniz, tam olarak dediğiniz gibi onları yapacak. Fazladan bir şey yapmaz ve yapmasını söylediğiniz bir şeyin yanlış olup olmadığını söylemez. Ancak bu işlemci her şeyi yapıyor - tam olarak nasıl yapılacağını söylerseniz, bir telefon görüşmesi yapabilir veya bir e-postaya resim koyabilir.

Ona bir soda makinesinden bir kutu soda almak için çok hızlı ama çok aptal bir işçiye nasıl söyleyeceğini sor. Adımları tanımlamaya başladığında ("Makineye para koyun ve düğmeye basın.") Bir program gibi parçalamaya başlayın ("Para nedir? Makineye nasıl koyarım? Makineye para koyduğumda ve tuşuna basın Aynı anda düğme, hiçbir şey olmuyor. "). Bir beyaz tahtanız varsa, ilk talimatlarıyla soldan başlayın. Onları gözden geçirirken, yeni büyük listeyi sağ tarafa yerleştirin. İyi bir talimat setiniz varsa, parçaları genelleştirmeye başlayın ("Parayı cebinizden alın ve sodayı kaset sesini benzer şekilde çıkarın - hangi parçalar aynı / farklı?") Genellemeleri alın ve ortasına koyun ve şimdi içerdikleri parçaları çaprazlayın. Sonunda orijinal talimatlarına, benzeri işlev çağrılarına uyması için parçaları birleştirmeye çalışın. Diğer iyi alıştırmalar: Bir mektubu postalayın, bir kapıdan geçin, daire / kare / üçgen çizin.

Programlama, problem çözmedir: sorunları parçalara ayırmak, yaygın olan parçaları tanımlamak ve sorunları çözmek için bu parçaları yeniden gruplandırmak. Yakında, bazı kısımların birçok problemde ortak olduğunu keşfedersiniz ve sonra sahip olduğunuz bile bilmediğiniz problemleri çözmek için parçaları bir araya getirmeye başlarsınız.

Tamam, bu noktada anlayabilir ama sıkılmış olabilir. Bir dizi serin programlama örneği ile takip edin. Gölgelendiriciler ve ilgili görsel kodların demosu kolaydır - bir resim ekleyebilir ve çok küçük kod değişiklikleriyle değişiklik yapmaya başlayabilirsiniz. Facebook'a olan ilgisini dile getirdiyse, arkadaşlarının arkadaşını (6 derece) verilerini görmek için REST aracılığıyla Facebook'la konuştuğunu göster. Video oyunlarını seviyorsa, birkaç açık kaynak kodlu oyun demosunun yanı sıra kodlarının bir kaç parçasını ve oyunun nasıl çalışacağını gösterin. Evde araştırabileceği birkaç ücretsiz araç ve kaynak göstererek bitirin. (Python, C #, vb.)

Başarısız girişimlerim: pi hesaplamasını (soruyorlardı), C-Jump board oyununu http://c-jump.com/ (bunu alamadılar ve talimatların buggy olduğu) açıklamaya çalışmak ve bir 2d kodunu canlı olarak kodlamak. oyun (demolar arasında attığım adımın ne kadar küçük olursa olsun, sadece ilgi alamadım).

İyi şanslar!


2

Basit bir program yapın. Hayır, "Merhaba Dünya!" Değil.

Yapmam gereken, birçok programlama dili türü olduğunu söylemek - oyun yapanlar, robotları kontrol edenler - ama birlikte çalışacağınız şey HTML.

Üzerinde hiçbir şey olmayan bir web sayfası hazırlayın ve ardından e-posta adresine e-posta gönderecek bir form ekleyin. Muhtemelen sahibine yeni bir e-postası olduğunu bildirebilecek bir cep telefonu var, bu nedenle arkadaşlarının ve ailesinin onunla iletişim kurmasının harika bir yol olduğunu söyleyebilirsin. Gelecekte kendi web sitesini alırsa, formunu web sitesine koyabildiğini ve müşterilerinin ve iş ortaklarının onunla iletişim kurmasına izin verdiğini söyleyebilirsiniz.

Alternatif olarak, eğer biraz yaramazsa, size programlamaya neyin ilgi duyduğunu söyleyeceğim: hack. O gün, AOL ile uğraşmak için şimdiye kadar yapılmış en iyi programı yaptım (benim yaptığım düzinelerden sadece birinde benimkinden daha iyi performans gösteren bir program dışında) - 14-15 yaşlarında. Beyaz şapka tarafında da ilk spam kaldırma programlarından birini yaptım (1995). Çevrimiçi deneyimimi daha eğlenceli hale getirdim ve bu konuda ayrılacağız. Bir bilgisayarda yapmak istediğim her şey, çözmem gereken bir macera ya da bilmeceydi ve bilgisayarda yapmak istediğim şeyler sonsuzdu. Tabii, işe koyulmak bazen baş ağrısıydı, ama her şeyi yapabildiğinden daha hızlı ve daha iyi yapan bir program yazmak, veya genel halk için basitçe imkansız olan şeyleri yapmak, birinin gurur duyabileceği ince bir makine parçası yapmak gibiydi. Şimdi, muhtemelen ciddi bir şeyden uzak durmak zorunda kalacaksınız, ancak Visual Basic'te başlangıçta başlatılabilecek bir şey (ekranın veya sistem tepsisinin yanında oturan) ve oradan da çıkarmak oldukça kolay olacaktı. onu en sevdiği web sitelerini, en sevdiği programları vb. başlatmasını sağlayabilirsiniz. Bir exe ve bir web sitesi başlatmak için gereken komutları tanıtabilir ve ardından bazı düğmeler yapmasını isteyip ardından bu düğmelere kod eklemesini isteyebilirsiniz. , en sevdiği web sitelerini (facebook, twitter, vb.) ve programları (iTunes, kelime işlemcisi, vb.) koymak. Bilgisayarı odasına girdiyse, ek işlevsellik için üzerine bir çalar saat atabilirsiniz. Tabii ki, 30 dakika onunla dolaşmak için çok kısa, o yüzden zaten yaptırmış olmalısın. Sonunda 2-3 sayfalık bir kullanım kılavuzu, kod ve .exe dosyasını e-postayla gönderirsiniz ... sonra da onu küçük bir satış adımına bırakırsınız: ilk başta kolay değildir, ancak bir kez asmak, o kadar da kötü değil, hayatta son derece yararlı olacak ve onun analitik düşüncesini geliştirmeye yardımcı olacaktır.


2

Eskiden 18 yaşındaki kolej öğrencilerine ders verirdim ve 15 yaşındakilerin de aynı olduğunu farz ediyorum. Uygulama yapmadan başarı beklemeyin. İlk dersimde “zorla girmek” birkaç hafta sürdü.

Öğrenmem gereken en büyük şey, düşündüğüm şeyin o kadar basit ve açıktı ki korkarım ki zamanı dolduramadım, öğrenciler için hiç de öyle değildi. Bebek adımlarına girmeniz gerektiğini öğrendim - aksi halde sadece sihir "gee whiz" dir.

Bunu 30 dakikada nasıl uydurduğumdan emin değilim, ama ilk yaptığım şey, bir konuşmacıyı tıklatarak ve biraz dışarıdan çalacak şekilde ayarlanmış, ev yapımı bir bilgisayarı inşa etmekti. Tıklamalar arasında gecikme gibi davranması için bir sayacı azaltarak nota çalabileceğini açıkladım. Tahtaya sözde kod yazdım, tıpkı bir tarif gibi. Sonra, her şeyin yaklaşık 1000 kat daha yavaş çalışmasını sağlayacak bir telin altına asabileceğim küçük bir kondansatör vardı. Sonra tık - bekle - tık - bekle ... duyabiliyorlardı. Sonra kondansatörü çektiğimde, küçük bir ayarla patladı.

Bunun amacı bilgisayarların üstesinden gelmek sadece basit şeyler yapmak ve her seferinde bir tane yapmaktı. Önceki adımı bitirene kadar her adımı başlatmazlar. (Evet, evet, biliyorum - boru hattı döşenmesi ve hepsi, ama biz yenilerle konuşuyoruz .) Onları tek seferde yapmalarını sağlayan elektronik hızdır, bu yeni başlayanların varsaydığı şeydir (zihin okuma ile birlikte). . Bu, programlama ve bilgisayarları anlayamayacağınız, gerçekten temel kavramlardan biridir. Bizim için bu çok iç içedir, bildiğimizi bile bilmiyoruz, ama yeni başlayanlar bunu bilmiyor.


1

Programlama dili olmadığını biliyorum ama bence HTML başlamak için iyi bir yer. Çünkü hemen sonuç alıyorsunuz.

Selam Dünya

O zaman yapın:

Merhaba <b> Dünya </b>

Vb.


1

Benim yerimde olsaydı, ona programlama yapmanın, bir görevi bir şeyi küçük görevlere bölme konusunda anlatacağını söylerdim; ve sonra bu küçük işleri aptal bir bilgisayar tarafından yanlış anlaşılmayan bir dilde ifade etmek. Ancak bunu, diğer programcıların da kolayca anlayabileceği şekilde yapmalısınız - ve bu aynı şey değil.

Bu, diğerlerinin söylediklerinin üstüne ...


1

Bu benim kişisel deneyimlerimden çok basit bir "cevap" değil.

Neden ilgileniyorum? Ailem 1984'te bir IBM PC XT satın aldı (1984'te doğdum). 640kb RAM, 20MB HDD ve 5 "FDD'ye sahipti ve MS-DOS v3.2 kullandı. 5. standartta olana kadar dokunmama izin verilmedi ve sonunda kullanmama izin verildi, yıllarım boyunca döktü içine birikmiş meraktan.

Diğer taraftan kız kardeşime, istediği zaman aynı PC ve Quadra 610 mackintosh'ta olmasına izin verildi ve kurduğu masaya ödediği kadar ona ödedi.

Kız kardeşime öğretmek ... Kız kardeşime bilgisayar programlamayı BASIC dilinde öğretmeye çalıştım. Bilgisayarı başlatmaktan programa yazmaya ve çalıştırmaya kadar onu her şeye yaptım. Hat programı gibiydi.

10 PRINT "CAT"
20 END

Bu yarım saat sürdü. Sonunda idam ettiğinde 'CAT' kelimesini bastı ve çok sinirlendi. Bir kedinin fotoğrafının görünmesini bekliyordu. O odadan kaçtı ve sonsuza dek programlamanın sonu oldu!

Ahlaki: Çıktı, harcadıkları zaman ve çaba ile orantılı olmalıdır.

Lise çocuklarına öğretmek Labview ve Lego NXT Bir yıl boyunca İLK Robotik'te akıl hocası oldum ve çocukları NI Labview'de robot programlamaya yönlendirdim. Açıkçası, gereken programlama becerisi bir lise çocuğunun seviyesinin çok üstünde idi. Ancak rekabet, çocukları mühendislik konusunda heyecanlandırmak ve zorlukla başa çıkabilmek için çıtasını yükseltmeyi amaçlıyordu. Programlar sadece bir if ifadesi ve bir döngü içerdiği sürece, her şey yolunda gitti. İnsanlar, geçen yıl oluşturduğumuz robot için oluşturduğum kod şemasını gördüklerinde robotun programlama bölümünden çıktılar.

İnsanlar 15 yaşındakilerin karmaşık şeyler yapabildiklerini ve saatlerce dikkat çekebileceklerini belirttikleri gibi, onlarda bunu yapmak için tuhaf bir motivasyon eksikliği buldum. Beyinlerini vergilendirmeyen kolay şeyler yapmak istediler. Torna tezgahındaki CAD ve freze parçalarını yazma programlarından çok tercih ettiler.


1

CS nedir?

Demolara geçmeden önce, dünyadaki yerinizi CS'in yerini almanızın kısaca yardımcı olduğunu düşünüyorum. Hal Abelson'un CS'ye matematiğe ilişkin tanımını sevdim: matematik dünyayı yasalar olarak tanımlamanıza yardımcı olurken, CS bir şeyleri nasıl yapacağınızı tarif etmenize yardımcı olur. Örneği, karekök işleviydi: matematik onu tanımlayacak, ancak verilen herhangi bir girdi için onu bulmanıza yardımcı olmayacak. CS yapacak. Daha düşük düzeyde, elektrik mühendisliği ve fizik, interneti etkinleştiren donanımın temelini attı, ancak insanların onu nasıl kullanabileceği konusundaki soruları açık bıraktı.

Programcı olmak nasıl bir şey?

O zaman bir programcı olmanın nasıl bir soru olduğu. Beni kendine çeken şey, bir şeyi denemenin, test etmenin, düzeltmenin, diğer tüm teknik alanlardan daha hızlı geri dönüşe sahip olmasıdır. Sürekli bir problem çözme değil, diğer alanlarda ise tek bir döngü için geri dönüş süresi ay olabilir. Ayrıca, diğer tüm teknik alanlar için söylenenden daha fazla olan diğer tüm teknik alanlar için de faydalıdır. Yani henüz ne yapmak istediğinizi bilmiyorsanız (muhtemelen), erken dönemde iyi olmak iyi bir şeydir. Üniversitede çok az şey sizi deneylerini kodlayabilmekten çok profesörlere daha faydalı hale getirecektir.

Göz şekeri, koda bağlı

O zaman elbette gösterileri unutma. Örneğin bir deprem kopyasını (açık kaynaklı) almak ve bazı tek satırlı değişiklik yapmak (örneğin yerçekimi gücünü değiştirmek) ve yeniden derlemek havalı olabilir. Ayrıca ona kodu da bak. Çok fazla şey anlamadığını umduğuna emin olun, şimdi anlamsız gibi görünebilir, ancak daha sonra yabancı dillerdeki gazeteleri henüz öğrenemedi. Yine de, şeylerin şeylere atandığını, nesnelerin ne yapılması gerektiğini söylediğini ve yerçekimini belirlediğimiz yerin vs. olduğunu söyleyebiliriz.


1

14 yaşımdayken programlamaya başladım. Çoğu öğrenci (kayıt olan 50 öğrenciden 47'si) ya yıl ortasından ayrıldı ya da sadece gelecek yıl ileri kursa devam etmemeye karar vermesine rağmen, onunla birlikte kaldım ve çok önemli bir şey öğrendim:

Programlama size hiçbir şeyden bir şey yaratma yeteneği verir. Kelimeleri, ihtiyaçlarınızı karşılayan kullanışlı bir araca, siz ve arkadaşlarınız için eğlenceli bir faaliyete ya da arkadaşlarınıza gösterip "Bak ne yaptım" diyebileceğiniz bir şeye çevirme gücüne sahipsiniz .

Başlangıçta "Merhaba Dünya" dersi verildi, ancak kodumu kullanıcı ile etkileşime sokana kadar ilgim yoktu . "Cin" ile girdi okumayı öğrettiğimiz an, sınıfta oynayabileceğimiz bir Mad-Lib programı hazırlamaya başladım. İlk engelim boşluk içeren girdi okumak, ardından çıktı biçimlendirmek oldu. Daha sonra bu hikayeleri bir dosyaya kaydedebilmek istedim ve bu yüzden dosya GÇ öğrenmem gerekiyordu. Kendi hedeflerimi başarmamın önündeki engelleri aşmak beni meşgul etti.

Yılın ilerleyen saatlerinde, ağ yöneticilerinin bilgisayar sınıfı sırasında iletişim kurmak için kullandığımız "Net send" ve Novell SendMessage istemcisini kullandıklarını ve bilgisayar testi sırasında hile yapmak için kullandıklarını gördüklerini keşfettik. Bu yüzden yöneticilerin devre dışı bıraktığı yerine bir sohbet odası yazdım. Yarattığım ilk gerçekten faydalı şeydi. Battle.Net'in sohbet sisteminden sonra, kullanıcıların tahrifatını önlemek için kullanıcı kaydı, moderatörler ve hatta temel bir şifreleme ve gölge dosya sistemi ile tamamlandı (öğrencilerin tümünün paylaşabilmesi için tüm dosyaların paylaşılan bir ağ sürücüsünde kalması gerekiyordu) programa erişmek ve kullanmak). Bunlar zaten farkında olduğum kavramlar değil, bir sorunu çözmek için kendi başıma bulduğum çözümlerdi. Bana göre bu programlama sevinci oldu.

Bu nedenle, soruyu doğru cevaplamak için, yazılım geliştirmenin ne anlama geldiğinin tartışılmasının ötesinde, etkileşimli bir demo muhtemelen harika bir fikirdir. Tercihen, kameradaki tüm bu dev resimlerin otomatik olarak yeniden boyutlandırılması gibi bir problemi çözen bir şey. Biraz daha karmaşık olsa da, arkadaşlarıyla paylaşabileceği basit bir mesaj bırak web sayfasıyla eğlenebilir. Yeni bir mesaj gönderildiğinde herhangi birisine bir e-posta gönderebilir ve sizinki yerine onun e-postasına göndermek için kodu düzenlemesini sağlayabilirsiniz. Ayrıca, sayfanın son X sayısını göstermesini ve bu sayıyı ayarlamasını sağlayın ve sonuçların ne olduğunu görün.


1

Eskiden çalıştığım yerde bazen iş tecrübesi olan çocuklar geliyordu. Bazıları bilgisayarlarla ilgileniyordu, bazıları değildi. Onları bir bilgisayarın önüne oturtmalarını ve tahmin oyunu yazmalarını sağladık. (Bilgisayar rastgele bir sayı seçer, kullanıcı tahminleri çok yüksek / düşükse geri bildirim alır.) Yapması basit ve gerçekten eğlenceli bir sonuç. Hiçbir şey, onlara ne yaratabileceklerini somut bir şekilde göstermekten daha güçlü olamaz.


1

Almak istediğin zaman - ve devam et - birinin dikkatini, sonra sor, söyleme. Su içmek gibi basit bir görevi nasıl yerine getireceklerini sorun. O zaman onlara verilen talimatları takip ederek ("Koridordan aşağı inmek" gibi) gerçekten ne zaman sola dönüp, sağa dönüp durduracağınızı vb. Sorunlarla nasıl başa çıkmadığını gösterin. programlama! Ardından, "do-until" döngüsünün "duvara gelene kadar yürüyün" şeklindeki bir durumla nasıl başa çıkabileceğini, diğerlerinin önünde duran bir görevden meta-görevler yapabildiğini gösterebilirsiniz. Yürüme


1

Bunun bir efsane mi yoksa gerçek bir hikaye mi olduğundan emin değilim, ama bir gün neden bu kadar sert davrandığını okuyordum. Bir hikayenin bir parçası, bir trende tanıştığı bir çocuğa (ya da belki de çocuklara) programlamayı gösterdiği idi.
Bazılarınızın bildiği gibi, _why bir Ruby adamdı (ve Ruby, normal insanlara karşı oldukça arkadaşça davranıyor). Ruby'de bir oyun üzerinde çalışıyordu, bazı çocuklar ne yaptığını görmek için ona yaklaştı. Onlara önce sonucu gösterdi - çalışma oyunu. Ardından, çocuğa sonucu değiştirmek için kodda işleri nasıl değiştirebileceğini gösterdi . Sonra çocuğun kodla oynamasına izin verdi ve değiştirilmiş sonucu gördü .
Bunun genel iş akışınız olması gerektiğini düşünüyorum - sonuç, değişiklik, oynatma. İnsan dostu bir dilde (oyun en iyi seçenek olacak) bir proje bulmalı ve çocuğa göstermelisiniz.

Üzgünüm, bu hikayenin doğru olup olmadığı hakkında hiçbir fikrim yok. Hala çok havalı.

Ayrıca, bir şey daha. Programlama ile ilgili ilk deneyimimi hatırlıyorum - MessageBoxDelphi'de. Güzeldi, çünkü bilgisayar istediğimi yapıp hemen sonucu görebiliyordu.
Sonra, mikrodenetleyiciler belirdi. Daha da iyiydiler, çünkü kodum gerçek dünyayı değiştirebilirdi. Yani, değişkene bir değer atamak, soyut olarak durdu, çıkış portunda voltaj oluşmasına neden oldu ve bu da motorumun hareket etmesine neden oldu. Çok iyiydi. Bu yolu seçmek isteyebilirsiniz - çocuğa Arduino gibi bir şey gösterin.

Görüyorsunuz, bence her şey sonucu değiştirmek ve görmekle ilgili.


0

Ona yaptığınız bazı şeylerin sonucunu gösterin. Genel olarak projelerdeki rolünüz hakkında konuşun. Belki ilgilenirse, merhaba bir dünya yapmasına yardım etsin.


0

Programlamada en sevdiğim analoji, Satanicpuppy gibi sihirbazlık (harry potter stili). Bunu hem teknik olmayan hem de çocuklar için kullanıyorum, gayet iyi çalışıyor gibi görünüyor ve bilgisayarların bize verdiği gücü kesinlikle aktarıyor.

Bilgisayarlar bizim sihirli değneklerimizdir. Bileğimizin ve çıkıntıların doğru hareketi ile sihir yapmamıza izin veriyorlar. Programcılar olarak, seleflerimizin çalıştığı ve rafine ettiği yazım kitaplarına (kütüphaneler) erişebiliyoruz. Yeni büyüler ve büyüler yaratabilir veya var olanlarla çalışabiliriz. Bazıları kolaydır, bazıları gerçekten etkili bir şekilde kullanmak için daha fazla pratik yapar, sık sık takaslar ve aynı sorunu çözmek için birçok farklı yol vardır (iyi bir iksir mi yoksa bir teşvik mi kullanmalıyım?).

Bu genişletilmiş metafor gerçekten iyi bir şekilde gerilebilir ve çoğu zaman programlamaya olan tutkumun alan dışındaki kişilerce erişilebilecek bir şekilde aktarılmasını sağlar.


0

Çocukları anlamanın en iyi yolu önce çocuk olmaktır ..! Çocukken, ev ödevi yapmaktan, empoze etmekten vb nefret ederdim ..! yani onların dikkatini çekebileceğin giriş noktaları var. Her şeyi açıklayamasak da 30 dakikalık aralıkta, onlara ilgi duyan çocukların ilham kaynağı bulduğu bir tür poz vermeye çalışabiliriz. Ödevler vb. Gibi ilgili konularla başlayın. Onlara bir bilgisayarın nasıl birkaç saniye içinde nasıl dayatma yazabileceğini söyleyin.

Herşeyin gönlünüzce olması dileğiyle.. ! aferin

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.