Ο χάρτης πορείας για προγραμματιστές ιστού 2020 - Ένας οπτικός οδηγός για να γίνετε προγραμματιστής διεπαφής, Back End ή DevOps

Υπάρχουν πολλοί τρόποι για να αποκτήσετε τις δεξιότητες που χρειάζεστε για να γίνετε προγραμματιστής.

Υπάρχουν γραμμικά προγράμματα σπουδών που σας διδάσκουν λίγα από τα πάντα - όπως το πρόγραμμα ανάπτυξης πλήρους στοίβας του FreeCodeCamp.

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

Ένας από τους καλύτερους καταλόγους δεξιοτήτων είναι ο χάρτης πορείας του Kamran Ahmed, τον οποίο ενημερώνει τακτικά.

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

Έχω γράψει για τον χάρτη πορείας του στο παρελθόν. Και για να γιορτάσουμε όλοι ότι είμαστε στα μισά του 2020, θα μοιραστώ ολόκληρο τον χάρτη πορείας του εδώ - και οι τρεις.

Αυτό είναι σωστό - έχει λίστες εργαλείων και πόρων που απαιτούνται για τις ακόλουθες διαδρομές:

  • Ανάπτυξη ιστού διεπαφής
  • Ανάπτυξη ιστοσελίδων οπίσθιου άκρου
  • DevOps (επίσης γνωστό ως "αξιοπιστία ιστότοπου" - αυτό είναι ένα είδος εξέλιξης του παλιού ρόλου διαχειριστή συστήματος)

Οι δεξιότητες που χρειάζονται όλοι οι προγραμματιστές ανεξάρτητα από την εξειδίκευσή τους

Εκτός από αυτά τα μονοπάτια, ο Kamran συνιστά επίσης σε όλους όσους θέλουν να εργαστούν ως προγραμματιστές να μάθουν τις ακόλουθες δεξιότητες:

Git - Έλεγχος έκδοσης

Το Git είναι ένα ισχυρό σύστημα ελέγχου εκδόσεων που από το 2020 χρησιμοποιείται σχεδόν καθολικά. Εάν δεν το γνωρίζετε - ναι σχετίζεται με το GitHub και το GitLab και μπορείτε επίσης να μάθετε πώς να χρησιμοποιείτε αυτά τα εργαλεία.

Βασική χρήση τερματικού - Η γραμμή εντολών Bash, SSH και άλλες δεξιότητες

Αυτό μπορεί να είναι το τερματικό σε Mac, μια γραμμή εντολών DOS των Windows ή το Bash / ZSH. Σημειώστε ότι ανεξάρτητα από το λειτουργικό σύστημα που χρησιμοποιείτε, πιθανότατα θα πρέπει να μάθετε το Linux. Ακόμα κι αν δεν το χρησιμοποιείτε για φορητό / επιτραπέζιο περιβάλλον, σχεδόν σίγουρα θα το χρησιμοποιήσετε για διακομιστές.

Δομές δεδομένων και αλγόριθμοι

Το πρόγραμμα σπουδών freeCodeCamp καλύπτει αυτά τα σε βάθος. Ίσως θελήσετε να τα μάθετε λύνοντας πολλά προβλήματα αλγορίθμων στο freeCodeCamp, CodeWars, Project Euler ή σε άλλο ιστότοπο γεώτρησης. Προτείνω προσωπικά να το κάνετε αυτό είτε σε JavaScript είτε σε Python, αλλά αν είστε έτοιμοι για μια πρόκληση και έχετε πολύ χρόνο στα χέρια σας, το να το κάνετε στο C δεν θα ήταν κακό.

Κατανόηση του τρόπου λειτουργίας του ιστού: HTTPS και API

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

Μοτίβα σχεδίασης, YAGNI, KISS, SOLID

Δεν νομίζω ότι οι αρχάριοι χρειάζονται μια βαθιά κατανόηση αυτών, αλλά δεν θα βλάψει.

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

Όσον αφορά τη σούπα αλφαβήτου, εδώ είναι αυτό που σημαίνει:

  • YAGNI - Γιατί δεν θα το χρειαστείτε - Η φιλοσοφία ότι ο περισσότερος από τον κώδικα που πιστεύετε ότι θα χρειαστεί να γράψετε και οι δυνατότητες που θα πρέπει να εφαρμόσετε στην πραγματικότητα θα αποδειχθούν περιττές
  • KISS - Κρατήστε το απλό, ανόητο! - Όσο απλούστερο διατηρείτε τα έργα σας, τόσο ευκολότερη θα είναι η ζωή σας όταν πρόκειται για συντήρηση.
  • SOLID - Πρόκειται για μνημονικό στοιχείο για " Ενιαία ευθύνη, Ανοιχτό - κλειστό, υποκατάσταση Liskov, διαχωρισμός διεπαφής, αντιστροφή εξάρτησης". Ναι - όχι πράγματα για αρχάριους, αλλά εξετάστε αυτό εάν είστε περίεργοι.

