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

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

Δημοσ.

Δεν έχει νόημα να χαλάς τον χρόνο σου να ανακαλύψεις μια δομή για να κερδίσεις μερικά Bytes όταν οι σημερινοί υπολογιστές έχουν το ελάχιστο 4GB RAM.

 

Βασικά το χειρότερο δεν είναι ότι σπαταλάς εσύ το χρόνο σου για να "βελτιστοποιήσεις" μερικά byte μνήμης.

 

Το χειρότερο δεν είναι καν ότι με τέτοιες μαλακίες μαθαίνουν στον κόσμο να σκέφτονται με λάθος τρόπο γιατί στην πραγματικότητα το τι data structure θα χρησιμοποιήσεις για κάτι προκύπτει από όλες τις ανάγκες του προβλήματος, πρώτα απ' όλα από τις οργανωτικές, και όχι από γραφικότητες του στυλ πώς θα γλυτώσουμε 1 byte μνήμη.

 

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

 

Αν ήθελε να κάνει κάτι χρήσιμο με το χρόνο τους σ' αυτές τις γραμμές, ας τους έβαζε ένα λίγο πιο open ended πρόβλημα "μειώστε όσο μπορείτε την κατανάλωση του προγράμματος" με 1000 allocations φάτσα κάρτα που γίνονται πολύ optimized και 100Κ λίγο πιο έμμεσα allocations που γίνονται κάπως λιγότερο optimized για να καταλάβουν μόνοι τους πέντε πράγματα.

  • Like 1
Δημοσ.

Πολλα ζητας. Main χωρις type μπροστα επειδη ετσι πρεπει (ασχετα αν μπαινει default int) χωρις return γιατι ετσι και τα μυαλα στα καγκελα.

Δημοσ.

Το χειρότερο δεν είναι καν ότι με τέτοιες μαλακίες μαθαίνουν στον κόσμο να σκέφτονται με λάθος τρόπο γιατί στην πραγματικότητα το τι data structure θα χρησιμοποιήσεις για κάτι προκύπτει από όλες τις ανάγκες του προβλήματος, πρώτα απ' όλα από τις οργανωτικές, και όχι από γραφικότητες του στυλ πώς θα γλυτώσουμε 1 byte μνήμη.

Πολλα ζητας. Main χωρις type μπροστα επειδη ετσι πρεπει (ασχετα αν μπαινει default int) χωρις return γιατι ετσι και τα μυαλα στα καγκελα.

Όταν άρχισα εγώ να διαβάζω c, assembly, κτλ η μόνη πλατφόρμα που είχαμε ήταν το DOS (ή τουλάχιστον που μπορούσες να βρεις σε κάθε σπίτι. υπήρχαν και unix και vms και ό,τι θες αλλά λίγοι είχαν πρόσβαση σε αυτά). Φαντάσου οι καθηγητές που ήταν μεγαλύτερης ηλικίας από εμένα πού έμαθαν. Και αυτοί σε κάποια τέτοια πλατφόρμα θα έμαθαν όπως πχ Turbo C σε DOS που λέω πάντα. Αφενός, τότε ίσως να είχε νόημα να ψάχνεις τι τύπο θα χρησιμοποιήσεις, και αφετέρου η Turbo C επέτρεπε ένα κάρο τέτοια χαζά όπως void main που λες και λοιπές κακές πρακτικές.

 

Απλά από εκεί και πέρα δεν έκατσαν να διαβάσουν και να "αναβαθμίσουν" τις γνώσεις τους και διδάσκουν αυτά που έμαθαν αυτοί το 1900. Αν είναι και μιας ηλικίας ο καθηγητής και έχει 5 χρόνια να βγει στην σύνταξη ή αν λόγω συνταξιοδότησης άλλων καθηγητών του φόρτωσαν αντικείμενα και έχει 10 μαθήματα να διδάξει (ο δικός μου δίδασκε ταυτόχρονα C, C++, Prolog, Java, HTML, PHP και ίσως κάτι ακόμα να μου διαφεύγει) οπότε δεν θα κάτσει να ασχοληθεί να διαβάσει.

 

