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

Γλώσσες Προγραμματισμού 2014-2015


DreaMakos

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

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

 

Τότε θα πρέπει να έχεις μια ιδιαίτερη σχέση με τον εαυτό σου, γιατί μιλάς π.χ. με σιγουριά για object oriented και c++ ενώ από αυτά που γράφεις είναι φανερό πως αν σε ρωτούσαν τι είναι smalltalk θα απαντούσες "κάτι σαν whatsapp και viber".

 

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

 

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

 

Tο πόσο καλή γλώσσα είναι η C++ για να μάθει κανείς ΟΟ είναι φανερό από τον κώδικα που βλέπεις να γράφει το 99% των νεοφώτιστων που έμαθαν πρώτα C: κανονικά malloc και πίνακες και κανα cout για το ξεκάρφωμα. Υπάρχουν βλέπεις και άνθρωποι που ξέρουν C++, έμαθαν σοβαρά από C++ και παρόλα αυτά δεν τη συνιστούν σα γλώσσα εκμάθησης.

 

 

 

Iaji5mQ.png

 

 

 

Θα συμφωνήσω όμως ότι δεν είναι καλό να παίρνεις συμβουλές από κανένα "προγραμματιστάκια".

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

Συχνή συμμετοχή στο θέμα

ΟΚ ας μάθει Python με την μια.

 

Μετά που ακούει Pointer, Struct, Overwrite, δέσμεση μνήμης κτλπ και θα του φαίνοντε κινέζικα θα είναι αργά να γυρίσει πίσω ...

 

Θα το ξαναπώ. Στόχος του δεν είναι να μάθει μια γλώσσα για mobile ας πούμε, στόχος του είναι να μάθει να μαθένει προγραμματισμό

 

Δεν μπόρω να σου πώ ποιόν να ακούσεις, λέω απλά την γνώμη μου ας κάνεις ότι θες

   Καταρχην γιατι να ειναι δυσκολο για καποιον στην πορεια να μαθει περι pointer, struck, overwrite. Σιγα το πολυπλοκο. Κατα δευτερον ΓΙΑΤΙ να ασχοληθει κανεις πλεον με κατι τετοια, σιγα να μην μαθει και να κανει free τους integers και τα strings λεω εγω. 

 

   Ας αφιερωσει τον χρονο του να ασχοληθει με ποιο σοβαρα και ενδιαφεροντα πραγματα οπως αρχιτεκτονικες, να μαθει πως να δημιουργει σε model view presenter pattern για gui applications, να μαθει καποιες καλες πρακτικες και οτι αλλο μπορεις να φανταστεις.

 

   Γιατι ολα αυτα εχουνε πολλη μεγαλυτερη σημασια για εναν καλο προγραμματιστη σημερα, απο το να ασχολειται με pointers και σχετικα πρωτογονα πραγματα που δεν εχουνε τιποτα να προσφερουν. Ας μαθει και cobol και fortran με go to επειδη ητανε απο τις πρωτες, και ολες οι υπολοιπες θελοντας και μη επιρρεστικανε συμφωνα με την λογικη σου, και μετα να μαθει να δουλευει και με διατρητες καρτες ωστε να το παιζει και χιπστερ. 

  

  Και στην τελικη προγραμματιστης γινεσαι προγραμματιζοντας. Με c, θα σπαταλησεις ποσο καιρο να μαθεις malloc, πινακες, struck, και μετα θα προχωρησεις σε μια αλλη γλωσσα και θα δεις οτι ολα αυτα που εμαθες τοσο καιρο ητανε στραφη και σε οποιαδηποτα γλωσσα πιο συγχρονη απο το 90 γινονται αυτοματα.

 

   Δεν θα γινεις ποτε προγραμματιστης με το να εφαρμοσεις ενα algorith και ενα printout. Ουτε διαβαζοντας 5 10 50 βιβλια. Τα βιβλια σου ανοιγουνε οριζοντες, σε βοηθουνε να βελτιωσεις καποια πραγματα, να δεις πραγματα αλλιως οπως δεν το ειχες σκεφτει, αλλα ΔΕΝ σε κανουνε προγραμματιστη. Με ωρες πανω απο το πληκτρολογιο μαθαινεις. Και αν το μονο που κανεις ειναι διαλεξε 5 αριθμους βρες τον μικροτερο βρες τον μεγαλυτερο ποσα περιθωρια πιστευεις εχεις για OOP, η ποσο καιρο θα αντεξεις κανοντας κατι τοσο βαρετο και τετριμενο σε c...

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τότε θα πρέπει να έχεις μια ιδιαίτερη σχέση με τον εαυτό σου, γιατί μιλάς π.χ. με σιγουριά για object oriented και c++ ενώ από αυτά που γράφεις είναι φανερό πως αν σε ρωτούσαν τι είναι smalltalk θα απαντούσες "κάτι σαν whatsapp και viber".

 

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

 

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

 

