Γίνετε προγραμματιστής ανοιχτού λογισμικού

Συγγραφέας: Morris Wright
Ημερομηνία Δημιουργίας: 24 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 1 Ιούλιος 2024
Anonim
Προγραμματιστής
Βίντεο: Προγραμματιστής

Περιεχόμενο

Το γράψιμο και η χρήση ανοιχτού λογισμικού δεν είναι απλώς μια μορφή προγραμματισμού (που ονομάζεται επίσης "hacking" στον κόσμο των προγραμματιστών), αλλά είναι ένα είδος φιλοσοφίας. Ενώ πρέπει να γνωρίζετε μόνο μια γλώσσα προγραμματισμού για να μπορείτε να κωδικοποιήσετε, αυτό το άρθρο αφορά τον τρόπο συμμετοχής στην κοινότητα, τη δημιουργία φίλων, τη συνεργασία σε σπουδαία έργα και τη δημιουργία ενός σεβαστού ειδικού με ένα προφίλ που δεν μπορείτε να βρείτε αλλού. Στον κόσμο του ανοιχτού λογισμικού, μπορείτε εύκολα να εκχωρήσετε εργασίες που επιτρέπεται να εκτελούν μόνο οι ελίτ προγραμματιστές ανώτερου επιπέδου σε μια εταιρεία. Σκεφτείτε πόση εμπειρία μπορεί να σας φέρει. Ωστόσο, μόλις αποφασίσετε να γίνετε ανοιχτός προγραμματιστής λογισμικού, πρέπει να είστε πρόθυμοι να επενδύσετε χρόνο σε αυτόν τον στόχο. Αυτό ισχύει επίσης εάν είστε ήδη φοιτητής πληροφορικής. Σας υπενθυμίζουμε ότι αυτό το άρθρο δεν αφορά το πώς να γίνετε hacker ή cracker.

