Page 1 of 1

The Perils of JavaSchools

Posted: Thu Nov 08, 2012 7:55 pm
by stoupeace
Μικρό κομμάτι του άρθρου, που με κάνει να νιώθω τύψεις που δεν ξέρω να κάνω GUI σε assembly
You may be wondering if teaching object oriented programming (OOP) is a good weed-out substitute for pointers and recursion. The quick answer: no. Without debating OOP on the merits, it is just not hard enough to weed out mediocre programmers. OOP in school consists mostly of memorizing a bunch of vocabulary terms like "encapsulation" and "inheritance" and taking multiple-choice quizzicles on the difference between polymorphism and overloading. Not much harder than memorizing famous dates and names in a history class, OOP poses inadequate mental challenges to scare away first-year students. When you struggle with an OOP problem, your program still works, it's just sort of hard to maintain. Allegedly. But when you struggle with pointers, your program produces the line Segmentation Fault and you have no idea what's going on, until you stop and take a deep breath and really try to force your mind to work at two different levels of abstraction simultaneously.
Moar frustration: The Perils of JavaSchools

Re: The Perils of JavaSchools

Posted: Thu Nov 08, 2012 8:03 pm
by nachos
Κλαψ λύγμ η ζωή προχωράει μπροστά και δεν μπορώ να το αντέξω.

Το ζουμί του άρθρου σε μισή γραμμή.

Re: The Perils of JavaSchools

Posted: Thu Nov 08, 2012 8:24 pm
by stoupeace
nachos wrote:Κλαψ λύγμ η ζωή προχωράει μπροστά και δεν μπορώ να το αντέξω.

Το ζουμί του άρθρου σε μισή γραμμή.
Σε σημεία ισχύει. Αλλά το point του είναι λογικό. Σου παιδεύει το μυαλό ο pointer και η αναδρομή, και είναι ένας τύπος σκέψης που θα πρέπει να μπορούμε να παίζουμε στα δάχτυλα.
Αντίστοιχα και ο OOP έχει σημεία που σου λιώνουν το μυαλό, αλλά μπορείς να κάνεις τη δουλειά σου ακόμα και αν είσαι πολύ μέτριος.

Re: The Perils of JavaSchools

Posted: Thu Nov 08, 2012 8:41 pm
by nachos
Η αναδρομή είναι μύθος, για την ακρίβεια είναι το ευκολότερο functional pattern. Το δύσκολο και η μαγκια είναι να βρίσκεις το κατάλληλο iterative pattern ανά περίπτωση. Όσο για τους pointers, ποτέ δεν κατάλαβα γιατί προκαλούν τόσο προβληματισμό. Ή μάλλον για την ακρίβεια, γιατί κάποιοι ισχυρίζονται ότι τον προκαλούν. Μάλλον αστικός μύθος. Η μόνη ουσία του πράγματος είναι ότι ο developer για χρόνια, είχε να ασχολείται με πολύ περισσότερα πράγματα συστημικής φύσης, (unmanaged κώδικες κλπ) χωρίς απαραίτητα αυτά να είναι η ουσία της δουλειάς του. Και όσοι έχουν ωριμάσει μέσα στο "κουρμπετι" αντιλαμβάνονται ότι ο κώδικας (που όλοι αγαπάμε) είναι το μέσον, και όχι ο αυτοσκοπός. Και φυσικά, η προοδευτική φύση των πραγμάτων, επιβάλει το να χτίζεις πάνω σε υπάρχουσες δομές, για να δημιουργείς νέες, ακόμα καλύτερες. Όποιος δε γουστάρει, μπορεί πάντα να επιστρέψει στο true programming με λυχνίες στον eniac, δεν τον εμποδίζει κανείς νομίζω.

Κακοί προγραμματιστές υπήρχαν πάντα, δεν έχει να λέει αν έγραφαν σε functional ή oop. Η διαφορά του μετρίου από τον άριστο, έγκειται - συν τοις άλλοις - στην σε βάθος κατανόηση των concepts που διαχειρίζεται, και φυσικά στο επίπεδο της δουλείας του και την τριβή με αυτήν. Pointer υπάρχει στη C, pointer υπάρχει και στη java και είτε μπορείς να καταλάβεις πως δουλεύει, είτε όχι. Από κει και πέρα ο καθένας τσουλάει και με τα ενδιαφέροντά του, ως προς το αν θα καταλήξει system-άς, ή application developer. Either way, ο κάθε τομέας έχει τις προκλήσεις του.

Re: The Perils of JavaSchools

