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

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

Δημοσ.

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

 

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

 

Εκτιμώ πως αν ξεκινήσεις με μια πιο εύκολη γλώσσα, όπως αυτές που αναφέρθηκαν, και πολύ ταχύτερα θα παίρνεις χειροπιαστά αποτελέσματα στην οθόνη σου, και κυρίως θα αποκτήσεις μια γενική ιδέα της λεγόμενης "προγραμματικής σκέψης", καθώς και κάποιων βάσεων (συντακτικών ή μη) που είναι κοινά στις περισσότερες γλώσσες... π.χ. variables, data types, data structures, objects, classes, κλπ.

 

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

 

Όταν αισθανθείς πως έχεις φτάσει σε κάποιο ικανοποιητικό επίπεδο με την "ευκολη" γλώσσα, μπορείς να δοκιμάσεις να πας και σε Objective-C που είναι ο τελικός σου στόχος.

  • Like 1
Δημοσ.

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

 

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

 

Εκτιμώ πως αν ξεκινήσεις με μια πιο εύκολη γλώσσα, όπως αυτές που αναφέρθηκαν, και πολύ ταχύτερα θα παίρνεις χειροπιαστά αποτελέσματα στην οθόνη σου, και κυρίως θα αποκτήσεις μια γενική ιδέα της λεγόμενης "προγραμματικής σκέψης", καθώς και κάποιων βάσεων (συντακτικών ή μη) που είναι κοινά στις περισσότερες γλώσσες... π.χ. variables, data types, data structures, objects, classes, κλπ.

 

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

 

Όταν αισθανθείς πως έχεις φτάσει σε κάποιο ικανοποιητικό επίπεδο με την "ευκολη" γλώσσα, μπορείς να δοκιμάσεις να πας και σε Objective-C που είναι ο τελικός σου στόχος.

Mαλιστα. Ευχαριστώ. Όταν λέμε πολύπλοκη γλώσσα εννοούμε αυτή που είναι υψηλού επιπέδου ή αυτή που είναι πιο κοντά στη μηχανή?
Δημοσ.

Κάθε γλώσσα έχει τις ιδιαιτερότητές της. Υπάρχουν όμως κάποιες που θεωρούνται "συγγενείς" όπως πχ η c με την java. Αυτός που γνωρίζει c μπορεί σχετικά εύκολα να γράψει java και το ανάποδο. Η vb.net με την python δεν έχουν ιδιαίτερη σχέση. Σου πρότεινα vb.net γιατί θεωρώ ότι είναι απλή (ειδικά στην αρχή) και μπορείς να δημιουργήσεις εφαρμογή σε γραφικό περιβάλλον εύκολα και γρήγορα. Με την python έχω ασχοληθεί ελάχιστα - έχω την αίσθηση ότι δεν σε βοηθάει στην ανάπτυξη desktop εφαρμογών κυρίως στα win.

 

Όταν θα μάθεις σχετικά καλά την πρώτη γλώσσα, κι αν αυτή είναι oop (object oriented programming) όπως η vb.net, τότε θα σου είναι πολύ πιο εύκολο να ασχοληθείς και με δεύτερη.

 

 

c, python και vb.net έχουν λίγα κοινά στοιχεία. Η c έχει εφαρμογή κυρίως σε system programming και γενικά όπου απαιτείται low-level προγραμματισμός και μεγάλη ταχύτητα. Από την άλλη, το μεγάλο της "μειονέκτημα" είναι η [μεγάλη] δυσκολία εκμάθησης.

 

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

(με πρόλαβε ο migf1 αλλά το αφήνω κι εγώ για τη δόξα :devil: )

 

 

...

python λοιπόν. Ερώτηση νο1: H visual basic και η python είναι σαν τα αγγλικά με τα κινέζικα ας πούμε ή σαν τα αγγλικά με τα αμερικάνικα? εννοώ, οι γλώσσες έχουν κοινά στοιχεία μεταξύ τους ή κάθε φορά θα πρέπει να μαθαίνεις έναν καινούριο κόσμο? Δηλαδή η C με την python και την visual basic είναι παραπλήσιες? Η java είναι αλλη γλώσσα?

