Ο προγραμματισμός υπολογιστών είναι μια πολύ δημιουργική ενασχόληση, πέρα από επάγγελμα. Εάν ξεκινήσαμε να προγραμματίζουμε και χρειαζόμαστε εξάσκηση ή είμαστε πιο πεπειραμένοι χομπίστες, κάποια στιγμή ίσως αναζητήσουμε το επόμενό μας project. Δείτε στο ακόλουθο άρθρο επτά ενδιαφέρουσες ιδέες για προγραμματισμό, με τις οποίες μπορούμε να ασχοληθούμε στον ελεύθερό μας χρόνο.
Προτάσεις συνεργασίας
Τα νέα άρθρα του PCsteps
Γίνε VIP μέλος στο PCSteps
Projects που περιέχουν προγραμματισμό
Αρκετός κόσμος έχει στο μυαλό του τον προγραμματισμό υπολογιστών σαν μια δύσκολη διαδικασία που γίνεται από επαγγελματίες. Ωστόσο, όπως αναφέραμε και σε προηγούμενο άρθρο, αυτό είναι απλά ένα στερεότυπο.
Εάν λοιπόν έχουμε αρχίσει να γράφουμε κώδικα, υπάρχουν διάφορες ιδέες για προγραμματισμό που μπορούν να ανεβάσουν το επίπεδο εμπειρίας μας.
Arduino
Το Arduino είναι ένας μικροελεγκτής ανοικτού κώδικα, που δημιουργήθηκε το 2003 από μαθητές του ινστιτούτου Interaction Design Ivrea της Ιταλίας.
Ο σκοπός αυτής της πλακέτας ήταν να αποτελέσει ένα απλό και προσιτό οικονομικά εργαλείο εκμάθησης προγραμματισμού ηλεκτρονικών κυκλωμάτων.
Ωστόσο, λόγω των ισχυρών χαρακτηριστικών του, έγινε ανάρπαστο και σε πιο έμπειρους χομπίστες του χώρου.
Αυτά τα χαρακτηριστικά είναι η ανοικτού κώδικα διανομή του, η επεκτασιμότητά του σε επίπεδο hardware, και η ταχύτητα στην ανάπτυξη των εφαρμογών που προσφέρει.
Συνδυάζοντας γνώσεις ηλεκτρονικής, προγραμματισμού, και ενίοτε μηχανικής, με την συγκεκριμένη πλατφόρμα μπορούμε να κατασκευάσουμε διαφόρων ειδών ευφάνταστα projects.
Από το να φτιάξουμε και να προγραμματίσουμε τις λειτουργίες ενός DIY drone με κάμερα…
…μέχρι και να δημιουργήσουμε την δική μας κλειδαριά δακτυλικών αποτυπωμάτων. Όπως αντιλαμβανόμαστε, οι ιδέες για προγραμματισμό που μπορούν να προκύψουν στην πλατφόρμα του Arduino είναι αμέτρητες και το μόνο εμπόδιο είναι η ίδια μας η φαντασία.
Για να αρχίσουμε να πειραματιζόμαστε με την συγκεκριμένη πλακέτα, μπορούμε να προμηθευτούμε ένα Arduino Starter Kit.
Στην αγορά κυκλοφορούν διάφορες παραλλαγές, ανάλογα με τα επιμέρους εξαρτήματα που περιλαμβάνουν τα Kits.
Μερικά από αυτά μπορεί να είναι μια οθόνη LCD, τηλεκοντρόλ, φώτα LED, αισθητήρες θερμοκρασίας/φωτιάς/ήχου/υπέρυθρων, ακόμα και κινητήρες.
Η γλώσσα προγραμματισμού του Arduino βασίζεται στη γλώσσα Wiring, που είναι επηρεασμένη από την C/C++. Το Wiring framework είναι ένα open-source πλαίσιο ανάπτυξης προγραμμάτων για μικροελεγκτές.
Το επίσημο περιβάλλον ανάπτυξης του Arduino (IDE) υποστηρίζει τα δημοφιλέστερα λειτουργικά και διατίθεται ως desktop αλλά και web εφαρμογή.
Εδώ να τονίσουμε ότι αν δεν επιθυμούμε να γράφουμε τον κώδικα, μπορούμε να εργαστούμε σε ένα οπτικό περιβάλλον επεξεργασίας.
Χρησιμοποιώντας τα εργαλεία Snap4Arduino ή το S4A (μια τροποποίηση της οπτικής γλώσσας Scratch) ως επικάλυμμα του IDE, έχουμε τη δυνατότητα να επικοινωνούμε με την πλακέτα.
Βέβαια όσο πιο προχωρημένες και σύνθετες είναι οι εργασίες μας, η αξιοποίηση του αρχικού περιβάλλοντος ανάπτυξης και των βιβλιοθηκών του είναι μονόδρομος.
Κλείνοντας, να επισημάνουμε ότι το Arduino διαθέτει μια μεγάλη κοινότητα χρηστών όπου μπορούμε να καταφεύγουμε, προκειμένου να μας βοηθήσουν ή να λύσουν απορίες μας.
Εάν θέλουμε στο μέλλον να τεστάρουμε και τις δεξιότητές μας, έχουμε τη δυνατότητα να λάβουμε μέρος και σε Arduino contests.
Raspberry Pi
Αν μας ενδιαφέρει ο προγραμματισμός υπολογιστών σε ένα ολοκληρωμένο σύστημα χωρίς να μπλέκουμε με αντιστάσεις, τρανζίστορ, και ηλεκτρονικά κυκλώματα, τότε το Raspberry Pi αξίζει την προσοχή μας.
Η συγκεκριμένη πλατφόρμα κυκλοφόρησε το 2011 και είναι ένας πλήρης υπολογιστής σε μέγεθος τσέπης.
Ο σκοπός των δημιουργών του ήταν να κατασκευαστεί ένας μικροσκοπικός και οικονομικός υπολογιστής υψηλών δυνατοτήτων, για να μαθαίνουν πληροφορική οι νέοι.
Η τελευταία γενιά αυτού του μικροϋπολογιστή είναι το Raspberry Pi 3 Model B, και τα αναλυτικά χαρακτηριστικά του είναι τα ακόλουθα:
- Chipset: Broadcom BCM2837
- Επεξεργαστής: ARM Cortex-A53 1.2 GHz 64-bit quad-core
- Κάρτα γραφικών: VideoCore IV 3D graphics core @ 250 Mhz
- Μνήμη RAM: 1 GB
- Αποθήκευση: Κάρτα Micro SD
- Δικτύωση: 10/100 Ethernet, 2.4GHz 802.11n wireless, Bluetooth 4.1
- Θύρες/Ακροδέκτες: HDMI, 3.5mm jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI), 40 GPIO pins
Εκτός από το βασικό μοντέλο, θα βρούμε και άλλες εκδόσεις που διαφοροποιούνται στα τεχνικά χαρακτηριστικά, στο μέγεθος, και στην τιμή.
Όπως για παράδειγμα το Raspberry Pi Zero, που έχει αξιοσημείωτες δυνατότητες σε μέγεθος σπιρτόκουτου.
Τα λειτουργικά συστήματα που υποστηρίζει το Raspberry Pi είναι στην πλειοψηφία τους διανομές Linux. Ενδεικτικά να αναφέρουμε μερικά από αυτά:
Η εγκατάσταση των λειτουργικών γίνεται μια εύκολη διαδικασία μέσα από την εφαρμογή NOOBS.
Οι γλώσσες προγραμματισμού που υποστηρίζει η πλατφόρμα είναι πολλές, με κύριες τις Scratch και Python, αφού όπως προαναφέραμε το Raspberry Pi επικεντρώνεται στους αρχάριους χρήστες.
Fun fact: Το όνομα Raspberry (βατόμουρο) το εμπνεύστηκαν από τις εταιρείες πληροφορικής που χρησιμοποίησαν φρούτα για το όνομά τους. Όπως η Apple, η Apricot computers, και η Tangerine computer systems.
Το Pi προέρχεται από την Python, διότι η αρχική ιδέα ήταν να προγραμματίζουμε στον συγκεκριμένο υπολογιστή με αυτήν την γλώσσα.
Στα έξι χρόνια κυκλοφορίας του Raspberry Pi, πολλές ιδέες για προγραμματισμό σε αυτό το σύστημα έγιναν επιτυχημένα projects. Η δημιουργία της DIY φορητής παιχνιδομηχανής Gamegirl είναι μια από τις κατασκευές που ξεχώρισαν.
Εάν ενδιαφερόμαστε για ακόμα περισσότερες ιδέες για προγραμματισμό στο Raspberry, μπορούμε να διαβάζουμε δωρεάν το εξαιρετικό ηλεκτρονικό περιοδικό MagPi.
Δημιουργία ηλεκτρονικών παιχνιδιών
Τα βιντεοπαιχνίδια αποτελούν αναπόσπαστο κομμάτι της οικιακής αλλά και της φορητής ψυχαγωγίας. Πίσω από τον φανταστικό κόσμο τους κρύβεται ένα πλήθος εντολών και γραμμών κώδικα που είναι αποτέλεσμα πολύωρης εργασίας.
Μια από τις πιο διασκεδαστικές ιδέες για προγραμματισμό, είναι να κατασκευάσουμε τα δικά μας video games. Άλλωστε, η πλατφόρμα του Steam κατακλύζεται από παιχνίδια ανεξάρτητων δημιουργών (Indie), που αρκετά από αυτά γνώρισαν και σημαντική επιτυχία.
Στην περίπτωση που τώρα ξεκινάμε να μαθαίνουμε προγραμματισμό, αλλά θέλουμε να ασχοληθούμε με τη δημιουργία παιχνιδιών, μπορούμε να δουλέψουμε με οπτικό προγραμματισμό.
Εδώ και μερικά χρόνια, έχουν κυκλοφορήσει μηχανές παιχνιδιών (game engines) που μας επιτρέπουν να φτιάξουμε βιντεοπαιχνίδια χωρίς να γράψουμε κώδικα.
Εάν όμως θέλουμε να μπούμε σε βαθιά νερά για να κατασκευάσουμε ένα τρισδιάστατο open-world multiplayer για παράδειγμα, χρειαζόμαστε ισχυρότερα frameworks.
Σε αυτήν την περίπτωση θα χρειαστούμε πιο προχωρημένες μηχανές, όπως οι Unity, Unreal, CryEngine, καθώς και καλή γνώση της γλώσσας C++/C#.
Εκτός όμως από την ανάπτυξη video games, μπορούμε να ασχοληθούμε και με το game modding.
Game modding
Game modding ονομάζεται η τροποποίηση ενός βιντεοπαιχνιδιού που έχει κυκλοφορήσει, με οποιονδήποτε τρόπο και σε κάθε πτυχή του. Από τις μικρές γραφιστικές αλλαγές και τη δημιουργία custom maps, μέχρι την κατασκευή ενός νέου παιχνιδιού μέσα από το πρωτότυπο.
Οι σκοπός των αλλαγών μπορεί να οφείλεται στην ανάγκη των fans για ανανέωση του αρχικού τίτλου ή στην επιθυμία για νέες εμπειρίες παιχνιδιού μέσα από ένα ριζικό μετασχηματισμό.
Πιο αναλυτικά, υπάρχουν διάφορα επίπεδα τροποποίησης:
- Add-on: Τα Add-ons είναι μικρές αλλαγές μέσα σε ένα video game με την έννοια της προσθήκης. Αυτές οι προσθήκες μπορεί να είναι ένας νέος χάρτης, ένα καινούργιο όπλο, ή κάποιος χαρακτήρας.
- Overhaul: Overhaul χαρακτηρίζεται μια μεγάλη σε έκταση τροποποίηση ενός βιντεοπαιχνιδιού. Ενώ η ιστορία του παραμένει κοντά στην πρωτότυπη, επαναπροσδιορίζεται συνήθως το gameplay, η μηχανική, και το περιβάλλον του.
Ένα από τα πιο γνωστά overhaul mods είναι το Black Mesa, που βασίζεται στη θρυλική σειρά του Half-Life.
- Conversion: Όταν έχουν τροποποιηθεί τα πάντα και το αποτέλεσμα δεν έχει καμία απολύτως σχέση με το αρχικό παιχνίδι, τότε έχουμε ένα conversion mod.
Ουσιαστικά το μοναδικό στοιχείο που συνδέει το συγκεκριμένο mod με τον αρχικό τίτλο, είναι ότι μοιράζονται την ίδια μηχανή παιχνιδιού.
Το δημοφιλέστερο conversion όλων των εποχών είναι το Counter-Strike που είναι και αυτό mod του Half-Life.
Fun fact: Το λογότυπο του Half-Life που έχει το ελληνικό γράμμα λάμδα, συμβολίζει τη σταθερά (λ) στην εξίσωση του χρόνου ημιζωής (Half-Life) ενός ραδιενεργού στοιχείου.
Όμως κρύβει και ένα δεύτερο νόημα, καθώς αναπαριστά ένα χέρι που κρατά έναν λοστό (crowbar), το οποίο είναι το βασικό όπλο του κεντρικού ήρωα.
Στο συγκεκριμένο σημείο, να σημειώσουμε ότι για να τροποποιήσουμε ένα παιχνίδι πρέπει να το υποστηρίζουν επίσημα οι δημιουργοί του.
Ο λόγος είναι ότι τα mods είναι επεμβατικές διαδικασίες στον κώδικα των video games. Από τη στιγμή που τα βιντεοπαιχνίδια είναι πνευματικές ιδιοκτησίες, πρέπει να έχουμε τη σύμφωνη γνώμη των κατασκευαστών.
Ωστόσο, λόγω του ότι τα modifications είναι πολύ δημοφιλή, μεγάλες gaming εταιρείες δίνουν στους χρήστες τα κατάλληλα εργαλεία για να αναπτύξουν τη δικιά τους εκδοχή.
Για παράδειγμα, η εταιρεία Valve διαθέτει στο κοινό διάφορες εφαρμογές ανάπτυξης για μια σειρά από παιχνίδια της.
Βέβαια για να εκμεταλλευτούμε πλήρως το συγκεκριμένο λογισμικό, πρέπει να έχουμε γερές βάσεις στον προγραμματισμό και γνώσεις τρισδιάστατου σχεδιασμού.
Εάν λοιπόν οι δικές μας ιδέες για προγραμματισμό αφορούν τον χώρο των παιχνιδιών, το game modding είναι μια ενδιαφέρουσα κατηγορία.
Συνεισφορά σε λογισμικό ανοικτού κώδικα
Στην περίπτωση που αναζητούμε ιδέες για προγραμματισμό και πιστεύουμε στις αξίες του εθελοντισμού, μπορούμε να συμβάλλουμε στην ανάπτυξη open-source λογισμικού.
Στα project ανοικτού κώδικα, oι δημιουργοί διαθέτουν τον πηγαίο κώδικα σε χρήστες, προκειμένου να τον συντηρήσουν ή να τον τροποποιήσουν. Τα περισσότερα από αυτά διανέμονται ελεύθερα και δωρεάν για κάθε χρήση.
Τι Είναι τα Προγράμματα Ανοικτού Κώδικα / Open SourceΌλοι χρησιμοποιούμε προγράμματα ανοικτού κώδικα στην καθημερινότητά μας. Όμως, αρκετοί χρήστες δεν γνωρίζουν περί τίνος πρόκειται. Μάλιστα, συχνά ο όρος συγχέεται – εσφαλμένα – με τα…
Σε αυτήν την κατηγορία βρίσκουμε εξαιρετικά λειτουργικά και εφαρμογές, που βοήθησαν σημαντικά την εξέλιξη των υπολογιστών.
Χωρίς την αφιλοκερδή συμμετοχή χρηστών, δεν θα είχαμε σήμερα διανομές Linux, τον Firefox, το Gimp, το KODI, το LibreOffice, και ένα σωρό εφαρμογές που όλοι έχουμε χρησιμοποιήσει.
Για να πάρουμε μέρος σε αυτά τα project, αρκεί να επικοινωνήσουμε με τις αντίστοιχες κοινότητες και να επιλέξουμε τον τομέα που μπορούμε να βοηθήσουμε.
Κλείνοντας, μερικές ακόμα ιδέες για προγραμματισμό είναι η ανάπτυξη plugins και add-ons στα παραπάνω προγράμματα, για επέκταση των λειτουργιών τους.
Σχεδιασμός ιστοσελίδων
Αν και ο σχεδιασμός ιστοσελίδων δεν είναι από τις ιδέες για προγραμματισμό που προσφέρεται για χόμπι διότι αποτελεί περισσότερο επαγγελματική εργασία, δεν παύει να είναι μια δημιουργική απασχόληση.
Στην συγκεκριμένη περίπτωση αναφερόμαστε στον προγραμματισμό ενός site στο front-end, στο κομμάτι δηλαδή που βλέπει ο επισκέπτης.
Συνδυάζοντας γνώσεις γραφιστικής και τις τεχνολογίες HTML, CSS και PHP μπορούμε να δημιουργήσουμε ένα δικό μας θέμα για το WordPress.
Αυτή η ενασχόληση μπορεί να αποτελέσει και επένδυση για το μέλλον μας, αν θέλουμε να γίνουμε web designers.
Ανάπτυξη εφαρμογών για κινητά
Όπως ο σχεδιασμός ιστοσελίδων έτσι και η δημιουργία mobile εφαρμογών είναι περισσότερο μια απασχόληση που μπορεί να μας προσφέρει μια καριέρα στον χώρο του προγραμματισμού.
Ιδιαίτερα αν οι δικές μας ιδέες για προγραμματισμό εφαρμογών στο Android ή στο iOS αποδειχθούν επιτυχημένες.
Εάν επιθυμούμε να κατασκευάσουμε μια εφαρμογή για το Android, που είναι το δημοφιλέστερο λειτουργικό στις φορητές συσκευές βάσει της αγοράς…
…έχουμε την δυνατότητα να εργαστούμε σε ένα γραφικό περιβάλλον ανάπτυξης μέσω του προγράμματος App Inventor.
Έχετε να προτείνετε άλλες ιδέες για προγραμματισμό;
Εάν θέλετε να προσθέσετε κι άλλες ιδέες για προγραμματισμό ή να μας παρουσιάσετε το project που μόλις ολοκληρώσατε, αφήστε σχόλιο.