Posted: Thu Nov 08, 2012 8:44 pm
by ja_the_invincible
Σίγουρα το να γνωρίζεις πώς δουλεύουν κάποια πράγματα σε low level επίπεδο σε βοηθάει σαν προγραμματιστή.Το παρατήρησα όταν ασχολήθηκα λίγο με assembly ( δυστυχώς όχι στα πλαίσια της ΟΣΥ γιατί εκεί το εργαστήριο είναι τραγικό ).Π.χ θυμάμαι στο 2ο έτος (c++) πως με ψιλομπέρδευε ο συσχετισμός ενός pointer με ένα πίνακα και πώς μπορείς να διατρέξεις και να δώσεις τιμή στον πίνακα μέσω του pointer ενώ όταν αργότερα είδα τι παίζει με την στοίβα και πώς διατρέχεις ένα πίνακα σε assembly μου φαινόταν πολύ πιο ξεκάθαρο.Πάντως δεν θεωρώ πως η ύπαρξη γλωσσών που δίνουν ευκολίες στον programmer π.χ Java,c#,python μετριάζει τις γνώσεις του ίσα-ίσα είναι πολύ πιο εύκολο να μάθεις να προγραμματίζεις τα βασικά και στην συνέχεια αν θεωρείς ότι έχεις κενά στο θεωρητικό σου υπόβαθρο πάνω στον προγραμματισμό μπορείς να ασχοληθείς με κάτι τελείως low level π.χ assembly και να τα ξεκαθαρίσεις.

Re: The Perils of JavaSchools

Posted: Thu Nov 08, 2012 8:50 pm
by nachos
Πολύ σωστή παρατήρηση. Να το διευκρινήσω για να μην παρεξηγηθώ, ότι δεν αντιλέγω ως προς το γεγονός του ότι το low level programming είναι ανεκτίμητης αξίας στη διδασκαλία. Εντούτοις δεν είναι και πανάκεια. Επίσης (και ίσως κυριότερο), δεν είναι κάτι με το οποίο θα ξεκινήσεις τον αρχάριο φοιτητή - σπουδαστή (όπως "επιτάσσει" το άρθρο).

Re: The Perils of JavaSchools

Posted: Thu Nov 08, 2012 9:32 pm
by AmmarkoV
Stoupeace wrote: δεν ξέρω να κάνω GUI σε assembly
nachos wrote:Κλαψ λύγμ η ζωή προχωράει μπροστά και δεν μπορώ να το αντέξω.
nachos wrote: Όποιος δε γουστάρει, μπορεί πάντα να επιστρέψει στο true programming με λυχνίες στον eniac, δεν τον εμποδίζει κανείς νομίζω.
Le wut wat ? :-k

Re: The Perils of JavaSchools

Posted: Thu Nov 08, 2012 11:09 pm
by nachos
By the way, ένα φοβερό άρθρο για τον τρόπο θέασης των γλωσσών προγραμματισμού, από ένα φοβερό προγραμματιστή:

http://www.paulgraham.com/icad.html

Re: The Perils of JavaSchools

Posted: Fri Nov 09, 2012 8:35 pm
by AmmarkoV

Link
20+ years later

Link


Link

Re: The Perils of JavaSchools

Posted: Fri Nov 09, 2012 8:42 pm
by stoupeace
Το έβαλες μόνο επειδή έχεις top comment, και είσαι σελέμπριτι στο γιουτούμπ.

Μπες ον τόπικ και πες μας τι θες :)

Re: The Perils of JavaSchools

Posted: Fri Nov 09, 2012 10:03 pm
by AmmarkoV
Συνωνυμία το nickname αλλά anyways επειδή δεν θέλω να γράψω ένα τεράστιο κατεβατό για να εξηγήσω..
Έχει να κάνει με το δύσκολο πρόβλημα της γνώσης..

Προγραμματισμός ..
Μπορεί να θεωρηθεί το να γράφεις software για έναν πυρηνικό αντιδραστήρα..
το να γράφεις firmware για μια κάρτα γραφικών..
το να γράφεις ένα λειτουργικό σύστημα..
το να γράφεις μια εφαρμογή για το κινητό
το να γράφεις μια σελίδα στο ιντερνετ
το να ρυθμίζεις το δίκτυο ενός υπολογιστή και να εγκαθιστάς 5-6 εφαρμογές ..

έχει ξεφτυλιστεί λίγο η έννοια.. ( a good read here ) , όπως και άλλα links που έχει μέσα ( link link link )

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

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

Άτομα τα οποία ξέρουν να κάνουν την μελέτη from scratch συνήθως δεν έχουν πρόβλημα να χρησιμοποιήσουν την εύκολη εναλλακτική , απλά την αντιπαθούν γιατί αντιλαμβάνονται πόσο χοντροκομμένη και inefficient είναι..
Το αντίστροφο βεβαίως δεν ισχύει..

