Meddle Δημοσ. 20 Ιουλίου 2009 Δημοσ. 20 Ιουλίου 2009 Καταρχάς καλησπέρα σας. Παρακολουθώ το φόρουμ τακτικά -ως επισκέπτης-, για να μάθω και να ενημερωθώ για διάφορα τεχνολογικά θέματα. Δόξα το θεό, έχουμε πολλούς εδώ μέσα που "φτύνουν γνώση":p Εδώ και περίπου 1 χρόνο, και μετά από 10 χρόνια ενασχόλησης με τους Η/Υ, αποφάσισα να ασχοληθώ με τον προγραμματισμό. Ξεκίνησαν οι κλασικές απορίες. Με ποιά γλώσσα να αρχίσω, ποιά έχει πέραση κλπ κλπ. Αποφάσισα λοιπόν να ξεκινήσω με την VB.net. Μετά από ενασχόληση 1 βδομάδας της έδωσα σουτ, γιατί, εκτός από τα άπειρα αρνητικά σχόλια που άκουσα, μου φάνηκε εντελώς παιχνιδιάρικη, καμία σχέση με αυτό που φανταζόμουν. Συνέχισα με την perl... μια κλασική, κυρίως unix-οειδή, σκριπτόγλωσσα με συντακτικό που μοιάζει στη C, που θα έπιανα αργότερα. Όμως, η μικρή μερίδα ατόμων που ασχολούνταν μαζί της με απώθησε απίστευτα μακριά. Ως που ήρθε η φλασιά! C! Η μαμά των περισσοτέρων, με pointers και τραλαλά, που υπάρχει 30τόσα χρόνια και την αγαπάνε τόσοι. Ξεκίνησα με το C Primer Plus που το είχε διαβάσει ένας γνωστός μου (που τυγχάνει να συχνάζει εδώ μέσα). Το συγκεκριμένο βιβλίο, αρκετά αναλυτικό, με πολλά παραδείγματα και ασκήσεις, μου έδωσε μια πολύ καλή εντύπωση για τη C. Και νόμιζα πως πάω καλά. Τότε ρε παιδί μου, έπεσε στα χέρια μου ένα βιβλίο Α' Εξαμήνου του τμήματος πληροφορικής του Πα.Πει.. "Εισαγωγή Στην Επιστήμη Των Υπολογιστών". Αυτό που αντίκρυσα στο κεφάλαιο με τους αλγορίθμους (γιατί τα άλλα ήταν λίγο-πολύ γνωστά σε εμένα) δεν το είχα ξαναδεί. Μπάμπλσορτ και κάτι άλλα τέτοια που μοιάζανε διαστημικά για εμένα και τη C. Δεν έχω μεγάλο πρόβλημα στην κατανόηση, αλλά στο ότι τα βλέπω πρώτη φορά, σε pseudocode. Μετά από αυτόν τον τεράστιο πρόλογο (για να καταλάβετε αγαπητοί φορουμίτες που βρίσκομαι) μπαίνω στο κυρίως πιάτο. Αυτό που παρατήρησα είναι πως το βιβλίο που είχα, δεν έδινε πολλά ουσιαστικά παραδείγματα με αλγορίθμους. Έφτιαχνε απλά προγραμματάκια που κάνουν 2-3 δουλείτσες. Κάτι σαν τη ΓΛΩΣΣΑ της 3ης Λυκείου. Αυτό που με άγχωσε είναι μήπως μείνω εντελώς εκτός από τα νερά της αλγοριθμικής και απλά μάθω... την σύνταξη της C. Παράλληλα, βρήκα στο σάιτ του Stroustrup ένα βιβλιαράκι της C++ που έχει γράψει ο ίδιος (Principles & Practice: C++) και το προτείνει ανεπιφύλακτα, και προορίζεται καθαρά για μάθεις να κατασκευάζεις σύγχρονες εφαρμογές (όπως ισχυρίζεται) και για ακαδημαΐκή χρήση. Εσείς τι θα μου προτείνατε; Να πιάσω το βιβλίο του Stroustrup και να ξεκινήσω from scratch, ή να συνεχίσω τη C με κάποιο άλλο βιβλίο; Προσέχτε, δε θέλω να μου πείτε "ΠΟΙΑ ΓΛΩΣΣΑ ΝΑ ΑΡΧΙΣΩ ΝΑ ΜΑΘΩ ΝΑ ΓΙΝΩ ΟΥΑΟΥ ΧΑΚΕΡ", αλλά τι να κάνω εν τέλει για να μπω πιο καλύερα στα μονοπάτια του προγραμματισμού. Θέλω να μάθω τα βασικά περί αλγορίθμων, να μπορώ σκέφτομαι προγραμματιστικά, να υλοποιώ λύσεις, να λύνω προβλήματα και να μπορώ να κατανοώ κώδικα. Με ψήνει αβέρτα το βιβλίο του Stroustrup, που έχω ακούσει πολύ καλά λόγια στο νετ. Αλλά δε θα πάει χαμένος ο κόπος μου στη C? (μη φανταστείτε, ίσα που μπήκα pointers) Όπως προείπα, θέλω να μάθω, και ας πάρει καιρό. Όχι να φτιάχνω ουάουGUI apps σε ένα 3μηνο. Αν ήταν έτσι, έπιανα VB και πέριοντ. Είπαμε, C or C++ Θα με βοηθούσε να μου δίνατε γενικές συμβουλές και όχι "ΔΙΑΒΑΣΕ ΑΥΤΟ", "ΜΠΕΣ ΕΚΕΙ". Δόξα το θεό, ξέρω να το χρησιμοποιώ το θείο Γούγλη και τη θειά Βικιπαίδη. Χάρη σε αυτούς έμαθα ότι έμαθα Συγγνώμη για το μακροσκελέστατο thread μου και πάλι. Ευχαριστώ προκαταβολικά, Meddle.
PavelX Δημοσ. 20 Ιουλίου 2009 Δημοσ. 20 Ιουλίου 2009 Θέλω να μάθω τα βασικά περί αλγορίθμων, να μπορώ σκέφτομαι προγραμματιστικά, να υλοποιώ λύσεις, να λύνω προβλήματα και να μπορώ να κατανοώ κώδικα. Αν σταθώ στα bold, θα σου πω ότι η γλώσσα δεν έχει καμία σχέση με αυτά. Αν θέλεις να μάθεις την "προγραμματιστική λογική" δεν παίζει κανένα ρόλο η γλώσσα. Είτε είναι VB .NET είτε C++ είτε QBasic είναι το ίδιο πράγμα. Από την στιγμή που υπάρχει το Internet, για μένα ο καλύτερος τρόπος να μάθεις είναι μέσω έτοιμων open source εφαρμογών και παραδειγμάτων. Κατέβασε έτοιμους κώδικες, δες κάτι που σου αρέσει και ψάξε να δεις "πως το κάνει". Και μετά φτιάξ' το μόνος σου. Εννοείται πως κάποια στιγμή θα θελήσεις να πιάσεις και ένα βιβλίο στα χέρια σου. Αφού μπεις στην λογική θα σου είναι εύκολο να διαλέξεις ένα βιβλίο μόνος σου. Επίσης, αν δεν βαριέσαι θα ήθελα να μου εξηγήσεις λίγο αυτό που έγραψες: Αποφάσισα λοιπόν να ξεκινήσω με την VB.net. Μετά από ενασχόληση 1 βδομάδας της έδωσα σουτ, γιατί, εκτός από τα άπειρα αρνητικά σχόλια που άκουσα, μου φάνηκε εντελώς παιχνιδιάρικη, καμία σχέση με αυτό που φανταζόμουν. Τι είδους αρνητικά σχόλια και τι εννοείς παιχνιδιάρικη;
Meddle Δημοσ. 20 Ιουλίου 2009 Μέλος Δημοσ. 20 Ιουλίου 2009 Αν σταθώ στα bold, θα σου πω ότι η γλώσσα δεν έχει καμία σχέση με αυτά. Αν θέλεις να μάθεις την "προγραμματιστική λογική" δεν παίζει κανένα ρόλο η γλώσσα. Είτε είναι VB .NET είτε C++ είτε QBasic είναι το ίδιο πράγμα. Από την στιγμή που υπάρχει το Internet, για μένα ο καλύτερος τρόπος να μάθεις είναι μέσω έτοιμων open source εφαρμογών και παραδειγμάτων. Κατέβασε έτοιμους κώδικες, δες κάτι που σου αρέσει και ψάξε να δεις "πως το κάνει". Και μετά φτιάξ' το μόνος σου. Εννοείται πως κάποια στιγμή θα θελήσεις να πιάσεις και ένα βιβλίο στα χέρια σου. Αφού μπεις στην λογική θα σου είναι εύκολο να διαλέξεις ένα βιβλίο μόνος σου. Επίσης, αν δεν βαριέσαι θα ήθελα να μου εξηγήσεις λίγο αυτό που έγραψες: Αποφάσισα λοιπόν να ξεκινήσω με την VB.net. Μετά από ενασχόληση 1 βδομάδας της έδωσα σουτ, γιατί, εκτός από τα άπειρα αρνητικά σχόλια που άκουσα, μου φάνηκε εντελώς παιχνιδιάρικη, καμία σχέση με αυτό που φανταζόμουν. Τι είδους αρνητικά σχόλια και τι εννοείς παιχνιδιάρικη; Το κλασικότατο Essay του Raymond, το VBisBadForNewbies και πολλά comments εδώ μέσα. Αλλά και εμένα προσωπικά δε ενθουσιάζει η ιδέα του έτοιμου IDE που στα έχει όλα.' Edit: Και το Portability. Γουστάρω τη μαυρίλα ρε αδερφέ Αλλά ας μη σταθούμε στην VB. Ας μείνουμε στο αρχικό δίλημμα. Έχεις δίκιο, google is my friend, αλλά δε θα ήταν καλύτερα να είχα έναν ολοκληρωμένο οδηγό στα χέρια μου; Σα να ήταν ο teacher μου, ξέρεις.
virxen75 Δημοσ. 20 Ιουλίου 2009 Δημοσ. 20 Ιουλίου 2009 γι αυτό που θέλεις να κάνεις γνώμη μου είναι να μείνεις στην C και όχι στην C++ με την C++ θα μπερδευτείς πολύ.
PavelX Δημοσ. 20 Ιουλίου 2009 Δημοσ. 20 Ιουλίου 2009 Αν υπήρχε "ολοκληρωμένος οδηγός" θα υπήρχε μόνο ένα βιβλίο για κάθε γλώσσα προγραμματισμού. Κάθε βιβλίο σου προσφέρει κάτι ξεχωριστό. Αν έχεις εξοικειωθεί με το τι είναι variable, τι είναι function και τα σχετικά, δοκίμασε να κάνεις αυτό που σου έγραψα στο προηγούμενο post. Ένας πολύ καλός τρόπος θα ήταν αν ξεκινούσες να φτιάχνεις εφαρμογές. Για παράδειγμα ξεκίνα να φτιάξεις ένα notepad. Ψάξε πως θα φτιάξεις το μενού, μετά πως θα βάλεις ένα checkbox στο μενού, μετά τα bold, μετά την λογική του open/save, πότε να ζητάει confirmation κτλ. Και συνέχισε έτσι. Βέβαια αυτά στα λέω επειδή έτσι έμαθα προγραμματισμό, από παραδείγματα. Αναμφισβήτητα η ανάγνωση ενός βιβλίου θα σε βοηθήσει, αλλά αυτό κάνε το παράλληλα με την δική σου αναζήτηση και έρευνα.
Evgenios1 Δημοσ. 20 Ιουλίου 2009 Δημοσ. 20 Ιουλίου 2009 Πρωτα θελω να σου πω ο,τι... Γραφεις ωραια . Εμενα ειναι το χομπι μου(ο προγραμματισμος). Θα σου ελεγα, ετσι για να ξεκαθαρισεις λιγο με το γενικο θεμα, ενας υπολογιστης κανει ο,τι κανει λογου καποιων εντολων που "ειναι" στον processor (οχι cpu). Η πιο κοντινη της "γλωσσα" προγραμματισμου ειναι η assembly κατι ( οπου κατι, σειρα processor ή τυπο ή ο,τι αλλο ειναι). Αυτη ειναι στην κατηγορια των low level αυτη ειναι η μαμα, με αυτη "κανεις" τα παντα. Μη κανεις το λαθος να συγκρινεις τις γλωσσες με τη c ή καποια c style. 1) ΨΑΞΕ τι ειναι high level τι ειναι low level programming language 2) ΨΑΞΕ τι ειναι φιλοσοφια προγραμματισμου (Programming paradigm) και ποσες ειναι τι ειναι γιατι ειναι Αν κατσεις και ασχολιθεις με αυτα τα κλειδια (low level programming language,high level programming language,Programming paradigm) Θα αλλαξεις γνωμη για πολλα ποστ που εχεις δει εδω μεσα γι αυτό που θέλεις να κάνεις γνώμη μουείναι να μείνεις στην C και όχι στην C++ με την C++ θα μπερδευτείς πολύ. +1 Ποσα paradigm εχει; 3-5? Μπαχαλο για αρχαριους
virxen75 Δημοσ. 20 Ιουλίου 2009 Δημοσ. 20 Ιουλίου 2009 εγώ πάλι θα σου έλεγα να αρχίσεις με κάποιες απλές εφαρμογές μαθηματικών π.χ το ελάχιστο κοινό πολλαπλάσιο ,το μέγιστο κοινό διαιρέτη αν ένας αριθμός είναι πρώτος,εύρεση των 100 πρώτων αριθμών υπολογισμός παραγοντικού κ.α με αυτά θα μπεις στην διαδικασία του προγραμματισμού σταδιακά πως θα πάρεις τα δεδομένα από τον χρήστη,πως θα υπολογίσεις αυτό που θες, με τι εντολές με τι σύνταξη,πως θα εμφανίσεις στην οθόνη το αποτέλεσμα, πως φτιάχνεις μία συνάρτηση πως δίνεις-παίρνεις τιμές κ.α. Ενα βιβλίο θα σε βοηθήσει να βρεις: τι εντολές υπάρχουν και ποια η χρήση τους και οι παράμετροι τους. ξεκίνα κάτι απλό και πόσταρε τα προβλήματα που αντιμετωπίζεις και σιγά σιγά με την βοήθεια από εδώ θα μπεις στο πνεύμα για να πας σε κάτι πιο σύνθετο.
Meddle Δημοσ. 20 Ιουλίου 2009 Μέλος Δημοσ. 20 Ιουλίου 2009 Καταρχάς ευχαριστώ όσους μπήκαν στον κόπο να διαβάσουν το thread και να απαντήσουν. Αυτό με τα μαθηματικά προβλήματα όντως θα το επιχειρήσω, πιστεύω θα είναι καλή εξάσκηση. Τώρα, στη C, έχω μια βασική ιδέα. Ξέρω να χειρίζομαι variables, if statements και κάπως ικανοποιητικά τις loops. Εντελώς ασχετίλας δεν είμαι, έχω καταφέρει μέχρι τη μέση πρόγραμμα υπολογισμού μορίων πανελληνίων (τώρα που το θυμήθηκα ψήθηκα να το ολοκληρώσω ) Όσο για τα paradigms, υπ'όψιν μου είχα το procedural και το OO. Ξέρω πως η C++ συνδυάζει και τα δύο ενώ η C μόνο το πρώτο. Από εκεί και πέρα δεν ξέρω άλλα, αλλά θα ψάξω αμέσως wikipedia Ξαναευχαριστώ όσους απάντησαν και αναμένω και άλλα replies έτσι για να υπάρχει πληθώρα απόψεων! Και με googling έβρισκα την άκρη, αλλά είναι εντελώς διαφορετικό το να επικοινωνείς (έστω και έμμεσα) με γνώστες του είδους. Edit: Βρήκα κάτι eBooks που είναι όλα τα βιβλία από το τμήμα πληροφορικής του Ανοιχτού Πανεπιστημίου Ελλάδος. Λέτε;
Bspus Δημοσ. 20 Ιουλίου 2009 Δημοσ. 20 Ιουλίου 2009 Αν σου αρεσουν και τα μαθηματα μεσω βιντεο, θα σου ελεγα να ψαξεις το VTC C Programming. Υπαρχουν 2 εκδοσεις. Η μια του 2001 που σου εξηγει με μορφη διαλεξεων και παραδειγματων τα στοιχεια της γλωσσας και καθολη τη διαρκεια αναπτυσσει μια εφαρμογη διαχειρισης συλλογης CD. Σε text περιβαλλον βεβαια, αλλα περιλαμβανει ολα τα απαραιτητα θεματα οπως pointers, memory allocation, διαχειριση αρχειων και τα σχετικα. Κατα τη γνωμη μου ειναι παρα πολυ καλο, εφοσον ηδη ξερεις τα βασικα και απ'οτι φαινεται εχεις ορεξη για μελετη. Τη δευτερη εκδοση του 2007 δεν την εχω κοιταξει σε βαθος. Απο τους τιτλους των κεφαλαιων φαινεται να αντιγραφει σχεδον εξ'ολοκληρου στη δομη και υλη το βιβλιο The C programming Language των Kernigan & Ritchie, το οποιο ειναι ψιλο παλουκικαι δεν το προτεινω αμα δεν ξερεις ηδη αρκετα καλη C, ποσο μαλλον καμια αλλη γλωσσα.
narbi Δημοσ. 20 Ιουλίου 2009 Δημοσ. 20 Ιουλίου 2009 Από αυτά που λες καταλαβαίνω ότι το πρόβλημα εστιαζέται στους αλγοριθμους κι όχι στην εκμάθηση της σύνταξης μια γλώσσας προγραμματισμού. Αν κάνω λάθος, διόρθωσέ με. Οπότε καλύτερα ξεκίνα με τη λογική των αλγορίθμων σε ψευδογλώσσα. Το βιβλίο, οι ασκήσεις και ο compiler (Γλωσσομάθεια ή alkisg) που υπάρχουν στο μάθημα της 3ης λυκείου είναι καταπληκτικά για μια αρχή νομίζω! Κι ύστερα αφού προσαρμόζεσαι τόσο εύκολα σε γλώσσες προγραμματισμού ασχολήσου με αυτή που σου αρέσει περισσότερο - κατα προτίμιση με C, αλλά αυτή είναι απλώς η γνώμη μου -
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.