Θέλω να είμαι το καλύτερο, όπως κανείς ποτέ δεν ήταν ... - Μέρος 1

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

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

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

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

Χωρίς άλλο λάθος, ας πάρουμε μαζί το πρώτο βήμα ...

Java - Μια ευκολότερη C ++

Στο Γυμνάσιο ή το Κολλέγιο, το CS1 (Computer Science 1) και το CS2 μπορούν να προσφερθούν στην Java. Πρόκειται για μια πολύ αμφιλεγόμενη πρώτη γλώσσα για μια πληθώρα λόγων, αλλά πιστεύω ότι καταλήγουμε σε αυτό. Η εκμάθηση της Java ως της πρώτης σας πύλης στον κόσμο του κώδικα είναι σαν το πουλί που βγαίνει από τη φωλιά του για να μάθει πώς να πετάει ή να οδηγεί ποδήλατο για πρώτη φορά χωρίς τροχούς εκπαίδευσης, θα πρέπει να τραυματιστείτε. Αλλά αργότερα, θα είστε ευγνώμονες ότι έχετε εξοικειωθεί με τον πόνο από νωρίς επειδή η Java γρήγορα εισάγει και αναβαθμίζει διάφορες έννοιες σε σας σε πολύ αρχικό στάδιο όπως και οφείλεται

  • Αντικείμενα, πρωτόγονα, παρένθεση και παρένθεση τόσο τετράγωνα όσο και σγουρά
  • Είναι μια πολύ στιβαρή και στατικά πληκτρολογημένη στιβαρή γλώσσα
  • Θα πληκτρολογήσετε πολλά επαναλαμβανόμενα πράγματα ξανά και ξανά, τα οποία θα σας βοηθήσουν να βελτιώσετε την ταχύτητα πληκτρολόγησης για αρχάριους και μικρές λέξεις-κλειδιά όπως String και int

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

Θέλετε να πάρετε ένα αντίγραφο; Πάρτε το hardcover από το Amazon σήμερα και αρχίστε να κάνετε τις ασκήσεις με το δωρεάν BlueJ IDE

Σύνδεσμος προς το βιβλίο: https://amzn.to/2Y0qzaO

Σύνδεσμος προς το BlueJ IDE: https://www.bluej.org/

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