Επίσης ακόμα και το να θεωρήσεις οτι οκ αν ξέρεις java "ξερεις προγραμματισμό" μερικές φορές το να πείς σε κάποιον public static void main printf κτλ και ακόμα και αν το γράφει και κάνει προγράμματα και εργασίες κτλ κτλ δεν σημαίνει οτι καταλαβαίνει τι κάνει με την βαθύτερη έννοια και τι γίνεται απο κάτω και υπάρχουν τοσο πάρα πολλά τεράστια λογικά κενά από κάτω..

Γιαυτό λοιπόν my tips to you , dont be noobs και μάθετε να είστε παραγωγοί και όχι καταναλωτές σε αυτό που κάνετε και καλή σας τύχη ..

Re: The Perils of JavaSchools

Posted: Fri Nov 09, 2012 11:01 pm
by necrofear_13
My 2cents... Υπάρχουν καλοί και κακοί high level προγραμματιστές και καλοί και κακοί low lovel προγραμματιστές. Και με το καλοί κακοί εννοώ κυρίως το παραγωγικοί ή μη παραγωγικοί με την έννοια που το λέει ο Ammar. Υπάρχουν επίσης προγραμματιστές που πηγαίνουν με τη c και το σταυρό στο χέρι και προγραμματιστές που πιστεύουν ότι η java είναι πανάκεια ... που και τα δύο θεωρώ ότι είναι λάθος.. Οπότε απλά θα υπογραμμίσω την τελευταία φράση του Ammar γιατί είναι όλο το ζουμί κατά τη γνώμη μου...
Γιαυτό λοιπόν my tips to you , dont be noobs και μάθετε να είστε παραγωγοί και όχι καταναλωτές σε αυτό που κάνετε και καλή σας τύχη ..

Re: The Perils of JavaSchools

Posted: Sat Nov 10, 2012 12:03 am
by PASCAL
Μία είναι η γλώσσα :-p : http://en.wikipedia.org/wiki/Brainfuck

Re: The Perils of JavaSchools

Posted: Sat Nov 10, 2012 5:24 am
by rexes
AmmarkoV wrote:Συνωνυμία το nickname αλλά anyways επειδή δεν θέλω να γράψω ένα τεράστιο κατεβατό για να εξηγήσω..
Έχει να κάνει με το δύσκολο πρόβλημα της γνώσης..

Προγραμματισμός ..
Μπορεί να θεωρηθεί το να γράφεις software για έναν πυρηνικό αντιδραστήρα..
το να γράφεις firmware για μια κάρτα γραφικών..
το να γράφεις ένα λειτουργικό σύστημα..
το να γράφεις μια εφαρμογή για το κινητό
το να γράφεις μια σελίδα στο ιντερνετ
το να ρυθμίζεις το δίκτυο ενός υπολογιστή και να εγκαθιστάς 5-6 εφαρμογές ..

έχει ξεφτυλιστεί λίγο η έννοια.. ( a good read here ) , όπως και άλλα links που έχει μέσα ( link link link )

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

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

Άτομα τα οποία ξέρουν να κάνουν την μελέτη from scratch συνήθως δεν έχουν πρόβλημα να χρησιμοποιήσουν την εύκολη εναλλακτική , απλά την αντιπαθούν γιατί αντιλαμβάνονται πόσο χοντροκομμένη και inefficient είναι..
Το αντίστροφο βεβαίως δεν ισχύει..

Επίσης ακόμα και το να θεωρήσεις οτι οκ αν ξέρεις java "ξερεις προγραμματισμό" μερικές φορές το να πείς σε κάποιον public static void main printf κτλ και ακόμα και αν το γράφει και κάνει προγράμματα και εργασίες κτλ κτλ δεν σημαίνει οτι καταλαβαίνει τι κάνει με την βαθύτερη έννοια και τι γίνεται απο κάτω και υπάρχουν τοσο πάρα πολλά τεράστια λογικά κενά από κάτω..

Γιαυτό λοιπόν my tips to you , dont be noobs και μάθετε να είστε παραγωγοί και όχι καταναλωτές σε αυτό που κάνετε και καλή σας τύχη ..
Αυτά συνήθως συμβαίνουν στο 1ο εξάμηνο που ερχόμαστε από μια νοοτροπία προγραμματισμού καθαρά βασισμένη σε επίπεδο αλγορίθμων και καλούμαστε να μάθουμε να προγραμματίζουμε σε Java. Από το 2ο εξάμηνο και μετά, όπου αρχίζουν τα πράγματα να ξεκαθαρίζουν στο συντακτικό και τη δομή της Java, θεωρώ ότι μπαίνει και το υπόβαθρο για να κατανοείς αυτά που γράφεις. Δεν νομίζω να είναι τόσο κακό που κάποιοι προτιμούν το high level programming από το low level. Σε κάθε περίπτωση όμως οι "καλοί" θα είναι αυτοί που κατανοούν τι συμβαίνει στα ακόμη πιο low επίπεδα και θα γράφουν παραγωγικό και σωστά δομημένο κώδικα.

