Πώς να βρώ πάλι το ενδιαφέρον μου για προγραμματισμό

Είμαι φοιτητής Πληροφορικής στο 2ο έτος σπουδών αν και ασχολούμαι με τον προγραμματισμό (καθαρά ερασιτεχνικά) από την πρώτη λυκείου. Έχω ασχοληθεί λίγο με αρκετές γλώσσες και libraries με αποτέλεσμα πια να μην με ενθουσιάζει καμία αρκετά ώστε να επενδύσω χρόνο. Θα ήθελα τις προτάσεις σας για κάποια γλώσσα, library ή οτιδήποτε έχετε δει και πιστεύετε ότι αξίζει να ασχοληθεί έστω και για πλάκα.

Ευχαριστώ εκ των προτέρων!

1 «Μου αρέσει»

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

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/

[ Δεν θέλει γνώσεις, αλλά θα κάνει το κεφάλι να εκραγεί]

Πέραν αυτού και ανάλογα με τα ενδιαφέροντα σου google: rust, deep learning, cuda, shaders, microkernels, C++17, vhdl, erlang, elm, ruby, devops, …

Επίσης: https://cleancoders.com

Και καλώς ήρθες στο linux-user.gr

1 «Μου αρέσει»

Καλωσορισες στο forum και στην παρεα μας. Υπαρχουν πολλα πραγματα που μπορεις να επιτυχεις με τις γνωσεις σου στον προγραμματισμο. Το δεδομενο ομως δεν ειναι να χρησιμοποιησεις ενα εργαλειο που θα αναπτερωσει μονο το ενδιαφερον σου και παλι για τον προγραμματισμο. Αλλα ειναι να βρεις ενα προβλημα και να το λυσεις, εστω και αν εχει ηδη λυθει. Η δικια σου προσπαθεια και η δικια σου προσεγγιση θα ειναι σιγουρα διαφορετικη απο την προηγουμενη και παλι διαφορετικη απο την επομενη.

ΠΧ μεχρι σημερα δεν εχει φτιαξει κανενας καποιον systemd service editor για να μπορεις να εκτελεις προγραμματα οταν bootαρει το συστημα. Διαφορα αλλα προβληματα απλα αλλα και πιο συνθετα υπαρχουν για να τα λυσεις. Πιστευω οτι το καθε εργαλειο ειναι καταλληλο για να λυσεις το καθε προβλημα… απλα το προβλημα που λυνεις να ειναι καθαρα και σωστα ορισμενο ετσι ωστε να μην υπαρχουν μεγαλες χρονοτριβες και πισογυρισματα λογο αλλαγης κατευθυνσης.

1 «Μου αρέσει»

Γίνεσαι λίγο πιο συγκεκριμένος με το systemd service editor;

Μεχρι σημερα πρεπει να ξερουμε ολοι πως φτιαχνει καποιος ενα .service αρχειο για να εκτελεσει to systemd ενα binary σαν daemon κατα την εκκινηση του συστηματος. Αλλα δεν υπαρχει ενα βοηθητικο προγραμμα για αυτους που δεν ξερουν (ή δεν εχουν τις γνωσεις ή τον χρονο να μαθουν) το πως φτιαχνονται τα εν λογω αρχεια και τα .wants αρχεια για περισσοτερο λεπτομερεστερες ριθμησεις.

Κατι που να μπορει να δουλευει σε ολες τις διανομες ειτε σε command-line ειτε σε GUI (ειτε και στα δυο για οποιον εχει το μερακι και τον χρονο) και να μην χρειαζεται καποιος να ειναι expert στο SystemD (εκτως εαν παμε για sysadmin οποτε ο SystemD ειναι κομματι απο τα συνηθυσμενα βασανα ενως sysadmin).

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

Αντιλαμβανεσαι οτι αφου εμαθες να προγραμματιζεις, τωρα πρεπει να κανεις και το δευτερο βημα, να μαθεις τι θες να προγραμματισεις. Οσο για το ποιο θα ειναι αυτο, πιθανοτατα καθε μαθημα της σχολης σου αποτελει και ενα πεδιο εφαρμογων. Ωστωσο μπορεις να ψαξεις και σε αλλες σχολες ηια εφαρμογες.

Η εκτιμηση μου ειναι οτι οσο περισσοτερη εμφαση δωσεις σε αυτο τοσο πιο δυσευρετος θα εισαι και στην αγορα αργοτερα.

Βρες κάτι που σου λείπει από το λειτουργικό σου, και άρχισε να το υλοποιείς μόνος σου χωρίς να ψάχνεις έτοιμες λύσεις-προγράμματα. Σε τι γλώσσα θα το γράψεις είναι δικό σου θέμα, από bash shell scripting μέχρι C++.
Επίσης πάρε ένα arduino starter kit μια lcd 1602 οθόνη έναν servo κινητήρα και ίσως κάποιους αισθητήρες και βγάλε τους τα μάτια σε C.
Ρίξε και μια ματιά στο edX.org για κάποιο μάθημα που θα ήθελες να μάθεις και δεν υπάρχει στη σχολή σου.
Edit : Δες και αυτόν τον απίστευτο τύπο για έμπνευση :

Θα συμφωνήσω με αρκετούς παραπάνω και ως φοιτητής όμοιου τμήματος θα πω το εξής:

Γιατί δεν λέμε επιστήμη του Προγραμματισμού? Όλοι μιλάνε για επιστήμη της Πληροφορικής. Το βασικό με αυτή τη σχολή είναι να αντιληφθείς ότι δεν είσαι τίποτα παρά ένας μαθηματικός. Ένας μαθηματικός με ξεκάθαρο αντικείμενο, την επίλυση προβλημάτων. Εδώ βρίσκεται και το μυστικό της υπόθεσης.

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

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

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

