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

Θέλω να αρχίσω προγραμματισμό τι θα μου προτείνατε?


jimk00

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

Δεν το πίστευα οταν το άκουγα.

 

Αλλά, η Python ειναι αριστούργημα ! 

 

Ειδα μερικά ΠΥΘΩΝΟ-βιντεάκια και εντυπωσιάστηκα !

 

απλή, 

σταθερή(οχι πολλες εξαιρεσεις στους κανονες),

ευκολες δομές,

 

και επικεντρώνεσαι ευκολα στα προβλήματα που εχεις να λυσεις (και οχι τοσο πολυ στον κωδικα)

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

 

Εύγε στον Ολλανδό Guido !

 

Η python μπορει να φαινεται απλη (και φυσικα ειναι) αλλα εχει τεραστιες δυνατοτητες. 

 

Οι δυνατοτητες αυτες που πηγαζουν απο την dynamic nature της, εχει επιρεασει την εξελιξη ακομα και των παραδοσιακα static γλωσσων οπως C# και Java οι οποιες εχουν υιοθετησει δυναμικα χαρακτηριστικα στις τελευταιες τους εκδοσεις.  Features οπως lambdas, anonymous functions, linq και ιδιαιτερα η εισαγωγη του keyword dynamic στην C# την κανουν να εχει ιδιοτητες αναλογες με γλωσσες οπως python και ruby, εχωντας σαν αποτελεσμα την βελτιωση του expressibility και των reflective capabilities γενικα. 

 

Για να μαθεις σε βαθος python θα σε παρει καιρο, μην ξεγελιεσαι απο την αρχικη απλοτητα, οι δυνατοτητες της ειναι τεραστιες. Βεβαια για να ολοκληρωθεις σαν προγραμματιστης θα χρειαστεις να μαθεις αρκετες αλλες γλωσσες και το καλυτερο ειναι να διαλεξεις μια απο καθε programming paradigm, οπως για παραδειγμα:

 

Για imperative low level :  C

 

Για statically linked OOP :  C# η Java

 

Για dynamic programming:   python η ruby

 

Για functional programming:  LISP η Haskel

 

Βεβαια θα χρειαστεις οπωσδηποτε να μαθεις data structures, basic alogorithms καθως και ορισμενους AI algorithms οπως genetic algorithms και neural networks.

 

Αυτο που πρεπει να καταλαβεις ειναι οτι το computer science δεν ειναι τιποτα αλλο παρα ενας κλαδος των μαθηματικων και αν θελεις να προχωρησεις ως προγραμματιστης στα κορυφαια επιπεδα θα πρεπει να γνωριζεις καλα Applied Mathematics. Χωρις αυτα δεν θα μπορεσεις να ολοκληρωθεις....

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

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

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

 

 

Βεβαια θα χρειαστεις οπωσδηποτε να μαθεις data structures, basic alogorithms καθως και ορισμενους AI algorithms οπως genetic algorithms και neural networks.

 

Αυτο που πρεπει να καταλαβεις ειναι οτι το computer science δεν ειναι τιποτα αλλο παρα ενας κλαδος των μαθηματικων και αν θελεις να προχωρησεις ως προγραμματιστης στα κορυφαια επιπεδα θα πρεπει να γνωριζεις καλα Applied Mathematics. Χωρις αυτα δεν θα μπορεσεις να ολοκληρωθεις....

 

Το computer science έχει τεράστια διαφορά απο το software engineering, και η αγορά σήμερα θέλει software engineers περισσότερο, και όχι τόσο computer scientists. To 99% των αλγόριθμων που χρειάζονται τρελά μαθηματικά τα έχει φτιάξει κάποιος εκεί έξω. Το θέμα είναι ποιός θα σχεδιάσει ένα ολοκληρωμένο πρόγραμμα που θα τους αξιοποιεί. Γι'αυτό για μένα το να μάθει Design Patterns είναι σαφώς πιό χρήσιμο απο π.χ. Neural Networks το οποίο δεν θα χρειαστεί ποτέ σε κάποιον που σχεδιάζει π.χ. Enterprise Applications.

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

Το computer science έχει τεράστια διαφορά απο το software engineering, και η αγορά σήμερα θέλει software engineers περισσότερο, και όχι τόσο computer scientists. To 99% των αλγόριθμων που χρειάζονται τρελά μαθηματικά τα έχει φτιάξει κάποιος εκεί έξω. Το θέμα είναι ποιός θα σχεδιάσει ένα ολοκληρωμένο πρόγραμμα που θα τους αξιοποιεί. Γι'αυτό για μένα το να μάθει Design Patterns είναι σαφώς πιό χρήσιμο απο π.χ. Neural Networks το οποίο δεν θα χρειαστεί ποτέ σε κάποιον που σχεδιάζει π.χ. Enterprise Applications.

 

Πραγματι υπαρχει διαφορα μεταξυ software engineering και computer science.

 

 

