Eğer geri dönüp beceri setini tekrar öğrenmen gerekirse, bunu nasıl yapardın? [kapalı]


16

Küçük erkek kardeşim programlamaya başlamak istiyor. 14 yaşında ve teknik olarak eğimli, ancak gerçek bir deneyim programlama yok. Bana rehberlik istiyor ve deneyimim yeterliymiş gibi hissetmiyorum, bu yüzden burada soracağımı düşündüm.

Web programlama ile daha çok ilgileniyor, ancak masaüstü / mobil / sunucu uygulamalarına da ilgi duyuyor.

Onun alması için iyi bir öğrenme yolu ne olurdu? Noel'e başlaması için ona bir sürü kitap alacağım; soru şu ki, ne öğrenmeli ve hangi sırada?

Gördüğüm şekilde, teori ve kodu öğrenmesi gerekiyor. Onu Python veya Ruby veya PHP ile başlatmak istiyorum. Web'e girmek istiyorsa, HTML, CSS, Javascript vb. Öğrenmesi gerekecek.

Bu üç alandan (Diller, Teori, Biçimlendirme / vb.), Öğrenmeyi düşündüğünüz en iyi düzen nedir? Ayrıca, bir şey eksik mi?

Teşekkürler!


18
Kitaplar yerine, bir barındırma sitesine bir yıllık abonelik satın alın. Web'de yeni başlayanlar için ücretsiz var. Siteleri bilgisayarınıza evde koymak sadece bir ergen için çok güzel bir faktördür.
JeffO

Haha, onu kurduğum bir dizi VPS çalıştırdım, o yüzden o departmana gitmek iyi olmalı!
vorbb

Yanıtlar:


10

Ona StackOverflow.com ve Programmers için bir hesap açın.

ve alışkanlık haline onu gezen farklı zaman soruları o olduğunu sıkılmış . En popüler / en popüler sorularla başlayın.

Ayrıca

Onu ile gelip Yardım gol istediği şey yaratmak için , yani onun ötesinde hafifçe basit bir oyundur tweet gönderebilir bir uygulama? Heyecan verici bir şey olmalı . Bu, ortaya koyduğu konulara rehberlik edecek ve yarattığı somut çıktı yoluyla ona motivasyon sağlayacaktır .

Ve

Mümkün olduğunda, dijital baskı ile iyi çalışırsa fiziksel formda kitaplar satın almayın , eminim ki birinizin bir android veya iphone veya blackberry veya ipod touch'ı var mı? İbooks veya kindle uygulamasını edinin ve dijital sürümleri satın alın .

Fiziksel bir kitapla uğraşmak bilgi edinme sürecini yavaşlatır; dijital okuyucularda bulunan araçlar teknik okumaya birçok fayda sağlar.

Not: Yorumlarda belirtildiği gibi, dijital ve basılı kitapların dezavantajları vardır, bu yüzden bu noktayı bir tuz tanesi ile alın


15
Dijital okuma konusunda hemfikir değilim. Aslında öğrencilere kağıtları veriyorum ve okumasını sağlıyorum. Bir bilgisayarda, diğer şekerlerin çok yakında dikkatini dağıtırlar. Kavramları incelemek, tecrübelerime göre herhangi bir dijital cihazdan daha iyi yapılır. Ayrıca cep telefonunda okumak gözlerinizi öldürür. Şema ve rakamlarla ne olacak? tek avantaj bağlantılardır, ancak bu öğrencilerimize çok fazla yardımcı olmadı.
Joris Meys

1
@Joris Meys, mobil okumanın gözlerde daha zor olduğuna ve 'diğer şekerden rahatsız olmanın' bir sorun olacağını kabul ediyorum, ancak aynı zamanda kayıpları kolayca arayabildiğimde bilgileri daha hızlı emebiliyorum adet ... Yeni bir şey araştırırken tarayıcımda çıkardığım sekmelerin sayısını tahmin etmeye bile başlayamıyorum.
instanceofTom

6

