Πώς μπορώ να μάθω γρήγορα το C ++;


Απάντηση 1:

Δεν υπάρχει τρόπος να μάθετε γρήγορα τη γλώσσα C ++.

Η C ++ έχει απότομη καμπύλη μάθησης. Ωστόσο, πολλοί προγραμματιστές C ++ γνωρίζουν ποια είναι η καμπύλη μάθησης.

  • C προγραμματιστής (ψεύτικο C + + προγραμματιστής): Απλά γνωρίζουν stdio.h και C σύνταξη. Ωστόσο, είναι δυνατό να κωδικοποιηθεί η C ++ μόνο με τη σύνταξη C.
  • C με κλάσεις: Μπορούν να χρησιμοποιήσουν τάξεις, υπερφόρτωση και εικονικές μεθόδους. Ωστόσο, η χρήση κανονικών εικονικών μεθόδων στην C ++ έχει κακές επιδόσεις στην ταχύτητα (vtable lookup)
  • C ++ std programmer: Μπορούν να χρησιμοποιήσουν τη βιβλιοθήκη std της C ++. π.χ. διάνυσμα, αλγόριθμος, iterator, string
  • C ++ προγραμματιστής γενικής χρήσης: Δυνατότητα να δημιουργήσει κλάσεις γενικών και να διασυνδέσει την αρχική σας τάξη με το std.
  • Προγραμματιστής Const: ο προγραμματισμός μνήμης μόνο για ανάγνωση κάνει αποτελεσματική διαχείριση μνήμης
  • C ++ 11er: Λάμδα, κοινόχρηστος δείκτης, σπειρώματα, μετακίνηση σημασιολογίας
  • Ενίσχυση χρήστη: Χρησιμοποιώντας ώθηση για να κάνετε σύγχρονο προγραμματισμό C ++ σε παλιά έκδοση του C ++
  • Προγραμματιστής χρόνου μεταγλώττισης: Χρήση προτύπων & constexpr για γρήγορο & προγραμματισμό μνήμης. Έχετε μεγάλη γνώση σχετικά με τον μεταγλωττιστή.
  • Χαρακτήρας C ++ προδιαγραφών: Γνωρίστε διάφορες εκδόσεις των προδιαγραφών C ++ και την κατάσταση της απροσδιόριστης συμπεριφοράς
  • Μέλος C ++ comitee: Ποιος κάνει C ++. Είναι μεγάλοι χάκερ. Μπορείτε να τα βρείτε στο Twitter.

Είμαι σήμερα στο απότομο επίπεδο 7-8. Λοιπόν, αν θέλετε να προγραμματίσετε στον χρόνο σύνταξης, χρησιμοποιήστε το C ++ 17. constexpr if και lambda constexpr μπορούν να εξοικονομήσουν πολύ ενέργεια για να μάθουν το χρόνο TMP για C ++ 11/14.


Απάντηση 2:

Σε αντίθεση με τις περισσότερες απαντήσεις σε αυτή την ερώτηση, εκεί

είναι

ένας πιο γρήγορος τρόπος για να μάθετε C ++.

Αυτό το βιβλίο:

Ταχεία C ++: Πρακτικός Προγραμματισμός με Παράδειγμα

Φυσικά πρέπει να το διαβάσετε αλλά το πιο σημαντικό να λύσετε τις ασκήσεις. Οι περισσότερες ασκήσεις αρχίζουν με τον κώδικα που παρουσιάζεται στο αντίστοιχο κεφάλαιο και μετά τροποποιήσεις στον κώδικα για επιπλέον λειτουργικότητα. Χρησιμοποιεί μια διαφορετική προσέγγιση για τη διδασκαλία της C ++, η οποία προϋποθέτει γρήγορο γράψιμο κώδικα που κάνει κάτι χρήσιμο, αφήνοντας τις πιο δύσκολες λεπτομέρειες για το μεταγενέστερο κεφάλαιο όταν ο αναγνώστης έχει καταφέρει να κατανοήσει καλύτερα.

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

ιδέες

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

Κατά τη μετάβαση στις δημοσιεύσεις C ++ για προσωπική βελτίωση και εξοικείωση με τις πρόσφατες εξελίξεις, ανακάλυψα το βιβλίο σε αυτό το blog:

Εκμάθηση C ++

.


Απάντηση 3:

Εάν θέλετε να μάθετε γρήγορα, μην μαθαίνετε C ++. Δεν υπάρχει τρόπος να το μάθετε γρήγορα.

Η συμβουλή μου είναι να μάθετε το C. Και αν χρειάζεστε χαρακτηριστικά HLL στο σχέδιό σας, είστε καλύτερα να μάθετε τη Lua ως δεύτερη απλή γλώσσα. Δύο απλές γλώσσες που συνδυάζετε είναι είτε πιο εύκολο να μάθουν από ένα σούπερ συγκρότημα και παίρνετε καλύτερα, πιο ευέλικτα προγράμματα από αυτό.

Ένα ελβετικό μαχαίρι στρατού είναι ένα θαυμάσιο εργαλείο. Αλλά αν έχετε ένα κουτί εργαλείων όπως ένα σφυρί, ένα κατσαβίδι και κάποια άλλα, είστε πολύ καλύτερα από ό, τι με το μεγαλύτερο ελβετικό μαχαίρι στρατού μπορείτε να πάρετε.

