4 Βήματα για την αποτελεσματική εκμάθηση νέων αντικειμένων στη Μηχανική Λογισμικού

Φωτογραφία από τον Maxwell Nelson στο Unsplash

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

Τι εννοώ όταν λέω αποτελεσματική μάθηση;

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

Βήμα 1: Γνωρίστε το ιστορικό

Πρέπει να γνωρίζετε το παρελθόν για να καταλάβετε το παρόν. ~ Carl Sagan

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

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

  • Τι πρόβλημα αντιμετωπίζει αυτό το προϊόν / προϊόν;
  • Γιατί προέκυψε αυτό το πρόβλημα;
  • Όταν προέκυψε το πρόβλημα, ποιες ήταν όλες οι άλλες λύσεις που προτάθηκαν;
  • Και τελικά γιατί αυτό το tech / προϊόν χτύπησε τις άλλες λύσεις.

Για να εξηγήσουμε καλύτερα ας πάρουμε ένα παράδειγμα του Apache Kafka. Για να το μάθω, θα ήθελα κατ 'ουσίαν να ρωτήσω ποιο πρόβλημα αντιμετωπίζει ο Apache Kafka, γιατί το πρόβλημα αυτό προέκυψε κατά πρώτο λόγο. Όταν προέκυψε αυτό το πρόβλημα, ποιες ήταν οι άλλες λύσεις που αναζητούσε ο κόσμος και τελικά τι έκανε ο Apache Kafka ότι το έκανε τόσο αγαπημένο στην τεχνολογική κοινότητα;

Πλεονεκτήματα της προσέγγισης: Λοιπόν αν ακολουθήσετε αυτά τα βήματα, δεν θα ξέρετε μόνο τι είναι Apache Kafka αλλά θα γνωρίζετε και τις άλλες εναλλακτικές λύσεις του Apache Kafka. Το πιο σημαντικό θα μάθετε πότε να μην χρησιμοποιήσετε το Apache Kafka και να επιλέξετε άλλες λύσεις για το ίδιο πρόβλημα ίσως το RabbitMQ. Τώρα, αν δεν γνωρίζετε αυτές τις τεχνολογίες είναι εντάξει απλά να θυμάστε ότι και οι δύο συζητούνται συχνά στο διαδίκτυο, όπως ποιος να χρησιμοποιήσετε και πού οι λέξεις-κλειδιά είναι υπερσυνδέσεις για να αισθανθείτε ελεύθεροι να τα ελέγξετε.

Βήμα 2: Ξίφη και ασπίδες

Φωτογραφία από τον Bogdan Kupriets στο Unsplash

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

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

Για παράδειγμα, εάν γνωρίζω την Python (ασπίδα) αλλά δεν γνωρίζω ποια είναι τα API (σπαθιά) μπορώ απλά να κοιτάξω τα πράγματα online για να μάθω "Πώς να κάνω ένα API χρησιμοποιώντας Python" με μια απλή αναζήτηση στο διαδίκτυο και θα πάρω πολλά σεμινάρια σε πολλές γλώσσες και πολλαπλές προφορές. Αλλά αυτό δεν είναι κάτι νέο, σχεδόν όλοι το κάνουν αυτό γιατί το φανταχτερό όνομα σε μια στρατηγική; Καλά χαίρομαι που ρωτήσατε, το παραπάνω παράδειγμα είναι πολύ απλό, αλλά αν λέω ότι δεν ξέρετε το python και δεν ξέρετε τι είναι ένα API και πρέπει να κάνετε ένα API στο python (τώρα έχετε δύο σπαθιά και χωρίς ασπίδες). Πώς θα το αντιμετωπίσετε;

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

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

Πώς λοιπόν η στρατηγική αυτή είναι διαφορετική; Έτσι, τον Μάρτιο του 2019, μου δόθηκε μια πρόκληση να μάθω και να εφαρμόσω το Akka χρησιμοποιώντας Java. Και ήμουν ένας προγραμματιστής C # που ήταν μόλις λίγα μήνες πανδοχείο με μάθηση python. Τώρα δεν ήξερα την Java και δεν ήξερα τι είναι Akka (Δύο σπαθιά). Έτσι διάλεξα τον τρόπο που συζητήσαμε ακριβώς πάνω από την αρχή με την Akka και την ιστορία της (από το Βήμα 1) και σύντομα έχω καταλάβει βαθιά τι ακριβώς είναι η Akka και ποιο πρόβλημα λύνει και γιατί πήραμε την Akka για να λύσουμε το πρόβλημα την πρώτη θέση, αλλά 0 γνώσεις σχετικά με το πώς μπορώ πραγματικά να κωδικοποιήσω και να πάρω ένα δείγμα σε λειτουργία. Η τεκμηρίωση ήταν εκφοβιστική μάλλον δεν μπορώ ακόμα να καταλάβω την τεκμηρίωσή τους και κάθε φροντιστήριο που παρακολούθησα στην Java δεν είχε νόημα. Τι έκανα λοιπόν;

