
**αρχική ερώτηση**


Είμαι σήμερα ασχολείται με τη διδασκαλία του αδελφού μου για το πρόγραμμα. Είναι ένα σύνολο αρχάριος, αλλά πολύ έξυπνη. (Και στην πραγματικότητα θέλει να μάθει). Έχω παρατηρήσει ότι μερικά από συνεδρίες μας έχουν πάρει κολλάμε σε μικρές λεπτομέρειες, και δεν αισθάνομαι έχω πολύ οργανωμένη. ( *Αλλά οι απαντήσεις σε αυτή τη θέση έχουν βοηθήσει πολύ.* )


Τι μπορώ να κάνω καλύτερα να τον διδάξει αποτελεσματικά; Είναι μια λογική σειρά που μπορώ να χρησιμοποιήσω για να τρέξει μέσω της έννοιας του έννοια εκεί; Οι περιπλοκές θα πρέπει να αποφεύγουν μέχρι αργότερα εκεί;


Η γλώσσα εργαζόμαστε με είναι [Python](http://www.python.org) , αλλά η συμβουλή σε οποιαδήποτε γλώσσα είναι ευπρόσδεκτη.




---


**Πως να βοηθήσω**


Αν έχετε καλές προσθέστε την ακόλουθη στην απάντησή σας:


* Αρχάριος Ασκήσεις και Ιδέες Έργου
* Πόροι για τη διδασκαλία αρχάριους
* Screencasts / blog θέσεις / δωρεάν e-books
* βιβλία εκτύπωσης που είναι καλό για αρχάριους


Παρακαλείσθε να περιγράψετε τον πόρο *με μια σύνδεση με το* έτσι μπορώ να ρίξετε μια ματιά. Θέλω όλοι να ξέρουν ότι έχω σίγουρα χρησιμοποιήσει κάποιες από αυτές τις ιδέες. Υποβολές σας θα πρέπει να συγκεντρώνονται σε αυτή τη θέση.




---


**Online Resources** για τη διδασκαλία αρχάριους:


* [Μια απαλή Εισαγωγή στον Προγραμματισμό χρήση Python](http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-189January--IAP--2008/CourseHome/)
* [Πώς να σκέφτονται σαν ένας επιστήμονας υπολογιστών](http://openbookproject.net/thinkcs/python/english2e/index.html)
* [Αλίκη: Ένα 3D πρόγραμμα για αρχάριους](http://www.alice.org/)
* [Scratch (ένα σύστημα για την ανάπτυξη δεξιοτήτων προγραμματισμού)](http://scratch.mit.edu/)
* [Πώς να σχεδιάσει προγράμματα](http://www.htdp.org/)
* [Δομή και ερμηνεία των προγραμμάτων ηλεκτρονικών υπολογιστών](http://mitpress.mit.edu/sicp/full-text/book/book.html)
* [Μάθετε για τον προγραμματισμό](http://pine.fm/LearnToProgram/)
* [Robert Διαβάστε είναι πώς να είναι ένας προγραμματιστής](http://samizdat.mines.edu/howto/HowToBeAProgrammer.html)
* [Η Microsoft XNA](http://creators.xna.com/)
* [Ωοτοκίας Η επόμενη γενιά των χάκερ](http://vodpod.com/watch/914464-inspirational-oscon-keynote)
* [*COMP1917 Ανώτατη Computing* διαλέξεις του Richard Buckland](http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444) (απαιτείται το iTunes)
* [Dive σε Python](http://diveintopython.net/)
* [Python Βικιβιλίων](http://en.wikibooks.org/wiki/Programming:Python)
* [Έργο Euler](http://projecteuler.net/) - προβλήματα του δείγματος (κυρίως μαθηματική)
* [pygame](http://www.pygame.org/) - μια εύκολη βιβλιοθήκη python για τη δημιουργία παιχνιδιών
* [Εφεύρουμε τη δική παιχνίδια στον υπολογιστή σας με Python](http://inventwithpython.com/IYOCGwP_book1.pdf)
* [Θεμέλια Προγραμματισμός](http://codebetter.com/blogs/karlseguin/archive/2008/06/24/foundations-of-programming-ebook.aspx) για το επόμενο βήμα πέρα από τα βασικά.
* [Τρίξιμο από το Παράδειγμα](http://www.iam.unibe.ch/~scg/SBE/)
* [Φίδι διένεξη για τα παιδιά](http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/) (δεν είναι μόνο για τα παιδιά!)




---


**Συνιστάται Βιβλία Εκτύπωση** για τη διδασκαλία αρχάριους


* [Ταχεία C ++](http://www.acceleratedcpp.com/)
* [Python Προγραμματισμός για την απόλυτη αρχάριους](http://rads.stackoverflow.com/amzn/click/1598631128)
* [Κωδικός από τον Charles Petzold](http://rads.stackoverflow.com/amzn/click/0735611319)
* [Python Προγραμματισμός: Εισαγωγή στην Επιστήμη των Υπολογιστών 2η Έκδοση](http://rads.stackoverflow.com/amzn/click/1590282418)

 
Καλύτερους τρόπους για να διδάξει ένας αρχάριος να προγραμματίσει;
==================================================================



Αν ενδιαφέρεται, δεν είναι οι μικρές λεπτομέρειες τα καλά μέρη; Χρησιμοποιώντας python, έχετε ήδη κόψει το γραφικό περιβάλλον μακριά από αυτό, έτσι ώστε η σύγχυση έχει φύγει. Γιατί να μην πάρει ένα σχέδιο, ένα παιχνίδι ή κάτι τέτοιο, και να την εφαρμόσουν. Η κλασική hi-lo αριθμός παιχνίδι εικασίας μπορεί να εφαρμοστεί μόνο από τη γραμμή εντολών σε 20-30 γραμμές κώδικα (ανάλογα με τη γλώσσα του φυσικά) και σας δίνει μεταβλητές, οι συνθήκες, loops, και που εισάγει ο χρήστης.

 

Πρώτα απ 'όλα, ξεκινούν όπως και όλοι οι άλλοι κάνει: με ένα [Hello World](http://en.wikipedia.org/wiki/Hello_world) πρόγραμμα. Είναι απλό, και τους δίνει μια βασική ιδέα για τη διαμόρφωση ενός προγράμματος. Δοκιμάστε το και θυμηθείτε πίσω όταν για πρώτη φορά τον προγραμματισμό, και πόσο δύσκολο μερικές από τις έννοιες - έναρξη απλό. 


Μετά Hello World, να προχωρήσουμε στη δημιουργία ορισμένων βασικών μεταβλητών, αριθμητική, στη συνέχεια, σε boolean λογική και εάν / άλλο δηλώσεις. Αν έχετε ένα από τα παλιά σχολικά βιβλία προγραμματισμού σας, δείτε μερικά από τα πρώτα παραδείγματα και να τον τρέχουν μέσω αυτών. Απλά μην προσπαθήσετε να εισαγάγει πάρα πολύ όλα με τη μία, ή θα είναι συντριπτική και σύγχυση.

 

Εγώ πραγματικά θα έλεγα να πάρει μια πιο απλή γλώσσα με λιγότερες οδηγίες. Εγώ προσωπικά έμαθα για τις βασικές στο σπίτι, όπως [έκανε ο Jeff](http://www.codinghorror.com/blog/archives/001104.html) . Με αυτό τον τρόπο, δεν χρειάζεται να υπεισέρχεται σε πιο περίπλοκα θέματα όπως αντικειμενοστραφή προγραμματισμό, ή ακόμα και διαδικασίες εάν δεν θέλετε να. Από τη στιγμή που μπορεί να χειριστεί απλές ροή ελέγχου, και στη συνέχεια να προχωρήσουμε σε κάτι λίγο πιο περίπλοκο, αλλά μόνο απλές λειτουργίες.


Ίσως ξεκινήσει με πολύ απλά προγράμματα που προσθέτουν μόνο 2 αριθμούς, και στη συνέχεια να αυξηθεί σε κάτι που μπορεί να απαιτήσει ένα κλαδί, τότε ίσως διαβάζοντας εισόδου και ανταποκρίνεται σε αυτό, τότε κάποιο είδος βρόχου, και να αρχίσει συνδυάζει όλα μαζί. Μόλις αρχίσει λίγο και απασχοληθείτε στον τρόπο σας επάνω. Μην κάνετε κανένα μεγάλα έργα μέχρι που μπορεί να συλλάβει τις βασικές αρχές (αλλιώς μπορεί πολύ καλά να είναι πάρα πολύ δύσκολο και θα μπορούσε να εγκαταλείψει στη μέση). Μόλις αυτός είναι κατακτηθεί BASIC ή οτιδήποτε άλλο που θα επιλέξετε, να προχωρήσουμε σε κάτι πιο περίπλοκο.


Απλά μου $ 0.02

 

Κάτι που θα πρέπει να είναι πολύ προσεκτικοί της, ενώ η διδασκαλία του αδελφού σας για το πρόγραμμα είναι για αυτόν να μην στηρίζεται υπερβολικά σε σας. Συχνά, όταν βρω τον εαυτό μου βοηθώντας τους άλλους θα αρχίσουν να σκέφτονται για μένα το βιβλίο απάντηση σε όλες τις ερωτήσεις τους και αντί να πειραματίζεται για να βρει μια απάντηση απλά ρωτήστε με. Συχνά, ο καλύτερος δάσκαλος είναι ο πειραματισμός και κάθε φορά που ο αδελφός σου έχει μια ερώτηση όπως «Τι θα συμβεί αν προσθέσω 2 σε μια σειρά;» θα πρέπει να του πω να το δοκιμάσετε και να δείτε για τον εαυτό του. Επίσης έχω παρατηρήσει ότι όταν δεν μπορώ να πάρετε μια ιδέα μέσα σε κάποιον, βοηθά να δούμε κάποια δείγματα κώδικα, όπου μπορούμε να δούμε κάθε τμήμα ξεχωριστά και να εξηγήσει το κομμάτι από το κομμάτι. Σαν δευτερεύουσα σημείωση ανθρώπους νέους στον προγραμματισμό έχουν συχνά προβλήματα με την ιδέα του αντικειμενοστραφούς προγραμματισμού, θα πουν ότι το καταλάβουν όταν το διδάσκουν σε αυτά, αλλά δεν θα πάρει μια σαφή αντίληψη της έως ότου πραγματικά εφαρμογής.

 

Θα μπορούσατε να δοκιμάσετε χρησιμοποιώντας [την Αλίκη](http://www.alice.org/) . Είναι ένα 3D πρόγραμμα που έχει σχεδιαστεί για χρήση σε εισαγωγικά μαθήματα προγραμματισμού.


Τα δύο μεγαλύτερα εμπόδια για τους νέους προγραμματιστές συχνά:


* συντακτικά λάθη
* κινήτρων (γράφοντας κάτι σημαντικό και διασκέδαση και όχι σκηνοθετημένη)


Alice χρησιμοποιεί μια διεπαφή drag and drop για την κατασκευή προγραμμάτων, αποφεύγοντας το ενδεχόμενο συντακτικά λάθη. Alice σας επιτρέπει να κατασκευάσει 3D κόσμους και να έχουν τον έλεγχο τον κωδικό σας χαρακτήρες (απλή) 3D και animation, το οποίο είναι συνήθως πολύ πιο ενδιαφέρουσα από την εφαρμογή συνδεδεμένες λίστες.


Οι έμπειροι προγραμματιστές μπορεί να κοιτάξει κάτω σε Alice ως παιχνίδι και να γελούν με μεταφορά και απόθεση γραμμές κώδικα, αλλά [η έρευνα](http://www.alice.org/index.php?page=publications/publications) δείχνει ότι αυτή η προσέγγιση λειτουργεί.


Αποποίηση: Δούλεψα στην Alice.

 

Ένα μάθημα καλή python είναι του MIT [μια απαλή Εισαγωγή στον Προγραμματισμό χρήση Python](http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-189January--IAP--2008/CourseHome/) . Είναι όλα δωρεάν online, και δεν χρειάζεται να είναι μια uberstudent MIT για να το καταλάβουν.



> 
> Επεξεργασία [ [Justin Τυπική](https://stackoverflow.com/users/92/justin-standard) ]
> 
> 
> Το μάθημα αυτό χρησιμοποιεί αυτό το δωρεάν online βιβλίο: [Πώς να σκέφτονται σαν ένας επιστήμονας υπολογιστών](http://www.openbookproject.net/thinkcs/python/english2e/index.xhtml)  
>  
>  Είμαι σίγουρα το βρείτε αρκετά χρήσιμο.
> 
> 
> 

 

Είχα να συνεργαστεί με αρκετούς αρχάριους (ποτέ δεν έγραψε ούτε μια γραμμή κώδικα) προγραμματιστές, και θα κάνω ένα μετά το σχολείο εργαστήριο με μαθητές γυμνασίου αυτό το φθινόπωρο. Αυτό είναι το πιο κοντινό πράγμα έχω να τεκμηρίωσης. Είναι ακόμα ένα έργο σε εξέλιξη, αλλά ελπίζω ότι βοηθά.


1) **FizzBuzz.** Ξεκινήστε με προγράμματα γραμμής εντολών. Μπορείτε να γράψετε κάποια διασκέδαση παιχνίδια, ή εργαλεία, πολύ γρήγορα, και μπορείτε να μάθετε όλες τις γλώσσες χαρακτηριστικά πολύ γρήγορα χωρίς να χρειάζεται να μάθουν τα εργαλεία GUI για πρώτη φορά. Αυτές οι πρώτες εφαρμογές θα πρέπει να είναι αρκετά απλό ότι δεν θα πρέπει να χρησιμοποιείτε εργαλεία πραγματικό εντοπισμού σφαλμάτων για την λειτουργία αυτών.


Αν μη τι άλλο τα πράγματα όπως FizzBuzz είναι καλά έργα. Η πρώτη σας μερικές εφαρμογές δεν θα πρέπει να ασχοληθεί με το ΒΔ, το σύστημα αρχείων, διαμόρφωση, κλπ. Αυτές είναι έννοιες που μόνο μπερδεύουν τους περισσότερους ανθρώπους, και όταν είστε ακριβώς εκμάθηση της σύνταξης και τα βασικά χαρακτηριστικά πλαισίου που πραγματικά δεν χρειάζονται περισσότερη πολυπλοκότητα.


Μερικά από τα έργα:


* Γειά σου Κόσμε!
* Πάρτε το έτος γέννησης μου, και να υπολογίσετε την ηλικία μου (μόλις (τώρα - τότε) δεν διορθώσεις μήνα). *(απλά μαθηματικά, εισόδου, εξόδου)*
* Ζητήστε μια κατεύθυνση (επάνω, κάτω, αριστερά, δεξιά), τότε πείτε στον χρήστη την τύχη τους (πτώση σε μια τρύπα, να βρουν μια τούρτα, κλπ). *(Boolean λογική)*
* FizzBuzz, αλλά μετράνε μία φορά κάθε δευτερόλεπτο. *(Βρόχοι, χρονόμετρα, και πιο λογική)*
* Ανάλογα με την ηλικία τους, κάποιοι ήθελαν πραγματικά μια εφαρμογή που καλεί στους χρήστες μια τυχαία προσβολή σε κάποιο χρονικό διάστημα. *(Loops, πίνακες, χρονόμετρα, και τυχαία αν κάνετε το διάστημα τυχαία)*


2) **Απλή έργου** στιγμή που έχουν μια καλή κατανόηση των χαρακτηριστικών γλώσσας, μπορείτε να ξεκινήσετε ένα έργο (απλό, διασκεδαστικό παιχνίδια λειτουργούν καλά.). Θα πρέπει να προσπαθήσουμε να έχουμε το πρώτο έργο είναι σε θέση να ολοκληρωθεί εντός 6-12 ωρών. Δεν περνούν το χρόνο τους για να αρχιτέκτονα νωρίς. Ας τους αφήσουμε να σχεδιάσουμε ακόμα και αν είναι χάλια. Αν καταρρέει, μιλάμε για το τι συνέβη και γιατί απέτυχε, στη συνέχεια, επιλέξτε ένα άλλο θέμα και να αρχίσει και πάλι.


Αυτό είναι όπου μπορείτε να ξεκινήσετε την εισαγωγή των δυνατοτήτων εντοπισμού σφαλμάτων των εργαλείων σας. Ακόμα κι αν μπορείτε να δείτε το πρόβλημα με την ανάγνωση του κώδικα θα πρέπει να τους διδάξει πώς να χρησιμοποιούν τα εργαλεία, και στη συνέχεια να τους δείξουμε πώς θα μπορούσατε να το δείτε. Αυτό το διπλό στόχο της διδασκαλίας των εργαλείων εντοπισμού σφαλμάτων και τη διδασκαλία πώς να ID λάθη χωρίς εργαλεία.


Μόλις, ή εάν, το έργο παίρνει λειτουργική μπορείτε να το χρησιμοποιήσετε για να εισαγάγει τα εργαλεία refactoring. Είναι καλό, αν μπορείτε στη συνέχεια να επεκταθεί το πρόγραμμα με μερικές απλές λειτουργίες που δεν έχετε προγραμματίσει για. Αυτό συνήθως σημαίνει refactoring και σημαντική διόρθωση, καθώς πολύ λίγοι άνθρωποι γράφουν ακόμη και τα μισά αξιοπρεπή κώδικας για πρώτη φορά τους.


Μερικά από τα έργα:


* Κρεμάλα παιχνίδι
* Πειραματισμός με ρομποτικής ( [Vex](http://www.vexlabs.com) και [Mindstorms](http://mindstorms.lego.com) είναι οι επιλογές)


3) **Ρεάλ έργου** Ξεκινήστε ένα πραγματικό σχέδιο που μπορεί να πάρει κάποιο χρόνο. Χρησιμοποιήστε το σωστό έλεγχο πηγή, και να κάνουν ένα σημείο για να έχουν ένα χρονοδιάγραμμα. Εκτελέστε αυτό το έργο σαν ένα πραγματικό έργο, αν μη τι άλλο καλή εμπειρία της έχει να ασχοληθεί με τα εργαλεία.


Προφανώς θα πρέπει να ρυθμίσετε αυτό για κάθε άτομο. Το πιο σημαντικό πράγμα που έχω βρει είναι να κάνει ακόμα τα πρώτα απλές εφαρμογές ισχύουν για αυτό το άτομο ενδιαφέρεται.


Μερικά από τα έργα:


* Tetris
* αρχείο κειμένου με βάση κινητήρα blog
* Πιο προχωρημένη εργασία ρομποτική

 

Θα χρησιμοποιηθεί για να διδάξει προγραμματισμό και τον αδελφό σου έχει ένα κύριο πλεονέκτημα σε σχέση με τα περισσότερα από τους μαθητές μου που θέλει να μάθει :)


Αν αποφασίσετε να πάτε με C [ένας φίλος έχει ένα site](http://cymonsgames.retroremakes.com/) που έχει το είδος των προγραμμάτων εκείνων της χρήσης από παλαιότερες γενιές θυμούνται ως βασικό είδος-ins. Η πιο σύνθετη από αυτούς χρησιμοποιούν ncurses που το είδος της αρνείται τη χρήση τους ως διδακτικό βοήθημα κάπως, αλλά μερικά από αυτά είναι μικροσκοπικά μικρά πράγματα και μπορείτε να μάθετε τα φορτία χωρίς να διδάσκονται σε.


Προσωπικά πιστεύω ότι Python και Ruby θα κάνει μεγάλη πρώτη γλώσσες.


EDIT:
 [κατάλογος των αρχαρίων εργασίες προγραμματισμού](http://cymonsgames.retroremakes.com/beginners-programming-homework/) εμφανίστηκε μια μέρα στην άλλη θα μπορούσε να είναι ακριβώς αυτό που ψάχνετε.

 

Νομίζω ότι η «σοφία του πλήθους» λειτουργούν εδώ. Πώς οι περισσότεροι άνθρωποι μαθαίνουν πώς να το πρόγραμμα; Πολλοί ισχυρίζονται ότι το έκαναν με την αντιγραφή των προγραμμάτων των άλλων, συνήθως τα παιχνίδια που ήθελε να παίξει σε BASIC.


Ίσως η διαδρομή θα συνεργαστεί μαζί του πάρα πολύ;

 

Αν θέλετε να διδάξει τα βασικά του προγραμματισμού, χωρίς να είναι συγκεκριμένη γλώσσα, υπάρχει μια εφαρμογή που ονομάζεται [Scratch](http://scratch.mit.edu/) που δημιουργήθηκε στο MIT. Είναι σχεδιασμένο για να βοηθήσει τους ανθρώπους να αναπτύξουν τις δεξιότητες προγραμματισμού. Καθώς οι χρήστες δημιουργούν έργα Scratch, μαθαίνουν να δημιουργούν τις συνθήκες, loops, κ.λπ. Υπάρχει επίσης μια κοινότητα έργα μηδέν, έντυπο το οποίο μπορείτε να κατεβάσετε τα έργα - με αυτόν τον τρόπο μπορείτε να εξερευνήσετε τα προγράμματα των άλλων ανθρώπων και να δούμε πώς χτίστηκαν.

 

Είναι πραγματικά εξαρτάται από το στυλ μάθησης του αδελφού σας. Πολλοί άνθρωποι μαθαίνουν πιο γρήγορα από λερώνοντας τα χέρια τους και απλά να πάρει σε αυτό, κρυστάλλωση τις έννοιες και τη μεγάλη εικόνα, όπως αυτές εξελίσσονται και να οικοδομήσουν τις γνώσεις τους.


Εγώ, προτιμώ να ξεκινήσω με την μεγάλη εικόνα και να τρυπάνι κάτω στο διυλίσαμε. Το πρώτο πράγμα που ήθελα να μάθω ήταν πώς όλα ταιριάζουν μεταξύ τους τότε όλη αυτή η Αντικειμενοστραφής αλαμπουρνέζικα, στη συνέχεια, σχετικά με τις κατηγορίες και περιπτώσεις και ούτω καθεξής. Μου αρέσει να γνωρίζουν τις βασικές έννοιες και ένα κομμάτι της θεωρίας πριν μάθω τη σύνταξη. Είχα ένα κομμάτι της πλεονέκτημα, επειδή έγραψα μερικά παιχνίδια σε BASIC πριν από 20 χρόνια, αλλά τίποτα πολύ από τότε.


Ίσως είναι χρήσιμο να σκιά μιας παραγωγικής διαδικασίας, ξεκινώντας με μια γενική δήλωση αποστολής, στη συνέχεια, ένα σχέδιο ή / και διάγραμμα ροής, τότε επεξεργαστεί σε κάποιο ψευδοκώδικα (κλίνει προς την σύνταξη που τελικά θα χρησιμοποιήσετε) πριν από πραγματικά γράφοντας τον κωδικό.


Ο χρυσός κανόνας εδώ είναι να suss έξω κλίση στυλ μαθητή σας.

 

http://tryruby.hobix.com/">Try Ruby (στο φυλλομετρητή σας)

 

Συμφωνώ με Leac. Εγώ πραγματικά παίζουν με το [Scratch](http://scratch.mit.edu/) μερικές φορές αν βαριέμαι. Είναι ένα πολύ διασκεδαστικό οπτικό τρόπο θεώρησης κώδικα.


Πώς λειτουργεί είναι, θα σας δώσει μια δέσμη των «μπλοκ» (αυτά μοιάζουν με Legos), το οποίο μπορείτε να στοίβα. Και με τη στοιβασία αυτών των μπλοκ, και να αλληλεπιδρά με τον καμβά (όπου βάζετε ξωτικά σας, γραφικά), μπορείτε να δημιουργήσετε τα παιχνίδια, ταινίες, παρουσιάσεις ... είναι πραγματικά ενδιαφέρουσα.


Όταν είναι πλήρης μπορείτε να το ανεβάσετε δικαίωμα στις ιστοσελίδες Ξυστό, το οποίο είναι ένα youtube-ish πύλη για εφαρμογές Scratch. Όχι μόνο αυτό, αλλά μπορείτε να κατεβάσετε οποιαδήποτε κατάθεση στην ιστοσελίδα, και να μάθουν από ή να επεκτείνουν άλλες εφαρμογές Scratch.

 

Αυτό είναι ένα φανταστικό βιβλίο που λίγο αδέλφια μου που χρησιμοποιείται για να μάθουν:


<http://pine.fm/LearnToProgram/>


Φυσικά, το πιο σημαντικό πράγμα είναι να ξεκινήσει σε ένα πραγματικό, χρήσιμο πρόγραμμα κάποιου είδους αμέσως μετά την ολοκλήρωση του βιβλίου.

 

Θα ήθελα να συστήσω ξεκινώντας τους μακριά με την C / C ++. Θεωρώ ότι είναι ένα καλό θεμέλιο για ακριβώς για κάθε άλλη γλώσσα. Επίσης, οι διαφορετικές εκδόσεις της BASIC μπορεί να είναι αρκετά περίεργες, στην καλύτερη περίπτωση, και δεν έχουν καμία πραγματική σχέση με την πραγματική προγραμματισμού.

 

Νομίζω ότι μαθαίνουν να προγραμματίσετε επειδή θέλετε να μάθετε για το πρόγραμμα δεν θα είναι ποτέ τόσο καλή όσο μαθαίνουν να προγραμματίσετε επειδή θέλετε να κάνετε κάτι. Εάν μπορείτε να βρείτε κάτι που ο αδελφός σας είναι ενδιαφέρονται να κάνουν την εργασία, επειδή θέλει να το κάνουν να λειτουργήσει, μπορείτε να τον αφήσει μόνο με την Google και θα το κάνει. Και θα έχετε γύρω για να ελέγξετε ότι πρόκειται μήκος σωστό δρόμο.


Νομίζω ότι ένα από τα μεγαλύτερα προβλήματα με τον προγραμματισμό της διδασκαλίας αφηρημένα είναι ότι δεν έχει ένα πραγματικό παγκόσμιο πλαίσιο που ο μαθητής μπορεί να πάρει συναισθηματικά επενδύσει σε. Ο προγραμματισμός είναι δύσκολο, και θα πρέπει να είναι κάποια πραγματική εξόφληση εκεί για να το κάνει αξίζει τον κόπο για να γίνει αυτό. Στην περίπτωσή μου, είχα κάνει επιστήμης των υπολογιστών στο πανεπιστήμιο, έμαθε Pascal και COBOL εκεί, και έμαθε BASIC στο σπίτι πριν από αυτό, αλλά ποτέ δεν πήρε πραγματικά οπουδήποτε με αυτό μέχρι που έγινε ένας ελεύθερος επαγγελματίας web designer πίσω στη δεκαετία του '90 και μου οι πελάτες που χρειάζονται λειτουργικότητα στις ιστοσελίδες τους, και ήταν πρόθυμοι να πληρώσουν περίπου 10 φορές περισσότερο για τη λειτουργικότητα ό, τι για το σχεδιασμό. Η τοποθέτηση των τροφίμων στο τραπέζι είναι μια κόλαση από ένα κίνητρο!


Έτσι έμαθα Perl, τότε ASP / VBScript, τότε το JavaScript, στη συνέχεια, Flash / ActionScript τότε PHP - όλα για να κάνουν τα πράγματα που ήθελα να συμβεί.

 

[Πώς να σχεδιάσει προγράμματα](http://www.htdp.org/)


[Δομή και ερμηνεία των προγραμμάτων ηλεκτρονικών υπολογιστών](http://mitpress.mit.edu/sicp/full-text/book/book.html) . Βίντεο διαλέξεις σε <http://www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/>

 

Νομίζω ότι από τη στιγμή που έχει τα βασικά (μεταβλητές, βρόχοι, κλπ) προς τα κάτω θα πρέπει να προσπαθήσετε να τον βοηθήσει να βρει κάτι συγκεκριμένο που τον ενδιαφέρει και να τον βοηθήσει να μάθουν τα απαραίτητα για να το κάνει να συμβεί. Ξέρω ότι είμαι πολύ περισσότερο την τάση και το κίνητρο να κάνει κάτι αν είναι ενδιαφέρον για μένα. Επίσης, φροντίστε να τον αφήσει να αγωνιστεί αν και μερικές από τις πιο σκληρή προβλήματα, τίποτα δεν είναι πιο ικανοποιητικό από τη στιγμή που θα το καταλάβω από μόνος σας.

 

Είχα μόλις αφήσει να γράφετε τόνους κώδικα. Αφήστε τον να οδηγήσουν σε ό, τι εσείς το κάνετε, και μόλις είναι διαθέσιμοι να απαντήσουν σε ερωτήσεις.


Είτε το πιστεύετε είτε όχι, μετά από λίγους μήνες από τα γραπτά τους τόνους της μίζερη κώδικα, που θα αρχίσουν να πάρετε την ιδέα και να αρχίσετε να γράφετε καλύτερα προγράμματα. Σε εκείνο το σημείο, μπορείτε να κολλήσουμε σε λεπτομέρειες (μνήμη, κλπ), καθώς επίσης και να μιλήσουμε για τις γενικές αρχές σχεδιασμού.


Έχω ακούσει ότι αυτό που χωρίζει τους μεγάλους καλλιτέχνες από τα μέτρια αυτά, είναι ότι κάθε φορά που ασκούν, βελτιώνουν σε κάτι, δεν έχει σημασία πόσο μικρή. Ας πρακτική αδελφό σου, και αυτός θα βελτιώσει κάθε φορά που κάθεται στο πληκτρολόγιο.



> 
> Επεξεργασία: [Justin Τυπική]
> 
> 
> Esteban, αυτό μου θυμίζει μια πρόσφατη [κωδικοποίηση μετά τρόμου](http://www.codinghorror.com/blog/archives/001160.html) , και εγώ *δεν* νομίζετε ότι είναι σωστό. Αλλά νομίζω ότι του αξίζει ακόμα να βρουν μεθόδους για να *καθοδηγήσει* την πρακτική του. Δεν τίθεται θέμα, θέλω να τον γραπτώς όσο κώδικα και ξέρει πώς να το κάνουμε. Αυτός είναι ένας λόγος για τον ρωτάω για τα έργα του δείγματος.
> 
> 
> 

 

Διδάχτηκα με την εκμάθηση πώς να λύσουν τα προβλήματα σε μια γλώσσα αγνωστικιστής τρόπο με τη χρήση διαγραμμάτων ροής και [PDL](http://en.wikipedia.org/wiki/Program_Design_Language) (Πρόγραμμα Σχεδιασμού Language). Μετά από μερικές εβδομάδες ότι, έμαθα να μετατρέψετε το PDL είχα γράψει σε μια γλώσσα. Χαίρομαι που έμαθα με αυτόν τον τρόπο γιατί έχω περάσει το μεγαλύτερο μέρος των ετών μου τον προγραμματισμό, την επίλυση των προβλημάτων χωρίς να συνδέεται με μια γλώσσα. Ποια γλώσσα μπορώ να χρησιμοποιήσω υπήρξε πάντα μια λεπτομέρεια εφαρμογής και δεν αποτελεί μέρος του σχεδιασμού.


Έχοντας να λύσει το πρόβλημα χωρίζοντάς την σε αυτό είναι τα βασικά βήματα είναι μια βασική δεξιότητα. Νομίζω ότι είναι ένα από τα πράγματα που χωρίζει εκείνους που μπορούν να προγραμματίσουν από αυτούς που δεν μπορούν.


Όσο για το πώς θα αντιμετωπίσει τη σειρά των εννοιών της γλώσσας πιστεύω ότι ο πιο εύκολος τρόπος είναι να αποφασίσει ότι είναι να έχουμε ένα σχέδιο στο μυαλό και την αντιμετώπιση των εννοιών που χρειάζονται. Αυτό σας επιτρέπει να τις εφαρμόσει, όπως είναι απαραίτητα για κάτι που σας ενδιαφέρει να κάνει. Όταν η εκμάθηση μιας γλώσσας είναι καλό να έχουμε μερικά απλά σχέδια στο μυαλό και μερικά με προοδευτική πολυπλοκότητα. Η απόφαση σχετικά με αυτά που θα σας βοηθήσουν να χαράξει τις έννοιες που απαιτούνται και η σειρά τους.

 

Πρώτα απ 'όλα, νομίζω ότι έχει υπάρξει ήδη μερικές μεγάλες απαντήσεις, γι' αυτό θα προσπαθήσουμε να μην κοροϊδεύω πάρα πολύ.


* Ζητήστε τους να γράψουν τα μέρη του κώδικα, να τους κρατήσει ερωτήσεις για να κρατήσει τους χυμούς του εγκεφάλου που ρέει.
* Θα έλεγα Μην κολλήσουμε με την *πολύ* αναλυτικές πληροφορίες, έως ότου είτε τρέχουν για να τις επιπτώσεις τους, είτε ζητούν.


Νομίζω ότι ένα από τα μεγαλύτερα σημεία που θα εξασφαλίσουν είναι ότι κατανοούν τις βασικές έννοιες του πλαισίου. Ξέρω ότι εργάζεστε σε Python (το οποίο δεν έχω καμία ιδέα για το), αλλά, για παράδειγμα, με το ASP.NET πάρει τους ανθρώπους να κατανοήσουν την σελίδα / κώδικα πίσω από το μοντέλο μπορεί να είναι μια πραγματική πρόκληση, αλλά είναι **ζωτικής σημασίας** ώστε να το καταλάβουν. Για παράδειγμα, είχα πρόσφατα μια ερώτηση σε ένα φόρουμ για το « *πού μπορώ να θέσει τον κωδικό πρόσβασης στα δεδομένα μου, στο αρχείο“Σ”ή το αρχείο“aspx”* ».


Έτσι, θα έλεγα, ως επί το πλείστον, να τους αφήσουμε να καθοδηγήσει το δρόμο, απλά να είναι εκεί για να τους υποστηρίξει, όπου χρειάζεται, και να ζητήσει περισσότερες ερωτήσεις για να διατηρήσει το ενδιαφέρον. Απλά βεβαιωθείτε ότι έχετε τα βασικά κάτω, και μην τους αφήσουμε να τρέξει για να μπορέσουν να περπατήσουν.


Καλή τύχη!

 

Θα πρότεινα επίσης να παρακολουθείτε κάποια screencasts - είναι γενικά δημιουργούνται στο πλαίσιο μιας συγκεκριμένης τεχνολογίας δεν είναι μια γλώσσα, αν και αν υπάρχει κώδικας Python εμφανίζεται, ότι θα κάνουμε :). Το θέμα είναι - από όπου και αν δημιουργηθεί από κάποιες καλές προγραμματιστές και βλέποντας πόσο καλό πρόγραμμα προγραμματιστές είναι ένα καλό πράγμα. Εσείς και ο αδελφός σας θα μπορούσε να κάνει κάποιο προγραμματισμό από ομοτίμους, καθώς, το οποίο θα μπορούσε να είναι μια ακόμα καλύτερη ιδέα. Απλά μην ξεχάσετε να εξηγήσει γιατί κάνεις κάτι με αυτόν τον τρόπο και όχι με αυτόν τον τρόπο. Νομίζω ότι ο καλύτερος τρόπος για να μάθουν προγραμματισμό είναι από τα καλά παραδείγματα και προσπαθήστε να μην δει ακόμη και τα κακά.

 

Robert Διαβάστε έγραψε ένα χρήσιμο οδηγό, [Πώς να είναι προγραμματιστής](http://samizdat.mines.edu/howto/HowToBeAProgrammer.html) , η οποία καλύπτει μια ευρεία περιοχή των ζητημάτων προγραμματισμού που ένας αρχάριος θα βρείτε χρήσιμες.

 

Έχουν ήδη ένα σωρό μεγάλες απαντήσεις, αλλά για έναν απολύτως αρχάριο, θα ήθελα να συστήσω ανεπιφύλακτα [Hackety Hack](http://hacketyhack.net/) . Δημιουργήθηκε από την υπερβολικά πληθωρική [why\_the\_lucky\_stiff](http://whytheluckystiff.net/) ειδικά για να παρέχει ένα / LOGO / Pascal-όπως περιβάλλον BASIC για τη νέα τους προγραμματιστές να πειραματιστούν με. Είναι ουσιαστικά μια κηλίδα Ruby IDE με κάποια μεγάλη βιβλιοθήκες (flash video, IM, web server) και διαδραστικά μαθήματα. Κάνει ένα καλό βήμα για τον προγραμματισμό, καθώς επέλεξε τα μαθήματα που κάνουν τη διασκέδαση, χρήσιμα πράγματα. «Hello, world» μπορεί να μην εντυπωσιάσει δεξιά από το ρόπαλο, αλλά δημιουργώντας μια προσαρμοσμένη πελάτη IM μέσα σε 20 λεπτά μπορεί να εμπνεύσει κάποιον να κρατήσει τη μάθηση. Καλα να περνατε!

 

Αντιγράψτε κάποια απλή γραμμή κώδικα από τη γραμμή και να τους πάρει για να διαβάσει και να ερμηνεύσει όπως πάνε μαζί. Θα λειτουργήσει σύντομα. Άρχισα προγραμματισμού σε Acorn Electron με αποσπάσματα κώδικα από Acorn περιοδικά. Δεν είχα ιδέα για τον προγραμματισμό όταν ήμουν 6, συνήθιζα να αντιγράψετε το κείμενο, αλλά σταδιακά έμαθα τι σημαίνει οι διαφορετικές λέξεις.

 

Θα πρότεινα σε πρώτη διδασκαλία τα πολύ βασικά που χρησιμοποιούνται σχεδόν σε κάθε γλώσσα, αλλά κάτι τέτοιο χωρίς γλώσσα. Περιγράψτε όλες τις βασικές έννοιες if-else if-else, βρόχοι, Μαθήματα, Τύποι μεταβλητών, Κατασκευές, κλπ Ό, τι είναι το θεμέλιο της περισσότερες γλώσσες. Στη συνέχεια, να προχωρήσουμε στην πραγματικότητα η κατανόηση Boolean, συγκρίσεις και πολύπλοκες ΚΑΙ Ή δηλώσεις, για να πάρετε την αίσθηση για το τι τα αποτελέσματα είναι για πιο πολύπλοκες καταστάσεις.


Με τον τρόπο αυτό τον τρόπο θα κατανοήσουν τις έννοιες του προγραμματισμού και έχουν μια πολύ ευκολότερο χρόνο αναβάθμιση σε γλώσσες, από εκεί της μάθησης μόνο τις περίπλοκες λεπτομέρειες των γλωσσών, τις λειτουργίες του και τη σύνταξη.

 

Το αγαπημένο μου έργο «αρχίζουν να μαθαίνουν στον κώδικα» είναι το παιχνίδι **Φίδια** ή **Tron** , επειδή σας επιτρέπει να ξεκινήσετε αργή (μεταβλητές για να αποθηκεύσετε την τρέχουσα θέση «σκουλήκι», συστοιχίες να αποθηκεύουν τις θέσεις σκουλήκι και αν το σκουλήκι είναι περισσότερο από ένα «κομμάτι», βρόχους να κάνουν την κίνηση σκουλήκι, αν / διακόπτη για να επιτρέψει στο χρήστη να αλλάξει την κατεύθυνση του σκουληκιού, ...). Επιτρέπει επίσης να περιλαμβάνουν όλο και περισσότερα πράγματα στο έργο μακροπρόθεσμα, προγραμματισμός π.χ. αντικείμενο (ένα σκουλήκι είναι ένα αντικείμενο με την πιθανότητα να έχουν δύο σκουλήκια ταυτόχρονα) με την κληρονομικότητα (πάει από το «Snakes» σε «Tron "ή το αντίστροφο, όπου το σκουλήκι αλλάζει ελαφρώς συμπεριφορά).


Θα πρότεινα να χρησιμοποιήσετε [XNA της Microsoft](http://creators.xna.com/) για να ξεκινήσει. Σύμφωνα με την εμπειρία μου, ξεκινώντας με το πρόγραμμα είναι πολύ πιο διασκεδαστικό, αν μπορείτε να δείτε κάτι στην οθόνη σας, και XNA καθιστά πραγματικά εύκολο να πάρει κάτι κινείται στην οθόνη. Είναι αρκετά εύκολο να κάνει μικρές αλλαγές και να πάρει μια άλλη ματιά, π.χ. αλλάζοντας χρώματα, ώστε να μπορεί να δει ότι οι ενέργειές του έχουν επιπτώσεις -> εντύπωση της επιτυχίας. Η επιτυχία είναι διασκεδαστικό, το οποίο είναι ένα μεγάλο κίνητρο για να κρατήσει στη μάθηση.

 

Αυτό μπορεί να ακούγεται χαζό, αλλά γιατί προσπαθείτε να διδάξουν τον αδελφό σου να προγραμματίσει;


Συχνά το καλύτερο περιβάλλον μάθησης αποτελείται από ένα στόχο που μπορεί να επιτευχθεί με ένα έντονο αρχάριο (ένα πρόγραμμα δείγμα), μια άφθονη προμήθεια των πόρων (google / tutorials / βιβλία), και έναν πεπειραμένο πηγή των συμβουλών που μπορούν να παρέχουν καθοδήγηση όταν χρειάζεται.


Μπορείτε σίγουρα μπορεί να βοηθήσει με προτάσεις για τις δύο πρώτες, αλλά η τελευταία είναι πρωταρχικό ρόλο σας.

 

Θα πρότεινα τη λήψη μια προσέγγιση παρόμοια με αυτή του βιβλίου, [Ταχεία C ++](http://www.acceleratedcpp.com/) στην οποία καλύπτουν μέρη της C ++ που είναι γενικά χρήσιμα για την κατασκευή απλών προγραμμάτων. Για όσους νέα για τον προγραμματισμό νομίζω ότι έχουν κάτι να δείξουν για ένα μικρό ποσό της προσπάθειας είναι ένας καλός τρόπος για να κρατήσει τους ενδιαφερόμενους. Αφού έχουν καλύψει τις βασικές αρχές της Python, τότε θα πρέπει να καθίσει πίσω και να τον αφήσει να experiement με τη γλώσσα.


Σε ένα από τα θέματα του Πανεπιστημίου μου για αυτό το εξάμηνο που έχουν λάβει μια προσέγγιση που ονομάζεται πρόβλημα Based Learning (PBL) με τον οποίο χρησιμοποιούν τις διαλέξεις για να κινητοποιήσουν τους μαθητές σχετικά με τις διαφορετικές προσεγγίσεις στα προβλήματα. Δεδομένου ότι ο αδελφός σου είναι έντονος θα πρέπει να πάρετε ένα παρόμοιο προσέγγιση. Ρυθμίστε τον μικρά έργα για να εργαστούν και να τον αφήσει να το καταλάβω για τον εαυτό του. Στη συνέχεια, αφού έχει τελειώσει μπορείτε να πάτε μέσα από την προσέγγισή του και να συγκρίνουν και να αντιπαραβάλλουν με διαφορετικές μεθόδους.


Εάν μπορείτε να του δώσει ακριβώς το σωστό ποσό της βοήθειας να τον κατευθύνει προς τη σωστή κατεύθυνση, τότε θα πρέπει να είναι μια χαρά. Providng του με μερικές καλές ιστοσελίδες και βιβλία θα είναι επίσης μια καλή ιδέα.


Θα ήθελα επίσης να συστήσει κολλήσει με τα πόδια από το IDE κατά τα αρχικά στάδια. Χρησιμοποιώντας την γραμμή εντολών και ένα πρόγραμμα επεξεργασίας κειμένου θα του δώσει μια μεγαλύτερη κατανόηση των διαδικασιών που εμπλέκονται στην κατάρτιση / συναρμολόγηση κώδικα.


Ελπίζω ότι έχω κάποια βοήθεια. :)

 

Αυτό το νήμα είναι πολύ χρήσιμη για μένα ως αρχάριος (> 100 γραμμές κώδικα) προγραμματιστή.


Με βάση αυτά που έχω περάσει, αφού τελείωσα με το «Hello World» και να προχωρήσουμε σε μεταβλητές και «εάν / αλλιώς» δήλωση, πήρα zapped με πάρα πολύ σύνταξη? μην ξέροντας τι να κάνει με αυτούς.


Έτσι, με μια ενδιαφέρουσα απλό έργο, θα μπορούσε να πάρει το ενδιαφέρον μου και πάλι. Υπάρχουν αρκετά πολλά προτάσεις έργου εδώ.


Μπορώ να κάνω ερωτήσεις εδώ; 


Είναι καλύτερο να μάθουν μια γλώσσα scripting όπως [AutoHotkey](http://www.autohotkey.com/) πρώτα;



> 
> Επεξεργασία: [Justin Τυπική]
> 
> 
> Νομίζω ότι μαθαίνει κάτι μακρο-based όπως AutoHotkey θα βοηθήσει μόνο ελάχιστα. Δοκιμάστε εκμάθηση μιας γλώσσας «πραγματικό» προγραμματισμό για πρώτη φορά. Η πιο εύκολο να ξεκινήσετε με (σύμφωνα με τους περισσότερους ανθρώπους) είναι [python](http://www.python.org) και [ρουμπίνι](http://www.ruby-lang.org/en/) . Είμαι υπέρ python, αλλά και οι δύο είναι αρκετά απλή. Υπάρχει επίσης μια [πλήρη θέση Stackoverflow](https://stackoverflow.com/questions/4769/easiest-language-to-start-with#4856) που απαντά στο ερώτημα ποια γλώσσα για να αρχίσει με.
> 
> 
> 

 

Στην αρχή ήμουν ενδιαφέρονται για το πώς λειτούργησε διαφορετικά προγράμματα, έτσι άρχισα κοιτάζοντας τον πηγαίο κώδικα. Στη συνέχεια, όταν άρχισα να καταλαβαίνω πώς το πρόγραμμα εργασίας, θα ήθελα να αλλάξει ορισμένες παραμέτρους για να δούμε τι θα συμβεί. Έτσι, βασικά έμαθα πώς να διαβάσει πριν έμαθα πώς να γράψει. Ποια συμπτωματικά είναι το πώς οι περισσότεροι άνθρωποι μαθαίνουν αγγλικά.


Έτσι, αν προσπαθούσα να διδάξει κάποιος πώς να προγραμματίσει Θα ήθελα να τους δώσω ένα μικρό πρόγραμμα για να προσπαθήσει να διαβάσει και να κατανοήσει πώς λειτουργεί, και να τους ακριβώς απλά παίζουν με τον πηγαίο κώδικα.


Μόνο τότε θα μπορώ να τους δώσει «αναθέσεις» για να προσπαθήσει να επιτύχει.


Τώρα, αν είχαν ένα ιδιαίτερο λόγο να θέλει να μάθει πώς να το πρόγραμμα, θα ήταν σίγουρα να είναι μια καλή ιδέα να ξεκινήσω με κάτι προς την κατεύθυνση του τι θέλετε να πετύχετε. Για παράδειγμα, αν ήθελαν να είναι ικανοί σε μια εφαρμογή όπως το [μπλέντερ](http://www.blender.org/) , θα definably να είναι μια καλή ιδέα να αρχίσει με [την Αλίκη](http://www.alice.org/) .


Θα ήθελα να συστήσω απολύτως κολλήσει με μια γλώσσα που έχει συλλογή των απορριμμάτων, όπως [D](http://www.digitalmars.com/d/) , [Perl](http://www.perl.org/) , ή κάποια ερμηνεύεται γλώσσα, όπως javascript. Θα μπορούσε να είναι μια καλή ιδέα να μείνει μακριά από Perl μέχρι [Perl 6](http://www.perlfoundation.org/perl6) είναι πιο κοντά στην ολοκλήρωση, διότι διορθώνει ορισμένες από τις δυσκολίες της ανάγνωσης και κατανόησης Perl.

 

Πολλά πράγματα μου σκόνταψε επάνω στην αρχή, αλλά κανένας περισσότερο από απλή μηχανική. Έννοιες, πήρα στο αμέσως. Αλλά λείπει ένα στήριγμα το κλείσιμο; Εύκολο να το κάνουμε, και συχνά είναι δύσκολο να debug, σε ένα μη τετριμμένο πρόγραμμα.


Έτσι, ταπεινή συμβουλή μου είναι: μην υποτιμούμε τα βασικά (όπως καλή πληκτρολόγηση). Ακούγεται αποκατάστασης, ακόμη και ανόητο, αλλά μου έσωσε τόσο πολύ θλίψη νωρίς στη διαδικασία της μάθησης μου όταν έπεσα από την απλή τεχνική του πληκτρολογήσετε την πλήρη «σκελετό» της δομής κώδικα και στη συνέχεια απλά συμπληρώνοντας το.


Για ένα «αν» εντολή στην Python, ξεκινήστε με:



```
if  :

```

Στην C / C ++ / C # / Java:



```
if () 
{

}

```

Στην Pascal / Delphi:



```
If () Then
Begin

End

```

Στη συνέχεια, ο τύπος ανάμεσα στο άνοιγμα και μαρκών κλεισίματος. Μόλις αυτό γίνεται μια σταθερή συνήθεια, έτσι μπορείτε να το κάνετε χωρίς σκέψη, περισσότερο του εγκεφάλου ελευθερώνεται για να κάνει τη διασκέδαση πράγματα. Δεν είναι μια πολύ φανταχτερός κομμάτι των συμβουλών για να υποβάλετε, το παραδέχομαι, αλλά μια που έχω δει προσωπικά κάνει πολύ καλό!



> 
> Επεξεργασία: [ [Justin Τυπική](https://stackoverflow.com/users/92/justin-standard) ]
> 
> 
> Σας ευχαριστούμε για τη συμβολή σας, Πτέρυγα. Σχετικά με αυτό που είπε, ένα από τα πράγματα που έχω προσπαθήσει να βοηθήσει τον αδελφό μου, να θυμάστε τη σύνταξη για python οριοθέτηση του πεδίου εφαρμογής, είναι ότι κάθε φορά που υπάρχει μια άνω και κάτω τελεία, θα πρέπει να εσοχή στην επόμενη γραμμή, και κάθε φορά που νομίζει ότι πρέπει εσοχή, καλύτερα να υπάρχει μια άνω και κάτω τελεία που λήγει την προηγούμενη γραμμή.
> 
> 
> 

 

Η προσωπική μου εμπειρία ξεκίνησε το δημοτικό χρησιμοποιώντας Συγγραφέας λογότυπο (που κατά κάποιο τρόπο έχει εξελιχθεί σε Scratch), που χορηγείται ήμουν μικρό παιδί και υπολογιστές όπου δεν είναι τόσο τρομερό, όπως είναι σήμερα, αλλά προς το παρόν μου πήρε θέσεις δεν είχα» t ήταν πριν ... νομίζω ότι αυτό είναι το πώς πήρα γαντζώθηκε στην επιχείρηση ... θα μπορούσα να πω ότι ήταν αυτοί οι πρώτες εντυπώσεις που βασίζονται σε τέτοια απλότητα και την δροσιά που έκανε τα αγαθά που έχουν κολλήσει στο κεφάλι μου για τη ζωή. Αυτό είναι το πώς πρέπει να διδάσκονται τα βασικά του προγραμματισμού της διδασκαλίας ... μια απλή διαδικασία που λαχταρά μαγεία.


Επιστροφή στην πρώτη μου CS 101, άρχισα με ιδέες για το τι ένας αλγόριθμος ήταν με τη δημιουργία ενός Tequila Sunrise (μια βήμα προς βήμα διαδικασία που θα μπορούσε να επαναληφθεί ανά πάσα στιγμή με τα σωστά συστατικά, που θα έχει ως αποτέλεσμα την ίδια έξοδο), από εκεί μπορούμε να προχωρήσουμε σε βασικές μαθηματικές συναρτήσεις χρησιμοποιώντας Σχέδιο (όπως EHaskins έλεγε ... ξεκινήσει μικρή και στη συνέχεια τη δημιουργία), και από εκεί σε έννοιες των βρόχων, Boolean λογική, δομές και, στη συνέχεια, την οικοδόμηση σε έννοιες των αντικειμένων και κάποιες εκτελέσεις της προσομοίωσης .. .


Ένα από τα καλά πράγματα σχετικά με αυτήν την προσέγγιση είναι ότι η γλώσσα δεν ήταν ένας στόχος, αλλά απλώς ένα εργαλείο στη διαδικασία της μάθησης των εννοιών και βασικά του προγραμματισμού (όπως φορείς, οι λειτουργίες και οι άλλοι είναι στα μαθηματικά).


IMHO μαθαίνοντας τα βασικά του προγραμματισμού και τη δημιουργία ενός ιδρύματος είναι ίσως το καλύτερο πράγμα που θα μπορούσε να διδάξει τον αδελφό σου, αφού ο στόχος καλύπτεται στη συνέχεια u μπορεί να προχωρήσουμε σε μια πιο γενική χρήση της γλώσσας, όπως python και να τους διδάξει υψηλότερες έννοιες όπως τα πρότυπα αρχιτεκτονικής και σχεδιασμού ( καθιστούν φυσικό στη διαδικασία, έτσι θα πάρει χρήση ορθών πρακτικών από τα πρώτα στάδια και θα τα δούμε ως μέρος της διαδικασίας) ... είμαστε μακριά από το να ανακαλύπτουμε το ζεστό νερό, αλλά πρέπει πάντα να ξεκινήσετε με τη δημιουργία πυρκαγιάς.


Από εκεί και πέρα ​​ο ουρανός είναι το όριο!

 

Τι λέτε για αυτό: [ωοτοκία της επόμενης γενιάς των χάκερ](http://vodpod.com/watch/914464-inspirational-oscon-keynote) από Nat Torkington.

 

Σε προκατειλημμένη γνώμη μου, C είναι το καλύτερο σημείο για να ξεκινήσετε. Η γλώσσα είναι μικρό, είναι χαρακτηριστικά υψηλού επιπέδου είναι πανταχού παρούσα και τα χαρακτηριστικά χαμηλού επιπέδου σας επιτρέπουν να μάθετε το μηχάνημα.


Βρήκα το [C Primer Plus, 5η έκδοση](http://rads.stackoverflow.com/amzn/click/0672326973) είναι πολύ χρήσιμη ως αρχή προγραμματιστής με σχεδόν καμία εμπειρία προγραμματισμού. Δεν αναλαμβάνει καμία εμπειρία πριν από τον προγραμματισμό, διασκέδαση για να διαβάσετε και να καλύπτει C σε βάθος (συμπεριλαμβανομένου του τελευταίου πρότυπο C99).

 

Υπάρχει ένα βιβλίο με τίτλο *Κώδικα* . Δεν μπορώ να θυμηθώ ποιος το έγραψε, αλλά περνάει από τα βασικά στοιχεία μιας πολλά πράγματα που (προγραμματιστές) γνωρίζουμε και θεωρούμε δεδομένο ότι οι άνθρωποι μιλάμε να γνωρίζουμε επίσης. Τα πάντα, από το πώς εσείς μετράνε δυαδική για το πώς το έργο επεξεργαστές. Δεν έχει τίποτα που ασχολούνται με τις γλώσσες προγραμματισμού σε αυτό (και από ό, τι θυμάμαι), αλλά είναι ένα πολύ καλό αστάρι. Θα παραδεχτώ ότι είμαι επίσης του σχολείου που πιστεύει ότι θα πρέπει να γνωρίζουν πώς λειτουργεί ο υπολογιστής να είναι σε θέση να προγραμματίσουν αποτελεσματικά τα πράγματα για αυτό. 

 

Θα ήθελα να συστήσω Logo (γνωστός και ως η χελώνα) για να πάρετε τις βασικές έννοιες προς τα κάτω. Παρέχει μια καλή sandbox με άμεση γραφική ανατροφοδότηση, και μπορείτε να demostrate βρόχους, μεταβλητές, συναρτήσεις, υποθετικοί, κλπ [Αυτή η σελίδα](http://mckoss.com/logo/ "Μαθαίνοντας Logo") παρέχει μια εξαιρετική φροντιστήριο.


Μετά λογότυπο, μετακινηθείτε σε Python και Ruby. Θα ήθελα να συστήσω Python, καθώς είναι βασισμένο σε ABC, η οποία εφευρέθηκε για τον προγραμματισμό της διδασκαλίας.


Κατά τη διδασκαλία του προγραμματισμού, θα πρέπει δεύτερη πρόταση EHaskins των απλών προγραμμάτων και, στη συνέχεια, πολύπλοκα έργα. Ο καλύτερος τρόπος για να μάθετε είναι να ξεκινήσετε με ένα καθορισμένο αποτέλεσμα και ένα μετρήσιμο ορόσημο. Διατηρεί τα μαθήματα επικεντρώνονται, επιτρέπει στο μαθητή να αναπτύξουν τις δεξιότητες και στη συνέχεια να αξιοποιήσει αυτές τις ικανότητες, και δίνει το κάτι μαθητή να δείξετε στους φίλους. Μην υποτιμάτε τη δύναμη της έχει κάτι να δείξει για την εργασία του.


Θεωρητικά, μπορείτε να κολλήσετε με Python, όπως Python μπορεί να κάνει σχεδόν τα πάντα. Είναι ένα καλό όχημα για να διδάξει αντικειμενοστραφή προγραμματισμό και (πιο) αλγόριθμοι. Μπορείτε να εκτελέσετε Python σε αλληλεπιδραστική λειτουργία σαν μια γραμμή εντολών για να πάρετε μια ιδέα για το πώς λειτουργεί, ή να τρέξει όλη σενάρια ταυτόχρονα. Μπορείτε να εκτελέσετε δέσμες ενεργειών σας ερμηνευθεί on the fly, ή την κατάρτιση τους σε δυαδικά αρχεία. Υπάρχουν χιλιάδες μονάδες να επεκτείνει τη λειτουργικότητα. Μπορείτε να κάνετε μια γραφική αριθμομηχανή όπως αυτή συνδυαστεί με τα Windows, ή μπορείτε να κάνετε ένα πρόγραμμα-πελάτη IRC, ή οτιδήποτε άλλο.


[XKCD](http://xkcd.com/353/ "Πύθων") περιγράφει δύναμη Python είναι λίγο καλύτερα:
![«Είσαι πετούν! Πώς;»  "Πύθων!"](https://i.stack.imgur.com/OtSPD.png "Πύθων")


Μπορείτε να μετακινηθείτε σε C # ή Java μετά από αυτό, αν και δεν προσφέρουν πολύ ότι η Python δεν έχουν ήδη. Το όφελος από αυτά είναι ότι χρησιμοποιούν σύνταξη C-τύπου, το οποίο χρησιμοποιούν πολλοί (τολμώ να πω περισσότερα;) γλώσσες. Δεν χρειάζεται να ανησυχείτε για τη διαχείριση της μνήμης ακόμα, αλλά μπορείτε να πάρετε συνηθίσει να έχει λίγο περισσότερη ελευθερία και λιγότερη σφίξιμο του χεριού από τη γλώσσα διερμηνέα. Python επιβάλλει κενά και εσοχή, το οποίο είναι ωραίο τις περισσότερες φορές, αλλά όχι πάντα. C # και Java σας επιτρέπουν να διαχειριστείτε το δικό σας κενό, ενώ παραμένει έντονα-δακτυλογραφημένες.


Από εκεί, το πρότυπο είναι C ή C ++. Η ελευθερία σε αυτές τις γλώσσες είναι σχεδόν υπαρξιακό. Είστε πλέον υπεύθυνος για τη δική σας διαχείριση μνήμης. Δεν υπάρχει καμία συλλογή σκουπιδιών για να σας βοηθήσει. Αυτό είναι όπου μπορείτε να διδάξει τα πραγματικά προηγμένους αλγόριθμους (όπως συγχωνευτική και quicksort). Αυτό είναι όπου μπορείτε να μάθετε γιατί «σφάλμα κατάτμησης» είναι μια λέξη κατάρα. Αυτό είναι όπου μπορείτε να κατεβάσετε τον πηγαίο κώδικα του πυρήνα του Linux και το βλέμμα στην άβυσσο. Ξεκινήστε γράφοντας μια κυκλική ενδιάμεση μνήμη και μια στοίβα για τη χειραγώγηση συμβολοσειρά. Στη συνέχεια, εργαστείτε με τον τρόπο σας επάνω.

 

Αν ο αδελφός σου έχει πρόσβαση στο iTunes, μπορεί να κατεβάσετε βίντεο διαλέξεων του ένα εισαγωγικό μάθημα της επιστήμης των υπολογιστών δίνεται από τον Richard Buckland στο Πανεπιστήμιο της Νέας Νότιας Ουαλίας. Είναι ένα ελκυστικό εκπαιδευτικό και καλύπτει βασικές αρχές της πληροφορικής και της γλώσσας C. Αν μη τι άλλο, πείτε ο αδελφός σας για να παίξει τα vids στο παρασκήνιο και κάποιες έννοιες μπορεί να βυθιστεί μέσα από όσμωση. :)


**COMP1917 Ανώτατη Πληροφορική - 2008 Session 1** 
<http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444>


Αν ο σύνδεσμος δεν λειτουργεί, εδώ είναι μια διαδρομή:


Αρχική σελίδα -> iTunes U -> Μηχανική -> COMP1917 Ανώτατη Πληροφορική - 2008 Συνεδρία 1

 

Για μένα, την εξερεύνηση και τον πειραματισμό μέσα στο IDE ίδια με βοήθησε να μάθω Java και Visual Basic, αλλά έχω μάθει τα βασικά του προγραμματισμού με το δύσκολο τρόπο: Perl 5. Δεν υπήρχε ελεύθερη IDE τότε, γι 'αυτό σήμαινε κωδικούς πληκτρολογώντας στο Σημειωματάριο , το αποθηκεύσετε, και στη συνέχεια, εκτελέστε το διερμηνέα Perl.


Θα έλεγα ότι IDEs κάνουν την εκμάθηση των βασικών του προγραμματισμού ευκολότερη. Δοκιμάστε να παίξετε γύρω με τις δομές ελέγχου και τις μεταβλητές για πρώτη φορά. Πείτε σε Java:



```
int a = 5;

for (int i = 0; i < a; i++) {
     System.out.println("i is now " + i);
}

```

Βασικά, απλά να μάθει τις δομές ελέγχου και τις μεταβλητές θα επιτρέψει σε έναν αρχάριο να ξεκινήσει την κωδικοποίηση διασκεδαστικά πράγματα που έχουν ήδη.

 

Το βασικό πράγμα είναι ότι το εν λόγω πρόσωπο πρέπει να έχει κάποιο πρόβλημα που θέλουν λύση. Αν δεν έχετε ένα πρόγραμμα που θέλετε να γράψετε (και κάτι λογικό και σαφώς καθορισμένες, δεν «Θέλω να γράψω την επόμενη Quake!»), Τότε δεν μπορείτε να μάθετε για το πρόγραμμα, γιατί δεν έχετε τίποτα να σας παρακινήσει . Θέλω να πω, μπορείτε να διαβάσετε ένα βιβλίο και να έχουν μια γενική κατανόηση της σύνταξης και της σημασιολογίας μιας γλώσσας, αλλά μέχρι να έχετε *ένα πρόγραμμα που θέλετε γράψει* ποτέ δεν θα γίνει αντιληπτό το ταύρο από τα κέρατα.


Αν αυτό ώθηση υπάρχει τότε όλα τα άλλα είναι απλά μικρές λεπτομέρειες.

 

Η Python είναι εύκολο για τους νέους προγραμματιστές να μάθουν. Δεν μπλέκονται με τις ιδιαιτερότητες της διαχείρισης μνήμης και ορισμός τύπου. [Dive Into Python](http://diveintopython.net/ "Dive Into Python") είναι μια καλή οδηγός για αρχάριους Python προγραμματισμού. Όταν η αδελφή μου ήθελε να μάθει προγραμματισμό Της επεσήμανε στο «Head Start» γραμμή των βιβλίων που βρήκε πολύ εύκολο να διαβάσει και να καταλάβει. Θεωρώ ότι είναι δύσκολο απλά να αρχίσουν τη διδασκαλία κάποιον επειδή δεν έχετε ένα λεξικό για χρήση με αυτούς. Πρώτα να τον διαβάσει μερικά βιβλία ή σεμινάρια και να σας ρωτήσω για τις ερωτήσεις. Από εκεί μπορείτε να ορίσετε τα έργα και τα αξιολογούν. Θεωρώ ότι είναι δύσκολο να διδάξει προγραμματισμό, γιατί έχω μάθει πάνω από σχεδόν 15 χρόνια χάνουμε γύρω.

 

[Έργο Euler](http://projecteuler.net/) έχει μια σειρά από ενδιαφέροντα προβλήματα μαθηματικών που θα μπορούσαν να παρέχουν μεγάλη υλικό για μια αρχή προγραμματιστή να μειώσει τα δόντια της στο. Τα προβλήματα αρχίζουν εύκολη και αύξηση της δυσκολίας και το διαδίκτυο είναι [γεμάτο από διαλύματα δείγματος σε διάφορες γλώσσες προγραμματισμού](http://www.google.com/search?hl=en&lr=&safe=active&q=project+euler+solutions&btnG=Search) .

 

Θα ήθελα να συστήσω το βιβλίο του Charles Petzold του [Κώδικα - Το Κρυφό Langauge των Υλικό υπολογιστών και λογισμικού](http://books.google.com/books?id=l4gpAAAACAAJ&dq=petzold+code&ei=2U-wSL_hNoLmygSxpcmoDQ) ως μια εξαιρετική γενική εισαγωγή για το πώς το έργο τους υπολογιστές.


Υπάρχουν *πολλές* πληροφορίες στο βιβλίο (382 σελίδες) και μπορεί να πάρει έναν απολύτως αρχάριο κάποιο χρόνο για να διαβάσει, αλλά είναι καλά αξίζει τον κόπο. Petzold καταφέρνει να εξηγήσει πολλές από τις βασικές έννοιες των υπολογιστών και τον προγραμματισμό από την απλή κώδικες, ρελέ, μνήμη, επεξεργαστές για τα λειτουργικά συστήματα και γραφικά περιβάλλοντα με πολύ σαφή και ευχάριστο τρόπο. Θα παρέχει κάθε αναγνώστη με μια καλή αίσθηση του τι πραγματικά συμβαίνει πίσω από τις σκηνές όταν γράφουν κώδικα.


Σίγουρα Μακάρι να ήταν γύρω από όταν ήμουν πρώτα να μάθουν να προγραμματίσετε!

 

υπάρχει μια [Βικιβιλίων που είναι πολύ καλό για την εκμάθηση python](http://en.wikibooks.org/wiki/Programming:Python) .


Δεν ξέρω πώς τα Βικιβιβλία είναι για άλλες γλώσσες, αλλά έμαθα προσωπικά python από την Βικιβιλίων όπως ήταν το Φεβρουάριο του 2007


ps - αν δεν είστε εξοικειωμένοι με [Βικιβιβλία](http://en.wikibooks.org/wiki/Main_Page) , είναι ουσιαστικά η έκδοση της wikipedia του βιβλίου συγγραφής. Είναι είδος δύσκολο να περιγραφεί, αλλά αν δείτε μερικά από τα βιβλία εκεί θα δείτε πώς λειτουργεί

 

Δεν ξέρω με βεβαιότητα τι θα είναι το καλύτερο για τον αδελφό σου, αλλά ξέρω ότι ξεκίνησε με πύθωνα. Παίζω διάφορα παιχνίδια από πολύ μικρή ηλικία και ήθελε να κάνει το δικό μου, έτσι ο θείος μου μου σύστησε να Python με το [pygame](http://www.pygame.org/ "ιστοσελίδα pygame") βιβλιοθήκη. Έχει πολλά tutorials και καθιστά εύκολο (πιο εύκολο τρόπο από ό, τι openGL κατά τη γνώμη μου). Θα *είναι* περιορισμένη σε 2d, αλλά θα πρέπει να ξεκινάμε απλά έτσι κι αλλιώς.


Ο θείος μου συνέστησε python επειδή ήταν ενδιαφέρονται για αυτό εκείνη την εποχή, αλλά το συστήνω, τώρα αρκετά γνώστες, επειδή (όχι, αλλά σίγουρα απλοϊκή) είναι εύκολο να το μάθει, διαισθητική (ή όσο πιο ρεαλιστικό ως γλώσσα προγραμματισμού μπορεί να πάρει), και απλά .


Βρήκα προσωπικά βασικό προγραμματισμό απλά για να μάθουν προγραμματισμό αισχρά βαρετό εκείνη την εποχή, αλλά πήρε σημαντική ενθουσιασμό και πήγα. Ήθελα πραγματικά να είναι μάθηση, προκειμένου να χτίσει κάτι, όχι μόνο για να το μάθετε.

 

Ο καλύτερος τρόπος για να μάθει τίποτα είναι να ξεκινήσει με το βασικό. Μπορείτε να βρείτε κανένα καλό βιβλίο για να εξηγήσει τι προγραμματισμού είναι, μνήμη, αλγόριθμοι. 


Το επόμενο βήμα, επιλέξτε τη γλώσσα που αυτό εξαρτάται μόνο από το τι γνωρίζει ο δάσκαλος ή γιατί ο μαθητής θέλει να μάθει. 


Στη συνέχεια, είναι ακριβώς κωδικό, τον κωδικό, τον κωδικό. Κωδικός κάθε παράδειγμα δεξιά από το βιβλίο. Στη συνέχεια, αλλάξτε λίγο να κάνει άλλη ενέργεια. Μαθαίνοντας για το πρόγραμμα είναι ενεργό δεν διαδικασίας παθητικός. Μπορείτε όχι μόνο να διαβάσει C ++ Πώς να Program από Dietal και, στη συνέχεια, περιμένετε να κωδικοποιήσει C ++, χωρίς να έχει κάνει ενεργά κατά την ανάγνωση.


Ακόμα και αν είστε ένας έμπειρος προγραμματιστής βοηθά να γράψει τον κώδικα στο βιβλίο για να μάθουν κάτι καινούργιο.

 

Ξεκινήστε ζητώντας του αυτή την ερώτηση: « *Τι είδους πράγματα θέλετε να κάνετε με τον υπολογιστή σας* »


Στη συνέχεια, επιλέξτε μια σειρά από δραστηριότητες που ταιριάζουν απάντησή του, και να επιλέξετε μια γλώσσα που επιτρέπει σε αυτά τα πράγματα που πρέπει να γίνουν. Όλα τα καλύτερα, αν πρόκειται για ένα απλό (ή simplifiable) scripting περιβάλλον (π.χ. Applescript, Ruby, κάθε κέλυφος (KSH, Bash, ή ακόμα και .bat αρχεία).


Οι λόγοι είναι οι εξής:


1. Αν ενδιαφέρεται για τα αποτελέσματα, που θα μπορούσε πιθανότατα να είναι πιο πρόθυμοι από ό, τι αν έχετε τον υπολογίζει κουνέλια Fibonacci του.
2. Αν, για να πάρει τα αποτελέσματα που θέλει, αυτός πιθανότατα θα σκεφτείτε παραλλαγές σχετικά με τις δραστηριότητες που δημιουργείτε.
3. Αν είστε διδασκαλία του, αλλά χωρίς να ακολουθεί μια σοβαρή καριέρα (ακόμα)? υπάρχει πάντα χρόνος για να μεταβείτε σε γλώσσες «βιομηχανική δύναμη» αργότερα.

 

Μια καλή πηγή για να διδάξει τους νέους είναι η δωρεάν e-Book «εφεύρει το δικό σας παιχνίδια με την Python»:


<http://pythonbook.coffeeghost.net/book1/IYOCGwP_book1.pdf>

 

Κάτι για να εξετάσει ... δεν είναι όλοι σε θέση να προγραμματισμού:


Μερικοί άνθρωποι απλά δεν μπορεί να πάρει το παρελθόν τα πράγματα όπως:


Α = 1


Β = 2


Α = Β


(Αυτοί οι άνθρωποι θα εξακολουθούν να πιστεύουν Α = 1)


[Jeff έχει μιλήσει γι 'αυτό πάρα πολύ.](http://www.codinghorror.com/blog/archives/000635.html)  Στην πραγματικότητα, το παράδειγμα μου είναι στο link (και εξήγησε, για την εκκίνηση).

 

Μπορεί να φαίνεται περίεργο, αλλά εγώ ξεκίνησα γράφοντας τον κωδικό από την αυτοματοποίηση των εργασιών και την ανάλυση των δεδομένων σε πρώην δουλειά μου. Αυτό επιτεύχθηκε με την καταγραφή συνέχεια μελετώντας τον κώδικα μια μακροεντολής Excel που δημιουργείται. Φυσικά, αυτή η προσέγγιση προϋποθέτει μπορείτε να μάθετε μέσω VB.

 

Ορισμένες πρόσθετες πληροφορίες ότι κάποιος θα μπορούσε να αποδίδουν στην προηγούμενη θέση Jason Pratt για [την Αλίκη](http://www.alice.org/) ... Συγκεκριμένα, μια [αφήγηση Alice](http://www.alice.org/kelleher/storytelling/) παραλλαγή.


Αν και η μελέτη που παρουσιάστηκε στόχους γυμνάσιο κορίτσια, μπορείτε να βρείτε το [λευκό χαρτί](http://www.cse.wustl.edu/~ckelleher/kelleherThesis_CSD.pdf) που γράφτηκε από [Caitlin Kelleher](http://www.cse.wustl.edu/~ckelleher/) ενδιαφέρον.

 

Ένα χρησιμοποίησα με τα παιδιά μου είναι [CEEBot](http://www.ceebot.com/ceebot/index-e.php) . Δεν είναι python, αλλά διδάσκει C / Java προγραμματισμού στυλ σε ένα διασκεδαστικό, ρομπότ-προγραμματισμού είδος του παιχνιδιού. Στόχος του είναι 10-15 ετών, αλλά είναι μια πραγματικά καλή.

 

Έχοντας μικρή, απευθυνόμενοι στόχους είναι μία από τις μεγαλύτερες τρόποι για να μάθουν κάποια δεξιότητα. Ο προγραμματισμός δεν είναι διαφορετική. Python είναι μια μεγάλη γλώσσα για να αρχίσει με, επειδή είναι εύκολο να μάθουν, καθαρά και μπορεί να κάνει ακόμα προηγμένα πράγματα. Python περιορίζεται μόνο από τη φαντασία σας. 


Ένας τρόπος για να πάρετε πραγματικά κάποιον που ενδιαφέρεται είναι να τους δώσει μικρά έργα που μπορούν να κάνουν σε μια ώρα ή έτσι. Όταν αρχικά άρχισα να μαθαίνω πύθωνα που παίζει [Κωδικός Golf](http://www.codegolf.com) . Έχουν πολλές μικρές προκλήσεις που θα βοηθήσει να διδάξει τα βασικά του προγραμματισμού. Θα πρότεινα ακριβώς που προσπαθεί να λύσει μια από τις προκλήσεις μιας ημέρας και στη συνέχεια, παίζοντας με τις έννοιες μάθει. Έχετε να κάνετε μάθηση να προγραμματίσετε διασκέδαση ή οι τόκοι θα χαθούν πολύ γρήγορα. 

 

Αν ενδιαφέρεται για ό, τι δεν θα ανησυχείτε για την εστίαση στα παιχνίδια ή οτιδήποτε. Είχα μόλις αρπάξει ότι το βιβλίο αρχάριους «τον εαυτό σας διδάξει x» που ήταν έτοιμος να ρίξει και να του δώσετε αυτόν και να τον αφήσει να αγωνίζονται μέσα από αυτό. Ίσως μιλάμε για το μετά και στη συνέχεια να κάνουμε μια άλλη και μια άλλη. Μετά τότε θα συνδυάσετε το πρόγραμμα μαζί του ώστε να μπορέσει να μάθει πώς ρηχά και κουτσός εκείνα τα βιβλία που διάβαζε ήταν. Τότε είχα αρχίσει να έχει τον κώδικα κάτι για τον εαυτό του. Μια ιστοσελίδα για να παρακολουθείτε τα στατιστικά σόφτμπολ ή ό, τι θα τον συμμετέχουν. Για μένα ήταν μια βάση δεδομένων για το κρασί πίσω στην ημέρα.


Μετά από αυτό θα ξεκινήσει στις πραγματικές βιβλία, το σχεδιασμό τομέα, κ.λπ. 

 

[Python Προγραμματισμός για την απόλυτη αρχάριο](http://safari.oreilly.com/1592000738)


[Python Προγραμματισμός για την απόλυτη κάλυψη αρχάριο http://safari.oreilly.com/images/1592000738/1592000738\_xs.jpg](http://safari.oreilly.com/images/1592000738/1592000738_xs.jpg)

 

Πακέτο Python [VPython](http://vpython.org) - 3D προγραμματισμού για την Τακτική Mortal ( [φροντιστήριο βίντεο](http://showmedo.com/videos/video?name=pythonThompsonVPython1&fromSeriesID=30) ).


[Κωδικός παράδειγμα:](http://vpython.org/vpythonprog.htm)



```
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 γερός μπάλα http://vpython.org/bounce.gif](http://vpython.org/bounce.gif)

 

Έχω αποβουτυρωμένο μέσα από τα σχόλια και μοιάζει κανείς δεν αναφέρονται [Ιδρύματα του προγραμματισμού](http://codebetter.com/blogs/karlseguin/archive/2008/06/24/foundations-of-programming-ebook.aspx) από [www.CodeBetter.com](http://www.CodeBetter.com) . Αν και αυτό απαιτεί ένα κομμάτι του ιδρύματος, μπορεί σίγουρα να είναι ένα επόμενο βήμα στη διαδικασία της μάθησης.

 

Ως τον εαυτό μου μη-προγραμματιστής, βρήκα το βιβλίο «Πώς να Program» από Ρεαλιστικό Προγραμματιστές πολύ χρήσιμη από μια υποτυπώδη άποψη. Είναι προσιτό και εύκολο να διαβάσει για έναν αρχάριο. Δεν θα σας μεταφέρει από αρχάριους έως εμπειρογνωμόνων, αλλά θα σας προετοιμάσει για το τι πρέπει να κάνουμε τη στιγμή που θα επιλέξετε μια γλώσσα και να πάρει την πρώτη σας «Μάθετε να προγραμματίσετε το (εδώ)» βιβλίο.

 

Ένα ζευγάρι από άλλες πλατφόρμες εκκίνησης:


* Ένα καλό προγραμματιζόμενη αριθμομηχανή (αυτό είναι που έμαθα στο πίσω στη δεκαετία του '70), και HP25, στη συνέχεια, HP41, τώρα TI69, κ.λπ.
* Διαδραστικές πλατφόρμες Φαντασίας, όπως «Inform 7» παρέχει μια άλλη οπτική γωνία για το όλο θέμα
* Flash / ActionScript


Όλα αυτά είναι διαφορετικά και ενδιαφέρουσα, και κάθε μία από αυτές θα μπορούσε να προκαλέσει το είδος των τόκων που απαιτείται για να πάρει έναν αρχάριο και λειτουργίας.


ΔΠΘ

 

Θα ήθελα να συστήσω [Σκεφτείτε Python](http://www.greenteapress.com/thinkpython/thinkpython.html) .

 

Από τη στιγμή που έχει τα βασικά, προτείνω το [Πύργος του Ανόι](http://en.wikipedia.org/wiki/Tower_of_Hanoi) ως μια καλή άσκηση. Θα ήθελα να συστήσω ξεκινώντας με το ξύλινο παιχνίδι, αν έχετε ένα? αφήστε τον να προσπαθήσει να λύσει το πρόβλημα με τον εαυτό του και να περιγράψει τη μέθοδο του με συστηματικό τρόπο. Δείτε τον οποίο αναδρομή μπαίνει στο παιχνίδι. Εξηγήστε τον τρόπο με τον οποίο ο αριθμός των κινήσεων εξαρτάται από τον αριθμό των δίσκων. Στη συνέχεια, αφήστε τον να γράψει ένα πρόγραμμα για να εκτυπώσετε την ακολουθία των κινήσεων, στη γλώσσα της επιλογής σας.

 

Η ερώτησή σας εξαρτάται πολύ από την ηλικία και την εκπαίδευση του αδελφού σου, αλλά αν είναι ένα παιδί / έφηβος, θα ήθελα να συστήσω να κάνετε κάποια προγραμματισμού GUI ή γραφικό προγραμματισμό πρώτο (με καμβά κλπ). Φαίνεται καλό, και θα έχετε άμεσα αποτελέσματα. Αλγόριθμοι είναι βαρετή και πολύ αφηρημένη για τους νέους (πριν δηλαδή 15 ετών).


Όταν άρχισα προγραμματισμού για ZX Spectrum (ήμουν σαν 12 χρονών), μου άρεσε να ζωγραφίζει διάφορα πράγματα στην οθόνη, και ήταν ακόμα ενδιαφέρουσα. Δεν είχα μάθει για την πραγματική αλγοριθμικές τεχνικές, μέχρι που ήταν ίσως 18. Μην να παραπλανήσουν ότι η εν λόγω «απλό» προγραμματισμού είναι μια λανθασμένη εκκίνηση? το συμφέρον του προσώπου μάθηση είναι το πιο σημαντικό μέρος της.


Έτσι, θα ήθελα να εξετάσουμε PyKDE, PyGTK, PyQt ή Python + OpenGL (υπάρχουν σίγουρα κάποια tutorials στο διαδίκτυο, ξέρω ότι κάποιων Τσεχίας αυτά, αλλά αυτό δεν θα σας βοηθήσει :)).


Φυσικά, αν ο αδελφός σου είναι παλαιότερο και έχει την εκπαίδευση κοντά στα μαθηματικά, μπορείτε να κατευθυνθείτε άμεσα με αλγορίθμους και τέτοια.

 

Πολύ καλή εισαγωγή μαθημάτων βίντεο από το πανεπιστήμιο του Στάνφορντ (δεν απαιτείται προηγούμενη γνώση):


[Προγραμματισμός Μεθοδολογία](http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111)


Θα σας διδάξει καλά «μεθοδολογίες» κάθε προγραμματιστής θα πρέπει να γνωρίζουν και κάποια προγραμματισμού Java.

 

Όποια και αν είναι γλώσσα και το περιβάλλον που θα επιλέξετε, εάν ο φοιτητής θέλει να μάθει για επαγγελματικούς λόγους ή για να κάνουν «πραγματική» προγραμματισμού (όποια και αν είναι), να τους ξεκινήσει γράφοντας τα προγράμματα εκκίνησης του 1 σε χαρτί και τη λήψη τους μακριά για να τρέξει. Ελάτε πίσω με την έξοδο ή / και λάθος αποτελέσματα και να τα διορθώσετε τα πράγματα σε χαρτί.


Αυτό δεν είναι ιδιαίτερα δύσκολο στην αρχή ό, τι κάνει αυτό στην οθόνη και το χτύπημα τρέξιμο, αλλά θα κάνει τα πράγματα πολύ πιο εύκολα όταν αρχίζουν να ανακαλύπτουν τον υπέροχο κόσμο των σφαλμάτων.


1) σύντομη, «Hello, World!» - προγράμματα τύπου που εξακολουθούν να έχουν κάποια λογική και / ή υπολογισμούς, το κάνουμε αυτό μέχρι μερικά προγράμματα που μπορεί να έχει σφάλματα

 

Ό, τι γράφουν, να τους βήμα μέσα από αυτό σε ένα πρόγραμμα εντοπισμού σφαλμάτων γραμμή-γραμμή για την πρώτη εκτέλεση. Ας τους αφήσουμε να *δουν από μόνοι τους* τι κάνει ο υπολογιστής. Αυτό χρειάζεται πολύ μυστήριο έξω από τα πράγματα, μειώνει τον εκφοβισμό ( «Ω, κάθε γραμμή είναι πραγματικά τόσο απλό!»), Και τους βοηθά να μάθουν τον εντοπισμό σφαλμάτων δεξιότητες και να αναγνωρίσει γιατί κοινά λάθη είναι κοινά (και γιατί είναι λάθη)

 

+1 στο Πανεπιστήμιο του Στάνφορντ διαλέξεις. <http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111>


Είναι απλό, υψηλής ποιότητας και μπορώ να εγγυηθώ για την ικανότητά τους να διδάξουν τους αρχάριους (που είμαι ένας από αυτούς).

 

Προτείνω « [Computer Science Unplugged](http://www.csunplugged.com) » ως συμπληρωματικό διδακτικό υλικό.

 

«Ποιος φοβάται τη C ++» Με Heller


Θα μπορούσε να αξίζει έναν πυροβολισμό

 

[Microsoft Small Basic](http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx) είναι μια δωρεάν .NET βάση προγραμματιστικό περιβάλλον με στόχο να είναι μια «διασκεδαστική» περιβάλλον μάθησης για τους αρχάριους. Η γλώσσα είναι ένα υποσύνολο των VB.NET και ακόμη περιέχει ένα «χελώνα» αντικείμενο εξοικειωμένοι από τη γλώσσα Logo. Ο δικτυακός τόπος περιλαμβάνει ένα βήμα-προς-βήμα φροντιστήριο.

 

Συμφωνώ με superjoe30 παραπάνω, αλλά δεν έχω αρκετή φήμη ακόμα να αφήσετε ένα σχόλιο.


Ήμουν καθηγητής CS για 4 χρόνια. Οι γλώσσες ήταν βασικός, και στη συνέχεια, Pascal, αλλά πραγματικά δεν έχει σημασία ποια είναι η γλώσσα.


Το μεγαλύτερο μάθημα που έμαθα ως νέος καθηγητής ήταν, δεν έχει σημασία πόσο απλό σκέφτηκα μια έννοια ήταν, δεν είναι απλό να αρχάριος. Ποτέ μην πάτε πιο γρήγορα από ό, τι ο μαθητής σας μπορεί να πάει. Δεν μπορώ να τονίσω ότι αρκετά. Πήγαινε πολύ, πολύ αργά.


Θα ήθελα να ξεκινήσω με πολύ απλά πράγματα, να διαβάσετε και να εκτυπώσετε, ίσως ένα απλό υπολογισμό, μόνο και μόνο για να πάρει το μαθητή που χρησιμοποιούνται για την τοποθέτηση κάτι και να πάρει κάτι. Στη συνέχεια, αν δηλώσεις. Τότε πραγματικά απλή ΓΙΑ βρόχους, πάντα από την άποψη της κάτι που ο μαθητής θα μπορούσε να γράψει και να έχουν κάποια διασκέδαση με.


Στη συνέχεια, θα ήθελα να δαπανήσει περίπου 3 εβδομάδες διδασκαλία ένα πολύ απλό είδος της γλώσσας μηχανής για ένα κάλπικο δεκαδικά μηχανή που ονομάζεται Simpl, ότι θα μπορούσε σε ένα στάδιο. Ο λόγος γι 'αυτό, ώστε ο μαθητής θα μπορούσε να δει όπου το «λάστιχο συναντά το δρόμο», ότι οι υπολογιστές έχουν τα πράγματα βήμα-βήμα, και αυτό κάνει τη διαφορά ποια σειρά τα πράγματα συμβαίνουν σε. Χωρίς αυτό, οι μαθητές έχουν την τάση να σκέφτονται ο υπολογιστής μπορεί να είδος διαβάζουν το μυαλό τους και να κάνουν τα πάντα με τη μία.


Στη συνέχεια πίσω στο Basic. Ένα ζευγάρι από εβδομάδα σε συστοιχίες, διότι αυτό είναι ένα μεγάλο χτύπημα ταχύτητα. Στη συνέχεια διαδοχική αρχεία, το οποίο είναι ένα άλλο χτύπημα ταχύτητα. Τι εννοώ με «χτύπημα ταχύτητα» είναι ο μαθητής μπορεί να πλέει κατά μήκος αισθάνονται αρκετά βέβαιοι, και στη συνέχεια να τους χτυπήσει με μια έννοια, όπως πίνακες, και είναι εντελώς χαθεί και πάλι, μέχρι να τους διευκολύνει μέσα από αυτό.


Στη συνέχεια, με αυτές τις δεξιότητες κάτω από τις ζώνες τους, θα πρέπει να επιλέξετε ένα μακρόπνοο έργο, γιατί αυτό είναι που κάνει ενδιαφέρουσα προγραμματισμού. Χωρίς χρήση γι 'αυτό, είναι πραγματικά βαρετό. Θα ήθελα να προτείνω μια ποικιλία από έργα, όπως παιχνίδια, λογιστικά προγράμματα, προγράμματα επιστήμης, κ.λπ. Είναι πραγματικά υπέροχο να βλέπουμε τους να ενεργοποιηθεί. Συχνά θα μου ζητήσουν βοήθεια, και αυτό είναι μεγάλη, επειδή ξέρετε ότι μαθαίνετε.


Ενώ έκαναν τα έργα τους, θα συνεχίσουν να καλύπτουν πιο προηγμένες τεχνικές προγραμματισμού - την αναζήτηση, τη διαλογή, τη συγχώνευση, πώς να κάνει μια απλή βάση δεδομένων, κ.λπ.


Καλή τύχη. Η διδασκαλία είναι σκληρή δουλειά, αλλά την ικανοποίηση όταν βλέπεις τους μαθητές μεγαλώνουν.

 

Βιβλίο: [Java Προγραμματισμός για παιδιά, γονείς και παππούδες](http://myflex.org/yf/JavaKid811.pdf) (PDF)


Δεν έχω προσωπική εμπειρία για την εκμάθηση χρησιμοποιώντας αυτό το βιβλίο, αλλά φαίνεται να είναι ωραία επειδή πηγαίνει γρήγορα στην παραγωγή κάτι ορατό και να μην ξοδεύουν πάρα πολύ χρόνο με τις συντακτικές itty λεπτομέρειες bitty. Έχει κάποιος εδώ δοκιμάσει με αυτό το βιβλίο;

 

**Ξεκινήστε με χελώνα γραφικά σε Python.**


Θα ήθελα να χρησιμοποιήσει τα γραφικά χελώνας που προσφέρεται στάνταρ με Python. Είναι οπτική, απλή και μπορείτε να χρησιμοποιήσετε αυτό το περιβάλλον να εισαγάγει πολλές έννοιες του προγραμματισμού όπως η επανάληψη και η διαδικασία κλήσεις πριν πάρει πάρα πολύ σε σύνταξη. Εξετάστε το ακόλουθο διαδραστική συνεδρία σε python:



```
>>> 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

```

Στην προσπάθεια να ολοκληρώσει τις δύο τελευταίες εργασίες, θα έχουν πολλές αποτυχημένες προσπάθειες, αλλά οι αποτυχίες θα είναι οπτικά ενδιαφέρον και θα μάθουν γρήγορα, καθώς προσπαθούν να καταλάβω γιατί δεν αντλήσει ό, τι αναμενόταν.

 

αφού έχετε τους δίδαξε πώς να το πρόγραμμα, που μπορεί να θέλουν να μάθουν πώς να αναπτύξουν λογισμικό .. γι 'αυτό πιστεύω ότι Greg Wilson, [λογισμικό Ξυλουργική](http://www.swc.scipy.org/) φυσικά είναι μεγάλη .. χρησιμοποιεί επίσης Python ως γλώσσα του μαθητή.

 

Νομίζω ότι Python είναι μια πραγματικά μεγάλη γλώσσα για να αρχίσει με: :-)


Σας προτείνω να δοκιμάσετε <http://www.pythonchallenge.com/> 


Είναι χτισμένο σαν μια μικρή περιπέτεια και κάθε Solutions σας συνδέει με μια νέα ωραίο πρόβλημα.


Μετά soluting το πρόβλημα θα έχετε πρόσβαση σε ένα ωραίο φόρουμ για να μιλήσουμε για κώδικα σας και να πάρετε για να δείτε τι άλλοι άνθρωποι δημιούργησαν.

 

Μπορώ να συστήσω το έργο μου, [PythonTurtle](http://pythonturtle.com) .


Περίληψη:


PythonTurtle προσπαθεί να παρέχει τον τρόπο με τον χαμηλότερο όριο για να μάθουν Python. Οι μαθητές εντολή ένα διαδραστικό κέλυφος Python (παρόμοιο με το περιβάλλον IDLE ανάπτυξη) και να χρησιμοποιήσετε τις λειτουργίες Python για να μετακινήσετε μια χελώνα που εμφανίζεται στην οθόνη. Μια εικονογραφημένη οθόνη βοήθειας εισάγει τον φοιτητή στις βασικές έννοιες του προγραμματισμού Python, ενώ δείχνει πώς να μετακινήσετε τη χελώνα.


Μοιάζει με αυτό:


[alt κείμενο http://www.pythonturtle.com/screenshot.gif](http://www.pythonturtle.com/screenshot.gif)

 

Νομίζω ότι Python είναι μια μεγάλη ιδέα. Θα ήθελα να του δώσω μερικές βασικές εργασίες για να κάνει μόνος του και να του πω ότι κάθε νεκρό τελειώνει Χτυπά μπορεί κατά πάσα πιθανότητα να επιλυθούν με ένα ταξίδι στο google. Για μένα, τουλάχιστον, την επίλυση ενός προβλήματος με δική μου πάντα να κολλήσει καλύτερα από κάποιον να μου λέει τη λύση.


Μερικές πιθανές έργα (χωρίς συγκεκριμένη σειρά):


* Coin άλλη προσομοιωτή. Ας την είσοδο χρήστη ένα επιθυμητό αριθμό δοκιμών για την ρίξιμο ενός νομίσματος. Εκτελέστε και να παρουσιάσουμε τα αποτελέσματα μαζί με το ποσοστό για την κορώνα ή γράμματα.
* Κάντε ένα μετατροπέα θερμοκρασίας με ένα μενού που λαμβάνει είσοδο χρήστη να επιλέξει το είδος της μετατροπής που ο χρήστης θέλει να κάνει. Μετά την επιλογή της μετατροπής και να το κάνουμε, θα πρέπει να επιστρέψετε στο κύριο μενού.


Εδώ είναι ένα παράδειγμα μιας εκτεταμένης μετατροπέα με την ίδια ιδέα: <http://pastebin.org/6541>
* Κάντε ένα πρόγραμμα που παίρνει μια αριθμητική είσοδο και εμφανίζει τον βαθμό επιστολή θα μεταφραστεί σε. Θα καταλήξετε αξιολόγηση της εισαγωγής κατά περίπτωση και Elif δηλώσεις για να βρείτε όπου ταιριάζει.
* Κάντε ένα απλό τεστ που περνά μέσα από πολλά πολλαπλής επιλογής ή συμπληρώστε το κενό ερωτήσεις. Στο τέλος θα εμφανίσει το πώς ο χρήστης έκανε. Μπορεί να πάρει οποιεσδήποτε ερωτήσεις που θέλει.
* Πάρτε μια είσοδο κάποιου (προφανώς μεγάλο) αριθμό των πένες και το μετατρέπουν σε μεγαλύτερες ονομαστικές αξίες. Για παράδειγμα, 149 πένες = 1 δολάριο, 1 τρίμηνο, 2 δεκάρες, και 4 πένες.
* Δημιουργήστε ένα απλό διαχειριστή λίστα. Να είναι σε θέση να προσθέσει / διαγράψει λίστες και να προσθέσετε / διαγράψετε καταχωρήσεις σε αυτές τις λίστες. Εδώ είναι ένα παράδειγμα ενός Χριστουγέννων διευθυντής λίστα: <http://pastebin.org/6543>
* Δημιουργήστε ένα πρόγραμμα που θα κατασκευάσει και στη συνέχεια ελέγξτε αν μπήκε αριθμοί σχηματίζουν ένα μαγικό τετράγωνο (με σειρά 2D). Εδώ είναι ένα δείγμα κώδικα, αλλά θα πρέπει πραγματικά να εκτυπώσετε την πλατεία σε κάθε βήμα, για να δείξει όπου ο χρήστης είναι από την άποψη της buliding την πλατεία: <http://pastebin.org/6544>


Θα πρότεινα επίσης να κάνει κάποια πράγματα με xTurtle ή άλλη μονάδα γραφικών για να αναμίξετε τα πράγματα και να τον κρατήσει από να πάρει βαρετό. Φυσικά, αυτό είναι πάρα πολύ τον προγραμματισμό πρακτική και όχι η scripting που πολλοί άνθρωποι θα ήταν πραγματικά χρησιμοποιούν python για, αλλά τα παραδείγματα που έδωσα είναι λίγο πολύ λαμβάνονται απευθείας από όταν μάθαινα μέσω python και όλα πήγαν πολύ καλό για μένα. Καλή τύχη!

 

Προσπαθήστε να βρείτε ένα αντίγραφο του [γιατί του (Poignant) οδηγός για Ruby](http://en.wikipedia.org/wiki/Why's_(poignant)_Guide_to_Ruby) on-line. Η αρχική τοποθεσία είναι offline, αλλά είμαι βέβαιος ότι υπάρχουν μερικά καθρέφτες εκεί έξω. Δεν είναι τυπικό οδηγό προγραμματισμού σας? βάζει ένα μοναδικό (και αστεία) γύρισμα για την εκμάθηση μιας νέας γλώσσας που μπορεί να ταιριάξει ο φίλος σας. Για να μην αναφέρουμε, Ruby είναι μια μεγάλη γλώσσα για να μάθουν με.

 

Χρησιμοποιήστε πραγματικό κόσμο 'αναλογία και φανταστικούς χαρακτήρες για να τους διδάξουμε προγραμματισμό. Όπως και όταν μάθει ο κόσμος για τις μεταβλητές και τις δηλώσεις ελέγχου κ.λπ.


Συνήθως αρχίζω με το παράδειγμα αριθμομηχανή. Λέω να φανταστώ u έχω ένα κουτί για κάθε μεταβλητή και u έχουν πίνακες 10 κάρτες με αριθμούς 0-9 τυπωμένο πάνω τους. Ας υποθέσουμε ότι το κουτί μπορεί να κρατήσει ένα χαρτόνι σε μια στιγμή και παρόμοιους τρόπους για να εξηγήσει πώς λειτουργούν τα στοιχεία προγραμματισμού


Και έμφαση στο πώς λειτουργεί κάθε φορέα .. όπως και το απλό «=» φορέας υπολογίζει πάντα το δικαίωμα πλευρά για πρώτη φορά σε μία τιμή. και να θέσει αυτή την τιμή στο παράθυρο με το όνομα «NUM\_1» (η οποία είναι μεταβλητή όνομα)


Αυτό ήταν πολύ πολύ αποτελεσματική, καθώς είναι σε θέση να φανταστεί κανείς τη ροή πολύ γρήγορα.

 

Απλά να είναι διασκέδαση!


Εκπληκτικά Scala θα μπορούσε να είναι το πιο εύκολο αν προσπαθήσεις [Kojo](http://www.kogics.net/sf:kojo)

 

Αν ο αδελφός σου αρέσει παζλ, θα ήθελα να συστήσω [Python Challenge](http://www.pythonchallenge.com "Python Challenge") . Δεν θα το χρησιμοποιήσει ως επίσημο εργαλείο διδασκαλίας σε 1 την 1η φροντιστήριο, αλλά αυτό είναι κάτι που μπορεί να κάνει όταν δεν είστε μαζί για να αμφισβητήσει τον εαυτό του και να διασκεδάσουμε.

 

[Ακαδημαϊκό Γη](http://academicearth.org/subjects/computer-science/category:14) προσφέρει συνδέσεις με δωρεάν μαθήματα Επιστήμης Υπολογιστών από κορυφαία πανεπιστήμια. Έχουν ένα τμήμα προσανατολίζεται προς αρχή Επιστήμης Υπολογιστών. Οι γλώσσες που διδάσκονται στα αρχικά μαθήματα ποικίλλουν:


* **MIT** - Εισαγωγή στην Επιστήμη και Προγραμματισμός Υπολογιστών - Python
* **Stanford** - Πληροφορική Ι: Προγραμματισμός Μεθοδολογία - Java
* **Harvard** - Εισαγωγή στην Επιστήμη των Υπολογιστών Ι - C (επίκεντρο), με μερικά άλλα πασπαλισμένα για το καλό μέτρο (π.χ., SQL, PHP, LISP, συναρμολόγησης, κ.λπ.)
* **Berkeley** - μια διάλεκτο της γλώσσας LISP

 

Δεν ξέρω αν κάποιος έχει αναφερθεί σε αυτό εδώ, ακόμα, αλλά ίσως να θέλετε να ελέγξετε έξω [Zed Shaw](http://www.zedshaw.com/) «s [Μάθετε Python το σκληρό τρόπο](http://www.learnpythonthehardway.com)


Η ελπίδα αυτό βοηθά

 

[Python Challenge](http://www.pythonchallenge.com/)

 

Μετά από να περάσει από μερικά δωρεάν e-books, βρήκα το καλύτερο βιβλίο για την εκμάθηση για πρόγραμμα Head First Προγραμματισμός δημοσιεύθηκε από O'Reily Τύπου. Χρησιμοποιεί Python ως γλώσσα και σας δίνει τα προγράμματα να εργαστούμε για από την αρχή. Είναι όλα πιο ενδιαφέρον το γεγονός ότι «Hello World». Είναι καλά αξίζει τα χρήματα που δαπανώνται για αυτό, και δεδομένου ότι είναι ήδη έξω για λίγο μπορείτε να είστε σε θέση να βρείτε ένα φθηνότερο μεταχειρισμένο αντίγραφο σε Ebay ή Amazon.

 

Ρωτήστε τον αδελφό σου, αν υπάρχει κάτι που θα θέλατε να κάνετε ένα πρόγραμμα να κάνει ή να εφεύρουν ένα έργο για αυτόν που νομίζετε ότι θα τον ενδιαφέρουν. 


Κάτι στο οποίο μπορεί να ξέρει ποια είναι η έξοδος υποτίθεται ότι είναι και να τον δείχνουν τα υλικά (on-line ή σε έντυπη μορφή) σχετικές με το έργο. Αν έρχεται σε python ή τον προγραμματισμό «κρύο» είναι υπομονετικοί καθώς εργάζεται το δρόμο του μέσα από την κατανόηση τα βασικά, όπως η σύνταξη, τα λάθη, το πεδίο εφαρμογής και να είναι προετοιμασμένοι να κάνουν στην άκρη και να τον αφήσει να τρέξει και να κάνει τα δικά του λάθη, όταν αρχίσετε να βλέπετε το φως λάμπα πάει πάνω από το κεφάλι του.

 

Συστήνω ιδιαίτερα [Python Προγραμματισμός: Εισαγωγή στην Επιστήμη των Υπολογιστών 2η έκδοση](http://rads.stackoverflow.com/amzn/click/1590282418) από [τον John Zelle](http://mcsp.wartburg.edu/zelle/) . Είναι προσανατολισμένη προς τους αρχάριους, και ασχολείται με την *σημασιολογία* του προγραμματισμού. Μετά την ανάγνωση, θα είναι σε θέση να πάρει άλλες γλώσσες πολύ πιο γρήγορα λόγω της σημασιολογικής εναντίον συντακτική προσέγγιση Zelle του. Τσέκαρέ το!

 