...

Δημοσ.

Mαλιστα. Ευχαριστώ. Όταν λέμε πολύπλοκη γλώσσα εννοούμε αυτή που είναι υψηλού επιπέδου ή αυτή που είναι πιο κοντά στη μηχανή?

 

Η πολυπλοκότητα με την δυσκολία δεν είναι κατά ανάγκην συνώνυμες στο context που συζητάμε.

 

Για παράδειγμα η C που είναι η πιο κοντινή στην μηχανή, μετά την Assembly, είναι από τις πιο απλές γλώσσες που υπάρχουν σε επίπεδο συντακτικής διαχείρισης (έχει μόλις 30-32 reserved keywords). Aλλά αυτο ακριβώς την κάνει δύσκολη στο να καταφέρεις πράγματα που με "πολύπλοκες" γλώσσες τα κάνεις πολύ πιο γρήγορα. Επειδή στην C τα περισσότερα πρέπει να φτιάξεις μόνος σου από την αρχή (με αυτά τα ελάχιστα keywords που έχεις στην διάθεσή σου), ενώ στις άλλες γλώσσες σου παρέχονται έτοιμα και μάλιστα στανταρισμένα.

 

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

 

Όταν λέω στανταρισμένες και μη στανταρισμένες βιβλιοθήκες, φαντάσου για παράδειγμα πως θες να φτιάξεις ένα γραφικό περιβάλλον στο πρόγραμμά σου. Εϊτε με C είτε με άλλη γλώσσα θα χρειαστεί να διαβάσεις και να μάθεις συγκεκριμένες ρουτίνες για να το πετύχεις (θα χρειαστεί να μάθεις το API της βιβλιοθήκης όπως είναι η ορολογία).

 

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

 

Μια αντίστοιχη βιβλιοθήκη στην C θα είναι μη-στάνταρ, γραμμένη δηλαδή από τρίτους και όχι από τους κατασκευαστές της γλώσσας. Μπορεί να ακολουθούν τα γενικότερα στάνταρ της C μπορεί όμως και όχι (συνήθως η κάθε βιβλιοθήκη στη C θέτει δικά της στάνταρ, ακόμα και στον τρόπο συγγραφής του κώδικα... το coding style εννοώ)

 

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

 

Εν ολίγοις, ξεκίνα αν είναι είτε με Python αν ενδιαφέρσαι για cross-platform είτε με VB.net αν ενδιαφέρσαι κυρίως για Windows.

Απο κάποια στιγμή και μετά θα είσαι έτοιμος να αξιολογείς και από μόνος σου τις επόμενες επιλογές σου για μετάβαση σε άλλη γλώσσα ;)

 

EDIT:

 

@hawkpilot: Η Python βασικά είναι ... πασπαρτού, κάτι σαν την C++ αλλά σε επίπεδο scripting language. Μπορείς να γράφεις από bit-arrays μέχρι web dev. Είναι multi-paradigm κι αυτή κι έχει libs, bindings και frameworks για ότι μπορείς να φανταστείς... α, σε αφήνει και να γράψεις και native C μέσα της ;)

  • Like 1
Δημοσ.

Η πολυπλοκότητα με την δυσκολία δεν είναι κατά ανάγκην συνώνυμες στο context που συζητάμε.

 

Για παράδειγμα η C που είναι η πιο κοντινή στην μηχανή, μετά την Assembly, είναι από τις πιο απλές γλώσσες που υπάρχουν σε επίπεδο συντακτικής διαχείρισης (έχει μόλις 30-32 reserved keywords). Aλλά αυτο ακριβώς την κάνει δύσκολη στο να καταφέρεις πράγματα που με "πολύπλοκες" γλώσσες τα κάνεις πολύ πιο γρήγορα. Επειδή στην C τα περισσότερα πρέπει να φτιάξεις μόνος σου από την αρχή (με αυτά τα ελάχιστα keywords που έχεις στην διάθεσή σου), ενώ στις άλλες γλώσσες σου παρέχονται έτοιμα και μάλιστα στανταρισμένα.

 

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

 