Για να πας

  1. Κατεβάστε μια καλή διανομή Unix. Το GNU / Linux είναι ένα από τα πιο δημοφιλή για προγραμματισμό, αλλά τα GNU Hurd, BSD, Solaris και (σε ​​κάποιο βαθμό) Mac OS X χρησιμοποιούνται επίσης συνήθως.
  2. Μάθετε πώς να χρησιμοποιείτε τη γραμμή εντολών. Μπορείτε να κάνετε πολλά περισσότερα με λειτουργικά συστήματα τύπου Unix εάν χρησιμοποιείτε τη γραμμή εντολών.
  3. Μάθετε μερικές δημοφιλείς γλώσσες προγραμματισμού έως ότου φτάσετε σε ένα περισσότερο ή λιγότερο ικανοποιητικό επίπεδο. Διαφορετικά, δεν μπορείτε να συνεισφέρετε κώδικα (το πιο σημαντικό μέρος οποιουδήποτε έργου λογισμικού) στην ανοιχτή κοινότητα λογισμικού. Ορισμένες πηγές προτείνουν να ξεκινήσετε με δύο γλώσσες ταυτόχρονα: μία γλώσσα συστήματος (C, Java ή παρόμοια) και μια γλώσσα scripting (Python, Ruby, Perl ή παρόμοια).
  4. Για να είστε πιο παραγωγικοί, χρειάζεστε NetBeans ή παρόμοιο ολοκληρωμένο περιβάλλον ανάπτυξης.
  5. Μάθετε να χρησιμοποιείτε έναν προηγμένο επεξεργαστή, όπως vi ή Emacs. Έχουν καμπύλη ανώτερης μάθησης, αλλά μπορείτε να κάνετε πολλά περισσότερα μαζί τους.
  6. Μάθετε σχετικά με τον έλεγχο έκδοσης. Ο έλεγχος έκδοσης είναι ίσως το πιο σημαντικό εργαλείο της συνεργασίας για την ανάπτυξη κοινόχρηστου λογισμικού. Κατανοήστε πώς να δημιουργήσετε και να εφαρμόσετε ενημερώσεις κώδικα. Το μεγαλύτερο μέρος της ανοιχτής ανάπτυξης λογισμικού στην κοινότητα γίνεται μέσω της δημιουργίας, της συζήτησης και της εφαρμογής διαφόρων ενημερώσεων κώδικα.
  7. Βρείτε ένα κατάλληλο, μικρό ανοιχτό έργο λογισμικού στο οποίο μπορείτε εύκολα να συμμετάσχετε για να αποκτήσετε εμπειρία. Τα περισσότερα τέτοια έργα μπορούν να βρεθούν στο SourceForge.net αυτές τις μέρες. Ένα κατάλληλο έργο πρέπει να περιλαμβάνει:
    1. Χρησιμοποιήστε τη γλώσσα προγραμματισμού που γνωρίζετε.
    2. Να είστε ενεργός, με πρόσφατες κυκλοφορίες.
    3. Ήδη αποτελείται από τρεις έως πέντε προγραμματιστές.
    4. Για να χρησιμοποιήσετε τον έλεγχο έκδοσης.
    5. Έχετε ένα μέρος στο οποίο μπορείτε να ξεκινήσετε αμέσως, χωρίς να χρειάζεται να αλλάξετε πάρα πολύ τον υπάρχοντα κώδικα.
    6. Εκτός από τον κώδικα, ένα καλό έργο έχει επίσης ενεργές λίστες συζητήσεων, αναφορές σφαλμάτων, λαμβάνει και υλοποιεί αιτήματα βελτίωσης και παρόμοιες δραστηριότητες.
  8. Επικοινωνήστε με τον διαχειριστή του επιλεγμένου έργου. Σε ένα μικρό έργο με λίγους προγραμματιστές, η βοήθειά σας θα γίνει συνήθως αποδεκτή αμέσως.
  9. Διαβάστε προσεκτικά τους κανόνες του έργου και ακολουθήστε τους λίγο πολύ. Οι κανόνες του στυλ προγραμματισμού ή η ανάγκη τεκμηρίωσης των αλλαγών σας σε ξεχωριστό αρχείο κειμένου μπορεί να φαίνονται γελοίο στην αρχή. Ωστόσο, ο σκοπός αυτών των κανόνων είναι να επιτρέψει την κοινή χρήση - και τα περισσότερα έργα λειτουργούν μαζί τους.
  10. Εργαστείτε σε αυτό το έργο για αρκετούς μήνες. Ακούστε προσεκτικά τι έχουν να πουν ο διαχειριστής και τα άλλα μέλη του έργου. Εκτός από τον προγραμματισμό έχετε πολλά πράγματα να μάθετε. Αλλά αν δεν σας αρέσει κάτι, απλά σταματήστε και μεταβείτε σε άλλο έργο.
  11. Μην κολλήσετε στο υπόγειο έργο για πολύ καιρό. Μόλις βρεθείτε σε θέση να εργαστείτε με επιτυχία σε αυτήν την ομάδα, ήρθε η ώρα να αρχίσετε να ψάχνετε κάτι πιο σοβαρό.
  12. Αναζητήστε ένα σοβαρό, ανοιχτού λογισμικού υψηλού επιπέδου ή έργο ανοιχτού κώδικα. Τα περισσότερα τέτοια έργα ανήκουν σε οργανισμούς GNU ή Apache.
  13. Επειδή κάνουμε ένα σοβαρό άλμα εδώ, πρέπει να λάβετε υπόψη μια πολύ λιγότερο θερμή υποδοχή. Πιθανότατα θα σας ζητηθεί να εκτελέσετε χωρίς άμεση πρόσβαση εγγραφής στο αποθετήριο κώδικα για πρώτη φορά. Ωστόσο, το προηγούμενο υπόγειο έργο θα έπρεπε να σας έχει διδάξει πολλά - οπότε μετά από αρκετούς μήνες να κάνετε μια παραγωγική συνεισφορά, μπορείτε να διεκδικήσετε τα δικαιώματα που νομίζετε ότι πρέπει να έχετε.
  14. Αναλάβετε ένα σοβαρό έργο και επιλύστε το. Είναι ώρα. Μην φοβάσαι. Συνεχίστε ακόμη και αν διαπιστώσετε ότι η εργασία είναι πολύ πιο δύσκολη από ό, τι αρχικά σκεφτήκατε - σε αυτό το βήμα είναι σημαντικό να μην σταματήσετε.
  15. Εάν μπορείτε, υποβάλετε αίτηση στο "Summer of Code" της Google για να βάλετε χρήματα σε αυτήν την περιπέτεια. Αλλά μην ανησυχείτε αν η αίτηση δεν γίνει αποδεκτή, καθώς έχουν πολύ λιγότερες θέσεις χρηματοδότησης από ό, τι υπάρχουν πραγματικά καλοί προγραμματιστές.
  16. Βρείτε ένα κατάλληλο συνέδριο που πραγματοποιείται κοντά ("Ημέρες Linux" ή παρόμοια) και προσπαθήστε να παρουσιάσετε το έργο σας εκεί (ολόκληρο το έργοκαι όχι μόνο το μέρος που προγραμματίζετε). Αφού αναφέρετε ότι εκπροσωπείτε ένα σοβαρό έργο ελεύθερου / ανοιχτού κώδικα, οι διοργανωτές θα σας αποζημιώνουν συχνά από την αμοιβή του συνεδρίου (αν όχι, το συνέδριο πιθανότατα θα είναι ακατάλληλο ούτως ή άλλως). Φέρτε τον φορητό υπολογιστή Linux (αν έχετε) και εκτελέστε κάποια demo. Ρωτήστε τον υπεύθυνο του έργου για το υλικό που μπορείτε να χρησιμοποιήσετε για να προετοιμάσετε την παρουσίαση ή την αφίσα σας.
  17. Πραγματοποιήστε αναζήτηση στο Διαδίκτυο για ανακοινώσεις σχετικά με ένα κοντινό συμβάν εγκατάστασης και προσπαθήστε πρώτα να συμμετάσχετε ως χρήστης (σημειώστε όλα τα ζητήματα που προκύπτουν και πώς τα διορθώνουν οι hackers) και προσφέρετε να εγκαταστήσετε προγράμματα την επόμενη φορά.
  18. Ολοκληρώστε την εργασία, ελέγξτε την εργασία σας με αυτόματες δοκιμές και συνεισφέρετε στο έργο. Τελείωσες! Για να είμαστε σίγουροι, προσπαθήστε να συναντήσετε μερικούς από τους προγραμματιστές του έργου αυτοπροσώπως και να σηκώσετε ένα ποτήρι μπύρα μαζί στο αποτέλεσμα.
  19. Για καλύτερη κατανόηση, ρίξτε μια ματιά σε ένα πραγματικό παράδειγμα του ιστορικού ανάπτυξης ενός ανοιχτού προγράμματος λογισμικού (βλ. Παραπάνω). Κάθε καμπύλη αύξησης αντιπροσωπεύει μια συνεισφορά (γραμμές κώδικα) από έναν μόνο προγραμματιστή. Οι προγραμματιστές τείνουν να γίνονται λιγότερο ενεργοί με την ηλικία, αλλά το έργο επιταχύνεται ακόμα και όταν συμμετέχουν νέοι. Αν λοιπόν φτάσετε με μερικές χρήσιμες δεξιότητες στην τσέπη σας, δεν υπάρχουν λόγοι για τους οποίους η ομάδα δεν πρέπει να σας προσκαλέσει.

