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

Αρχάριος για C++


wgp5

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

Δημοσ.

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

 

Διάβασε εδώ για τους διαφορετικούς τύπους προγραμματισμού.

 

Εγώ προτείνω να ξεκινήσει με μια γλώσσα για ΑΡΧΑΡΙΟΥΣ λέγε με

BASIC (προσοχή δε μιλάω για visual)

Θυμηθείτε BASIC = Beginners' all - purpose symbolic instruction Code

 

και για compiler ή intepreter πμ :mrgreen:

  • Απαντ. 32
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Κλασσικό θέμα συζήτησης.Στην σχολή μου ξεκινήσαμε με C++ για να μην χάνουμε χρόνο :-P.

Θα συμφωνήσω με τον unre@l, αν και δεν γνωρίζω Basic ή Pascal γνώμη μου είναι οτι η C++ ειναι καλή γλώσσα για να αρχίσεις.Εννοείται οτι δεν θα ξεκινήσεις να μαθαίνεις για pointers.

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

Δημοσ.

Pali debate apto pouthena? :)

 

Anyways, Hello World programmata se oles tis glwsses grafoume. Giati na kanei to p.x. hello world loipon se mia glwssa kai otan to mathei na paei na mathei pws na to ksanagrapsei se alli? Epeidi i mia glwssa exei pio periploki sintaksi apo mia alli i pio advanced xaraktiristika de paei na pei oti de mporeis na kaneis kai ta apla pragmata me afti. Egw an ksekinaga twra tha ksekinaga me C++ na mpw apo nwris ston object-oriented programmatismo.

Kai stin teliki i glwssa den exei simasia. Ksekina kai me arxaia ellinika ama goustareis.

Polla panepistimia sto ekswteriko ksekinane me java kai menoune se afti (distixws)....

Δημοσ.

eirinikp antitheta gia ayto einai kalo. Olin tin diaxeirisi tis mnimis tin kanei i Java oso kala mporei kai den asxoleisai esi o idios me ayto. Ayto fisika in the long run(sorry gia to aggliko) sou meiwnei tin eleytheria tis diaxeirisis tis mnimis alla gia enan pou mathainei twra programmatismo einai oti prepei.

 

Mpainei mesa ston OOP me Java, mia arketa wraia glwssa kai den asxoleitai me ta diskola tis diaxeirisis mnimis pou sou fernei i C++ , pou sto katw katw an eisai arxarios entelws den xreiazontai.

 

Fisika ayto to thema me to poia glwssa einai kalo na arxisei o kathenas einai elafrws biased dioti o kathenas tha sou pei tin glwssa pou arxise aytos.

 

EDIT: Kickeras ayto me tin Java pou les exeis dikio. Kai oxi mono sto ekswteriko. Kai edw stin sxoli mou as poume me Java mas arxisane. Kai otan pigame c++ kanenas den ithele na tin mathei. Tin thewrousane pio diskoli xwris logo. Kai apo tin stigmi pou polloi ligoi kanane programmata tis prokopis ektos consolas den katalavainane diafores metaksi twn 2 aytwn glwsswn me apotelesma na dimiourgoume se kathe eksamino c++ haters.

Δημοσ.

E nai eleos....pantws mia xara kanei tin diaxeirisi tis mnimis i C++. Oute pointers einai anagki na doulevei enas arxarios, oute allocators oute to diko tou heap. Kai oi default ti douleia tous tin kanoun. To thema einai oti sou dinei to dikaiwma na tis kaneis kai esy opws thes. Einai ontws pio diskoli apo java giati apaitei gnwsi tou ti ginetai apo pisw. Otan kapoios sou didaskei mia epistimi pou apaitei / tha apaitei hardcore gnwseis programmatismou thewrw oti einai xazo na tous mathaineis mono kati to opoio dimiourgei provlima stin katanoisi vasikwn arxwn programmatistikis thewrias.

Δημοσ.

Κι εγω με C ξεκινησα κ μετα πηγα σε C++.. Το να πας κατευθειαν σε java ειναι παρα πολυ δυσκολο κατα την γνωμη μου.. Αλλα το να μαθεις αλλη γλωσσα πρωτα κ μετα να πας σε C παλι αχρηστο το βρισκω.. Το καλυτερο κατα την γνωμη μου ειναι να πας C --> C++ --> java

Δημοσ.

Gia na mathei kapios na programmatizei sosta prepei prota na mathei miia glossa grammikou programatismou opos einai i C i BASIC i FORTRAN i PASCAL ktl. Oxi oti an bpei kapios katefthian se C++ simenei oti den tha mporesei na mathei, alla einai san na matheneis na odigeis mixani xoris na exeis kavalisei podilato prota.

I C++ einai antikimenostrafis glossa i opoia einai entelos diaforetikis logikis sti sintaksi tis kai gia na mporesei kaneis na kanei pramata kai thavmata me aytin, prepei na exei to sxetiko ypovathro se glosses, allios ta na grapeis programma pou na tiponei "KALIMERA" sti C++ einai to mono eykolo.