Τώρα λοιπόν αν έχετε κάνει κάποια Java, ποια είναι τα κύρια σημεία ελέγχου για να μάθετε πότε είστε έτοιμοι για περισσότερα; Πώς ξέρετε πότε μπορείτε να ανεβάσετε το επίπεδο;

  1. Ο καθένας ξεκινά από το Επίπεδο 1. Αυτό είναι όπου μαθαίνετε για πρωτόγονα όπως ints, doubles, booleans, και επίσης Strings. Μπορείτε να εκτυπώσετε κείμενο στην οθόνη, να εκτυπώσετε εξισώσεις, cast ints για να διπλασιάσετε και αντίστροφα, να συνδυάσετε συμβολοσειρές και αριθμούς και απλά να ασχοληθείτε με βασικές αλληλεπιδράσεις. Η συμβουλή μου εδώ, δοκιμάστε να δημιουργήσετε ένα Chick-Fill-A ή (Εισάγετε το όνομα του αγαπημένου εστιατορίου εδώ) Υπολογιστής, όπου μπορείτε να εκτυπώσετε μια όμορφη οθόνη χαιρετισμού, να δείξετε στους πελάτες τις παραγγελίες για τις φτιαγμένες αξίες και το σύνολο με το φόρο.
  2. Το επίπεδο 2 είναι όπου τα πράγματα γίνονται διασκεδαστικά. Εδώ θα εισαγάγουμε αν οι δηλώσεις για βρόχους, ενώ οι βρόχοι και η είσοδος του σαρωτή από τον χρήστη, για να κάνουν πιο πολύπλοκα αλλά ακόμα πολύ απλά προγράμματα όπως το Magic 8 Ball που θέτει 8 ερωτήσεις, έναν πραγματικό υπολογιστικό υπολογιστή εστιατορίου, παιχνίδι βασισμένο σε κείμενο που χρησιμοποιεί βρόχους και εισροές για να απαντήσει σε βασικές ερωτήσεις. Αυτό είναι ένα από τα πιο σημαντικά επίπεδα από μακριά, οπότε πραγματικά παίρνετε το χρόνο σας για να καταλάβετε πόσο ισχυρό αν δηλώσεις και βρόχους είναι πραγματικά, επειδή αυτά είναι τα αληθινά βασικά της επιστήμης των υπολογιστών εκεί. Ας μην ξεχνάμε μεθόδους, προσπαθήστε να υπολογίσετε ποιες μέθοδοι είναι και πώς να τις χρησιμοποιήσετε προτού προχωρήσετε στο επόμενο επίπεδο, θα κάνει τη ζωή σας πολύ πιο εύκολη.
  3. Νομίζω ότι οι περισσότεροι άνθρωποι μπαίνουν στην κωδικοποίηση επειδή κάποιο μέρος τους θέλει να κάνει την επόμενη μεγάλη εφαρμογή ή ένα βιντεοπαιχνίδι ή κάτι διασκεδαστικό και διαδραστικό. Λαμβάνοντας αυτό υπόψη, το επίπεδο 3 είναι το πρώτο μεγάλο βήμα προς την κατεύθυνση εκείνου του στόχου, όπου το βασικό σημείο αναφοράς είναι η δημιουργία μιας κειμενοποιημένης έκδοσης του Hangman, τώρα ακόμη και για τους έμπειρους προγραμματιστές εκεί έξω θέλω όλοι να το δοκιμάσουν χωρίς να χρησιμοποιήσουν οποιαδήποτε Αντικείμενα, αυτό σημαίνει ότι δεν υπάρχουν Arrays ή ArrayLists ή String.split (""). Σε αυτό το πρόωρο στάδιο της βελτιστοποίησης ή της απόδοσης του κώδικα σας δεν θα πρέπει να είστε στο μυαλό σας. Ένα από τα μεγαλύτερα λάθη που βλέπω να κάνουν οι άνθρωποι είναι να υποτιμά τη δύναμη των χορδών και πόσο πολύτιμες είναι, μπορείτε να κάνετε τίποτα και τίποτα με τα Strings, ο ουρανός είναι το όριο. Να είστε δημιουργικοί, να σκέφτεστε έξω από το κουτί, να γράφετε τις ιδέες σας σε χαρτί αντί για απλούς κώδικες, να σπάτε κάθε βήμα σε κάτι μικρό και απλό λογικά στη συνέχεια να προσπαθήσετε να το κωδικοποιήσετε.
  4. Αν έχετε αυτό το μακρινό, μεγάλη δουλειά! Κοιτάξτε τον εαυτό σας στο πίσω μέρος ή καλύτερα, αλλά άλμα προς τα πάνω και προς τα κάτω ουρλιάζοντας με χαρά, για τους μοναδικούς επιζώντες που έχουν περάσει μέχρι αυτό το σημείο, έχετε κάνει ειλικρινά πραγματικά καλά, αλλά το ταξίδι μόλις ξεκίνησε. Μετά το Hangman, τώρα ήρθε η ώρα να μάθετε για τις δομές δεδομένων που έχει να προσφέρει η Java, κυρίως Arrays, ArrayLists, HashMaps, Sets, Stacks, Queues, LinkedLists και δέντρα. Φυσικά δεν είναι όλα ταυτόχρονα, το Επίπεδο 4 είναι μόνο για mastering Arrays και ArrayLists. Δοκιμάστε να κάνετε μια μικρή προσομοίωση του καταστήματος, όπου μπορείτε να εισάγετε διαφορετικές εντολές για να προσθέσετε ή να αφαιρέσετε ή να αντικαταστήσετε αντικείμενα από το καλάθι αγορών σας.
  5. Τώρα που έχετε μάθει τη μαγεία των καταλόγων πίνακα και συστοιχιών, γυρίστε πίσω και κάνετε τον περιστέρι πολύ καλύτερο. Αλλά ίσως να μάθουν πρώτα για το Sets πρώτα και μπορεί να κάνει κάποια πράγματα ευκολότερα.
  6. Μάθετε να χρησιμοποιείτε σαρωτές για να διαβάζετε αρχεία κειμένου και στη συνέχεια να μετράτε πόσες φορές κάθε γράμμα εμφανίζεται πρώτα, ΣΥΜΒΟΥΛΗ: ΧΡΗΣΗ ΧΑΡΤΗΣ HASH. Εκτυπώστε τον αριθμό κάθε γράμματος σε ένα μεγάλο βιβλίο όπως το Moby Dick ή τα Παραμύθια των Δύο Πόλεων, παρακολουθείτε πόσο καιρό χρειάζεται, ίσως χρειαστεί λίγος χρόνος, αλλά μπορείτε να αναζητήσετε βελτιστοποιήσεις για να κάνετε αυτή τη διαδικασία πιο γρήγορα. Εάν ο κωδικός σας διαρκεί αρκετές ώρες κάνετε κάτι πολύ λάθος.
  7. Στοίβες, Queues, LinkedLists, Δέντρα, είναι όλα τα πράγματα που θα μάθετε τελικά σε μια κλάση δομών δεδομένων, γι 'αυτό μην ανησυχείτε πάρα πολύ για αυτό, δεν είναι τόσο σημαντικό για την οικοδόμηση μιας διασκεδαστικής εφαρμογής. Εδώ θα ήθελα να μάθετε για ένα API, να μάθετε για το Maven, το οποίο χρησιμοποιεί ο κώδικας που κάποιος άλλος έχει γράψει στη δική σας αίτηση για να κάνει κάτι σημαντικό. Αυτός είναι επίσης ένας πολύ καλός χρόνος για να σταματήσετε και να μάθετε τα βασικά του Github, γιατί θα το χρησιμοποιήσετε για το υπόλοιπο της ζωής σας. Δοκιμάστε να τραβήξετε κάποια ροή ειδήσεων από την Reddit ή αναζητήστε το JavaFX για να κάνετε εφαρμογές επιφάνειας εργασίας με μια διεπαφή χρήστη.
  8. Ένα άλλο απόλυτο πρέπει κάθε νέο προγραμματιστής πρέπει να κάνει είναι να δημιουργήσει ένα παιχνίδι. Τώρα δεν μιλάω για κάτι σαν το Call of Duty, ούτε καν σκεφτείτε το 3D ακόμα. Απλά ένα απλό παιχνίδι 2D με την πρώτη λήψη ενός sprite για να μετακινηθείτε στην οθόνη, έπειτα ίσως να προσθέσετε μερικούς εχθρούς για να μετακινήσετε, να πυροβολούν βλήματα και τελικά να φτάσετε στο side scrollers και platformers όπως Zelda, Mario, ή Pokemon. Για να μάθετε πώς να τα κάνετε σε Java, ο παρακάτω ιστότοπος είναι ο απόλυτος καλύτερος τόπος που μπορώ να προτείνω να χρησιμοποιώ σε μεγάλο βαθμό κατά την πρώτη μάθηση 2D παιχνιδιών. Κάνουν πολύ εύκολο να ακολουθήσουν μαθήματα που καλύπτουν τα βασικά από το έδαφος. http://zetcode.com/tutorials/javagamestutorial/