Ben gerçekten ben programlama giren olmadıkları şekilde; Değişmeyi hayal edebildiğim tek şey kitaplara erişimim. Ailemin yiyebileceğim tüm kitaplar için parası yoktu ve küçük kırsal kütüphanemiz teknik el kitaplarını tam olarak stoklamadı. Şeylerin büyük şemasında, bu küçük bir nitpick.

14 yaşında teori öğrenemeyeceğinizi söyleyenlere yürekten katılıyorum. Teori ne kadar erken öğrenirseniz o kadar iyi olur. Bilgisayar Programlama Sanatı'nı 14 yaşında okudum , ancak bir süredir kod yazmıştım.

Kardeşiniz için yapabileceğiniz en iyi şey ona ilgi alanlarını sürdürmek için araçlar vermek ve mümkün olduğunca hacker / kodlayıcı topluluğuna dahil etmek, böylece büyük bir kodlayıcının zihniyetini öğrenebilmektir .

  • Mümkün olan yerlerde onu özel araçlardan uzaklaştırın. Açık kaynak dünyasında çok daha fazlası var. Açık kaynak topluluğundaki daha deneyimli insanlardan aldığım rehberlik nedeniyle büyük ölçüde iyiyim.

  • Ödeyebiliyorsanız, ona bir Safari hesabı edinin veya gerektiğinde kitap satın almasına yardımcı olun. Sahip olduklarınızı ödünç vermek bile yardımcı olabilir.

  • Denemek için iyi bir masaüstü veya dizüstü bilgisayara ve bir sunucuya veya VPS'ye erişimi olduğundan emin olun . Mobil uygulamalar onun işiyse, üzerinde çalışacak bir telefonu veya demo cihazı olduğundan emin olun.

  • Çalışmak istediği şeyler için ona IRC kanallarını, posta listelerini vb. Nasıl bulacağını gösterin.

  • Akıllı soruları nasıl soracağını ve tam tersine bir destek sülükünün ayrıntılarını bildiğinden emin olun , böylece ne yapmaması gerektiğini bilir.

  • İlk programlama dili en önemli faktör değildir. Öğrendiği programlama dillerinin toplamı son derece önemlidir. Tek dil kodlayıcıları hiçbir zaman belirli (nispeten düşük) bir kodlama-foo seviyesini geçmez.


Kesinlikle orada katılıyorum. Montajcıya 14 yaşındaydım, parlak bir çocuk için kesinlikle çok genç değilim. 14. doğum günü hediyem için RISC OS PRM'leri vardı. ( computinghistory.org.uk/userdata/PRODPIC-12025.jpg - Tanrım bu kitapları sevdim). Ama sonra 7'de başladım.
Aralık'ta Orbling

3

Cep telefonu arenası için bir şeyler öğrenmeye giderdim. Bir telefon emülatörü olan bir IDE ile kurmasını sağlayın ve ona uygulamaları itebileceği bir telefon alın .

Onu, kitaplarınıza rehberlik etmesi için bazı teorilerle desteklenen gerçek dünya kullanımı ve hackleme için kurun. İyi örneklere sahip olduklarından emin olun.


Gerekli donanımı vermek için +1. Bu, bilgiden çok daha önemli bir konu olacak.
Joris Meys

2

Eğer kolej çağında okula giderdim. Lise yaşını alırsam liseyi alırdım.

Bir görevim olacak ve müfredatı 14'te ayarlayacağım.

birçok kişi bunun için beni aşağı olacak ama Visual Basic .NET, sadece insanlar söyleyerek bazıları için daha kolay gibi görünüyor. İnisiyasyonda olmayanlar için böyle görünüyor.


3
Eğer ağabey yardım edebilirse veya yerel lise bunu kullanırsa, bu daha faydalı olabilir. Şimdi .NET IDE, bir web sitesi oluşturmayı kolaylaştıran ve seçilen dilde değil. Bir acemi C # kadar kolay alabilir? Mandarin zor bir dildir, ancak Çin'deki küçük çocuklar iyi durumdadır.
JeffO

