Επάγγελμα Software Developer

Χρόνος: 11minΕνημέρωση: 06 Ιούν 2022

Ένας ηλεκτρονικός υπολογιστής (Η/Υ) χωρίς αυτό που αποκαλούμε λογισμικό είναι απλά πολλά ηλεκτρονικά κομμάτια συνδεδεμένα μεταξύ τους. Η μαγεία του τι μπορεί να κάνει ένας Η/Υ έρχεται με το Software. Το Software Development ή Ανάπτυξη Λογισμικού είναι όλες οι διαδικασίες που ακολουθεί ο Προγραμματιστής Λογισμικού ή Software Developer σε καθημερινή βάση.

Ως Software Developer έχεις την ευκαιρία να έρθεις σε επαφή, να συνεργαστείς και να γνωρίσεις ανθρώπους σε όλον τον κόσμο. Η τεχνολογία και το Internet είναι ένα μέσο χωρίς γεωγραφικά όρια. Το επάγγελμα του Software Developer απαιτεί συνεχή εξέλιξη και βελτίωση των διαδικασιών που ακολουθείς. Αυτό σημαίνει πως αποκτάς έναν τρόπο σκέψης, που βασίζεται σε συνεχή εκμάθηση νέων πραγμάτων.

Στα επόμενα λεπτά, θα μάθεις, τι είναι το Software Development, τι ακριβώς κάνει ένας Software Developer και πως μπορείς να ξεκινήσεις μια επιτυχημένη καριέρα στον τομέα της Ανάπτυξης Λογισμικού.