Tο πόσο καλή γλώσσα είναι η C++ για να μάθει κανείς ΟΟ είναι φανερό από τον κώδικα που βλέπεις να γράφει το 99% των νεοφώτιστων που έμαθαν πρώτα C: κανονικά malloc και πίνακες και κανα cout για το ξεκάρφωμα. Υπάρχουν βλέπεις και άνθρωποι που ξέρουν C++, έμαθαν σοβαρά από C++ και παρόλα αυτά δεν τη συνιστούν σα γλώσσα εκμάθησης.

 

 

 

Iaji5mQ.png

 

 

 

Θα συμφωνήσω όμως ότι δεν είναι καλό να παίρνεις συμβουλές από κανένα "προγραμματιστάκια".

καλά ότι να ναι με 10 books έμαθες  c++ χαχαχαχαχαχαχα

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

 

ακομα γελάω χααχαχαχαχααχαχ με αυτά τα books 

 

δεν θα χάσω αλλό χρόνο 

 

μην ξέχνάς φίλε μου πρώτα C και μετά C++  και επίσης δεν είναι καλό να παίρνεις συμβουλές από κανένα "προγραμματιστάκια".

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

καλά ότι να ναι με 10 books έμαθες  c++ χαχαχαχαχαχαχα

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

 

ακομα γελάω χααχαχαχαχααχαχ με αυτά τα books 

 

δεν θα χάσω αλλό χρόνο 

 

μην ξέχνάς φίλε μου πρώτα C και μετά C++  και επίσης δεν είναι καλό να παίρνεις συμβουλές από κανένα "προγραμματιστάκια".

 

 

 

2440507-8539254473-13765.jpg

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

 

Αυτό το quote μου άρεσε.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

μην ξέχνάς φίλε μου πρώτα C και μετά C++  και επίσης [/size][/font]δεν είναι καλό να παίρνεις συμβουλές από κανένα "προγραμματιστάκια".

Πετυχες και εσυ τον προγραμματιστακια του φορουμ.... Για ριξε μια codia να δουμε ποιος μιλαει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πάνω κάτω αυτό που λέει ο papakaliati.

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

 

Καμιά φορά λέω χαριτολογώντας πως με τη C++ "γίνεσαι άντρας" -- το εννοώ και με την καλή, και με την κακή έννοια.


Όταν λέμε C++: τα έχουμε ξαναπεί στο forum. Είναι multi-paradigm language. Θέλεις κλασικό C-style procedural με goto? Έχει. Θέλεις OO? Έχει. Θέλεις generic programming? Έχει. Θέλεις functional? Ακόμα κι αυτό μπορείς να το κάνεις.

Ένα από τα δυνατά σημεία της είναι αυτό ακριβώς: η γλώσσα έχει μέσα ιδέες και concepts πολύ διαφορετικά και τελείως ορθογώνια μεταξύ τους, και μπορείς να κάνεις ό,τι θες. Αυτό όμως είναι και το πρόβλημα εδώ: όταν κάποιος καταρτίζεται τεχνικά πρέπει να μπαίνει σε ράγες. Αν τον αμολήσεις σε ένα χώρο που ό,τι κι αν κάνει one way or another θα δουλέψει πώς θα μπορέσει να συγκροτήσει γνώση από το μπουφέ που έχει μπροστά του;

