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

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

Δημοσ.

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

εχω αρχίσει και διαβάζω το C++ Programming language 4th edition του Stroustrup (1200 σελίδες) .. εχω διαβάσει περίπου το μισό.. δεν ηθελα να ποστάρω πριν το ολοκληρώσω αλλα το κάνω για να εχουμε και κατι να συζητάμε..

 

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

 

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

 

εχω ξαναγράψει προγράμματα στο παρελθόν είτε σε scripting (mIRC + λιγο php) είτε σε C# είτε σε glut(Link.png Site: εδώ μια προσπάθεια να φτιάξω το pacman που την άφησα στην μέση - κινείται με AWSD), αλλα όλα ήταν για μικρά projects είτε μαθήματα της σχολής και δεν θεωρώ οτι έμαθα κάτι σοβαρό απο αυτά.

 

επίσης για compilers τι απόψεις εχουμε? εχει καποιο νοημα η χρηση του clang αντι για mingw/gcc??

Δημοσ.

Ίσως μια καλή ιδέα θα ήταν να προσπαθήσεις να ξανά γράψεις τα προγράμματα που έχεις γράψει με άλλες γλώσσες σε C++ καθώς προχωράς.

 

Σχετικά με τον compiler, μια χαρά είναι ο g++ (και ο clang++ και ο VS cl).

Δημοσ.

για μενα δεν εχει νοημα να διαβασεις οσα πιο πολλα μπορεις και μετα να αρχισεις να γραφεις.

 

αντιθετως, ξεκινας απο τα απολυτως βασικα και γραφεις το πιο απλο προγραμμα που υπαρχει (π.χ. το hello world). ετσι θα καταλαβεις την βασικη δομη ενος προγραμματος (τι παιζει με τα imports, namespace, την main, τον precompiler, pointers, references κλπ..)

 

μετα μαθαινεις if statements, loops κλπ και ξαναγραφεις πολλα μικρα προγραμματα για να τα καταλαβεις καλα αυτα τα βασικα.

 

πας παρακατω και μαθαινεις functions, structs, classes κλπ.. και μαθαινεις απο το γραψιμο, γιατι στον προγραμματισμο θα μαθεις πραγματικα κατι μονο οταν θα κανεις κατι λαθος (γιατι δεν δουλευει το προγραμμα μου??) και κατα την διαδικασια του να προσπαθεις να το λυσεις αυτο.

 

αμα καθεσαι και διαβαζεις περι templates και αλλα διαφορα πιο advanced πραγματα στο βιβλιο, ενω δεν εχεις μαθει πολυ καλα αυτα που χρειαζονται πιο πριν για να φτασεις σε αυτο το σημειο τοτε, απλα επιβραδυνεις την ολη διαδικασια, γιατι θα σου φαινονται βουνο και μπορει να αποθαρρυνθεις.

 

κανοντας πολλα μικρα, αλλα επιτυχημενα βηματα πιστευω θα σε βοηθησει να μαθεις καλυτερα.

  • Like 2
Δημοσ.

Να συμπληρώσω ότι δεν υπάρχει περίπτωση από το (εξαιρετικό) βιβλίο όχι να μάθεις αλλά ούτε καν να φανταστείς με ποιό τρόπο και για ποιό σκοπό μπορείς να χρησιμοποιήσεις κάποια από τα πιο advanced features της γλώσσας (κλασικό hardcore παράδειγμα template metaprogramming αλλά υπάρχουν και πολύ απλούστερα).

 

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

 

Όταν έρθει η ώρα να συνεχίσεις με άλλα βιβλία μια πολύ καλή επιλογή είναι αυτά που αναφέρονται εδώ. Ξεκινάς με Meyers και συνεχίζεις σε Sutter και Alexandrescu. Λεφτά που εγγυημένα θα πιάσουν τόπο αν ασχοληθείς με τη γλώσσα.

  • Like 1
Δημοσ.

ευχαριστώ για τις εως τώρα απαντήσεις, φυσικά και δεν περιμένω να χρησιμοποιήσω τα advanced features κατευθείαν αλλα (δεν θέλω να ακουστώ κάπως αλλα θα ακουστώ), αλλα το να κάνω hello world και for if while κτλπ δεν θα κερδίσω το παραμικρό.. εντάξει μπορεί να μην ξέρω να χρησιμοποιήσω όλα τα features τέλεια αλλα μην το ξεφτιλίσουμε δεν ειμαι και ηλίθιος :P

(για να δώσω ένα παράδειγμα πριν με κράξετε, πριν αρκετα χρόνια είχα φτιάξει και ftp server σε mIRC scripting του οποίου το συντακτικό μοιάζει πολύ με C++ οπότε έχω μια εμπειρία αν και δεν θεωρώ οτι ειναι τόσο σημαντική)

 