Όταν λέω στανταρισμένες και μη στανταρισμένες βιβλιοθήκες, φαντάσου για παράδειγμα πως θες να φτιάξεις ένα γραφικό περιβάλλον στο πρόγραμμά σου. Εϊτε με C είτε με άλλη γλώσσα θα χρειαστεί να διαβάσεις και να μάθεις συγκεκριμένες ρουτίνες για να το πετύχεις (θα χρειαστεί να μάθεις το API της βιβλιοθήκης όπως είναι η ορολογία).

 

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

 

Μια αντίστοιχη βιβλιοθήκη στην C θα είναι μη-στάνταρ, γραμμένη δηλαδή από τρίτους και όχι από τους κατασκευαστές της γλώσσας. Μπορεί να ακολουθούν τα γενικότερα στάνταρ της C μπορεί όμως και όχι (συνήθως η κάθε βιβλιοθήκη στη C θέτει δικά της στάνταρ, ακόμα και στον τρόπο συγγραφής του κώδικα... το coding style εννοώ)

 

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

 

Εν ολίγοις, ξεκίνα αν είναι είτε με Python αν ενδιαφέρσαι για cross-platform είτε με VB.net αν ενδιαφέρσαι κυρίως για Windows.

Απο κάποια στιγμή και μετά θα είσαι έτοιμος να αξιολογείς και από μόνος σου τις επόμενες επιλογές σου για μετάβαση σε άλλη γλώσσα ;)

 

EDIT:

 

@hawkpilot: Η Python βασικά είναι ... πασπαρτού, κάτι σαν την C++ αλλά σε επίπεδο scripting language. Μπορείς να γράφεις από bit-arrays μέχρι web dev. Είναι multi-paradigm κι αυτή κι έχει libs, bindings και frameworks για ότι μπορείς να φανταστείς... α, σε αφήνει και να γράψεις και native C μέσα της ;)

Σευχαριστώ mig για τα φώτα. Καταλαβαίνω τι μου λες.

Pilot δεν κατάλαβα χριστό! :-)

Δημοσ.

χαχαχα. Καλά τα λες. Ούτε στο δημόσιο να ήθελα να μπω...

 

...λεςκαι ξέρω τι είναι το cross-platform... Τhanks πάντως.

 

το ίδιο πράγμα δεν είναι? εννοώ πως για να πας Τρίπολη πρέπει να περάσεις απο Κόρινθο. Ετσι δεν είναι?

Από Κόρινθο ναι, από Ζιμπάμπουε όμως όχι :D

Τεσπά εγώ είναι γνωστό ότι είμαι της γνώμης "Python με τα 1000" σε αρχάριους (και μη) :D

  • 4 εβδομάδες αργότερα...
Δημοσ.

Άσε τα τρολάκια να σε κράζουν. Για μένα καλά κάνεις και θες να εμβαθύνεις. Απλά πρόσεχε μη σου φάει μεροκάματο από την κύρια δουλειά design και ώρες ξεκούρασης.

 

Όσο για το post σου είναι λιγάκι γενικό. Ας πούμε τι ακριβώς σου ήρθε στο μυαλό που θες να υλοποιήσεις ή τι σκοπό έχεις στο μυαλό σου να πετύχεις? Θες να μάθεις γενικά πως δουλεύουν οι υπολογιστές μέσω προγραμματισμού ? Θες να χρησιμοποιήσεις τις ήδη αστείρευτες δημιουργικές σου ικανότητες φτιάξεις ένα υποτυπώδες παιχνίδι ? Θες από web design να πας σε web development ?

 

Όταν το σχηματίσεις αυτό 100% στο μυαλό σου θα είναι πιο εύκολο να πάρεις απάντηση.

 

- - --EDIT-- - -

 

Αντίθετα με όσα σου γράψανε, αν θες να μάθεις κάτι θα το μάθεις. Μπορεί στην αρχή η μετάβαση από το design στο logic να σου φέρνει blackout, αλλά θα συνηθίσεις και θα γίνεις καλός αν θες. Απλά διάλεξε τι θες.

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

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

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

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

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

Σύνδεση

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

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