Πώς θα μπορούσε να γίνει ευκολότερη η εκμάθηση του προγραμματισμού στον υπολογιστή;


Απάντηση 1:

Δεν πρόκειται να το καταστήσετε "ευκολότερο", πραγματικά, είναι περίπου

αυξάνοντας τα κίνητρα με την αύξηση της συνάφειας

. Η εκμάθηση κάτι καινούργιου είναι πάντα μια πρόκληση. Το κίνητρο είναι το θεμέλιο της επιτυχίας.

Υπάρχουν πολλά κοινά εμπόδια:

  • Έλλειψη χρόνου / χρήματος / εμπιστοσύνης
  • Έλλειψη συστήματος υποστήριξης
  • Αντιμετωπίζοντας τις ευθύνες / τοποθετώντας τη μάθηση πιο κάτω στη λίστα προτεραιότητας

Μόλις κάποιος ξέρει

Γιατί

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

Οι άνθρωποι γενικά μαθαίνουν να κωδικοποιούν για δύο λόγους. Ένα, να είναι επαγγελματίες μηχανικοί. Αυτό απαιτεί 10.000 ώρες, απαιτεί κατανόηση δομών δεδομένων, αλγορίθμων, διαφόρων πεδίων μαθηματικών κλπ. Θα τελειώσετε να μαθαίνετε παράλληλα - διαφορετικά τμήματα της πειθαρχίας ταιριάζουν μαζί. Υπάρχει τρόπος να γίνει ευκολότερη αυτή η διαδικασία; Μερικοί άνθρωποι είναι φυσικά ταχύτεροι μαθητές από άλλους. Αλλά είναι πραγματικά όλα σχετικά με την πρακτική, και ένα σύστημα υποστήριξης για να σας πάρει μέσα από τα τραχιά σημεία. Κοινότητες όπως το StackOverflow και το Quora έχουν κάνει την εύρεση βοήθειας τόσο απλή όσο η ερώτηση ή η ανάγνωση μιας βάσης γνώσεων. (Εύχομαι ότι υπήρχαν όταν ήμουν υπόσκαφος) Το RosettaCode είναι επίσης θεϊκό έργο.

Αλλά ο δεύτερος λόγος που οι άνθρωποι αποφασίζουν να μάθουν την κωδικοποίηση είναι ότι έχουν ένα έργο. Η μάθηση βασισμένη στο έργο είναι τρομερή. Έχοντας ένα στόχο διατηρεί τους ανθρώπους κίνητρα. Υπάρχουν πολλά μεγάλα ξεκινήματα που στοχεύουν σε αυτούς τους μαθητές - το αγαπημένο μου είναι το Codecademy, αλλά συμπεριέλαβα ένα διάγραμμα ροής παρακάτω με πολλά άλλα φοβερά. Όσον αφορά την ευκολότερη διευκόλυνση αυτών των ανθρώπων, τα ειδικά μαθήματα για το πρόγραμμα είναι γενικά προσανατολισμένα για αρχάριους. Και η εμπειρία εκμάθησης μέσα στο πρόγραμμα περιήγησης που προσφέρεται από μια σειρά νέων εταιριών ξεχωρίζει πολύ εύκολα ... δεν χρειάζεται να δημιουργήσουμε ένα περιβάλλον, να επιλέξουμε έναν IDE, να μεταγλωτίσουμε κτλ. (Όταν ήμουν CS αρχάριος, έπρεπε να χρησιμοποιήστε το Emacs ... δεν υπάρχει ακόμα κανένα προϊόν στη γη που μισώ περισσότερο)

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


Απάντηση 2:

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

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

Σε μια προσέγγιση πιο πάνω προς τα κάτω, η προτίμησή μου θα ήταν να επικεντρωθώ στον τελικό στόχο μετά τον σύντομο αστάρι για τη βασική ροή του κώδικα ή της σύνταξης. Για παράδειγμα, λέτε ότι ο στόχος είναι να μάθετε πώς να χτίζετε εφαρμογές, σε αντίθεση με το να γίνετε επιστήμονας υπολογιστών. Ξεκινήστε με ένα τελικό προϊόν και αποικοδομήστε όλα τα μπλοκ που αποτελούν αυτό το τελικό προϊόν. Μία από τις σημαντικότερες επιφυλάξεις μου για την αρχική μου εκπαίδευση (και ακόμη και μερικά μαθήματα στο κολέγιο) ήταν ότι δεν έφτασε στο πλαίσιο - έμαθα μια ιδέα χωρίς να γνωρίζω μια εφαρμογή, οπότε δεν έμεινε. Πιστεύω ότι ξεκινώντας με έναν τελικό στόχο και εργαζόμενος προς τα κομμάτια που συνθέτουν το σκοπό αυτό, θα βοηθήσει με το πλαίσιο.

