Πώς να γίνετε προγραμματιστής Java στο Web (2017) - Μέρος I: Πρωτόκολλα ανάπτυξης ιστού της Java

Java Banner [10]

Με κάποιο τρόπο έχετε κατακτήσει τον προγραμματισμό και έχετε ενδιαφερθεί για τη γλώσσα Java Programming. Ίσως ήταν λόγω του σχολείου. Ή ίσως είδατε το λογότυπο της Java στην επιφάνεια εργασίας σας. Ίσως καταλάβετε ότι η Java είναι σχεδόν παντού - από το λογισμικό Blu Ray σε συσκευές Android μέσω του openJDK. Μπορεί να έχετε παρατηρήσει ότι η Java συνηθίζει να είναι η # 1 (ή η κορυφαία) πιο δημοφιλής γλώσσα προγραμματισμού σύμφωνα με τον TIOBE Index και ότι 6 δισεκατομμύρια συσκευές χρησιμοποιούν Java [1] [2]. Μπορεί επίσης να έχετε παρατηρήσει ότι η Java είναι η δεύτερη πιο δημοφιλής γλώσσα προγραμματισμού για JavaScript (εξαιρουμένης της SQL, η οποία είναι μια γλώσσα επερώτησης) σύμφωνα με το Overflow Stack [35].

Σύμφωνα με την BLS: Οι προγραμματιστές λογισμικού επιβραδύνθηκαν κατά μέσο όρο τα 102.280 δολάρια ανά έτος και τα 49.17 δολάρια ανά ώρα το 2016 και η ζήτηση αυξάνεται σε ποσοστό 17% από το 2014 έως το 2024. Μέχρι το 2020, θα υπάρχουν 1.4 εκατομμύρια θέσεις εργασίας σχετιζόμενες με τα ΚΠ και μόνο 400.000 απόφοιτοι των ΗΠΑ με τις απαραίτητες δεξιότητες. Η Java είναι συνήθως μια από τις εν λόγω δεξιότητες.

Ίσως έχετε κάνει κάποια έρευνα και ανακαλύψατε ότι περίπου 70.000 θέσεις εργασίας (αύξηση +30.000 από το 2016) στο δημοφιλές site εργασίας Indeed.com περιλάμβαναν τη γλώσσα προγραμματισμού Java ως δεξιότητα το 2017 [2].

[3] - codingdojo.com

Όπως και εσείς, ίσως έχετε παρατηρήσει ότι τα 3 / 4ο (ανάλογα με την πηγή, 65% -85%) των προγραμματιστών Java δουλεύουν σε εφαρμογές ιστού ή επιχειρήσεων και ότι το 90% του Fortune 500 χρησιμοποιεί Java στην πλευρά του διακομιστή [ 4] - ισχυρισμός που δηλώνει η Oracle. Πράγματι, είναι μια εξαιρετική στιγμή να είμαι προγραμματιστής Enterprise Java.

Περιηγηθείτε μέσω των καρτών εργασίας ίσως έχετε παρατηρήσει ένα θέμα - λέξεις-κλειδιά όπως "J2EE", "Spring", "Servlets", "Hibernate" και τα παρόμοια. Μπορεί να έχετε ρωτήσει τον εαυτό σας - "Πώς θα φτάσω από εδώ σε εκεί;". Ίσως να είστε δελεασμένοι από αναφορές πακέτων αποζημίωσης άνω του μέσου όρου για προγραμματιστές της Java Enterprise ή όνειρα να σχεδιάσετε το "επόμενο μεγάλο πράγμα" ή και τα δύο.

Ίσως έχετε κάνει μια αναζήτηση Google και έχετε βρει μόνο το άρθρο του John Thompson για το θέμα [5]. Ίσως δεν έχετε θέσει καμία από αυτές τις ερωτήσεις: το μόνο που θέλετε να ξέρετε είναι πώς να γίνετε web Java ή επιχειρηματίας προγραμματιστής. Είτε έτσι είτε αλλιώς, η απάντηση είναι - δεν υπάρχει καμία οριστική απάντηση. Οι δεξιότητες που θα χρειαστείτε εξαρτώνται τελικά από τον συγκεκριμένο ρόλο που αναζητάτε. Επιπλέον, οι δεξιότητες που μπορεί γενικά να βρείτε οι απαιτητικοί ρόλοι της Java μπορεί να ποικίλουν με βάση μια σειρά από διάφορους παράγοντες, όπως η περιφέρεια και η βιομηχανία, μεταξύ άλλων. Η αλήθεια είναι (και θα μπορούσα να μοιραστώ για αυτό) ότι δεν χρειάζεται να έχετε όλες τις ικανότητες που αναφέρονται σε μια διαφήμιση (ακόμη και μεταξύ εκείνων που σημειώνονται απαιτούνται!). Πολλοί εργοδότες μισθώνουν άτομα με βάση την ικανότητα, την ικανότητα να μαθαίνουν γρήγορα, και, για να το θέσουν ομαλά, επειδή τους αρέσουν [6]. Παρόλα αυτά, οι δεξιότητες εξακολουθούν να έχουν σημασία - η δουλειά δεν γίνεται χωρίς αυτούς.

Έχοντας πει όλα αυτά, ίσως το ερώτημα που πρέπει να ξεκινήσετε είναι: "Ποιες είναι οι κοινές βασικές δεξιότητες των Java Enterprise & Web Developers;". Οι δεξιότητες που θα συζητηθούν θα περιγράψουν τις δεξιότητες των μηχανικών που εργάζονται στην πλήρη στοίβα λογισμικού. Ωστόσο, καθώς οι μηχανικοί δουλεύουν σε διάφορα μέρη της στοίβας - μπροστινό, πίσω μέρος, EJB, κλπ. - μπορεί κανείς να διαβάσει τα τμήματα που σχετίζονται με αυτά.

Είναι σημαντικό να σημειωθεί ότι αυτό το άρθρο δεν θα συζητήσει τις συνεντεύξεις και τις προ-συνεντεύξεις πτυχές που σχετίζονται με την απόκτηση απασχόλησης στην ανάπτυξη java και θα επικεντρωθεί, αντί να τις βασικές δεξιότητες των Java Enterprise Developers. Για να σκάψω σε αυτό το υλικό, προτείνω συντριπτικά Cracking The Coding Interview από τον Gayle Laakman McDowell. Δεν θα ΑΠΟΓΟΗΤΕΥΤΕΙΤΕ!

