window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster υπάρχει ήδη') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() ΡΆΓΕΣ ΔΙΔΑΣΚΑΛΊΑΣ - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2018-11-05
Ανάπτυξη λογισμικού

ΣΙΔΗΡΟΔΡΟΜΙΚΈΣ ΡΆΓΕΣ ΔΙΔΑΣΚΑΛΊΑΣ

Michal Begejowicz

Πρώτα, λίγα λόγια για το ίδιο το μάθημα. Πριν καν ξεκινήσει, οι μαθητές μας έλαβαν μια "προ-εργασία" - η οποία περιείχε οδηγίες και ασκήσεις που έπρεπε να ολοκληρωθούν πριν από το μάθημα. Οι εργασίες τους περιλάμβαναν την εγκατάσταση του Linux, την εξοικείωση με ένα τερματικό και κάποια βασικά στοιχεία HTML, CSS και Git.

Οι υπολογισμοί

Κατά τη διάρκεια των επόμενων τεσσάρων μηνών συναντιόμασταν κάθε δύο εβδομάδες και βήμα προς βήμα, ανακαλύπταμε το The Awesome World of Ruby et al. Το μάθημα κάλυπτε τη γλώσσα Ruby, Ruby on Rails, Javascript και μερικά δημοφιλή εργαλεία για εφαρμογές RoR όπως τα Devise, Pundit, Sidekiq ή Carriewave.

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

Το σχέδιο επίθεσης

Ως δάσκαλος, ήρθα προετοιμασμένος με 3 χρόνια εμπειρίας με το Ruby on Rails, 10 χρόνια εμπειρίας με τον προγραμματισμό γενικά και κάποιες παρουσιάσεις με θέματα και ασκήσεις που έπρεπε να γίνουν.

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

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

Δύο άτομα μπροστά από φορητούς υπολογιστές

Η πρόκληση

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

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

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

Μια πρόσθετη δυσκολία, ειδικά στην αρχή του μαθήματος, ήταν να εξηγήσουμε αυτές τις έννοιες ώστε να γίνουν κατανοητές. Κατά τη γνώμη μου, δεν είναι δυνατόν να μάθει κανείς το Rails χωρίς να μάθει Ruby - αν και ξέρω ότι κάποιοι υποστηρίζουν ότι δεν ισχύει κάτι τέτοιο. Είναι αλήθεια ότι τα Rails έχουν τα δικά τους μοτίβα και πολλά πράγματα μπορεί να τα θυμάται κανείς παρά να τα μαθαίνει στην αρχή. Ωστόσο, νομίζω ότι για να γίνει κάποιος ενσυνείδητος προγραμματιστής RoR, μια μέτρια κατανόηση της Ruby, της OOP ή της SQL είναι απαραίτητη. Το να διδάσκεις τους ανθρώπους να προγραμματίζουν είναι αρκετά διαφορετικό από το να διδάσκεις το Rails - ενώ με το Rails υπάρχουν πολλά που μπορείς να περιμένεις να γίνουν απλά αποδεκτά ή να τα πιστέψεις (κανείς δεν χρειάζεται να ξέρει πώς λειτουργούν τα callbacks στην αρχή - μόνο τι μπορούν να κάνουν), οι έννοιες του προγραμματισμού πρέπει να εξηγούνται με μεγαλύτερη λεπτομέρεια.

Ενεργοποίηση της Δύναμης

Πώς γίνεται αυτό;

Υπομονετικά.

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

Ένα άλλο πράγμα που πρέπει να σημειωθεί είναι ότι το Ruby δεν είναι τόσο εύκολο όσο φαίνεται. Αν ξεκινήσατε να μαθαίνετε Ruby με γνώσεις C/Java/Python, όλα πιθανόν να σας φαίνονταν τόσο καθαρά και ωραία και απλά. Προσπαθήστε όμως να το σκεφτείτε και θα το παρατηρήσετε:

  1. Τι είναι αυτές οι παρενθέσεις; Πρέπει να τις χρησιμοποιήσω; Δεν θα έπρεπε;
  2. Τι είναι αυτό; αυτο πράγμα; Μερικές φορές πρέπει να το χρησιμοποιήσω (πχ. attr_writer – self.variable = ...), μερικές φορές όχι (attr_reader – μεταβλητή) και μερικές φορές δεν μπορώ! (private def some_method – self.some_method θα πετάξει ένα σφάλμα)
  3. Μπλοκ. Βάζω στοίχημα ότι ακόμη και κάποιοι έμπειροι προγραμματιστές (διαφορετικών γλωσσών) θα χρειαστούν λίγο περισσότερο από το αναμενόμενο για να καταλάβουν #inject

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

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

Τοποθέτηση σε κατάσταση

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

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

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

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

Η χρήση της νοημοσύνης

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

Το χρονοδιάγραμμά μας ήταν 9 συναντήσεις - επί 2 ημέρες επί 8 ώρες μας έδινε 144 ώρες για να πάμε από το 0 στο Ruby-hero. Ήταν υψίστης σημασίας να κάνουμε ολόκληρη τη διδακτέα ύλη σε αυτό το χρονικό διάστημα - το οποίο από μόνο του επέβαλε έναν αρκετά γρήγορο ρυθμό. Οι τρεις πρώτες συναντήσεις αφορούσαν αποκλειστικά τη Ruby - στη συνέχεια μια συνάντηση για την SQL, στη συνέχεια την RoR και μια συνάντηση για το JS στο ενδιάμεσο.

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

Ψευδαίσθηση και πραγματικότητα

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

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

Σχετικά άρθρα

Ανάπτυξη λογισμικού

Κατασκευάστε μελλοντικά ασφαλείς εφαρμογές Web: γνώσεις από την ομάδα εμπειρογνωμόνων του The Codest

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

THECODEST
Ανάπτυξη λογισμικού

Top 10 εταιρείες ανάπτυξης λογισμικού με έδρα τη Λετονία

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

thecodest
Λύσεις Enterprise & Scaleups

Βασικά στοιχεία ανάπτυξης λογισμικού Java: Α Guide to Outsourcing Successfully (Οδηγός για την επιτυχή εξωτερική ανάθεση)

Εξερευνήστε αυτόν τον βασικό οδηγό για την επιτυχή ανάπτυξη λογισμικού outsourcing Java για να αυξήσετε την αποδοτικότητα, να αποκτήσετε πρόσβαση στην τεχνογνωσία και να οδηγήσετε την επιτυχία των έργων με The Codest.

thecodest
Ανάπτυξη λογισμικού

Ο απόλυτος οδηγός για το Outsourcing στην Πολωνία

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

TheCodest
Λύσεις Enterprise & Scaleups

Ο πλήρης οδηγός εργαλείων και τεχνικών ελέγχου πληροφορικής

Οι έλεγχοι ΤΠ διασφαλίζουν ασφαλή, αποτελεσματικά και συμβατά συστήματα. Μάθετε περισσότερα για τη σημασία τους διαβάζοντας ολόκληρο το άρθρο.

The Codest
Jakub Jakubowicz CTO & Συνιδρυτής

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

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

    elGreek
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek