Πώς να γίνω προγραμματιστής;

Ένας προγραμματιστής είναι καλός στον προγραμματισμό. Προγραμματισμός είναι η σκέψη, η μέθοδος και η εκτέλεση. Οι γλώσσες είναι τα εργαλεία αλλά ο προγραμματιστής είναι ο μάστορας

Όχι δεν είναι χάρισμα, είναι ένας τρόπος δόμησης της σκέψης

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

Μια μικρή αναζήτηση στο forum θα σε βοηθήσει πιστεύω

Καμία δε βοηθά περισσότερο. Απλά κάποιες είναι πιο φιλικές λόγω της αναγνωσιμότητας του κώδικα και άλλες λιγότερο.

Εγώ σε έναν αρχάριο θα πρότεινα την Python που έχει και τόσα ωραία δωρεάν και στα ελληνικά μαθήματα.

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

@billniakas νομίζω βοηθά σ’ αυτή τη διαδικασία και η μάθηση με έργα.
Το περιβάλλον πάντως θεωρώ πως το έχουμε.
Εννοώ το φόρουμ.
Το οποίο βρίσκω πολύ φιλικό και υπομονετικό στους “ευέλπιδες”.
Σίγουρα ο προγραμματισμός εκτός από τις στοχευμένες απαντήσεις σας έχει βοηθήσει και σε ασκήσεις υπομονής.

Δε σε εμποδίζει κάτι να ξεκινήσεις, ακόμη και τώρα. Βρες μια γλώσσα που σου αρέσει και κάνε ένα ένα μεθοδικά τα βήματα. Εμείς θα σε βοηθήσουμε.

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

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

Έχω ξεκινήσει ήδη @billniakas
Ευχαριστώ εκ των προτέρων για τη βοήθεια.

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

@Asfodelus ποια είναι βασικά τα εργαλεία ενός προγραμματιστή;
Πώς γίνεται κάποιος προγραμματιστής να είναι καλός σε πολλές γλώσσες.
Βέβαια ουσιαστικά πρόκειται για χάρισμα.
Αλλά πολύ θα ήθελα να ανήκω στο 0.3% νομίζω του πλανήτη που ασχολείται με προγραμματισμό.
Κάνω φιλότιμες προσπάθειες, αλλά αισθάνομαι πάντα ότι κάτι μου λείπει, ότι κάτι δεν αντιλαμβάνομαι σωστά.
Υπάρχει κάποιος μπούσουλας για τον τρόπο σκέψης ή τους αλγόριθμους.
Ποια γλώσσα βοηθά περισσότερο την κατανόηση του τρόπου σκέψης ενός προγραμματιστή;
Εξάλλου πρέπει να αξιοποιήσουμε και με κάποιο δημιουργικό τρόπο τόσες όμορφες linux εγκαταστάσεις που προσφέρονται.

Εκ της διευθύνσεως: Έγινε ένα μικρό λαθάκι στην μεταφορά σε νέο νήμα και αυτό πρέπει να διαβαστεί πρώτο - – Asphodelus – :slight_smile:

Μπορεί να χαλάσω το όνειρο…

…στην εταιρεία μου ασχολουμαι καθημερινά με προγραμματιστές. Είτε άμεσα με συνεργάτες προγραμματιστές, είτε έμμεσα με εταιρείες που απασχολούν προγραμματιστές.

Ο καλός προγραμματιστής είναι αυτός που έμαθε μόνος του προγραμματισμό στα 10-12-15. Ο μέτριος προγραμματιστής είναι αυτός που είχε κάποια κλίση στους υπολογιστές και πέρασε σε κάποια σχολή προγραμματισμού. Ο κακός προγραμματιστής είναι αυτός που σε κάποια ηλικία αποφάσισε να γίνει προγραμματιστής.

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

Ο καλός προγραμματιστής είναι αυτός που on the fly θα μάθει μια γλώσσα έστω και επιφανειακά για να τελειώσει ένα πρότζεκτ ακόμη και αν δεν είχε ποτέ επαφή με αυτή τη γλώσσα.
Ο κακός προγραμματιστής δεν θα μάθει τίποτα άλλο εκτός από αυτό που έμαθε πρώτο ακόμη και αν αυτό έχει γίνει κακό με τα χρόνια.

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

Μπορεί να ισχύουν και αλλά η να μην ισχύουν όσα είπα. Όλα είναι από πρωσοπικες εμπειρίες με προγραμματιστες

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