Re: The Perils of JavaSchools

Posted: Sat Nov 10, 2012 11:37 am
by moody
rexes wrote: Αυτά συνήθως συμβαίνουν στο 1ο εξάμηνο που ερχόμαστε από μια νοοτροπία προγραμματισμού καθαρά βασισμένη σε επίπεδο αλγορίθμων και καλούμαστε να μάθουμε να προγραμματίζουμε σε Java. Από το 2ο εξάμηνο και μετά, όπου αρχίζουν τα πράγματα να ξεκαθαρίζουν στο συντακτικό και τη δομή της Java, θεωρώ ότι μπαίνει και το υπόβαθρο για να κατανοείς αυτά που γράφεις. Δεν νομίζω να είναι τόσο κακό που κάποιοι προτιμούν το high level programming από το low level. Σε κάθε περίπτωση όμως οι "καλοί" θα είναι αυτοί που κατανοούν τι συμβαίνει στα ακόμη πιο low επίπεδα και θα γράφουν παραγωγικό και σωστά δομημένο κώδικα.
Στο 1ο εξάμηνο αυτό ισχύει για τα παιδιά της τεχνολογικής κατεύθυνσης,στους άλλους είναι καινούρια αυτά.Στο 2ο ξεκαθαρίζουν λίγα πράγματα,και σε μεγαλύτερα έτη συνήθως ξεκαθαρίζουν περισσότερα(c++,δομές δεδομένων,λειτουργικά συστήματα,και btw και τα 3 έχουν γαμάτους καθηγητές με τεράστια μεταδοτικότητα).
Yep,δεν είναι κακό να προτιμάς το high level programming vs του low level,αρκεί να μην απαρνηθείς το low level,γιατί όπως είπε και ο AmmarkoV , θα σαι καταναλωτής (χρησιμοποιώντας έτοιμες βιβλιοθήκες) και δεν θα μπορέσεις εύκολα να το περάσεις αυτό.(καθώς είναι αρκετά δύσκολο πιστεύω να ξεφύγει κάποιος από την ευκολία που του δίνουν οι high level,και να δημιουργήσει κάτι μόνος του,χοντροκομμένα λέγοντας το,στην πρώτη περίπτωση αλλάζεις τιμές,στην δεύτερη διαλέγεις εσύ τι να κάνουν αυτές οι τιμές) :smt023
@Pascal :
:lol: και εγώ την είχα βρει αυτή την γλώσσα πριν 1-2 βδομάδες,απλά γελοίο το συναντικό :-p
AmmarkoV ++ :smt023

Re: The Perils of JavaSchools

Posted: Sat Nov 10, 2012 2:25 pm
by Spongebobu
moody wrote: btw και τα 3 έχουν γαμάτους καθηγητές με τεράστια μεταδοτικότητα
Δεν θα έλεγα οτι ο Ξυλωμένος έχει τεράστια μεταδοτικότητα, αλλά αν μπορείς να τον παρακολουθήσεις χωρίς να χάνεις τι λέει καθε 2 λεπτά μπορείς να μάθεις πολλά!

Also, αυτή η γλώσσα είναι η μόνη που χρειάζεται να μάθει κανείς.
Spoiler: εμφάνιση/απόκρυψη
[img]http://cdn.head-fi.org/b/b9/b930ce9d_1cd234e6_half-trollface.jpeg[/img]

Re: The Perils of JavaSchools

Posted: Sat Nov 10, 2012 2:30 pm
by moody
Spongebobu wrote:
moody wrote: btw και τα 3 έχουν γαμάτους καθηγητές με τεράστια μεταδοτικότητα
Δεν θα έλεγα οτι ο Ξυλωμένος έχει τεράστια μεταδοτικότητα, αλλά αν μπορείς να τον παρακολουθήσεις χωρίς να χάνεις τι λέει καθε 2 λεπτά μπορείς να μάθεις πολλά!

Also, αυτή η γλώσσα είναι η μόνη που χρειάζεται να μάθει κανείς.
Spoiler: εμφάνιση/απόκρυψη
[img]http://cdn.head-fi.org/b/b9/b930ce9d_1cd234e6_half-trollface.jpeg[/img]
brainfuck is more retarded :-p
Ξυλωμένος is awesome :-D