2

Web dev ile başlamak güzel bir fikir. Gerçek bir acemi olsanız bile sonuç alabilirsiniz ve karışıklık yaşamanız önemli değildir.

Html / CSS + Php diyebilirim. Jeff'in yorumunda belirttiği gibi, sitesinin barındırılması önemli olacak ve Php sunucuları pahalı değil, hatta çoğu zaman ücretsiz.

Teoriye gelince, şimdilik şimdilik unuturum. Anladığım gibi, çoğunlukla eğlenmek istiyor ve yüzleşelim, teori çok eğlenceli değil. Ayrıca, eğer programlamayı seviyorsa, okulda bol miktarda olacak.

Açıkçası hepimiz güzel kodları önemsiyoruz, ama eğer sadece oynayacaksa, kodunun dağınık olması ne anlama gelir?


+1 Yeni başlayanlar için hızlı sonuçlara duyulan ihtiyaçtan bahsetmek ve rahatsız etmemek için uğraşmak.
Aralık'ta Orbling

2

web / masaüstü / mobil / sunucu programlama? Bana öyle geliyor ki, her şeyle ilgileniyor. Ancak sorun şu ki, bir şeyle başlaması gerekiyor.

Birçoğu katılmayacak, tabii ki buna "doğru" bir cevap yok, ama ben ona Python hakkında bir kitap satın alırım ( Öğrenme Python onu uzun süre meşgul edecek kadar kalın ve ayrıntılı) ve kesinlikle bir öğrendiğim şeylerin göz şekerine karşı iyi bir oranını verecek bir dil (yani bununla ne elde edilebilir). Yukarıdakilerin çoğu için de iyi bir başlangıç ​​noktasıdır.

Bundan sonra, yukarıda belirtilenlerin çoğunu neyin desteklediğine bakın ve onu bu yönde tavsiye ile yönlendirin.


2

Lisesi bilgisayar bilimi dersleri veriyor mu? Örneğin Amerika Birleşik Devletleri'nde Gelişmiş Yerleştirme programı, temel bilgisayar bilimi kavramlarının (kontrol akışı, temel nesne yönelimli geliştirme uygulamaları, döngüler, vb.) Biraz ilerleyen bir bilgisayar bilimi sınıfına sahiptir.