θα πω και γω το μακρυ μου (και το κοντο μου :) ) αν και δεν ειμαι προγραμματιστης , αλλα το μονο μαθημα που περασα στο Μαθηματικο ηταν…προγραμματισμος :) ( c++ προ αμνημονευτων χρονων)

Για μενα ο προγραμματιστης πρεπει να :

  1. Ξερει βασικα (τουλαχιστον) μαθηματικα.
  2. Ξερει ψηφιακα μαθηματικα ( bits,bytes,δυαδικο συστημα,κλπ)
  3. Τα βασικα της λειτουργιας των Η/Υ.
  4. Προγραμματιστικες μεθοδους για επιλυση των επιμερους (λογικων) προβληματων.
  5. Αν μιλαμε για advanced programming , πρεπει να ξερει περι διευθυνσεις μνημης , cpu threads , καρτες γραφικων , networking programming , gui programming ,κλπ κλπ κλπ.

Τα γραφω απλα και περιληπτικα οπως τα αντιλαμβανομαι μιας και ειχα/εχω μηδαμινη επαφη με τον προγραμματισμο.

Αφου ξερει ολα αυτα , απλα μετα επιλεγει την γλωσσα προγραμματισμου που τον βολευει για αυτο που θελει να κανει… απλα ειναι θεμα εκμαθησης των εντολων της για να υλοποιησει τις γνωσεις του.

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

Να στην χαλασω λιγο την σουπα :) Ενας προγραμματιστης θα μπορεσει να κανει τα βασικα σε οποια γλωσσα και να χρειαστει να χρησιμοποιησει… το να μαθεις μια γλωσσα προγραμματισμου ειναι απλα να μαθεις ενα νεο συντακτικο. Το να ξερεις τις διαφορες στην υλοποιηση των βασικων σε καθε γλωσσα ειναι αυτο που κανει εναν προγραμματιστη αποδοτηκο διοτι #1) δεν σπαταλαει χρονο στο Google και στο StackOverflow για να ψαχνει λυσεις, και #2) ξερει πως θα κανει τα βασικα και ξερει τι ακριβως χρειαζεται για φτιαξει εναν αλγοριθμο σε οποιαδηποτε γλωσσα.

Και παλι θα στην χαλασω την σουπα. Σε αυτο φταιει η αγορα διοτι οταν χρειαζεται Java προγραμματιστες τοτε ολο το συστημα σπρωχνει τους μαθητες στο να μαθουν Java. Οταν θελουμε Web based εφαρμογες σπρωχνει σε PHP/Javascript/HTML5/CSS3. Η αγορα δημιουργει την κατακερματηση των προγραμματιστων και δεν δημιουργει προγραμματιστες που ξερουν που ακριβως υπαρχουν τα τεμνωντα σημεια σε ολες τις γλωσσες. Και για αυτο κατα την γνωμη μου παντα ο καλος και κακος προγραμματιστης δεν ειναι σωστος σαν ορος.

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

Εγώ πάλι είμαι καλό παιδί και δε μπλέκομαι με τις σούπες κανενός :stuck_out_tongue:

Ο προγραμματισμός δεν είναι κατ’ανάγκη πάντα επαγγελματικός. Κάποιος μπορεί να το κάνει σαν χόμπι. Εγώ σα μη προγραμματιστής (με την επαγγελματική ιδιότητα) θα πρότεινα όποιον θέλει να κάνει μια προσπάθεια. Χαμένος δε θα βγει. Σα να λέμε σε κάποιον που θέλει να μάθει κιθάρα στα 60 να μην κάνει τον κόπο.

Πολλές φορές είναι η χαρά της διαδικασίας και όχι αν το αποτέλεσμα είναι επαγγελματικού επιπέδου.

Προσωπικά έχω τη χαρά να έχω δημιουργήσει/συνδράμει σε κάποια projects που αγαπήθηκαν από την ελληνική κοινότητα όπως το Archon και το shelldio.

Αν αυτό δεν είναι ικανοποίηση από τον προγραμματισμό, δεν ξέρω τι είναι :stuck_out_tongue:

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

έτσι, να πεταχτώ γιατί βαριέμαι να δουλέψω :P

ξεκίνησα με basic στο γυμνάσιο (όταν ντρεπόσουν να πεις ότι μαθαίνεις (μόνος σου) προγραμματισμό, γιατί το nerd δεν ήταν ακριβώς… cool, τότε :P ) και μετά το τεχνικό λύκειο (hw /ηλεκτρονικά) σε τεχνική σχολή (pascal, cobol, visual, C, μπλα μπλα), αλλά γενικώς harwarάς, όχι softwarάς. από τότε τίποτα (δεν το εξάσκησα εκτός κάποιον ελάχιστων projects) κι έτσι έχασα επαφή.