Και επίσης, κάτι άλλο που έχουμε δει όλοι εδώ (και ισχύει και για τη C): undefined behavior με την οποία το πρόγραμμα "λειτουργεί κανονικά". Have fun εξηγώντας σε κάποιον γιατί αυτό που κάνει το οποίο δουλεύει μια χαρά και για το οποίο ο compiler δεν παραπονιέται είναι λάθος.



Νομίζω πως εδώ τα λέει μέσες άκρες αρκετά καλά (emphasis mine):
 

C: Trains You to Write Efficient Code

C is one of, if not the, most widely used programming languages. There are a few reasons for this. As noted programmer and writer Joel Spolsky says, C is to programming as learning basic anatomy is to a medical doctor. C is a "machine level" language, so you'll learn how a program interacts with the hardware and learn the fundamentals of programming at the lowest—hardware—level (C is the foundation for Linux/GNU). You learn things like debugging programs, memory management, and how computers work that you don't get from higher level languages like Java—all while prepping you to code efficiently for other languages. C is the "grandfather" of many other higher level languages, including Java, C#, and JavaScript.

That said, coding in C is stricter and has a steeper learning curve than other languages, and if you're not planning on working on programs that interface with the hardware (tap into device drivers, for example, or operating system extensions), learning C will add to your education time, perhaps unnecessarily. Stack Overflow has a good discussion on C versus Java as a first language, with most people pointing towards C. However, personally, although I'm glad I was exposed to C, I don't think it's a very beginner-friendly language. It'll teach you discipline, but you'll have to learn an awful lot before you can make anything useful.

 

For sure θα πρότεινα την εκμάθηση C σα δεύτερη γλώσσα σε μεγάλη μερίδα προγραμματιστών, και σ' αυτούς που ήδη ξέρουν 2 θα έλεγα "καλά ακόμα δεν ξεκίνησες να μαθαίνεις C?". Αλλά υπάρχει τεράστια διαφορά ανάμεσα σε κάποιον που ξέρει τα βασικά και μπορεί να εστιάσει μόνο στις επιπλέον έννοιες που φέρνει μαζί ο low level προσανατολισμός της C και σε κάποιον που ενώ προσπαθεί να μάθει πότε χρησιμοποιούμε do while αναγκάζεται να κάνει συνέχεια παρακάμψεις για να μάθει πώς γίνονται οι μαγικές τελετές με pointers και άλλα αντίστοιχα.

 

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

 

Κι ένα τελευταίο: συμφωνώ 100% ότι στον προγραμματισμό μαθαίνεις μόνο κάνοντας -- είναι εξάλλου engineering, πολλά πράγματα φαίνονται μια χαρά στο χαρτί αλλά στην πράξη έρχεται η συνειδητοποίηση. Όμως τα βιβλία και η μελέτη γενικότερα μετράνε πολύ καθώς αν δεν είσαι παγκοσμίου επιπέδου ιδιοφυία (ίσως ακόμα κι αν είσαι) δε μπορείς να ξαναανακαλύψεις μόνος σου τα πάντα. Ο Newton το είπε εύγλωττα μιλώντας για πλάτες γιγάντων, ο Bobby Fischer το είπε πολύ πιο πεζά αλλά και ξεκάθαρα:

 

In response to a question by the Prince of Monaco as to how he learned to play chess so well, Fischer responded, “I have read probably a thousand books on chess and have taken all the best from them.”

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

 

Τι μπορεί να μάθει κάποιος πρωινιάτικα;

[1], [2]

 

@defacer

Κι όμως σου λένε πού θα συναντήσεις undefined. Αλλά άντε χώσ'το στο κεφάλι του αρχάριου.

 

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

 

Για αυτοδίδακτη εκμάθηση δεν ενδείκνυται πάντως, πιθανότατα να μη χρειάζεται κιόλας.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

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

 

Για αυτοδίδακτη εκμάθηση δεν ενδείκνυται πάντως, πιθανότατα να μη χρειάζεται κιόλας.

 