Είναι επίσης σημαντικό να σημειωθεί επίσης ότι αυτό το άρθρο θα επικεντρωθεί στις τεχνικές δεξιότητες σε αντίθεση με τις μαλακές δεξιότητες. Ενώ οι μαλακές δεξιότητες είναι ανεκτίμητες, δεν εμπίπτουν στο πεδίο εφαρμογής αυτού του άρθρου. Ωστόσο, αξίζει να σημειωθεί ότι η καλή οργάνωση, η επικοινωνία και οι διαπροσωπικές δεξιότητες είναι καθοριστικής σημασίας. Ελέγξτε τις μαλακές δεξιότητες από τους John Somnez και The Clean Coder: Ένας κώδικας δεοντολογίας για επαγγελματίες προγραμματιστές από τον Robert C. Martin.

Χωρίς άλλο λόγο, ας ρίξουμε μια ματιά.

Ανυπόμονος? Εδώ είναι μια συνοπτική κρυφή ματιά: http://bit.ly/2gBUBRJ
Αν ο σύνδεσμος bit.ly λήξει ή ρίξει ένα 404, σχολιάστε το άρθρο και θα σας δώσω μια νέα υπερσύνδεση.

Έχετε προτάσεις; Μισώ το άρθρο; Αγαπήστε το άρθρο; Οτιδήποτε ενδιάμεσα; Επιτρέψτε μου να μάθω στα σχόλια.

Java - Αυτό είναι αρκετά προφανές.

"Η γλώσσα προγραμματισμού Java είναι μια γλώσσα προγραμματισμού γενικής χρήσης που είναι ταυτόχρονη, βασισμένη σε τάξεις, προσανατολισμένη σε αντικείμενα και ειδικά σχεδιασμένη ώστε να έχει όσο το δυνατόν λιγότερες εξαρτήσεις εφαρμογής" [7].

Η Java έχει σχεδιαστεί για να γράφει μία φορά και να τρέχει παντού, μια έννοια που άλλως είναι γνωστή ως WORE. Αυτό επιτυγχάνεται μέσω της εκτέλεσης Java bytecode στην εικονική μηχανή Java, η οποία υλοποιείται σε διάφορες πλατφόρμες. Δεν θα περάσουμε πολύς χρόνος εδώ, καθώς θα πρέπει να είναι προφανές στον αναγνώστη ότι κάποιος πρέπει να γνωρίζει τη γλώσσα Java για να είναι Java developer (duh). Το σημείο που πρέπει να αντιληφθούμε είναι ότι ένας σοβαρός προγραμματιστής Java πρέπει να κατανοήσει πλήρως και να επιδιώξει να κυριαρχήσει όλα τα στοιχεία της γλώσσας προγραμματισμού Java και τα βασικά χαρακτηριστικά καθώς και σημαντικά πακέτα (συμπεριλαμβανομένων αλλά όχι περιοριστικά): java.lang, java.util, java.concurrent, java.io.

Γιατί προσωπικά μου αρέσει η Java: Μπορείτε να αναπτύξετε λύσεις εύχρηστων, κλιμακούμενων, αξιόπιστων, δοκιμασμένων και αξιόπιστων Desktop (JavaFX, Swing), Mobile (Android), Web & Enterprise (JEE, Spring, Struts).

Παρακολουθήστε την Εξέλιξη της Java: Η Java 9 είναι (από τη δημοσίευση) προγραμματισμένη να κυκλοφορήσει σε 17 ημέρες στις 21 Σεπτεμβρίου. Θα ικανοποιήσει πραγματικά την ημερομηνία κυκλοφορίας της; Πρέπει να ενημερώνεστε για να μάθετε. Μην εγκαταλείπετε την καμπύλη - Οι ενότητες Java 9 θα αλλάξουν ουσιαστικά τον τρόπο με τον οποίο προσεγγίζουμε τον προγραμματισμό Java. Σκεφτείτε να παρακολουθήσετε (ή τουλάχιστον ακολουθήστε online) το Συνέδριο Java One που φιλοξενείται από την Oracle κάθε χρόνο στις αρχές Οκτωβρίου. Θα πρέπει επίσης να ακολουθήσετε ένα περιοδικό ή μια ηλεκτρονική έκδοση, όπως η DZone / Java Zone, η οποία περιλαμβάνει άρθρα που μιλάνε για την τελευταία και μεγαλύτερη στην ανάπτυξη της Java.

UPDATE: Η Java SE 9 / Java EE 8 συνάντησε την ημερομηνία κυκλοφορίας της! Οι σημειώσεις έκδοσης για το Java SE είναι εδώ. Οι σημειώσεις έκδοσης για το Java EE είναι εδώ.

Πού πρέπει να μάθετε, συνιστώμενες πηγές:

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

Java: Οδηγός για αρχάριους, 7η έκδοση (13 Οκτωβρίου 2017 ημερομηνία κυκλοφορίας)
 - Η 6η έκδοση σε αυτό το βιβλίο ήταν η εισαγωγή μου στην Java. Ήρθα στην Java αφού έμαθα C ++ στο σχολείο. Οι λεπτομέρειες φαίνονται ασαφείς. Θυμάμαι το φθινόπωρο του 2014: Θα κάθισα στην τάξη μου IST 302 που θα ήθελε το υλικό να αφορά την Java αντί της διαχείρισης έργου και μου άρεσε πάρα πολύ η διαχείριση έργων. Αυτό το βιβλίο είναι ο πρώτος μου πόρος για αρχάριους. Έχω μιλήσει προσωπικά με τον συγγραφέα, Herbert Schildt, τρεις φορές, και δεν έχω καμία ερώτηση στο μυαλό μου ότι η 7η έκδοση θα είναι εξίσου εξαιρετική. Δημοσιεύθηκε από το Oracle Press. Καλύπτει την Java 9.

Η τετριμμένη, φθαρμένη προσωπική 6η Εκδ. Αντίγραφο. Με αγάπη γνωστή ως δεύτερη αγάπη μου.

Java: The Complete Reference, 10th Ed. (13 Οκτωβρίου 2017 ημερομηνία κυκλοφορίας)
Το επόμενο λογικό βήμα μετά την ανάγνωση του οδηγού για αρχάριους. Μάρκα γεμάτη με κρίσιμες πληροφορίες. Υποχρεωτική ανάγνωση. Επίσης, γράφτηκε από τον Herbert Schildt και δημοσιεύθηκε από την Oracle Press. Καλύπτει την Java 9. Πιστεύω προσωπικά ότι όλοι οι προγραμματιστές της Java πρέπει να κατέχουν αυτό το κείμενο, χωρίς εξαίρεση. Είμαι κύριος της 9ης Έκδοσης αυτού του κειμένου.