Συμβουλές

  • Πριν υποβάλλετε μια ερώτηση σχετικά με τις πρακτικές απαιτήσεις εντός του έργου, αναζητήστε την απάντηση στα αρχεία τεκμηρίωσης και λίστας αλληλογραφίας του έργου.
  • Πάντα προσπαθείτε να ολοκληρώσετε οποιαδήποτε εργασία προγραμματισμού ξεκινήσατε. Δεν είναι δυνατή η κατασκευή, δεν μπορεί να εκτελεστεί, διακοπεί το σύστημα; Εκεί να είναι λόγοι για τα πάντα, και εάν έχετε τον πηγαίο κώδικα, συνήθως σημαίνει ότι έχετε το σύστημα Καλά μπορεί να σας αναγκάσει να κάνετε ό, τι θέλετε, ειδικά με τη βοήθεια μιας διαδικτυακής έρευνας. Αυτός ο κανόνας έχει φυσικά όρια, αλλά είναι πράγματι σημαντικό να μην τα παρατάς ποτέ πολύ εύκολα.
  • Καλέστε τον εαυτό σας προγραμματιστή (ή χάκερ) μόνο αφού αναγνωριστεί ως τέτοιο από κάποια πραγματική κοινότητα χάκερ.
  • Στην αρχή, επιλέξτε μια τάξη, ενότητα ή άλλη μονάδα όπου κανείς δεν εργάζεται πολύ ενεργά αυτή τη στιγμή. Η συνεργασία μαζί στην ίδια τάξη ή ακόμα και σε μια θέση απαιτεί περισσότερες δεξιότητες και φροντίδα από όλες τις πλευρές.
  • Οι εργοδότες ορισμένων χάκερ / προγραμματιστών φαίνεται ότι έχουν αρκετά κίνητρα για να επιτρέπουν συνεισφορές κατά τη διάρκεια των ωρών εργασίας (συνήθως επειδή το ίδρυμα χρησιμοποιεί το πρόγραμμα δωρεάν / ανοιχτού κώδικα που αναπτύσσει ο προγραμματιστής). Σκεφτείτε, ίσως μπορείτε να λάβετε τουλάχιστον λίγο χρόνο που χρειάζεστε με αυτόν τον τρόπο.
  • Εάν εξακολουθείτε να μην έχετε αρκετή εμπιστοσύνη στον εαυτό σας, ξεκινήστε από κάποιο μέρος του κώδικα που πιστεύετε ότι λείπει και μπορεί να γραφτεί από το μηδέν. Οι αλλαγές στον υπάρχοντα κώδικα είναι πολύ πιο πιθανό να επικριθούν.