Εγω θα πω την προσωπικη μου γνωμη σαν αρχαριος στον προγραμματισμο ακομα.ΕΙχα ξεκινησει πριν πολλα χρονια με C(ειχα φτασει μεχρι Pointers kai Structs)τωρα μαθαινω Java.Aκουγα συνεχεια για την C και ποσο στρυφνη ειναι,ποσο σου δυσκολευει την ζωη,οτι ανακαλυπτεις τον τροχο απ την αρχη κτλ κτλ κτλ και απ την αλλη οτι το OOP ειναι πολυ πιο ευκολο,σου λυνει τα χερια,κατι που θα γραψεις στην C με 100 γραμμες κωδικα στην Java θα το κανεις με με τις μισες και πολλα αλλα τετοια πραγματα.Ε εγω προσωπικα το θεωρω 1000 φορες πιο δυσκολο το OOP,μπορω να πω οτι εχω μπερδευτει αρκετα,παρα πολλα πραγματα να μαθεις.Eχω ψιλο πελαγωσει.

 

Στην C δεν ειχα τετοια θεματα,δεν ξερω αλλα μου φαινοταν πολυ πιο ξεκαθαρα τα πραγματα και μ αρεσε πιο πολυ αυτο το στυλ προγραμματισμου(δομημενο το λενε?).Θα κανω υπομονη να δω που το παει αλλα μαλλον απ οτι βλεπω δεν θα γινω μεγαλος φιλος του OOP :-) Προς θεου μην μου την πεσετε ε? :-) Δεν υποστηριζω την μια η την αλλη γλωσσα(εξαλλου δεν εχω ακομα το επιπεδο να το κανω) λεω απλα τι με διασκεδαζε περισσοτερο απ τα 2 και τι μου φανηκε πιο ευκολο.

 

Αυτα τα ολιγα,την καλημερα μου σε ολους

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εγω θα πω την προσωπικη μου γνωμη σαν αρχαριος στον προγραμματισμο ακομα.ΕΙχα ξεκινησει πριν πολλα χρονια με C(ειχα φτασει μεχρι Pointers kai Structs)τωρα μαθαινω Java.Aκουγα συνεχεια για την C και ποσο στρυφνη ειναι,ποσο σου δυσκολευει την ζωη,οτι ανακαλυπτεις τον τροχο απ την αρχη κτλ κτλ κτλ και απ την αλλη οτι το OOP ειναι πολυ πιο ευκολο,σου λυνει τα χερια,κατι που θα γραψεις στην C με 100 γραμμες κωδικα στην Java θα το κανεις με με τις μισες και πολλα αλλα τετοια πραγματα.Ε εγω προσωπικα το θεωρω 1000 φορες πιο δυσκολο το OOP,μπορω να πω οτι εχω μπερδευτει αρκετα,παρα πολλα πραγματα να μαθεις.Eχω ψιλο πελαγωσει.

 

Στην C δεν ειχα τετοια θεματα,δεν ξερω αλλα μου φαινοταν πολυ πιο ξεκαθαρα τα πραγματα και μ αρεσε πιο πολυ αυτο το στυλ προγραμματισμου(δομημενο το λενε?).Θα κανω υπομονη να δω που το παει αλλα μαλλον απ οτι βλεπω δεν θα γινω μεγαλος φιλος του OOP :-) Προς θεου μην μου την πεσετε ε? :-) Δεν υποστηριζω την μια η την αλλη γλωσσα(εξαλλου δεν εχω ακομα το επιπεδο να το κανω) λεω απλα τι με διασκεδαζε περισσοτερο απ τα 2 και τι μου φανηκε πιο ευκολο.

 

Αυτα τα ολιγα,την καλημερα μου σε ολους

