Faragiri

Εκμάθηση: Προγραμματισμός υπολογιστών

Ποιο θέμα πρώτο και ποιο μετά, και γιατί ένας απόφοιτος πληροφορικής κολλάει σε όσα δεν εξετάστηκαν: το τερματικό, το git και το αγγλικό μήνυμα λάθους.

7Ενότητες
9Λεπτά ανάγνωσης
1Βάθος

Προγραμματισμός

Τι περιέχει στ' αλήθεια η εκμάθηση προγραμματισμού

Κάθε κλάδος είναι άλλη δουλειά με άλλον τρόπο να αποτύχει. Ένα ελληνικό πρόγραμμα σπουδών εξετάζει τους δύο πρώτους.

  • Μία γλώσσαΤο μικρότερο κομμάτι, και το μόνο που διδάσκει κάποιος
    • Σύνταξη
    • Τύποι δεδομένων
    • Πρότυπη βιβλιοθήκη
  • Τα εργαλεία γύρω από τη γλώσσαΕκεί χάνει τρεις εβδομάδες όποιος ξεκινάει
    • Τερματικό
    • git
    • Επεξεργαστής
    • Πακέτα
  • Παράδοση σε παραγωγήΤίποτα δεν δουλεύει μέχρι να δουλέψει αλλού
    • Εγκατάσταση
    • Καταγραφές
    • Επαναφορά
Εκμάθηση προγραμματισμού
  • Σκέψη σε βήματαΑπό μια επιθυμία σε μια σειρά πράξεων
    • Διάσπαση
    • Κατάσταση
    • Ακραίες περιπτώσεις
  • Ανάγνωση ξένου κώδικαΣτα αγγλικά, πάντα, και εκεί είναι το ταβάνι
    • Στοίβα κλήσεων
    • Τεκμηρίωση
    • Πηγαίος κώδικας

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

Ο ΑΦΜ έχει εννιά ψηφία και το ένατο δεν είναι δικό του: το παράγουν τα άλλα οκτώ. Πολλαπλασιάστε τα οκτώ πρώτα με 256, 128, 64, 32, 16, 8, 4 και 2, από αριστερά προς τα δεξιά, προσθέστε τα γινόμενα, κρατήστε το υπόλοιπο της διαίρεσης με το 11 και ύστερα το υπόλοιπο εκείνου με το 10.

Το λογιστικό γραφείο της Δήμητρας στα Τρίκαλα κόβει εβδομήντα τιμολόγια τον μήνα και δεν θέλει να στείλει κανένα σε λάθος αριθμό. Ο έλεγχος χωράει σε τρεις γραμμές σε Python:

  • total = sum(int(c) * 2 ** (8 - i) for i, c in enumerate(afm[:8]))
  • check = total % 11 % 10
  • valid = check == int(afm[8])

Τρεις αριθμοί, φτιαγμένοι για αυτή τη σελίδα, με το άθροισμα και το υπόλοιπο δίπλα τους:

  • 094273616 άθροισμα 1.634, υπόλοιπο 6, ψηφίο ελέγχου 6
  • 048519070 άθροισμα 1.286, υπόλοιπο 10, ψηφίο ελέγχου 0
  • 115362489 άθροισμα 944, υπόλοιπο 9, ψηφίο ελέγχου 9

Ο δεύτερος είναι εκείνος που κόβεται. Το υπόλοιπο με το 11 βγήκε 10, ένα ψηφίο δεν χωράει το 10, και η δεύτερη διαίρεση το κάνει μηδέν. Δύο από τα έντεκα δυνατά υπόλοιπα δίνουν ψηφίο ελέγχου μηδέν, οπότε ο ελεγκτής που σταματάει στην πρώτη διαίρεση απορρίπτει περίπου έναν στους έντεκα σωστούς ΑΦΜ και δεν το μαθαίνει ποτέ, γιατί ο πελάτης ξαναγράφει τον αριθμό και φεύγει.

Ο ίδιος έλεγχος, γραμμένος πέντε φορές

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