Java, The Complete Reference, 10th Ed. - Herbert Schildt

Core Java: Τόμος Ι, Θεμελιώδεις αρχές, 10η Έκδοση.
Αφήστε να είναι γνωστό: Μετά την ανάγνωση αυτού του κειμένου, δεν υπάρχει τρόπος να πείτε στο Cay S. Horstmann ότι δεν ξέρει τα πράγματα του. Αυτό το κείμενο επαναλαμβάνει την πολύ βαθιά και διεξοδική γνώση του συγγραφέα της Γλώσσας Προγραμματισμού Java. Πέρα από τα βασικά της γλώσσας και αφήνει τον χρήστη ικανοποιημένο. Καλύπτει την Java 8.

Core Java: Τόμος ΙΙ, Advanced Features, 10ο Ed.
Το επόμενο λογικό βήμα μετά την ανάγνωση του πρώτου τόμου. Κάθε κομμάτι ικανοποιεί. Καλύπτει την Java 8.

Προσόντα - Πώς να πω ότι ξέρετε τι γνωρίζετε

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

Φυσική Αγωγή: Βαθμοί & Διπλώματα

Σύμφωνα με το Stack Overflow (η πιο δημοφιλής προγραμματιστική κοινότητα στο διαδίκτυο και ο δημοφιλέστερος ιστοχώρος προγραμματισμού στο διαδίκτυο [36]), το 76,5% των επαγγελματιών προγραμματιστών κατέχουν πτυχίο πανεπιστημίου ή υψηλότερο, το 14,9% είχε εμπειρία κολλεγίων, το 7,6% κάτω από την εκπαίδευση κολλεγίων, και το 1,1% προτιμούσε να μην απαντήσει. Ελάχιστα πάνω από το ήμισυ (~ 56%) των ατόμων που έλαβαν την έρευνα έδωσαν πλήρη απάντηση στα ακόλουθα:

Έρευνα προγραμματιστή υπερχείλισης στοίβας 2017 - Εκπαιδευτικό επίτευγμα [35]

Από αυτούς που είχαν σπουδάσει σε κολλέγιο ή πανεπιστήμιο, το 54,2% παρακολούθησε την επιστήμη των υπολογιστών ή την τεχνολογία λογισμικού, το 24,9% εξειδίκευσε σε στενά συνδεδεμένο κλάδο και το 20,9% επικεντρώθηκε σε μη σχετικούς τομείς [35].

Διάφορα στιγμιότυπα από τις απαντήσεις των επαγγελματιών προγραμματιστών σχετικά με την Εκπαίδευση τμήμα της Έρευνας Overflow Stack σε διάφορα ερωτήματα:

  • Το 67,9% δήλωσε ότι η επίσημη εκπαίδευση ήταν τουλάχιστον κάπως σημαντική.
  • Το 91,1% των προγραμματιστών ανέφερε ότι ήταν τουλάχιστον μερικώς αυτοδίδακτος.
  • Το 9,4% των προγραμματιστών χρησιμοποίησε bootcamps. Το 22.8% συνιστά την κωδικοποίηση των bootcamps.
  • Το 16,4% ζήτησε πιστοποιήσεις από τον κλάδο.
  • Αρκετοί άλλοι χρησιμοποίησαν την επιτόπια κατάρτιση, ηλεκτρονικά μαθήματα, εισφορές ανοιχτού κώδικα, hackathons, διαγωνισμούς κωδικοποίησης και μαθήματα μερικής φοίτησης ως μέσο εκπαίδευσης.
Bootcamp Η επιτυχία μεταξύ των προγραμματιστών λογισμικού [35]

Τα δεδομένα του Stack Overflow Developer Survey 2017 είναι πολύ ενδιαφέροντα και μπορείτε να τα βρείτε εδώ. Μπορεί να το θεωρήσετε ως ένα είδος SOTU, για την κοινότητα προγραμματιστών. Σας συνιστώ να διαβάσετε τις ετήσιες εκθέσεις τους.