Από τώρα, έχετε αποκτήσει την αντίστοιχη εμπειρία σε ίσως 1-2 χρόνια Java στην HighSchool ή College. Αυτό δεν είναι αρκετό αν και για μια πραγματική δουλειά ή ακόμα και μια πρακτική άσκηση, θα πρέπει να ξέρετε πώς να συνδεθείτε με εξωτερικά συστήματα, πώς να κάνετε κλήσεις API REST, να εργαστείτε με ένα UI σε κάποιο επίπεδο και να διαβάσετε εγγραφή σε μια βάση δεδομένων. Θα πρέπει να είστε υπερήφανοι για το πού βρίσκεστε και πώς φτάσατε εδώ, αλλά μην παρασυρθείτε. Τώρα είστε στην αληθινή γραμμή εκκίνησης. Ως μέρος του τελικού οδηγού για να φτάσει στην κορυφή, που είναι ο καλύτερος μηχανικός λογισμικού, η φυσική εξέλιξη από την Java θα μάθαινε το Android App Development καθώς το Android γράφεται στην Java. Εδώ μπορείτε να χρησιμοποιήσετε τις βασικές λογικές δεξιότητες που έχετε μάθει και να τις συνδέσετε σε ένα περιβάλλον χρήστη, σε περισσότερους αισθητήρες και πληροφορίες, στο διαδίκτυο πραγματικά και σε όλες τις δυνατότητες που μπορεί να έχει ένα τηλέφωνο αυτές τις μέρες, οι κόσμοι το στρείδι σας.

Αυτό ήταν μόνο το πρώτο μέρος του οδηγού μου για να είμαι το καλύτερο, κοιτάξτε έξω για το μέρος 2, το οποίο θα εξελιχθεί σε βάθος για το πώς να γίνετε επαγγελματίας προγραμματιστής Android από το να ξεκινήσετε τα έργα και τα API να συνεργαστείτε. Στο μέλλον μπορεί να υπάρχει ή να μην είναι μια σειρά βίντεο αφιερωμένη στην εμβάθυνση σε παραδείγματα κωδικοποίησης πρακτικής και πραγματικής ζωής από το Hangman σε εφαρμογή Desktop χρησιμοποιώντας JavaFX, αφήστε σχόλια για το τι θέλετε να δείτε και ποιες ολοκληρώσεις θα θέλατε θέλετε να γίνει, ίσως κάτι με το Spotify;