Στις Βάσεις δεδομένων ο ίδιος έλεγχος γίνεται περιορισμός πάνω στη στήλη, και τότε πρέπει να απαντήσει και για τις έντεκα χρονιές εγγραφών που μπήκαν πριν γραφτεί. Στην Τεχνολογία blockchain γράφεται μία φορά, δημόσια και οριστικά, και δεύτερη εγκατάσταση δεν υπάρχει. Στην Ανάπτυξη παιχνιδιών δεν έχει καμία θέση, και αυτό ακριβώς είναι το νόημα: εκεί ο περιορισμός είναι δεκαέξι χιλιοστά του δευτερολέπτου ανά καρέ, εξήντα φορές το δευτερόλεπτο.

Τα άλλα τρία θέματα δεν είναι τόποι. Τα Θεμέλια του προγραμματισμού είναι ό,τι θα κρατούσατε αν σας έπαιρναν κάθε γλώσσα που ξέρετε: τι κοστίζει ένας βρόχος, σε τι χρησιμεύει ένα σύνολο, πού κρύβεται ένα σφάλμα. Οι Γλώσσες προγραμματισμού είναι η σύνταξη μαζί με τα διακόσια πακέτα γύρω της. Και το θέμα Από τον κώδικα στην παραγωγή είναι όλα όσα συμβαίνουν αφού το πρόγραμμα δουλέψει και πριν μπορέσει να το ανοίξει κάποιος άλλος.

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

Η λάθος σειρά στην Ελλάδα λέγεται δεύτερο πιστοποιητικό

Ο Στέργιος, τρίτο έτος σε τμήμα πληροφορικής στην Ξάνθη, πέρασε τις δομές δεδομένων με 8 και τους αλγορίθμους με 9, και κρατάει και ένα πιστοποιητικό σε Java από ιδιωτικό φορέα. Τίποτα από όσα έχει γράψει δεν έχει τρέξει ποτέ σε μηχάνημα που δεν είναι το δικό του.

Το επόμενο πιστοποιητικό είναι δελεαστικό για συγκεκριμένο λόγο: έχει ημερομηνία, έχει βαθμό και τελειώνει. Ένα δημόσιο αποθετήριο δεν έχει κανένα από τα τρία. Δεν βαθμολογείται, δεν κλείνει, και για δεκαπέντε μέρες δεν δείχνει τίποτα, μέχρι που δείχνει μια διεύθυνση την οποία ανοίγει όποιος θέλει.

Άρα η σειρά που δουλεύει είναι μία γλώσσα και ένα πράγμα παραδομένο, με αυτή τη σειρά, και το δεύτερο χαρτί μετά, αν το ζητήσει κάποιος. Τα Θεμέλια δεν είναι προαπαιτούμενο μάθημα που τελειώνει πρώτο, ό,τι κι αν λέει το πρόγραμμα σπουδών. Η σχολή τα δίδαξε στα χαρτιά, και γι' αυτό ακριβώς δεν κάθισαν.

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

Έκτη εβδομάδα

Το δίλημμα μετά το πρώτο πρόγραμμα που δουλεύει

Και οι δύο δρόμοι μοιάζουν με πρόοδο. Μόνο ο ένας τελειώνει σε κάτι που ανοίγει ένας ξένος.

Ο έλεγχος του ΑΦΜ δουλεύει στο μηχάνημά σας. Τι μετά;
  • Ό,τι κάνουν σχεδόν όλοι εδώ
    Ένα ακόμη πιστοποιητικόΈχει ημερομηνία, βαθμό και τέλος, και γι' αυτό μοιάζει με πρόοδο
    • Ύλη που ξέρετε ήδη, με άλλη σφραγίδα
    • Τίποτα δικό σας δεν τρέχει ακόμη πουθενά
    • Ένα χαρτί που δεν το ζήτησε κανείς
  • Ό,τι πληρώνεται
    Το ίδιο πρόγραμμα σε μηχάνημα που δεν είναι δικό σαςΔεκαπέντε μέρες που δεν δουλεύει τίποτα, και μετά μια διεύθυνση
    • Ένα τερματικό που ανοίξατε μόνοι
    • Ένα αποθετήριο με κλειδωμένες εκδόσεις
    • Έναν σύνδεσμο που τον πατάει κάποιος άλλος

Δεν λέει ότι το πιστοποιητικό είναι λάθος. Λέει ότι δεν είναι τώρα, και όποιος το παίρνει τώρα συνήθως το παίρνει αντί για το άλλο.

