Θέλετε να ασχοληθείτε με τον προγραμματισμό. Το πρόβλημα όμως είναι πως υπάρχουν δεκάδες γλώσσες, και αν ρωτήσετε δέκα προγραμματιστές "Με ποια γλώσσα προγραμματισμού να ξεκινήσω?", δεν αποκλείεται να λάβετε δέκα διαφορετικές απαντήσεις. Στον οδηγό αυτό θα δούμε τις βασικότερες γλώσσες προγραμματισμού και θα σας βοηθήσουμε να κάνετε την κατάλληλη επιλογή.
Τι θέλω να προγραμματίζω?
Ο προγραμματισμός, στην ουσία του, είναι μια δημιουργική διαδικασία, με παρόμοιο τρόπο που είναι δημιουργική η ξυλουργική.
Στην ξυλουργική, όμως, είτε θέλουμε να φτιάξουμε ένα γραφείο, είτε έναν καναπέ, είτε ένα ξύλινο σπίτι, τα εργαλεία που θα χρησιμοποιήσουμε είναι λίγο-πολύ τα ίδια.
Αντίθετα, ο προγραμματισμός πχ για τη δημιουργία ιστοσελίδων δεν έχει καμία απολύτως σχέση με τον προγραμματισμό για games.
Ακόμα και στην ίδια κατηγορία, όπως τη δημιουργία ιστοσελίδων, το να προγραμματίζουμε όσον αφορά το server (back end) είναι εντελώς διαφορετικό από τον προγραμματισμό που αφορά την εμφάνιση και τη λειτουργικότητα της σελίδας (front end).
Η πρώτη επιλογή που πρέπει να κάνουμε λοιπόν είναι:
- θέλω να μάθω προγραμματισμό για μία συγκεκριμένη εφαρμογή?
ή
- ενδιαφέρομαι να μάθω γενικά τις αρχές και τη λογική του προγραμματισμού?
Θέλω να μάθω γενικά προγραμματισμό
Αν θέλουμε να αποκτήσουμε μια γενική βάση στον προγραμματισμό, ή σκοπεύουμε να μάθουμε πολλές γλώσσες, μία καλή αρχή είναι το πρόγραμμα CS50X του Harvard, το οποίο είναι διαθέσιμο δωρεάν μέσω Internet.
Η γλώσσα προγραμματισμού C
Η C είναι πιθανώς η πιο πολυχρησιμοποιημένη γλώσσα προγραμματισμού στον κόσμο - και όχι άδικα. Ουσιαστικά, η C είναι για τον μαθητευόμενο προγραμματιστή ό,τι είναι η βασική ανατομία για τον φοιτητή ιατρικής: ένα απαραίτητο θεμέλιο, όποια εξειδίκευση κι αν ακολουθήσει στην πορεία.
Η C είναι μια γλώσσα προγραμματισμού που επικοινωνεί με τον υπολογιστή σε επίπεδο "μηχανής" - για παράδειγμα μας επιτρέπει να διαχειριστούμε απευθείας ένα τομέα της μνήμης RAM.
Μέσα από τη χρήση της κατανοούμε ακριβώς πως τα προγράμματα αλληλεπιδρούν με τις συσκευές του υπολογιστή, και να επέμβουμε σε αυτόν με ένα τρόπο που δεν μας επιτρέπουν οι υψηλότερου επιπέδου γλώσσες, όπως πχ η Java.
Η C σε καμία περίπτωση και με κανένα τρόπο δεν είναι μια εύκολη γλώσσα προγραμματισμού. Είναι εξαιρετικά αυστηρή όσον αφορά τη δομή και τη σύνταξή της, και θα χρειαστεί αρκετό διάστημα μέχρι να προγραμματίσουμε κάτι που να έχει κάποια ορατή χρησιμότητα.
Για πολλούς χρήστες που μόλις ξεκινάνε, η C είναι ικανή να τους εκνευρίσει αρκετά ώστε να εγκαταλείψουν εντελώς τον προγραμματισμό.
Ταυτόχρονα όμως η διαδικασία του να μάθουμε C θα μας κάνει καλύτερους προγραμματιστές.
Θα γράφουμε κώδικα πιο αποτελεσματικό, με λιγότερα περιττά στοιχεία, και τα προγράμματά μας θα καταναλώνουν λιγότερη μνήμη και πόρους του συστήματος κατά τη λειτουργία τους.
Η γλώσσα προγραμματισμού C++
Το επόμενο λογικό βήμα αφού μάθουμε C είναι να διδαχτούμε τη μετεξέλιξή της, την C++, η οποία είναι επίσης μια εξαιρετικά διαδεδομένη γλώσσα προγραμματισμού.
Η C++ έχει κληρονομήσει ένα μεγάλο μέρος της σύνταξης της C, εισάγει όμως στοιχεία αντικειμενοστραφούς προγραμματισμού τα οποία συναντάμε στις περισσότερες σύγχρονες γλώσσες, όπως οι Java, Python, Ruby, κλπ.
Ουσιαστικά, γνωρίζοντας C και C++, στη συνέχεια είναι πολύ εύκολο να μάθουμε οποιαδήποτε άλλη γλώσσα προγραμματισμού.
Η γλώσσα προγραμματισμού Java
Η Java είναι μια αρκετά δημοφιλής πρώτη γλώσσα προγραμματισμού. Ένα μεγάλο πλεονέκτημα της Java είναι πως υπάρχουν πολλά έτοιμα παραδείγματα κώδικα που μπορούν να μας βοηθήσουν στην ανάπτυξη μιας εφαρμογής.
Δεν θα έχουμε τον έλεγχο στο υλικό του υπολογιστή όπως θα είχαμε με τη C. Όμως μας δίνει τη δυνατότητα να διαχειριστούμε το σύστημα αρχείων, όπως επίσης και τα συστήματα γραφικών και ήχου, επιτρέποντάς μας να δημιουργήσουμε προηγμένα προγράμματα.
Σαν έξτρα bonus, η Java είναι ίσως η μόνη γλώσσα προγραμματισμού που μπορεί να τρέξει σε όλες τις πλατφόρμες (Windows, Android, iOS, Linux, Mac OS X) με τον ίδιο ακριβώς κώδικα ή με μικρές αλλαγές.
Η γλώσσα προγραμματισμού Python
Η Python είναι μια επίσης δημοφιλής πρόταση για πρώτη γλώσσα προγραμματισμού, καθώς συνδυάζει την απλότητα με τις προηγμένες δυνατότητες.
Ο κώδικάς της είναι πιο εύκολο να διαβαστεί από άλλων γλωσσών, και ταυτόχρονα η σύνταξή της δεν είναι ιδιαίτερα αυστηρή - δεν θα αρχίσει να φωνάζει και να βρίζει αν ξεχάσουμε να βάλουμε το ";" στο τέλος κάποιας γραμμής.
Η Python είναι απαραίτητη για όποιον σκοπεύει να ασχοληθεί με τον τομέα της ηλεκτρονικής ασφάλειας (τη "νόμιμη" εκδοχή του Hacker), ενώ έχει χρησιμοποιηθεί για την ανάπτυξη δημοφιλών ιστοσελίδων όπως το Instagram και το Pinterest.
Η γλώσσα προγραμματισμού JavaScript
Σε αντίθεση με την C και τη C++, που συνδέονται σε μεγάλο βαθμό μεταξύ τους, η JavaScript δεν έχει σχεδόν καμία σχέση με τη Java.
Η Javascript είναι ιδανική για την ανάπτυξη ιστοσελίδων, και είναι ενσωματωμένη σε όλους τους web browsers.
Στη δική τους ανάλυση για το "με ποια γλώσσα προγραμματισμού να ξεκινήσω", η σελίδα O'Reilly Media προτείνει σαν πρώτη τη JavaScript. Οι λόγοι που αναφέρει είναι η σχετική χαλαρότητα όσον αφορά τη σύνταξη και μπορούμε να δούμε άμεσα τα αποτελέσματα του κώδικά μας.
Ίσως να μην μας διδάξει την πειθαρχία και την αποδοτικότητα με τον τρόπο που θα το κάνει η C, όμως ούτε θα μας τρομάξει και θα μας απωθήσει από την όλη ιδέα του προγραμματισμού.
Θέλω να μάθω προγραμματισμό για συγκεκριμένες εφαρμογές
Αν μας ενδιαφέρει ένα πολύ συγκεκριμένο αντικείμενο προγραμματισμού, το να μάθουμε γλώσσες που δεν έχουν σχέση με αυτό θα ήταν ένα χάσιμο χρόνου, ιδιαίτερα αν σκοπεύουμε να το επιδιώξουμε σαν καριέρα.
Αυτές λοιπόν είναι οι γλώσσες προγραμματισμού που πρέπει να γνωρίζουμε για τις κυριότερες εφαρμογές.
Προγραμματιστής εφαρμογών
Αν σκοπός μας είναι να φτιάχνουμε προγράμματα για υπολογιστές, από ένα απλό κομπιουτεράκι και μια τηλεφωνική ατζέντα μέχρι ένα ολόκληρο browser, οι γλώσσες που θα πρέπει να γνωρίζουμε είναι οι C/C++ και η Java.
Θα ωφελήσει επίσης να έχουμε υψηλό επίπεδο όσον αφορά τα μαθηματικά, έτσι ώστε να δημιουργούμε πιο αποδοτικούς αλγόριθμους.
Προγραμματιστής παιχνιδιών
Οι γερές βάσεις στη C/C++ είναι απαραίτητες για να συμμετέχουμε στην ομάδα ανάπτυξης ενός παιχνιδιού.
Επίσης θα χρειαστούμε γνώσεις OpenGL και Animation, και βεβαίως θα πρέπει να έχουμε και ένα ελάχιστο επίπεδο γραφιστικών/εικαστικών γνώσεων.
Προγραμματιστής Mobile εφαρμογών
Η Objective-C και η Java είναι οι πιο διαδεδομένες γλώσσες για την ανάπτυξη εφαρμογών για κινητά τηλέφωνα και tablet.
Προγραμματιστής Ιστοσελίδων (back-end)
Το Back-end είναι το κομμάτι της ιστοσελίδας που αφορά το server. Γλώσσες που μπορούμε να χρησιμοποιήσουμε είναι οι Python, Ruby, Perl, PHP, JAVA και .Net.
Σίγουρα θα χρειαστούμε γνώσεις σχετικά με τις βάσεις δεδομένων (πχ SQL).
Προγραμματιστής Ιστοσελίδων (front-end)
Για το κομμάτι της ιστοσελίδας που θα βλέπουν οι επισκέπτες, θα χρειαστεί να ξέρουμε HTML, CSS και JavaScript. Και, φυσικά, γνώσεις όσον αφορά τη γραφιστική και τα εικαστικά σίγουρα ωφελούν.
Θυμηθείτε: Ξεκινήστε απλά
Μην περιμένετε πως θα ξεκινήσετε σήμερα προγραμματισμό και σε ένα τρίμηνο θα έχετε φτιάξει το νέο Facebook ή το νέο Call of Duty.
Το σημαντικό είναι να ξεκινήσουμε με τα απλά, να μάθουμε καλά τις βασικές αρχές μέχρι να μας γίνουν δεύτερη φύση, και σταδιακά να προχωράμε σε πιο περίπλοκα project.
Όποια γλώσσα προγραμματισμού κι αν επιλέξουμε, πρέπει να μπουσουλήσουμε πριν περπατήσουμε, και να περπατήσουμε πριν τρέξουμε.
πηγή: www.pcsteps.gr