Στο entreprise οπου υπαρχει μαζικη παραγωγη software, η ταση ειναι να χρησιμοποιουνται statically linked environemnts (ειδικοτερα C# η Java) καθως αυτα προσφερονται για ευκολοτερα code reviews, εχουν τυποποιημενα APIs τα οποια δινουν παραδεκτες γενικες λυσεις σε καθημερινα προβληματα και εχουν μεγαλο pool απο developers επιτρεπωντας ευκολο turn over.

 

 

Ομως οι πλεον sophisticated εφαρμογες δεν εμπιπτουν σε αυτη την κατηγορια, αλλα εχουν απαιτουν πολυ μεγαλυτερες απαιτησεις, οι οποιες καθιστουν την επιλογη των γλωσσων και γενικοτερα της τεχνολογιας που θα χρησιμοποιηθει ενα implementation detail δινοντας το βαρος στον αλγοριθμικη επιλυση, στο performance και στο scalability.

 

 

Τα design patterns που αναφερεις, ασφαλως και ειναι απαραιτητα, ειδικα σε statically linked environments, και η γνωση τους θεωρειται σε καποιο βαθμο προαπαιτουμενο σε καθε ειδους development.  Αυτο δεν αναιρει την κεφαλαιωδη σημαντικοτητα που εχει η αλγοριθμικη προσεγγιση, η οποια ειναι ισως περιορισμενη σε Enterprise περιβαλοντα αλλα κυριαρχη σε οποιαδηποτε αλλη μη trivial εφαρμογη. Οι περισσοτερες επιτυχημενες πλατφορμες στηριζονται ακριβως πανω σε καποιους αλγοριθμους οι οποιες τις εκαναν κυριαρχες του domain τους, οπως για παραδειγμα google, facebook, linkedln και τοσες αλλες.

 

 

Νομιζω οτι στο μελλον θα υπαρχει ζητηση τοσο για software engineers οσο και για computer scientists / programmers με μεγαλυτερη εξειδικευση και βαθος στα skills τους. Και οι δυο κατηγοριες ειναι απαραιτητες αλλα πιστευω οτι η δευτερη αντιπροσωπευει σαφως πιο ολοκληρωμενους προγραμματιστες απο την πρωτη και οι προτασεις μου σαφως και απευθυνονται σε αυτο το ακροατηριο.

 

 

 

 

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

Να προσθέσω και το  a byte for python που είναι μεταφρασμένο στα ελληνικά από τα παιδιά στο ubuntu.gr και είναι πάρα πολύ καλό βιβλίο για όποιον ξεκινάει με python

 

Το κατεβάζετε από εδώ. 

 

http://www.dwrean.net/2012/08/python-323-h.html?utm_source=dlvr.it&utm_medium=twitter

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

κ εγώ στο δρόμο της python και θα ήθελα τη γνώμη σας καθώς είμαι στο να παραγγείλω κάποιο βιβλίο. Έχω ξεκινήσει και διαβάζω το Learning Python (4th Edition) που προτείνει και ο pmav99,είναι οκ για αρχή πιστεύω αλλά μου φαίνεται κάπως φλύαρο. Επίσης γνωστός μου που είχε ξεκινήσει πριν χρόνια μου είπε πως είχε διαβάσει το Core Python Programming αλλά είναι πιο παλιό και δεν καλύπτει Python 3.

 

Έχετε να μου προτείνετε και εναλλακτικό να κοιτάξω?? Ψάχνω για κάποιο καλό εισαγωγικό, σε βιβλίο πάντα.

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

Το Core Python είναι το πρώτο που πήρα. Είναι καλό βιβλίο αλλά δεν καλύπτει Python3. Για αυτό προτείνω Learning Python.*

 

Αν θέλεις ένα βιβλίο που να έχει τα πάντα μέσα, το Core Python Programming, το Learning Python, αυτό του Beazley και ίσως και του Summerfield (δεν έχω προσωπική γνώμη για αυτό) σε καλύπτουν πλήρως. Οποιοδήποτε από τα 4 βασικά. Και αν έχεις ένα από αυτά δε χρειάζεσαι κάποιο από τα άλλα.

 

Μετά έχει νόημα να πας σε πιο εξειδικευμένα πράγματα (πχ σε βιβλία για την standard library, για 3ες βιβλιοθήκες κτλ, για testing, GUI, web κτλ). Αλλά για να πας παρακάτω, βεβαιώσου ότι έχεις μάθει τα βασικά. Και ξεκίνα να προγραμματίζεις παράλληλα.

 

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

 

* Για κάποιον που ξεκινάει σήμερα, νομίζω ότι δεν υπάρχει λόγος να μη μάθει κατευθείαν Python3. Είναι αρκετά πιο "ευχάριστη" και όλες οι βασικές 3rd party libraries εχουν πλέον μεταφερθεί σε Python 3.

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

Σας ευχαριστώ πολύ για τις απαντήσεις. Όλα τα links που έχετε παραθέσει μου κάνουν και είναι πολύ πλύ χρήσιμα. Απλά ήθελα να δω τις εναλλακτικές μου πριν προβώ στην παραγγελία.

 

Τελικά κατέληξα στο Learning Python το οποίο και παράγγειλα.

 

Και πάλι σας ευχαριστώ και ειδικά τον pmav99 για τις αναλυτικές του πληροφορίες.

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

  • 3 μήνες μετά...

Παιδια και εγω ψηφιζω Python, αλλα θα ηθελε ακαποιος να μας πει 2 λογια και για την Ruby οπως και για την συκριση της με την Python

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

  • 1 χρόνο αργότερα...

ΥΓ: Προσωπικά δεν σου προτείνω να αρχίσεις με "περίεργη" γλώσσα όπως Python γιατί πιο πολύ θα σε μπερδέψει το συντακτικό-λογική παρά να σε μάθει...

 

 

 

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

ΥΓ: Προσωπικά δεν σου προτείνω να αρχίσεις με "περίεργη" γλώσσα όπως Python γιατί πιο πολύ θα σε μπερδέψει το συντακτικό-λογική παρά να σε μάθει...

 

 

 

 

 

Έχω μερικές ερωτήσεις, γιατί δεν καταλαβαίνω τι εννοείς. 

 

1) Τι ορίζεις ως "περίεργη" και γιατί η Python είναι τέτοια