στα επόμ 5-7 χρόνια θα ήθελα να έχω ξεκινήσει με κάποια γλώσσα, περισσότερο για να περάσω την απαρχή εκμάθησης της δεξιότητας στα παιδιά μου (που έρχονται τον επόμ μήνα :D /το τρέχω λίγο, ξέρω…) αλλά και για το δικό μου recreation (άσχετο: μεγαλύτερη βαρύτητα όμως θα ήθελα να ρίξω στην μουσική, που ποτέ δεν έμαθα). ΑΡΑ, δεδομένου του ελάχιστου “ενήλικου” χρόνου (με το βάρος μάλλον στην μουσική) και σε συνδυασμό με την απουσία επαφής αλλά την πρότερη βασική γνώση, τι από τα παρακάτω προτείνετε (ΑΝ δεν με κινητοποιούν mobile OSes και γουστάρω desktop) ?

  • ζέσταμα μ’ αρχαίες γλώσσες για μόχλευση του κέντρου ανταμοιβής του μυαλού (με κινητοποιεί και μόνο που το φαντάζομαι /προφανώς λόγω ζώνης άνεσης αλλά κι αναπόλησης), έως να βρεθεί στην απογοήτευση της ανασφάλειας της νέας εκμάθησης,

  • ζέσταμα με εύκολη-φιλική νέα γλώσσα πριν κάποια ανώτερη,

  • κατευθείαν πχ python ή άλλη σύγχρονη, για κέρδος χρόνου?

…τέλος, ποια (σημερινή) γλώσσα θεωρείτε καταλληλότερη για παιδική παρακίνηση? μήπως η δική μου ενασχόληση με αυτήν είναι απαραίτητη για τέτοιο σκοπό?

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

ε ας πω και εγω την παπαριά μου.
Δεν ειχα ποτέ σκοπο να μαθω προγραμματισμο, ομως για να κανω μερικα πραματακια που ηθελα, επρεπε να εχω μια ιδεα απο προγραμματισμο. Τελικα εκατσα και εμαθα μερικα βασικα πραματα. Αυτο που καταλαβα, ειναι οτι αυτο που λενε οτι μετα τα 40 μην περιμενεις να γινεις προγραμματιστης, ισχυει. Ομως, πρωτον, καμποσα απο αυτα που ηθελα να κανω, τα εφτιαξα, και δευτερον, καταλαβα οτι μπορω να «κλεβω» λιγο κωδικα απο αλλού, αφου πλεον μπορω να καταλαβω μερικα πραματα. Πολυ σημαντικο αυτο το δευτερο…

Εγω θα ελεγα ξεκινα με python, και πιο συγκεκριμενα, γραψου στο mathesis και παρακολουθα και τα μαθηματα του ψουνη (θα βρεις και στο φορουμ εδω που εχει αναρτησει καποιος βιντεο απο αυτον)

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

Τι λιγο αλατακι δεν θα βαλεις; :slight_smile: Δεν λεμε να την φορτωσεις με μπαχαρικα… αλλα λιγο αλατακι ετσι για την νοστημια; :stuck_out_tongue:

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

Ζαχαρίτσα βάζουμε όχι αλατάκι.

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

Γιατί την αναφέρω; Γιατί είναι πολύ γλυκιά από το πολύ syntactic sugar που έχει μέσα και εκπληρώνει τον βασικό σχεδιαστικό της στόχο: “Την ευτυχία του προγραμματιστή” και δεν ξέρω καμία άλλη γλώσσα να έχει ως δηλωμένο πρωταρχικό σκοπό αυτό το πράγμα.

ΥΓ: Το παρόν φόρουμ είναι γραμμένο σε ruby :ruby:

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

“γλυκιά” lol
που πήγαν τα παλιά χρόνια που μας πετούσαν στο εργαστήριο με ντάμι τερματικά και άντε το πολύ το βιβλίο της C των κέρνιγκαν-ρίτσι … και πούσαι φοιτητάκο … μην ξεχνιόμαστε … παράδοση πρώτης εργασίας στα καπάκια μετά από μια εβδομάδα … :stuck_out_tongue:

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

