Πόσο καιρό σας πήρε να μάθετε τη C ++;


Απάντηση 1:

Η C ++ είναι μαζική γλώσσα. Πραγματικά, πραγματικά μαζική γλώσσα. Το σχέδιο C ++ 14 είχε περισσότερες από 1300 σελίδες (και το C ++ 17 είναι το τρέχον πρότυπο).

Γιατί συμβαίνει αυτό; Λοιπόν, επειδή το C ++ προσπαθεί να εξυπηρετήσει όλους. Υποθέτουμε ότι ξέρετε τι κάνετε όταν χρησιμοποιείτε τη C ++.

Λόγω όλων αυτών, υπάρχουν πολύ λίγα άτομα που γνωρίζουν ολόκληρη τη γλώσσα και οι περισσότεροι προγραμματιστές χρησιμοποιούν τα υποσύνολα της (που είναι εντελώς καλά).

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

Δεν συστήνω C ++ για αρχάριους (παρόλο που ήταν η πρώτη μου γλώσσα) γιατί είναι εύκολο να χάσεις τον εαυτό σου. Υπάρχουν κάποιες έννοιες όπως οι δείκτες και η μνήμη που είναι πολύ σημαντικές για να καταλάβεις αν θέλεις να γίνεις σοβαρός προγραμματιστής λογισμικού και να καταλάβεις το C ++ αρκετά καλά για να γράψεις ένα ασφαλές και αποδοτικό λογισμικό. Το C ++ δεν θα σας κάνει thibgs σαν Java και Python, αλλά θα πρέπει να μάθετε πώς να τα κάνετε μόνοι σας.

Εάν έχετε ήδη γνώσεις σε κάποια άλλη γλώσσα (για παράδειγμα Java), θα τρέξετε τις βασικές έννοιες, αλλά θα πρέπει να μάθετε τα πράγματα που έγραψα παραπάνω.


Απάντηση 2:

Υπάρχουν διάφορα επίπεδα "εκμάθησης C ++". Τα παρακάτω δεν είναι καθολικά για όλους - η ακριβής σειρά ποικίλλει συχνά και ο χρόνος που κάθε άτομο παίρνει για ένα άτομο διαφέρει πάντοτε - αλλά τα παρακολουθώ εδώ και πολλά χρόνια να ασχολούμαι με τη γλώσσα, τόσο ως ασκούμενος όσο και ως εκπαιδευτής:

[a] Χρησιμοποιώντας τη C ++ για να γράψετε έναν κώδικα διαδικαστικού (π.χ. C), χρησιμοποιώντας C ++ I / O.

[b] Κατανόηση αντικειμενοστραφών εννοιών και εφαρμογή τους σωστά σε μικρά έργα C ++.

[c] Σχεδιασμός κατάλληλων ιεραρχιών τάξεων και οργάνωση μεγάλων έργων για τη μεγιστοποίηση της επαναχρησιμοποίησης, της συντηρησιμότητας, της αξιοπιστίας, της χρηστικότητας και της φορητότητας.

[d] Κατανόηση και χρήση του STL (Standard Template Library).

[e] Κατανόηση, δημιουργία και χρήση προτύπων κατάλληλα και αποτελεσματικά.

[f] Κατανόηση και σωστή αποφυγή των λεπτών προβλημάτων που σχετίζονται με την αντιγραφή, τη φορητότητα, τη διαλειτουργικότητα με άλλες γλώσσες κ.λπ.

[g] Κατανόηση του ευρέος φάσματος διαθέσιμων βιβλιοθηκών, των δυνατοτήτων / αδυναμιών τους, όπου είναι καλύτερο να εφαρμοστούν, πώς να χρησιμοποιηθούν σωστά.

[h] Παρακολουθήστε προσεκτικά την ανάπτυξη του προτύπου γλώσσας και των συγκεκριμένων υλοποιήσεων του μεταγλωττιστή και ενσωματώστε αυτά τα χαρακτηριστικά στο σύνολο δεξιοτήτων σας.

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


Απάντηση 3:

Θα μπορούσα να γράψω μια φρικτή περίπλοκη C ++ που κακοποιούσε κληρονομιά, φιλία, ιδιωτικά χωράφια και σύμβολα μετά από λίγες εβδομάδες. Αυτό έρχεται από ένα δεκαετές C φόντο και ένα δίκαιο κομμάτι της εμπειρίας του γραπτού modularized κώδικα C.

Χρειάστηκαν άλλα 2 έως 5 χρόνια για να μπει σε μια ροή όπου έγραψα απλό, καθαρό κώδικα OO. Αυτός ο κώδικας ήταν

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

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


Απάντηση 4:

Παίρνει ζωή και πολλά άλλα, για να μάθει C ++. Έχω ξεκινήσει το 1991 και κάθε φορά που νομίζω ότι το καταλάβω, ξεκινάει ένα νέο πρότυπο. Ξαφνικά υπάρχει STL, πρότυπο μετα-προγραμματισμός, μετακίνηση σημασιολογίας, ΛΜΜ λειτουργίες, κλωστές, και ο κατάλογος συνεχίζεται. Το 2020 θα υπάρχουν κορουτίνες, έννοιες και ενότητες, για να αναφέρουμε μερικές.

Για έναν αρχάριο, η C ++ είναι πολύ περισσότερο από μια σύνταξη. Πρέπει να μάθετε πώς να μεταφράζετε τις σκέψεις σας σε μια γλώσσα προγραμματισμού. Πρέπει να μάθετε πώς να μεταφράζετε τις ανάγκες των πελατών, και όχι μόνο τις αιτήσεις, σε ένα πρόγραμμα.

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

