Πρέπει οι επιστήμονες δεδομένων να μάθουν JavaScript;

Τα πλεονεκτήματα και τα μειονεκτήματα της χρήσης της # 1 γλώσσας του ιστού για την επιστήμη δεδομένων

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

Για ένα, ίσως έχετε παρατηρήσει ότι η JavaScript είναι μια πολύ δημοφιλής γλώσσα αυτές τις μέρες. Έχει αυξηθεί σε δημοτικότητα από τότε που το Node.js επέτρεψε στους προγραμματιστές JavaScript να γράψουν κώδικα από διακομιστή.

Πιο πρόσφατα, πλαίσια όπως τα Electron, Cordova και React-Native έχουν επιτρέψει στους προγραμματιστές JavaScript να δημιουργήσουν εγγενείς εφαρμογές σε ένα ευρύ φάσμα πλατφορμών.

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

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

Οι περισσότεροι επιστήμονες δεδομένων συνεργάζονται με κάποιο συνδυασμό Python, R και SQL. Εάν είστε νέοι στο πεδίο, αυτές είναι οι γλώσσες που πρέπει να μάθετε πρώτα .

Οι επιστήμονες δεδομένων μπορούν επίσης να ειδικεύονται σε άλλη γλώσσα όπως η Scala ή η Java. Υπάρχουν πολλοί λόγοι για τους οποίους αυτές οι γλώσσες είναι τόσο δημοφιλείς.

Όμως σχετικά λίγοι επιστήμονες δεδομένων ειδικεύονται στη JavaScript.

Ωστόσο, δεδομένης της παρουσίας του JavaScript και της δημοτικότητας της επιστήμης δεδομένων, πόσο θα μπορούσαν να επωφεληθούν οι επιστήμονες δεδομένων από την εκμάθηση ακόμη και των βασικών της γλώσσας; Και τι γίνεται με τους προγραμματιστές JavaScript που θέλουν να εξερευνήσουν την επιστήμη δεδομένων;

Ας ξεκινήσουμε εξετάζοντας μερικές σημαντικές αντιρρήσεις και μετά εξετάστε ορισμένα επιχειρήματα υπέρ.

Κατά

  • Λειτουργικότητα - Το JavaScript δεν έχει το εύρος των πακέτων επιστήμης δεδομένων και ενσωματωμένης λειτουργικότητας σε σύγκριση με γλώσσες όπως το R και το Python. Εάν δεν σας πειράζει να ανακαλύψετε ξανά το τιμόνι, αυτό μπορεί να είναι λιγότερο θέμα. Αλλά αν πρέπει να εκτελέσετε πιο εξελιγμένες αναλύσεις, θα εξαντλήσετε τις επιλογές πολύ γρήγορα.
  • Παραγωγικότητα - Ένα άλλο πλεονέκτημα των εκτεταμένων οικοσυστημάτων της Python και της R είναι ότι υπάρχουν πολλοί οδηγοί και διαθέσιμοι τρόποι για σχεδόν οποιαδήποτε εργασία επιστήμης δεδομένων που θέλετε να κάνετε. Για το JavaScript, αυτό δεν ισχύει στην πραγματικότητα. Πιθανότατα θα χρειαστείτε περισσότερο χρόνο για να καταλάβετε πώς να λύσετε ένα πρόβλημα επιστήμης δεδομένων σε JavaScript από ότι θα κάνατε στο Python ή στο R.
  • Multithreading - Είναι συχνά χρήσιμο να επεξεργάζεστε μεγάλα σύνολα δεδομένων ή να εκτελείτε παράλληλα προσομοιώσεις. Ωστόσο, το Node.js δεν είναι κατάλληλο για υπολογιστικά εντατικές, δεσμευμένες με CPU εργασίες. Για τέτοιες εργασίες, γλώσσες όπως η Python, η Java ή η Scala έχουν το πάνω χέρι πάνω από το JS. Αλλά, ρίξτε μια ματιά στο έργο Napa.js της Microsoft. Παρέχει έναν πολλαπλό νήμα χρόνου εκτέλεσης JavaScript που μπορεί να συμπληρώσει το Node.js.
  • Κόστος ευκαιρίας - Ίσως ο κύριος λόγος για τον οποίο οι επιστήμονες δεδομένων τείνουν να μην μαθαίνουν πολλές γλώσσες πέρα ​​από την Python και το R οφείλεται στο «κόστος ευκαιρίας». Κάθε ώρα που ξοδεύεται η εκμάθηση μιας άλλης γλώσσας είναι μια ώρα που θα μπορούσε να είχε επενδυθεί για την εκμάθηση ενός νέου πλαισίου Python ή μιας άλλης βιβλιοθήκης R. Ενώ αυτές οι γλώσσες κυριαρχούν στην αγορά εργασίας της επιστήμης δεδομένων, υπάρχουν περισσότερα κίνητρα για να τις μάθουν. Και επειδή η επιστήμη των δεδομένων είναι ένα τόσο γρήγορο πεδίο, υπάρχει πάντα κάτι νέο να μάθει.