:D καταλαβαίνω το χιούμορ του πράγματος αλλά δεν μου λείπουν καθόλου τέτοιες πρακτικές, ούτε θα τις ήθελα στο παρόν εκπαιδευτικό ;) ακόμα κουβαλάω θυμό από την πρίζα pc που μου είχε ξηλώσει καθηγήτρια σχολής (γελιοποιώντας με) επειδή προσπάθησα να δικαιολογήσω το συντακτικό μου. μπάτσους να μας παίρνουν τα κλειδιά από την μίζα δεν χρειαζόμαστε και θα συμφωνήσεις Bladerunner ;) :D [εδώ “γαμώτ”, φιλάρες]

ιστορίες για αγρίους που λέμε :rofl:
Ο Ιωάννης Κάβουρας που μας έκανε λειτουργικά συστήματα στο ΟΠΑ , μας έλεγε μεταξύ αστείου και σοβαρού πως με τον κώδικα που γράφαμε (C/C++) άντε το πολύ να προκόβαμε σε διαχείριση πελατολογίου σε κάνα video club (και αυτό με dbase και clipper λολ) … λες και έφταιγα εγώ που στο πρώτο εξάμηνο είχα ταυτόχρονα pascal I , υπολογιστικά μαθηματικά με fortran , δομές δεδομένων με C … και όλα αυτά με εργαστήρια και φροντιστήρια (πρωί-απόγευμα βασικά ήταν τόσο μπάχαλο το πρόγραμμα στην ασοεε τότε που έπρεπε να πάω στις οκτώ πρωί και να φύγω στις εννιά το βράδυ με κεφάλι καζάνι) .
Βγάλε μου εσύ μετά σωστό κώδικα στις οκτώ το βράδυ μετά από σερί οκτώ ώρες μάθημα και καπάκια φροντιστήριο για εντολές φλοιού και μην πω τι θα κάτσω να μου κάνεις λολ

Τες πα για να μην είμαι και τελείως off-topic , για να γίνεις προγραμματιστής κατά την προσωπική μου αποψάρα πρέπει να κατέχεις μαθηματικά … μαθηματικός λογισμός , γραμμική άλγεβρα και πάει λέγοντας … αν τα μαθηματικά δεν σε φοβίζουν τότε πορεύεσαι με όποια γλώσσα σου κάνει κέφι.
Εγώ ρίχνω άκυρο στην πρόταση του @Asfodelus που πρότεινε ruby (σορρυ γιάννη , αλλά είπα και πριν αυτή είναι η αποψάρα μου ) , θα ξεκινούσα με αυτό
https://automatetheboringstuff.com , και μετά θα βούταγα ολη μέρα εδώ για απορίες σε κώδικα https://stackoverflow.com όπως επίσης και εδώ Python Programming Language - GeeksforGeeks

Επίσης Python Tutorial καλός μπούσουλας.
Γενικά μου αρέσει η python (δεν είναι τόσο γρήγορη όσο η java ) γιατί έχει πολύ μεγάλο κοινό πίσω της και μπορείς να βρείς λύση σχετικά εύκολα. Δίνει απέραντες δυνατότητες να ασχοληθείς με ότι γουστάρεις , από IoT μέχρι progressive machine learning.
Θα με πεις βέβαια "δηλαδή οι άλλες γλώσσες δεν τα κάνουν αυτά; " .
Ναι .Φυσικά και τα κάνουν , αλλά thats my 2c :stuck_out_tongue:

4 «Μου αρέσει»
  1. Μάθε αγγλικά. Αν δεν ξέρεις, δεν θα γίνεις ποτέ προγραμματιστής.
  2. Διάλεξε ένα project που σου αρέσει και έχεις κίνητρο να δουλέψεις σε αυτό (αυτό είναι μακράν το πιο σημαντικό για μένα, το κίνητρο).
  3. Μάθε τα βασικά της γλώσσας στην οποία βασίζεται το project σου.
  4. Ξεκίνα να διαβάζεις τον κώδικα του project και να κάνεις debugging για βρεις τα ‘πατήματά’ σου. Αναλόγως από την ποιότητα και το μέγεθος του κώδικα. Τον πρώτο μήνα θα βγάλεις κάποια άκρη, αλλά ουσιαστικά μετά από 1 χρόνο θα ξέρεις καλύτερα την codebase.
  5. Ξεκίνα να γράφεις unit tests για τον ήδη υπάρχων κώδικα του project.
  6. Ασχολήσου minimum 15-20 ώρες την εβδομάδα αποκλειστικά με αυτό το project και τη γλώσσα.
3 «Μου αρέσει»