Το πτυχίο αποδεικνύει τον αλγόριθμο, το τερματικό δεν το δίδαξε κανείς

Ένας απόφοιτος πληροφορικής μπορεί να αποδείξει ότι η ταξινόμηση με συγκρίσεις δεν κατεβαίνει κάτω από n log n, και να μην έχει λύσει ποτέ μια σύγκρουση συγχώνευσης. Το πρώτο εξετάζεται, το δεύτερο όχι, και το δεύτερο είναι αυτό που ζητάει η δουλειά την πρώτη εβδομάδα.

Οι τρεις γραμμές της Δήμητρας υποθέτουν πράγματα που δεν γράφονται πουθενά μέσα τους, και το πιο ελληνικό από αυτά είναι η κωδικοποίηση. Το αρχείο που βγάζει το λογιστικό πρόγραμμα του γραφείου δεν είναι UTF-8, είναι Windows-1253, και τα ελληνικά μέσα του γίνονται σκουπίδια σε κάθε μηχάνημα που υποθέτει το αντίθετο. Το μήνυμα που γυρίζει είναι UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 34, και το byte 0xe1 είναι το άλφα σε Windows-1253. Είναι μία παράμετρος στο άνοιγμα του αρχείου, δεν είναι Python, και πρέπει να ισχύει πριν τρέξει η πρώτη γραμμή.

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

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

Το ταβάνι είναι τα αγγλικά, και το λεξιλόγιο είναι διπλό

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

Το δεύτερο μισό του ίδιου προβλήματος είναι εσωτερικό. Τα ελληνικά έχουν πλήρη τεχνική ορολογία, τη χρησιμοποιούν οι εξετάσεις και δεν τη χρησιμοποιεί το γραφείο. Ο μεταγλωττιστής είναι ο compiler, το αποθετήριο είναι το repository, ο βρόχος είναι το loop. Ο αναγνώστης που έρχεται από ΕΠΑΛ ή από τμήμα πληροφορικής ξέρει την ελληνική λέξη, ο αναγνώστης που δουλεύει ξέρει την αγγλική, και ψάχνουν με αυτήν που ξέρουν.

Η κίνηση δεν είναι μάθημα αγγλικών. Είναι να διαβάζετε ολόκληρο το μήνυμα αντί να το επικολλάτε κάπου αλλού, γιατί το μήνυμα σχεδόν πάντα λέει και τι περίμενε και τι βρήκε. Ένας βοηθός κώδικα το μεταφράζει σε δευτερόλεπτα, και εκεί ακριβώς είναι η παγίδα: όταν το μεταφράζετε, χάνετε τη μόνη επανάληψη που θα το έκανε αναγνωρίσιμο την επόμενη φορά.

Το κόλλημα

Η ύλη του μαθήματος που κανείς δεν είπε ότι είναι μάθημα

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

Εκεί που σας έφτασαν τέσσερις μήνεςΣύνταξη, βρόχοι, συναρτήσεις, κάτι καινούριο κάθε εβδομάδα
  1. 01Το τερματικό, και ότι η διαδρομή είναι πράγμαΑπό πού τρέχει μια εντολή ορίζει τι μπορεί να βρει
  2. 02Η κωδικοποίηση του αρχείου, δηλωμένη μία φοράWindows-1253 από το λογιστικό, UTF-8 παντού αλλού
  3. 03Ένα αρχείο κλειδώματος, ώστε οι εκδόσεις να είναι επιλογήΚώδικας άλλων, κλειδωμένος αντί για τον πιο πρόσφατο
  4. 04Ένα μηχάνημα που δεν το ρυθμίσατε εσείςΔεν έχει πάνω του κανένα από τα τέσσερα χρόνια σας
Το μηχάνημα ενός ξένου, να τρέχει το πρόγραμμά σαςΟ ίδιος άνθρωπος, άλλο μάθημα, πρώτη εβδομάδα του

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

Τι ανοίγετε το 2026, και τι κοστίζει σε ευρώ

Το VS Code είναι ο προεπιλεγμένος επεξεργαστής από το 2016 περίπου και είναι δωρεάν. Αντικατέστησε το Sublime Text και το Atom, και το Atom αρχειοθετήθηκε τον Δεκέμβριο του 2022, τέσσερα χρόνια αφότου ο κατασκευαστής του αγοράστηκε από τον κατασκευαστή του VS Code. Το λάθος είναι τριάντα επεκτάσεις εγκατεστημένες πριν γραφτεί οτιδήποτε: κάθε μία μπορεί να χαλάσει, και καμία δεν είναι αυτό που μαθαίνεται.

