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

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

Ο προγραμματισμός και η γλώσσα προγραμματισμού είναι δύο διαφορετικά πράγματα

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

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

Φιλοσοφία των Γλωσσών Προγραμματισμού

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

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

Παραδείγματα Γλωσσών Προγραμματισμού

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

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

Καλύτερες πρακτικές σχεδιασμού λογισμικού

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

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

Υπεύθυνοι Εξάρτησης

Καμία γλώσσα προγραμματισμού δεν θα σας προτείνει να γράψετε τα πάντα μόνοι σας. Χρειάζεστε κάποιο είδος μηχανισμού για να χρησιμοποιήσετε τον κώδικα άλλων λαών, μπορεί να είναι μια βιβλιοθήκη ανοιχτού κώδικα, στο έργο σας. Εκεί είναι χρήσιμο το Dependency Manager. Οι περισσότερες από τις σύγχρονες γλώσσες προγραμματισμού συνοδεύονται από πολύ καλό διαχειριστή εξάρτησης. Εάν όχι, πρέπει να υπάρχει ένα κοινοτικό έργο για να γίνει αυτό. Εάν είστε εξοικειωμένοι με τις έννοιες της έκδοσης, τις βιβλιοθήκες τρίτων και τις γεύσεις πολλαπλών εκδόσεων, τότε δεν χρειάζεται να ανησυχείτε εδώ. Η απλή εντολή βοήθειας θα περιγράψει τι πρέπει να κάνετε.

Αν και ορισμένοι διαχειριστές εξαρτήσεων είναι επίσης εργαλεία κατασκευής, ώστε να έχουν περισσότερη λειτουργικότητα μαζί τους, π.χ. — Gradle στην Java, Cargo σε Rust κ.λπ.

Εύρεση καλών πόρων

Σήμερα, οι περισσότερες Γλώσσες Προγραμματισμού έχουν καλή επίσημη τεκμηρίωση και σεμινάρια. Κατά τα άλλα, η κοινότητα χτίζει και τους δικούς της πόρους. Για να βρείτε ότι αγοράστε τις τρέχουσες τάσεις, όπως — "Awesome X" (αντικαταστήστε το X με τη γλώσσα σας), όπου θα βρείτε επιμελημένη λίστα άρθρων, βιβλιοθήκες, έργα ανοιχτού κώδικα κ.λπ.

Επίσης, αν είστε σαν εμένα, που μου αρέσει να βλέπει την ουσία των γλωσσικών χαρακτηριστικών σε ένα μέρος, επισκεφτείτε — ιστότοπους όπως το learnxinyminutes. Αν σας αρέσει να μαθαίνετε γράφοντας κώδικα, μπορείτε να βρείτε exercism.io, hackerrank κ.λπ.χρήσιμους. Επίσης, αν είστε τυχεροί, θα βρείτε koans αναζητώντας το X Koans, όπου θα το μάθετε κάνοντας ασκήσεις TDD (Test Driven Development). Μου αρέσει αυτό που έκαναν αυτοί οι λαμπροί άνθρωποι σε αυτόν τον τομέα μάθησης. Απλά πρέπει να βρεις τα σωστά πράγματα, είσαι σε καλή παρέα.

Επίσης, αν κολλήσετε κάπου, το Stack Overflow ή τα κοινοτικά κανάλια IRC / Slack είναι εκεί για να ζητήσουν βοήθεια.

συμπέρασμα

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

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