Τι σημαίνουν όλα αυτά;

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

  • Παρόλο που δεν χρειάζεστε ένα πτυχίο για να εργαστείτε ως προγραμματιστής λογισμικού, η πλειοψηφία των προγραμματιστών φαίνεται να κατέχει πτυχία. Δοκιμάστε να περιηγηθείτε στις λίστες προγραμματιστών λογισμικού για την περιοχή σας - είμαι πρόθυμος να στοιχηματίσετε ότι θα βρείτε καθώς βρήκα ότι όλα εξαρτώνται. Ορισμένες οργανώσεις δηλώνουν ένα βαθμό ως απαίτηση, ενώ άλλες πολιτείες προτιμούν. Τα χιλιόμετρα σας διαφέρουν πραγματικά, αλλά θέλω να φανταστώ ότι η πλειοψηφία προτιμά τουλάχιστον ένα πτυχίο. Ακόμα κι αν δηλώνουν ότι χρειάζονται πτυχίο, ισχύουν ούτως ή άλλως. Θα ήθελα και πάλι να μιλήσω γι 'αυτό, αλλά στο τέλος της ημέρας μια εταιρεία ψάχνει να συνεργαστεί μαζί σας - αν μπορείτε να τους κάνετε χρήματα, μπορεί να χαρούν να σας προσλάβουν. Είναι ένα βρώμικο αλλά συχνά επαναλαμβανόμενο μυστικό ότι οι εταιρείες μπορούν να προσλαμβάνουν άτομα που δεν έχουν όλες τις απαιτήσεις. Δεν έχετε τίποτα να χάσετε. Τα χειρότερα που θα μπορούσαν να κάνουν δεν είναι να σας προσφέρουν.
  • Υπάρχουν πολλά προσόντα που αναγνωρίζουν οι εργοδότες κατά την πρόσληψη Προγραμματιστών Λογισμικού. Κατά μέσο όρο, ένας αμέσως σχετικός βαθμός μου φαίνεται να είναι ο πιο σημαντικός τίτλος πάνω από τα bootcamps και τα σχετικά στενά πτυχία. Παρόλο που αυτό μπορεί να αλλάξει, αυτή η τάση φαίνεται να είναι γρήγορη, τουλάχιστον για τώρα.
  • Ίσως τα πιο εκπληκτικά ευρήματα - μεταξύ των επαγγελματιών προγραμματιστών που έψαχναν ένα πτυχίο, λίγο πάνω από το ένα πέμπτο δεν μελέτησε ένα σχετικό θέμα, λίγο πάνω από το ένα τέταρτο μελέτησε ένα στενά συνδεδεμένο τομέα, και το πιο εκπληκτικό - μόνο 54 μελέτησε είτε CS είτε Software Engineering ! Αυτό που μου κάνει σαφές είναι ότι ο κύριος φοιτητής σας δεν είναι ίσως τόσο σημαντικός όταν θεωρείται υπεύθυνος για την ανάπτυξη. Εύχομαι η υπερχείλιση στοίβας να διαχωρίζει την επιστήμη των υπολογιστών από την τεχνολογία λογισμικού για την έρευνα του 2018, ωστόσο, καθώς τα δύο προγράμματα σπουδών δεν είναι σίγουρα τα ίδια.
  • Το ότι το 91,1% των εκπαιδευτικών είναι αυτοδίδακτοι είναι ενδεικτικό του γεγονότος ότι η πραγματική εργασία είναι απλά πέρα ​​από τα θέματα που διδάσκονται στην τάξη. Η τάξη αναμφισβήτητα έχει τη χρήση της. Ωστόσο, εάν θέλετε να είστε προγραμματιστής, σίγουρα δεν θα μπορείτε ποτέ να βασιστείτε μόνο στην τάξη για να σας δώσουμε όλα τα εργαλεία που χρειάζεστε. Επίσης, δεν θα έχετε τη δυνατότητα να μην συνεχίσετε να μαθαίνετε. Περίοδος.
  • Οι προηγμένοι βαθμοί δεν είναι τόσο σημαντικοί όσο σε πολλούς άλλους τομείς. ~ 48% των επαγγελματιών προγραμματιστών έχουν μόνο ένα πτυχίο. Ενώ τα δεδομένα από μόνα τους μπορεί να μην υποστηρίζουν πλήρως τον ισχυρισμό ότι τα προχωρημένα πτυχία δεν είναι τόσο σημαντικά, νομίζω ότι το γεγονός ότι τα δεδομένα δείχνουν ότι η μεγάλη πλειοψηφία των επαγγελματιών προγραμματιστών (69,2-70,3%) δεν έχουν βαθμό πέρα ​​από το πτυχίο λέει. Κάντε μια περιήγηση στις λίστες εργασίας - πόσο συχνά βλέπετε το πτυχίο Master (ή υψηλότερο) ως απαίτηση; Στηρίζω την περίπτωσή μου.
Αυτό είναι όλα ωραία και dandy αλλά ... ποιο χαρακτηριστικό πρέπει να πάρω;

Στο τέλος της ημέρας, δεν μπορώ να σας πω ποια επιλογή είναι καλύτερη για εσάς.

Ορισμένα κολέγια και πανεπιστήμια μπορεί να είναι καταστροφικά και εξωφρενικά δαπανηρά, για την οργή πολλών ανθρώπων. Σε ένα κορυφαίο εκπαιδευτικό ίδρυμα CS (δεν θα πω πού) ανάμεσα στα δίδακτρα, τα τέλη, το δωμάτιο, το διοικητικό συμβούλιο, τα βιβλία και τα υλικά κ.λπ. θα μπορούσε να κοστίσει όσο το $ 70K USD ανά έτος. Αυτό ισοδυναμεί με ετήσιο μισθό κάποιου και υψηλότερο από το μέσο εισόδημα των νοικοκυριών στις Ηνωμένες Πολιτείες. Θα πρέπει να ολοκληρώσετε το σχολείο σε 4 χρόνια που θα σας οδηγήσει περίπου $ 280K. Εάν παίρνετε δάνεια για το σχολείο, θα πληρώσετε περισσότερα από αυτό, προφανώς, λόγω τόκων. Η απόφαση είναι μια προσωπική - η μία έχει την εντολή να καθορίσει για το δικό της πόσο είναι πρόθυμοι να πληρώσουν για ένα βαθμό όσο θα ήταν πρόθυμοι να πληρώσουν για ένα αυτοκίνητο, ή οτιδήποτε άλλο. Η σκέψη μου είναι να εξετάσουμε την απόδοση της επένδυσης - πόσα χρήματα είστε σε θέση να κερδίσετε εξαιτίας του ιδιαίτερου βαθμού που επιτύχατε.

Από την άλλη πλευρά, υπάρχει οικονομική βοήθεια σε πολλά σχολεία και υπάρχει χαμηλού κόστους εκπαίδευση. Οι βαθμοί είναι το μακρότερο και πιο εμπορεύσιμο προσόν. Ένα πτυχίο κολέγιο σας παρέχει την ευελιξία να εγκαταλείψετε πιο εύκολα την ανάπτυξη λογισμικού σε περίπτωση που αποφασίσετε αργότερα. Επίσης, ένα πτυχίο κολέγιο είναι κρίσιμο για την απόκτηση μιας υψηλότερης ποιότητας ή διευθυντική εργασία. Αν σκεφτεί προσεκτικά, μια εκπαίδευση κολλεγίων μπορεί να είναι μια πολύ επωφελής επένδυση. Εξάλλου, οι απόφοιτοι πτυχίου πανεπιστημίου αναφέρονται από μερικούς για να κερδίσουν πάνω από ένα εκατομμύριο περισσότερους από τους μη πτυχιούχους που κατέχουν το πτυχίο τους [37]. Νομίζω ότι υπάρχουν πολλές εξηγήσεις για αυτό που έχουν νόημα. Ωστόσο, δεν πιστεύω ότι η συσχέτιση των εισοδημάτων και των πτυχίων του πτυχίου είναι απόδειξη μόνο του αιτίου (βαθμού) και του αποτελέσματος (χρήματος). Παρά ταύτα, ένα πτυχίο κολέγιο είναι πολύτιμο και είναι μια σταθερή επιλογή. Δεν συστήνω, ωστόσο, ένα κερδοσκοπικό ή μη διαπιστευμένο κολλέγιο ή πανεπιστήμιο.