Temelde 4 yıl boyunca (giriş dersinden temel LIPS, MIPS ve Open GL'ye kadar) bilgisayar bilimi kursları sunan bir liseye devam edebildim. Üniversitedeki temel bilgileri test ettik ve daha sonra üst düzey kurslardaki diğer birçok dili ve konuyu yeniden öğrendim. Size söyleyebilirim ki, 14-17 yaşındaki beynin teoriyi 18-22 yaşındaki bir beyinden çok daha fazla zorlaması. Özyineleme, işaretçi aritmetiği, düşük düzey programlama, ağ topografyası ve fonksiyonel programlama gibi konular liseye gitmemi uzun sürdü, ancak üniversitede ikinci kez onları bir esinti buldum, belki de

Zor olmasına rağmen, 14'ten başlayarak CS aracılığıyla düşünmek son derece yararlıdır. Öğretmen olmadan yapmak karmaşık görünebilir. Web sayfalarını eğlenmek için zaman harcamış olurdum çünkü o zamanlar (ve şimdi) yapmayı sevdiğim şeydi, ama o zamanlar kendime asla işaretçiler, özyineleme ve LISP'yi öğretmedim.


1

Ben şahsen hardcore teorisi ile başlamazdım. Teorinin bazı unsurları ile iç içe pratik programlama ile başlardım. Çok daha motive olabilir ve onu korkutmaz.

Örneğin müzik okulları için bir durum. Öğrencilerin büyük bir kısmı teoriden sıkıldıkları ve sonunda ilgilerini yitirdikleri için istifa ederler.

Ayrıca, teori, pratikte ellerinizi kirletmeden önce öğrenildiğinde iyi değildir. Ne zaman ve nasıl uygulayacağınızı bilemezsiniz.

Ama eğer teori bilginiz varsa o zaman çok pratik yaptık, bundan sonra BT'de ciddi bir kurs sizi farklı bir seviyeye itecektir. Aksi halde, bir üniversitede geçirilen yıllar sadece sağır bir yılda boşa gider.

Bu sırayla:

  1. Donanım, bilgisayar mimarisi ve donanımın programlanması hakkında bazı temel teoriler. Sadece temel.

  2. Sonra pratik şeyler geliştirin. İlgiyi korumak için temel uygulamalar. Önce yerel, sonra grafikli bir şey. Web sayfaları henüz sunucu tarafı programlamayı göstermek istediğiniz için değil ve veritabanları olmadan genellikle işe yaramaz.

  3. Ona bazı veritabanı bilgisi ürünlerini bırakın

  4. Yerel uygulama veritabanı ile arayüz. Sonra web geliştirmeyi deneyin.

  5. İlerledikçe rotayı ayarlayın.


0

Şimdi bildiklerime dayalı mantıksal tercihim:

  1. Şimdi işlerin nasıl çalıştığını anlamak - Teknik açıdan eğimli olduğunu belirtirken, bir bilgisayarın bu noktada nasıl çalıştığını ne kadar iyi anlıyor? Örneğin, işaretleme ile komut dosyaları arasındaki farkları anlıyor mu? Bunu ya da bunu yapmak için küçük senaryolar yazmaya ne dersiniz? Bu, bir başlangıç ​​noktası için benim önerim olacaktır, çünkü etrafımızdaki şeyleri belirsizleştirmek, özgürce keşfedilebilecek tüm şeyler göz önüne alındığında iyi bir başlangıç ​​noktasıdır.

  2. Bir dil, IDE ve kaynak kontrolü seçin. Şimdi bu birisine fırlatılmak gibi görünüyor olsa da, bunlar biraz pratik yaparak daha büyük şeylere geçebileceği oldukça basit araçlardır. Nasıl "Merhaba Dünya!" JavaScript'te gömülü mesajı olan web sayfası, burada biraz daha somut bir şey isterse kötü bir başlangıç ​​noktası değildir.

  3. Şimdi bazı zor şeyleri eklemeye başlayın. Döngüler veya koşullar nasıl yapılır? Bu henüz bu kadar süslü değil, ama hala burada yapı taşı aşamasını anlıyoruz. Son olarak, sınıf fikrini ve bu kavramın arkasındaki bazı fikirleri tanıtın.

Birisi beceri setimin bazı temellerini almak isterse, bunlar başlayacağım yer olurdu.


0

Bunu söyleyeceğimi hiç düşünmemiştim, ama ona Alice 3.0 getir .

Alice'ten bin güneşin yanan öfkesi ile nefret ediyorum, ama iyi bir öğretici ile birleştiğinde programlamanın temellerini (döngüler, ifadeler, işlevler, vb.) Öğretmek kesinlikle iyi bir iş çıkarır.

Temel bilgileri öğrendikten sonra, daha pratik bir metin tabanlı dile geçin.


0

Onu Python veya Ruby veya PHP ile başlatmak istiyorum. Web'e girmek istiyorsa, HTML, CSS, Javascript vb. Öğrenmesi gerekecek.

Bu makul görünüyor. Bazı temel becerileri uygulayın ve ilgilenmeye devam edeceği zorlu bir proje için bir fikir edinmesine yardımcı olun.

İlk deneyimlerinin mükemmel olması gerekmez, aslında bir ton hata erken yaparsa yardımcı olacaktır. Sadece bilgisini genişletmekle ilgilenmeye devam etmesini istiyorsun. Sınırlarını aştığında, yardım için yalvarır ve referans materyaline dallanmamışsa onu doğru yöne yönlendirebilirsiniz.


0

Ona Test Odaklı Geliştirme hakkında bir kitap getirin. Katı ünite testlerini ona ikinci doğa yapacak. Keşke benim programımın çekirdeği olarak testler yapmayı bir kareden öğrenmiş olsaydım.


0

Ona C tabanlı bir dille başlardım. Onlar için daha faydalı kaynaklar olduğunu gördüm. Kodunuzu nasıl tasarlayacağınız ve biçimlendireceğiniz konusunda iyi bir kodlama ilkeleri kullanmaya başlamak için bir kitap almayı da düşünebilirsiniz. Buna adanmış bir sınıfım vardı ve doğru hatırlıyorsam "Temiz Kod" ve "Yazılım Geliştirme: Tasarım İlkeleri" başlıklı bir kitap kullandık. Ayrıca bu siteye daha erken tanıtılmamı dilerdim haha.

Bana en çok yardımcı olan şey, üniversite kariyerimin başında staj yapmaktı. Birinci sınıf öğrencisi olarak kariyer fuarlarına gittim ve ikinci sınıfımda staj yaptım. Ayrıca her zaman üzerinde çalıştığım bir projem var ve daha önce hiç yapmadığım bir şeyi yapmayı seviyorum, böylece öğrenmeye devam edebiliyorum. Şu anda bir Ahududu Pastası kullanmak ve Apple'ın Siri'sini bir ev otomasyon sistemi için uygulamak üzerinde çalışıyorum.

Temel olarak, eğlenceli tutmak için ne gerekiyorsa yapın. Sinirlenmeyin. Aralar vermek. Kitaplara çok fazla kapılma. Bazen öğrenmenin en iyi yolu, sadece denemek ve deneme yanılma kullanmaktır.

Oh ... ve Google'a nasıl yapacağınızı öğrenin :)


0

  • c
  • c ++
  • temel programlamaya kadar python
  • sonra HTML
  • css
  • javaScript
  • css ile çok önemli ve javascript'i minimum doğrulama seviyesine kadar zorlayın
  • sonra html ve url almak için python srart
  • tüm aşama tamamsa çerçeve


    seviyeleri takip edilir

  • temel anatomiyi anlamak için komut istemi ile temel seviye
  • uygulama seviyesi
  • fare grafik seviyesi
  • web seviyesi
  • tasarım seviyesi
  • veritabanı seviyesi


    öğretirken bir şeyleri modülerleştirmeyi unutmayın, c / c ++ veya python vb. bilinceye kadar javascript'i anlamayacaktır.

  • temel programlamayı öğrendikten sonra kolayca HTML yapabilir
  • o html biliyorum kez css sevdim
  • ama durun ve css ile daha fazla deneyin böylece yeni fikirler üretecek ve o proje ile başlamak için yardıma ihtiyacı olduğunu hissediyorum o zaman projenin tamamlanması için javascript ve veritabanı ile python öğrenmeye çalışacaktır.



    04/07/2013 tarihinde eklendi

    14 yaşındayken programlamada ellerini denemek istediğinizde, önce görevi veya projeyi veya temel yönergeleri tamamlamak için hangi kaynağa ihtiyacım olduğunu anlamanız gerekir, yanı sıra yazımda bahsettiğim önce temel programlamayı öğrenir, size yardımcı olacaktır programların veya yazılımların döngü ve durumla nasıl çalıştığını anlamak için, bir sonraki adımda her şeyi anladığımı düşündüğümde, ancak bir yere tıkladığımda fareye nasıl erişeceğinizi veya bir şey yapacağımı bilmiyorsanız, grafik ve fare gibi bazı kütüphaneleri deneyeceksiniz, böylece anlıyorsunuz Bu nasıl çalışır, bir sonraki soru, düğmelerimi nasıl yerleştirebileceğimi ve etkinliklerimi kodumla etkileşime girebilecekleri konusunda aklınıza gelecek, böylece olay programlamayı öğrenmek isteyeceksiniz, bu aşamayı tamamladığınızda, bir sonraki soru ortaya çıkacak kodu ve i işlev biraz karmaşık çağırmak bilmiyorum,uygulama için modülerleştirme, nesne ve sınıfları deneyeceksiniz,

    Bundan sonra temel uygulama oluşturmak için nasıl biliyorum ama veritabanı için uygulama yapmak istiyorum, o zaman Veritabanı akla geliyor, öğrenmek istiyorum ama sorun veritabanı ile çalışacak kod ile bağlanmak zor hissediyorum komut istemi,

    onun programlı bir yaklaşım inanıyorum, aynı yoldan yapıyorum ve öğreniyorum ve temellerim çok açık, bu yüzden rutinlerin veya programın nasıl çalıştığını
    anlayabiliyorum , anladığınız ve kendiniz için çok emin olduğunuzda masaüstüne HTML için aynı becerileri denemenizi sağlayabilirsiniz


    html'yi denediğinizde, daha önce temelde öğrendiğinizden çok daha kolay hissedeceksiniz, çünkü temelde çok fazla zaman harcadınız.
    html'de, yapıyı ve kodun nasıl çalıştığını anlayın, bu şeyleri öğrendikten sonra, uygulama için doğrulama ve veritabanı bağlantısı vermek, denemek ve bir günde başarılı olmak, form yer düğmeleri kolayca builkd ve halp ile doğrulayabilirsiniz javascript, o zaman kendinize bir soru soracağım her şeyi yaptım ama ne internette gördüğüm ile dosnt maç bakmak hakkında, bu yüzden css ile sert deneyin, en iyi IDE veya dreamweaver css için özveriyle denerseniz eminim hTML / css ile aşık olun.

    HTML ile basit bir uygulama veya web yapmanız yeterli
    , belirli bir noktada köprülerin iyi çalıştığını bildiğinizde kendinize nasıl dinamik hale getireceğinizi başka bir soru soracaksınız, o zaman dinamik ne yapar, veritabanı hakkında düşünmenizi sağlar, önceden öğrenirsiniz ,


    evet bu benim açımdan, kayıtları göstermek, kayıt eklemek, kayıt silmek ve yerel olarak javascript ve sunucu tarafı programlama ile veritabanı ile oynamak, daha sonra diğer kavram otomatik olarak aklınıza gelecek, kullanıcı, doğrulama, oturum, kullanıcı geçmişi, uluslararasılaşma vb
    ve temeliniz açık olduğu ve görevi tamamlamak için ne yapmanız gerektiğini ve hangi kaynağa ihtiyacınız olduğunu biliyorsunuz


    tüm aşamalar bu. temel bilgiler de çok önemli ve doğru adımlar. Temel bilgileri öğrendikten sonra kolayca başka bir dil öğrenebilir veya
    okuduğunuz için bir dilden başka bir dile geçiş yapabilirsiniz

    04/07/2013 tarihinde eklendi

    progarme, bir dizi talimat ve rutinlerden başka bir şey değildir, örneğin günlük rutininiz, uyanırız, banyo yaparız, öğle yemeği, iş, akşam yemeği, uyuruz.
    ama görevlerden herhangi birini yanlış yaparsak rahatsızlık duymazsak, işiniz olmadığında veya tatilde gün pazarsa durum değişiyor ve günlük rutinler de, yani başka şeylerle eşleşiyorsunuz, programlama yaklaşımı gibi, pratikten, kitapların söylediklerinden değil, kitaplar referans için iyidir, ancak nasıl tepki verdiğimizi anlar, if-else ifadesi yardımıyla çalışır, örneğin: iki çalışmamız olduğunu ve her ikisinin de çok önemli olduğunu varsayalım, ancak sadece her seferinde bir tane, birincisini seçip tamamlayabilirsin, sonra eve gidebilirsin, ikincisini seçersen, sonraki 5 saat çalışmalısın, aksi halde her ikisini de tamamlarsan, 1 günlük izin alırsın, programlama yaklaşımı hakkında


  • 2
    Cevabınız ayrıntılar üzerinde ağır, gerekçelendirmeye açık. Bu yolun neden en iyi olduğunu düşündüğünüzü açıklarsanız cevabınız daha güçlü olurdu.
    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.