Προειδοποιήσεις

  • Η κατάσταση του χάκερ στο κοινοτικό έργο αντικατοπτρίζει περισσότερο το παρόν σας από το παρελθόν σας.Εάν θέλετε μια πρόταση ή παρόμοια από τον αρχηγό του έργου, ρωτήστε εάν εξακολουθείτε να συμμετέχετε ενεργά.
  • Μην μπείτε σε μικρές βελτιστοποιήσεις κώδικα, επιπλέον σχόλια, βελτιώσεις στυλ κωδικοποίησης και άλλα παρόμοια πράγματα "μικρής κλίμακας". Αυτό μπορεί να αντιμετωπίσει πολύ περισσότερες κριτικές από μια σοβαρή συμβολή. Αντ 'αυτού, μπορείτε να συμπεριλάβετε αυτές τις αλλαγές σε μία μόνο ενημερωμένη έκδοση κώδικα "εκκαθάρισης".
  • Εάν σκοπεύετε να συναντήσετε προσωπικά τους ανοιχτούς χάκερ λογισμικού, αφήστε το φορητό υπολογιστή σας Windows στο σπίτι. Το Mac OS είναι ελαφρώς πιο ανεκτό, αλλά δεν είναι πραγματικά ευπρόσδεκτο. Εάν φέρετε το φορητό υπολογιστή σας, πρέπει να εκτελεί Linux ή κάποιο άλλο λειτουργικό σύστημα που θεωρούν "ανοιχτό λογισμικό".
  • Εάν ο πελάτης email σας υποστηρίζει μηνύματα HTML, τότε θα πρέπει να απενεργοποιήσετε αυτήν τη δυνατότητα. Μην επισυνάπτετε ποτέ έγγραφα που μόνο το εμπορικό λογισμικό (όπως το Microsoft Word) μπορεί να ανοίξει σωστά. Οι χάκερ το θεωρούν αυτό προσβλητικό.
  • Μην προσφέρετε εθελοντικά σε έργα μιας εταιρείας των οποίων ο κωδικός δεν καλύπτεται από εγκεκριμένη άδεια ανοιχτού κώδικα. Σε τέτοιες περιπτώσεις, τα πραγματικά σημαντικά μέρη του έργου είναι πιθανό να παραμείνουν πίσω από κλειστές πόρτες από τον ιδιοκτήτη, εμποδίζοντας σας να μάθετε κάτι χρήσιμο.
  • Αποφύγετε οποιαδήποτε ερώτηση σχετικά με τις βασικές αρχές του προγραμματισμού ή των εργαλείων προγραμματισμού. Ο χρόνος ενός ανοιχτού προγραμματιστή λογισμικού είναι πολύτιμος. Αντ 'αυτού, συζητήστε τα βασικά του προγραμματισμού σε ερασιτέχνες ή αρχικές ομάδες προγραμματιστών.
  • Τα καθιερωμένα και εξαιρετικά επιτυχημένα έργα ενδέχεται να έχουν γραπτές ή άγραφες πολιτικές για την αποζημίωση ποτέ για την εργασία σας (χωρίς χρήματα, χωρίς δυνατότητα προώθησης του εαυτού σας, χωρίς αυξημένη κατάσταση ανεξάρτητα από τη συνεισφορά σας κ.λπ. - δείτε: Do_not_expect_reward Wikipedia). Εάν δεν μπορείτε να συμφωνήσετε με αυτό, παραμείνετε σε πιο κοινά έργα που δεν μπορούν να αντέξουν μια τέτοια στάση.
  • Μην ξεκινήσετε το δικό σας έργο εκτός εάν θέλετε πάντα να περνάτε με περήφανη μοναξιά. Για τον ίδιο λόγο, είναι καλύτερα να μην ξεκινήσουμε μια προσπάθεια αναβίωσης ενός ήδη εγκαταλελειμμένου έργου που έχει ήδη χάσει η προηγούμενη ομάδα του.
  • Σε περίπτωση άτυπης συνάντησης σχετικά με το έργο στο οποίο δεν συνεισφέρατε ποτέ κανένας κώδικας, θα έχετε τη δυσάρεστη αίσθηση ότι αγνοείτε εντελώς. Μην ανησυχείτε, ορισμένοι χάκερ μπορούν να γίνουν καλοί φίλοι αργότερα αφού κερδίσετε τον σεβασμό τους με τον δικό σας κωδικό.
  • Μεγάλα έργα ανοιχτού λογισμικού, ειδικά εκείνα που σχετίζονται με τον τομέα GNU, δεν αντιμετωπίζουν τη δουλειά σας ως προσωπική σας επιχείρηση. Αφού λάβετε τη δουλειά σε μια εταιρεία που σχετίζεται με λογισμικό, ζητούν από τον εργοδότη σας να υπογράψει ορισμένες συμφωνίες [1], τις οποίες η εταιρεία θα υπογράψει ή δεν θα υπογράψει. Αυτό μπορεί να σας αναγκάσει να επιλέξετε ένα έργο με λιγότερο αυστηρές απαιτήσεις.