Το git γράφτηκε το 2005 για τον πυρήνα του Linux, αντικατέστησε το Subversion και τη συνήθεια να αντιγράφει κανείς έναν φάκελο πριν αλλάξει κάτι, και είναι δωρεάν. Η εντολή που λείπει από ένα πτυχίο είναι απλή: το git merge --abort γυρίζει τον κλάδο εκεί που ήταν πριν τη συγχώνευση, και αφαιρεί τον φόβο που κάνει κάποιον να κλωνοποιεί ξανά το αποθετήριο και να επικολλά τις αλλαγές του με το χέρι.

Ένας βοηθός κώδικα μέσα στον επεξεργαστή είναι η μεγαλύτερη αλλαγή σε αυτή τη δουλειά από το 2022. Αντικατέστησε το ψάξιμο για κάποιον που είχε ήδη κάνει την ίδια ερώτηση. Είναι πολύ καλός σε κώδικα που θα γράφατε και μόνοι σας, πιο αργά, και αυτός είναι ο περισσότερος κώδικας. Είναι με σιγουριά λάθος σε ό,τι είναι ασυνήθιστο, και το γράφει με την ίδια άνεση. Ένας αρχάριος δεν ξεχωρίζει ακόμη ποια από τις δύο περιπτώσεις βλέπει, επειδή το να τις ξεχωρίζει είναι το ίδιο το μάθημα. Η συνήθεια που επιβιώνει είναι να ζητάτε εξήγηση για τη γραμμή που δεν γράψατε και μετά να ελέγχετε την εξήγηση πάνω σε κάτι που τρέχει, κίνηση ίδια με τη Διατύπωση προτροπών.

Οι δωρεάν βαθμίδες είναι αληθινές και φτάνουν για να μάθει κανείς. Η συνδρομή των είκοσι δολαρίων φτάνει στο ελληνικό ταμείο κοντά στα 24 ευρώ, επειδή ο ΦΠΑ 24% μπαίνει πάνω στην τιμή καταλόγου, και η ακριβής τιμή είναι αυτή που δείχνει το ταμείο και όχι αυτή που λέει ένα άρθρο. Πάνω σε καθαρές αποδοχές γύρω στα 1.000 ευρώ, πληρωμένες δεκατέσσερις φορές τον χρόνο, είναι περίπου το ένα τεσσαρακοστό ενός μισθού, κάθε μήνα.

Το τέταρτο εργαλείο δεν είναι επεξεργαστής, απαντάει στο κόλλημα. Για την Python το uv βγήκε το 2024, είναι δωρεάν και ανοιχτού κώδικα, και αντικατέστησε τα pip, virtualenv και pyenv, τρία εργαλεία για μία δουλειά. Εγκαθιστά την έκδοση της γλώσσας που ζητάει το έργο και κλειδώνει κάθε πακέτο σε ένα αρχείο κλειδώματος, ώστε το μηχάνημα που κλωνοποιεί το αποθετήριο να παίρνει ό,τι είχατε εσείς και όχι ό,τι είναι πιο καινούριο σήμερα.

Το πέμπτο δεν γράφει κώδικα, κλείνει το παράδειγμα αυτής της σελίδας. Το VIES της Ευρωπαϊκής Επιτροπής επιβεβαιώνει ότι ένας αριθμός ΦΠΑ υπάρχει και ανήκει σε ενεργή επιχείρηση, δωρεάν και χωρίς λογαριασμό, και ο ελληνικός αριθμός ΦΠΑ είναι το EL μπροστά από τον ΑΦΜ. Αντικατέστησε το τηλεφώνημα στην εφορία της άλλης χώρας. Ένα έγκυρο άθροισμα ελέγχου δεν σημαίνει ότι ο ΑΦΜ υπάρχει, και αυτή τη διαφορά την κλείνει μόνο μια αναζήτηση σε μητρώο.

Το σήμα

Ο ίδιος έλεγχος σε τέσσερις καταστάσεις, με λιγότερο εσάς μέσα του κάθε φορά