Ego ksekinisa programmatismo sto dimotiko me LOGO kai sinexisa me BASIC kai tora ksero kamia 7-8 glosses alla den nomizo oti ti C++ tin exo MATHEI. Oi dinatotites tis einai terasties kai mesa se ena eksamino den mathenete i glossa ayti.

I simvouli mou einai na mathei kapios prota tin ennia kai ti logiki tou programmatismou me mia apli sxetika glossa kai meta o dromos tha einai anoixtos gia na mathei opia glossa thelei eykola.

Δημοσ.

"I simvouli mou einai na mathei kapios prota tin ennia kai ti logiki tou programmatismou me mia apli sxetika glossa kai meta o dromos tha einai anoixtos gia na mathei opia glossa thelei eykola."

 

επιτέλους και μιά "λογική" συμβουλή !

 

.

Δημοσ.

Συμφωνώ με τους παιδιά, δηλαδή να ξεκινήσεις να μαθαίνεις διαδικαστικό προγραμματισμό pascal/basic/c (θα σου πρότεινα να ξεκινήσεις με C έτσι ώστε να μεταπηδήσεις πιο εύκολα στη C++ αργότερα) και στη συνέχεια να ασχοληθείς με αντικειμενοστρεφή προγραμματισμό C++ / Java.

Δημοσ.
Pali debate apto pouthena? :)

 

Anyways, Hello World programmata se oles tis glwsses grafoume. Giati na kanei to p.x. hello world loipon se mia glwssa kai otan to mathei na paei na mathei pws na to ksanagrapsei se alli? Epeidi i mia glwssa exei pio periploki sintaksi apo mia alli i pio advanced xaraktiristika de paei na pei oti de mporeis na kaneis kai ta apla pragmata me afti. Egw an ksekinaga twra tha ksekinaga me C++ na mpw apo nwris ston object-oriented programmatismo.

Kai stin teliki i glwssa den exei simasia. Ksekina kai me arxaia ellinika ama goustareis.

Polla panepistimia sto ekswteriko ksekinane me java kai menoune se afti (distixws)....

 

Ναι φυσικά μπορούμε να μαθουμε μια γλωσσα προγραμματισμού γράφοντας

Hello World το θέμα είναι οτι θα μείνουμε εκεί αντε λίγο παραπέρα... Το παλικάρι από οτι εχω καταλαβει δεν ξέρει τιποτα από προγραμματισμό,

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

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

 

Όσο για ΜΕΡΙΚΑ πανεπιστήμια που σου μαθαίνουν κατευθείαν java και c++ θεώρω ότι απλά εξιδικεύουν την βίδα. Δήλαδη αύριο τι θα χρειαστείς στην δουλειά σου αύτο ακριβώς θα σου μαθουμε... (και καλά κανουν απο μια άποψη). Όμως ο κόσμος των υπολογιστών μεταβάλεται και πρέπει να μαθαίνεις συνεχώς καινουργια πράγματα τα οποία τα μαθαινεις πολυ πιο εύκολα(κατα την αποψη μου) με τις γενικές γνώσεις. Για αυτό το λόγω τα πολυ καλά πανεπιστημια(αν ξέρεις) πρώτα σε μαθαίνουν τις γενικές γνώσεις ώστε να εχεις γερές βάσεις και να αντεπεξελθεις σε πολυ δυσκολα προγράμματα πιο περίεργων γλώσσων.

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

Δημοσ.

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

 

@wgp5: μπορείς να χρησιμοποιήσεις το Dev-C++ ή και το http://www.codeblocks.org/ Ξεκίνα με τα απλά και σιγά σιγά θα περάσεις και σε κλάσεις, κληρονομικότητα κλπ.

 

Όσον αφορά τα υπόλοιπα, μαθαίνοντας assembly σίγουρα ΔΕΝ μαθαίνεις τι γίνεται under the hood. Άμα ήταν έτσι, όποιος ήξερε assembly θα ήταν και ειδήμων. Πολύ απλά δεν ισχύει.

 

Η BASIC είναι ο χειρότερος τρόπος να μάθεις προγραμματισμό. Μου έφαγε κανά 2 μήνες να ξεφύγω από την λογική GOTO που έχει (και η οποία 1) δυσκολεύει την ανάγνωση του κώδικα και 2) δυσκολεύει τον compiler να βγάλει καλό κώδικα).

 

Η Pascal καλή, αλλά δεν νομίζω να έχει πια νόημα να υπάρχει σαν γλώσσα, πόσο μάλλον να την μαθαίνει κανείς. Ναι, οκ έχουμε την Delphi, αλλά γιατί να τρέχουμε πίσω από τα καμώματα μιας και μόνον εταιρίας;

Δημοσ.

Εγώ νομίζω ότι τα πάντα εξαρτώνται από τι λογισμικό πρόκειται να αναπτύξουμε, για παράδειγμα αν μας ενδιαφέρουν data-centric εφαρμογές μπορεί να προτιμήσουμε ένα data-centric εργαλείο όπως η Oracle, SQL ή Visual FoxPro (αλλά και λιγότερα γνωστά εργαλεία..) που θα κάνει την ανάπτυξη του κώδικα μας γρηγορότερη - ευκολότερη..

 