Σκεφτείτε για μαθήματα όπως τέχνη ή ξυλουργική - ο στόχος σας είναι να ζωγραφίσετε μια εικόνα ενός καλαθιού φρούτων ή να χτίσετε ένα birdhouse. Ξεκινάτε με την εκμάθηση των συστατικών που συνθέτουν το χρώμα ή την ιστορία του πριονιού και πώς κατασκευάζεται ξυλεία; Οχι φυσικά όχι. Αρχίζετε με καθοδηγούμενη οδηγία - ζωγραφίστε αυτό το τόξο, κόψτε αυτό το κομμάτι ξύλου σε αυτές τις διαστάσεις. Αυτός είναι ο τρόπος με τον οποίο διδάσκουμε τους ανθρώπους να χτίσουν πράγματα - δεν ξεκινάμε με εσωτερική θεωρία και δουλεύουμε σε πρακτικές εφαρμογές, οδηγούμε τους ανθρώπους μέσω πρακτικών έργων και στη συνέχεια μειώνουμε σταδιακά το επίπεδο λεπτομέρειας που παρέχεται στην εντολή μέχρι να μπορέσουν να ζωγραφίσουν ή να χτίσουν πάνω τους το δικό.

Ενώ η επιστήμη των υπολογιστών είναι μια επιστήμη που έχει πολλά δομικά στοιχεία και προαπαιτούμενα, ο προγραμματισμός πρακτικών εφαρμογών είναι περισσότερο ένα έργο ξυλείας. Ναι, μπορώ να γράψω ένα quicksort ως επιστήμονας υπολογιστών, αλλά γιατί δεν θα μάθω πώς να χρησιμοποιήσω μια ρουτίνα ταξινόμησης βιβλιοθήκης όταν ξεκινώ ως προγραμματιστής; Χρειάζεται να καταλάβω πώς ακριβώς λειτουργεί μια ρουτίνα για να ταξινομήσει κάτι; Όχι περισσότερο από ό, τι πρέπει να μάθω πώς να φτιάχνω χρώμα πριν ζωγραφίσω μια φωτογραφία. Πρέπει να διδάξουμε τον προγραμματισμό περισσότερο σαν εισαγωγική φυσική και ξυλουργική - να ξεκινήσουμε με ένα βασικό σύνολο προαπαιτούμενων και να εργαστούμε για καθοδηγημένη εκπαίδευση σε ολόκληρα τελικά προϊόντα, αυξάνοντας σταδιακά την πολυπλοκότητα και το βάθος που πηγαίνουμε, αντί να ξεκινάμε με τις πιο συγκεχυμένες έννοιες και να οικοδομούμε πάνω από αυτά. Αγνοήστε τις εσωτεριστικές εξαιρέσεις για τώρα και βεβαιωθείτε ότι είναι σαφές ποιες είναι οι υποθέσεις που γίνονται μπροστά ώστε να μπορείτε να αρχίσετε να τις αφαιρείτε αργότερα ή να προσθέσετε μικρά κομμάτια καλής πρακτικής χωρίς να τα εξηγήσετε αμέσως. Ο κώδικας παιχνιδιών δεν πρέπει να είναι άχρηστος, απλά σαφής.


Απάντηση 3:

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

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

Ίδια στη γλώσσα προγραμματισμού πρέπει να μάθετε πώς να κάνετε τις κατάλληλες λογικές λέξεις κλειδιά, σύνταξη και βασικά στοιχεία.

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

.


Απάντηση 4:

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

,

,

,

,

).

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

Η Κοινωνική Γνωστική Θεωρία δηλώνει γενικά ότι ένα άτομο πρέπει να έχει 1. κάποιο επίπεδο αυτο-αποτελεσματικότητας 2. κατανόηση των αναμενόμενων αποτελεσμάτων και 3. στόχων για να μάθει μια συμπεριφορά και να το διατηρήσει.

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

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

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

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

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


Απάντηση 5:

Νομίζω ότι ο πληθυσμός γενικά είναι πολύ υποεκμετάλλευτος στον προγραμματισμό, ενώ σίγουρα δεν είναι για όλους, πιστεύω ότι είναι μια ολοένα και πιο σημαντική δεξιότητα ειδικά στην αγορά εργασίας σήμερα και είναι απίστευτο το γεγονός ότι δεν είναι ακόμα μέρος του πρότυπου προγράμματος σπουδών στα σχολεία μας , Ο προγραμματισμός πρέπει να είναι απλώς σημαντικός (αν όχι πιο σημαντικός) από θέματα όπως η Μαθηματικά και η Γεωγραφία. Όλοι γνωρίζουν ότι ο Bill Gates έχει κάνει περισσότερα χρήματα από τον Θεό, αλλά πόσοι άνθρωποι γνωρίζουν ότι άρχισε να προγραμματίζει από την ηλικία των 13 ετών; Bottomline, λέω πάρτε τα παιδιά που συμμετέχουν στην όμορφη τέχνη του προγραμματισμού όσο το δυνατόν νωρίτερα.


Απάντηση 6:

Το σκέφτομαι όλη την ώρα.

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

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

Έτσι για μένα, νομίζω ότι ένα μεγάλο μέρος του παίρνει τους ανθρώπους την αποπληρωμή του "wow, μπορώ να κάνω κάτι να εμφανιστεί στην οθόνη!", Και "wow, μπορώ να κάνω κάτι που οι φίλοι μου μπορούν να δουν

δικα τους

οθόνη! "όσο το δυνατόν γρηγορότερα.


Απάντηση 7:

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