Προς το περιεχόμενο

Βιβλίο για C++


GiannhC

Προτεινόμενες αναρτήσεις

Δημοσ.

Είμαι 15 χρονών και εντελώς άσχετος από προγραμματισμό! Διαβάζοντας κάποια θέματα στο φόρουμ κατέληξα ότι η κατάλληλη γλώσσα για να ξεκινήσω είναι η C++!! Όμως θέλω να ξεκινήσω κάπως ομαλά με ένα βατό βιβλίο. Έχετε να προτείνετε κάτι?? Δεν έχω πρόβλημα με τα αγγλικά(proficiency)!! Λίγο που έψαξα βρήκα τα: 1)C++ A Beginner's Guide by Herbert Schildt 2)Accelerated C++ by Andrew Koenig, Barbara E.Mod:fear:

Δημοσ.

βασικά και τα 2 που αναφερες ειναι πολυ καλα αλλα νομίζω θα ηταν καλυτερα να ξεκινουσες πρωτα απο την C αφου εισαι και 15 και συνεχιζεις με C++!! ;) ενα πολυ καλο βιβλιο που εχω διαβασει ειναι " ο οδηγος της C " 3η εκδοση ,herbert schildt ! και ενα αλλο επισης καλο ειναι "απο την C στην JAVA " -διαδικαστικος προγραμματισμος 2η εκδοση ,εκδοσεις τζιολα κλεανθης θραμπουλιδης..

Δημοσ.

Υπάρχει το αρκετά συμπαθητικό "C προγραμματισμός - Εισαγωγή στη C++ και τη Java" των Deitel & Deitel. Το μισό είναι αφιερωμένο στη C και το υπόλοιπο έχει μια γρήγορη επισκόπηση C++ και Java.

Δημοσ.

και γιατι δεν ξεκινας με Basic ? ( πρωτου μου απαντησετε οι υπολοιποι ;) θα ηθελα να πω οτι ναι ειναι κακη γλωσσα προγραμματισμου και χωρις δυνατοτητες αλλα ακριβως αυτο σε ωθει να ψαξεις για κατι αλλο... ( δεν ξερω αμα με πιανετε :) ))

Δημοσ.

eve-girl να ρωτησω κατι πως θα ηταν το ποιο σωστο να κατσουμε να διαβασουμε το βιβλιο

1.να το διαβασουμε ολο και μετα να παμε βημα βημα 2.να παμε βημα βημα μεσα απο το pc?

Δημοσ.

Κλασική μάχη ...

 

Πρώτον: Μεταξύ C και C++, θα πας ΚΑΤΕΥΘΕΙΑΝ σε C++. Ούτε λόγος να περάσεις από C.

 

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

 

Εγώ σε αρχάριους προτείνω αυτό:

 

C++ from the Ground Up, Herbert Schildt

 

αλλά και το beginners guide που αναφέρεις είναι από τις καλύτερες επιλογές που μπορείς να κάνεις.

 

Καλά βιβλία έχει και ο Stroutstrup αλλά γράφει λίγο περίεργα με αποτέλεσμα να δυσκολεύονται πολλοί αρχάριοι. Πιστεύω δεν είναι για αρχαρίους ακόμα και αυτά που έχουν τέτοιο τίτλο.

 

Καλό για τη βιβλιοθήκη σου επίσης πιστεύω ότι είναι το Jamsa C++ Programmers bible ακόμα και σήμερα. Έχει πολλά μικρά παραδειγματάκια και σε πηγαίνει πραγματικά βήμα βήμα. Σου δείχνει πραγματικά κάθε τι πώς λειτουργεί, σου δίνει πάρα πολλές έτοιμες συναρτήσεις, οπότε μπαίνεις γρήγορα στο νόημα. Απλώς πριν το αγοράσεις πήγαινε να του ρίξεις μία ματιά γιατί η δομή του δεν είναι η συνηθισμένη των βιβλιών. Είναι τεχνοκρατική πολύ (επαναλαμβανόμενο κείμενο για να σε αναγκάσει να μάθεις κάτι, πολλά μικρά παραδειγματάκια κλπ). Ωστόσο έχει ***πολλά*** μικρά παραδειγματάκια στο επίπεδο που χρειάζονται οι αρχάριοι, π.χ. πώς να φτιάχνουν for loops, while loops, πράξεις με pointers, πράξεις με πίνακες κλπ.

 

Deitel & Deitel, ειδικά το βιβλίο για τη C ***μην*** το πάρεις. Είσαι μικρός ακόμα. Το μειονέκτημά του είναι ότι είναι γραμμένο από ακαδημαϊκους, οι οποίοι αν και πολλοί καλοί, είναι ιδιαίτερα φλύαροι. Ασκήσεις πολλές, αλλά οι περισσότερες άλυτες, οπότε οι αρχάριοι δυσκολεύονται να το μελετήσουν. Jamsa με τις ίδιες σελίδες διάβασμα θα έχεις δει στην πράξη πολλά περισσότερα.

 