Μια χρονιά θυμάμαι καλοκαιρινό εξάμηνο πήρα μάθημα επιλογής Java. Δεν την χώνευα αλλά όλα τα επιλογής ήταν χάλια οπότε τουλάχιστον στην Java θα χρειαζόμουν το ελάχιστο διάβασμα. Ήταν η πρώτη χρονιά που την έδωσαν σε ένα νέο καθηγητή για να συμπληρώσει αντικείμενα και ο άνθρωπος, προς τιμήν του, μας είπε ότι δεν γνωρίζει Java και θα την μάθουμε μαζί. Έκανε αξιοπρεπή προσπάθεια, βοηθούσε όλους τους φοιτητές (μετά βέβαια από 1-2 χρόνια απέκτησε τουπέ και έγινε απρόσιτος) αλλά τελικά διδαχτήκαμε C με σύνταξη Java :)

 

Εσείς φυσικά τα ξέρατε αυτά απλά τα λέω για κάποιον που διαβάζει το νήμα. Όποιος θέλει ας δει για παράδειγμα την CS50 του Harvard ή την CS106A του Stanford. Με τι διάθεση και χιούμορ διδάσκουν ο David Malan και ο Mehran Sahami και τι θέματα διδάσκουν (βέβαια να πούμε ότι έχουν και μια ολόκληρη ομάδα από φοιτητές που ετοιμάζουν τα πάντα) και με τι διάθεση μπαίνουν στην αίθουσα οι δικοί μας.

Δημοσ.

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

 

Κάποια περίοδο δίδασκα PHP σε ένα ΑΤΕΙ, πραγματικά κατέβαλα μεγάλη προσπάθεια να κάνω το μάθημα αφ' ενός προσβάσιμο σε όσους δεν ενδιαφέρονται (να τους μείνει και κάτι αν κάνουν τα ελάχιστα για το 5), αφ' ετέρου να υπάρχει "χώρος" για όσους θέλουν να ψαχτούν περισσότερο και βέβαια να είναι ενδιαφέρον το μάθημα και οι εργασίες για να μη καλύπτει την παράδοση το ροχαλητό από το αμφιθέατρο.

 

Πιστεύω πως τα κατάφερα σε μεγάλο βαθμό αλλά α) τα παιδιά ήταν απλά τυχερά που έτυχε να διδάσκει κάποιος που ξέρει "production level" προγραμματισμό στη συγκεκριμένη γλώσσα (θα μπορούσα να κάνω το ίδιο χωρίς να έχω παρά μόνο επιφανειακή ιδέα περί PHP, όπως ο δικός σου με τη Java) και β) αυτή η προσπάθεια απαιτούσε πολύ κόπο και χρόνο για τον οποίο δεν πρόκειται όχι να έπαιρνα κάποιου είδους ανταμοιβή αλλά σχεδόν μπορείς να πεις πως δε θα καταλάβαινε κανείς τι έκανα πέρα από τους 4-5 φοιτητές που πραγματικά ενδιαφέρονταν.

 

Θέλω δηλαδή να πω ότι με αντικειμενικά κριτήρια, όποιος κάνει τέτοια πράγματα είναι "χαζός" επειδή το κάνει για την ψυχή της μάνας του. Αν είναι καθηγητής κιόλας που η καριέρα του εξαρτάται από οτιδήποτε άλλο εκτός του πώς κάνει μάθημα πρέπει να είναι παραπάνω από χαζός. Και γω ο ίδιος αν βρισκόμουν σήμερα στην ίδια θέση και έπρεπε να αποφασίσω αν θα κάτσω να βελτιώσω το υλικό (μηδέν αντάλλαγμα πέρα από το warm fuzzy feeling και την ικανοποίηση του a job well done) ή αν θα πάω να παίξω με την κόρη μου, φαντάζεσαι πως θα ήταν διαφορετικά τα πράγματα.

 

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

  • Like 6
Δημοσ.

Φίλε @ντιφασερ

 

σε καμιά περίπτωση δεν λέω να αποκλειστούν τέτοια μαθήματα! ΠΡΕΠΕΙ ΝΑ ΥΠΑΡΧΟΥΝ! ΚΑΙ ΦΥΣΙΚΑ πρέπει να γίνεται βαθιά μελέτη των δομών δεδομένων, κατάλληλης επιλογής, κατάλληλης επιλογής τύπου για εξοικονόμηση μνήμης.

 

Απλά ξέρεις... 

 

πέρασα μια περίοδο στη ζωή μου ως προγραμματιστής που είχα φάει τρελό κόλλημα με αυτά. Με βέλτιστες μεταβλητές και βέλτιστο κώδικα (optimizing code, if-else statements etc)

 

Αποτέλεσμα? να κάθομαι με τις ώρες για κάτι που ήδη ήταν σε καλό επίπεδο. Στο μάτι φυσικά καμιά διαφορά. Με τις ταχύτητες που έχουμε σήμερα...

 