δεν μου φαίνονται ακαταλαβίστικα οτι γράφει το βιβλίο αλλα απολύτως λογικά, αν και μπορεί να ασχοληθώ με ένα κεφάλαιο και παραπάνω απο μέρα. το βιβλίο του Stroustrup δεν βοηθάει τόσο στο να γράφεις κώδικα όσο διαβάζεις γιατι δεν έχει ασκήσεις και παραδείγματα. σε σχέση π.χ με το C programming a modern approach.

το θέμα ειναι οτι θέλω να αρχίσω να φτιάχνω προγράμματα π.χ να έφτιαχνα ένα δικό μου torrent client (με χρήση libtorrent), η να ασχοληθώ με κάποιο open source project στο github π.χ. και πριν αρχίσω θέλω να έχω καλή γνώση της θεωρίας για να μην διορθώνω μετά ολόκληρο τον κώδικα (με delete)

 

χτές εκανα bookmark κάποιο βιβλίο του Alexandrescu τώρα που το ανέφερες γιατι είχε AMA στο reddit και κατάλαβα οτι ο τύπος ξέρει τι λέει. λογικά θα ειναι το επόμενο που θα ασχοληθώ

Δημοσ.

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

  • Like 1
Δημοσ.

Πάντως φίλε Luciddream, εμένα ανέκαθεν με κούραζε ο Στράουστρουπ... Το "C++ Primer" των Λίπμαν και Σια το θεωρώ πολύ πιο πάνω ως εκπαιδευτικό βιβλίο από ότι το "The C++ Programming language" (είναι και πολύ πιο κοντά στο στυλ του Κινγκ, μιας που ανέφερες το "C Programming - A Modern Approach").

 

Σχετικά με τους compilers, θυμήθηκα πως το MinGW toolchain όπως διατίθεται από το επίσημο site δεν υποστηρίζει τη <thread> βιβλιοθήκη που μπήκε στην C++11... οπότε αν θέλεις να ασχοληθείς με threads όπως τα σταντάρισε η C++ κατέβασε όποιο από αυτά εδώ τα builds ταιριάζουν καλύτερα στην πλατφόρμα σου (είναι <thread> aware builds και για x86 και για x64 από την ομάδα του MinGW-64). Αν έχεις ήδη εγκατεστημένο το MingGW πες του installer να σου τα περάσει στον υπάρχοντα φάκελο που έχεις το MinGW, αλλά πες του επίσης να βάλει το build με τα posix-threads-dwarf.

 

Αν είναι να ασχοληθείς, έχε υπόψη σου και το "C++ Concurrency in Action: Practical Multithreading" του Άνθονι Ουίλιαμς.

  • Like 1
Δημοσ.

Καλά τα λέει ο erevis (υποθέτω αναφερόμενος στο Modern C++ Design?), Lucid έχει σημασία για ποιό βιβλίο του Alexandrescu μιλάμε γιατί το Coding Standards είναι πολύ χαμηλότερων απαιτήσεων από το Design. Του οποίου Design πάντως, παρόλο που έχει μέσα αρκετό και πολύ συγκεκριμένο κώδικα, η αξία είναι για μένα κατά 90% στις ιδέες που παρουσιάζει και όχι στην υλοποίησή τους (έχουν περάσει 10 χρόνια από τότε και στην πράξη για κάποια πράγματα υπάρχουν καλύτερες επιλογές).

 

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

Δημοσ.

μου αρεσει ο τροπος που σε βαζει να "συμπληρώσεις τα κενά" όπως λές... δεν θέλω κάτι για πολύ αρχάριους. αυτο που δεν μου αρέσει ειναι οτι ξεκίνησα να διαβάζω το βιβλίο και τα πρώτα κεφάλαια ήταν τελείως random στον τρόπο γραφής τους... όπως λέει και ο migf1 ο τύπος δεν το χει και πολυ στο γράψιμο... νομίζω οτι όποιος δοκιμάσει να το διαβάσει θα χάσει την μπάλα χωρίς λόγο στα κεφάλαια "A Tour of C++", τα οποία ειναι πιο πολύ update για τις αλλαγές της C++11

 

μόλις πήγα παρακάτω στα basic και στα abstraction mechanisms ηρέμησα λίγο καθώς ήταν πολυ πιο κατανοητά. επίσης μαρεσει οτι σου δινει μια κατευθυνση την οποια σου τονιζει οτι δεν ειναι η μοναδική αλλα αυτός έτσι θα το έκανε. ουσιαστικά σου μαθαίνει να σκέφτεσαι με τον τρόπο του που πιστευω οτι ειναι μια καλη αρχή μέχρι να βρείς τον δικό σου τρόπο σκέψης και λειτουργίας πάνω στον προγραμματισμό.. πιστευω μόλις τελειώσω το βιβλίο (σε καμια βδομάδα), θα μπορώ να ξεκινήσω να γράφω μικρά projects χωρίς να κοιτάω τον IDE και να σκέφτομαι τι κάνω εγώ εδώ... :blink:

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...