Χάρτης πορείας για ανάπτυξη ιστοσελίδων

Ο πρώτος χάρτης πορείας του Kamran επικεντρώνεται στην ανάπτυξη ιστού διεπαφών.

Εδώ είναι ο οδικός χάρτης του Front End

Οι σκέψεις μου σχετικά με τον χάρτη πορείας Front End

Αυτός είναι ένας σταθερός κατάλογος θεμελιωδών δεξιοτήτων.

Ως προγραμματιστής διεπαφής, σίγουρα θα συνεργάζεστε με HTML, CSS και JavaScript - πολλά και πολλά JavaScript.

Τα μόνα πράγματα που πιστεύω ότι είναι περιττά εδώ:

  • Προεπεξεργαστές CSS. Αυτά είναι απαραίτητα, αλλά το ίδιο το CSS έχει προσθέσει πολλές από τις δυνατότητες που έκαναν αυτούς τους προεπεξεργαστές τόσο χρήσιμους. Το freeCodeCamp διδάσκει αυτήν τη στιγμή τον Sass, αλλά βρισκόμαστε επίσης στη φάση της σταδιακής κατάργησης.
  • Αρχιτεκτονική CSS: Δεν νομίζω ότι είναι απαραίτητα αν δεν σχεδιάζετε συστήματα CSS είναι ένα μεγάλο μέρος της καθημερινής σας δουλειάς.
  • Λίγο nitpick: Το TypeScript είναι ένας πολλά υποσχόμενος τρόπος για τη μείωση των σφαλμάτων και του κώδικα με αυτοπεποίθηση. Αυτό το προσθέτουμε στην έκδοση 7.0 του βασικού προγράμματος σπουδών του FreeCodeCamp. Νομίζω ότι αυτό πρέπει να είναι ακόμη πιο εμφανές στον χάρτη πορείας, αλλά είναι εκεί.
  • Κατά τη γνώμη μου, το Web Assembly είναι ευχάριστο. Οι προγραμματιστές αρχίζουν να κάνουν συναρπαστικά πράγματα μαζί του, αλλά θα περάσει λίγο καιρό πριν αυτή η τεχνολογία γίνει πραγματικά πανταχού παρούσα.

Οδικός χάρτης ανάπτυξης ιστού Back End

Ο δεύτερος χάρτης πορείας του Kamran επικεντρώνεται στην ανάπτυξη ιστού back-end. Εάν το συνδυάσετε με τον χάρτη της διεπαφής, θα έχετε μια αρκετά καλή διαδρομή για να γίνετε προγραμματιστής πλήρους στοίβας.

Εδώ είναι ολόκληρος ο χάρτης πορείας του Back End:

Οι σκέψεις μου σχετικά με τον χάρτη πορείας Back End

Συμφωνώ με όλα εδώ.

Ναι, πρέπει να μάθετε SQL και σχεσιακές βάσεις δεδομένων

Θέλω να συμφωνήσω απόλυτα με τη σύστασή του να μάθετε μια σχεσιακή βάση δεδομένων.

Ναι - βάσεις δεδομένων όπως το MongoDB και το Neo4j μπορούν να κάνουν πολλά για εσάς και ταιριάζουν καλύτερα σε συγκεκριμένους τύπους εφαρμογών από τις σχετικές βάσεις δεδομένων.

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

Προτείνω το PostgreSQL (το οποίο χρησιμοποιούμε για πολλά έργα στο freeCodeCamp), αλλά άλλες σχετικές βάσεις δεδομένων είναι αρκετά παρόμοιες.

Εδώ είναι το δωρεάν 4ωρο μάθημα του FreeCodeCamp για SQL, το οποίο θα σας διδάξει τα βασικά.

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

Πώς να επιλέξετε τη σωστή γλώσσα προγραμματισμού ανάπτυξης

Θέλω επίσης να προσθέσω μια σημείωση για την επιλογή μιας γλώσσας.

Παρόλο που υπάρχουν πολλές γλώσσες - και μπορείτε να κάνετε ουσιαστικά οτιδήποτε με οποιαδήποτε γλώσσα - σας συνιστούμε να μάθετε είτε το Node.js (JavaScript) είτε το Python ως την πρώτη σας γλώσσα.

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

Οδικός χάρτης DevOps

Τέλος, η Kamran καλύπτει πώς να γίνετε DevOps ή Site Reliability Engineer. Αυτό συνεπάγεται την εργασία με πολλές υπηρεσίες cloud και την εποπτεία της υποδομής.

Εδώ είναι ολόκληρος ο χάρτης πορείας του DevOps:

Οι σκέψεις μου σχετικά με τον χάρτη πορείας του DevOps

Linux, Linux, Linux.

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

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

Αυτό είναι όλο. Τι νομίζετε; Άφησε ο Kamran κάποιες βασικές δεξιότητες ή τεχνολογίες; Αφήστε ένα σχόλιο και ας το καταλάβουμε.

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

Καλή κωδικοποίηση!

- Κουίνσι