Περιεχόμενα

    Τι είναι ο Software Developer

    Ο Προγραμματιστής λογισμικού ή Software Developer είναι αυτός που σχεδιάζει, αναπτύσσει και ελέγχει λογισμικά – προγράμματα που εκτελούνται από τους ηλεκτρονικούς υπολογιστές.

    Τι όμως είναι Προγραμματιστής και τι είναι Λογισμικό;

    Ποιός είναι ο Προγραμματιστής

    Ο προγραμματιστής είναι μια έννοια που μπορεί να είναι ταυτόχρονα τόσο γενική όσο και ειδική. Αυτό σημαίνει πως ο προγραμματιστής έχει τις γνώσεις και τον τρόπο σκέψης να προσεγγίσει ένα πρόβλημα που σχετίζεται με τους Η/Υ και αφού το αναλύσει να δώσει μια λύση. Από την άλλη, ή έννοια προγραμματιστής μπορεί να συνοδεύεται από διάφορες γλώσσες προγραμματισμού όπως C, C++, Java και να σηματοδοτεί τον προγραμματισμό στην συγκεκριμένη γλώσσα.

    Τι είναι το λογισμικό;

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

    Λόγω τις ραγδαίας εξέλιξης της τεχνολογίας, υπάρχει η τάση του διαχωρισμού των Developers με τους Testers. Αυτό πρακτικά σημαίνει, πως ο έλεγχος (όταν αυτό είναι εφικτό) γίνεται μέσω ενός άλλου ρόλου που αποκαλείται Software Test ή QA Tester. QA σημαίνει Quality Assurance και ο ρόλος αυτός θα αναλυθεί σε άλλο σχετικό άρθρο.

    Πως σκέφτεται ένας Προγραμματιστής

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

    Η εργασία γίνεται ομαδική

    Πλέον, τα software, τα παιχνίδια και τα λειτουργικά συστήματα είναι τεράστια. Τόσο σε MB όσο και σε απαιτήσεις συστήματος. Αυτό δεν είναι αποτέλεσμα ενός προγραμματιστή αλλά μιας ομάδας. Βλέπουμε λοιπόν, πως το Software Development είναι μια άκρως ομαδική εργασία. Η συνεργασία, η ικανότητα να ακους και να προτείνεις πράγματα, να αποκτάς τον ρόλο του leader είναι στοιχεία του επαγγέλματος.

    Στάδια ανάπτυξης ενός λογισμικού

    Είτε μιλάμε για ένα λογισμικό (πρόγραμμα) στον ηλεκτρονικό υπολογιστή, για μια εφαρμογή σε κινητό (app) ή ακόμη και για μια ιστοσελίδα υπάρχουν κάποια βασικά στάδια. Καθορίζουν την διαδικασία δημιουργίας ενός ψηφιακού προϊόντος και σε κάθε ένα στάδιο, ο υπεύθυνος αποκτά έναν πιο συγκεκριμένο τίτλο. Βέβαια σε μικρές επιχείρήσεις, τα στάδια μπορεί να συνοψίζονται σε ένα και έτσι ο ρόλος του υπευθύνου να είναι απλά “Προγραμματιστής”.

    Ένας προγραμματιστής λογισμικού θα πρέπει να έχει πλήρη γνώση της διαδικασίας που ακολουθείται για την δημιουργία ενός τελικού ψηφιακού προϊόντος.

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

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

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

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

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

    Που μπορεί να εργαστεί

    Ο Προγραμματιστής Λογισμικού μπορεί να εργαστεί σε διάφορες εταιρείες και πάνω σε αρκετές παλιές και νέες τεχνολογίες.

    • Εταιρείες ανάπτυξης εμπορικού λογισμικού
    • Εταιρείες τηλεπικοινωνιών
    • Τμήματα πληροφορικής και μηχανογράνωσης επιχειρήσεων, τραπεζων κ.ο.κ.

    Μορφή απασχόλησης

    Η μορφή απασχόλησης μπορεί να είναι υπάλληλος, τόσο στο δημόσιο όσο και σε ιδιωτικές επιχειρήσεις – οργανισμούς. Επιπλέον, υπάρχει και η δυνατότητα άσκησης του επαγγέλματος ως ελεύθερος επαγγελματίας (freelancer) προσφέροντας υπηρεσίες σε ολόκληρο τον κόσμο.

    Νομοθετική Κατοχύρωση

    Δεν υφίσταται κάποια συγκεκριμένη νομοθετική κατοχύρωση για το επάγγελμα του Software Developer.

    Συνθήκες Εργασίας

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

    Επιπλέον λόγω της φύσης του επαγγέλματος, είναι πολύ συχνό φαινόμενο η τηλεργασία (remote work).

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

    Μετακινήσεις χρειάζονται μόνο όταν υπάρχει κάποιο σοβαρό τεχνικό πρόβλημα που δεν μπορεί να λυθεί απομακρυσμένα. Για παράδειγμα η εγκατάσταση συστήμάτων με ευαίσθητα δεδομένα συνήθως γίνεται όπως λέμε on site, δηλάδη στον φυσικό χώρο και οχι μέσω του Internet.

    Το stress, το άγχος και τα deadlines είναι μέσα στο καθημερινό πρόγραμμα. Ένας προγραμματιστής καλό θα ήταν να εκτεθεί σε τέτοιου είδους καταστάσεις κατα΄την φοίτηση του ή ακόμη και σε προσωπικά project. Η διαχείριση χρόνου και εργασιών και η τήρηση προτεραιοτήτων είναι εξαιρετικά σημαντικό.

    Τι Skills έχει ο Software Developer

    Ένας Software Developer δουλεύει τόσο ατομικά όσο και σε ομάδα. Πρέπει λοιπόν, να αναπτύσει τόσο τα Soft Skills όσο και τα Hard Skills. Στις παρακάτω λίστες έχουμε κατηγοριοποιήσει τα ατομικά προσόντα (Soft Skills) και τα τεχνικά προσόντα (Hard Skills).

    • Υψηλή προσαρμοστικότητα σε νέες γλώσες προγραμματισμου.
    • Κριτική σκέψη
    • Διάσπαση προβλημάτων σε υποπροβλήματα
    • Ανάληψη πρωτοβουλιών & επίλυσης προβλημάτων
    • Καθορισμός προτεραιοτήτων
    • Ομαδικό πνεύμα
    • Προσοχή στην λεπτομέρεια.
    • Αναλυτική σκέψη και διαχείριση πολύπλοκων δεδομένων.
    • Πάθος και περιέργεια για νέα πράγματα και δοκιμή νέων τεχνολογιών.
    • Ομαδικό πνεύμα και ικανότητες συνεργασίας με ομάδα.
    • Υπομονή και επιμονή στην εύρεση bugs κάτω από περιορισμένο χρόνο (deadlines).
    • Πτυχίο ΑΕΙ / ΤΕΙ Πληροφορικής ή Μηχανικών Η/Υ
    • Γνώσεις Μαθηματικών προς τον κλάδο της Πληροφορικής (Πιθανότητες, Στατιστική, Διαφορικές Εξισώσεις κ.ο.κ.).
    • Γραπτή και προφορική γνώση της Αγγλικής γλώσσας
    • Διάφορες γλώσσες προγραμματισμού (ανάλογα την θέση εργασίας) όπως Python, Ruby, Java, HTML, Javascript, Ajax, json, jQuery κ.τ.λ.
    • Εμπειρία με προγράμματα διαχείρισης χρόνου και εργασιών (Asana, Jira, Trello κ.τ.λ.)
    • Εμπειρία με Frameworks
    • SQL και NoSQL Βάσεις Δεδομένων όπως MySQL, PostgreSQL, Redis
    • API integration (REST), Web services.
    • Big data και machine learning frameworks

    Κύριες αρμοδιότητες

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

    Μισθός προγραμματιστή λογισμικού

    Ο μισθός του Προγραμματιστή Λογισμικού εξαρτάται από διάφορες παραμέτρους. Οι παράμετροι αυτοί δεν ορίζουν τον μισθό αυτό καθ αυτό, αλλά ένα εύρος. Στην καριέρα του προγραμματιστή υπάρχουν ευκαιρίες και δυνατότητες για εξέλιξη.

    Η πρώτη παράμετρος είναι η εταιρεία. Υπάρχει τεράστια διαφορά στις μιρκές εταιρείες τύπου startup και στις μεγάλες πολυεθνικές εταιρείες. Η δεύτερη παράμετρος είναι η εργασιακή εμπειρία. Υπάρχει διαφορετικό εύρος μισθού στους Junior Προγραμματιστές και διαφορετικό στους Senior Προγραμματιστές. Τέλος, η τρίτη παράμετρος είναι η αξία του Προγραμματιστή και οι διαπραγματευτικές του ικανότητες.

    Ο καθαρός μισθός του Junior Προγραμματιστή σε μια startup εταιρεία ξεκινά από 750€ και σε μια πολυεθνική με 900€. Αποκτώντας εργασιακή εμπειρία, έπειτα από 3 με 5 χρόνια, ο καθαρός μισθός του Senior Προγραμματιστή φτάνει τα 1500€ με 1700€.

    Τι μισθό θα ήθελες να πάρεις;

    Θέλεις να μάθεις πως μπορείς να αυξήσεις τον μισθό σου κατά την πρόσληψη σε μια νέα θέση εργασίας; Τα πάντα παίζονται μέσα σε κάποια λεπτά διαπραγμάτευσης με τον hiring manager, μέσα στα οποία καλείσαι να “πουλήσεις τον εαυτό σου” και να αποδείξεις την αξία σου.

    Σχετικά επαγγέλματα

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

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

    Στην παρακάτω λίστα μπορείτε να βρείτε παρόμοια επαγγέλματα με το Software Developer. Κάποια από αυτά αναφέρονται ως Developer και έχουν αρκετές ομοιότητες και άλλα ως Analyst ή Architect που αναλύονται στα σχετικά άρθρα.

    Online Courses

    Σύμφωνα με στατιστικά, τα τμήματα Μηχανικών Η/Υ και Πληροφορικής και Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών είναι απο τα πιο απαιτητικά. Αυτό σημαίνει πως η εμπειρία που θα αποκομήσεις είναι μεγάλη. Μια νέα τάση που έχει ξεκινήσει είναι τα online μαθήματα σε διάφορες πλατφόρμες όπως το Udemy ή το Coursera όπου μπορείς να αποκτήσεις και πιστοποίηση ολοκλήρωσης των μαθημάτων.

    Παραθέτουμε παρακάτω κάποια σχετικά Links.

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

    Networking

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

    Η επίσημη ένωση στην Ελλάδα που ασχολείται με τον Τομέα της Πληροφορικής είναι η Ένωση Πληροφορικών Ελλάδας (Ε.Π.Ε.).

    Ελληνική εταιρία επιστημόνων και επαγγελματιών Πληροφορικής και Επικοινωνιών

    Επιπλέον μπορείς να αντλήσεις πληροφορίες και να ρωτήσεις για οτιδήποτε σε απασχολεί στην Facebook ομάδα Ελληνες προγραμματιστές και Designers.

    Θέσεις εργασίας

    Η εύρεση θέσεων εργασίας στην Ελλάδα γίνεται μέσω του Linkedin και άλλω μηχανών αναζήτησης εργασίας. Εάν σε ενδιαφέρει να εργαστείς ως Front End Developer, είναι πολύ σημαντικό να μάθεις πως μπορείς να χτίσεις ένα επαγγελματικό προφίλ στο Linkedin. Το Linkedin είναι το κοινωνικό δίκτυο για επαγγελματίες όπου ο εργοδότης συναντά τον εργαζόμενο.

    Τόσο το Linkedin οσο και οι Μηχανές Αναζήτησης Εργασίας στην Ελλάδα έχουν την επιλογή για εργασία εξ’ αποστάσεως (remote work)

    Συχνές ερωτήσεις

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

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

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

    Η κυρίως διαφορά του Software Developer (Προγραμματιστής Λογισμικού) και Software Engineer (Μηχανικός Λογισμικού) είναι στις καθημερινές ευθύνες.

    Ένας Developer ασχολείται με κάτι πολύ συγκεκριμένο. Μπορεί για παράδειγμα να δημιουργήσει μια login σελίδα, ένας άλλος Developer μια σελίδα εγγραφής και ένας άλλος να ασχοληθεί με την αποστολή email.

    Από την άλλη, ο Engineer, θα έχει σχεδιάσει την όλη διαδικασία, μπορεί και αυτός να προγραμματίσει κάτι αλλά θα έχει την πλήρη εικόνα του τι θα υλοποιηθεί. Ως Μηχανικός, πρέπει πάντα να έχει την πλήρη εικόνα του τι σχεδιάζεται και πως υλοποιείται. Αυτό συνεπάγεται επιπλέον ευθύνες και φυσικά μεγαλύτερος μισθός.

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

    Join the Future

    Γίνε μέλος της F κοινότητας και απέκτησε δωρεάν πρόσβαση σε pro tips και υλικό για να χτίσεις την καριέρα σου έτσι όπως εσύ την ονειρεύεσαι.

    You have successfully subscribed to the newsletter

    Ουπς, κάτι πήγε στραβά!