Ανάμεσα στο πρώτο και στο τελευταίο καρέ δεν αλλάζει καμία γραμμή. Αλλάζει πόσο ακουμπάει ακόμη στο δικό σας μηχάνημα.

  1. 01Τρέχει όταν πατάτε το κουμπίΜέσα στον επεξεργαστή, που τα εγκατέστησε όλα για εσάς
  2. 02Τρέχει σε τερματικό που ανοίξατεΊδιο μηχάνημα, τίποτα δεν βοηθάει
  3. 03Τρέχει από καθαρό κλώνοΟ πρώτος τίμιος απολογισμός όσων δεν γράψατε πουθενά
  4. 04Τρέχει εκεί που δεν συνδεθήκατε ποτέΤο καρέ στο οποίο το πρόγραμμα παύει να είναι δικό σας

Τα καρέ δεν απέχουν ίσα στον χρόνο. Το τελευταίο κοστίζει συνήθως περισσότερο από τα τρία προηγούμενα μαζί, και μια λωρίδα δεν μπορεί να το δείξει.

Το σήμα των τριών μηνών είναι ξένο αποθετήριο σε ένα απόγευμα

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

Στον έναν μήνα αυτό αποτυγχάνει με τρόπο που δεν περιγράφεται: κάτι δεν δούλεψε και δεν υπάρχει όνομα για το ποιο. Στους τρεις μήνες ή τρέχει, ή δεν τρέχει και ονομάζετε το βήμα που το σταμάτησε. Η γλώσσα είναι μία έκδοση πίσω από αυτήν που ζητάει το έργο. Λείπει μια βιβλιοθήκη του συστήματος πάνω στην οποία μεταγλωττίζονται τα πακέτα. Περιμένει βάση δεδομένων να απαντάει στη θύρα 5432 και δεν ακούει κανείς εκεί. Το να ονομάσετε το βήμα είναι η δεξιότητα, και η διόρθωση μετά είναι μια αναζήτηση.

Ένα μικρότερο σήμα ελέγχεται σήμερα το απόγευμα. Γράψτε τον έλεγχο του ΑΦΜ και δοκιμάστε τον με το 048519070. Αν σας τον κόβει, ξέρετε ακριβώς ποια γραμμή φταίει και γιατί, και αυτό είναι άλλο πράγμα από το να ξέρετε ότι κάτι φταίει.

Από πού μπαίνετε, και τι αργεί περισσότερο απ' όσο πρέπει

Σχεδόν όλοι ξεκινούν από τα Θεμέλια και τις Γλώσσες, και ο τίμιος διαχωρισμός τους είναι ότι το ένα επιβιώνει μιας αλλαγής γλώσσας και το άλλο είναι η αλλαγή. Πάρτε το δεύτερο μόνο όσο χρειάζεται για να φανεί το πρώτο. Η παραγωγή ανοίγει νωρίτερα απ' όσο φαίνεται λογικό, επειδή ο έλεγχος εκδόσεων, οι δοκιμές και μια εγκατάσταση μαθαίνονται πολύ πιο εύκολα πάνω σε τρεις γραμμές παρά πάνω σε τέσσερις χιλιάδες.

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

Ο Ελεύθερος επαγγελματίας είναι το θέμα που βρίσκουν οι περισσότεροι μετά, επειδή ένας ελληνικός μισθός προγραμματιστή και ένας ξένος δεν είναι ο ίδιος αριθμός, και η διαφορά περνάει μέσα από ένα αποθετήριο που διαβάζει κάποιος ο οποίος δεν θα σας γνωρίσει ποτέ. Τα κινητά, τα παιχνίδια και το blockchain ανοίγουν όταν υπάρχει λόγος: μια τσέπη, δεκαέξι χιλιοστά του δευτερολέπτου, ή ένα κατάστιχο που δεν θέλετε να μπορεί να το διορθώσει κανείς. Αυτός ο πυλώνας έχει τα περισσότερα υποθέματα από τους οκτώ του χάρτη όπου η γνώση έχει σχήμα, και ο λόγος είναι η ίδια η διαίρεση: ό,τι λύθηκε στον ιστό ξαναλύνεται στο κινητό.

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

Δίπλα σε αυτό

Πάνω από αυτό