Μόλις βρεις το πρόβλημα σου, θα βρεις και την γλώσσα που χρειάζεσαι.

2 «Μου αρέσει»

Σωστος. Ο τροπος σκεψης για την επιλυση προβληματων ειναι αυτος που μενει. Το συντακτικο της καθε γλωσσας προγραμματισμου το μαθαινεις ευκολα. Αλλα η προσεγγιση του καθε προγραμματιστη… και του καθε ανθρωπου στην επιλυση προβληματων ειναι αυτο που στην ουσια μετραει.

Το καθε προγραμμα που φτιαχνουμε για την επιλυση ενος προβληματος (πχ Θελουμε κατι αντιστοιχο του QuickBooks στα Ελληνικα και με υποστηριξη για GNU/Linux, ή πχ πως να φτιαξουμε μια ταμειακη μηχανη με ενα Raspberry Pi και ΕΛ/ΛΑΚ λογισμικο, κλπ) ή οτι προσπαθεια κανουμε για να δωσουμε βοηθεια σε χρηστες (πχ πως να μαθουμε σε νεους χρηστες που ερχονται απο αλλα λειτουργικα να μην φοβηθουν το GNU/Linux και πως να τους μαθουμε να χρησιμοποιουν ανετα το καινουργιο τους περιβαλλον) θα εχουν παντα την σφραγιδα του καθενως μας ανεξαρτητα το τι μαθαινουμε στο σχολειο/κολλεγιο/ΙΕΚ/ΕΠΑΛ/ΤΕΙ/ΤΕΛ/Πανεπιστημιο. Θα εχουν παντα την δικια μας προσεγγιση την δικια μας ερμηνεια. Το εργο του καθενος ειτε παραγει κωδικα ειτε αλλους καρπους ειναι μοναδικο.

Συνεχησε το καλο σου εργο (οτι και να παραγεις) (Αγγλιστι Keep up the good work).

4 «Μου αρέσει»

Να πω και εγω κατι που μου τη σπαει ο προγραμματισμος;
Μην ασχολεισαι με τον προγραμματισμο. Ασχολεισου με κατι άλλο που σου αρεσει. Όταν ασχοληθεις ομως με το κατι άλλο που σου αρεσει, μπορει να ειναι πολυ βολικοτερο αν χρησιμοποιησεις και προγραμματισμο. Παραδειγμα : Μπορει να θελεις να καλλιεργησεις ρεβυθια (επειδη ετσι σου αρεσει) γιατι σου αρεσει να φτιαχνεις χουμούς και φαλαφελ :grinning: . Δεν θα ηταν ενδιαφερον να φτιαξεις ενα drone που να το προγραμματισεις ετσι ωστε να φυτευει (το drone) ενα ρεβυθι καθε 25 εκατοστα στη σειρα, με τη σειρα να απεχει η μια απο την άλλη 35 εκατοστα; :grinning:

υγ
επομενως το θεμα δεν ειναι πως θα βρεις το ενδιαφερον σου εσυ που ξερεις απο προγραμματισμο, αλλά πως θα κατσω εγω να μαθω :grinning: :grinning: :grinning:
και καλως ηρθες στο φορουμ

4 «Μου αρέσει»

Ως φοιτητης πληροφορικης 2ο ετος, εχασα το ενδιαφερον μου για το προγραμματισμο μολις ξεκινησαν τα demands απο τον καθηγητη μου, δηλαδη ειχα χασει την αυτονομια μου ως προς την επιλογη θεματων για υλοποιηση.

*(Να τονισω εδω οτι ξεκινησα με πρωτη μου γλωσσα τη Java) *

Μετα την εξεταστικη του 1ου ετους(2ο εξαμηνο) δεν ηθελα να δω IDE και χρωματιστες γραμματοσειρες ουτε σε 1 χιλιομετρο. Αυτο μεσα στο καλοκαιρι με ξενερωσε παρα πολυ μεχρι που μου κολλησε η ιδεα να φτιαξω ενα script το οποιο θα παιζει YT videos στο τερματικο διχως να ανοιγω browser(γτ ειχα ηδη φτιαξει ενα τετοιο αλλα επρεπε να του δωσεις το URL).

Αυτο το καταφερα μεσα σε Python. Λογω οτι η χρηση nano(αγαπημενος μου IDE)μου εβγαζε τη πιστη με τα κενα της Python, αποφασισα να ξεφυγω απο παλαιοληθικους IDEs και να πειραματιστω με πιο συγχρονους(Eclipse, Atom και δυστυχως Visual Studio).

Να μη μακρυγορω, οταν φερνεις εναν IDE στα μετρα σου, σου ανοιγει η ορεξη για προγραμματισμο ακομη και αν δεν εχεις ιδεα τι υλοποιεις.

Φυσικα αυτος μαλλον δεν ειναι ο ορθος τροπος για την επανασυνδεση καποιου με τον προγραμματισμο, αλλα για εμενα δουλευει.

1 «Μου αρέσει»

Δες και τον Sublime Text, είναι με licences αλλά αξίζει να του ρίξετε μια ματιά, έχει άπειρα plugins και είναι τρομερά εύχρηστος.

1 «Μου αρέσει»

Ορίζεις μια “Ιθάκη” του προσωπικού σου γούστου κι αρχίζεις το ταξίδι !! Το καλό είναι η δημιουργική ενασχόληση όταν όλα τα άλλα φαίνονται βαρετά…

1 «Μου αρέσει»