Κατά τη γνώμη μου, οι Πιστοποιήσεις είναι χρήσιμες και μου αρέσουν πραγματικά μερικοί από αυτούς, αλλά δεν θα σας δώσουν τόσο μεγάλη ικανότητα απασχόλησης όσο και ένα πανεπιστημιακό πτυχίο. Παρ 'όλα αυτά, μπορεί να είναι ένα καλό (κατά τη γνώμη μου) προσόντα για να σας κάνει να ξεχωρίζετε από το πακέτο για μια στοχευμένη περιοχή, όπως η Java. Ανατρέξτε στον Oracle Certified Associate & Programmer στον προγραμματισμό Java, εδώ. Η Oracle κάνει αρκετούς ισχυρούς ισχυρισμούς σχετικά με τη βιομηχανική αξία της πιστοποίησης της Java και νομίζω ότι είναι πολύ θετική. Έχω συναντήσει μηχανικούς λογισμικού για τους οποίους η πιστοποίηση τους έχει ωφεληθεί και έχω δει την πιστοποίηση που ζητήθηκε σε μερικές θέσεις εργασίας.

Δεν ήμουν προηγουμένως fan του Coding Boot-camps και είχε σε μεγάλο βαθμό τους απέρριψε ως απάτες αλλά το μυαλό μου έχει αλλάξει. Μετά από όλα - ο προγραμματισμός δεν είναι ένα δύσκολο δύσκολο που μπορεί να μάθει σε μόλις 16 εβδομάδες; Αυτή ήταν η πρώην σκέψη μου. Ενώ ακόμα δεν πιστεύω ότι μπορεί κανείς να γίνει πλήρης προγραμματιστής σε 16 εβδομάδες, πιστεύω ότι μπορεί να σημειωθεί μεγάλη πρόοδος. Πιστεύω ότι τα στρατόπεδα εκκίνησης μπορούν να είναι χρήσιμα εάν το στρατόπεδο εκκίνησης έχει ισχυρές συνδέσεις με τη βιομηχανία, εάν το άτομο είναι αυτοτροφοδοτούμενο και μαθαίνει έξω από το στρατόπεδο εκκίνησης και εάν το άτομο τοποθετεί τον κώδικα του στο διαδίκτυο για να δει ο οργανισμός. Ελέγξτε το άρθρο του Gayle Laakman McDowell (συγγραφέας του Cracking The Coding Interview, μεταξύ άλλων βιβλίων) σχετικά με το θέμα: Έτσι, ολόκληρο το bootcamp κώδικα είναι μια απάτη, σωστά;

Αυτοδίδακτος. Συνήθως τα άτομα αυτά κατέχουν δίπλωμα γυμνασίου ή GED. Κατά τη γνώμη μου, πολλά από αυτά τα άτομα καταλήγουν να γνωρίζουν καλύτερα τον τομέα σπουδών τους επειδή είχαν την ελευθερία να επικεντρωθούν στην εν λόγω περιοχή. Όλα τα πράγματα που εξετάζονται, προσωπικά πιστεύω ότι όλοι οι σοβαροί προγραμματιστές πρέπει να αυτοδιδασκαλούνται σε ένα πολύ σημαντικό βαθμό και ότι οι σοβαρά αυτοδίδακτοι άνθρωποι είναι πολύ συχνά παθιασμένοι. Μετά από όλα - προτίθεται να εφαρμόσει την πειθαρχία που απαιτείται για να γίνει Software Developer χωρίς το σχολείο που κρατάει το χέρι σας είναι σκληρή δουλειά. Αν το πάρετε στον εαυτό σας για να κάνετε όλη την βρώμικη εργασία της πειθαρχίας και να ανακαλύψετε τι είναι αυτό που πρέπει να ξέρετε για να γίνετε προγραμματιστής, τότε αμέσως ξέρω ότι παίρνετε την ανάπτυξη λογισμικού πολύ σοβαρά. Πέραν αυτού: το CNN Money ανέφερε ότι το 2010 περίπου το 38% των προγραμματιστών ιστοσελίδων είχε λιγότερο από ένα δίπλωμα κολλεγίων τεσσάρων ετών, σύμφωνα με την αμερικανική απογραφή.

Θα πρέπει να ελέγξετε την ομάδα προγραμματιστών του Cory Althoff Self-Learned Programmer)

Θεμελιώδης Πληροφορική - Βασικά Ιδρύματα

"Η Επιστήμη των Υπολογιστών είναι η μελέτη υπολογιστών και υπολογιστικών συστημάτων. Σε αντίθεση με τους ηλεκτρολόγους και τους μηχανικούς υπολογιστών, οι επιστήμονες υπολογιστών ασχολούνται κυρίως με λογισμικά και συστήματα λογισμικού. αυτό περιλαμβάνει τη θεωρία, το σχεδιασμό, την ανάπτυξη και την εφαρμογή τους ». [38]

Είτε είστε αυτοδίδακτος είτε έχετε αποφοιτήσει από το Πανεπιστήμιο, θα πρέπει να έχετε μια λαβή στην βασική θεμελιώδη επιστήμη των υπολογιστών. Υπάρχουν διάφοροι λόγοι για τους οποίους πρέπει να κατανοήσετε τα βασικά στοιχεία της Πληροφορικής. Αντί να τους καταγράψουμε, θα προσπαθήσω να τους συνοψίσω όλα με μία δήλωση - Πρέπει να καταλάβετε: τι ακριβώς κάνετε στην κωδικοποίηση, τι ακριβώς είναι ότι κωδικοποιείτε και πώς ακριβώς λειτουργεί. Μπορείτε να κάνετε πατινάζ χωρίς να γνωρίζετε καλά τα βασικά στοιχεία του CS; Ίσως, ίσως όχι. Αν προσπαθήσετε; Σιγουρα οχι. Η κατάσταση είναι χαλαρά παρόμοια με το να παίζεις μπάσκετ ενώ είναι δεμένα με τα μάτια. Μπορεί να έχετε κάποια επιτυχία, μπορεί να σκοράρει ένα καλάθι, αλλά δεν μπορείτε πραγματικά να δείτε έτσι ώστε να περιηγηθείτε σωστά σε αυτό που κάνετε. Πρέπει να καταλάβετε τι είναι αυτό που κάνετε στην πραγματικότητα όταν καταρτίζετε, συνδέετε και, στη συνέχεια, εκτελείτε ένα πρόγραμμα. Όλος ο δρόμος προς τα κάτω σε αυτά και τα μηδενικά, και πέρα.

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

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

Ένα άλλο πράγμα: Χρειάζεται να χρησιμοποιήσω τα κουμπιά; Όχι, απολύτως όχι. Στην πραγματικότητα, η JVM δεν παρατηρεί τη διαφορά - εξακολουθεί να βλέπει μια σειρά - αλλά πρέπει να καταλάβετε τη διαφορά.