Υπάρχουν γρήγορα μαθήματα σχετικά με το Tutorialspoint για το C και για το Lua. Και οι δύο δεν θα διαρκέσουν περισσότερο από μία ημέρα το καθένα. Υπάρχουν πολλά περισσότερα που πρέπει να γνωρίζετε για το σύστημά σας και για τον προγραμματισμό, αλλά αν συνδυάσετε αυτό, έχετε

  • Επίπεδο εφαρμογής (HLL, Lua)
  • Εφαρμογή και επίπεδο συστήματος (C)
  • Hardware και επίπεδο βελτιστοποίησης (ASM / GPU)

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

Οι σύνθετες γλώσσες είναι δύσκολο να διορθωθούν, είναι δύσκολο να μάθουν, είναι αδύνατο να διατηρηθούν. Οι εύκολες γλώσσες όπως το C και το Lua μπορούν να μάθουν μία φορά και θα κρατηθούν στο κεφάλι σας για το υπόλοιπο της ζωής σας. C, που είναι 31 επιφυλάξεις, Lua που είναι 21 επιφυλάξεις.

Και οι δύο γλώσσες είναι πρακτικές, όχι ιδεολογικές. Έχετε με αυτούς πάρα πολύ περισσότερα από όσα μπορείτε ποτέ να αποδώσετε με τη C ++, επειδή το C ++ δεν σας δίνει τίποτα που θα σας δώσουν τα δύο, αλλά δεν έχετε τη δυνατότητα με τη C ++ να επεξεργαστείτε τον κώδικα εν πτήσει. Δεν μπορείτε να αλλάξετε από HLL σε Medlevel σε Lowlevel en passant. C και Lua είναι teamplayers, C ++ είναι ένα τεράστιο σούπερ γλώσσας, το οποίο χρειάζεται χρόνια εκπαίδευσης και όλα αυτά.

Αλλά δεν σας δίνει κανένα πλεονέκτημα. Οι ομάδες είναι πάντα καλύτερες από τις μεμονωμένες superdudes.

Μιλώ για το C (GCC ή Clang εδώ και Luajit, το οποίο είναι Lua 5.1). Καλές ομάδες, δουλεύουν καλά μαζί, ενώ προτιμώ το GCC συνήθως πάνω από τον Clang, ο λόγος είναι απίστευτη μνήμη της πείνας του Clang.

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

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

Ετσι. Θέλετε εύκολη πρόσβαση στον προγραμματισμό χωρίς να χάσετε οποιαδήποτε ενέργεια;

Πηγαίνετε τον έξυπνο τρόπο: teamplay. Μπορείτε ακόμη και να συνεργαστείτε με κάποιον που ειδικεύεται στον C ή Lua και μπορείτε να μοιραστείτε το φόρτο εργασίας σας. Το Lua είναι μια πολύ αποτελεσματική γλώσσα, αυτή η εμπειρία της Python: «Ποτέ δεν έχω λύσει περισσότερο σε λιγότερο χρόνο και κώδικα από ό, τι έκανα στην Python», αυτό παίρνει το Lua.

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

Είναι μια καλή συνεργασία. Η τέλεια ιδέα του Linux.


Απάντηση 4:

Ίσως θελήσετε να δείτε σε online μέρη όπως το udemy όπου μπορείτε να πάρετε όλα τα μαθήματα ταυτόχρονα.

Το C ++ δεν είναι εύκολο. Δεν είναι μια γλώσσα που μπορείτε να μάθετε γρήγορα και να περιμένετε να είστε ικανός με αυτό, εκτός αν είστε προγραμματισμός ιδιοφυΐα ή γνωρίζετε ήδη C ή / και Java. Η Java είναι σαν την Ikea του προγραμματισμού. Έχετε όλες τις βιβλιοθήκες και τον κώδικα, πρέπει απλώς να τις τοποθετήσετε σύμφωνα με τους κανόνες της. Το C ++ είναι σαν ένα εγχειρίδιο οδηγιών συναρμολόγησης δορυφόρων. Πρόκειται να σκάψετε βαθιά στις βιβλιοθήκες που χρησιμοποιείτε και μερικές φορές θα πρέπει να γράψετε τη δική σας βιβλιοθήκη ή να τροποποιήσετε τις υπάρχουσες βιβλιοθήκες. Μπορείτε να κάνετε λίγο τσίμπημα οτιδήποτε με τη C ++. Δεν έχετε ουσιαστικά κανέναν περιορισμό, καθιστώντας το έτσι μια πολύ καλή βάση κώδικα, αλλά κερδίζοντας τον εαυτό σας από πολλούς προγραμματιστές που δεν τους αρέσει το πώς χειρίζεται τον εαυτό του πάνω από άλλες γλώσσες προγραμματισμού.

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


Απάντηση 5:

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

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

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

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

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


Απάντηση 6:

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

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

Για μένα η Java είναι μια ωραία και φιλική και χαλαρωτική έκδοση του C ++. Δεν χρειάζεται να ανησυχώ για τους GPF, δεν χρειάζεται να ανησυχώ για διαρροές μνήμης, δεν χρειάζεται να ανησυχώ για να αναποδογυρίζουν με δείκτες. Ωστόσο, μην αφήσετε αυτό να σας συγχέει, υπάρχουν ακόμα πολλές ευκαιρίες να βιδώσετε με βιασύνη, και μερικές φορές είναι ακόμη πιο αδύναμες για να εντοπίσετε.

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


Απάντηση 7:

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

Εάν επισκέπτεστε

Arduino - Αρχική σελίδα

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

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

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

Τι θέλετε να ολοκληρώσετε με τη C ++; (Δεν χρειάζεται να το ξέρω, αλλά το κάνετε!)