Έκανα μια αξιολόγηση Swords και Shields, οι Ασπίδες μου ήταν η C #, η Python, η οποία είχε αποκτήσει πρόσφατα γνώση για την Akka. Τα σπαθιά μου: Java, Κωδικοποίηση λύσεων Akka. Έψαξα λοιπόν τις εφαρμογές Akka στο C # και το Python και βρήκα ένα που ονομάζεται akka.net για την εφαρμογή της Akka χρησιμοποιώντας το C #. Πέρασα το Σαββατοκύριακο δουλεύοντας σε ένα έργο στο C # για να μάθω πώς να κωδικοποιήσω με την Akka στο C # και όταν επέστρεψα στη δουλειά τη Δευτέρα, ήξερα τι είναι η Akka, γιατί να την χρησιμοποιήσεις και πώς μπορούμε να την κωδικοποιήσουμε (τώρα ασπίδα ) και έπειτα από τότε που ήξερα τι ήθελα να κάνω, απλά έπρεπε να ψάξω "πως να το κάνεις αυτό / ότι το akka java" (το java είναι το σπαθί) και ο ιστός εργάστηκε αυτή την φορά υπέρ μου.

Βήμα 3: Κλέψτε μια διδακτέα ύλη, γελάστε μόνο ακολουθήστε μία

Αυτό είναι ως επί το πλείστον για να ξεκινήσει κανείς στον τομέα, αλλά είναι αρκετά χρήσιμο. Υπάρχουν πολλές ιστοσελίδες / εφαρμογές που έχουν online μαθήματα για να μάθουν και όλα έρχονται μια ετικέτα επισυνάπτεται και δεν μπορούν όλοι να αντέξουν οικονομικά αυτές τις συνδρομές και αυτό που όλοι καταλήγουν να κάνουμε είναι να πηγαίνω στο YouTube και να ψάχνω για περιεχόμενο και πολλά από αυτά είναι αλλά πολλά από αυτά δεν είναι. Επειδή υπάρχει πολύς θόρυβος, πολλοί από εμάς τείνουν να χαθούν και τελικά να χάσουν το ενδιαφέρον τους. Αν βρεθείτε σε μια τέτοια κατάσταση, έχω το τέλειο φύλλο εξαπατήσει για σας και θα σας κοστίσει συνολικά 0 χρήματα!

Το Cheat Sheet Πηγαίνετε σε οποιαδήποτε από αυτές τις καταβληθείσες συνδρομές, μόνο συνδρομητές ιστοσελίδες και βρείτε μια σειρά μαθημάτων που θα θέλατε να περάσετε. Βρήκατε πολλά; (θα γίνει επίσης) Τέλεια τώρα ταξινομήσετε αυτά τα μαθήματα σε 3 στάδια Αρχάριοι, Ενδιάμεσοι, Προχωρημένοι (πολλοί από αυτούς τους ιστοτόπους έχουν ήδη το περιεχόμενό τους ταξινομημένο ως αυτό). Τώρα που έχετε τα μαθήματα όλα διαλελυμένα, τραβήξτε τον πίνακα περιεχομένων τους και συγχωνεύστε όλο τον πίνακα περιεχομένων σε ένα μόνο από τις 3 κατηγορίες (αρχάριος, ενδιάμεσος και προηγμένος) και εκεί έχετε. Έχετε ένα πρόγραμμα σπουδών από πάνω προς τα κάτω για τα πράγματα που πρέπει να καλύψετε για να είστε σε αρχάριους επίπεδο μιας τεχνολογίας, τότε θα πρέπει να μάθετε αυτά τα θέματα για μετάβαση από επίπεδο αρχαρίων σε ενδιάμεσο επίπεδο σε αυτήν την τεχνολογία και ούτω καθεξής. Τώρα που έχετε τη λίστα, ορίστε στόχους που θα σας βοηθήσουν να παραμείνετε παρακινημένοι και τώρα μόνο θέματα που σχετίζονται με το YouTube σε αυτό το λαμπερό νέο σας πρόγραμμα και μάθετε μακριά. Αρχικά, θα δείτε μια τεράστια διαφορά σε αυτό που ψάχνετε. Από το "Python για αρχάριους" ή "μάθετε Python" θα ψάξετε για "κατανόηση λίστας σε python". Ο θόρυβος μόλις βγήκε από το παράθυρο (κάποιος παρακαλώ απενεργοποιήστε την ακύρωση θορύβου)

Βήμα 4: Δοκιμάστε τη Γνώση σας

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

συμπέρασμα

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

«Ενώ διδάσκουμε, μαθαίνουμε», δήλωσε ο Ρωμαίος φιλόσοφος Seneca

Εάν αυτή η ανάρτηση ήταν χρήσιμη, κάντε κλικ στο πλήκτρο cla κάτω από μερικές φορές για να δείξετε την υποστήριξή σας! ⬇⬇