Έτσι, πολλές φορές κόλλαγα και δεν προχώραγα στο υπόλοιπο πρόγραμμα.

Δημοσ.

Νομίζω κάτι που μπορεί να βελτιώσει την κατάσταση είναι τα ιδιωτικά πανεπιστήμια.

Θα κουνηθούν κάπως και τα δημόσια.

Δημοσ.

Φίλε @ντιφασερ

 

σε καμιά περίπτωση δεν λέω να αποκλειστούν τέτοια μαθήματα! ΠΡΕΠΕΙ ΝΑ ΥΠΑΡΧΟΥΝ! ΚΑΙ ΦΥΣΙΚΑ πρέπει να γίνεται βαθιά μελέτη των δομών δεδομένων, κατάλληλης επιλογής, κατάλληλης επιλογής τύπου για εξοικονόμηση μνήμης.

 

Απλά ξέρεις... 

 

πέρασα μια περίοδο στη ζωή μου ως προγραμματιστής που είχα φάει τρελό κόλλημα με αυτά. Με βέλτιστες μεταβλητές και βέλτιστο κώδικα (optimizing code, if-else statements etc)

 

Αποτέλεσμα? να κάθομαι με τις ώρες για κάτι που ήδη ήταν σε καλό επίπεδο. Στο μάτι φυσικά καμιά διαφορά. Με τις ταχύτητες που έχουμε σήμερα...

 

Έτσι, πολλές φορές κόλλαγα και δεν προχώραγα στο υπόλοιπο πρόγραμμα.

 

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

 

Η απάντηση είναι βέβαια πως η βελτιστοποίηση είναι σούπερ σοβαρό αντικείμενο, αλλά πέρα από την εκμάθηση, όταν βελτιστοποιείς κάτι που δε χρειάζεται να βελτιστοποιηθεί, you are not doing anything productive -- απλά τον παίζεις δημιουργικά.

 

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

 

Προσωπικά επειδή δεν πληρώνομαι για να σπαταλάω χρόνο βελτιστοποιώντας πράγματα που δε χρειάζονται, κλπ κλπ, κατά καιρούς νιώθω και γω την ανάγκη να κάνω κάτι σούπερ σωστά ή σούπερ elegant ή σούπερ οτιδήποτε, να ξεκαβλώσω λίγο so to speak. Υποθέτω και άλλοι το νιώθουν αυτό. Το λεπτό σημείο είναι: do that on your own time, όπως οποιοδήποτε άλλο hobby που το κάνεις καθαρά και μόνο για να γουστάρεις και όχι για να προκύψει κάτι συγκεκριμένο.

 

 

Νομίζω κάτι που μπορεί να βελτιώσει την κατάσταση είναι τα ιδιωτικά πανεπιστήμια.

Θα κουνηθούν κάπως και τα δημόσια.

 

Δε νομίζω πως θα γίνει τίποτα τέτοιο όσο δε λαμβάνεται κάπως υπόψη σαν performance metric το τι ακριβώς διδάσκονται.

 

Πάντως ας μη ξεχνάμε ότι ο προγραμματισμός είναι ένα μόνο μέρος του προγράμματος σπουδών (ειδικά εμένα ως ΗΜΜΥ ήταν κάπου 4-5-6 μαθήματα από τα 65 του πτυχίου). Γενικά πιστεύω πως το επίπεδο είναι αρκετά υψηλό.

Δημοσ.

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

 

Επίσης τα 5-6 μαθήματα προγραμματισμού στους ΗΜΜΥ που λέει ο defacer (εγώ έχω την εντύπωση πως διδάχτηκα κανά δυο παραπάνω αν θυμάμαι καλά αλλά τέσπα), δεν είναι δυσανάλογα σε σχέση με τον αριθμό μαθημάτων που αφορούν τους υπόλοιπους τομείς. Απλά μάθαμε τόση εισαγωγική θεωρία και μαθηματική προσέγγιση για οτιδήποτε σε αυτό τον κόσμο χρησιμοποιεί ρεύμα, που τελικά στο φινάλε δεν είχαμε ιδέα πως ακριβώς χρησιμοποιούνται όλα αυτά στην πράξη. Κοινώς θα μπορούσε να λέγεται η σχολή που βλέπεις 60 trailers, αλλά δε νομίζω να μπορεί στην πράξη να γίνει και κάτι διαφορετικό...

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

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

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

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

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

Σύνδεση

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

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