Και ούτω καθεξής.

Πλευρά Σημείωση: Κατά τη διαδικασία της κατασκευής αυτού του παραδείγματος έμαθα ότι οι κατασκευαστές ακεραίων καταργούνται στην Java 9 υπέρ των στατικών μεθόδων! Ποτέ δεν σταματάτε να μαθαίνετε στον προγραμματισμό. Για όσους είναι περίεργοι, μπορείτε να μάθετε περισσότερα εδώ.

Σύμφωνα με το Συμβούλιο Πιστοποίησης για τις Υπολογιστικές Επιστήμες, ένα διοικητικό συμβούλιο που περιλαμβάνει άτομα από την Ένωση Υπολογιστικών Μηχανών (ACM) και την IEEE Computer Society, υπάρχουν για θεμελιώδεις τομείς στην Πληροφορική [38]:

  • Η θεωρία του υπολογισμού
  • Αλγόριθμοι και δομές δεδομένων
  • Μεθοδολογίες Προγραμματισμού και Γλώσσες
  • Στοιχεία και αρχιτεκτονική υπολογιστών

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

Πού πρέπει να μάθετε, συνιστώμενοι πόροι:

Επιστήμη Υπολογιστών: Μια Επισκόπηση, 12η Εκδ.

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

Η Θεωρία Υπολογισμού - Κεφάλαιο 12
Αλγόριθμοι και δομές δεδομένων - Κεφάλαια 5, 8
Μεθοδολογίες Προγραμματισμού και Γλώσσες - Κεφάλαιο 6
Στοιχεία υπολογιστών και αρχιτεκτονική - Κεφάλαια 1, 2

SQL - Ο κόσμος αφορά τα δεδομένα

"Δομημένη γλώσσα ερωτήματος - Η SQL είναι μια γλώσσα συγκεκριμένου τομέα που χρησιμοποιείται στον προγραμματισμό για τη διαχείριση δεδομένων που διατηρούνται σε ένα σύστημα διαχείρισης σχεσιακής βάσης δεδομένων (RDBMS) ή για επεξεργασία ροής μιας ροής διαχείρισης ροών σχεσιακών δεδομένων (RDBMS)." [8]

Εάν πρόκειται να κάνετε back-end ανάπτυξη Java, θα είστε πιθανότατα να ασχολείται με σχεσιακές βάσεις δεδομένων με κάποιο τρόπο? θα πρέπει να καταλάβετε την SQL. Εκτός από την εκμάθηση SQL, είναι ασφαλές να πούμε ότι κάποιος χρειάζεται λίγο να μάθει μια πλατφόρμα RDBMS όπως η MySQL ή η PostgreSQL, καθώς το ANSI SQL μπορεί να σας φτάσει μέχρι τώρα. Η τρέχουσα έκδοση του SQL ANSI είναι SQL: 2016.

Σύμφωνα με την Εργαλεία και Τεχνολογίες Java του Πανεπιστημίου Rebel Labs 2016, τα ακόλουθα RDBMS έχουν το βασικό μερίδιο μεταξύ των Java Developers: Oracle DB με 39%, MySQL με 38% και PostgreSQL με ισχυρό 29%. Είναι σημαντικό να σημειωθεί ότι οι ερωτηθέντες θα μπορούσαν να επιλέξουν περισσότερα από ένα RDBMS.

Πού πρέπει να μάθετε, συνιστώμενοι πόροι:

Sam's Teach Yourself SQL σε 10 λεπτά την ημέρα ~ Ben Forta
Αυτό το κείμενο θα πρέπει να θεωρείται υποχρεωτική ανάγνωση για τους προγραμματιστές εφαρμογών. Σε 288 σελίδες, είναι λογικά εύπεπτο για ανάγνωση εβδομάδας. Δεν θα μπορείτε να πάρετε μια εργασία DBA μετά από αυτό το βιβλίο, αλλά δεν πειράζει, επειδή δεν προσπαθείτε να είστε DBA, προσπαθείτε να είστε Java Enterprise Developer. Βοηθά το βιβλίο αυτό να είναι ένα από τα πιο ευρύτατα (αν όχι το # 1) πιο τυπωμένο κείμενο στο SQL μια απόδειξη της ποιότητας του και κατά συνέπεια ο Forta είναι ευρέως σεβαστός για το έργο του. Προς το παρόν, το κείμενο της Forta είναι στην 4η έκδοση της που καλύπτει το SQL: 2011 και SQL: 2016 είναι επάνω μας. Παρά το γεγονός ότι είναι μια έκδοση πίσω, το SQL: 2011 είναι η πιο δημοφιλής έκδοση από το παρόν και οι ενημερώσεις στο πρότυπο SQL (SQL: 2016) διατίθενται ελεύθερα στο διαδίκτυο [11]. Οι περισσότερες από αυτές αφορούν την JSON. Επειδή είναι συμπαγής, συνοπτική και τεχνικά υγιής, σας προτείνω να διαβάσετε αυτό το βιβλίο.

Ο Σαμ διδάσκει τον εαυτό σου SQL σε 10 λεπτά - Ben Forta

Εργαλείο MySQL Point Tutorial
MySQL είναι ένα πολύ δημοφιλές και πολύ ισχυρό κοινό open source RDBMS. Η MySQL έγινε πολύ δημοφιλής εν μέρει από τη δημοτικότητα των στοίβων LAMP (Linux / Apache / MySQL / Perl, Python, PHP) στα τέλη της δεκαετίας του 1990 και στις αρχές του 2000. Μπορείτε να διαβάσετε περισσότερα για την ιστορία, εδώ.

OOP - Ομαδοποίηση του "do" και του "stuff"

"Είναι επικίνδυνο να κάνεις προβλέψεις, ειδικά σε μια πειθαρχία που αλλάζει τόσο γρήγορα, αλλά ένα πράγμα που μπορώ να πω με σιγουριά είναι ότι έχω δει το μέλλον και είναι αντικειμενοστρεφής" - Grady Booch, Πατέρας της UML, 1996 [ 9]

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

Οι περισσότερες από τις δημοφιλείς και σύγχρονες γλώσσες: η Python, η Java, η C #, η C ++, η Ruby, η PHP, η Scala κ.λπ. περιλαμβάνουν όλα τα προγράμματα υποστήριξης για το αντικειμενοστρεφές προγραμματισμό ως βασικό στοιχείο του μοντέλου προγραμματισμού τους. Το γεγονός είναι ότι ένας σύγχρονος προγραμματιστής πιθανότατα δεν θα μπορέσει να παρακάμψει το Paradigm Oriented Object (αν δεν είστε σε περίεργα πράγματα όπως η γλώσσα προγραμματισμού "Brainf ***", η οποία ήδη έχει προγραμματιστές που την επεκτείνουν ώστε να είναι αντικειμενοστρεφής!). Πάρτε το σημείο; Το OOP είναι πανταχού παρόν.

Το κλειδί για τον αρχιτεκτονικό σχεδιασμό του αντικειμενοστραφούς λογισμικού είναι η ενοποιημένη γλώσσα μοντελοποίησης (UML). Το UML είναι ένα κοινό μέσο με το οποίο οι προγραμματιστές λογισμικού περιγράφουν και σχεδιάζουν τον τρόπο με τον οποίο τα αντικείμενα πρέπει να συμπεριφέρονται σε μια εφαρμογή. "Η γλώσσα ενοποιημένης μοντελοποίησης (UML) είναι μια γραφική γλώσσα για το OOAD που δίνει έναν τυπικό τρόπο να γράψει ένα σχέδιο του λογισμικού. Βοηθά στην απεικόνιση, καθορισμός, κατασκευή και τεκμηρίωση των αντικειμένων ενός αντικειμενοστρεφούς συστήματος. Χρησιμοποιείται για να απεικονίσει τις δομές και τις σχέσεις σε ένα περίπλοκο σύστημα. "[42] Ωστόσο, η UML δεν περιορίζεται σε αντικειμενοστραφή σχεδιασμό (OOD).

Η καταφατική αλήθεια: Οι περισσότεροι από εμάς πιθανότατα δεν θα βγούμε από το δρόμο μας να πιάσουμε ένα γενικό βιβλίο προγραμματισμού αντικειμενοστραφής (φουά !, το είπα). Αντ 'αυτού, πιθανότατα θα μάθουμε τον Προγραμματισμό με Αντικειμενού με την εκμάθηση μιας γλώσσας προγραμματισμού ή μέσω ενός πανεπιστημιακού μαθήματος. Ωστόσο, το κάνετε, πρέπει να το κάνετε, καθώς αυτή η ικανότητα είναι οριακή για το πεδίο. Θα είστε καλύτερος προγραμματιστής γι 'αυτό. Θα ευχαριστήσετε τον εαυτό σας για αυτό. Ο προϊστάμενος σας θα σας ευχαριστήσει γι 'αυτό, και θα το κάνουν και οι μελλοντικοί διαχειριστές του κώδικα σας).

Πού πρέπει να μάθετε, συνιστώμενες πηγές:

Η Αντικειμενοστρεφής Διαδικασία Σκέψης, 4η Έκδοση, Βιβλιοθήκη Προγραμματιστών
Προσωπική μου σύσταση. Αυτό το κείμενο είναι γραμμένο με γλωσσικό τρόπο (αν και κυρίως C #), με παραδείγματα σε διάφορες γλώσσες διαθέσιμα στο διαδίκτυο από τον εκδότη. Μου αρέσει πολύ ο τρόπος που γράφεται αυτό το βιβλίο και δεν έχω δει κάτι (όπως το μοντέρνο τουλάχιστον) γραμμένο αρκετά όπως αυτό.

Κεφάλαιο Πρώτη Αντικειμενοστρεφής Ανάλυση και Σχεδιασμός
Παρόλο που δεν είμαι προσωπικός ανεμιστήρας της σειράς Head First (απλά δώστε μου ωμό, ξεχάστε τα παιδικά πράγματα), πολλοί άνθρωποι είναι. Αυτό το κείμενο είναι πολύ δημοφιλές και έχω την πεποίθηση ότι δεν θα σας οδηγήσει λάθος. Για να είμαστε τεχνικά ακριβείς: Αυτό το βιβλίο ασχολείται περισσότερο με την Αντικειμενοστρεφής Ανάλυση από το τελευταίο κείμενο που δεν είναι ακριβώς το ίδιο με το Αντικειμενοστρεφή Προγραμματισμό. Ομοίως, το Αντικειμενοστρεφόμενο Σχεδιασμό δεν σημαίνει απαραίτητα προγραμματισμό και ως εκ τούτου το Your Mileage May Vary όταν εξετάζετε αυτό το βιβλίο για OOP ειδικά. Τούτου λεχθέντος, αν και η φιλοσοφική προσέγγιση στο θέμα διαφέρει, αφορούν το ίδιο και παρόμοιο υλικό.

Ορισμένες σημειώσεις: Ενώ η ανάγνωση βιβλίων είναι μια μεγάλη προσέγγιση, μπορεί επίσης να βρείτε όφελος από τη λήψη ενός μαθήματος, όπως και εγώ. Αυτή είναι η προσέγγιση βάσει της οποίας (κατά την εκτίμησή μου) η πλειονότητα έχει μάθει OOP.

Εκμάθηση γλωσσών ενοποιημένης γλώσσας μοντελοποίησης (UML)

Tutorials Point Αντικειμενοστρεφής Ανάλυση & Σχεδιασμός Tutorial

Ενώ το OOP είναι το κυρίαρχο πρότυπο, ο Λειτουργικός Προγραμματισμός βιώνει μια αναζωπύρωση της δημοτικότητας και σίγουρα θα πρέπει να το γνωρίζετε. Αυτή η επίδραση έχει γίνει αισθητή σε ολόκληρη την κοινότητα και σε παραδείγματα όπως 1) Clojure, Scala, Jaskell, 2) Η εμφάνιση λειτουργικών διεπαφών, εκφράσεων λάμδα και αναφορών μεθόδων στην Java 8, 3) Η εμφάνιση λειτουργικής υποστήριξης την Άνοιξη 5 [12] άλλοι, μαρτυρούν αυτό.

HTML, CSS, JavaScript - Οπτική Παρουσίαση ιστοσελίδων & συμπεριφορά τους

"Η HTML είναι η τυπική γλώσσα σήμανσης για τη δημιουργία ιστοσελίδων και εφαρμογών ιστού. Με τα Φύλλα Στιγμιότυπου Στυλ (CSS) και τη JavaScript δημιουργεί μια τριάδα τεχνολογιών ακρογωνιαίου λίθου για τον Παγκόσμιο Ιστό. Το HTML καθορίζει το περιεχόμενο των ιστοσελίδων, το CSS καθορίζει την παρουσίαση των ιστοσελίδων και η JavaScript καθορίζει τη συμπεριφορά των ιστοσελίδων. "[13]