2) Τι έχεις ως βάση (και γιατί) σε επίπεδο συντακτικού και γιατί θα μπερδέψει η Python ένα νέο χρήστη

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

Έχω μερικές ερωτήσεις, γιατί δεν καταλαβαίνω τι εννοείς. 

 

1) Τι ορίζεις ως "περίεργη" και γιατί η Python είναι τέτοια

2) Τι έχεις ως βάση (και γιατί) σε επίπεδο συντακτικού και γιατί θα μπερδέψει η Python ένα νέο χρήστη

 

1&2) Η σύνταξη του κώδικα:

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

 

1&2) Η σύνταξη του κώδικα:

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

 

 

μπορεις να γινεις λιγο πιο συγκεκριμενος? που ειναι το προβλημα στα παραπανω στην python?

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

 

1&2) Η σύνταξη του κώδικα:

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

 

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

 

Πάντως οι ορισμοί κλάσεων, συναρτήσεων και τα υπόλοιπα που ανέφερες στη λίστα σου, δε μπορούν να γίνουν πιο φυσικά απ' όσο γίνονται σε Python και Ruby (AFAIC). Είμαι νέος στη Python και μάλλον δεν είμαι αρκετά ώριμος να επιχειρηματολογήσω περισσότερο και πιο βαθιά, αλλά είναι ό,τι βλέπω μετά από 4 χρόνια εμπειρίας σε C. Βοηθάει πολύ να γνωρίζεις και μία high-level. Μου το είπαν, το δοκίμασα, το προσυπογράφω.

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

μπορεις να γινεις λιγο πιο συγκεκριμενος? που ειναι το προβλημα στα παραπανω στην python?

 

Όχι δεν μπορώ να γίνω πιο ξεκάθαρος.

 

Δεν είπα ότι η Python έχει πρόβλημα, είπα ότι μερικές γλώσσες έχουν πολύ διαφορετική σύνταξη και λογική* και δεν τις προτείνω γιατί στην αγορά αυτές οι γλώσσες έρχονται 2ες.

 

* Όταν λέω λογική εννοώ:

 

VB

Dim p As New Person()

Java/C/C++/C#

Person p = new Person();

Αν τώρα τον πεις τον άλλον να αρχίσει με VB.NET όπου:

  • Οι μεταβλητές, τα υποπρογράμματα και οι κλάσεις δομούνται-δηλώνονται διαφορετικά
  • Δεν βάζουμε στο τέλος το ελληνικό ερωτηματικό (;)

Τότε δεν σημαίνει ότι θα ξέρει (την σύνταξη) και Java/C#/C/C++, θα χρειαστεί -λιγο- χρόνο να μάθει τις "ιδιαιτερότητες" των γλωσσών αυτών!

 

Όπως και να το πάρεις, η αλλαγή μεταξύ γλωσσών με διαφορετική σύνταξη-λογική θέλει χρόνο και κάποια Χ προσπάθεια. Εγώ απλά λέω ότι αν ξεκινήσεις προγραμματισμό με Python πχ θα είναι πιο δύσκολη η αλλαγή-μεταπήδηση.

 

Επίσης σήμερα στην αγορά εργασίας οι γλώσσες που πρέπει να ξέρεις ΠΡΩΤΑ δεν είναι η Python και Ruby και ξέρω γω τι άλλο υπάρχει, είναι η Java, .NET, C/C++.

 

Δεν αναφέρομαι καν για Web, δεν χρειάζεται!

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

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

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