O προγραμματισμός (υπολογιστών) είναι μια σειρά από γραπτές εντολές, που δίνονται στον υπολογιστή για να πραγματοποιήσει μια ενέργεια. Οι εντολές αυτές γράφονται με κάποια γλώσσα προγραμματισμού σε μορφή κειμένου. Το κείμενο αυτό λέγεται πηγαίος κώδικας.
Ο πηγαίος κώδικας, είναι αυτός που όταν τον τρέξουμε στον υπολογιστή θα μας εμφανίσει την εφαρμογή, το πρόγραμμα, τη σελίδα ή οτιδήποτε άλλο περιέχει ο κώδικας.
Σκοπός μιας γλώσσας προγραμματισμού, είναι να πάρει ένα κείμενο (πηγαίος κώδικας) το οποίο είναι κατανοητό στον άνθρωπο και να το μετατρέψει έτσι ώστε να είναι κατανοητό από τον υπολογιστή. Ένα πρόγραμμα μπορεί να κάνει οτιδήποτε.
Μπορεί να εμφανίζει ένα απλό μήνυμα στην οθόνη ή και διαδραστικές φόρμες.
Μπορεί να ανοίγει πλαίσια που εμφανίζουν εικόνες ή παίζουν βίντεο.
Όσο απλό ή περίπλοκο και αν είναι ένα πρόγραμμα, γράφεται πάντα με μία γλώσσα προγραμματισμού.
Οι πιο γνωστές γλώσσες προγραμματισμού είναι οι C, C++, C#, Basic, Java, JavaScript και Python.
Ας δούμε, λοιπόν, κάποια παραδείγματα πηγαίου κώδικα με σκοπό να κάνουν τον υπολογιστή να εμφανίζει το μήνυμα “Hello, World” :
#include
int main(void)
{
printf("Hello, World");
}
#include
using namespace std;
int main()
{
cout << "Hello, World!";
return 0;
}
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
class HelloWorldApp
{
public static void main(String[] args)
{
System.out.println("Hello, World!");
}
}
Module Program
Sub Main()
Console.Write("Hello, World")
End Sub
End Module
document.write("Hello World");
body>
html>
print("Hello, World")
Ποια είναι η καλύτερη γλώσσα προγραμματισμού;
Ο προγραμματισμός μπορεί να γίνει εξίσου καλά ανεξάρτητα απ τη γλώσσα που είναι γραμμένος ο πηγαίος κώδικας. Οι γλώσσες προγραμματισμού διαφέρουν μεταξύ τους, όμως αυτό από μόνο του δεν κάνει τη μία καλύτερη απ την άλλη.
Αν αντί για γλώσσες προγραμματισμού συγκρίναμε μάρκες αυτοκινήτων, τότε θα λέγαμε ότι είναι καλύτερη η Ferrari ή το Jeep;
Η απάντηση είναι πως εξαρτάται από τη χρήση. Αν το θέλουμε για αγώνες πίστας, είναι η Ferrari.
Αν όμως το θέλουμε για τα βουνά είναι το Jeep.
Κάθε γλώσσα προγραμματισμού μπορεί να καλύψει ορισμένους μόνο τομείς και όχι όλους.
Αυτό που πρέπει να ρωτήσουμε για να βρούμε ποια γλώσσα πρέπει να χρησιμοποιήσουμε για να γίνει ο προγραμματισμός υπολογιστών που θέλουμε είναι:
- Τι εφαρμογή θέλουμε να φτιάξουμε;
Αν θέλουμε να φτιάξουμε εφαρμογή windows, θα πρέπει να είναι με γλώσσα C, C++, C#, Java ή Basic. Αν θέλουμε να φτιάξουμε ιστοσελίδα, πρέπει να χρησιμοποιηθεί JavaScript, PHP ή ASP. - Πού θα τρέχει η εφαρμογή;
Θα τρέχει σε TV, πλυντήριο, tablet ή κάτι άλλο;
Σε ποια γλώσσα προγραμματισμού τα προγραμματίζουμε αυτά; - Ποια γλώσσα προγραμματισμού διαθέτουμε;
Τα πιο εύχρηστα περιβάλλοντα ανάπτυξης λογισμικού (είναι προγράμματα που χρησιμοποιούνται για να φτιάξουμε εφαρμογές ή άλλα προγράμματα) συνήθως δε διατίθενται δωρεάν.
Αν κάποιο είναι στη διάθεση μας δωρεάν είτε μέσω κάποιας σχολής είτε στη δουλειά μας, τότε ας αποφύγουμε τα περιττά έξοδα και ας μάθουμε αυτήν, εφόσον κάνει τη δουλειά που θέλουμε. - Ποια γλώσσα προγραμματισμού ξέρουμε;
Αν ξέρουμε ήδη μια γλώσσα προγραμματισμού, θα είναι εύκολο να τη χρησιμοποιήσουμε όπως θέλουμε.
Από ποια γλώσσα προγραμματισμού πρέπει να ξεκινήσει κάποιος;
Όποια γλώσσα προγραμματισμού υπολογιστών και να επιλέξουμε για πρώτη, πρέπει να φροντίσουμε να τη μάθουμε καλά. Έτσι, θα μπορούμε να μάθουμε και μια δεύτερη ευκολότερα.
Αυτό που πρέπει να ξέρουμε, είναι πως ο προγραμματισμός υπολογιστών έχει κάποιες βασικές αρχές όπως:
- Αλγόριθμοι: Είναι ο τρόπος σκέψης σχετικά με το πώς να γίνει κάτι. Π.χ μια ταξινόμηση τιμών ή μια εύρεση τιμής.
- Μεταβλητές: Είναι μια τιμή στη RAM, η οποία έχει όνομα. Η τιμή αυτή μπορεί να αλλάξει (γι’ αυτό λέγεται μεταβλητή).
- Τύποι Δεδομένων: Είναι το είδος τιμής που έχει μια μεταβλητή. Είναι ακέραιος αριθμός; Είναι πραγματικός αριθμός; Είναι ακολουθία χαρακτήρων όπως ένα ονοματεπώνυμο;
- Τελεστές: Είναι τα διάφορα σύμβολα που συναντώνται στον πηγαίο κώδικα ενός προγράμματος όπως είναι τα: + – * / , ^ < > =
- Δομές Επιλογής: Είναι ο μηχανισμός που καθορίζει αν θα πρέπει να εκτελεστεί ένα τμήμα κώδικα ή όχι.
- Δομές Επανάληψης: Είναι ο μηχανισμός που καθορίζει πόσες φορές θα εκτελεστεί ένα τμήμα κώδικα.
- Δομές Δεδομένων: Είναι σύνολα από μεταβλητές. Δηλαδή πολλές μεταβλητές πακεταρισμένες σε μία. Ορισμένες δομές δεδομένων χρησιμοποιούν έξυπνους τρόπους αποθήκευσης των δεδομένων, όπου η αναζήτηση και η ταξινόμηση των τιμών γίνεται ταχύτερα. Ο προγραμματισμός υπολογιστών με της κατάλληλες δομές δεδομένων, γίνεται και πιο εύκολο και πιο γρήγορο.
- Συναρτήσεις: Είναι ένα τμήμα κώδικα το οποίο έχει όνομα. Χαρακτηρίζεται και ως μίνι πρόγραμμα γιατί τηρεί τις βασικές αρχές ενός προγράμματος που είναι:
Είσοδος (παράμετροι συνάρτησης) Επεξεργασία (κώδικας συνάρτησης) Έξοδος (επιστρεφόμενη τιμή συνάρτησης) - Εξαιρέσεις: Είναι ένας μηχανισμός χειρισμού σφαλμάτων που προκύπτουν κατά τον χρόνο εκτέλεσης ενός προγράμματος. Τέτοια σφάλματα μπορεί να είναι μια διαίρεση με το 0, μια πολύ μεγάλη τιμή (overflow), ανεπαρκής μνήμη RAM στο σύστημα, ανεπαρκής αποθηκευτικός χώρος κλπ.
- Αντικείμενα: Είναι ένας τύπος δεδομένων που ορίζεται από τον προγραμματιστή.
- Δείκτες: Μια μεταβλητή χαρακτηρίζεται από 2 πράγματα: Το περιεχόμενο της (δηλαδή την τιμή της) και σε ποια θέση στη μνήμη RAM είναι. Η θέση αυτή είναι ένας ακέραιος αριθμός. Έτσι λέμε ότι στη θέση 17.920.064 υπάρχει η τιμή 10. Δείκτης Είναι μια μεταβλητή όπου για περιεχόμενο έχει τη διεύθυνση μνήμης μιας άλλης μεταβλητής. Έχοντας πλέον πρόσβαση σε αυτήν τη διεύθυνση μνήμης μπορεί να αλλάξει η τιμή της άλλης μεταβλητής.
Τι πρέπει να ξέρουμε πριν διαλέξουμε κάποια γλώσσα προγραμματισμού;
Η C++. Καλύπτει όλες τις βασικές έννοιες. Έχει αντικειμενοστρεφή προγραμματισμό (δηλαδή υποστηρίζει αντικείμενα κάτι που δεν κάνει η C) και επιπλέον κάνει εκτενή χρήση των δεικτών.
Οι σύγχρονες γλώσσες προγραμματισμού δε χρησιμοποιούν πια δείκτες.
Πολλές όμως από τις λειτουργίες τους βασίζονται στους δείκτες.
Η C++ δεν κάνει αυτόματη διαχείριση μνήμης RAM. Αυτό γίνεται από τον προγραμματιστή χειροκίνητα. Δηλαδή ο προγραμματιστής ζητάει μνήμη από το λειτουργικό σύστημα όταν τη χρειάζεται και την επιστρέφει πίσω όταν δεν τη χρειάζεται πια.
Αν προσπαθήσει να έχει πρόσβαση σε μνήμη που έχει επιστρέψει πίσω, τότε το πρόγραμμα θα εμφανίσει σφάλμα και θα τερματιστεί απότομα (θα κρασάρει).
Αν δεν την επιστρέψει πίσω τότε καταναλώνεται μνήμη RAM που δε χρησιμοποιείται πουθενά. Οι πιο εξελιγμένες γλώσσες προγραμματισμού όπως είναι η Java, C#, Python, διαχειρίζονται τη μνήμη αυτόματα μέσω ενός μηχανισμού που λέγεται garbage collector, και ο προγραμματιστής απαλλάσσεται από αυτή την ευθύνη.
Μαθαίνοντας όμως C++, μπορούμε να καταλάβουμε τι γίνεται στο παρασκήνιο σε αυτές της γλώσσες.
Συμπέρασμα:
Αν πρέπει αναγκαστικά να προτείνουμε μία γλώσσα προγραμματισμού, αυτή θα είναι η C++.
Έτσι θα ξέρουμε τι συμβαίνει στο βάθος του κώδικα.
Αν θέλουμε κάτι λιγότερο πολύπλοκο και πιο εξελιγμένο τότε η Python θα μας διευκολύνει.
Ξεκινάμε από τα απλά. Για να φτιάξουμε πολύπλοκα προγράμματα θα χρειαστούμε γνώσεις που δε μαθαίνονται γρήγορα. Ακόμα και αν χρησιμοποιήσουμε έτοιμες βιβλιοθήκες που έχουνε τα προγράμματα προγραμματισμού, δε θα μπορέσουμε να της διαχειριστούμε αν δεν ξέρουμε τα βασικά. Ξεκινάμε από απλά προγράμματα κονσόλας (δηλαδή μαύρη οθόνη χωρίς καθόλου γραφικά) και μετά πάμε παρακάτω.
Τέλος, πρέπει να θυμόμαστε πως ο προγραμματισμός υπολογιστών θέλει πάνω από όλα, υπομονή!
Καλή αρχή!
Αναστάσιος Ευθυμίου
Για το SpeedTest