Για

  • Οπτικοποίηση - Η JavaScript υπερέχει στην οπτικοποίηση δεδομένων. Βιβλιοθήκες όπως D3.js, Chart.js, Plotly.js και πολλές άλλες καθιστούν δυνατή την κατασκευή ισχυρών οπτικοποιήσεων δεδομένων και ταμπλό. Δείτε μερικά υπέροχα παραδείγματα D3!
  • Ενσωμάτωση προϊόντων - Όλο και περισσότερες εταιρείες χρησιμοποιούν τεχνολογίες ιστού με μια στοίβα που βασίζεται σε κόμβους για να δημιουργήσουν το βασικό προϊόν ή την υπηρεσία τους. Εάν ο ρόλος σας ως επιστήμονας δεδομένων απαιτεί από εσάς να συνεργαστείτε στενά με τους προγραμματιστές προϊόντων, τότε δεν είναι κακό να "μιλήσετε" την ίδια γλώσσα.
  • ETL - Οι αγωγοί επεξεργασίας δεδομένων εφαρμόζονται συνήθως σε γλώσσα γενικού σκοπού, όπως Python, Scala ή Java. Το JavaScript συχνά δεν κοιτάζει. Ωστόσο, αυτό μπορεί να είναι άδικο. Η ενότητα συστήματος αρχείων του κόμβου «fs» παρέχει ένα εξαιρετικό API που σας επιτρέπει να καλείτε τυπικές λειτουργίες συστήματος αρχείων είτε συγχρονισμένα είτε ασύγχρονα. Ο κόμβος παίζει επίσης καλά με το MongoDB και πολλά άλλα δημοφιλή συστήματα βάσεων δεδομένων. Το API ροών το καθιστά πολύ εύκολο να εργαστεί με ροές μεγάλων δεδομένων - ένα άλλο πιθανό πλεονέκτημα για το ETL. Όπως αναφέρθηκε παραπάνω, για πολυνηματική και παράλληλη επεξεργασία, ανατρέξτε στο έργο Napa.js της Microsoft.
  • Tensorflow.js - Ποιος λέει ότι η JS δεν μπορεί να κάνει δροσερά μηχανήματα; Νωρίτερα το 2018, κυκλοφόρησε το Tensorflow.js. Αυτό φέρνει μηχανική εκμάθηση σε προγραμματιστές JavaScript - τόσο στο πρόγραμμα περιήγησης όσο και στο διακομιστή. Το Tensorflow είναι μια δημοφιλής βιβλιοθήκη μηχανικής εκμάθησης, που αναπτύχθηκε από την Google και έγινε ανοιχτή πηγή το 2015. Αναγνώριση χειρονομιών, αναγνώριση αντικειμένων, σύνθεση μουσικής… το ονομάζετε, μάλλον μπορείτε να το έχετε. Το καλύτερο πράγμα που μπορείτε να κάνετε τώρα είναι να ρίξετε μια ματιά σε κάποια demos.

συμπέρασμα

Λοιπόν, πρέπει οι επιστήμονες δεδομένων να μάθουν JavaScript;

Η εκμάθηση JavaScript δεν θα βλάψει το βιογραφικό σας. Αλλά μην το μάθετε ως αντικατάσταση για άλλες γλώσσες.

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

Ωστόσο, μόλις εξοικειωθείτε με τα βασικά, ίσως θελήσετε να ειδικευτείτε περαιτέρω. Ίσως θέλετε να μάθετε το Apache Spark για εργασία με γιγαντιαία, κατανεμημένα σύνολα δεδομένων. Ή ίσως προτιμάτε να μάθετε μια άλλη γλώσσα, όπως η Scala, ή η MATLAB ή η Julia.

Γιατί να μην εξετάσετε το JavaScript; Θα αποδειχθεί πολύτιμο εάν θέλετε να ειδικευτείτε στην οπτικοποίηση δεδομένων ή εάν ο ρόλος σας απαιτεί να συνεργαστείτε στενά με ένα προϊόν που έχει κατασκευαστεί χρησιμοποιώντας JavaScript ή μια σχετική τεχνολογία.

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

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

Αλλά με τις τρέχουσες τάσεις, ένα πράγμα είναι σίγουρο. Τα επόμενα χρόνια, το JavaScript θα ανοίξει περισσότερες πόρτες από ό, τι κλείνει.