Άρα.... sum up:

 

Ξεκίνας σελίδα σελίδα με Schildt, και χτύπας τις απορίες σου στο newsgroup comp.lang.c++ και όχι σε forum. Πήγαινε κατευθείαν δηλαδή στο μέρος που θα σου γράφουν οι καλύτεροι που μπορείς να βρεις. Στην αρχή γράψε την ηλικία σου και γράψε ότι είσαι αρχάριος. Υπάρχουν εκεί πολλοί πρόθυμοι να απαντήσουν κάθε απορία σου και να σε καθοδηγήσουν.

 

Αφού δεις ότι όντως σου αρέσει η γλώσσα και έχεις φτάσει σε θέση να φτιάχνεις απλά μικρά προγραμματάκια, χτυπάς και ένα 2ο βιβλίο που να έχει μέσα ***πολλά*** παραδείγματα (πολύ έτοιμο κώδικα) όπως π.χ. Jamsa ή κάποιο άλλο. Μην πάρεις κάτι που να έχει πολύ μπλα μπλα. Το θεωρητικό μπλα μπλα θα το επιλέξεις, όταν είναι η ώρα του, δλδ όταν είσαι περίπου 19-20.

 

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

 

Αν αργότερα σε ενδιαφέρει και δώσεις εξετάσεις και μπεις σε κάποια σχολή πληροφορικής, τότε και μόνο τότε θα μελετήσεις ***προσεκτικά*** τη C ως C.

 

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

 

Απλά μην το σκέφτεσαι πολύ. Πάρε ένα βιβλίο και ξεκίνα να διαβάζεις.

Δημοσ.

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

Δημοσ.

Χμμμ,

 

Σε δύο γραμμές θα έλεγα: γιατί το συντακτικό της C έχει κυριαρχήσει αυτή τη στιγμή, ειδικά συγκριτικά με το συντακτικό της Pascal.

 

---------- Προσθήκη στις 12:21 ---------- Προηγούμενο μήνυμα στις 12:06 ----------

 

H c κυρίως θα σε βοηθήσει να αντιληφθείς τι τρέχει πίσω από εντολές που θεωρείς αυτονόητες στη c++.

 

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

 

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

 

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

Δημοσ.
Χμμμ,

 

Σε δύο γραμμές θα έλεγα: γιατί το συντακτικό της C έχει κυριαρχήσει αυτή τη στιγμή, ειδικά συγκριτικά με το συντακτικό της Pascal

Δηλαδή εσύ λες C++ σε έναν 15 χρονών και τελείως αρχάριο???
Δημοσ.
Δηλαδή εσύ λες C++ σε έναν 15 χρονών και τελείως αρχάριο???

 

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

 

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

 

Το θέμα είναι ότι πρέπει να πάνε βήμα βήμα σαν να μαθαίνουν ξένη γλώσσα. Πρώτα το συντακτικό, μετά το λεξιλόγιο (τις εντολές τις γλώσσας), μετά τις βιβλιοθήκες, μετά το αντικειμενοστρεφές σχήμα (εννοιολογικά - χωρίς κώδικα), και τέλος το συντακτικό που αφορά το αντικειμενοστρεφές σχήμα. Μετά από όλα αυτά, προχωράς σε STL ή στην επόμενη γλώσσα όπως Java ή C#.

 

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

 

Με την ίδια λογική εξάλλου θα μπορούσα να προτείνω και κατευθείαν Java.

 

Να επιμείνεις στη C έχει νόημα μόνο αν δεν σκοπεύεις να πας προς GUI, αλλά προς system programming, όπου εκεί θα χρειαστούν έννοιες όπως pipes, signals κλπ. Αλλά προς τα εκεί δεν πάνε χομπίστες ούτε μικρά παιδιά, οπότε ο τυχαίος 15χρόνος έχει άπειρο χρόνο να αποφασίσει μόνος του μέχρι, με το καλό, να επιλέξει τις σπουδές του.

Δημοσ.

Ναι, όντως δεν κατάλαβες τι εννοώ... Γιατί να πάει στα βαθιά κατευθείαν?

Τόσες άλλες γλώσσες που να σε βάλουν στο νόημα δεν υπάρχουν?

Δημοσ.
Ναι, όντως δεν κατάλαβες τι εννοώ... Γιατί να πάει στα βαθιά κατευθείαν?

Τόσες άλλες γλώσσες που να σε βάλουν στο νόημα δεν υπάρχουν?

 

Φυσικά ..

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...