Κι εγώ μία από τα ίδια. Με C αναγκάστηκα να ξεκινήσω (όχι ότι με χάλασε). Μετά συνέχισα με Java. Ομολογώ πως η C μου άρεσε περισσότερο και με τρελαίνει ακόμη σαν γλώσσα και δυνατότητες (δε μιλάω για high-level εφαρμογές). Java δεν ακουμπώ εκτός κι αν είναι ανάγκη. Κάθησα το καλοκαίρι που πέρασε να μάθω και Python μιας και ήθελα να μάθω μια γλώσσα για rapid prototyping. Έχω φτάσει σε ένα σημείο όπου μπορώ να γράφω χωρίς να κοιτάω cheatsheets. Μπορώ να πω πως ήταν πιο ευχάρηστη από τη Java και κυρίως απείρως πιο εύκολη(?) να τη μάθεις. Βέβαια δεν έχει τον επιβλητικό OOP, της Java, αλλά αυτό είναι το στυλ της Python.

Εμένα μου αρέσει. Προσωπική εμπειρία και προσωπική άποψη!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Aκουγα συνεχεια για την C και ποσο στρυφνη ειναι,ποσο σου δυσκολευει την ζωη,οτι ανακαλυπτεις τον τροχο απ την αρχη κτλ κτλ κτλ και απ την αλλη οτι το OOP ειναι πολυ πιο ευκολο,σου λυνει τα χερια,κατι που θα γραψεις στην C με 100 γραμμες κωδικα στην Java θα το κανεις με με τις μισες και πολλα αλλα τετοια πραγματα.Ε εγω προσωπικα το θεωρω 1000 φορες πιο δυσκολο το OOP,μπορω να πω οτι εχω μπερδευτει αρκετα,παρα πολλα πραγματα να μαθεις.Eχω ψιλο πελαγωσει.

Κι εγώ μία από τα ίδια. Με C αναγκάστηκα να ξεκινήσω (όχι ότι με χάλασε). Μετά συνέχισα με Java. Ομολογώ πως η C μου άρεσε περισσότερο και με τρελαίνει ακόμη σαν γλώσσα και δυνατότητες (δε μιλάω για high-level εφαρμογές). Java δεν ακουμπώ εκτός κι αν είναι ανάγκη. Κάθησα το καλοκαίρι που πέρασε να μάθω και Python μιας και ήθελα να μάθω μια γλώσσα για rapid prototyping. Έχω φτάσει σε ένα σημείο όπου μπορώ να γράφω χωρίς να κοιτάω cheatsheets. Μπορώ να πω πως ήταν πιο ευχάρηστη από τη Java και κυρίως απείρως πιο εύκολη(?) να τη μάθεις. Βέβαια δεν έχει τον επιβλητικό OOP, της Java, αλλά αυτό είναι το στυλ της Python.

Εμένα μου αρέσει. Προσωπική εμπειρία και προσωπική άποψη!

Πολύς κόσμος θεωρεί το OOP πιο δύσκολο επειδή δεν το έχει διδαχτεί καλά. Και στην Java υπάρχει αυτό το πρόβλημα αλλά παίρνει τεράστιες διαστάσεις σε C++. Δεν χρειάζεται να πάμε μακρυά για να το δούμε αυτό. Αρκεί να ψάξουμε εδώ στο φόρουμ για νήματα που ζητάνε βοήθεια σε C++ ενώ ο κώδικας είναι 100% C (άντε με ένα #include iostream και ένα cout). Ίσως είναι καλύτερο για κάποιον που θέλει να ασχοληθεί με C++ να μην μάθει καθόλου C :P

 

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

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εγω θα πω την προσωπικη μου γνωμη σαν αρχαριος στον προγραμματισμο ακομα.ΕΙχα ξεκινησει πριν πολλα χρονια με C(ειχα φτασει μεχρι Pointers kai Structs)τωρα μαθαινω Java.Aκουγα συνεχεια για την C και ποσο στρυφνη ειναι,ποσο σου δυσκολευει την ζωη,οτι ανακαλυπτεις τον τροχο απ την αρχη κτλ κτλ κτλ και απ την αλλη οτι το OOP ειναι πολυ πιο ευκολο,σου λυνει τα χερια,κατι που θα γραψεις στην C με 100 γραμμες κωδικα στην Java θα το κανεις με με τις μισες και πολλα αλλα τετοια πραγματα.Ε εγω προσωπικα το θεωρω 1000 φορες πιο δυσκολο το OOP,μπορω να πω οτι εχω μπερδευτει αρκετα,παρα πολλα πραγματα να μαθεις.Eχω ψιλο πελαγωσει.

 

Στην C δεν ειχα τετοια θεματα,δεν ξερω αλλα μου φαινοταν πολυ πιο ξεκαθαρα τα πραγματα και μ αρεσε πιο πολυ αυτο το στυλ προγραμματισμου(δομημενο το λενε?).Θα κανω υπομονη να δω που το παει αλλα μαλλον απ οτι βλεπω δεν θα γινω μεγαλος φιλος του OOP :-) Προς θεου μην μου την πεσετε ε? :-) Δεν υποστηριζω την μια η την αλλη γλωσσα(εξαλλου δεν εχω ακομα το επιπεδο να το κανω) λεω απλα τι με διασκεδαζε περισσοτερο απ τα 2 και τι μου φανηκε πιο ευκολο.

 