Ίσως υπάρχει κάποιο online μάθημα από τον Bjarne Stroustrup, τον Kate Gregory ή κάποιον παρόμοιο.


Απάντηση 5:

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

Μην ανησυχείτε, εγώ θα σας προτείνω μερικά γρηγορότερα μαθήματα C ++ σε απευθείας σύνδεση.

1.

C ++: Από αρχάριους μέχρι εμπειρογνώμονες

2.

Μάθετε και κατανοείτε τη C ++

3.

Μάθετε τον προγραμματισμό C ++ για αρχάριους από βασικά σε προχωρημένους

4.

Προχωρημένο πρόγραμμα εκμάθησης προγραμματισμού C ++

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

Σημείωση: Η πρακτική είναι το πιο σημαντικό πράγμα ενώ μαθαίνουμε οποιαδήποτε γλώσσα προγραμματισμού.

Πρακτοποιήστε όσο το δυνατόν περισσότερο και σκεφτείτε διαφορετικά.

Καλύτερα να συμμετάσχετε σε οποιεσδήποτε online φόρουμ και κοινότητες του C + +, να ενημερώνεστε.

Τα καλύτερα .


Απάντηση 6:

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

Για να αρχίσετε να χρησιμοποιείτε τα "νέα", "διαγραφή" και "τάξη" προφανώς δεν χρειάστηκε περισσότερο από ένα μήνα, δεδομένης της κυριαρχίας του C.

Δεδομένου ότι η μάθηση C με πήρε περίπου έξι μήνες, είναι δίκαιο να πούμε ότι η εκμάθηση C ++ από την αρχή ήταν μια προσπάθεια 7,5 ετών.


Απάντηση 7:

Λίγο πάνω από μια δεκαετία, και μαθαίνω ακόμα τη C ++

:) :)

* Σημείωση * Για τις εξετάσεις σας, ακολουθήστε το κείμενό σας. Οι συζητήσεις είναι πιο κατάλληλες για την καθημερινή χρήση του C ++. Ως προς την εξέταση, θα ήθελα να πω να κατανοώ τις έννοιες OOP και θα πρέπει να είστε εντάξει με τις εξετάσεις.

Υπάρχουν πολλοί τρόποι που μπορείτε να κάνετε κάτι στο C ++.

Για παράδειγμα, η κλασική "Savings and Current Account" στην τάξη μπορεί να λυθεί χρησιμοποιώντας C ++ σε 3 τελείως διαφορετικές προσεγγίσεις (τουλάχιστον όπως ξέρω ότι μπορεί εύκολα να υπάρξει 4ος τρόπος.

  • Διαδικαστικός.
  1. Δημιουργία δομής λογαριασμού με τύπο μέλουςΥχρησιμοποιήστε αυτό το μέλος για να αποφασίσετε διαφορές στον ορισμό της απόσυρσης ()
  • OO
  1. Δημιουργία λογαριασμού κλάσης με εικονική μέθοδο απόσυρσης () Δημιουργία δύο παιδιών SavingsAccount και CurrentAccount με συγκεκριμένες παρακάμψεις της μεθόδου
  • Λειτουργικός
  1. Δημιουργία Λογαριασμού (class / struct.Either είναι ΟΚ.Αλλά μια δέσμη, αλλά η κλάση μας επιτρέπει να παίζουμε γύρω της λίγο εύκολα και ελεύθερα) .Ένα μέλος είναι (void) (* withdrawHook) (float) Μέθοδος μέλος (ή λειτουργία) ρυθμίστε τον αποσύρσιμο. Κάτι σαν άκυρο setWithdrawHook ((void) (* newWithdrawHook) (float)) Αυτό σημαίνει "Ένας δείκτης με όνομα withdrawHook, δείχνοντας μια συνάρτηση που δέχεται ένα float arg και δεν επιστρέφει τίποτα". Δημιουργία συνάρτησης για τη δημιουργία του λογαριασμούΑυτό θα δημιουργήσει το λογαριασμό. Σκεφτείτε ότι έχετε τις μεθόδους απόσυρσης_αποκλεισμάτων (acc, amt) και withdraw_from_current (acc, amt). Τώρα, στο λογαριασμό, θα καλέσουμε setWithdrawHook (Withdraw_From_Saving) ή διαφορετικά.

Ηθικά; Μην ανησυχείτε για το πόσο έχει απομείνει. Συνέχισε να μαθαίνεις ;)


Απάντηση 8:

Το C ++ μοιάζει πολύ με το C, μόνο με πολλές "συντομεύσεις". Αυτό σημαίνει ότι η γλώσσα είναι βασικά C, απλά ότι πρέπει να γράψετε λιγότερα για να κάνετε μια λειτουργία 100 γραμμών στο C για να δουλέψετε, με μόνο ~ 50 γραμμές κώδικα στην C ++.

Για να απαντήσετε στην ερώτησή σας, δεν μπορούμε απλά να υπολογίσουμε πόσο καιρό θα σας πήρε να μάθετε C ++. Όλα εξαρτώνται από

εσείς

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

Εάν το μυαλό σας έχει ρυθμιστεί στην εκμάθηση C ++, τότε πάρτε το χρόνο σας και διαβάστε τα σεμινάρια στο διαδίκτυο. Μια μέρα, μπορείτε να διακρίνετε κάθε λειτουργία από την άλλη και να μπορείτε να χρησιμοποιήσετε το google για να αναζητήσετε αυτές τις συγκεκριμένες λειτουργίες.

Καλή τύχη!