How to be a Developer

WiludrakeGR | Κυρ, 01/13/2008 - 23:23 | 1' | 4

Θα ηθελα να προσφερω κ εγω εργο στην κοινότητα του ελεύθερου λογισμικου. Ξερω καποια πολυ πολυ απλα πραγματα σε C και τωρα μελεταω την C++. Παρόλα αυτα, ολα τα βιβλια που διαβαζω για C/C++ εχουν εφαρμογες για Windows, και αυτες ειναι σε CLI μεσω του MS-DOS. Που θα βρω βιβλια ή κάτι αντιστοιχο για να αναπτυξω προγραμμα σε Ubuntu; Και κατι ακόμα, πως θα μπορέσω να παρω μερος σε ενα project ; Πχ στην ομάδα αναπτυξης του Firefox. Τι γνώσεις πρέπει να εχω και πως θα επικοινώνισω με την ομάδα ;

Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

Ωραια ολα περι μετάφρασης και υποστήριξεις των ελληνικων στο Linux. Εχω ηδη γραφτει σε διαφορα και μεταφραζω ή αλλοτε γραφω δικα μου tutorials στα ελληνικα.

Ομως, οπως λεει και ο τιτλος του θεματος, ας εστιασουμε περισσοτερο στον developer. Εστω οτι ενας θελει να ασχοληθει με το Linux ως developer. Ποιες ειναι κατα βάση οι γλώσσες προγραμματισμού που πρέπει να γνωρίζει και σε πώς θα μπορέσει να παρει μερος σε ενα Project ? Υπαρχει καποια σχετικη ιστοσελίδα ;

Ειδα οτι ανέφερες το Qt Designer, ειναι πράγματι πολύ καλό. Ειναι ενα εργαλειο για GUI στο Linux! Απιστευτα ευέλικτο! Ποια άλλα τέτοια εργαλεία θα χρειαστώ ;

Τελος, πιστεύεις οτι ειναι εύκολο να γινει κανεις προγραμματιστης linux και τι ώφελος έχει ; Χρήματα υπάρχουν ή γινεται μονο για χόμπυ ;

ΥΣ: Δεν προλαβα να παω ακομα στιν Μπιενάλε.

Η σωστή ερώτηση δεν είναι "ποιες γλώσσες πρέπει να ξέρω", αλλά "ποιες γλώσσες θέλω να μάθω ή μου κάνουν". Projects υπάρχουν άπειρα και σίγουρα θα βρεις κάποιο που να χρησιμοποιεί και τη γλώσσα/εργαλειοθήκη που εσύ μαθαίνεις. IMHO τα πιο συνηθισμένα toolkits/γλώσσες είναι: Qt, GTK+, Mono/GTK#, Python, κλπ.

Αν θες να ασχοληθείς με την Qt, θα χρειαστείς μόνο τα πακέτα qt4-designer, qt4-dev-tools, qt4-doc, libqt4-dev (μιλώ για Debian, παρόμοια είναι και στις άλλες διανομές). Μετά τρέξε το qtassistant  και τα υπόλοιπα θα τα καταλάβεις (δες το tutorial στο τεύχος 17). Υπάρχουν και Python bindings για την Qt.

Αν πάλι προτιμάς το Mono/.NET, εγκατέστησε το Mono και το MonoDevelop. To Stetic (GUI builder για το Mono) υπάρχει μέσα στο MonoDevelop.

Αν πάλι προτιμάς την GTK#, δες το Glade (GUI Builder) και φυσικά την τεκμηρίωση.

Οφελος; Ξέρω γω; Προσωπικά προγραμματίζω σε Qt για να μάθω καλά αυτά που με ενδιαφέρουν σε επιστημονικό επίπεδο () κι αν φανεί χρήσιμο σε κάποιον έχει καλώς. Φαντάζομαι όμως ότι αν είσαι πραγματικά καλός σε αυτό που κάνεις, κάποια στιγμή θα βγάλεις και χρήματα. Μην το βλέπεις όμως εξαρχής με τη λογική "υπάρχουν χρήματα;". Δες το με τη λογική "υπάρχει μέλλον;".

WiludrakeGR]Που θα βρω βιβλια ή κάτι αντιστοιχο για να αναπτυξω προγραμμα σε Ubuntu; Και κατι ακόμα, πως θα μπορέσω να παρω μερος σε ενα project ; Πχ στην ομάδα αναπτυξης του Firefox. Τι γνώσεις πρέπει να εχω και πως θα επικοινώνισω με την ομάδα ;

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

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

Τα έργα ανάπτυξης ελεύθερου λογισμικού προτιμούν να επενδύουν το χρόνο τους σε μέλη που αγαπούν το έργο και θα "stick around" για καιρό, που θα γίνουν maintainers ακόμη και για κάτι πολύ μικρό. Με αυτό το σκεπτικό, πέραν από όρεξη να μάθει κανείς και αγάπη, δεν υπάρχουν άλλα προαπαιτούμενα για να γίνει μέλος μιας ομάδας.

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

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

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