Αυτα τα ολιγα,την καλημερα μου σε ολους

 

Αν καταλαβαίνω καλά τι γράφεις...

 

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

 

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

 

Το ξέρεις ότι στο πολύ πολύ αρχάριο στάδιο μπορείς να προγραμματίσεις π.χ. σε PHP και το πρόγραμμά σου θα μοιάζει πάρα πολύ με το αντίστοιχο πρόγραμμα σε C? Δοκίμασε να το κάνεις για να μπορείς μετά να κρίνεις ο ίδιος ποιά από τις δύο γλώσσες θα σε διευκόλυνε περισσότερο.

 

Δύο λοιπόν είναι τα points που θέλω να κάνω:

  1. Για να μπορεί κανείς να κρίνει χρειάζεται εμπειρία και πλατειά γνώση. Η λογική που λέγαμε παραπάνω "αυτό ξέρω αυτό μου αρέσει" είναι σεβαστή αλλά δε μπορεί να είναι επιχείρημα σε μια συγκριτική κουβέντα. Φαντάσου π.χ. να έλεγε κάποιος "τα Windows είναι το καλύτερο λειτουργικό γιατί δοκίμασα Linux και μπερδεύτηκα". Το συμπέρασμα, άσχετα αν είναι αλήθεια ή όχι, απλά δεν προκύπτει από τα δεδομένα.
  2. Μη συγχέουμε το "μαθαίνω προγραμματισμό" με το "μαθαίνω να γράφω προγράμματα των 20 γραμμών". Που και το δεύτερο να θέλεις, πάλι η C δεν είναι η καλύτερη επιλογή να ξεκινήσεις.

Και κλείνοντας, ένα χειροπιαστό παράδειγμα για το #2. Πες ότι θες να κάνεις "κάτι χρήσιμο": έχεις ένα αρχείο με URLs, μία σε κάθε γραμμή. Θέλεις να τις διαβάσεις, να πάρεις από κάθε μία το domain name ("www.insomnia.gr") και μετά να τυπώσεις μια λίστα με domain names και πόσες φορές εμφανίζεται το καθένα μέσα στο αρχείο εισόδου, ταξινομημένη κατά φθίνουσα σειρά αριθμού εμφανίσεων.

 

Το πρόγραμμα αυτό είναι σούπερ απλοϊκό (με ελεύθερη επιλογή γλώσσας δε θα έπρεπε να πάρει σε κάποιον που ξέρει πάνω από 5 λεπτά). Δοκίμασε να το γράψεις σε C να δεις τι θα γίνει. Ή ας δοκιμάσει κάποιος άλλος και να μας γράψει εδώ όλα τα βήματα που χρειάζεται να κάνει για να φτάσει στο αποτέλεσμα για να συγκρίνουμε.

 

Όσον αφορά την εκμάθηση, η C είναι πολύ καλή για να εμβαθύνεις σε παραπρογραμματιστικές έννοιες (π.χ. pointers -- καλοί χρυσοί έχουν τις χάρες όλες, αλλά μπορείς να στήσεις ολόκληρο το facebook χωρίς να ξέρεις τι είναι pointer). Αν δεν είναι αυτός ο σκοπός σου μιλάμε για μαζοχισμό.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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