Απαιτήσεις

  • Linux. Πολλά έργα ανοιχτού λογισμικού είναι πιο περίπλοκα στην κατασκευή σε Windows ή δεν δημιουργούνται καθόλου σωστά. Αυτό ισχύει ιδιαίτερα για προηγμένα έργα αφιερωμένα στον προγραμματισμό κινητών τηλεφώνων, κλειδιών USB και άλλων συσκευών.
  • Ένας υπολογιστής με σχετικά καλή σύνδεση στο Διαδίκτυο. Εάν θέλετε να διατηρήσετε διπλή εκκίνηση με Windows, τότε ένας δεύτερος σκληρός δίσκος ή διαμέρισμα για Linux θα μπορούσε να είναι μια καλή λύση.
  • Βασικές γνώσεις τουλάχιστον μιας γλώσσας προγραμματισμού και ισχυρή πρόθεση να μάθουν περισσότερα. Οι πιο δημοφιλείς γλώσσες φαίνεται να είναι C και Java.
  • Ένα σημαντικό χρονικό διάστημα, τουλάχιστον πέντε ώρες την εβδομάδα (ένας τυπικός προγραμματιστής hardcore συνεισφέρει ένα επιβλητικό 14 ώρες).
  • Ενώ η επίσημη εκπαίδευση πληροφορικής θα κάνει τον τρόπο σας πολύ πιο εύκολο, αυτό είναι δεν μια υποχρεωτική απαίτηση και καμία πραγματική κοινότητα χάκερ δεν θα σας ρωτήσει ποτέ για αυτό. Οι προγραμματιστές / χάκερ κρίνουν ο ένας τον άλλον με τον προγραμματισμό κάποιου, όχι με ψεύτικα κριτήρια όπως βαθμούς, ηλικία, φυλή ή θέση. Λάβετε υπόψη σας, τουλάχιστον το 60% των χάκερ ανοιχτού κώδικα που αξιολογούν τις ενημερώσεις κώδικα σας έχουν το «σωστό» πτυχίο κολλεγίου και δεν θα σας επιτρέψουν να συνεισφέρετε ανοησίες στο έργο.
  • Κατά τη διάρκεια των τελικών βημάτων (συνέδριο και «εγκατάσταση πάρτι») μπορείτε να επωφεληθείτε από το δικό σας φορητό υπολογιστή. Αλλά δεν είναι εντάξει να το δουλεύεις στο σπίτι, οπότε αγοράστε ένα μόνο αν έχετε τη δυνατότητα να αγοράσετε το δεύτερο μηχάνημα.
  • Η διαδρομή που περιγράφεται για να γίνει λογισμικό ανοιχτού κώδικα "hacker" διαρκεί τουλάχιστον δύο χρόνια για να ολοκληρωθεί.