Ύστερα στον τομέα του γρήγορου προγραμματισμού για Windows, η χρήση της Visual BASIC έγραψε χρυσές σελίδες στον εμπορικό προγραμματισμό δημιουργώντας μια ολόκληρη γενιά προγραμματιστών "Microsoft tools" και φέροντας το παράδειγμα των Components στον (έτσι και αλλιώς message/event driven) GUI προγραμματισμό..

 

Από την άλλη πλευρά εργαλεία RAD όπως η Delphi (PASCAL) και ο C/C++ Builder επιτρέπουν την ανάπτυξη πολύπλοκου κώδικα για πλάκα με τις δεκάδες έτοιμες classes τους σε native κώδικα επεκτείνοντας το Visual BASIC παράδειγμα σε αυτές τις παλιές και δύστροπες γλώσσες.. (πόσο δύστροπη είναι η STL πόσο εύκολη και ευλύγιστη η VCL..)

 

Και φυσικά πάντα υπάρχει το .NET η C# αλλά και η Java για όσους επιθυμούν την έξοδο τους από τους pointers και τα προβλήματα διαχείρισης μνήμης που αυτοί συνήθως φέρουν σε γλώσσες παλαιότερης γενιάς..

 

Γενικά, ο χομπίστας ή ο φοιτητής έχει χρόνο για να φτιάχνει double-linked lists με το χέρι και να χαίρεται - ο επαγγελματίας με τα deadline να τρέχουν, όχι!

 

Τίποτε δεν είναι άσπρο και μαύρο, ακόμα και η GOTO μπορεί να χρησιμοποιηθεί για δομημένο προγραμματισμό όπως αποδεικνύει ο πολύς D. Knuth παρά τους αφορισμούς του E. Dijkstra -σοφά οι δημιουργοί της C αφήσαν μια goto για την γλώσσα τους..

 

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

 

Υ.Γ

Το άσχημο είναι πως το τελευταίο χρονικό διάστημα αυτός ο πλουραλισμός, πάει περίπατο, όποτε βλέπουμε θαυμάσια εργαλεία για συγκεκριμένες εργασίες (πχ. Visual FoxPro) να αντικαθίστανται από γλώσσες 3ης γενιάς (τα κάνουμε όλα..) που τελικά δυσκολεύουν τα πράματα για όλους..

Δημοσ.

Οι σύγχρονοι compilers παράγουν καλύτερο κώδικα - βλ ταχύτερο/μικρότερο ανάλογα με τα flags - αν ο κώδικας δεν έχει global variables και δεν έχει gotos. Στο 99.999% των περιπτώσεων δεν την χρειάζεσαι την goto - μόνη φωτεινή εξαίρεση, στην ανάπτυξη πυρήνα λειτουργικού και parsers.

 

Από την άλλη, τα φαινόμενα Visual Basic/Delphi που απαντώνται στην Ελλάδα τόσο συχνά, στο εξωτερικό τα βρίσκεις μόνον σε πολύ μικρές εταιρίες με λίγους developers - δλδ ότι είναι και οι εταιρίες στην Ελλάδα. Στο εξωτερικό, οι περισσότεροι δουλεύουν C++/Java, καθαρά επειδή είναι γλώσσες που σου εξασφαλίζουν ως ένα σημείο portability του κώδικα και μη εγκλωβισμό.

 

Στην Ελλάδα που η τυπική επιχείρηση τρέχει ένα custom built PC με Windows, τα Windows-based RADs δουλεύουν. Έξω που μπορεί να τρέχεις από Solaris μέχρι AIX, τα πράματα είναι λίγο διαφορετικά.

 

Γενικά δεν θα έλεγα ότι εξαφανίζεται ο πλουραλισμός, αλλά ότι επιτέλους καταλάβαμε ότι θέλουμε πραγματικό cross-platform και όχι μεσοβέζικες λύσεις. Οπότε εργαλεία/γλώσσες που ήταν πολύ δεμένα με κάποιο συγκεκριμένο λειτουργικό, εξαφανίζονται. Και αυτό συνολικά είναι καλό.

Δημοσ.

Το φαινόμενο Visual BASIC και λιγότερο Delphi στο εξωτερικό το βρίσκεις κατά κανόνα σε τεράστιες εταιρίες (που χρησιμοποιούν Windows platforms) -αν δεν με πιστεύεις σε παραπέμπω στο βιβλίο The Old New Thing του Raymond Chen.

:)

 

Ο πλουραλισμός εξαφανίζεται ή αν θες συγκεντρώνεται σε συγκεκριμένες γλώσσες σκοτώνοντας κάθετα εργαλεία που κάνουν καλά την δουλεία τους (δεν ενδιαφέρονται όλοι να μάθουν C++ και Java - δεν τους χρειάζεται για αυτά που κάνουν - απλά πράματα, συζήτησε με προγραμματιστές FoxPro και θα δεις..) προς χάριν ευρύτερων στρατηγικών (πχ. .NET push από την MS).

 

Αυτά όσον αφορά τα MS-Windows πάντα ;)

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

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

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