Αυτό το τρίο αντιπροσωπεύει τις βασικές τεχνολογίες πυρήνα που εμπλέκονται σε αυτό που ονομάζεται front-end προγραμματισμό. Εκτός από την εκμάθηση αυτών των γλωσσών, θα πρέπει επίσης να εξεταστεί το ενδεχόμενο εκμάθησης ενός πλαισίου View / MVC / MMVM όπως AngularJS, Angular 2/4 ή ReactJS + Redux, Vue κλπ. Η συμπερίληψη ενός από αυτά τα πλαίσια απλοποιεί σημαντικά την ανάπτυξη πολλών έργων, απαλλάσσοντάς σας από το να χάνετε σε κάθε λεπτομέρεια του HTML. Ο σημερινός προγραμματιστής Java πρέπει να είναι εξοικειωμένος με τουλάχιστον ένα από αυτά τα πρωτοποριακά πλαίσια.

Πού πρέπει να μάθετε, συνιστώμενοι πόροι:

HTML5
https://www.tutorialspoint.com/html/

CSS3
https://www.tutorialspoint.com/css/

JavaScript
https://www.tutorialspoint.com/javascript/
JavaScript: Τα καλά μέρη

Πλαίσιο JavaScript - ReactJS
https://www.tutorialspoint.com/reactjs/
https://facebook.github.io/react/tutorial/tutorial.html
Μάθηση Αντιδρά

Learning React: Λειτουργική Ανάπτυξη Ιστού με React και Redux

Πλαίσιο JavaScript - Γωνιακή 4 (Γωνιακή πλατφόρμα 2+)
https://angular.io/docs
ng-book: Ο πλήρης οδηγός γωνίας 4

Μια ειδική σημείωση για το γωνιακό:
TypeScript - Ένα superset ECMAScript που μεταγλωττίζεται σε JavaScript (συνεπώς όλα τα προγράμματα JavaScript είναι έγκυρα προγράμματα TypeScript). Το TypeScript προσθέτει κυρίως κατηγορίες μεταξύ πολλών διαφορετικών λειτουργιών γλώσσας.

AngularJS / Γωνιακή 1.X - Το αρχικό γωνιακό πλαίσιο. Γραπτή στο JavaScript.

Γωνιακό / Γωνιακό 2.X - Πλήρης επανεγγραφή του AngularJS. Γραπτή σε TypeScript.

Γωνιακή 4 - Η επόμενη έκδοση στην ανάπτυξη του Angular2, Backward Συμβατό με Γωνιακό 2. Γραπτή σε TypeScript.

Και οι τρεις: HTML, CSS, JavaScript
https://www.amazon.com/Web-Design-HTML-JavaScript-jQuery/dp/1118907442

Ενώ το κείμενο του Duckett δημοσιεύθηκε τον Ιούλιο του 2014, και η εξέλιξη, ιδιαίτερα στις κοινότητες CSS και JavaScript, οδήγησε σε νεότερες εκδόσεις και των δύο γλωσσών, το κείμενο αυτό εξακολουθεί να ισχύει. Ο λόγος γι 'αυτό οφείλεται σε μεγάλο βαθμό στην υιοθέτηση της έκδοσης. Σύμφωνα με τα μαθήματα W3Schools [21], η ECMAScript 5 (2011) είναι η μόνη πλήρως υποστηριζόμενη έκδοση από όλα τα μεγάλα προγράμματα περιήγησης ιστού, ενώ το ECMAScript 6 (2015) υποστηρίζεται εν μέρει και το ECMAScript 7 (2016) υποστηρίζεται ελάχιστα. Παρόμοια, αν και το CSS4 είναι επάνω μας, πολλά προγράμματα περιήγησης δεν έχουν ακόμη πλήρως υποστηρίξει το CSS3.

Για παράδειγμα, τα αποτελέσματα του css3test.com που εκτελείται στο Win10 x86-64 κιβώτιο μου,

Πρόγραμμα περιήγησης Opera v. 46-58% CSS 3 Υποστήριξη
Υποστήριξη του Google Chrome Browser v.60-58% CSS 3
Google Κανάρια Browser v.63-59% CSS 3 Υποστήριξη
Google Chrome Chromium Browser υποστήριξη v.60-58% CSS 3
Firefox Browser - Υποστήριξη 67% CSS 3

Από: 16/16/2017.

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

Σχεδίαση ιστοσελίδων: HTML, CSS, JavaScript - Jon Duckett

Ολοκληρωμένο περιβάλλον ανάπτυξης - Το γραφείο εργασίας του προγραμματιστή

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

IDE Mindshare μεταξύ Java Developers [27].

IDE Mindshare [27]

Υπάρχουν αρκετοί IDE που διατίθενται και παρέχουν ποικίλη υποστήριξη για διάφορες γλώσσες και τεχνολογίες. Τα προσωπικά μου αγαπημένα είναι το IntellIJ IDE και το NetBeans IDE. Η εταιρεία που αναπτύσσει IntelliJ, JetBrains, έχει ιδιαίτερα μια μοναδική επιρροή στην κοινότητα της Java. Εκτός από την παραγωγή ενός πολύ δημοφιλούς IDE, η Κοινότητα Android έχει υιοθετήσει το IntelliJ ως βάση του Android Studio IDE. Επιπρόσθετα, η Google υποστηρίζει επίσημα την Kotlin, μια γλώσσα JVM που είναι συμβατή με την Java, για την ανάπτυξη Android.

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

Πηγή: ChocolateVanilla.com

Το επόμενο άρθρο αυτής της σειράς, "Πώς να γίνετε προγραμματιστής Java στο Web ή στο Επιχειρησιακό - Μέρος II: Επιχειρησιακές Θεμελιώσεις, Δεδομένα & Ιστός", είναι διαθέσιμο εδώ.

Τα έργα που αναφέρονται για τη δημοσίευση είναι διαθέσιμα στο τελευταίο άρθρο της σειράς.

Ενδιαφέρεστε για την Java; Συμμετάσχετε στην ομάδα μου Java στο Facebook:

Όπως το περιεχόμενό μου; Εγγραφείτε στη λίστα αλληλογραφίας μου:

Μην ξεχάσετε να το δώσετε .... ·)

IEmoji.com